[Ajuda] Salvar informaзхes
#1

Estou com um problema no momento que salva informaзхes do player.

OnPlayerConnect
pawn Код:
GetPlayerName(playerid, Nome, sizeof(Nome));
    format(string, sizeof(string), CONTAS, Nome);
    if(!DOF2_FileExists(string)) {
        format(string, sizeof(string), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк ainda nгo estб registrado, digite uma senha para cadastrar.", Nome);
        ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "{00D700}Cadastre-se agora mesmo!", string, "Cadastrar", "Cancelar");
    }
    else {
        format(string, sizeof(string), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк jб estб registrado, digite sua senha para logar.", Nome);
        ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "{00D700}Logue agora mesmo!", string, "Logar", "Cancelar");
    }
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == REGISTRO)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[256];
                format(String, sizeof(String), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк ainda nгo estб registrado, digite uma senha para cadastrar.", Nome);
                ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "{00D700}Cadastre-se agora mesmo!", String, "Cadastrar", "Cancelar");
                SendClientMessage(playerid,COLOR_RED,"[ERRO] Senha invбlida. Digite uma senha vбlida!");
                return 1;
            }
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[256];
            format(String, sizeof(String), CONTAS, Nome);
            DOF2_CreateFile(String);
            DOF2_SetString(String,"Senha",Encriptar(inputtext));
            DOF2_SetInt(String,"Kills",0);
            DOF2_SetInt(String,"Deaths",0);
            DOF2_SetInt(String,"Logou",0);
            DOF2_SetInt(String,"FightingStyle",0);
            DOF2_SetInt(String,"Dolar",Dinheiro2);
            DOF2_SetInt(String,"GP",Dinheiro);
            ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "{00D700}Logue agora mesmo!", "{00D700}Parabйns! Sua conta foi criada com sucesso.\n{FFFFFF}Agora digite sua senha para logar.", "Logar", "Cancelar");
            return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "[ERRO] Vocк nгo se cadastrou e foi kickado!");
            Kick(playerid);
            return 1;
        }
    }
    if(dialogid == LOGIN)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[256];
                format(String, sizeof(String), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк jб estб registrado, digite sua senha para logar.", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "{00D700}Logue agora mesmo!", String, "Logar", "Cancelar");
                SendClientMessage(playerid,COLOR_RED,"[ERRO] Senha incorreta. Tente novamente.");
                return 1;
            }
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[512];
            format(String, sizeof(String), CONTAS, Nome);
            if(!strcmp(Encriptar(inputtext),DOF2_GetString(String,"Senha"),false))
            {
                SetarPlayer(playerid);
                Logou[playerid]++;
                //Limpando o Chat
                for (new a = 1; a <= 60; a++)
                {
                SendClientMessage(playerid, COLOR_WHITE,"\n");
                SendClientMessage(playerid, COLOR_WHITE,"\n");
                }
                SendClientMessage(playerid,COLOR_WHITE,"{00D700}[INFORMAЗГO] {FFFFFF}Vocк logou em sua conta com sucesso!");
                SendClientMessage(playerid,COLOR_WHITE,"{00D700}[INFORMAЗГO] {FFFFFF}O servidor estб em testes (versгo 0)!");
                return 1;
            }
            else
            {
                SendClientMessage(playerid,COLOR_RED,"[ERRO] Senha incorreta. Tente novamente.");
                format(String, sizeof(String), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк jб estб registrado, digite sua senha para logar.", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "{00D700}Logue agora mesmo!", String, "Logar", "Cancelar");
            }
            return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "[ERRO] Vocк nгo logou e foi kickado!");
            Kick(playerid);
            return 1;
        }
    }
    return 1;
}
pawn Код:
SalvarPlayer(playerid) {
    GetPlayerName(playerid, Nome, sizeof(Nome));
    new String[50];
    format(String, sizeof(String), CONTAS, Nome);
    DOF2_SetInt(String, "Matou", Kills[playerid]);
    DOF2_SetInt(String, "Morreu", Deaths[playerid]);
    DOF2_SetInt(String, "Logou", Logou[playerid]);
    DOF2_SetInt(String, "Score", GetPlayerScore(playerid));
    DOF2_SetInt(String, "FightingStyle", GetPlayerFightingStyle(playerid));
    DOF2_SetInt(String, "GP", GetPlayerReal(playerid));
    DOF2_SetInt(String, "Dolar", GetPlayerMoney(playerid));
    return 1;
}

