[Ajuda] Player virando adm do nada!!
#1

Meu problema e que players que entram com o id de algum adm off setado...ganha o level dele e apareзe no CMD:admins eu ja refiz o admins e nгo e nele o erro... eu deduzo que seja no salvar os dados abaixo o codigo de salvamento...alguem pode me ajudar esse bug ta me matando.. -.- vlw

pawn Код:
if(fexist(Arquivo(playerid)) && Logado[playerid] == true) {

        DOF2_SetInt(Arquivo(playerid), "Admin", ContaPlayer[playerid][Admin]);
        DOF2_SetInt(Arquivo(playerid), "Score", GetPlayerScore(playerid));
        DOF2_SetInt(Arquivo(playerid), "Grana", GetPlayerMoney(playerid));
        DOF2_SetInt(Arquivo(playerid), "Skin", ContaPlayer[playerid][Skin]);
        DOF2_SetInt(Arquivo(playerid), "Preso", ContaPlayer[playerid][Preso]);
        DOF2_SetString(Arquivo(playerid), "Pergunta", ContaPlayer[playerid][Pergunta]);
        DOF2_SetString(Arquivo(playerid), "Resposta", ContaPlayer[playerid][Resposta]);
        DOF2_SetInt(Arquivo(playerid), "Aviso", ContaPlayer[playerid][Aviso]);

        new str[37];
        if(ContaPlayer[playerid][Admin] > 0)
        {
            format(str, 37, "SD/ADM/%s.ini", Nome(playerid));
            if(!fexist(str)) { DOF2_CreateFile(str); }
            DOF2_SetInt(str, "Admin", ContaPlayer[playerid][Admin]);
        }
        DOF2_SaveFile();
    }
Reply
#2

Quote:
Originally Posted by best95
Посмотреть сообщение
Meu problema e que players que entram com o id de algum adm off setado...ganha o level dele e apareзe no CMD:admins eu ja refiz o admins e nгo e nele o erro... eu deduzo que seja no salvar os dados abaixo o codigo de salvamento...alguem pode me ajudar esse bug ta me matando.. -.- vlw

pawn Код:
if(fexist(Arquivo(playerid)) && Logado[playerid] == true) {

        DOF2_SetInt(Arquivo(playerid), "Admin", ContaPlayer[playerid][Admin]);
        DOF2_SetInt(Arquivo(playerid), "Score", GetPlayerScore(playerid));
        DOF2_SetInt(Arquivo(playerid), "Grana", GetPlayerMoney(playerid));
        DOF2_SetInt(Arquivo(playerid), "Skin", ContaPlayer[playerid][Skin]);
        DOF2_SetInt(Arquivo(playerid), "Preso", ContaPlayer[playerid][Preso]);
        DOF2_SetString(Arquivo(playerid), "Pergunta", ContaPlayer[playerid][Pergunta]);
        DOF2_SetString(Arquivo(playerid), "Resposta", ContaPlayer[playerid][Resposta]);
        DOF2_SetInt(Arquivo(playerid), "Aviso", ContaPlayer[playerid][Aviso]);

        new str[37];
        if(ContaPlayer[playerid][Admin] > 0)
        {
            format(str, 37, "SD/ADM/%s.ini", Nome(playerid));
            if(!fexist(str)) { DOF2_CreateFile(str); }
            DOF2_SetInt(str, "Admin", ContaPlayer[playerid][Admin]);
        }
        DOF2_SaveFile();
    }
nгo vejo a necessidade disso.
pawn Код:
if(ContaPlayer[playerid][Admin] > 0)
        {
            format(str, 37, "SD/ADM/%s.ini", Nome(playerid));
            if(!fexist(str)) { DOF2_CreateFile(str); }
            DOF2_SetInt(str, "Admin", ContaPlayer[playerid][Admin]);
        }
mas se vocк usa para outras coisas ok.

o problema nгo estб no salvamento e sim no carregamento,manda o script de carregamento das contas que usa o
DOF2_GET....
Reply
#3

Meu carregamento abaixo amigo...

