[Ajuda] Nгo cria ficheiro com o Dini
#1

Bem й o seguinte:

Eu criei o meu sistema de login e de registo com salvamento de dinheiro e outras coisas.
Ficou tudo bem, copilou tudo certo mas quando eu entro no servidor e me registo, depois eu desligo o server e vo ver nas scripfiles o ficheiro da minha conta n foi criado.


FS:

pawn Код:
//========================INCLUDES==============================================
#include <a_samp>
#include <Dini>
//==============================================================================

//======================DEFINES=================================================
#define DIALOG_REGISTO 1
#define DIALOG_LOGIN 2

#define BRANCO "{FFFFFF}"
#define VERMELHO "{F81414}"
#define LARANJA "{F8A114}"
#define AZUL "{1436F8}"
//==============================================================================

//====================VARIAVEIS=================================================
new pName[MAX_PLAYERS][MAX_PLAYER_NAME];
//==============================================================================

//==================ENUMERAЗХES=================================================
enum pInfo  //FALTA: pPhone , pBanco , pOrg , pEmprego , Prespeito , PLotNumb , pCrimes , pHorasJogadas
{
    pSenha,
    pLevel,
    pDinheiro,
    pAdmin,
    pKills,
    pMortes,
    pSkin,
    pProcurado
}
new PlayerInfo[MAX_PLAYERS][pInfo];
//=============================================================================


#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("             LOGIN/REGISTER SK"          );
    print("               A PRODUCT BY              );
    print("
                SKUN FLY                );
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#else


public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    return 1;
}

public OnPlayerConnect(playerid)
{

    new conta[3];
    format(conta,sizeof(conta),"Contas/%s.txt",pName[playerid]);
    GetPlayerName(playerid, pName[playerid], MAX_PLAYER_NAME);
    if (dini_Exists(conta)) //Verifica se o ficheiro existe
    {
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""BRANCO"Login",""BRANCO"Digita a tua senha pessoal para jogares","Login","Sair");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTO, DIALOG_STYLE_PASSWORD,""BRANCO"Registo",""BRANCO"Digita a tua senha abaixo para registar a tua conta na nossa base de dados","Registar","Sair");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new conta[3];
    format(conta, sizeof(conta), "Contas/%s.ini", pName);

    dini_IntSet(conta, "pLevel", GetPlayerScore(playerid));
    dini_IntSet(conta, "pDinheiro", GetPlayerMoney(playerid));
    dini_IntSet(conta, "pAdmin", PlayerInfo[playerid][pAdmin]);
    dini_IntSet(conta, "pKills", PlayerInfo[playerid][pKills]);
    dini_IntSet(conta, "pMortes", PlayerInfo[playerid][pMortes]);
    dini_IntSet(conta, "pSkun", GetPlayerSkin(playerid));
    dini_IntSet(conta, "pProcurado", GetPlayerWantedLevel(playerid));
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
        // Do something here
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid==DIALOG_REGISTO)
    {
        if(response==0)
        {
            new string[6];
            GetPlayerName(playerid,string,sizeof(string));
            format(string,sizeof(string),"O jogador %s foi kickado por nгo se registar!");
            SendClientMessageToAll(0xFF1414, string);
            Kick(playerid);
            SendClientMessage(playerid, 0xFFAD14,"Sem te registares nгo podes jogar! E por isso foste kickado!");
           
        }
        if(response==1)
        {
            if(strlen(inputtext))
            {
                ShowPlayerDialog(playerid, DIALOG_REGISTO, DIALOG_STYLE_PASSWORD, ""BRANCO"Registando...",""VERMELHO"Usaste uma senha invбlida.\n"BRANCO"Digita a tua senha abaixo para registar a tua conta na nossa base de dados.","Registar","Sair");
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""BRANCO"Login",""BRANCO"Digita a tua senha pessoal para efetuar o login.","Login","Sair");
                return 1;
            }
                else
            {
                Registar(playerid, inputtext);
                return 1;
            }
        }
       
        if(dialogid==DIALOG_LOGIN)
        {
            if(response==0)
            {
                new string[6];
                GetPlayerName(playerid,string,sizeof(string));
                format(string,sizeof(string),"O jogador %s foi kickado por nгo fazer login!");
                SendClientMessageToAll(0xFF1414, string);
                Kick(playerid);
                SendClientMessage(playerid, 0xFFAD14,"Sem efectuares login nгo podes jogar!");
            }
            if(response==1)
            {
                if(strlen(inputtext))
                {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login","Bem-Vindo de volta ao servidor da TugaElectronicGaming.com.\n Digita a tua senha pessoal para efectuares poderes jogar! ","Login","Sair");
                    return 1;
                }
                else
                {
                    Logar(playerid, inputtext);
                    return 1;
                }
            }
        }
}
    return 1;
}