SetarPlayer(playerid) {
    GetPlayerName(playerid, Nome, sizeof(Nome));
    new String[50];
    format(String, sizeof(String), CONTAS, Nome);
    Kills[playerid] = DOF2_GetInt(String, "Matou");
    Deaths[playerid] = DOF2_GetInt(String, "Morreu");
    Logou[playerid] = DOF2_GetInt(String, "Logou");
    SetPlayerScore(playerid, DOF2_GetInt(String, "Score"));
    SetPlayerFightingStyle(playerid, DOF2_GetInt(String, "FightingStyle"));
    GivePlayerReal(playerid, DOF2_GetInt(String, "GP"));
    GivePlayerMoney(playerid, DOF2_GetInt(String, "Dolar"));
    return 1;
}
Acontece que os arquivos que sгo criados na pasta Arquivos/Players/%s.ini nгo tem nada dentro, nenhuma informaзгo, ou seja, nгo estб salvando!

OnGameModeExit
pawn Код:
public OnGameModeExit()
{
    DOF2_Exit();
    for (new i = 0; i < MAX_PLAYERS; i++)
    SalvarPlayer(i);
    return 1;
}
Alguйm dб uma luz aн, por favor
Reply
#2

apos voce setar os valores Tem que add a Sintaxe DOF2_SaveFile();
Exemplo
pawn Код:
{
SalvarPlayer(playerid) {
    GetPlayerName(playerid, Nome, sizeof(Nome));
    new String[50];
    format(String, sizeof(String), CONTAS, Nome);
    DOF2_SetInt(String, "Matou", Kills[playerid]);
    DOF2_SetInt(String, "Morreu", Deaths[playerid]);
    DOF2_SetInt(String, "Logou", Logou[playerid]);
    DOF2_SetInt(String, "Score", GetPlayerScore(playerid));
    DOF2_SetInt(String, "FightingStyle", GetPlayerFightingStyle(playerid));
    DOF2_SetInt(String, "GP", GetPlayerReal(playerid));
    DOF2_SetInt(String, "Dolar", GetPlayerMoney(playerid));
    DOF2_SaveFile();// <<<<< isso aqui amigo

    return 1;
}
Reply
#3

Quote:
Originally Posted by O_KoDi
Посмотреть сообщение
apos voce setar os valores Tem que add a Sintaxe DOF2_SaveFile();
Exemplo
pawn Код:
{
SalvarPlayer(playerid) {
    GetPlayerName(playerid, Nome, sizeof(Nome));
    new String[50];
    format(String, sizeof(String), CONTAS, Nome);
    DOF2_SetInt(String, "Matou", Kills[playerid]);
    DOF2_SetInt(String, "Morreu", Deaths[playerid]);
    DOF2_SetInt(String, "Logou", Logou[playerid]);
    DOF2_SetInt(String, "Score", GetPlayerScore(playerid));
    DOF2_SetInt(String, "FightingStyle", GetPlayerFightingStyle(playerid));
    DOF2_SetInt(String, "GP", GetPlayerReal(playerid));
    DOF2_SetInt(String, "Dolar", GetPlayerMoney(playerid));
    DOF2_SaveFile();// <<<<< isso aqui amigo

    return 1;
}
Muito obrigado cara, nгo sabia disso.
Pode me ajudar em mais uma coisa? O GP (GivePlayerReal e GetPlayerReal) a cada vez que eu logo ele estб se duplicando, como arrumo isso?
Reply
#4

Quote:
Originally Posted by Luciano_Jr
Посмотреть сообщение
Estou com um problema no momento que salva informaзхes do player.

OnPlayerConnect
pawn Код:
GetPlayerName(playerid, Nome, sizeof(Nome));
    format(string, sizeof(string), CONTAS, Nome);
    if(!DOF2_FileExists(string)) {
        format(string, sizeof(string), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк ainda nгo estб registrado, digite uma senha para cadastrar.", Nome);
        ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "{00D700}Cadastre-se agora mesmo!", string, "Cadastrar", "Cancelar");
    }
    else {
        format(string, sizeof(string), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк jб estб registrado, digite sua senha para logar.", Nome);
        ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "{00D700}Logue agora mesmo!", string, "Logar", "Cancelar");
    }
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == REGISTRO)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[256];
                format(String, sizeof(String), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк ainda nгo estб registrado, digite uma senha para cadastrar.", Nome);
                ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "{00D700}Cadastre-se agora mesmo!", String, "Cadastrar", "Cancelar");
                SendClientMessage(playerid,COLOR_RED,"[ERRO] Senha invбlida. Digite uma senha vбlida!");
                return 1;
            }
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[256];
            format(String, sizeof(String), CONTAS, Nome);
            DOF2_CreateFile(String);
            DOF2_SetString(String,"Senha",Encriptar(inputtext));
            DOF2_SetInt(String,"Kills",0);
            DOF2_SetInt(String,"Deaths",0);
            DOF2_SetInt(String,"Logou",0);
            DOF2_SetInt(String,"FightingStyle",0);
            DOF2_SetInt(String,"Dolar",Dinheiro2);
            DOF2_SetInt(String,"GP",Dinheiro);
            ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "{00D700}Logue agora mesmo!", "{00D700}Parabйns! Sua conta foi criada com sucesso.\n{FFFFFF}Agora digite sua senha para logar.", "Logar", "Cancelar");
            return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "[ERRO] Vocк nгo se cadastrou e foi kickado!");
            Kick(playerid);
            return 1;
        }
    }
    if(dialogid == LOGIN)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[256];
                format(String, sizeof(String), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк jб estб registrado, digite sua senha para logar.", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "{00D700}Logue agora mesmo!", String, "Logar", "Cancelar");
                SendClientMessage(playerid,COLOR_RED,"[ERRO] Senha incorreta. Tente novamente.");
                return 1;
            }
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[512];
            format(String, sizeof(String), CONTAS, Nome);
            if(!strcmp(Encriptar(inputtext),DOF2_GetString(String,"Senha"),false))
            {
                SetarPlayer(playerid);
                Logou[playerid]++;
                //Limpando o Chat
                for (new a = 1; a <= 60; a++)
                {
                SendClientMessage(playerid, COLOR_WHITE,"\n");
                SendClientMessage(playerid, COLOR_WHITE,"\n");
                }
                SendClientMessage(playerid,COLOR_WHITE,"{00D700}[INFORMAЗГO] {FFFFFF}Vocк logou em sua conta com sucesso!");
                SendClientMessage(playerid,COLOR_WHITE,"{00D700}[INFORMAЗГO] {FFFFFF}O servidor estб em testes (versгo 0)!");
                return 1;
            }
            else
            {
                SendClientMessage(playerid,COLOR_RED,"[ERRO] Senha incorreta. Tente novamente.");
                format(String, sizeof(String), "{FFFFFF}Seu nickname estб como: {00D700}%s{FFFFFF}.\n{FFFFFF}Vocк jб estб registrado, digite sua senha para logar.", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "{00D700}Logue agora mesmo!", String, "Logar", "Cancelar");
            }
            return 1;
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "[ERRO] Vocк nгo logou e foi kickado!");
            Kick(playerid);
            return 1;
        }
    }
    return 1;
}
pawn Код:
SalvarPlayer(playerid) {
    GetPlayerName(playerid, Nome, sizeof(Nome));
    new String[50];
    format(String, sizeof(String), CONTAS, Nome);
    DOF2_SetInt(String, "Matou", Kills[playerid]);
    DOF2_SetInt(String, "Morreu", Deaths[playerid]);
    DOF2_SetInt(String, "Logou", Logou[playerid]);
    DOF2_SetInt(String, "Score", GetPlayerScore(playerid));
    DOF2_SetInt(String, "FightingStyle", GetPlayerFightingStyle(playerid));
    DOF2_SetInt(String, "GP", GetPlayerReal(playerid));
    DOF2_SetInt(String, "Dolar", GetPlayerMoney(playerid));
    return 1;
}

