[Ajuda] Ajuda salvamento bugando
#1

Galera , esse meu salvamento ele salva mas muitas vezes buga tambйm , eu dou /q e tem vez que volto desetado de tudo , minha conta fica registrada mas ela nгo fica setada de nada , sу acontece as vezes eu fiz o teste pelo /rcon gmx , peguei outro gamemode e testei o gmx e votei setado , quando fui fazer no meu ele volta desetado todas as vezes.


Resumindo : o gamemode sу salva quando quer , muitas das vezes quando vou relogar volto sem estб setado

Codigo V
Код:
SalvarPlayer(playerid)
{
AntiDeAMX();
new String[256];
format(String, sizeof(String), CONTAS, Nome(playerid));
DOF2_SetInt(String,"Administrador", PlayerInfo[playerid][pAdmin]);
DOF2_SetInt(String,"ADM", PlayerInfo[playerid][pADM]);
DOF2_SetInt(String,"CBF", PlayerInfo[playerid][pCBF]);
DOF2_SetInt(String,"PMLV", PlayerInfo[playerid][pPMLV]);
DOF2_SetInt(String,"PMLS", PlayerInfo[playerid][pPMLS]);
DOF2_SetInt(String,"PMSF", PlayerInfo[playerid][pPMSF]);
DOF2_SetInt(String,"RGT", PlayerInfo[playerid][pRGT]);
DOF2_SetInt(String,"Narrador", PlayerInfo[playerid][pNarrador]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Viptemp", PlayerInfo[playerid][pVip]);

new date[32];
new hour, minute, second, day, month, year;
gettime(hour, minute, second);
getdate(year, month, day);
format(date, 32,"%d/%d/%d/%d/%d/%d",day,month,year,hour, minute, second);
DOF2_SetString(String,"LastLogin", date);
DOF2_SetInt(String,"LastLoginTick", Now());
DOF2_SaveFile();
return 1;
}
SetarPlayer(playerid)
{
AntiDeAMX();
new String[256];
format(String, sizeof(String), CONTAS, Nome(playerid));
PlayerInfo[playerid][pAdmin] = DOF2_GetInt(String, "Administrador");
PlayerInfo[playerid][pADM] = DOF2_GetInt(String, "ADM");
PlayerInfo[playerid][pCBF] = DOF2_GetInt(String, "CBF");
PlayerInfo[playerid][pPMLV] = DOF2_GetInt(String, "PMLV");
PlayerInfo[playerid][pPMLS] = DOF2_GetInt(String, "PMLS");
PlayerInfo[playerid][pPMSF] = DOF2_GetInt(String, "PMSF");
PlayerInfo[playerid][pRGT] = DOF2_GetInt(String, "RGT");
PlayerInfo[playerid][pNarrador] = DOF2_GetInt(String, "Narrador");
SetPlayerScore(playerid, DOF2_GetInt(String,"Score"));
PlayerInfo[playerid][pVip] = DOF2_GetInt(String, "Viptemp");
return 1;
}
Em OnGameModeExit, OnPlayerDisconnect, nos settal(...).
Код:
 
SalvarPlayer(playerid) e/ou (i).
Login e registro
Код:
if(dialogid == REGISTRO)
{
if(response)
{
if(!strlen(inputtext))
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), "{FFFFFF}Parece que й sua primeira vez aqui.\n\nNick: %s\nStatus: {FF0000}Nгo registrada\n\n{FFFFFF}Digite uma senha abaixo para se registrar.", Nome);
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", String, "Registrar", "Cancelar");
SendClientMessage(playerid,VERMELHO,"ERRO: Senha invalida, digite uma senha vбlida");
return 1;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
new String[128];
format(String, sizeof(String), CONTAS, Nome);
DOF2_CreateFile(String);
DOF2_SetString(String,"Senha",inputtext);

DOF2_SetInt(String,"Administrador", 0);
DOF2_SetInt(String,"ADM",0);
DOF2_SetInt(String,"CBF",0);
DOF2_SetInt(String,"PMLV",0);
DOF2_SetInt(String,"PMLS",0);
DOF2_SetInt(String,"PMSF",0);
DOF2_SetInt(String,"RGT",0);
DOF2_SetInt(String,"Narrador",0);
DOF2_SetInt(String,"Score",0);
DOF2_SetInt(String,"Viptemp",0);

new year,day,month;
getdate(year, month, day);
new str[32];
format(str, 32,"%02d/%02d/%d",day,month,year);
DOF2_SetString(String,"RegisterDate",str);

GivePlayerMoney(playerid, 1000);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
format(String, sizeof(String), "[INFO] Sua conta foi registrada com a senha '%s'", inputtext);
SendClientMessage(playerid, 0x51FF3EAA, String);
DOF2_SaveFile();
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Parabens! Conta criada com sucesso.\n\n Pra logar digite sua senha.", "Logar", "Cancelar");
return 1;
}
else
{
SendClientMessage(playerid, VERMELHO, "ERRO: Vocк nгo quis se registrar, por este motivo foi kickado.");
Kick(playerid);
return 1;
}
}
if(dialogid == LOGIN)
{
if(response)
{
if(!strlen(inputtext))
{

new String[128];
format(String, sizeof(String), "{FFFFFF}Olб {FFFF00}%s.\n{FFFFFF}Tipo de Conta: {00CC00}Registrada.\n{FFFFFF}Digite sua senha para continuar:",Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", String, "Logar", "Cancelar");
SendClientMessage(playerid,ERRO,"Senha incorreta digite-a novamente.");
return 1;
}
new String[128];
format(String, sizeof(String), CONTAS, Nome(playerid));
if(!strcmp(inputtext,DOF2_GetString(String,"Senha"),false))
{
ShowPlayerDialog(playerid,ESCOLHA_CIDADE,DIALOG_STYLE_LIST,"Sйrie A 2014","{FFFFFF}Norte/Nordeste {FFFF00}- {00CC00}[LV]\n{FFFFFF}Sudeste {FFFF00}- {00CC00}[LS]\n{FFFFFF}Sul {FFFF00}- {00CC00}[SF]","Escolher","");
GivePlayerMoney(playerid, 10000);
SetarPlayer(playerid);
SalvarPlayer(playerid);

new lastlogin[19];
format(lastlogin, 19, "%s.", DOF2_GetString(String, "LastLogin") );
if(strlen(lastlogin) == 17)
format(lastlogin, 9, "%s", DOF2_GetString(String, "LastLogin") );
else if(strlen(lastlogin) == 19)
format(lastlogin, 11, "%s", DOF2_GetString(String, "LastLogin") );
else if(strlen(lastlogin) == 18)
format(lastlogin, 10, "%s", DOF2_GetString(String, "LastLogin") );

SendClientMessage(playerid, -1, " ");
SendFormattedMessage(playerid, AZULCLARO, "** Bem vindo %s!", Nome(playerid));
SendFormattedMessage(playerid, AZULCLARO, "** Registrado em %s | Ъltimo Login: %s.", DOF2_GetString(String, "RegisterDate"), lastlogin);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);

if(PlayerInfo[playerid][pVip] >= 1)
{
new var10[128];
format(var10, sizeof(var10), "** Seu VIP expira em %s.", SistemaVipSpeed(PlayerInfo[playerid][pVip]-Now()));
SendClientMessage(playerid, AZULCLARO, var10);
SetPlayerArmour(playerid,100);
}
if(PlayerInfo[playerid][pAdmin] >= 1)
{
ShowPlayerDialog(playerid, 901, DIALOG_STYLE_PASSWORD,"Anti-Fake","Administrador, coloque a senha Anti-Fake:", "Ok", "");
}
if(PlayerInfo[playerid][pADM] == 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Organizador.");
}
if(PlayerInfo[playerid][pCBF] == 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um CBF.");
}
if(PlayerInfo[playerid][pNarrador] == 1)
{
SendClientMessage(playerid,AZULCLARO,"**: Vocк й um Narrador.");
}
if(PlayerInfo[playerid][pPMLS] >= 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
if(PlayerInfo[playerid][pPMSF] >= 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
if(PlayerInfo[playerid][pPMLV] >= 1)
{
SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
}
return 1;
}
else
{
SendClientMessage(playerid,ERRO,"Senha incorreta digite-a novamente.");
format(String, sizeof(String), "{FFFFFF}Olб {FFFF00}%s.\n{FFFFFF}Tipo de Conta: {00CC00}Registrada.\n{FFFFFF}Digite sua senha para continuar:",Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", String, "Logar", "Cancelar");
}
return 1;
}
else
{
SendClientMessage(playerid, ERRO, "Vocк nгo quis se logar, por este motivo foi kickado.");
Kick(playerid);
}
return 1;
}
Reply
#2

depois disso:
pawn Код:
SalvarPlayer(playerid)
{
AntiDeAMX();
new String[256];
format(String, sizeof(String), CONTAS, Nome(playerid));
DOF2_SetInt(String,"Administrador", PlayerInfo[playerid][pAdmin]);
DOF2_SetInt(String,"ADM", PlayerInfo[playerid][pADM]);
DOF2_SetInt(String,"CBF", PlayerInfo[playerid][pCBF]);
DOF2_SetInt(String,"PMLV", PlayerInfo[playerid][pPMLV]);
DOF2_SetInt(String,"PMLS", PlayerInfo[playerid][pPMLS]);
DOF2_SetInt(String,"PMSF", PlayerInfo[playerid][pPMSF]);
DOF2_SetInt(String,"RGT", PlayerInfo[playerid][pRGT]);
DOF2_SetInt(String,"Narrador", PlayerInfo[playerid][pNarrador]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Viptemp", PlayerInfo[playerid][pVip]);
coloque isso:
pawn Код:
DOF2_SaveFile();
ficando isso:
pawn Код:
SalvarPlayer(playerid)
{
AntiDeAMX();
new String[256];
format(String, sizeof(String), CONTAS, Nome(playerid));
DOF2_SetInt(String,"Administrador", PlayerInfo[playerid][pAdmin]);
DOF2_SetInt(String,"ADM", PlayerInfo[playerid][pADM]);
DOF2_SetInt(String,"CBF", PlayerInfo[playerid][pCBF]);
DOF2_SetInt(String,"PMLV", PlayerInfo[playerid][pPMLV]);
DOF2_SetInt(String,"PMLS", PlayerInfo[playerid][pPMLS]);
DOF2_SetInt(String,"PMSF", PlayerInfo[playerid][pPMSF]);
DOF2_SetInt(String,"RGT", PlayerInfo[playerid][pRGT]);
DOF2_SetInt(String,"Narrador", PlayerInfo[playerid][pNarrador]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Viptemp", PlayerInfo[playerid][pVip]);
DOF2_SaveFile();
Reply
#3

Primeiro de tudo faзa uma boa endentaзгo no cуdigo, cуdigo sem endentaзгo nгo й cуdigo..

pawn Код:
if(dialogid == REGISTRO) {
    if(response) {
        if(!strlen(inputtext)) {
            new Nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[128];
            format(String, sizeof(String), "{FFFFFF}Parece que й sua primeira vez aqui.\n\nNick: %s\nStatus: {FF0000}Nгo registrada\n\n{FFFFFF}Digite uma senha abaixo para se registrar.", Nome);
            ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", String, "Registrar", "Cancelar");
            SendClientMessage(playerid,VERMELHO,"ERRO: Senha invalida, digite uma senha vбlida");
            return 1;
        }

        new Nome[MAX_PLAYER_NAME];
        GetPlayerName(playerid, Nome, sizeof(Nome));
        new String[128];
        format(String, sizeof(String), CONTAS, Nome);
       
        DOF2_CreateFile(String);
        DOF2_SetString(String,"Senha",inputtext);
        DOF2_SetInt(String,"Administrador", 0);
        DOF2_SetInt(String,"ADM",0);
        DOF2_SetInt(String,"CBF",0);
        DOF2_SetInt(String,"PMLV",0);
        DOF2_SetInt(String,"PMLS",0);
        DOF2_SetInt(String,"PMSF",0);
        DOF2_SetInt(String,"RGT",0);
        DOF2_SetInt(String,"Narrador",0);
        DOF2_SetInt(String,"Score",0);
        DOF2_SetInt(String,"Viptemp",0);
       
        new year,day,month,str[32];
        getdate(year, month, day);
        format(str, 32,"%02d/%02d/%d",day,month,year);
        DOF2_SetString(String,"RegisterDate",str);
       
        GivePlayerMoney(playerid, 1000);
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0);

        format(String, sizeof(String), "[INFO] Sua conta foi registrada com a senha '%s'", inputtext);
        SendClientMessage(playerid, 0x51FF3EAA, String);
        DOF2_SaveFile();
        ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Parabens! Conta criada com sucesso.\n\n Pra logar digite sua senha.", "Logar", "Cancelar");
    }
    else
    {
        SendClientMessage(playerid, VERMELHO, "ERRO: Vocк nгo quis se registrar, por este motivo foi kickado.");
        Kick(playerid);
    }
    return 1;
}

if(dialogid == LOGIN) {
    if(response) {
        if(!strlen(inputtext)) {            
            new String[128];
            format(String, sizeof(String), "{FFFFFF}Olб {FFFF00}%s.\n{FFFFFF}Tipo de Conta: {00CC00}Registrada.\n{FFFFFF}Digite sua senha para continuar:",Nome(playerid));
            ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", String, "Logar", "Cancelar");
            SendClientMessage(playerid,ERRO,"Senha incorreta digite-a novamente.");
            return 1;
        }

        new String[128];
        format(String, sizeof(String), CONTAS, Nome(playerid));

        if (!strcmp(inputtext, DOF2_GetString(String, "Senha"), false)) {
            ShowPlayerDialog(playerid,ESCOLHA_CIDADE,DIALOG_STYLE_LIST,"Sйrie A 2014","{FFFFFF}Norte/Nordeste {FFFF00}- {00CC00}[LV]\n{FFFFFF}Sudeste {FFFF00}- {00CC00}[LS]\n{FFFFFF}Sul {FFFF00}- {00CC00}[SF]","Escolher","");
            GivePlayerMoney(playerid, 10000);
            SetarPlayer(playerid);
            SalvarPlayer(playerid);
           
            new lastlogin[19];
            format(lastlogin, 19, "%s.", DOF2_GetString(String, "LastLogin") );

            if(strlen(lastlogin) == 17)
                format(lastlogin, 9, "%s", DOF2_GetString(String, "LastLogin") );
            else if(strlen(lastlogin) == 19)
                format(lastlogin, 11, "%s", DOF2_GetString(String, "LastLogin") );
            else if(strlen(lastlogin) == 18)
                format(lastlogin, 10, "%s", DOF2_GetString(String, "LastLogin") );
           
            SendClientMessage(playerid, -1, " ");
            SendFormattedMessage(playerid, AZULCLARO, "** Bem vindo %s!", Nome(playerid));
            SendFormattedMessage(playerid, AZULCLARO, "** Registrado em %s | Ъltimo Login: %s.", DOF2_GetString(String, "RegisterDate"), lastlogin);
            PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
           
            if(PlayerInfo[playerid][pVip] >= 1) {
                new var10[128];
                format(var10, sizeof(var10), "** Seu VIP expira em %s.", SistemaVipSpeed(PlayerInfo[playerid][pVip]-Now()));
                SendClientMessage(playerid, AZULCLARO, var10);
                SetPlayerArmour(playerid,100);
            }
            if(PlayerInfo[playerid][pAdmin] >= 1) {
                ShowPlayerDialog(playerid, 901, DIALOG_STYLE_PASSWORD,"Anti-Fake","Administrador, coloque a senha Anti-Fake:", "Ok", "");
            }
            if(PlayerInfo[playerid][pADM] == 1) {
                SendClientMessage(playerid,AZULCLARO,"** Vocк й um Organizador.");
            }
            if(PlayerInfo[playerid][pCBF] == 1) {
                SendClientMessage(playerid,AZULCLARO,"** Vocк й um CBF.");
            }
            if(PlayerInfo[playerid][pNarrador] == 1) {
                SendClientMessage(playerid,AZULCLARO,"**: Vocк й um Narrador.");
            }
            if(PlayerInfo[playerid][pPMLS] >= 1) {
                SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
            }
            if(PlayerInfo[playerid][pPMSF] >= 1) {
                SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
            }
            if(PlayerInfo[playerid][pPMLV] >= 1) {
                SendClientMessage(playerid,AZULCLARO,"** Vocк й um Polнcial.");
            }
        }
        else {
            SendClientMessage(playerid,ERRO,"Senha incorreta digite-a novamente.");
            format(String, sizeof(String), "{FFFFFF}Olб {FFFF00}%s.\n{FFFFFF}Tipo de Conta: {00CC00}Registrada.\n{FFFFFF}Digite sua senha para continuar:",Nome(playerid));
            ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", String, "Logar", "Cancelar");
        }
    }
    else {
        SendClientMessage(playerid, ERRO, "Vocк nгo quis se logar, por este motivo foi kickado.");
    }
    return 1;
}

SalvarPlayer(playerid) {
    AntiDeAMX();

    new String[128], date[32], hour, minute, second, day, month, year;

    gettime(hour, minute, second);
    getdate(year, month, day);

    format(String, sizeof(String), CONTAS, Nome(playerid));
    format(date, 32,"%d/%d/%d/%d/%d/%d",day, month, year, hour, minute, second);

    DOF2_SetInt(String,"Administrador", PlayerInfo[playerid][pAdmin]);
    DOF2_SetInt(String,"ADM",           PlayerInfo[playerid][pADM]);
    DOF2_SetInt(String,"CBF",           PlayerInfo[playerid][pCBF]);
    DOF2_SetInt(String,"PMLV",          PlayerInfo[playerid][pPMLV]);
    DOF2_SetInt(String,"PMLS",          PlayerInfo[playerid][pPMLS]);
    DOF2_SetInt(String,"PMSF",          PlayerInfo[playerid][pPMSF]);
    DOF2_SetInt(String,"RGT",           PlayerInfo[playerid][pRGT]);
    DOF2_SetInt(String,"Narrador",      PlayerInfo[playerid][pNarrador]);
    DOF2_SetInt(String,"Score",         GetPlayerScore(playerid));
    DOF2_SetInt(String,"Viptemp",       PlayerInfo[playerid][pVip]);
    DOF2_SetInt(String,"LastLoginTick", Now());
    DOF2_SetString(String,"LastLogin",  date);

    DOF2_SaveFile();
    return 1;
}

SetarPlayer(playerid) {
    AntiDeAMX();

    new String[128];

    format(String, sizeof(String), CONTAS, Nome(playerid));

    PlayerInfo[playerid][pAdmin]    = DOF2_GetInt(String, "Administrador");
    PlayerInfo[playerid][pADM]      = DOF2_GetInt(String, "ADM");
    PlayerInfo[playerid][pCBF]      = DOF2_GetInt(String, "CBF");
    PlayerInfo[playerid][pPMLV]     = DOF2_GetInt(String, "PMLV");
    PlayerInfo[playerid][pPMLS]     = DOF2_GetInt(String, "PMLS");
    PlayerInfo[playerid][pPMSF]     = DOF2_GetInt(String, "PMSF");
    PlayerInfo[playerid][pRGT]      = DOF2_GetInt(String, "RGT");
    PlayerInfo[playerid][pNarrador] = DOF2_GetInt(String, "Narrador");
    PlayerInfo[playerid][pVip]      = DOF2_GetInt(String, "Viptemp");
   
    SetPlayerScore(playerid, DOF2_GetInt(String,"Score"));

    return 1;
}

Depois, vocк poderia explicar melhor ? em que momento acontece o problema...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)