Jump to content

Nko

Uživatel
  • Příspěvků

    4
  • Registrován

  • Aktivní

Příspěvky posted by Nko

  1. Ahoj, problém s ukládáním peněz hráče jsem díky DNLS vyřešil, ale stále mi zbývá ukládání úmrtí a zabití.

    Kód:

    #include <a_samp>
    #include <dof2>
    
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    
    enum pInfo
    {
        pKills,
        pDeaths,
        pMoney,
        pAdmin
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];
    
    public OnFilterScriptExit()
    {
        DOF2_Exit();
        return 1;
    }
    
    public OnPlayerConnect(playerid)
    {
        new file[64];
        GetPlayerName(playerid,file,sizeof(file));
        format(file,sizeof(file),DOF2_File(file));
        if(DOF2_FileExists(file))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Přihlášení","{FFFFFF}Ahoj! Rádi tě tu opět vidíme, prosím zadej své heslo:","Přihlásit","Zavřít");
        }
        else
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít");
        }
        return 1;
    }
    
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        switch(dialogid)
        {
            case DIALOG_REGISTER:
            {
                if(!response) Kick(playerid);
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít");
                if(response)
                {
                    new file[64];
                    GetPlayerName(playerid,file,sizeof(file));
                    format(file,sizeof(file),DOF2_File(file));
                    DOF2_CreateFile(file, inputtext);
                    DOF2_SetInt(file, "Kills", 0);
                    DOF2_SetInt(file, "Deaths", 0);
                    DOF2_SetInt(file, "Money", 5000);
                    DOF2_SetInt(file, "AdminLevel", 0);
                    DOF2_SaveFile();
                    SetPlayerPos(playerid, 1682.8357,-2240.7712,13.5469);
                }
            }
            case DIALOG_LOGIN:
            {
                if(!response) Kick(playerid);
                if(response)
                {
                    new file[64];
                    GetPlayerName(playerid,file,sizeof(file));
                    format(file,sizeof(file),DOF2_File(file));
                    if(DOF2_FileExists(file))
                    {
                        if(DOF2_CheckLogin(file,inputtext))
    					{
                            PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills");
                            PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths");
                            PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money");
                            PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel");
                            GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
                            return 1;
                        }
                        else
                        {
                            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Nesprávné heslo!","{FFFFFF}Zadal jsi nesprávné heslo! Zadej prosím své heslo:","Přihlásit","Zavřít");
                            return 1;
                        }
                    }
                }
            }
        }
        return 0;
    }
    
    public OnPlayerDisconnect(playerid, reason)
    {
        new file[64];
        GetPlayerName(playerid,file,sizeof(file));
        format(file,sizeof(file),DOF2_File(file));
        DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]);
        DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]);
        DOF2_SetInt(file, "Money",GetPlayerMoney(playerid));
        DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]);
        DOF2_SaveFile();
        return 1;
    }
    
    public OnPlayerDeath(playerid, killerid, reason)
    {
        PlayerInfo[killerid][pKills]++;
        PlayerInfo[playerid][pDeaths]++;
        return 1;
    }

     

  2. Poupravil jsem to tedy ale stále se mi neukládají data, odpojil jsem se ze serveru s 4650$ ale ve složce se mi stále ukazuje 5000$ a při připojení se mi taktéž načte 5000$.

    #include <a_samp>
    #include <dof2>
    
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    
    enum pInfo
    {
        pKills,
        pDeaths,
        pMoney,
        pAdmin
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];
    
    public OnFilterScriptExit()
    {
        DOF2_Exit();
        return 1;
    }
    
    public OnPlayerConnect(playerid)
    {
        new file[64];
        GetPlayerName(playerid,file,sizeof(file));
        format(file,sizeof(file),DOF2_File(file));
        if(DOF2_FileExists(file))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Přihlášení","{FFFFFF}Ahoj! Rádi tě tu opět vidíme, prosím zadej své heslo:","Přihlásit","Zavřít");
        }
        else 
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít");
        }
        return 1;
    }
    
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        switch(dialogid)
        {
            case DIALOG_REGISTER:
            {
                if(!response) Kick(playerid);
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít");
                if(response)
                {
                    new file[64];
                    GetPlayerName(playerid,file,sizeof(file));
                    format(file,sizeof(file),DOF2_File(file));
                    DOF2_CreateFile(file, inputtext);
                    DOF2_SetInt(file, "Kills", 0);
                    DOF2_SetInt(file, "Deaths", 0);
                    DOF2_SetInt(file, "Money", 5000);
                    DOF2_SetInt(file, "AdminLevel", 0);
                    DOF2_SaveFile();
                }
            }
            case DIALOG_LOGIN:
            {
                if(!response) Kick(playerid);
                if(response)
                {
                    new file[64];
                    GetPlayerName(playerid,file,sizeof(file));
                    format(file,sizeof(file),DOF2_File(file));
                    if(DOF2_FileExists(file))
                    {
                        if(DOF2_CheckLogin(file,inputtext))
                        {
                            PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills");
                            PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths");
                            PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money");
                            PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel");
                            GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
                            return 1;
                        }
                        else
                        {
                            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Nesprávné heslo!","{FFFFFF}Zadal jsi nesprávné heslo! Zadej prosím své heslo:","Přihlásit","Zavřít");
                            return 1;
                        }
                    }
                }
            }
        }
        return 0;
    }
    
    public OnPlayerDisconnect(playerid, reason)
    {
        new file[64];
        GetPlayerName(playerid,file,sizeof(file));
        format(file,sizeof(file),DOF2_File(file));
        DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]);
        DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]);
        DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney]);
        DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]);
        DOF2_SaveFile();
        return 1;
    }
    
    public OnPlayerDeath(playerid, killerid, reason)
    {
        PlayerInfo[killerid][pKills]++;
        PlayerInfo[playerid][pDeaths]++;
        return 1;
    }

    Přidal jsem DOF2_SaveFile(); a upravil hodnotu return u OnDialogResponse.

  3. Kdyby se někomu nechtěl prohlížet topic, tak zde dodávám ještě kód který mám přímo v pawnu jelikož jsem tam provedl pár změn ale nemyslím si že by měly narušit ukládání dat hráče.

    #include <a_samp>
    #include <dof2>
    
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    
    enum pInfo
    {
        pKills,
        pDeaths,
        pMoney,
        pAdmin
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];
    
    public OnFilterScriptExit()
    {
        DOF2_Exit();
        return 1;
    }
    
    public OnPlayerConnect(playerid)
    {
        new file[64];
        GetPlayerName(playerid,file,sizeof(file));
        format(file,sizeof(file),DOF2_File(file));
        if(DOF2_FileExists(file))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Přihlášení","{FFFFFF}Ahoj! Rádi tě tu opět vidíme, prosím zadej své heslo:","Přihlásit","Zavřít");
        }
        else 
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít");
        }
        return 1;
    }
    
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        switch(dialogid)
        {
            case DIALOG_REGISTER:
            {
                if(!response) Kick(playerid);
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registrování","{FFFFFF}Ahoj! Vidíme že jsi zde nový, prosím zadej své heslo:","Registrovat","Zavřít");
                if(response)
                {
                    new file[64];
                    GetPlayerName(playerid,file,sizeof(file));
                    format(file,sizeof(file),DOF2_File(file));
                    DOF2_CreateFile(file, inputtext);
                    DOF2_SetInt(file, "Kills", 0);
                    DOF2_SetInt(file, "Deaths", 0);
                    DOF2_SetInt(file, "Money", 5000);
                    DOF2_SetInt(file, "AdminLevel", 0);
                    DOF2_SaveFile();
                }
            }
            case DIALOG_LOGIN:
            {
                if(!response) Kick(playerid);
                if(response)
                {
                    new file[64];
                    GetPlayerName(playerid,file,sizeof(file));
                    format(file,sizeof(file),DOF2_File(file));
                    if(DOF2_FileExists(file))
                    {
                        if(DOF2_CheckLogin(file,inputtext))
                        {
                            PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills");
                            PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths");
                            PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money");
                            PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel");
                            GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
                            return 1;
                        }
                        else
                        {
                            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Nesprávné heslo!","{FFFFFF}Zadal jsi nesprávné heslo! Zadej prosím své heslo:","Přihlásit","Zavřít");
                            return 1;
                        }
                    }
                }
            }
        }
        return 1;
    }
    
    public OnPlayerDisconnect(playerid, reason)
    {
        new file[64];
        GetPlayerName(playerid,file,sizeof(file));
        format(file,sizeof(file),DOF2_File(file));
        DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]);
        DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]);
        DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney]);
        DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]);
        return 1;
    }
    
    public OnPlayerDeath(playerid, killerid, reason)
    {
        PlayerInfo[killerid][pKills]++;
        PlayerInfo[playerid][pDeaths]++;
        return 1;
    }
    

     

  4. Zdravím, jsem v pawnu začátečník a nedávno jsem si na svůj server přidal login/register systém, ale zjistil jsem, že se mi neukládají data hráče (peníze, úmrtí, zabití, admin level) a nevím si vůbec rady jak bych to mohl opravit. Celý login/register systém jsem udělal na základě tohoto topicu na SA-MP Foru: https://forum.sa-mp.com/showthread.php?t=281736. Popřípadě bych ještě potřeboval vědět, jak uložit pozici hráče. Díky předem všem za pomoc.

×
×
  • Create New...