GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: pinouf42 le 13 Juillet 2008, 19:29:38
-
Bonjour, en fait, j'ai fait un DM et je souhaiterais que lorsque quelqu'un y va, sa rajoute à son pseudo _DM donc sa c'est fait, mais quand il en sort, comment faire pour que son pseudo revienne normal ??
merci
Finalement, j'ai trouvé dans la recherche un sujet qui disait pareil sauf que je n'y arrive pas, ça ne marche pas :(
-
prend sa
if(strcmp(cmdtext,"/dmquit", true)==0){
new pname[24];
new string[256];
SetPlayerName(playerid, OldName[playerid]);
GetPlayerName(playerid, pname, sizeof(pname));
dm[playerid] = 0;
IsInDm[playerid] = 0;
format(string, sizeof(string), "| %s | A quitter le Death Match.", pname);
SendClientMessageToAll(COLOR_YELLOW, string);
SetPlayerInterior(playerid,0);
return 1;
}
mais les variable ... recopie pas bétement réfléchi ;)
-
le problème c'est que le DM, on le quitte par changement de joueur et non pas par une commande.
-
prend sa
if(strcmp(cmdtext,"/dmquit", true)==0){
new pname[24];
new string[256];
SetPlayerName(playerid, OldName[playerid]);
GetPlayerName(playerid, pname, sizeof(pname));
dm[playerid] = 0;
IsInDm[playerid] = 0;
format(string, sizeof(string), "| %s | A quitter le Death Match.", pname);
SendClientMessageToAll(COLOR_YELLOW, string);
SetPlayerInterior(playerid,0);
return 1;
}
mais les variable ... recopie pas bétement réfléchi ;)
Cest pas mon code ca ??
Pinouf, tu met un stock player name qui sauve le nom du joueur quand il entre, et tu lui redonne quand il ressort ;)
Jai galéré a totu scripter, mais il faut pas oublier toute les varable a rajouter ...
++
nikko
-
Non ne stocke pas le nom du joueur, Syg a dit dans un précédent topic que ça bouffait de la place pour rien.
Pour redonner le nom original ~> http://streetplaya.hopto.org/SAMP_Wiki/wiki.sa-mp.com/wiki/Scripting_Functions_Old.html#strmid
-
Non s'est pas ton code je suis inpirer mais j'ai fais le mien juge pas avant de pas savoir
-
Il ne t'as pas jugé il t'a posé une question, certainement car il avait dû donner quelque chose de semblable sur un autre topic.
-
if(strcmp(cmdtext,"/dmquit", true)==0){
dm[playerid] = 0;
IsInDm[playerid] = 0;
Car jai la meme chose, Alex a raison ;)
++
nikko
-
Ouah ton function old la c'est super compliqué :blink lol !
Bon je vais essayer mais je ne garanti rien ^^
-
Petit exemple tiré du script PEN1, qui sert à obtenir le password d'un fchier de sauvegarde :
strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);
• Le string qui contiendra les caractères extraits. Dans notre cas celui qu'on mettra dans SetPlayerName (sans le _DM).
• Le string sur lequel on travaille. Dans notre cas le nom obtenu avec GetPlayerName (avec le _DM).
• Le caractères duquel on démarre. Dans notre cas 0.
• Le caractère où on s'arrête. Dans notre cas la taille du nom du joueur - 3 (vu que _DM contient trois caractères).
• La taille maximum du string de destination (le premier argument), cet argument n'est pas obligatoire et vaudra sizeof(string de destination) par défaut.
-
Et suffit de mettre ca dans la command quit ??
Pas mal ...
++
nikko
-
:blink Moi = :boulet
J'ai rien compris lol vraiment désolé je suis très pénible.
Ce qui m'embrouille c'est il y a plein de choses qui ne vont pas y être, tu pourrais pas mettre un exemple de ce que je veux pour que je vois un peu parce que la je t'avoue que je ne comprend pas tout
-
En gros, il te dit de mettre ca:
strmid(SetPlayerName[playerid], GetPlayerName[playerid], 0, strlen(valtmp)-3, 255); ;)
++
nikko
-
J'ai pas de commande /quit, on quitte le DM en changeant de joueur
-
Bah cré en une ...
ou tu met le code dans oneplayer requestclass ;)
++
nikko
-
Ahhhhh ok je vois ce que sa fait, sa recupere le nom du joueur et sa lui supprime trois caractères ! Ouaiii nikel !
-
sa me met sa: je vois comprend pas:
C:\DOCUME~1\GTASAN~1\Bureau\SERVEU~1\GAMEMO~1\Serveur.pwn(899) : error 028: invalid subscript (not an array or too many subscripts): "SetPlayerName"
C:\DOCUME~1\GTASAN~1\Bureau\SERVEU~1\GAMEMO~1\Serveur.pwn(899) : warning 215: expression has no effect
C:\DOCUME~1\GTASAN~1\Bureau\SERVEU~1\GAMEMO~1\Serveur.pwn(899) : error 001: expected token: ";", but found "]"
C:\DOCUME~1\GTASAN~1\Bureau\SERVEU~1\GAMEMO~1\Serveur.pwn(899) : error 029: invalid expression, assumed zero
C:\DOCUME~1\GTASAN~1\Bureau\SERVEU~1\GAMEMO~1\Serveur.pwn(899) : fatal error 107: too many error messages on one line
ligne 898 à 890:
897 if(DM[playerid] == 0)
898 {
899 strmid(SetPlayerName[playerid], GetPlayerName[playerid], 0, strlen(valtmp)-3, 255);
900 SetPlayerWorldBounds(playerid, 2977.858, -2989.536, 2989.536, -2942.825);
901 }
-
Ton Get/SetPlayerName[] ne veut rien dire. :blink
Tu dois d'abord récupérer le nom du joueur avec la fonction GetPlayerName puis mettre le string qui contient le nom du joueur là où tu as mis GetPlayerName[playerid].
Il faut aussi créer un autre string qui contiendra le nom du joueur sans le "_DM", donc tu recrée un string (ou tu réutilises l'autre qui a servi à obtenir le nom du joueur) et tu met le nom de ce string là où tu as mis SetPlayerName[playerid].
Et non je ne te donnerais pas d'exemple car apparemment tu as copie/collé le code de Nikko vite fait sans chercher à comprendre avant ce que ce bout de code voulait dire.
-
Si je l'avais copié coller vite fait, aurais-je compris que cet action récuperais le nom du joueur puis lui enlevais 3 caractères. Non ! Je souhaite comprendre pour le refaire plus tard car j'en aurais besoin pour beaucoup de choses. Désolé si j'ai donné l'impression d'un copié collé