| hadesownage |
06-03-2013 10:55 |
Save User XP [ MYSQL ]
Hi !
I have a problem with my xp system .
The xp.. don't save.. sometimes .
This is my code:
PHP Code:
public SqlInit( ) { new szHost[ 32 ] new szUser[ 32 ] new szPass[ 32 ] new szDB[ 32 ] get_pcvar_string( g_pcvarHost, szHost, charsmax( szHost ) ) get_pcvar_string( g_pcvaruUser, szUser, charsmax( szUser ) ) get_pcvar_string( g_pcvarPass, szPass, charsmax( szPass ) ) get_pcvar_string( g_pcvarDB, szDB, charsmax( szDB ) ) g_SqlTuple = SQL_MakeDbTuple( szHost, szUser, szPass, szDB ) new ErrorCode new Handle:SqlConnection = SQL_Connect( g_SqlTuple, ErrorCode, g_Error, charsmax( g_Error ) ) if( SqlConnection == Empty_Handle ) set_fail_state( g_Error ) new Handle:Queries Queries = SQL_PrepareQuery( SqlConnection, "CREATE TABLE IF NOT EXISTS %s ( nick VARCHAR( 32 ) PRIMARY KEY, level INT( 11 ), xp INT( 11 ), strenghtpower INT( 11 ), agilitypower INT( 11 ), healthpower INT( 11 ), levitationpower INT( 11 ), useralreadyhavepower INT( 11 ), ultimatepower INT( 11 ), coins INT( 11 ))", SQL_TABLE ) if( !SQL_Execute( Queries ) ) { SQL_QueryError( Queries, g_Error, charsmax( g_Error ) ) set_fail_state( g_Error ) } SQL_FreeHandle( Queries ) SQL_FreeHandle( SqlConnection ) }
public plugin_end( ) { SQL_FreeHandle( g_SqlTuple ) }
public SaveData(id) { new szTemp[ 512 ] format( szTemp, charsmax( szTemp ), "UPDATE `%s` SET `level` = '%d' , `xp` = '%d' , `strenghtpower` = '%d' , `agilitypower` = '%d' , `healthpower` = '%d' , `levitationpower` = '%d' , `useralreadyhavepower` = '%d' , `ultimatepower` = '%d' , `coins` = '%d' WHERE `%s`.`nick` = '%s';", SQL_TABLE, Level [ id ], eXP[id], StrenghtPower [ id ], AgilityPower [ id ], HealthPower [ id ], LevitationPower [ id ], UserAlreadyHavePower [ id ], UltimatePower [ id ], Coins [ id ], SQL_TABLE, g_szName[ id ] ) SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp ) }
public LoadData( id ) { new Data[ 1 ] Data[ 0 ] = id new szTemp[ 512 ] format( szTemp, charsmax( szTemp ), "SELECT level,xp,strenghtpower,agilitypower,healthpower,levitationpower,useralreadyhavepower,ultimatepower,coins FROM `%s` WHERE (`%s`.`nick` = '%s');", SQL_TABLE, SQL_TABLE, g_szName[ id ] ) SQL_ThreadQuery( g_SqlTuple, "RegisterClient", szTemp, Data, 1 ) }
public RegisterClient( FailState, Handle:Query, Error[ ], Errcode, Data[ ], DataSize ) { if( SQL_IsFail( FailState, Errcode, Error ) ) return PLUGIN_HANDLED_MAIN new id id = Data[ 0 ] if( SQL_NumResults( Query ) < 1 ) { new szTemp[ 512 ] format( szTemp, charsmax( szTemp ), "INSERT INTO %s (nick,level,xp,strenghtpower,agilitypower,healthpower,levitationpower,useralreadyhavepower,ultimatepower,coins) VALUES('%s', '0', '0', '0', '0', '0', '0', '0', '0', '0' );", SQL_TABLE, g_szName[ id ], Level [ id ], eXP [ id ], StrenghtPower [ id ], AgilityPower [ id ], HealthPower [ id ], LevitationPower [ id ], UserAlreadyHavePower [ id ], UltimatePower [ id ], Coins [ id ] ) SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp ) } else { Level[id] = SQL_ReadResult( Query, 0 ) eXP[ id ] = SQL_ReadResult( Query, 1 ) StrenghtPower [ id ] = SQL_ReadResult( Query, 2 ) AgilityPower [ id ] = SQL_ReadResult( Query, 3 ) HealthPower [ id ] = SQL_ReadResult( Query, 4 ) LevitationPower [ id ] = SQL_ReadResult( Query, 5 ) UserAlreadyHavePower [ id ] = SQL_ReadResult( Query, 6 ) UltimatePower [ id ] = SQL_ReadResult( Query, 7 ) Coins [ id ] = SQL_ReadResult( Query, 8 ) } return PLUGIN_CONTINUE }
public IgnoreHandle( FailState, Handle:Query, Error[ ], Errcode, Data[ ], DataSize ) SQL_FreeHandle( Query )
SQL_IsFail( const FailState, const Errcode, const Error[ ] ) { if( FailState == TQUERY_CONNECT_FAILED ) { log_amx( "[Error] Could not connect to SQL database: %s", Error ) return true } else if( FailState == TQUERY_QUERY_FAILED ) { log_amx( "[Error] Query failed: %s", Error ) return true } else if( Errcode ) { log_amx( "[Error] Error on query: %s", Error ) return true } return false }
Where is the problem ?
On nvault.. same problem .. why ? :|
|