11.12.2014, 18:27
Vocк deve estar usando strtok.
Entгo, quando vocк digita um comando, a callback OnPlayerCommandText nгo separa o comando dos parвmetros.
Digamos que tenha o comando /vida e tenha um ъnico parвmetro que seja o id.
E eu digito " /vida 0 ".
Se vocк nгo usar sscanf para separar os comandos dos parвmetros no comeзo da callback:
Vocк vai ter que usar strtok novamente ou separar dentro do comando:
Entгo, quando vocк digita um comando, a callback OnPlayerCommandText nгo separa o comando dos parвmetros.
Digamos que tenha o comando /vida e tenha um ъnico parвmetro que seja o id.
E eu digito " /vida 0 ".
Se vocк nгo usar sscanf para separar os comandos dos parвmetros no comeзo da callback:
pawn Код:
new cmd[50 char], params[100 char];
unformat(cmdtext, "s[50]S( )[100]",cmd,params);
pawn Код:
if(strcmp(cmd, "/vida", true) == 0)
{
new id[128] = strtok(cmdtext, idx);
if(!strlen(id)) return SendClientMessage(playerid, -1, "/vida [id]");
SetPlayerHealth(strval(id), 100.0);
return 1;
}
// Separar o comando dos parвmetros:
if(strcmp(cmd, "/vida", true) == 0)
{
new cmd[30], id;
// cmd irб armazenar o comadando. Ex: se eu digitar /vida 0 , o /vida vai ficar armazenado dentro da string cmd.
// o id irб armazenar o id do jogador escolhido, se eu digitar /vida 10 , o 10 vai ficar armazenado na variбvel.
if(sscanf(cmdtext, "s[30]u", cmd, id)) return SendClientMessage(playerid, -1, "/vida [id]");
SetPlayerHealth(id, 100.0);
return 1;
}