[Ajuda] DOF2 nгo salva
#1

Fala galera do fуrum!

Entгo, estou com um problema bem chato aqui no meu script. Fiz um sistema de registro e login em DOF2, sу que ele salva somente a senha e nгo salva as mortes, dinheiro e o resto! Sу a senha! Deem uma boa olhada no cуdigo:

pawn Код:
//[NsF] Login System
//Feito por Lucas Cota (Brasileiro)
//Nгo retire os crйditos ou sofrerб uma morte bem lenta... '-'

#include <a_samp>
#include <DOF2>

#define DIALOG_REGISTRO     24
#define DIALOG_LOGIN        25

enum PlayerInfo
{
Level, Score, Money, Kill, Death
}

new PlayerData[MAX_PLAYERS][PlayerInfo], PlayerFile[64];

public OnFilterScriptInit()
{
print("--------------------------");
print("[NsF] Login System Loaded!");
print("--------------------------");
return 1;
}

public OnFilterScriptExit()
{
print("--------------------------");
print("[NsF] Login System Loaded!");
print("--------------------------");
DOF2_Exit();
return 1;
}

public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
if(DOF2_FileExists(PlayerFile))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Vocк jб й registrado(a) em nosso servidor, insira sua senha abaixo para continuar:", "Login", "Cancelar");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк nгo й registrado(a) em nosso servidor, insira uma senha abaixo para continuar:", "Registrar", "Cancelar");
}
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
if(DOF2_FileExists(PlayerFile))
{
DOF2_SetInt(PlayerFile, "Level", PlayerData[playerid][Level]);
DOF2_SetInt(PlayerFile, "Score", PlayerData[playerid][Score]);
DOF2_SetInt(PlayerFile, "Money", PlayerData[playerid][Money]);
DOF2_SetInt(PlayerFile, "Kill", PlayerData[playerid][Kill]);
DOF2_SetInt(PlayerFile, "Death", PlayerData[playerid][Death]);
GetPlayerScore(PlayerData[playerid][Score]);
GetPlayerMoney(PlayerData[playerid][Money]);
DOF2_SaveFile();
}
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
PlayerData[killerid][Kill]++;
PlayerData[playerid][Death]++;
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
if(response == 0)
{
Kick(playerid);
}
if(!strlen(inputtext))
{
return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк nгo й registrado(a) em nosso servidor, insira uma senha abaixo para continuar:", "Registrar", "Cancelar");
}
if(response == 1)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
DOF2_CreateFile(PlayerFile, inputtext);
DOF2_SetInt(PlayerFile, "Level", 0);
DOF2_SetInt(PlayerFile, "Score", 0);
DOF2_SetInt(PlayerFile, "Money", 0);
DOF2_SetInt(PlayerFile, "Kill", 0);
DOF2_SetInt(PlayerFile, "Death", 0);
DOF2_SaveFile();
}
}
if(dialogid == DIALOG_LOGIN)
{
if(response == 0)
{
Kick(playerid);
}
if(response == 1)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
if(DOF2_FileExists(PlayerFile))
{
if(DOF2_CheckLogin(PlayerFile, inputtext))
{
PlayerData[playerid][Level] = DOF2_GetInt(PlayerFile, "Level");
PlayerData[playerid][Score] = DOF2_GetInt(PlayerFile, "Score");
PlayerData[playerid][Money] = DOF2_GetInt(PlayerFile, "Money");
PlayerData[playerid][Kill] = DOF2_GetInt(PlayerFile, "Kill");
PlayerData[playerid][Death] = DOF2_GetInt(PlayerFile, "Death");
SetPlayerScore(playerid, PlayerData[playerid][Score]);
GivePlayerMoney(playerid, PlayerData[playerid][Money]);
return 1;
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Senha incorreta, confira sua senha e a digite novamente abaixo para continuar:", "Login", "Cancelar");
return 1;
}
}
}
}
return 1;
}
Compila sem nenhum warning ou error!

Me ajudem por favor! Obrigado desde jб!
Reply
#2

Nossa, ninguйm para me ajudar! Isso й triste!
Reply
#3

Ele nгo ta salvando ou vocк nгo colocou para carregar quando ele se conecta?

Tem uma coisa errada no OnPlayerDisconnect
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
if(DOF2_FileExists(PlayerFile))
{
DOF2_SetInt(PlayerFile, "Level", PlayerData[playerid][Level]);
DOF2_SetInt(PlayerFile, "Score", PlayerData[playerid][Score]);
DOF2_SetInt(PlayerFile, "Money", PlayerData[playerid][Money]);
DOF2_SetInt(PlayerFile, "Kill", PlayerData[playerid][Kill]);
DOF2_SetInt(PlayerFile, "Death", PlayerData[playerid][Death]);
GetPlayerScore(PlayerData[playerid][Score]);//Ele nгo pode pegar a informaзгo depois de ter setado
GetPlayerMoney(PlayerData[playerid][Money]); //Igual o de cima
DOF2_SaveFile();
}
return 1;
}
Modo correto
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
if(DOF2_FileExists(PlayerFile))
{
GetPlayerScore(PlayerData[playerid][Score]);
GetPlayerMoney(PlayerData[playerid][Money]);
DOF2_SetInt(PlayerFile, "Level", PlayerData[playerid][Level]);
DOF2_SetInt(PlayerFile, "Score", PlayerData[playerid][Score]);
DOF2_SetInt(PlayerFile, "Money", PlayerData[playerid][Money]);
DOF2_SetInt(PlayerFile, "Kill", PlayerData[playerid][Kill]);
DOF2_SetInt(PlayerFile, "Death", PlayerData[playerid][Death]);
DOF2_SaveFile();
}
return 1;
}
Reply
#4

