Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254730 Messages dans 14037 Fils de discussion- par 6623 Membres - Dernier membre: Magicien

24 Mai 2012 à 16:44:36
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)Bl4st3r67 : Petites Questions
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Bl4st3r67 : Petites Questions  (Lu 459 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Bl4st3r67
Hors ligne Hors ligne

Criminel entrainé
*

Messages: 39


« le: 05 Décembre 2009 à 10:24:52 »

Bonjour, je m'inspire du topic qu'a créer LePetitClown pour ne pas à avoir faire plein de topic inutiles.
Je commence tout juste à apprendre a scripter le PAWN et j'ai quelques soucis :/

Ma première question:

J'ai réussi à créer deux "team" ( Enfaite, sa attribue juste un couleur aux personnages, Vert pour l'armée et Rouge pour les Terroristes... )
Se que j'aimerais faire, c'est que les Terroristes n'aient pas accès aux véhicules de l'armée et vice-versa.

J'ai cherché, trouver deux trois truc mais je ne comprends vraiment rien =( ...

Merci d'avance si vous me répondez.

++

EDIT: J'aimerais aussi savoir comment "bloquer" les munitions pour les armes ( pas plus de 200 munitions pour les M4, 150 pour les AK etc)
Pour ajouter du réalisme, car IRL on n'a pas 500 chargeur sur soi même...

Merci Au revoir

++

EDIT2: J'ai réussi =D

