[Ajuda] Salvar administrador ~
#1

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 ...

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 On‌PlayerLogin===========================================
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;
    }
vou atй postar o Admins.cfg

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
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,
Reply


Messages In This Thread
Salvar administrador ~ - by StarAway - 09.12.2012, 01:56
Respuesta: Salvar administrador ~ - by TugaBR - 09.12.2012, 03:58
Re: Salvar administrador ~ - by Gleisson_. - 09.12.2012, 11:17
Re: Salvar administrador ~ - by StarAway - 09.12.2012, 13:32
Respuesta: Salvar administrador ~ - by TugaBR - 09.12.2012, 14:03
Re: Respuesta: Salvar administrador ~ - by StarAway - 10.12.2012, 00:39
Re: Salvar administrador ~ - by StarAway - 10.12.2012, 04:17
Re: Salvar administrador ~ - by smiiir - 10.12.2012, 08:02
Re: Salvar administrador ~ - by StarAway - 10.12.2012, 09:45

Forum Jump:


Users browsing this thread: 2 Guest(s)