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

Titre: Crash de mon serveur
Posté 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);
Titre: Re : Crash de mon serveur
Posté par: vincentdu90 le 04 Novembre 2007, 10:31:49
As-tu compiler ton script ?
Titre: Re : Crash de mon serveur
Posté par: Sismix84 le 04 Novembre 2007, 10:33:06
Coment ça ?
Titre: Re : Crash de mon serveur
Posté par: vincentdu90 le 04 Novembre 2007, 10:34:01
Ben vu que tu a rajouter quelque chose dans ton script tu as compilé ton script ?
Titre: Re : Crash de mon serveur
Posté par: Sismix84 le 04 Novembre 2007, 10:34:44
Bien sûr que oui
Titre: Re : Crash de mon serveur
Posté par: vincentdu90 le 04 Novembre 2007, 10:36:53
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)
Titre: Re : Crash de mon serveur
Posté par: Sismix84 le 04 Novembre 2007, 10:50:06
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
Titre: Re : Crash de mon serveur
Posté par: vincentdu90 le 04 Novembre 2007, 11:12:05
Ben la on peut pas trop savoir avec que ça .
Titre: Re : Crash de mon serveur
Posté par: Syg le 04 Novembre 2007, 12:46:42
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
Titre: Re : Crash de mon serveur
Posté par: [StAfF]MaN le 04 Novembre 2007, 13:03:31
C'est quoi la différence entre %s et %d ??? ^^
Titre: Re : Crash de mon serveur
Posté par: Syg le 04 Novembre 2007, 15:13:57
%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
Titre: Re : Crash de mon serveur
Posté par: NatiVe™ le 04 Novembre 2007, 15:23:22
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.
Titre: Re : Re : Crash de mon serveur
Posté par: R@f le 04 Novembre 2007, 15:48:13
%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
Titre: Re : Crash de mon serveur
Posté par: [StAfF]MaN le 04 Novembre 2007, 15:49:02
 :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 ;) ++
Titre: Re : Crash de mon serveur
Posté par: spykerc8 le 04 Novembre 2007, 16:26:16
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
Titre: Re : Crash de mon serveur
Posté par: R@f le 04 Novembre 2007, 16:38:22
manuel pawn je le lirai demain (oups, c est ce que j ai dit hier, et avant-hier,et ...)  :lmao