Idente o cуdigo para melhor leitura.
Reply
#5

codigo identado e arrumado:

pawn Код:
//[NsF] Login System
//Feito por Lucas Cota (Brasileiro)
//Nгo retire os crйditos ou sofrerб uma morte bem lenta... '-'

#include <a_samp>
#include <DOF2>

#define DIALOG_REGISTRO     24
#define DIALOG_LOGIN        25

enum PlayerInfo
{
    Level, Score, Money, Kill, Death
}

new PlayerData[MAX_PLAYERS][PlayerInfo], PlayerFile[64];

public OnFilterScriptInit()
{
    print("--------------------------");
    print("[NsF] Login System Loaded!");
    print("--------------------------");
    return 1;
}

public OnFilterScriptExit()
{
    print("--------------------------");
    print("[NsF] Login System Loaded!");
    print("--------------------------");
    DOF2_Exit();
    return 1;
}

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
    format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
    if(DOF2_FileExists(PlayerFile))
    {
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Vocк jб й registrado(a) em nosso servidor, insira sua senha abaixo para continuar:", "Login", "Cancelar");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк nгo й registrado(a) em nosso servidor, insira uma senha abaixo para continuar:", "Registrar", "Cancelar");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
    format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
    if(DOF2_FileExists(PlayerFile))
    {
        GetPlayerScore(PlayerData[playerid][Score]);
        GetPlayerMoney(PlayerData[playerid][Money]);
        DOF2_SetInt(PlayerFile, "Level", PlayerData[playerid][Level]);
        DOF2_SetInt(PlayerFile, "Score", PlayerData[playerid][Score]);
        DOF2_SetInt(PlayerFile, "Money", PlayerData[playerid][Money]);
        DOF2_SetInt(PlayerFile, "Kill", PlayerData[playerid][Kill]);
        DOF2_SetInt(PlayerFile, "Death", PlayerData[playerid][Death]);
        DOF2_SaveFile();
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    PlayerData[killerid][Kill]++;
    PlayerData[playerid][Death]++;
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(response == 0)
        {
            Kick(playerid);
        }
        if(!strlen(inputtext))
        {
            return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк nгo й registrado(a) em nosso servidor, insira uma senha abaixo para continuar:", "Registrar", "Cancelar");
        }
        if(response == 1)
        {
            GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
            format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
            DOF2_CreateFile(PlayerFile, inputtext);
            DOF2_SetInt(PlayerFile, "Level", 0);
            DOF2_SetInt(PlayerFile, "Score", 0);
            DOF2_SetInt(PlayerFile, "Money", 0);
            DOF2_SetInt(PlayerFile, "Kill", 0);
            DOF2_SetInt(PlayerFile, "Death", 0);
            DOF2_SaveFile();
        }
    }
    if(dialogid == DIALOG_LOGIN)
    {
        if(response == 0)
        {
            Kick(playerid);
        }
        if(response == 1)
        {
            GetPlayerName(playerid, PlayerFile, sizeof(PlayerFile));
            format(PlayerFile, sizeof(PlayerFile), DOF2_File(PlayerFile));
            if(DOF2_FileExists(PlayerFile))
            {
                if(DOF2_CheckLogin(PlayerFile, inputtext))
                {
                    PlayerData[playerid][Level] = DOF2_GetInt(PlayerFile, "Level");
                    PlayerData[playerid][Score] = DOF2_GetInt(PlayerFile, "Score");
                    PlayerData[playerid][Money] = DOF2_GetInt(PlayerFile, "Money");
                    PlayerData[playerid][Kill] = DOF2_GetInt(PlayerFile, "Kill");
                    PlayerData[playerid][Death] = DOF2_GetInt(PlayerFile, "Death");
                    SetPlayerScore(playerid, PlayerData[playerid][Score]);
                    GivePlayerMoney(playerid, PlayerData[playerid][Money]);
                    return 1;
                }
                else
                {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Senha incorreta, confira sua senha e a digite novamente abaixo para continuar:", "Login", "Cancelar");
                    return 1;
                }
            }
        }
    }
    return 1;
}
eu acho melhor usar stock
Reply
#6

@Edit: o meu tinha bugado e mostro 2...
Reply
#7

Galera! Muito obrigado! Funcionou!

Vou comeзar a identar meus cуdigos. Й que eu me acostumei a usar editores sem identaзгo, aн eu nem ligo para isso, mas para ler-se um cуdigo sem identaзгo й muito mais difнcil!

Novamente muito obrigado pela ajuda de todos vocкs!
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)