help me please
#7

Here, untested: (You have some dialogids messed up BTW)
+ I don't think it's a good idea to use single global variable to format and use it as the userfile path.

pawn Код:
/*
-------------------------------------*
Server Adminstrator Script.          *
-------------------------------------*
*/


#include <a_samp>
#include <YSI/y_ini>
#include <zcmd>
#include <sscanf2>

new IsLoggedIn[MAX_PLAYERS];

new userfile[256];

enum pInfo
{
    pPassword[64],
    pLevel,
    pCash,
    pKills,
    pDeaths,
    pColor,
    pScore,
    pSkin
}
new PlayerInfo[MAX_PLAYERS][pInfo];

forward load_userfile(playerid, name[], value[]);
public load_userfile(playerid, name[], value[])
{
    INI_String("pPassword", PlayerInfo[playerid][pPassword], 64);
    INI_Int("pLevel", PlayerInfo[playerid][pLevel]);
    INI_Int("pCash", PlayerInfo[playerid][pCash]);
    INI_Int("pKills", PlayerInfo[playerid][pKills]);
    INI_Int("pDeaths", PlayerInfo[playerid][pDeaths]);
    INI_Int("pColor", PlayerInfo[playerid][pColor]);
    INI_Int("pScore", PlayerInfo[playerid][pScore]);
    INI_Int("pSkin", PlayerInfo[playerid][pSkin]);
    return true;
}

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Server Adminstrator Script.");
    print("--------------------------------------\n");
    return 1;
}

public OnPlayerConnect(playerid)
{
    IsLoggedIn[playerid] = 0;
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(userfile, sizeof(userfile), "Server/Users/%s.ini", name);
    if (!fexist(userfile))
    {
        ShowPlayerDialog(playerid, 2196, DIALOG_STYLE_INPUT, "Register Account.", "Welcome,\n\nYour Account is currently not registered in our Database, So if you feel glad to register you may register please.\n\nEnter your Desired Password Below:", "Register", "Later");
    } else {
       INI_ParseFile(userfile, "load_userfile", .bExtra = true, .extra = playerid);
       ShowPlayerDialog(playerid, 7407, DIALOG_STYLE_INPUT, "Login Account", "Welcome,\n\nYour Account is currently registered in our Database, So if you feel glad to login you may login please.\n\nEnter your Desired Password Below:", "Login", "Later");
    }
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == 2196)
    {
        new name[MAX_PLAYER_NAME], string[128];
        GetPlayerName(playerid, name, sizeof(name));
        format(userfile, sizeof(userfile), "Server/Users/%s.ini", name);
        if(!response)
            return SendClientMessage(playerid, 0xFF0000FF, "You skiped to Register an account on our Database, Please Makesure your  Kills/Deaths/Cash/Level/Color and Skin won't be saved.");
        if(!strlen(inputtext))
            return ShowPlayerDialog(playerid, 2196523, DIALOG_STYLE_INPUT, "Register Account.", "Welcome,\n\nYour Account is currently not registered in our Database, So if you feel glad to register you may register please.\n\nEnter your Desired Password Below:", "Register", "Later");
        SaveStats(playerid);
        format(string, 256, "Server: You succesfully registered the nickname %s with password %s.. You have been AutoLogged In.", name, inputtext);
        SendClientMessage(playerid, 0x00FF00FF, string);
        IsLoggedIn[playerid] = 1;
    }

if (dialogid == 7407)
    {
      new name[MAX_PLAYER_NAME];
      GetPlayerName(playerid, name, sizeof(name));
      format(userfile, sizeof(userfile), "Server/Users/%s.ini", name);
      if(!response) return SendClientMessage(playerid, 0xFF0000FF, "You skiped to Login your account, Please Makesure your  Kills/Deaths/Cash/Level/Color and Skin won't be saved.");
      if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2196, DIALOG_STYLE_INPUT, "Hi your registered", "You are registred, please login.", "Login", "Leave");
      if(!strcmp(udb_hash(inputtext),PlayerInfo[playerid][pPassword],false)
      {
        IsLoggedIn[playerid] = 1;
        SetPlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
        SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
        SetPlayerColor(playerid, PlayerInfo[playerid][pColor]);
        SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
        SendClientMessage(playerid,0x00FF00FF, "Server: You have logged in your account!");
      } else {
        SendClientMessage(playerid, 0xFF0000FF, "The Password you entered it feels like wrong, Try again..");
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login Account", "Welcome,\n\nYour Account is currently registered in our Database, So if you feel glad to login you may login please.\n\nEnter your Desired Password Below:", "Login", "Later");
      }
    }
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new name[24];
    GetPlayerName(playerid,name,24);
    format(userfile,sizeof(userfile),"Server/Users/%s.ini",name);
    if(fexist(userfile))
    {
        SaveStats(playerid);
        IsLoggedIn[playerid] = 0;
    }
    return 1;
}

COMMAND:register(playerid, params[])
{
    if (!fexist(userfile))
    {
        ShowPlayerDialog(playerid, 2196, DIALOG_STYLE_INPUT, "Register Account.", "Welcome,\n\nYour Account is currently not registered in our Database, So if you feel glad to register you may register please.\n\nEnter your Desired Password Below:", "Register", "Later");
    } else {
       ShowPlayerDialog(playerid, 7407, DIALOG_STYLE_INPUT, "Login Account", "Welcome,\n\nYour Account is currently registered in our Database, So if you feel glad to login you may login please.\n\nEnter your Desired Password Below:", "Login", "Later");
    }
    return 1;
}

forward SaveStats(playerid);
public SaveStats(playerid)
{
    new name[24];
    GetPlayerName(playerid,name,24);
    format(userfile,sizeof(userfile),"Server/Users/%s.ini",name);
    new INI:file = INI_Open(userfile);
    INI_WriteString(file, "pPassword", udb_hash(PlayerInfo[playerid][pPassword]));
    INI_WriteInt(file, "pLevel", PlayerInfo[playerid][pLevel]);
    INI_WriteInt(file, "pCash", PlayerInfo[playerid][pCash]);
    INI_WriteInt(file, "pKills", PlayerInfo[playerid][pKills]);
    INI_WriteInt(file, "pDeaths", PlayerInfo[playerid][pDeaths]);
    INI_WriteInt(file, "pColor", PlayerInfo[playerid][pColor]);
    INI_WriteInt(file, "pScore", PlayerInfo[playerid][pScore]);
    INI_WriteInt(file, "pSkin", PlayerInfo[playerid][pSkin]);
    INI_Close(file);
    return true;
}
Reply


Messages In This Thread
help me please - by Davz*|*Criss - 08.08.2011, 11:56
Re: help me please - by Davz*|*Criss - 08.08.2011, 17:24
Re: help me please - by Kush - 08.08.2011, 17:33
Re: help me please - by Davz*|*Criss - 08.08.2011, 17:37
Re: help me please - by System64 - 08.08.2011, 17:45
Re: help me please - by Davz*|*Criss - 08.08.2011, 17:49
Re: help me please - by iPLEOMAX - 08.08.2011, 17:55
Re: help me please - by Davz*|*Criss - 08.08.2011, 18:54
Re: help me please - by iPLEOMAX - 08.08.2011, 19:05
Re: help me please - by Davz*|*Criss - 08.08.2011, 19:08
Re: help me please - by iPLEOMAX - 08.08.2011, 19:15

Forum Jump:


Users browsing this thread: 1 Guest(s)