GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: pinouf42 le 28 Mai 2008, 13:11:21

Titre: Comment séparer les commandes sinon error 055
Posté par: pinouf42 le 28 Mai 2008, 13:11:21
Bonjour, j'ai un petit probleme tout con: je voudrais mettre plusieurs commandes comme /s ou /r ou bien des teleportation mais seulement comment les separer dans Onplayercommandtext??? que mettre entre. Voici comment je les met rectifiez moi svp.

public OnPlayerCommandText(playerid, cmdtext[])

{
if (strcmp("/repair", cmdtext, true)==0)
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
GameTextForPlayer(playerid,"Moteur repare",500,1);
}
format(error, sizeof (error), "Commande inconnue: %s",cmdtext);
return 1;
}
{
if (strcmp("/kill", cmdtext, true, 5) == 0)
{
SetPlayerHealth(playerid, 0.0);
return 1;
}
return 0;
}
{
if (strcmp("/paradis", cmdtext, true)==0)
{
SetPlayerPos(playerid,2318.96,1424.59,42.55);
return 1;
}
return 0;
}
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: NatiVe™ le 28 Mai 2008, 13:26:35
if (strcmp("/repair", cmdtext, true)==0)
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
GameTextForPlayer(playerid,"Moteur repare",500,1);
}
format(error, sizeof (error), "Commande inconnue: %s",cmdtext);
return 1;
}

if (strcmp("/kill", cmdtext, true, 5) == 0)
{
SetPlayerHealth(playerid, 0.0);
return 1;
}

if (strcmp("/paradis", cmdtext, true)==0)
{
SetPlayerPos(playerid,2318.96,1424.59,42.55);
return 1;
}

NV.

Titre: Re : Comment séparer les commandes sinon error 055
Posté par: Bayshore le 28 Mai 2008, 13:37:34
Ne pas oubliez d'indenter (mettre des tabulations) :)
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: Nikko™ le 28 Mai 2008, 13:46:09
Pas forcément...

Cest bizar qu'il mette un format error dans UNE seule commande ..  :blink

++
nikko
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: pinouf42 le 28 Mai 2008, 13:50:35
Je debute moi ! Merci à vous.
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: pinouf42 le 28 Mai 2008, 14:10:00
voila ce que ça me met:

C:\samp022server.win32\gamemodes\test.pwn(196) : error 010: invalid function or declaration
C:\samp022server.win32\gamemodes\test.pwn(199) : error 010: invalid function or declaration
C:\samp022server.win32\gamemodes\test.pwn(202) : error 010: invalid function or declaration
C:\samp022server.win32\gamemodes\test.pwn(205) : error 010: invalid function or declaration
C:\samp022server.win32\gamemodes\test.pwn(208) : error 010: invalid function or declaration
C:\samp022server.win32\gamemodes\test.pwn(275) : warning 203: symbol is never used: "error"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: Nikko™ le 28 Mai 2008, 14:16:06
enleve le error de ta commande repair

++
nikko
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: CeMondeLeVotre le 28 Mai 2008, 14:26:04
ce n'est pas que le probleme il a des error de la ligne 196 a 275 donc c'est un autre morceau que l 'on connait pas qui n 'est pas bon.
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: Nikko™ le 28 Mai 2008, 14:26:36
envoi tes lignes ou tu a des erreurs

++
nikko
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: pinouf42 le 28 Mai 2008, 14:33:39
g reussi a rectifier quelques erreurs et j'ai fait un nettoyage de certaines ligne donc voici les nouvelles erreurs:
C:\samp022server.win32\gamemodes\test.pwn(176) : error 010: invalid function or declaration
C:\samp022server.win32\gamemodes\test.pwn(179) : error 010: invalid function or declaration
C:\samp022server.win32\gamemodes\test.pwn(181) : error 010: invalid function or declaration
C:\samp022server.win32\gamemodes\test.pwn(184) : error 010: invalid function or declaration
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

et les lignes correspondante:

