09.12.2012, 01:56
Bom, eu dou admin para alguem, e ela reloga as vezes ainda estб com adm, e as vezes nгo '-' .
sabe o que pode ser ? os codes abaixo ...
Fico lendo esse code, varias e varias vezes, tentando entender cada palavra, eu atй entendo, mas parece tudo normal, para salvar.
nгo sei se tem ligaзгo mas o /infoadm tambйm nгo funciona.
ele fica todo estranho
vou postar ele tb
vou atй postar o Admins.cfg
E tem uns 7 administradores.
obg, eu tentei fazer um sistema de adm ... dificil, sу quero arrumar isso ;3
nгo precisa fazer, apenas me instrua .
obg ~
cumpts,
sabe o que pode ser ? os codes abaixo ...
pawn Код:
forward AdmsVaga();
forward LoadAdm();
forward SaveAdm();
pawn Код:
enum Admin
{
gMembro[MAX_PLAYER_NAME],AdminVaga,
};
pawn Код:
new AdmInfo[31][Admin];
pawn Код:
public AdmCheck(playerid){new idx = 0;while(idx < sizeof(AdmInfo))
{
if(strcmp(AdmInfo[idx][gMembro],PlayerName(playerid), true ) == 0 )
{
return true;
}idx++;
}
return 0;
}
public AdmsVaga()
{
new storedcopname[64];
new File: file = fopen("BrasilPL/Admins.cfg", io_read);
if (file)
{
new valtmp[MAX_PLAYER_NAME];
while (fread(file, valtmp) > 0){strmid(storedcopname, valtmp, 0, strlen("Vazio"), 255);
if ((strcmp(storedcopname, "Vazio", true, strlen("Vazio")) == 0) && (strlen("Vazio") == strlen(storedcopname)))
{
fclose(file);VagaSobrando = 1;return true;}}}fclose(file);VagaSobrando = 0;
return 0;
}
public SaveAdm()
{
new idx;new File: file2;
while (idx < sizeof(AdmInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%s,%d\n",AdmInfo[idx][gMembro],AdmInfo[idx][AdminVaga]);
if(idx == 0)
{
file2 = fopen("BrasilPL/Admins.cfg", io_write);
}
else
{
file2 = fopen("BrasilPL/Admins.cfg", io_append);
}
fwrite(file2, coordsstring);idx++;fclose(file2);
}
return true;
}
public LoadAdm()
{
new arrCoords[2][64];
new strFromFile2[256];
new File: file = fopen("BrasilPL/Admins.cfg", io_read);
if (file){new idx = 0;
while(idx < sizeof(AdmInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
strmid(AdmInfo[idx][gMembro], arrCoords[0], 0, strlen(arrCoords[0]), 255);
AdmInfo[idx][AdminVaga] = strval(arrCoords[1]);idx++;
}
}
fclose(file);
return true;
}
pawn Код:
pAdmin // <--- ja estб definido :D
pawn Код:
if(strcmp(cmd, "/daradmin", true) ==0 )
{
GetPlayerName(playerid, sendername, 256);
if (strcmp(sendername,"peido_jubileu",true)==0 || strcmp(sendername,"Star_Away",true)==0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /daradmin [ id ] [Level 0 б 1341]");
return true;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
GetPlayerName(playerid, sendername, 256);
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pAdmin] = level;
printf("ADMIN CMD: %s has promoted %s to a level %d admin.", sendername, giveplayer, level);
format(string, sizeof(string), " Voce foi promovido para level %d de Admin - Por %s", level, sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " Voce promoveu o(a) %s Para o level %d de Admin.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "%s Promoveu %s a adm level %d ",sendername,giveplayer,level);
}
}
SendClientMessage(playerid, COLOR_LIGHTGREEN, "[BML]: Voce nгo esta autorizado a usar este comando!");
}
}
return true;
}
pawn Код:
public OnPlayerConnect(playerid) // nessa callback (acho que й esse o nome) tem os seguintes codes.
PlayerInfo[playerid][pAdmin] = 0;
pawn Код:
public OnPlayerRegister(playerid, password[])
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
public OnPlayerLogin(playerid,password[])
if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
//========================Ainda no OnPlayerLogin===========================================
if (AdmCheck(playerid) == 0 && PlayerInfo[playerid][pAdmin] > 0)//teste adminfo
{
PlayerInfo[playerid][pAdmin] = 0;
SendClientMessage(playerid, COLOR_YELLOW, "[BHW]: Vocк nгo й mais um Administrador.");
}
else if(PlayerInfo[playerid][pAdmin] > 0)
{
format(string2, sizeof(string2), "[BHW]: Vocк Logou Como Administrador Level [%d].",PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid, COLOR_YELLOW,string2);
}
pawn Код:
OnPlayerUpdate(playerid)
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
pawn Код:
forward OnPlayerSave(playerid);
public OnPlayerSave(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[64];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "Contas/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[32];
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
}
}
}
return true;
}
pawn Код:
stock ChecarAdmin(playerid)
{
new viptipo[128];
if(PlayerInfo[playerid][pAdmin] == 0 || PlayerInfo[playerid][pAdmin] == 0)
{
format(viptipo,sizeof(viptipo),"Jogador");
}
if(PlayerInfo[playerid][pAdmin] >= 1)
{
format(viptipo,sizeof(viptipo),"Administrador");
}
if(PlayerInfo[playerid][pHelper] >= 1)
{
format(viptipo,sizeof(viptipo),"Helper");
}
return viptipo;
}
Fico lendo esse code, varias e varias vezes, tentando entender cada palavra, eu atй entendo, mas parece tudo normal, para salvar.
nгo sei se tem ligaзгo mas o /infoadm tambйm nгo funciona.
ele fica todo estranho
vou postar ele tb
pawn Код:
if (strcmp(cmd, "/infoadm", true) == 0 || strcmp(cmd, "/infoadmin", true) == 0 || strcmp(cmd, "/infoadmins", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 1)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo tem autorizaзгo para usar esse comando.");
return true;
}
new lol = 0;
new arquivo[128];
SendClientMessage(playerid, COLOR_WHITE, "|______________[ Admins do Server ]______________|");
while (lol < sizeof(AdmInfo))
{
if(lol == 0)
{
format(string, sizeof(string), "Dono: %s", AdmInfo[0][gMembro]);
SendClientMessage(playerid, COLOR_AZULBB, string);
}
else
{
if(strcmp(AdmInfo[lol][gMembro],"Vazio",true) != 0)
{
if(PlayerInfo[playerid][pAdmin] == DONO)
{
format(arquivo, sizeof(arquivo), "Contas/%s.ini",AdmInfo[lol][gMembro]);
format(string, sizeof(string), "Vaga %d: %s, Cargo: %d", lol, AdmInfo[lol][gMembro],dini_Int(arquivo,"AdminLevel"));
SendClientMessage(playerid, COLOR_AZULBB, string);
}
else
{
format(arquivo, sizeof(arquivo), "Contas/%s.ini",AdmInfo[lol][gMembro]);
format(string, sizeof(string), "Vaga %d: %s", lol, AdmInfo[lol][gMembro]);
SendClientMessage(playerid, COLOR_AZULBB, string);
}
}
}
lol++;
}
return true;
}
pawn Код:
1
,0
,0
Vazio,0
peido_jubileu,0
Star_Away,0
Star_Away,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
Vazio,0
obg, eu tentei fazer um sistema de adm ... dificil, sу quero arrumar isso ;3
nгo precisa fazer, apenas me instrua .
obg ~
cumpts,