stock Registar(playerid, key[])
{
    new conta[3];
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(conta,sizeof(conta),"/Contas/%s.txt",Nome);
    dini_Create(conta); //Cria ficheiro do player
    dini_Set(conta, "pSenha",key);
    SendClientMessage(playerid,0xFFAACCDDAA,"Registado com sucesso");
    dini_IntSet(conta, "pLevel", 2); //Level 2
    dini_IntSet(conta, "pDinheiro", 6000); //Dinheiro default: 6000
    dini_IntSet(conta, "pAdmin", 0); //Level de admin a 0
    dini_IntSet(conta, "pKills", 0); //Kills default
    dini_IntSet(conta, "pMortes", 0); //Mortes default
    dini_IntSet(conta, "pSkin", 289); //Skin default
    dini_IntSet(conta, "pProcurado", 0); //Wanted Level
    return 1;
}

stock Logar(playerid, key[])
{
    new conta[3];
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(conta,sizeof(conta),"/Contas/%s.txt",Nome);
    if(!strcmp(key, dini_Get(conta, "pSenha"),false))
    {
        SetPlayerScore(playerid, dini_Int(conta, "pLevel")); //Set o level que tinha
        GivePlayerMoney(playerid, dini_Int(conta, "pDinheiro")); //Set o dinheiro que tinha
        PlayerInfo[playerid][pAdmin] = dini_Int(conta, "pAdmin");
        PlayerInfo[playerid][pKills] = dini_Int(conta, "pKills");
        PlayerInfo[playerid][pMortes] = dini_Int(conta, "pMortes");
        SetPlayerSkin(playerid, dini_Int(conta, "pSkin"));
        SetPlayerWantedLevel(playerid, dini_Int(conta, "pProcurado"));
        SendClientMessage(playerid,0xFFAACCDDAA,"O login foi efetuado com sucesso!");
        return 1;
    }
    return 1;
}
       











public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

#endif
@EDIT

Serб que alguem pode ajudar?
Obrigado

Cumprimentos, Skun Fly
Reply
#2

pawn Код:
if (!dini_Exists(conta))
Tenta assim
Reply
#3

As arrays "Contas" sгo muito pequenas, apenas tem 3 cйlulas, nгo irб nem formatar a pasta.

Tenta colocar "new Contas[30];", Deve funcionar.
Reply
#4

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение
pawn Код:
if (!dini_Exists(conta))
Tenta assim
Nгo funcionou. Agora nem apareceu o texdraw de register.
Reply
#5

Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
As arrays "Contas" sгo muito pequenas, apenas tem 3 cйlulas, nгo irб nem formatar a pasta.

Tenta colocar "new Contas[30];", Deve funcionar.
A cada array "Contas" coloquei 64 cйlulas e nгo funcionou ta igual.

Alguem me ajuda pfv

@EDIT

Double-post fail, nem reparei
Reply
#6

