13.08.2010, 01:02
Quote:
Ela й relacionada ao 'Motivo'. Se o administrador digitar nada no motivo, co CMD nгo irб 'funcionar'.
|
STRTOK (muito parecida com split) й usada para Split uma string,isto й ela Split os Comandos Formando eles dessas Forma
'/comando [id]'
O Split й feito de forma com strlen entre outros whiles & Index,isto й ele busca por Caracteres Vazios '/comandos [id]' e Split.
Observe que hб uma espaзo entre [ID] e Comandos,esse espaзo serб cortado
Aqui o Cуdigo da Strtok que vocкs possam entender
pawn Код:
while ((index < length) && (string[index] > ' ')
Split = Dividir ou Cortar
Aqui a Funзгo Split para os que nгo conhecem
pawn Код:
stock split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc))
{
if(strsrc[i] == delimiter || i == strlen(strsrc))
{
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
pawn Код:
if(strcmp(cmd, "/forcartutorial", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(admtrabalhando[playerid] < 1) return SendClientMessage(playerid, COR_GRAD1, "Vocк nгo estб no Modo Administrador! (/trabalhar)");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COR_GRAD1, "Forma de Uso: /forcartutorial [ID do Jogador ou Nome do Jogador] [Motivo]");
new givepa;
givepa = strval(tmp);
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COR_GRAD2, "Forma de Uso: /forcartutorial [ID do Jogador ou Nome do Jogador] [Motivo]");
if(IsPlayerConnected(givepa))
{
GetPlayerName(givepa, giveplayer, sizeof(giveplayer));
PlayerInfo[givepa][pTut] = 2;
ShowPlayerDialog(givepa, 9, DIALOG_STYLE_MSGBOX, "•••• [Boas Vindas] ••••", "•Olб! Antes de Comeзarmos o Tutorial do Brazilian Way of Life[RPG BRASIL], iremos a uma breve explicaзгo.\n•Apуs essa explicaзгo, comeзara o Tutorial.\n•Poderб sair do Tutorial a qualquer Momento, apertando o botгo ‘Sair do SV’ Poderб sair do Tutorial a qualquer Momento, apertando o botгo ‘Sair do SV’.\n•Clique em Prуximo para Prosseguir ou em Sair do SV para voltar mais tarde.", "Confirma", "Sair do Sv");
format(string, sizeof(string), "* O Administrador %s [ID:%d] forзou o Jogador %s [ID:%d] a Refazer o Tutorial do BWL!!. O Motivo foi: %s", sendername, playerid, giveplayer, givepa, (result));
SendClientMessageToAll(COR_LIGHTBLUE,string);
}
else
{
SendClientMessage(playerid, COR_GRAD1, "O Jogador estб Offline");
}
}
else
{
SendClientMessage(playerid, COR_GREY, "Vocк nгo й um Administrador!");
}
}
return 1;
}