28.09.2011, 20:01
tipo de alguem souber um /setscore de mata mata e que so usase esse cmd logado pelo /rcon
if(strcmp(cmd,"/setscore", true)==0 && IsPlayerAdmin(playerid))
{
new string [256];
new tmp[256];
new plid, score;
new nomeentregador[MAX_PLAYER_NAME];
new nomerecebedor[MAX_PLAYER_NAME];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SendClientMessage(playerid, COLOR_BLACK_GRAY, "[ERRO DE SINTAXE] /setscore [id] [score]");
return 1;
}
plid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_BLACK_GRAY, "[ERRO DE SINTAXE] /setscore [id] [score]");
return 1;
}
score = strval(tmp);
if(IsPlayerConnected(plid)){
GetPlayerName(plid, nomerecebedor, sizeof(nomerecebedor));
GetPlayerName(playerid, nomeentregador, sizeof(nomeentregador));
format(string, sizeof(string), "O Admnistrador %s setou o score de %s para %d.", nomeentregador,nomerecebedor,score);
SendClientMessageToAll(COLOR_WHITE, string);
SetPlayerScore(plid,score);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_BLACK_GRAY, "Jogador nгo conectado.");
return 1;
}
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd,"/setscore", true)==0)
{
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, -1, "Vocк nгo й admin");
new tmp[128];
new pid, score;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
return SendClientMessage(playerid, -1, "Digite: /setscore [id] [score]");
pid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
return SendClientMessage(playerid, -1, "Digite: /setscore [id] [score]");
score = strval(tmp);
if(IsPlayerConnected(pid))
return SendClientMessage(playerid, -1,"player nao conectado");
SetPlayerScore(pid, score);
new string[100], Nome[24];
GetPlayerName(playerid, Nome, 24);
format(string, sizeof(string), "O Administrador %s[ID:%i] lhe deu %d de score", Nome, playerid, score);
SendClientMessage(pid, -1, string);
GetPlayerName(pid, Nome, 24);
format(string, sizeof(string), "Vocк deu a %s[ID:%i] %d de score.", Nome, pid, score);
SendClientMessage(playerid, -1, string);
return 1;
}
return 0;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
CMD:setscore(playerid, params[])
{
new
player2,
level;
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, -1, "Vocк nгo tem autorizaзгo para usar esse comando! :)");
if(sscanf(params, "ud", player2, level))
return SendClientMessage(playerid, -1, "Use: /setscore [id] [level]");
if(!IsPlayerConnected(player2))
return SendClientMessage(playerid, -1, "Jogador nгo conectado");
SetPlayerScore(player2, level);
return 1;
}
Sscanf + ZCMD simples .
PHP код:
|
й mais simples ?
ele terб que botar a plugin e mais uma include, e й mais simples ? |
Simples no sentido de nгo ter mensagens e talz kkk.
Mas depois que ele "instala" a sscanf e o zcmd no GM, fica bem mais simples, olha sу quantas linhas eu gastei pra fazer o sistema... |
E a optimizaзгo que da no codigo dele n vale?? o codigo do bruno й 50x mais rapido e mais seguro q o seu, strtok ja й mais q ultrapassado... faz a conta!
|