03.11.2018, 19:53
Quote:
|
Try this under onplayerdisconnect
Code:
new Float:x, Float:y, Float:z GetPlayerPos(playerid, x, y, z); PlayerInfo[playerid][PosX] = x; Etc Then save the data |
Code:
#define PATH "/PlayerData/%s.ini"
forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
INI_Float("Pos X", PlayerInfo[playerid][pPosX]);
INI_Float("Pos Y", PlayerInfo[playerid][pPosY]);
INI_Float("Pos Z", PlayerInfo[playerid][pPosZ]);
INI_Int("Admin Levels", PlayerInfo[playerid][pAdmin]);
return 1;
}
stock UserPath(playerid)
{
new string[128],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof(playername));
format(string,sizeof(string),PATH,playername);
return string;
}
public OnPlayerConnect(playerid)
{
if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid), "/PlayerData/%s.ini", .bExtra = true, .extra = playerid);
}
}
hook OnPlayerDisconnect(playerid, reason)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
PlayerInfo[playerid][pPosX] = X;
PlayerInfo[playerid][pPosY] = Y;
PlayerInfo[playerid][pPosZ] = Z;
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteFloat(File, "Position X", PlayerInfo[playerid][pPosX]);
INI_WriteFloat(File, "Position Y", PlayerInfo[playerid][pPosY]);
INI_WriteFloat(File, "Position Z", PlayerInfo[playerid][pPosZ]);
INI_WriteInt(File, "Admin Level", PlayerInfo[playerid][pAdmin]);
INI_Close(File);
return 1;
}


