[AJUDA] Sistema de Corregedor -
Allanrokeiro - 25.11.2011
Nгo to conseguindo fazer o sistema de corregedor, por exemplo, quando vou digitar '/TirarLevel' da comandos invбlido, e quando logo na RCON pega certinho...
Vбriavel:
pawn Код:
new corregedor[MAX_PLAYERS];
/SetarC (Seta o Corregedor)
pawn Код:
if(strcmp(cmd, "/SetarC", true) == 0) {
if(!IsPlayerAdmin(playerid)) return 0;
new tmp[256];
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, 0x008040AA, "(ERRO) Use: /setarc [id].");
return 1;
}
plid = strval(tmp);
if(IsPlayerConnected(plid)){
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
dini_IntSet(file2, "corregedor",1);
SpawnPlayer(plid);
SendClientMessage(playerid, 0x00FF00AA, "| INFO | Corregedor Setado com sucesso");
SendClientMessage(plid, 0x00FF00AA, "| INFO | Um administrador setou vocк como corregedor!");
return 1;
}else{
SendClientMessage(playerid, Vermelho, "(ERRO) ID invбlido");
return 1;
}
}
/TirarC (Tira o corregedor do player)
pawn Код:
if(strcmp(cmd, "/tirarc", true) == 0) {
if(!IsPlayerAdmin(playerid)) return 0;
new tmp[256];
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, 0x008040AA, "(ERRO) Use: /tirarmod [id].");
return 1;
}
plid = strval(tmp);
if(IsPlayerConnected(plid)){
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
dini_IntSet(file2, "corregedor",0);
SpawnPlayer(plid);
SendClientMessage(playerid, 0x00FF00AA, "| INFO | Corregedor tirado com sucesso!");
SendClientMessage(plid, 0x00FF00AA, "| INFO | O administrador tirou seu corregedor!");
return 1;
}else{
SendClientMessage(playerid, Vermelho, "(ERRO) ID invбlido");
return 1;
}
}
/Corregedores (Vк os corregedores conectados)
pawn Код:
if(!strcmp(cmdtext, "/corregedores", true))
{
SendClientMessage(playerid,0x96D742AA, "~> Corregedores conectados:");
new count=0;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i)){
if(admin[i]){
new str[256];
new pname[24];
GetPlayerName(i, pname, 24);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
if(corregedor[i] == 1){
format(str,sizeof(str),"~ %s [ID %d]", pname,i);
}
SendClientMessage(playerid, 0xFFFFFFAA, str);
count++;
}
}
}
if(count == 0)
{
SendClientMessage(playerid, Vermelho, "{FF0000}~> {FFFFFF}Nenhum corregedor conectado ao servidor no momento!");
}
return 1;
}
Tem um probleminha com o /Corregedores, Quando digita /Corregedores sу aparece ''Corregedores conectados:'' e em baixo nгo aparece nada...
/TirarLevel (Tira lйveis do player que cometeu abuser, no mбximo 10).
pawn Код:
if(strcmp(cmd,"/TirarLevel", true)==0)
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(corregedor[playerid] == 1){
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк nгo tem permissгo!");
return 1;
}
if(corregedor[playerid] == 1 || IsPlayerAdmin(playerid)){
new tmp[256];
new plid, skin;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SendClientMessage(playerid, Vermelho, "Digite: /TirarLevel [id] [level]");
return 1;
}
plid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, "Digite: /TirarLevel [id] [level]");
return 1;
}
skin = strval(tmp);
if(skin > -1 || skin <= -11){
SendClientMessage(playerid, Vermelho, "| ERRO | Nгo й possivel tirar mais de 10 lйvels ou menos de 1!");
return 1;
}
skin = strval(tmp);
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
if(IsPlayerConnected(plid)){
format(string, sizeof(string), "* O corregedor %s tirou %d leveis de vocк.", aname, skin);
SendClientMessage(plid, tcadm, string);
format(string, sizeof(string), "* Vocк tirou %d leveis do jogador '%s'.", skin, pname);
SendClientMessage(playerid, Blue, string);
dini_IntSet(file2, "Level", dini_Int(file2, "Level")+skin);
return 1;
}else{
SendClientMessage(playerid, Vermelho, "(INFO) Jogador nгo conectado.");
return 1;
}
}
}
Salva certinho, mais nгo aparece no /Corregedores, e sу dб para usar /TirarLevel na RCON!
Se alguйm puder me ajudar, obrigado.
Re: [AJUDA] Sistema de Corregedor -
[NWD]Jim._.Carrey - 25.11.2011
Quote:
Originally Posted by Allanrokeiro
Nгo to conseguindo fazer o sistema de corregedor, por exemplo, quando vou digitar '/TirarLevel' da comandos invбlido, e quando logo na RCON pega certinho...
Vбriavel:
pawn Код:
new corregedor[MAX_PLAYERS];
/SetarC (Seta o Corregedor)
pawn Код:
if(strcmp(cmd, "/SetarC", true) == 0) { if(!IsPlayerAdmin(playerid)) return 0; new tmp[256]; new plid; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, 0x008040AA, "(ERRO) Use: /setarc [id]."); return 1; } plid = strval(tmp); if(IsPlayerConnected(plid)){ new pname[MAX_PLAYER_NAME]; GetPlayerName(plid, pname, MAX_PLAYER_NAME); format(file2, sizeof(file2), PASTA_CONTAS, pname); dini_IntSet(file2, "corregedor",1); SpawnPlayer(plid); SendClientMessage(playerid, 0x00FF00AA, "| INFO | Corregedor Setado com sucesso"); SendClientMessage(plid, 0x00FF00AA, "| INFO | Um administrador setou vocк como corregedor!"); return 1; }else{ SendClientMessage(playerid, Vermelho, "(ERRO) ID invбlido"); return 1; } }
/TirarC (Tira o corregedor do player)
pawn Код:
if(strcmp(cmd, "/tirarc", true) == 0) { if(!IsPlayerAdmin(playerid)) return 0; new tmp[256]; new plid; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, 0x008040AA, "(ERRO) Use: /tirarmod [id]."); return 1; } plid = strval(tmp); if(IsPlayerConnected(plid)){ new pname[MAX_PLAYER_NAME]; GetPlayerName(plid, pname, MAX_PLAYER_NAME); format(file2, sizeof(file2), PASTA_CONTAS, pname); dini_IntSet(file2, "corregedor",0); SpawnPlayer(plid); SendClientMessage(playerid, 0x00FF00AA, "| INFO | Corregedor tirado com sucesso!"); SendClientMessage(plid, 0x00FF00AA, "| INFO | O administrador tirou seu corregedor!"); return 1; }else{ SendClientMessage(playerid, Vermelho, "(ERRO) ID invбlido"); return 1; } }
/Corregedores (Vк os corregedores conectados)
pawn Код:
if(!strcmp(cmdtext, "/corregedores", true)) { SendClientMessage(playerid,0x96D742AA, "~> Corregedores conectados:"); new count=0; for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)){ if(admin[i]){ new str[256]; new pname[24]; GetPlayerName(i, pname, 24); format(file2, sizeof(file2), PASTA_CONTAS, pname); if(corregedor[i] == 1){ format(str,sizeof(str),"~ %s [ID %d]", pname,i); } SendClientMessage(playerid, 0xFFFFFFAA, str); count++; } } } if(count == 0) { SendClientMessage(playerid, Vermelho, "{FF0000}~> {FFFFFF}Nenhum corregedor conectado ao servidor no momento!"); } return 1; }
Tem um probleminha com o /Corregedores, Quando digita /Corregedores sу aparece ''Corregedores conectados:'' e em baixo nгo aparece nada...
/TirarLevel (Tira lйveis do player que cometeu abuser, no mбximo 10).
pawn Код:
if(strcmp(cmd,"/TirarLevel", true)==0) { new aname[MAX_PLAYER_NAME]; GetPlayerName(playerid, aname, MAX_PLAYER_NAME); format(file, sizeof(file), PASTA_CONTAS, aname); if(corregedor[playerid] == 1){ SendClientMessage(playerid, Vermelho, "| ERRO | Vocк nгo tem permissгo!"); return 1; } if(corregedor[playerid] == 1 || IsPlayerAdmin(playerid)){ new tmp[256]; new plid, skin; tmp = strtok(cmdtext, idx); if(!strlen(tmp)){ SendClientMessage(playerid, Vermelho, "Digite: /TirarLevel [id] [level]"); return 1; } plid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, Vermelho, "Digite: /TirarLevel [id] [level]"); return 1; } skin = strval(tmp); if(skin > -1 || skin <= -11){ SendClientMessage(playerid, Vermelho, "| ERRO | Nгo й possivel tirar mais de 10 lйvels ou menos de 1!"); return 1; } skin = strval(tmp); new pname[MAX_PLAYER_NAME]; GetPlayerName(plid, pname, MAX_PLAYER_NAME); format(file2, sizeof(file2), PASTA_CONTAS, pname); if(IsPlayerConnected(plid)){ format(string, sizeof(string), "* O corregedor %s tirou %d leveis de vocк.", aname, skin); SendClientMessage(plid, tcadm, string); format(string, sizeof(string), "* Vocк tirou %d leveis do jogador '%s'.", skin, pname); SendClientMessage(playerid, Blue, string); dini_IntSet(file2, "Level", dini_Int(file2, "Level")+skin); return 1; }else{ SendClientMessage(playerid, Vermelho, "(INFO) Jogador nгo conectado."); return 1; } } }
Salva certinho, mais nгo aparece no /Corregedores, e sу dб para usar /TirarLevel na RCON!
Se alguйm puder me ajudar, obrigado.
|
o.o COPY/PASTE RIAIRARIARI!
/\ Isso no /setarlevel - AVE MARIA!! VAI ESTUDAR POAR!!
Obs: corregedoria tem no server TSSA, ou seja nem a cara de pau de inventar algo nгo teve COPY/PASTEІ
Re: [AJUDA] Sistema de Corregedor -
ViniBorn - 25.11.2011
Identa o cуdigo cara. Isso aн tб uma confusгo sу.
Apenas os admins sгo corregedores?
Se vocк nгo estiver logado na rcon, vai retornar 0, coloca pra retornar uma mensagem
Re: [AJUDA] Sistema de Corregedor -
Allanrokeiro - 25.11.2011
Estou falando, tipo, quando tenta tirar leveis, nгo dб, sу quando loga na RCON que dб, mesmo setado corregedor, nгo dб para tirar level... dб comando invбlido.
Re: [AJUDA] Sistema de Corregedor -
.Unnamed - 26.11.2011
Que code mais mal identado cara. Chega a dar nojo :S
Re: [AJUDA] Sistema de Corregedor -
Sergiinhonike - 26.11.2011
Isso ta horrivel cara identa o codigo pf.
Alem dos problemas citados acima..
Faltou definir a Var "corregedor[plid] = 1;" no /sertarc e "corregedor[plid] = 0;" no /tirarc So fazendo isso que eles irгo ser relmente carregadores!!
Re: [AJUDA] Sistema de Corregedor -
Smoking_Script - 08.01.2013
Код:
dini_Set(file,"Corregedor","0");
Код:
dini_IntSet(file2, "Corregedor", mncorregedor);
Код:
if(strcmp(cmd,"/TirarLevel", true)==0)
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(corregedor[playerid] == 1){
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк nгo tem permissгo!");
return 1;
}
if(dini_Int(filene(aname),"Corregedor") >= 1){ //sу para corredores *-*
new tmp[256];
new plid, skin;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SendClientMessage(playerid, Vermelho, "Digite: /TirarLevel [id] [level]");
return 1;
}
plid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, "Digite: /TirarLevel [id] [level]");
return 1;
}
skin = strval(tmp);
if(skin > -1 || skin <= -11){
SendClientMessage(playerid, Vermelho, "| ERRO | Nгo й possivel tirar mais de 10 lйvels ou menos de 1!");
return 1;
}
skin = strval(tmp);
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
if(IsPlayerConnected(plid)){
format(string, sizeof(string), "* O corregedor %s tirou %d leveis de vocк.", aname, skin);
SendClientMessage(plid, tcadm, string);
format(string, sizeof(string), "* Vocк tirou %d leveis do jogador '%s'.", skin, pname);
SendClientMessage(playerid, Blue, string);
dini_IntSet(file2, "Level", dini_Int(file2, "Level")+skin);
return 1;
}else{
SendClientMessage(playerid, Vermelho, "(INFO) Jogador nгo conectado.");
return 1;
}
}
}
Nгo testei espero ter ajudado *-*