Tem certeza que isso compilo?
pawn Код:
public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("             LOGIN/REGISTER SK"          );
    print("               A PRODUCT BY              );
    print("
                SKUN FLY                );
    print("--------------------------------------\n");
    return 1;
}
Reply
#7

Quote:
Originally Posted by AFerreira
Посмотреть сообщение
Tem certeza que isso compilo?
pawn Код:
public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("             LOGIN/REGISTER SK"          );
    print("               A PRODUCT BY              );
    print("
                SKUN FLY                );
    print("--------------------------------------\n");
    return 1;
}
Sim, й esse o problema?
Reply
#8

pawn Код:
print("A PRODUCT BY");
print("SKUN FLY");
Reply
#9

Alguem me ajude em relaзгo ao Dini pfv.

Cumprimentos, Skun Fly
Reply
#10

Quote:
Originally Posted by Skun Fly
Посмотреть сообщение
Bem й o seguinte:

Eu criei o meu sistema de login e de registo com salvamento de dinheiro e outras coisas.
Ficou tudo bem, copilou tudo certo mas quando eu entro no servidor e me registo, depois eu desligo o server e vo ver nas scripfiles o ficheiro da minha conta n foi criado.


FS:

pawn Код:
//========================INCLUDES==============================================
#include <a_samp>
#include <Dini>
//==============================================================================

//======================DEFINES=================================================
#define DIALOG_REGISTO 1
#define DIALOG_LOGIN 2

#define BRANCO "{FFFFFF}"
#define VERMELHO "{F81414}"
#define LARANJA "{F8A114}"
#define AZUL "{1436F8}"
//==============================================================================

//====================VARIAVEIS=================================================
new pName[MAX_PLAYERS][MAX_PLAYER_NAME];
//==============================================================================

//==================ENUMERAЗХES=================================================
enum pInfo  //FALTA: pPhone , pBanco , pOrg , pEmprego , Prespeito , PLotNumb , pCrimes , pHorasJogadas
{
    pSenha,
    pLevel,
    pDinheiro,
    pAdmin,
    pKills,
    pMortes,
    pSkin,
    pProcurado
}
new PlayerInfo[MAX_PLAYERS][pInfo];
//=============================================================================


#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("             LOGIN/REGISTER SK"          );
    print("               A PRODUCT BY              );
    print("
                SKUN FLY                );
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#else


public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    return 1;
}

public OnPlayerConnect(playerid)
{

    new conta[3];
    format(conta,sizeof(conta),"Contas/%s.txt",pName[playerid]);
    GetPlayerName(playerid, pName[playerid], MAX_PLAYER_NAME);
    if (dini_Exists(conta)) //Verifica se o ficheiro existe
    {
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""BRANCO"Login",""BRANCO"Digita a tua senha pessoal para jogares","Login","Sair");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTO, DIALOG_STYLE_PASSWORD,""BRANCO"Registo",""BRANCO"Digita a tua senha abaixo para registar a tua conta na nossa base de dados","Registar","Sair");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new conta[3];
    format(conta, sizeof(conta), "Contas/%s.ini", pName);

    dini_IntSet(conta, "pLevel", GetPlayerScore(playerid));
    dini_IntSet(conta, "pDinheiro", GetPlayerMoney(playerid));
    dini_IntSet(conta, "pAdmin", PlayerInfo[playerid][pAdmin]);
    dini_IntSet(conta, "pKills", PlayerInfo[playerid][pKills]);
    dini_IntSet(conta, "pMortes", PlayerInfo[playerid][pMortes]);
    dini_IntSet(conta, "pSkun", GetPlayerSkin(playerid));
    dini_IntSet(conta, "pProcurado", GetPlayerWantedLevel(playerid));
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
        // Do something here
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid==DIALOG_REGISTO)
    {
        if(response==0)
        {
            new string[6];
            GetPlayerName(playerid,string,sizeof(string));
            format(string,sizeof(string),"O jogador %s foi kickado por nгo se registar!");
            SendClientMessageToAll(0xFF1414, string);
            Kick(playerid);
            SendClientMessage(playerid, 0xFFAD14,"Sem te registares nгo podes jogar! E por isso foste kickado!");
           
        }
        if(response==1)
        {
            if(strlen(inputtext))
            {
                ShowPlayerDialog(playerid, DIALOG_REGISTO, DIALOG_STYLE_PASSWORD, ""BRANCO"Registando...",""VERMELHO"Usaste uma senha invбlida.\n"BRANCO"Digita a tua senha abaixo para registar a tua conta na nossa base de dados.","Registar","Sair");
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""BRANCO"Login",""BRANCO"Digita a tua senha pessoal para efetuar o login.","Login","Sair");
                return 1;
            }
                else
            {
                Registar(playerid, inputtext);
                return 1;
            }
        }
       
        if(dialogid==DIALOG_LOGIN)
        {
            if(response==0)
            {
                new string[6];
                GetPlayerName(playerid,string,sizeof(string));
                format(string,sizeof(string),"O jogador %s foi kickado por nгo fazer login!");
                SendClientMessageToAll(0xFF1414, string);
                Kick(playerid);
                SendClientMessage(playerid, 0xFFAD14,"Sem efectuares login nгo podes jogar!");
            }
            if(response==1)
            {
                if(strlen(inputtext))
                {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login","Bem-Vindo de volta ao servidor da TugaElectronicGaming.com.\n Digita a tua senha pessoal para efectuares poderes jogar! ","Login","Sair");
                    return 1;
                }
                else
                {
                    Logar(playerid, inputtext);
                    return 1;
                }
            }
        }
}
    return 1;
}