Code: (pawn)
public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quel que chose du menu.
if (Current == armurerie){
if (row == 0){
SetPlayerArmedWeapon (playerid ,31);
SetPlayerAmmo(playerid,31,200);
} else if (row == 1){
SetPlayerArmedWeapon(playerid ,29);
SetPlayerAmmo(playerid,29,150);
} else if (row == 2){
SetPlayerArmedWeapon(playerid ,24);
SetPlayerAmmo(playerid,24,7);
} else if (row == 3){
SetPlayerArmedWeapon(playerid ,16);
SetPlayerAmmo(playerid,16,4);
}
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
return 1;

Edit3: Erf, juste le M4 fonctionne ...
« Dernière édition: 05 Décembre 2009 à 12:36:15 par Bl4st3r67 » Journalisée
ghm94
Hors ligne Hors ligne


GTAOnline Big Member
*

Messages: 494






ghm94

« Répondre #1 le: 05 Décembre 2009 à 13:28:41 »

Salut,

pour empêcher un terroriste de rentrer dans un véhicule de l'armée et vice-versa tu doit vérifier dans OnPlayerEnterVehicle
Si le joueur peut bien y entrer.

Donc tu peut faire une condition comme celle-ci :
Code:
if( GetVehicleModel(vehicleid) == UN VEHICULE DE L'ARMEE )
{
  if( TU VERIFIE SI LE JOUEUR EST BIEN DANS L'ARMEE )
  {
    RemovePlayerFromVehicle( playerid);
  }
}

Pour ne pas dépasser le nombre maximum de munition, déjà tu peut savoir combien le joueur a de munitions avec ceci :
GetPlayerWeaponData
Ensuite essaye de réfléchir un peu Sourire

++  Cool
Journalisée

Bl4st3r67
Hors ligne Hors ligne

Criminel entrainé
*

Messages: 39


« Répondre #2 le: 05 Décembre 2009 à 18:41:22 »

Bonsoir, merci de m'avoir répondu.

J'ai essayé pour les véhicules mais j'aurais une petite question;

Code: (pawn)
    if(GetVehicleModel(vehicleid) == 1) // Je dois mettre l'ID du véhicule (Ex:520 pour l'Hydra) ou son numéro dans la liste ?
{
  if(Team[playerid] = 1)
  {
    RemovePlayerFromVehicle(playerid);
  }
}

Quand je met le code si dessus, j'ai trois erreurs;

Code:
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(608) : error 017: undefined symbol "vehicleid"
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(610) : error 017: undefined symbol "playerid"
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(612) : error 017: undefined symbol "playerid"

Voilà,
Merci d'avance et bonne soirée

++
Journalisée
» Lukubi™
Group: Team G.M.C
Hors ligne Hors ligne


Team NSG
GTAOnline Addict
*

Messages: 1342






« Répondre #3 le: 05 Décembre 2009 à 18:46:42 »

Tu la mit dans quelle callback ton code ?
Journalisée


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


Bl4st3r67
Hors ligne Hors ligne

Criminel entrainé
*

Messages: 39


« Répondre #4 le: 05 Décembre 2009 à 18:54:20 »

Dans le OnGameModeInit ?

Merci.

++
Journalisée
» Lukubi™
Group: Team G.M.C
Hors ligne Hors ligne


Team NSG
GTAOnline Addict
*

Messages: 1342






« Répondre #5 le: 05 Décembre 2009 à 19:04:04 »

Faut le mettre dans OnPlayerEnterVehicle (;
Journalisée


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


Bl4st3r67
Hors ligne Hors ligne

Criminel entrainé
*

Messages: 39


« Répondre #6 le: 05 Décembre 2009 à 19:07:27 »

Merci beaucoup =D
J'essayerai demain.

Bonne Soirée

++

Double post
Bonjour, voilà j'ai mis dans le bon Call Back mais sa ne marche toujours pas.

Code: (pawn)
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(GetVehicleModel(vehicleid) == 1)
{
if(Team[playerid] = 1)
  {
    RemovePlayerFromVehicle(playerid);
  }
}
}

Code:
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(608) : error 017: undefined symbol "vehicleid"
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(610) : error 017: undefined symbol "playerid"
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(612) : error 017: undefined symbol "playerid"
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(691) : warning 211: possibly unintended assignment

Si vous avez une idée ^^ merci d'avance.

++

EDIT: Plus que 1 erreur.

Code: (pawn)
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

{
if(GetVehicleModel(vehicleid) == 1)
{
if(classid == 1)
  {
    RemovePlayerFromVehicle(playerid);
  }
}
}

Code:
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(684) : error 017: undefined symbol "classid"

Ou si je remplace le classid par Team[playerid]

Code: (pawn)
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

{
if(GetVehicleModel(vehicleid) == 1)
{
if(Team[playerid] = 2)
  {
    RemovePlayerFromVehicle(playerid);
  }
}
}

Code:
C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(684) : warning 211: possibly unintended assignment
« Dernière édition: 06 Décembre 2009 à 11:38:07 par Bl4st3r67 » Journalisée
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #7 le: 06 Décembre 2009 à 11:50:09 »

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

{
   if(GetVehicleModel(vehicleid) == 1)
{
   if(Team[playerid] == 2)
  {
    RemovePlayerFromVehicle(playerid);
  }
}
}
Journalisée

ghm94
Hors ligne Hors ligne


GTAOnline Big Member
*

Messages: 494






ghm94

« Répondre #8 le: 06 Décembre 2009 à 11:57:13 »

Oui il faut mettre 2 fois le signe égal dans une condition :
Code:
if(Team[playerid] == 2)

++ Cool
Journalisée

Bl4st3r67
Hors ligne Hors ligne

Criminel entrainé
*

Messages: 39


« Répondre #9 le: 06 Décembre 2009 à 12:00:59 »

Ha juste pour un "=" x) Maintenant au moins j'y ferais plus attention ^^. Merci
Es ce que je doit faire sa pour chaque véhicule ou il y a un moyen de le faire en une ligne (genre: 1 -> 40)

Merci d'avance.

++

EDIT: Erf sa ne marche pas IG, Je prend un terro (Team 2) et essaie d'entrer dans le véhicule 1 et sa marche :/
Je pense que c'est mon système de team, je vais essayer d'en faire un autre et je vous tien au courant.

++

EDIT2:

J'ai créer un petit menu pour avoir des armes, aucune erreur sous pawno mais dans le jeu rien ne marche :/

Code: (pawn)
public OnPlayerCommandText(playerid, cmdtext[])
if (strcmp("/armurerie", cmdtext, true, 10) == 0)
 {
if(IsPlayerInRangeOfPoint(playerid, 8.0, 422.3651,2528.4390,16.6317))
ShowMenuForPlayer(armurerie,playerid); // On active le menu "tunning"
 }
return 1;
}

Code: (pawn)
armurerie = CreateMenu("~g~Weapons ~g~Selection",1,125,150,300);
        if(IsValidMenu(armurerie)) {
SetMenuColumnHeader(armurerie , 0, "Choisissez votre pack d'armes:");
  AddMenuItem(armurerie ,0,"Pack Normal");
AddMenuItem(armurerie ,0,"Pack Tireur D'élite");
AddMenuItem(armurerie ,0,"Pack Démolition");
AddMenuItem(armurerie ,0,"Pack Commando");
}

Code: (pawn)
public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quel que chose du menu.
if (Current == armurerie){
if (row == 0){
SetPlayerArmedWeapon (playerid ,31);
SetPlayerAmmo(playerid,6,200);
SetPlayerArmedWeapon (playerid ,16);
SetPlayerAmmo(playerid,9,4);
SetPlayerArmedWeapon (playerid ,24);
SetPlayerAmmo(playerid,3,7);
} else if (row == 1){
SetPlayerArmedWeapon (playerid ,34);
SetPlayerAmmo(playerid,7,15);
SetPlayerArmedWeapon (playerid ,23);
SetPlayerAmmo(playerid,3,34);
SetPlayerArmedWeapon (playerid ,4);
SetPlayerAmmo(playerid,2,1);
} else if (row == 2){
SetPlayerArmedWeapon (playerid ,36);
SetPlayerAmmo(playerid,8,6);
SetPlayerArmedWeapon (playerid ,16);
SetPlayerAmmo(playerid,9,4);
SetPlayerArmedWeapon (playerid ,24);
SetPlayerAmmo(playerid,3,7);
} else if (row == 3){
SetPlayerArmedWeapon (playerid ,29);
SetPlayerAmmo(playerid,5,150);
SetPlayerArmedWeapon (playerid ,23);
SetPlayerAmmo(playerid,3,34);
SetPlayerArmedWeapon (playerid ,4);
SetPlayerAmmo(playerid,2,1);
}
}
return 1;
}

