GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: .:: Miguel .:: le 14 Février 2012, 18:53:21
-
Salut,
J'ai crée un /v infos mais le problème quand je tape la cmds sa fait comme si elle n'existé pas :/
if(strcmp(x_nr,"infos",true) == 0)
{
new StatsVString[1614];
new carkey1 = PlayerInfo[playerid][pPcarkey]; // La on carkey pour évite de mettre PlayerInfo (pour que sa face moins long)
new carkey2 = PlayerInfo[playerid][pPcarkey2]; // La on carkey pour évite de mettre PlayerInfo (pour que sa face moins long)
new carkey3 = PlayerInfo[playerid][pPcarkey3]; // La on carkey pour évite de mettre PlayerInfo (pour que sa face moins long)
format(StatsVString,sizeof(StatsVString),"VehModel:[%s] VehValue:[%d] VehLocked:[%d]\nVehModel:[%s] VehValue:[%d] VehLocked:[%d]\nVehModel:[%s] VehValue:[%d] VehLocked:[%d]",CarInfo[carkey2][cDescription], CarInfo[carkey2][cValue], CarInfo[carkey1][cLock],CarInfo[carkey2][cDescription], CarInfo[carkey2][cValue], CarInfo[carkey2][cLock], CarInfo[carkey3][cDescription], CarInfo[carkey3][cValue], CarInfo[carkey3][cLock]); // Le dialogue
ShowPlayerDialog(playerid,1235,DIALOG_STYLE_MSGBOX,"Stats de vos vehicule",StatsVString,"Valider","");
return 1;
}
-
Dans la fonction évènementielle OnPlayerCommandText, la chaîne cmdtext ne sera jamais égal à infos, dans TOUS les cas car cette fonction est appelé seulement si la chaîne envoyé commence par un slash (/).
Après, il faut voir la valeur de la chaîne (j'espère que c'est une chaîne) de la variable x_nr.
-
new x_nr[64];
x_nr = strtok(cmdtext, idx);
La chaine N_nr
Après pas trop bien compris mais il dois etre dans un /vinfo et donc pas /v info ?
-
public OnPlayerCommandText(playerid, cmdtext[])
{
new idx = 0;
new x_nr[64] = strtok(cmdtext, idx);
if (strcmp(x_nr, "/informations", false, 13) == 0)
{
// DO WORK
return 1;
}
return 0;
}
-
Hum...Donc sa marcherait avec le /v info meme si sais pas dans la variable cmd /v ?
-
public OnPlayerCommandText(playerid, cmdtext[])
{
new idx = 0;
new x_nr[64] = strtok(cmdtext, idx);
if (strcmp(x_nr, "/v", false, 2) == 0)
{
new cmd[64] = strtok(cmdtext, idx);
if (strcmp(cmd, "info", false, 4) == 0)
{
// DO WORK
}
return 1;
}
return 0;
}
-
sa marche pas sa ?
(Le début de la CMDS)
if(strcmp(cmd, "/v", true) == 0 || strcmp(cmd, "/vehicule", true) == 0) // By LordMan
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Vous devez d'abord vous loggez ! ");
return 1;
}
new x_nr[64];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_WHITE, "Note: (/v)ehicule [nom]");
SendClientMessage(playerid, COLOR_WHITE, "Noms Disponibles: garer, fermer(1-3), vendre, vendrea, couleur , info, neon(-5000$)");
return 1;
}
if(strcmp(x_nr,"info",true) == 0)
{
new StatsVString[1614];
new carkey1 = PlayerInfo[playerid][pPcarkey];
new carkey2 = PlayerInfo[playerid][pPcarkey2];
new carkey3 = PlayerInfo[playerid][pPcarkey3];
format(StatsVString,sizeof(StatsVString),"VehModel:[%s] VehValue:[%d] VehLocked:[%d]
VehModel:[%s] VehValue:[%d] VehLocked:[%d]
VehModel:[%s] VehValue:[%d] VehLocked:[%d]",CarInfo[carkey2][cDescription], CarInfo[carkey2][cValue], CarInfo[carkey1][cLock],CarInfo[carkey2][cDescription], CarInfo[carkey2][cValue], CarInfo[carkey2][cLock], CarInfo[carkey3][cDescription], CarInfo[carkey3][cValue], CarInfo[carkey3][cLock]);
ShowPlayerDialog(playerid,1235,DIALOG_STYLE_MSGBOX,"Stats de vos vehicule",StatsVString,"Valider","");
return 1;
}
Double post
UP
-
UP
-
Ici, je peux prédire que à la ligne:
x_nr = strtok(cmdtext, idx);
La variable x_nr contiendra soit /v soit /vehicule.
-
Bah même avec ee /vinfo sa marche pas tfaçon comme si la CMDS existé pas
-
Fait du pas à pas avec des lignes qui indique où ton code se trouve (printf, SendClientMessage).
-
Bah je vois pas mon erreur :/