Cannot Save data if i relogin -
Jihanz - 23.02.2017
Can you Help me brother
I had a problem
when I register at the beginning I have the money $ 30,000
and when I first log stats I have been saved
but when I
relogin, I have a problem money remains $ 30,000 before I give money to my own amounted to $ 100,000
should the amount of $ 130,000 of my money
I use
rAdmin System
sorry for my bad english previous
this is code MySQLCheckAccount
Код:
public MySQLCheckAccount( sqlplayersname[ ] )
{
new query[ 128 ];
new escstr[ MAX_PLAYER_NAME ];
mysql_real_escape_string( sqlplayersname, escstr );
format( query, sizeof( query ), "SELECT `id` FROM `players` WHERE LOWER(Name) = LOWER('%s') LIMIT 1", escstr );
mysql_query( query );
mysql_store_result( );
if ( mysql_num_rows( ) == 0 ) {
return false;
} else {
new strid[ 32 ];
new intid;
mysql_fetch_row( strid );
intid = strval( strid );
return intid;
}
}
this is code OnPlayerConnect
Код:
public OnPlayerConnect(playerid)
{
BanCheck( playerid );
Logged[ playerid ] = 0; TransferMoney[ playerid ] = 0; TransferOffer[ playerid ] = 999; IsInBank[ playerid ] = -1;
MySQLCheckConnection( );
GetPlayerName( playerid, name, sizeof name );
new SQLStatus = MySQLCheckAccount( name );
if( SQLStatus != 0 )
{
PlayerData[ playerid ][ SQLID ] = SQLStatus;
}
else if( SQLStatus == 0)
{
PlayerData[ playerid ][ SQLID ] = 0;
}
return true;
}
this is code Onplayerdissconect
Код:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName( playerid, name, sizeof name );
switch(reason) {
case 0: {
format( mystring, sizeof mystring, "* %s has exited the game. ( Crash / Timeout )", name );
}
case 1: {
format( mystring, sizeof mystring, "* %s has exited the game. ( Quit )", name );
}
case 2: {
format( mystring, sizeof mystring, "* %s has exited the game. ( Kicked / Banned )", name );
}
}
printf("%s",mystring);
SendClientMessageToAll( -1, mystring );
if( PlayerData[ playerid ][ VIPStatus ] ) {
format( mystring, sizeof mystring, "V.I.P %s~n~ has left.", name );
TextDrawSetString( Textdraw[ 0 ], mystring );
TextDrawShowForAll( Textdraw[ 0 ] );
Delete3DTextLabel( viplabel[ playerid ] );
return true;
}
Logged[ playerid ] = 0;
SaveAccount(playerid);
return true;
}
This is Code LoadAccount
Код:
public LoadAccount( playerid, password[ ] ) {
GetPlayerName( playerid, name, sizeof name );
MySQLCheckConnection( );
MySQLFetchAcctSingle( PlayerData[ playerid ][ SQLID ], "Password", PlayerData[ playerid ][ Password ]);
if( strcmp( PlayerData[ playerid ][ Password ], password, true ) == 0 )
{
new string[ 256 ];
format( string, sizeof string,"SELECT * FROM `players` WHERE Name='%s'", name );
mysql_query( string );
mysql_store_result( );
new field[ 64 ], data[ 256 ];
if(mysql_fetch_row_format( data ) )
{
mysql_fetch_field_row( field, "AdminLevel" ); PlayerData[ playerid ][ AdminLevel ] = strval( field );
mysql_fetch_field_row( field, "VIPStatus" ); PlayerData[ playerid ][ VIPStatus ] = strval( field );
mysql_fetch_field_row( field, "Score" ); SetPlayerScore( playerid, strval( field ) );
mysql_fetch_field_row( field, "Money" ); GivePlayerMoney( playerid, strval( field ) );
mysql_fetch_field_row( field, "Muted" ); PlayerData[ playerid ][ Muted ] = strval( field );
mysql_fetch_field_row( field, "MuteTime" ); PlayerData[ playerid ][ MuteTime ] = strval( field );
mysql_fetch_field_row( field, "Jailed" ); PlayerData[ playerid ][ Jailed ] = strval( field );
mysql_fetch_field_row( field, "JailTime" ); PlayerData[ playerid ][ JailTime ] = strval( field );
mysql_fetch_field_row( field, "Sprunks" ); PlayerData[ playerid ][ Sprunks ] = strval( field );
mysql_fetch_field_row( field, "Beers" ); PlayerData[ playerid ][ Beers ] = strval( field );
mysql_fetch_field_row( field, "Wines" ); PlayerData[ playerid ][ Wines ] = strval( field );
mysql_fetch_field_row( field, "Cookies" ); PlayerData[ playerid ][ Cookies ] = strval( field );
mysql_fetch_field_row( field, "Kills" ); PlayerData[ playerid ][ Kills ] = strval( field );
mysql_fetch_field_row( field, "Deaths" ); PlayerData[ playerid ][ Deaths ] = strval( field );
mysql_fetch_field_row( field, "BankPassword" ); PlayerData[ playerid ][ BankPassword ] = strval( field );
mysql_fetch_field_row( field, "BankMoney" ); PlayerData[ playerid ][ BankMoney ] = strval( field );
mysql_fetch_field_row( field, "Warns" ); PlayerData[ playerid ][ Warns ] = strval( field );
mysql_fetch_field_row( field, "VehsBought" ); PlayerData[ playerid ][ VehsBought ] = strval( field );
}
mysql_free_result( );
}
else
{
format( mystring,sizeof mystring, "{BECBFC}Selamat Datang, {95A3FF}%s{BECBFC}!\n\nMohon masukan Password untuk masuk kedalam game.", name );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", mystring, "Login", "Exit" );
return true;
}
new atext[ 30 ], ct[ 3 ];
if( PlayerData[ playerid ][ AdminLevel ] < 1 && PlayerData[ playerid ][ VIPStatus ] < 1) {
SendClientMessage( playerid, -1, "SERVER: You are logged in as a member." );
}
else if( PlayerData[ playerid ][ AdminLevel ] >= 1 && PlayerData[ playerid ][ VIPStatus ] < 1) {
if( PlayerData[ playerid ][ AdminLevel ] == 1) { atext = "assistent", ct = "n"; }
if( PlayerData[ playerid ][ AdminLevel ] == 3) { atext = "moderator"; }
if( PlayerData[ playerid ][ AdminLevel ] == 2) { atext = "mini-moderator"; }
if( PlayerData[ playerid ][ AdminLevel ] == 4) { atext = "administrator", ct = "n"; }
if( PlayerData[ playerid ][ AdminLevel ] == 5) { atext = "owner", ct = "n"; }
format( mystring, sizeof mystring, "SERVER: You are logged in as a%s %s.", ct, atext );
SendClientMessage( playerid, -1, mystring );
}
else if( PlayerData[ playerid ][ AdminLevel ] >= 1 && PlayerData[ playerid ][ VIPStatus ] > 0) {
if( PlayerData[ playerid ][ AdminLevel ] == 1) { atext = "assistent", ct = "n"; }
if( PlayerData[ playerid ][ AdminLevel ] == 3) { atext = "moderator"; }
if( PlayerData[ playerid ][ AdminLevel ] == 2) { atext = "mini-moderator"; }
if( PlayerData[ playerid ][ AdminLevel ] == 4) { atext = "administrator", ct = "n"; }
if( PlayerData[ playerid ][ AdminLevel ] == 5) { atext = "owner", ct = "n"; }
format( mystring, sizeof mystring, "SERVER: You are logged in as a%s %s and as a VIP.", ct, atext );
SendClientMessage( playerid, -1, mystring );
}
else if( PlayerData[ playerid ][ AdminLevel ] < 1 && PlayerData[ playerid ][ VIPStatus ] > 0) {
SendClientMessage( playerid, -1, "SERVER: You are logged in as a VIP." );
viplabel[ playerid ] = Create3DTextLabel( "V.I.P", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0 );
Attach3DTextLabelToPlayer( viplabel[ playerid ], playerid, 0.0, 0.0, 0.7 );
format( mystring, sizeof mystring, "V.I.P %s~n~ has joined.", name );
TextDrawSetString( Textdraw[ 0 ], mystring );
TextDrawShowForAll( Textdraw[ 0 ] );
}
Logged[ playerid ] = 1;
SetTimer( "SaveAccount", 1000, 1 );
OnPlayerSpawn( playerid );
return true;
this is code Saveaccount
Код:
public SaveAccount( playerid ) {
if( IsInBank[ playerid ] == -1 ) { }
else {
SetPlayerArmedWeapon( playerid, 0 );
return true;
}//When is in the bank - can't use his weaps. Because SaveAccount is used every second :)
GetPlayerName( playerid, name, sizeof name );
if( IsPlayerConnected( playerid ) ) {
MySQLCheckConnection( );
new query[ MAX_STRING ];
format( query, MAX_STRING, "UPDATE players SET " );
MySQLUpdatePlayerStr( query, PlayerData[ playerid ][ SQLID ], "Password", PlayerData[ playerid ][ Password ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "AdminLevel", PlayerData[ playerid ][ AdminLevel ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "VIPStatus", PlayerData[ playerid ][ VIPStatus ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Score", GetPlayerScore( playerid ) );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Money", GetPlayerMoney( playerid ) );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Muted", PlayerData[ playerid ][ Muted ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "MuteTime", PlayerData[ playerid ][ MuteTime ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Jailed", PlayerData[ playerid ][ Jailed ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "JailTime", PlayerData[ playerid ][ JailTime ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Sprunks", PlayerData[ playerid ][ Sprunks ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Beers", PlayerData[ playerid ][ Beers ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Wines", PlayerData[ playerid ][ Wines ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Cookies", PlayerData[ playerid ][ Cookies ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Kills", PlayerData[ playerid ][ Kills ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Deaths", PlayerData[ playerid ][ Deaths ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "BankPassword", PlayerData[ playerid ][ BankPassword ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "BankMoney", PlayerData[ playerid ][ BankMoney ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "Warns", PlayerData[ playerid ][ Warns ] );
MySQLUpdatePlayerInt( query, PlayerData[ playerid ][ SQLID ], "VehsBought", PlayerData[ playerid ][ VehsBought ] );
MySQLUpdateFinish( query, PlayerData[ playerid ][ SQLID ]);
}
return true;
}
Thanks before