• 08 Juillet 2025, 11:20:19


Auteur Sujet: Bl4st3r67 : Petites Questions  (Lu 1837 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Bl4st3r67

  • *
  • Criminel
  • Messages: 39
    • Voir le profil
Bl4st3r67 : Petites Questions
« 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) [Sélectionner]
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 ...
« Modifié: 05 Décembre 2009, 12:36:15 par Bl4st3r67 »

Hors ligne ghm94

  • *
  • Grand Banditisme
  • Messages: 886
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #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 :
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 :)

++  8)

Hors ligne Bl4st3r67

  • *
  • Criminel
  • Messages: 39
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #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) [Sélectionner]
    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;

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

++

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #3 le: 05 Décembre 2009, 18:46:42 »
Tu la mit dans quelle callback ton code ?

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne Bl4st3r67

  • *
  • Criminel
  • Messages: 39
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #4 le: 05 Décembre 2009, 18:54:20 »
Dans le OnGameModeInit ?

Merci.

++

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #5 le: 05 Décembre 2009, 19:04:04 »
Faut le mettre dans OnPlayerEnterVehicle (;

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne Bl4st3r67

  • *
  • Criminel
  • Messages: 39
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #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) [Sélectionner]
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(GetVehicleModel(vehicleid) == 1)
{
if(Team[playerid] = 1)
  {
    RemovePlayerFromVehicle(playerid);
  }
}
}

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) [Sélectionner]
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

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

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) [Sélectionner]
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

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

C:\Documents and Settings\admin\Bureau\SAMP3Serveur\gamemodes\DeathWarBETA.pwn(684) : warning 211: possibly unintended assignment
« Modifié: 06 Décembre 2009, 11:38:07 par Bl4st3r67 »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #7 le: 06 Décembre 2009, 11:50:09 »
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

{
   if(GetVehicleModel(vehicleid) == 1)
{
   if(Team[playerid] == 2)
  {
    RemovePlayerFromVehicle(playerid);
  }
}
}
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne ghm94

  • *
  • Grand Banditisme
  • Messages: 886
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #8 le: 06 Décembre 2009, 11:57:13 »
Oui il faut mettre 2 fois le signe égal dans une condition :
if(Team[playerid] == 2)
++ 8)

Hors ligne Bl4st3r67

  • *
  • Criminel
  • Messages: 39
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #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) [Sélectionner]
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) [Sélectionner]
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) [Sélectionner]
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

++
« Modifié: 06 Décembre 2009, 17:44:41 par Bl4st3r67 »

Hors ligne Bl4st3r67

  • *
  • Criminel
  • Messages: 39
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #10 le: 07 Décembre 2009, 12:55:47 »
Up Please

Merci D'avance Bonne Journée.

++

Hors ligne The Bird

  • *
  • Tueur en série
  • Messages: 110
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #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

Hors ligne Bl4st3r67

  • *
  • Criminel
  • Messages: 39
    • Voir le profil
Re : Bl4st3r67 : Petites Questions
« Réponse #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 :)

Bonne Soirée

++