SetarPlayer(playerid) {
    GetPlayerName(playerid, Nome, sizeof(Nome));
    new String[50];
    format(String, sizeof(String), CONTAS, Nome);
    Kills[playerid] = DOF2_GetInt(String, "Matou");
    Deaths[playerid] = DOF2_GetInt(String, "Morreu");
    Logou[playerid] = DOF2_GetInt(String, "Logou");
    SetPlayerScore(playerid, DOF2_GetInt(String, "Score"));
    SetPlayerFightingStyle(playerid, DOF2_GetInt(String, "FightingStyle"));
    GivePlayerReal(playerid, DOF2_GetInt(String, "GP"));
    GivePlayerMoney(playerid, DOF2_GetInt(String, "Dolar"));
    return 1;
}
Acontece que os arquivos que sгo criados na pasta Arquivos/Players/%s.ini nгo tem nada dentro, nenhuma informaзгo, ou seja, nгo estб salvando!

OnGameModeExit
pawn Код:
public OnGameModeExit()
{
    DOF2_Exit();
    for (new i = 0; i < MAX_PLAYERS; i++)
    SalvarPlayer(i);
    return 1;
}
Alguйm dб uma luz aн, por favor
Olha mano nгo mecho muito com DOF mais tipo ali no DIALOG REGISTRO vocк abriu um novo arquivo que seria o nome dele com as informaзхes de Kills, Death e outras coisas, porem esqueceu de colocar o DOF2_SaveFile();