J'ai mis SetPlayerArmedWeapon et SetPlayerAmmo car je ne veux pas dépasser un certain nombre de munition et sa m'a parut plus simple que avec GetPlayerWeaponData.
Voilà je ne comprends pas pourquoi sa ne marche pas :/

Merci d'avance.

++

Double post
Up Please.

Bonne Soirée

++
« Dernière édition: 06 Décembre 2009 à 17:44:41 par Bl4st3r67 » Journalisée
Bl4st3r67
Hors ligne Hors ligne

Criminel entrainé
*

Messages: 39


« Répondre #10 le: 07 Décembre 2009 à 12:55:47 »

Up Please

Merci D'avance Bonne Journée.

++
Journalisée
The Bird
Hors ligne Hors ligne

Grand Banditisme
*

Messages: 110


TheWolf1107

« Répondre #11 le: 07 Décembre 2009 à 19:59:31 »

Je n'ai pas trop le temps, mais je dirai que pouyr donner les armes ;

GivePlayerWeapon
Journalisée
Bl4st3r67
Hors ligne Hors ligne

Criminel entrainé
*

Messages: 39


« Répondre #12 le: 07 Décembre 2009 à 20:39:52 »

Bonsoir, je n'utilise pas le GivePlayerWeapon car il suffit au joueur de faire plusieur fois la commande pour atteindre un nombre de balle exorbitant... Et je veux un maximum de realisme. Mais merci quand même de m'avoir repondu Sourire

Bonne Soirée

++
Journalisée
Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.183 secondes avec 22 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact