30.08.2012, 22:26
(
Последний раз редактировалось Hyperfire; 01.09.2012 в 21:59.
)
This is cleaned up code.
It saves the data when I disconnect, but not when I crash. Oh and before you say that is my problem there, here is the old code I used.
PS: The code above is the code that was OnPlayerDisconnect, now I cleaned it up by putting it in a function as I am using it in a lot of places(to save the data when it changes).
Код:
public OnPlayerDisconnect(playerid, reason) { if(fexist(Path(playerid))) { CallLocalFunction("SaveUser","playerid"); return 1; } return 1; }
Код:
public SaveUser(playerid) { GetPlayerName(playerid, pInfo[playerid][UserName], MAX_PLAYER_NAME); GetPlayerPos(playerid, pInfo[playerid][PosX], pInfo[playerid][PosY], pInfo[playerid][PosZ]); GetPlayerFacingAngle(playerid,pInfo[playerid][Angle]); GetPlayerHealth(playerid, pInfo[playerid][Health]); GetPlayerArmour(playerid, pInfo[playerid][Armour]); new INI:file = INI_Open(Path(playerid)); INI_SetTag(file,"Player's Data"); //==General_Info================================================================ INI_WriteString(file,"UserName",pInfo[playerid][UserName]); INI_WriteInt(file,"AdminLevel",pInfo[playerid][AdminLevel]); INI_WriteInt(file,"VIPLevel",pInfo[playerid][VIPlevel]); INI_WriteInt(file,"Level",GetPlayerScore(playerid)); INI_WriteInt(file,"Money",GetPlayerMoney(playerid)); INI_WriteInt(file,"Wallet",pInfo[playerid][Wallet]); INI_WriteInt(file,"Bank",pInfo[playerid][Bank]); INI_WriteInt(file,"Kills",pInfo[playerid][Kills]); INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]); INI_WriteInt(file,"Jailed",pInfo[playerid][Jailed]); INI_WriteInt(file,"WantedLevel",pInfo[playerid][WantedLevel]); INI_WriteInt(file,"FightingStyle",pInfo[playerid][FightingStyle]); INI_WriteFloat(file,"Health",pInfo[playerid][Health]); INI_WriteFloat(file,"Armour",pInfo[playerid][Armour]); //==Position_Interior_VirtualWorld_Skin========================================= INI_WriteInt(file,"Skin",GetPlayerSkin(playerid)); INI_WriteInt(file,"VirtualWorld",GetPlayerVirtualWorld(playerid)); INI_WriteInt(file,"Interior",GetPlayerInterior(playerid)); INI_WriteFloat(file,"PosX",pInfo[playerid][PosX]); INI_WriteFloat(file,"PosY",pInfo[playerid][PosY]); INI_WriteFloat(file,"PosZ",pInfo[playerid][PosZ]); INI_WriteFloat(file,"Angle",pInfo[playerid][Angle]); //==Items======================================================================= INI_WriteInt(file,"Materials",pInfo[playerid][Materials]); INI_WriteInt(file,"Marijuana",pInfo[playerid][Marijuana]); INI_WriteInt(file,"Cocaine",pInfo[playerid][Cocaine]); INI_Close(file); SendClientMessage(playerid,COLOR_PURPLE,"Player Info Saved"); return 1; }