stock Registar(playerid, key[])
{
    new conta[3];
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(conta,sizeof(conta),"/Contas/%s.txt",Nome);
    dini_Create(conta); //Cria ficheiro do player
    dini_Set(conta, "pSenha",key);
    SendClientMessage(playerid,0xFFAACCDDAA,"Registado com sucesso");
    dini_IntSet(conta, "pLevel", 2); //Level 2
    dini_IntSet(conta, "pDinheiro", 6000); //Dinheiro default: 6000
    dini_IntSet(conta, "pAdmin", 0); //Level de admin a 0
    dini_IntSet(conta, "pKills", 0); //Kills default
    dini_IntSet(conta, "pMortes", 0); //Mortes default
    dini_IntSet(conta, "pSkin", 289); //Skin default
    dini_IntSet(conta, "pProcurado", 0); //Wanted Level
    return 1;
}

stock Logar(playerid, key[])
{
    new conta[3];
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(conta,sizeof(conta),"/Contas/%s.txt",Nome);
    if(!strcmp(key, dini_Get(conta, "pSenha"),false))
    {
        SetPlayerScore(playerid, dini_Int(conta, "pLevel")); //Set o level que tinha
        GivePlayerMoney(playerid, dini_Int(conta, "pDinheiro")); //Set o dinheiro que tinha
        PlayerInfo[playerid][pAdmin] = dini_Int(conta, "pAdmin");
        PlayerInfo[playerid][pKills] = dini_Int(conta, "pKills");
        PlayerInfo[playerid][pMortes] = dini_Int(conta, "pMortes");
        SetPlayerSkin(playerid, dini_Int(conta, "pSkin"));
        SetPlayerWantedLevel(playerid, dini_Int(conta, "pProcurado"));
        SendClientMessage(playerid,0xFFAACCDDAA,"O login foi efetuado com sucesso!");
        return 1;
    }
    return 1;
}
       











public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

#endif
@EDIT

Serб que alguem pode ajudar?
Obrigado

Cumprimentos, Skun Fly
Bom eu passei o olho em seu FS e vi que й bem parecido ou atй mesmo igual a este.

https://sampforum.blast.hk/showthread.php?tid=309257&page=2

Por que vocк nгo usa esse FS que й muito parecido com o seu e compara aonde vocк errou?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)