tenta ai

@Edit malz nгo tinha visto que ja responderam!

@2° Post: Mano ele ta duplicando quando salva ou quando loga o dinheiro sobe duas vezes?
Porque tipo vocк fez Dollar e Reais nй, pra cada um ter seu destino й preciso criar um textdraw para o dollar ou pro real
Reply
#5

Quote:
Originally Posted by Luciano_Jr
Посмотреть сообщение
OnGameModeExit
pawn Код:
public OnGameModeExit()
{
    DOF2_Exit();
    for (new i = 0; i < MAX_PLAYERS; i++)//falto colocar isso em chaves
    {// <<< aki abrir
        SalvarPlayer(i);
    }// << aki fechar
    return 1;
}
falto abrir e fechar chaves no loop tambem
Reply
#6

Quote:
Originally Posted by Luciano_Jr
Посмотреть сообщение
Muito obrigado cara, nгo sabia disso.
Pode me ajudar em mais uma coisa? O GP (GivePlayerReal e GetPlayerReal) a cada vez que eu logo ele estб se duplicando, como arrumo isso?
Vocк ja postou o codigo aqui no forum ?
Reply
#7

Quote:
Originally Posted by O_KoDi
Посмотреть сообщение
falto abrir e fechar chaves no loop tambem
O GP ainda estб duplicando
Reply
#8

Quote:
Originally Posted by Luciano_Jr
Посмотреть сообщение
O GP ainda estб duplicando
Quote:
Originally Posted by ViniKuliveguisky
Посмотреть сообщение
Olha mano nгo mecho muito com DOF mais tipo ali no DIALOG REGISTRO vocк abriu um novo arquivo que seria o nome dele com as informaзхes de Kills, Death e outras coisas, porem esqueceu de colocar o DOF2_SaveFile();

tenta ai

@Edit malz nгo tinha visto que ja responderam!

@2° Post: Mano ele ta duplicando quando salva ou quando loga o dinheiro sobe duas vezes?
Porque tipo vocк fez Dollar e Reais nй, pra cada um ter seu destino й preciso criar um textdraw para o dollar ou pro real
Le ai
Reply
#9

Quote:
Originally Posted by Luciano_Jr
Посмотреть сообщение
O GP ainda estб duplicando
Eu postei das chaves do loop pq estava errado, e se continuasse daquele geito nгo ia salvar as contas
achei o topico do GP que vocк postou, guenta ae que vou da uma olhada
Reply
#10

Quote:
Originally Posted by ViniKuliveguisky
Посмотреть сообщение
Le ai
Jб estб criado o textdraw e tudo mais, sу o GP que duplica!
Quando eu entro pela primeira vez no server estб tudo ok. Aн eu saio sem fechar o server, entro novamente e dou spawn e o GP duplica.

RESOLVIDO!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)