pawn Код:
forward p_PlayerLogin(playerid, pass[]);
public p_PlayerLogin(playerid, pass[])
{
    if(strcmp(pass, DOF2_GetString(Arquivo(playerid), "Senha"), true))
    {
        if(tentativas[playerid] == 1)
            return Msg(playerid, Vermelho, "Vocк errou 3 vezes a senha e por isso foi kickado!"), Kick(playerid);
        new ip[16];
        GetPlayerIp(playerid, ip, sizeof(ip));
        new string2[270];
        tentativas[playerid] --;
        format(string2, 270, ""BRANCO2"Olб "AMARELO2"%s, "BRANCO2"vocк digitou a senha "VERMELHO2"incorretamente"BRANCO2"\nPor favor digite uma senha vбlida abaixo para fazer o login:\nVocк tem %d tentativas\n"CINZA1"Por questхes de seguranзa seu IP(%s) foi salvo em nossos registros.", Nome(playerid), tentativas[playerid], ip);
        ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", string2, "Logar", "Sair");
        return 1;
    }
    Logado[playerid] = true;
    ContaPlayer[playerid][Admin] = DOF2_GetInt(Arquivo(playerid), "Admin");
    ContaPlayer[playerid][Score] = DOF2_GetInt(Arquivo(playerid), "Score");
    ContaPlayer[playerid][Grana] = DOF2_GetInt(Arquivo(playerid), "Grana");
    ContaPlayer[playerid][Skin] = DOF2_GetInt(Arquivo(playerid), "Skin");
    ContaPlayer[playerid][Preso] = DOF2_GetInt(Arquivo(playerid), "Preso");
    ContaPlayer[playerid][Pergunta] = DOF2_GetString(Arquivo(playerid), "Pergunta");
    ContaPlayer[playerid][Resposta] = DOF2_GetString(Arquivo(playerid), "Resposta");
    ContaPlayer[playerid][Aviso] = DOF2_GetInt(Arquivo(playerid), "Aviso");
    SetPlayerScore(playerid, ContaPlayer[playerid][Score]);
    GivePlayerMoney(playerid, ContaPlayer[playerid][Grana]);
    format(String, 100, "Logado com sucesso! Admin: {FF0000}%d",ContaPlayer[playerid][Admin]);
    Msg(playerid, COR_ADM, String);
    GivePlayerWeapon(playerid,43,99999);
    GivePlayerWeapon(playerid,23,99999);
    SetPlayerHealth(playerid, 100000);
    SetPlayerArmour(playerid, 100000);
    SDSalvando(playerid);
    return 1;
}
Reply
#4

pela minha analisada estб tudo correto,manda o script que puxa o Arquivo(playerid)
e da uma olhada no seu OnPlayerDisconnect.
Reply
#5

O que puxa:
pawn Код:
Arquivo(playerid)
{
    new str[36];
    format(str, 36, "SD/Contas/%s.ini", Nome(playerid));
    return str;
}
OnPlayerDisconnect
pawn Код:
SDSalvando(playerid);
DOF2_SaveFile();
O que salva:
pawn Код:
stock SDSalvando(playerid)
{
    if(fexist(Arquivo(playerid)) && Logado[playerid] == true) {

        DOF2_SetInt(Arquivo(playerid), "Admin", ContaPlayer[playerid][Admin]);
        DOF2_SetInt(Arquivo(playerid), "Score", GetPlayerScore(playerid));
        DOF2_SetInt(Arquivo(playerid), "Grana", GetPlayerMoney(playerid));
        DOF2_SetInt(Arquivo(playerid), "Skin", ContaPlayer[playerid][Skin]);
        DOF2_SetInt(Arquivo(playerid), "Preso", ContaPlayer[playerid][Preso]);
        DOF2_SetString(Arquivo(playerid), "Pergunta", ContaPlayer[playerid][Pergunta]);
        DOF2_SetString(Arquivo(playerid), "Resposta", ContaPlayer[playerid][Resposta]);
        DOF2_SetInt(Arquivo(playerid), "Aviso", ContaPlayer[playerid][Aviso]);
        DOF2_SaveFile();
    }
    return 1;
}
Reply
#6

experimente dessa forma aqui.
pawn Код:
Arquivo(playerid)
{
    new str[40], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, 32);
    format(str, 40, "SD/Contas/%s.ini", Nome);
    return str;
}
Reply
#7

Digamos que eu sou o ID 1 e sou administrador.. Se eu desconectar e outro jogador entrar com o ID 1, ele vai ser admin?

Se sim, basta deixar a variavel de administrador igual б 0 quando ele desconectar. Mas isto apуs ser salvo.

pawn Код:
SDSalvando(playerid);
ContaPlayer[playerid][Admin] = 0;
Estou pelo celular, foi o que eu entendi.. Quando os meus problemas eram no mesmo sentido deste seu, era apenas porque a variavel nгo era resetada quando o playerid saнsse.
Reply
#8

Problema resolvido(respondendo por ele xP), obrigado pela ajuda JonasGabriel e @Riichard
Reply
#9

Quote:
Originally Posted by @Riichard
Посмотреть сообщение
Digamos que eu sou o ID 1 e sou administrador.. Se eu desconectar e outro jogador entrar com o ID 1, ele vai ser admin?

Se sim, basta deixar a variavel de administrador igual б 0 quando ele desconectar. Mas isto apуs ser salvo.

pawn Код:
SDSalvando(playerid);
ContaPlayer[playerid][Admin] = 0;
Estou pelo celular, foi o que eu entendi.. Quando os meus problemas eram no mesmo sentido deste seu, era apenas porque a variavel nгo era resetada quando o playerid saнsse.
tambйm, ou colocar no OnPlayerConnect para que inicie tudo zerado e depois carregar
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)