SA-MP Forums Archive
[Ajuda] ajuda comando adm - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] ajuda comando adm (/showthread.php?tid=460434)



ajuda comando adm - Douglas651 - 28.08.2013

/avisar e /punir


gostaria de adicionar esses comandos no meu server mas nao consigo quero que seja tipo assim se puder eu aviso ai se ele chegar a 3 avisos ele e kickado

e se receber 3 puniзoes e banido


Obrigado a quem puder ajudar


Respuesta: ajuda comando adm - TorresPutado - 28.08.2013

Quote:
Originally Posted by Douglas651
Посмотреть сообщение
/avisar e /punir


gostaria de adicionar esses comandos no meu server mas nao consigo quero que seja tipo assim se puder eu aviso ai se ele chegar a 3 avisos ele e kickado

e se receber 3 puniзoes e banido


Obrigado a quem puder ajudar
Tente:
pawn Код:
if(strcmp(cmd, "/avisar", true) == 0) {
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(pAdmin[playerid] == 1 || pAdmin[playerid] == 2 || pAdmin[playerid] == 3 || pAdmin[playerid] == 4 || pAdmin[playerid] == 5){
new tmp[256];
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, "Digite: /avisar [id] [motivo]");
return 1;
}
plid = strval(tmp);
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
if(IsPlayerConnected(plid)){
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))
{
SendClientMessage(playerid, Vermelho, "Uso: /banir [id] [motivo]");
}else{
aviso[plid]+=1;
if(aviso[plid]>= 3){
format(string, sizeof(string), "(INFO) %s foi kickado por receber 3 avisos!",pname);
SendClientMessageToAll(tcadm, string);
Kick(plid);
}
format(string, sizeof(string), "(INFO) O administrador %s avisou o jogador %s (Motivo: %s) (%d/3)", aname,pname,result,aviso[plid]);
SendClientMessageToAll(tcadm, string);
}
}else{
format(string, sizeof(string), " (ERRO) ID %d invбlido!", plid);
SendClientMessage(playerid, Vermelho, string);
}
}
return 1;
}
Retirei da minha GM.


Re: Respuesta: ajuda comando adm - PT - 28.08.2013

Quote:
Originally Posted by TorresPutado
Посмотреть сообщение
Tente:
pawn Код:
if(strcmp(cmd, "/avisar", true) == 0) {
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(pAdmin[playerid] == 1 || pAdmin[playerid] == 2 || pAdmin[playerid] == 3 || pAdmin[playerid] == 4 || pAdmin[playerid] == 5){
new tmp[256];
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, "Digite: /avisar [id] [motivo]");
return 1;
}
plid = strval(tmp);
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
if(IsPlayerConnected(plid)){
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))
{
SendClientMessage(playerid, Vermelho, "Uso: /banir [id] [motivo]");
}else{
aviso[plid]+=1;
if(aviso[plid]>= 3){
format(string, sizeof(string), "(INFO) %s foi kickado por receber 3 avisos!",pname);
SendClientMessageToAll(tcadm, string);
Kick(plid);
}
format(string, sizeof(string), "(INFO) O administrador %s avisou o jogador %s (Motivo: %s) (%d/3)", aname,pname,result,aviso[plid]);
SendClientMessageToAll(tcadm, string);
}
}else{
format(string, sizeof(string), " (ERRO) ID %d invбlido!", plid);
SendClientMessage(playerid, Vermelho, string);
}
}
return 1;
}
Retirei da minha GM.
sua gm devia ser atualizada e adoptar um visual mais moderno, por exemplo

para comecar usar os code identados, usar sscanf e um processador de comandos como y_commands, zcmd, etc.. so escolher.

isso trara muito mais vantagens, desde velocidade entre outras