• 08 Juillet 2025, 23:08:44


Auteur Sujet: Limite d'utilisation d'une commande joueur  (Lu 1485 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne LegolasS

  • *
  • Criminel
  • Messages: 31
    • Voir le profil
Limite d'utilisation d'une commande joueur
« le: 27 Février 2013, 22:50:07 »
Bonjour, je cherche actuellement comment faire en sorte qu'un joueur soit limité à une seule utilisation d'une commande pour casser ces menottes, qu'il puisse la faire qu'une seule fois, si il réussi à casser ces menottes, tant mieux pour lui, mais si il se fait rattraper qu'ils puissent refaire une nouvelle fois cette commande une seule fois mais cette fois ci, si il se rate, qu'ils ne puisse pas réutiliser cette commande jusqu'à ce qu'il soit démenotté ou après sa peine de prison.

Je vous remercie, cordialement.

Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3551
    • Voir le profil
Re : Limite d'utilisation d'une commande joueur
« Réponse #1 le: 27 Février 2013, 23:06:08 »
Soit, utiliser une simple variable...Soit un booléen.


Adju ♥
(-_-)



Hors ligne LegolasS

  • *
  • Criminel
  • Messages: 31
    • Voir le profil
Re : Limite d'utilisation d'une commande joueur
« Réponse #2 le: 28 Février 2013, 00:27:36 »
Heuu... c'est à dire ?

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Limite d'utilisation d'une commande joueur
« Réponse #3 le: 28 Février 2013, 01:25:08 »
Un tableau de booléens qui a le même nombre d'entrées que de joueurs. Si le joueur est menotté, la case vaut true, sinon elle vaut false. Lors de l'exécution de la commande, tu vérifie que l'entrée du joueur est sur true. Si c'est le cas, tu procèdes à ta commande, sinon, c'est qu'il n'est pas menotté et par conséquent tu lui affiches un message d'erreur. Capiche?

vincentdu90

  • Invité
Re : Limite d'utilisation d'une commande joueur
« Réponse #4 le: 28 Février 2013, 23:56:45 »
Hello,

Je profites de ce sujet pour qu'on puisse m'éclairer.
Pourquoi ,dans ton exemple, Gzsume utilise-t-on un tableau de booléens et pas une simple variable ?
Merci d'avance de ta/vos réponse(s).  :smile:

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Limite d'utilisation d'une commande joueur
« Réponse #5 le: 01 Mars 2013, 00:09:18 »
Il veut vérifier qu'un joueur soit menotté ou non. Donc la variable doit pouvoir avoir comme valeur true, ou false (vrai, ou faux, en français). En valeur décimale, ça donne 1 (true) ou 0 (false). C'est le même principe qu'une variable décimale de type integer, sauf qu'ici elle est pensée spécifiquement pour ne falloir que ces deux valeurs l'une après l'autre. Soit elle est vraie, soit elle est fausse, et rien d'autre. Ça colle donc parfaitement avec ce qu'il souhaite faire.

Ça se déclare et s'initialise comme suit,

Code: (pawn) [Sélectionner]
new Bool:isHandcuffed[MAX_PLAYERS] = {false};
Et ça s'utilise comme ça :

Code: (pawn) [Sélectionner]
// Dans une condition
if(isHandcuffed[playerid] == true)
// ce qui revient à
if(isHandcuffed[playerid])
// ou encore
if(isHandcuffed[playerid] == false)
// ce qui revient à
if(!isHandcuffed[playerid])
// Et pour l'assignement de valeurs
isHandcuffed[playerid] = true;
isHandcuffed[playerid] = false;
// ...

vincentdu90

  • Invité
Re : Limite d'utilisation d'une commande joueur
« Réponse #6 le: 01 Mars 2013, 17:59:57 »
Tout d'abord merci d'avoir répondu.
Ensuite, j'avais bien compris ceci mais je ne comprends le fait d'utiliser un tableau pourquoi ne fait-on pas ceci :

Code: (Pawn) [Sélectionner]
    new Bool:isHandcuffed = false;
Code: (Pawn) [Sélectionner]
if(isHandcuffed == true) //ect...
?

Merci d'avance de ta réponse.

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Limite d'utilisation d'une commande joueur
« Réponse #7 le: 01 Mars 2013, 18:08:36 »
La réponse est simple, c'est une variable qui sera utilisé par TOUT les joueurs et non un en particulier.

vincentdu90

  • Invité
Re : Limite d'utilisation d'une commande joueur
« Réponse #8 le: 01 Mars 2013, 19:10:30 »
Pourtant dans le cas d'une commande utilisant strtok on va créer un tableau pour contenir chaque paramètres de la commande que le joueur aura indiqué

Code: (Pawn) [Sélectionner]

table[size] = strtok(paramètres);


sans s'occuper du nombre de joueurs qui l'utilise (tout le monde)

Code: (Pawn) [Sélectionner]
table[joueur][size] = strtok(paramètres);

et pourtant si on utilise strtok comme dans mon premier exemple ça fonctionnera (avec des valeurs adéquates) donc je suis un peu perdu là :s .

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Limite d'utilisation d'une commande joueur
« Réponse #9 le: 01 Mars 2013, 20:06:06 »
SA:MP n'exécute qu'une seule et unique action à la fois. Un joueur fait la commande, elle est exécutée, puis un autre, et ce même si les commandes ont été tapées en même temps. Comme tu utilises des variables locales, donc supprimées une fois la fonction terminée, ça n'entre jamais en conflit pour deux joueurs. ;)

vincentdu90

  • Invité
Re : Limite d'utilisation d'une commande joueur
« Réponse #10 le: 01 Mars 2013, 21:52:11 »
Mais oui bien sûr  :laugh: !
Merci beaucoup à vous !