[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