167 public OnPlayerCommandText(playerid, cmdtext[])
168 {
169 if (strcmp("/repair", cmdtext, true)==0)
170 {
171 SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
172 GameTextForPlayer(playerid,"Moteur repare",500,1);
173 }
174 return 1;
175 }
176 if (strcmp("/kill", cmdtext, true, 5) == 0)
177 {
178 SetPlayerHealth(playerid, 0.0);
179 return 1;
180 }
181 if (strcmp("/paradis", cmdtext, true)==0)
182 {
183 SetPlayerPos(playerid,2318.96,1424.59,42.55);
184 return 1;
185 }
Titre: Re : Re : Comment séparer les commandes sinon error 055
Posté par: Bayshore le 28 Mai 2008, 14:39:19
Re,

si tu avait indenter ton code tu aurait tout de suite vu que l'accolade à la ligne 175 n'a rien à faire là. :)

++
Alexandre
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: pinouf42 le 28 Mai 2008, 14:45:13
si je ne la mais pas sa m'affiche une centaine d'erreur !
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: [StAfF]MaN le 28 Mai 2008, 16:10:45
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/repair", cmdtext, true)==0)
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
GameTextForPlayer(playerid,"Moteur repare",500,1);
return 1;
}

if (strcmp("/kill", cmdtext, true, 5) == 0)
{
SetPlayerHealth(playerid, 0.0);
return 1;
}
if (strcmp("/paradis", cmdtext, true)==0)
{
 SetPlayerPos(playerid,2318.96,1424.59,42.55);
return 1;
}
}

tu ouvre ton OnPlayerCommand mais tu le ferme au mauvais endroit, tu doit le fermer a la fin ;)
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: UrbanGhetto le 28 Mai 2008, 16:19:38
Je vais aussi t'expliquer,

Quand tu fais une accolade } ou { dans n'importe quoi, Exemple une commande :

Code: (cpp) [Sélectionner]
if (strcmp("/kill", cmdtext, true, 5) == 0)
{ /* Ici, c'est l'accolade pour Ouvrir la commande (Quand s'est tourné vers la gauche c'est pour ouvrir)*/
SetPlayerHealth(playerid, 0.0);
return 1;
}/* Ici, c'est pour fermer, c'est le contraire */

Rien de plus facile, l'accolade c'est pour que le script sache quand un truc s'ouvre et se ferme.

On va aller un peux plus loin, 2 accolades dans 2 autres :

Code: (cpp) [Sélectionner]
if (strcmp("/kill", cmdtext, true, 5) == 0)
{ /* Ici, c'est l'accolade pour Ouvrir la commande (Quand s'est tourné vers la gauche c'est pour ouvrir)*/

{ /* Ici, une autre accolade qui ouvre qui ne sert a rien, Mais ça marche quand même */
SetPlayerHealth(playerid, 0.0);
} /* Ici, c'est pour fermer l'autre accolade qui ne sert a rien */

return 1;
}/* Ici, c'est pour fermer, c'est le contraire */

En gros, Tu peux mettre autant d'accolades que tu veux, pour vu que ça ouvre et que ça ferme a un moment.

Mais attention, quand on fais 2 accolades dans 2 autres c'est pas toujours inutile, il y a des cas où c'est important, enfin, tu verras ça plus tard.
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: pinouf42 le 28 Mai 2008, 16:22:35
merci j'ai trouvé!!!! enfin mes hote pourront enfin profiter d'autre chose que la commande /aide !!!  :D :D :D
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: [StAfF]MaN le 28 Mai 2008, 16:25:36
Bah le cas des deux accolade c'est pour si tu a plusieurs if :


if (strcmp("/kill", cmdtext, true, 5) == 0)
{// Si la commande est tapée, on ouvre l'accolade

if(IsPlayerAdmin[playerid] == 1)
{ // On ouvre une autre Accolade puisqu'il y a un autre IF, ici la commande s'exécutera si le joueur tape la commande /kill et qu'il est admin ;)

SetPlayerHealth(playerid, 0.0);
} // tu ferme l'accoalde du If(IsPlayerAdmin...)

return 1; // tu return 1 pour qu'il n'y est pas d'interférence entre deux commandes (ça m'est déjà arrivé)
} // tu ferme l'accolade du if( "/kill" ...)

Voila ^^
Titre: Re : Comment séparer les commandes sinon error 055
Posté par: Nikko™ le 28 Mai 2008, 17:08:58
On peu mettre autant de condition qu'on veut ...
enfin faut pas abuser non plus

++
nikko