06.07.2016, 13:38
o return estб atrapalhando...
Lembre-se de que sempre que for utilizar IF e ELSE, sendo que nгo terб mais nenhum cуdigo posteriormente, nunca adicione return porque nгo hб necessidade, jб que haverб apenas resultados exatos (strcmp й uma exceзгo na callback OnPlayerCommandText, jб que possui muitas outras comparaзхes)...
Maneira errada:
Maneira correta:
Estб muito claro que haverб apenas uma comparaзгo exata, se "numero" for igual a 1 ou 2 ou 3 resultara em uma mensagem com seus respectivos nъmeros, caso "numero" for diferente de 1 ou 2 ou 3 resultarб em uma mensagem com N/A.
Код:
if (strcmp("/anunciar trombar", cmdtext, true) == 0) { if(Player[playerid][pAdmin] >= 1 || Player[playerid][pOrganizador] >= 1 || Player[playerid][pPux] >=1) { if(GetPVarInt(playerid, "UsouCMD") == 1) return SendClientMessage(playerid, COR_ERRO, "Aguarde 10 segundos para usa esse comando novamente! "); SetTimerEx("usarcmd",10000,false,"i",playerid); SetPVarInt(playerid, "UsouCMD" , 1); new t = Player[playerid][pTorcida]; GivePlayerMoney(playerid, -300); format(string, sizeof(string), "O %s %s da %s estб chamando alguma torcida para Trombar, /PM [%d]", AccountName(playerid), getPName(playerid), Torcidas[t][tNome], playerid); SendClientMessageToAll(0xFFFF00AA, string); } else { SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo tem permissгo para usar este comando!"); } return 1; }
Maneira errada:
Код:
if(numero == 1) return SendClientMessage(playerid, -1, "1"); else if(numero == 2) return SendClientMessage(playerid, -1, "2"); else if(numero == 3) return SendClientMessage(playerid, -1, "3"); else return SendClientMessage(playerid, -1, "N/A");
Код:
if(numero == 1) SendClientMessage(playerid, -1, "1"); else if(numero == 2) SendClientMessage(playerid, -1, "2"); else if(numero == 3) SendClientMessage(playerid, -1, "3"); else SendClientMessage(playerid, -1, "N/A");