GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Sismix84 le 04 Novembre 2007, 10:28:44
-
Bonjour à tous,
J'ai un petit problème avec mon serveur. Quand je rajoute un GameTextForPlayer dans le OnPlayerConnect, par exemple : GameTextForPlayer(playerid, ~g~Bienvenue);mon serveur crash et je sais pas pourquoi.
Pourriez vous m'aider ?
EDIT : désolé j'ai fait une faute dans mon code :
GameTextForPlayer(playerid, ~g~Bienvenue, 3000, 5);
-
As-tu compiler ton script ?
-
Coment ça ?
-
Ben vu que tu a rajouter quelque chose dans ton script tu as compilé ton script ?
-
Bien sûr que oui
-
Ben je crois que ta ligne de code est fausse prendre exemple sur ceci pour afficher un message :
http://wiki.sa-mp.com/index.php/GameTextForPlayer (http://wiki.sa-mp.com/index.php/GameTextForPlayer)
-
dès que je met ça :
new string[256];
format(string, sizeof(string), "Bienvenue %s", playerid);
GameTextForPlayer(playerid, string, 3000, 4);
j'ai ça :
C:\Program Files\Rockstar Games\GTA San Andreas\samp022server.win32\gamemodes\Sismix84.pwn(144) : warning 217: loose indentation
C:\Program Files\Rockstar Games\GTA San Andreas\samp022server.win32\gamemodes\Sismix84.pwn(144) : error 017: undefined symbol "vehicleid"
C:\Program Files\Rockstar Games\GTA San Andreas\samp022server.win32\gamemodes\Sismix84.pwn(147) : warning 217: loose indentation
C:\Program Files\Rockstar Games\GTA San Andreas\samp022server.win32\gamemodes\Sismix84.pwn(152) : warning 219: local variable "string" shadows a variable at a preceding level
-
Ben la on peut pas trop savoir avec que ça .
-
Ta première version était just Sismix84 (GameTextForPlayer(playerid, ~g~Bienvenue, 3000, 5);).
Je pense que l'erreur est ailleurs.
En tous cas,
format(string, sizeof(string), "Bienvenue %s", playerid);
risque de planter, %s c'est pour les chaînes de caractères et playerid est un entier.
Mets
format(string, sizeof(string), "Bienvenue %d", playerid);
plutôt.
Sinon, pour les warnings :
- "loose indentation", n'est pas très grave en soi, c'est juste que le script est "mal" indenté.
- "local variable "xxx" shadows ...." indique que la variable "xxx" a été définie 2 fois. Il suffit de retirer la ligne qui provoque le warning (moyen) ou de renommer la variable (mieux).
++
Syg
-
C'est quoi la différence entre %s et %d ??? ^^
-
%s sert à afficher une variable définie comme chaîne de caractères.
Exemple :
new Message[256] = "Ceci est une chaîne de caractères";
printf ("Message a afficher : %s", Message);
%d sert à afficher une variable définie comme un entier.
Exemple :
new NbJoueurs = 17;
printf ("Nombre de joueurs : %d", Valeur);
Il existe aussi %f pour afficher un variable défini comme un nombre à virgule flottante.
Exemple :
new Float:X = 1623.57;
printf ("Valeur de X : %f", X);
et %c pour afficher un variable définie comme un caractère (ou pour afficher un caractère d'une chaîne de caractères).
Exemple :
new Alphabet[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf ("La huitieme lettre de l'alphabet est %c", Alphabet[7]); // L'indice dans le tableau commence à 0
NB : la fonction printf sert à l'affichage dans le console du serveur. Elle est très utile quand on veut débugger un bout de script.
Il peut y avoir plusieurs % dans un même format (la chaîne qui contient les %). Et l'ordre des % doit être le même que celui des varaiables qu'ils représentent.
Exemple :
new Chaine[27] = "Ceci est un chaine";
printf ("La triosième lettre de %s est %c", Chaine, Chaine[2]); // L'indice dans le tableau commence à 0
++
Syg
-
Sa y est ! j'ai trouver ! je t'ai demasquer lol
Tu est le Fils a Bill Gates mdr !
Je suis impressioné chaques jours en observant tes connaissance !
AK NV.
-
%s sert à afficher une variable définie comme chaîne de caractères.
Exemple :
new Message[256] = "Ceci est une chaîne de caractères";
printf ("Message a afficher : %s", Message);
%d sert à afficher une variable définie comme un entier.
Exemple :
new NbJoueurs = 17;
printf ("Nombre de joueurs : %d", Valeur);
Il existe aussi %f pour afficher un variable défini comme un nombre à virgule flottante.
Exemple :
new Float:X = 1623.57;
printf ("Valeur de X : %f", X);
et %c pour afficher un variable définie comme un caractère (ou pour afficher un caractère d'une chaîne de caractères).
Exemple :
new Alphabet[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf ("La huitieme lettre de l'alphabet est %c", Alphabet[7]); // L'indice dans le tableau commence à 0
NB : la fonction printf sert à l'affichage dans le console du serveur. Elle est très utile quand on veut débugger un bout de script.
Il peut y avoir plusieurs % dans un même format (la chaîne qui contient les %). Et l'ordre des % doit être le même que celui des varaiables qu'ils représentent.
Exemple :
new Chaine[27] = "Ceci est un chaine";
printf ("La triosième lettre de %s est %c", Chaine, Chaine[2]); // L'indice dans le tableau commence à 0
++
Syg
SUPER UTILE !!!!! merci beaucoup a toi ! :cheers
-
:blink "A"
c'est tout ce que j'ais a dire ^^
"A"
Voila comment tu me laisse syg
"A"
Bah au moins on sais ce que c'est maintenant ^^
Mercid e ta réponse ;) ++
-
Sans vouloir réduire le condensé de Syg,
tout ce qu'il a dit est dans le MANUEL PAWN que vous devriez peut-être lire parce que ce genre de choses ce sont les bases...
Bon après c'est sûr que Syg l'a résumé de façon exemplaire :D
-
manuel pawn je le lirai demain (oups, c est ce que j ai dit hier, et avant-hier,et ...) :lmao