Won't Load Money/Score.
#1

Saves it fine, saves the account. But when I reconnect it sets my money and score to 0.

Full code.
pawn Код:
#include    <a_samp>
#include    < zcmd >
#include    < YDB  >
#include < YSI\y_ini >

#define DIRECTORY       "Accounts/%s.ini"
//Colors//
#define COLOR_SYSTEM    (0xEFEFF7AA)
#define green           (0x33FF33AA)
#define blue            (0x00FFFFAA)
#define red             (0xFF0000AA)
#define StartMoney 150000


forward Pass( playerid, name[ ], value[ ] );
forward LoadpUser( playerid, name[ ], value[ ] );

enum pLog
{
    pPass,
    pCash,
    pScore
}

public OnFilterScriptInit( )
{
    print( "\n--------------------------------------" );
    print( "Account System                          " );
    print( "--------------------------------------\n" );
    return ( 1 );
}

public OnPlayerRequestSpawn( playerid )
{
    if( INI_Exist ( pName( playerid ) ) )
    {
        if( GetPVarInt( playerid, "pLog" ) == 0 )
        {
            SendClientMessage( playerid, green, "This name is already registered. Please /login password to login to this account. ");
            return ( 0 );
        }
    }
        else { SystemMsg( playerid, "Please register this account before spawning." ); return 0; }
    return 1;
}

public OnPlayerDisconnect( playerid )
{
    if( GetPVarInt( playerid, "pLog" ) == 1 )
    {
        new file[ 256 ]; format( file, sizeof file, DIRECTORY, pName( playerid ) );
        new INI:PlayerAcc = INI_Open( file );
        INI_WriteInt( PlayerAcc, "Money", GetPlayerMoney( playerid ) );
        INI_WriteInt( PlayerAcc, "Score", GetPlayerScore( playerid ) );
        INI_Close( PlayerAcc );
        SetPVarInt( playerid, "pLog", 0 );
    }
    return ( 1 );
}

public OnPlayerConnect( playerid )
{
   
    if( GetPVarInt( playerid, "pLog" ) == 0 )
    {
        if( INI_Exist ( pName( playerid ) ) )
        {

            SystemMsg( playerid, "This name is already registered. Please /login [password] to login." );
        }
        else SystemMsg( playerid, "This name is not registered. /register password for free $150,000!" );
       
    }
    return ( 1 );
}

stock SystemMsg( playerid, msg[ ] )
{
   if( ( IsPlayerConnected ( playerid ) ) && ( strlen ( msg ) > 0 ) ) SendClientMessage( playerid, red, msg );
   return ( 1 );
}

stock pName( playerid )
{
    new name[ MAX_PLAYER_NAME ];
    GetPlayerName( playerid, name, sizeof name );
    return name;
}

CMD:register( playerid, params[ ] )
{
   
    new file[ 256 ]; format( file, sizeof file, DIRECTORY, pName( playerid ) );
    new INI:PlayerAcc = INI_Open( file );
    if( GetPVarInt( playerid, "pLog" ) == 1 ) return SystemMsg( playerid, "You already have an account." );
    if( INI_Exist( pName( playerid ) ) ) return SystemMsg( playerid, "You already have an account, /login [password] to login." );
    if( strlen ( params ) == 0 ) return SystemMsg( playerid, "Usage: /register [password]" );
    SystemMsg( playerid, "You have successfully created your account. Please /login [password] to login." );
    GivePlayerMoney(playerid, StartMoney);
    INI_WriteString( PlayerAcc, "Name", pName( playerid ) );
    INI_WriteString( PlayerAcc, "Password", params );
    INI_Close( PlayerAcc );
    return ( 1 );
}

CMD:login( playerid, params[ ] )
{
    new file[ 256 ], Passw[ 500 ]; format( file, sizeof file, DIRECTORY, pName( playerid ) );
    INI_ParseFile(file, "Pass", false, true, playerid);
    GetPVarString( playerid, "pPass", Passw, sizeof Passw );
    if( GetPVarInt( playerid, "pLog" ) == 1 ) return SystemMsg( playerid, "You have already logged-in." );
    if( !INI_Exist ( pName( playerid ) ) ) return SystemMsg( playerid, "This name is not registered. /register password for free $150,000!" );
    if( isnull ( params ) ) return SystemMsg( playerid, "Usage: /login [password]" );
    if( strcmp ( Passw, params, false ) == 0 )
    {
        SetPVarInt( playerid, "pLog", 1 );
        GivePlayerMoney( playerid, GetPVarInt( playerid, "pCash" ) );
        SetPlayerScore( playerid, GetPVarInt( playerid, "pScore" ) );
        SystemMsg( playerid, "You have successfully logged-in." );
    }else SystemMsg( playerid, "Wrong Credentials!" );
    return ( 1 );
}

public Pass( playerid, name[ ], value[ ] )
{
    if( !strcmp ( name, "Password" ) )
    {
        SetPVarString( playerid, "pPass", value );
    }
}

public LoadpUser( playerid, name[ ], value[ ] )
{
    if( !strcmp ( name, "Money" ) )
    {
        SetPVarInt( playerid, "pCash", strval( value ) );
    }
    if( !strcmp ( name, "Score" ) )
    {
        SetPVarInt( playerid, "pScore", strval( value ) );
    }
}
Reply


Messages In This Thread
Won't Load Money/Score. - by Brandondw8 - 18.05.2014, 03:47
Re: Won't Load Money/Score. - by Rittik - 18.05.2014, 04:14
Re: Won't Load Money/Score. - by Brandondw8 - 18.05.2014, 04:22
Re: Won't Load Money/Score. - by Rittik - 18.05.2014, 04:31
Re: Won't Load Money/Score. - by Ciandlah - 18.05.2014, 04:35
Re: Won't Load Money/Score. - by Brandondw8 - 18.05.2014, 04:35
Re: Won't Load Money/Score. - by Rittik - 18.05.2014, 04:37
Re: Won't Load Money/Score. - by Brandondw8 - 18.05.2014, 04:39
Re: Won't Load Money/Score. - by Brandondw8 - 18.05.2014, 04:42
Re: Won't Load Money/Score. - by Rittik - 18.05.2014, 04:45

Forum Jump:


Users browsing this thread: 1 Guest(s)