GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: MK le 05 Juin 2010, 15:15:56
-
Salut!
Je vous demande de l'aide,
j'ai créé une commande "dcmd_warn"
qui consiste a avertir le joueur, au bout de trois avertissement,
il serait kicker.
Donc j'ai procédé ainsi:
dcmd_warn(playerid, params[])
{
new warn;
/* ...script...*/
while(warn < 3)
{
warn++;
format(string, sizeof(string), "[PM] Vous avez %d avertissement(s) actif!", warn);
SendClientMessage(id, Orange2, string);
if(warn >= 3)
{
format(string, sizeof(string), "[SERVEUR] %s a été kické par un administrateur! [raison: 3 avertissements]", nom(playerid));
SendClientMessageToAll(Orange, string);
format(string, sizeof(string), "[PM] Vous avez été kické par un Admin!");
SendClientMessage(id, Orange2, string);
Kick(id);
return 1;
/* ...script...*/
Comme vous pouvez le deviner, sa fais sa quand je tape /warn [id]
[PM] Vous avez 1 avertissement(s) actif!
[PM] Vous avez 2 avertissement(s) actif!
[PM] Vous avez 3 avertissement(s) actif!
[SERVEUR] Maikill a été kické par un administrateur! [raison: 3 avertissements]
[PM] Vous avez été kické par un Admin!
Il saute de 0 à 3 ...
Je voudrais que la commande rajoute +1 a chaque fois que je l'utilise...
pas moyen
merci de m'aider ::)
-
Quand je fais warn, la velur de la variable warn augmente de 1
arrivé a 3, le joueur désigné est kické
Il saute de 0 à 3 ...
quand je fais /warn [id]
La valeur ne fais pas +1 mais +3 d'un coup...
puisque qu'il va augmenter de 1 jusqu'à en arrivé à 3.
-
Merci, j'ai réussi! j'ai utilisé warn[MAX_PLAYERS]
et aprés j'ai fait une boucle "while(warn[playerid] < 3)"
j'ai incrémenté warn[playerid]
et j'ai renvoyé la valeur à la fin de cette boule. "return warn[playerid];"
Ah, et j'ai oublié aussi, tu t'es trompé dans ta façon de faire. Avec ta commande, c'est l'utilisateur qui se met des avertissements lui-même, il faudrait utiliser params[] pour récupérer l'id du joueur à avertir et vérifier avec playerid si le rang permet ou non d'utiliser cette commande.
J'avais justement ce problème, mais j'ai réussi à le régler grasse à sscanf
-
Ton problemme s'est que tu met le new warn dans ta commande, donc a chaque fois que ta comande est tappée, le warn = 0.
Donc ce que tu fait, au debut de ton script tu fait
new Warn[MAX_PLAYERS];
et tu remplace tes warn par Warn[playerid] ou Warn[giveplayerid], enfn, ce qui te sert a definirs que tru cherche la valeur du warn du joueur concerné.
-
J'avoue que pour la 2eme partie de ma reponse j'ai pas bien regarder.
Mais si je ne m'abuse la premiere partie devrais regler son probleme