Sobre valores solicitados no comando -
loukofire - 15.01.2015
gostaria de saber como fazer uma verificacao de texto e valor no comando.
E se puderem poderiam verificar se tem como simplificar mais o comando? pois achei muito estranho ter o cmd e tmp no comando.Caso eu utilize um so ocorre alguns bugs dentro do game como aparecer "USE: /setaradmin"
Exemplo:
Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
new string[512 char];
new sendername[MAX_PLAYER_NAME];
new cmd[128];
new tmp[128];
new giveplayer[MAX_PLAYER_NAME];
new idx;
cmd = strtok(cmdtext, idx);
GetPlayerName(playerid, sendername, sizeof(sendername));
if (strcmp("/setaradmin", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /setaradmin [playerid/ParteDoNome] [0-1338]");
return 1;
}
new playa;
new admin;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
admin = strval(tmp);
if(PlayerInfo[playerid][pAdmin] >= 0)// alterar depois
{
if(admin < 0 || admin > 1338) { SendClientMessage(playerid, COLOR_GRAD2, " Escolha um nivel de admin de 0 a 1338 !"); return 1; }
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
PlayerInfo[playa][pAdmin] = admin;
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
format(string, 256, "[ADMIN]: %s Acabou de dar Admin level %d para %s's (%d).", sendername,admin,giveplayer,playa);
SendClientMessage(playa, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "** %s (%d) Setou seu Admin level para %d !",sendername,playerid,admin);
SendClientMessage(playa, COLOR_LIGHTBLUE, string);
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s Setou %s's para Admin level %d",d,m,y,h,mi,s,sendername,giveplayer,admin);
GiveLog(string);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "** voce nao pode usar este comando!");
return 1;
}
}
return 1;
}
return 1;
}
Re: Sobre valores solicitados no comando -
[BOPE]Seu._.Madruga - 15.01.2015
Bom nгo entendi muito oque vocк quis dizer, porйm...
Se a variбvel admin obter um valor menor que "0" ou um valor maior que "1338" retornarб no chat estб mensagem: Escolha um nivel de admin de 0 a 1338 !
PHP код:
if(admin < 0 || admin > 1338) return SendClientMessage(playerid, COLOR_GRAD2, "Escolha um nivel de admin de 0 a 1338 !");
Se o ID do player que vocк digitou no comando nгo estiver online, ele retornarб estб mensagem no chat: Este player nгo estб conectado no servidor
PHP код:
if(!IsPlayerConnected(playa)) return SendClientMessage(playerid, COLOR_GRAD2, "Este player nгo estб conectado no servidor");
Re: Sobre valores solicitados no comando -
MultiKill - 15.01.2015
Olhe isto:
http://forum.sa-mp.com/showpost.php?...postcount=1141
E olhando tutoriais de como usar sscanf e um processador de comandos, como ycmd, vocк conseque usar sscanf e strcmp.
Olhe este tutorial do PT:
https://sampforum.blast.hk/showthread.php?tid=460056
Recomendo vocк usar um processador de comandos em vez de usar strcmp para fazer comandos.
Fazendo isto o comando vai ficar mais simplificado e melhor de se ver.
Re: Sobre valores solicitados no comando -
loukofire - 15.01.2015
eu vou corrigir essa parte de menor q 0 . Mas gostaria de saber uma coisa . Por que que e criado duas vezes o tmp = strtok(cmdtext, idx); e pq n usar o cmd = strtok(cmdtext, idx);
e como criar uma mensagem quando o cara n digitar nenhum valor de nivel de admin aparecer algo escrito.
Re: Sobre valores solicitados no comando -
[BOPE]Seu._.Madruga - 15.01.2015
O primeiro й para o espaзo de "/setaradmin e [ID DO PLAYER]"
O segundo й para o espaзo entre "[ID DO PLAYER] e [0-1338 LEVEL ADMIN]"