SaveCharacterInfo(playerid){
new query[1024];
GetPlayerName(playerid, Character[playerid][Username], MAX_PLAYER_NAME);
GetPlayerFacingAngle(playerid, Character[playerid][posA]);
GetPlayerPos(playerid, Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ]);
GetPlayerHealth(playerid, Character[playerid][Health]);
GetPlayerArmour(playerid, Character[playerid][Armour]);
GetPlayerIp(playerid, Character[playerid][IP], 16);
Character[playerid][Skin] = GetPlayerSkin(playerid);
Character[playerid][Money] = GetPlayerMoney(playerid);
mysql_format(MHandle, query, sizeof(query), "UPDATE `character` SET `Level` = %d, `Username` = '%e', `Password` = '%s', IP = '%s', `Money` = %d, `posX` = %0.2f, `posY` = %0.2f, `posZ` = %0.2f, `posA` = %0.2f, `Health` = %.1f, `Armour` = %.1f, `Admin` = %d, `Helper` = %d, `SecretKey` = '%e', `Age` = %d, `Sex` = %d, `Skin` = %d, `Int` = %d, `VW` = %d WHERE `Username` = '%e' LIMIT 1",
Character[playerid][Level], Character[playerid][Username], Character[playerid][Password], Character[playerid][IP], Character[playerid][Money], Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ], Character[playerid][posA], Character[playerid][Health], Character[playerid][Armour], Character[playerid][Admin],
Character[playerid][Helper], Character[playerid][SecretKey], Character[playerid][Age], Character[playerid][Sex], Character[playerid][Skin], Character[playerid][Username], Character[playerid][Int], GetPlayerVirtualWorld(playerid));
mysql_query(MHandle, query);
return 1;
}
// My timer
task SavingCharacterInfo[30000]()
{
foreach(new i : Player){
SaveCharacterInfo(i);
}
printf("[MYSQL] - Saved database of all characters.");
}
public OnPlayerDisconnect(playerid, reason){
SaveCharacterInfo(playerid);
gCharacterLogged{playerid} = 0;
return 1;
}
enum cInfo
{
Username[MAX_PLAYER_NAME],
Password[129],
Skin,
Sex,
IP[16],
Level,
Money,
Age,
Float:posX,
Float:posY,
Float:posZ,
Float:posA,
Float:Health,
Float:Armour,
Int,
VW,
Admin,
Helper,
SecretKey
};
SaveCharacterInfo(playerid) { new query[1024]; GetPlayerName(playerid, Character[playerid][Username], MAX_PLAYER_NAME); GetPlayerFacingAngle(playerid, Character[playerid][posA]); GetPlayerPos(playerid, Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ]); GetPlayerHealth(playerid, Character[playerid][Health]); GetPlayerArmour(playerid, Character[playerid][Armour]); GetPlayerIp(playerid, Character[playerid][IP], 16); Character[playerid][Skin] = GetPlayerSkin(playerid); Character[playerid][Money] = GetPlayerMoney(playerid); mysql_format(MHandle, query, sizeof(query), "UPDATE `character` SET `Level` = '%d', `IP` = '%s', `Money` = '%d', `posX` = '%f', `posY` = '%f', `posZ` = '%f', `posA` = '%f' WHERE `Username` = '%s'", Character[playerid][Level], Character[playerid][IP], Character[playerid][Money], Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ], Character[playerid][posA], Character[playerid][Username]); mysql_query(MHandle, query); mysql_format(MHandle, query, sizeof(query), "UPDATE `character` SET `Health` = '%f', `Armour` = '%f', `Admin` = '%d', `Helper` = '%d', `SecretKey` = '%s', `Age` = '%d', `Sex` = '%d' WHERE `Username` = '%s'", Character[playerid][Health], Character[playerid][Armour], Character[playerid][Admin], Character[playerid][Helper], Character[playerid][SecretKey], Character[playerid][Age], Character[playerid][Sex], Character[playerid][Username]); mysql_query(MHandle, query); mysql_format(MHandle, query, sizeof(query), "UPDATE `character` SET `Int` = '%d', `VW` = '%d' WHERE `Username` = '%s'", Character[playerid][Int], GetPlayerVirtualWorld(playerid), Character[playerid][Username]); mysql_query(MHandle, query); return 1; } task SavingCharacterInfo[30000]() { foreach(new i : Player){ SaveCharacterInfo(i); } printf("[MYSQL] - Saved database of all characters."); } public OnPlayerDisconnect(playerid, reason) { SaveCharacterInfo(playerid); gCharacterLogged{playerid} = 0; return 1; }
Is 'SecretKey' the problem? It must be SecretKey[size] right? And by the way, should I use '%e' or '%s' in mysql query?
|
mysql_format(MHandle, query, sizeof(query), "UPDATE `character` SET `Level` = %d, `Username` = '%e', `Password` = '%s', IP = '%s', `Money` = %d, `posX` = %0.2f, `posY` = %0.2f, `posZ` = %0.2f, `posA` = %0.2f, `Health` = %.1f, `Armour` = %.1f, `Admin` = %d, `Helper` = %d, `SecretKey` = '%e', `Age` = %d, `Sex` = %d, `Skin` = %d, `Int` = %d, `VW` = %d WHERE `Username` = '%e' LIMIT 1", Character[playerid][Level], Character[playerid][Username], Character[playerid][Password], Character[playerid][IP], Character[playerid][Money], Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ], Character[playerid][posA], Character[playerid][Health], Character[playerid][Armour], Character[playerid][Admin], Character[playerid][Helper], Character[playerid][SecretKey], Character[playerid][Age], Character[playerid][Sex], Character[playerid][Skin], Character[playerid][Int], GetPlayerVirtualWorld(playerid), Character[playerid][Username]);
mysql_format(MHandle, query, sizeof(query), "UPDATE `character` SET `Level` = %d, `Username` = '%e', `Password` = '%s', IP = '%s', `Money` = %d, `posX` = %0.2f, `posY` = %0.2f, `posZ` = %0.2f, `posA` = %0.2f, `Health` = %.1f, `Armour` = %.1f, `Admin` = %d, `Helper` = %d, `SecretKey` = '%e', `Age` = %d, `Sex` = %d, `Skin` = %d, `Int` = %d, `VW` = %d WHERE `Username` = '%e' LIMIT 1",
Character[playerid][Level], Character[playerid][Username], Character[playerid][Password], Character[playerid][IP], Character[playerid][Money], Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ], Character[playerid][posA], Character[playerid][Health], Character[playerid][Armour], Character[playerid][Admin],
Character[playerid][Helper], Character[playerid][SecretKey], Character[playerid][Age], Character[playerid][Sex], Character[playerid][Skin], Character[playerid][Username], Character[playerid][Int], GetPlayerVirtualWorld(playerid));
mysql_format(MHandle, query, sizeof(query), "UPDATE `character` SET `Level` = %d, `Username` = '%e', `Password` = '%s', IP = '%s', `Money` = %d, `posX` = %0.2f, `posY` = %0.2f, `posZ` = %0.2f, `posA` = %0.2f, `Health` = %.1f, `Armour` = %.1f, `Admin` = %d, `Helper` = %d, `SecretKey` = '%e', `Age` = %d, `Sex` = %d, `Skin` = %d, `Int` = %d, `VW` = %d WHERE `Username` = '%e' LIMIT 1",
Character[playerid][Level], Character[playerid][Username], Character[playerid][Password], Character[playerid][IP], Character[playerid][Money], Character[playerid][posX], Character[playerid][posY], Character[playerid][posZ], Character[playerid][posA], Character[playerid][Health], Character[playerid][Armour], Character[playerid][Admin],
Character[playerid][Helper], Character[playerid][SecretKey], Character[playerid][Age], Character[playerid][Sex], Character[playerid][Skin], Character[playerid][Int], GetPlayerVirtualWorld(playerid), [COLOR="Red"]Character[playerid][Username][/COLOR]);