Save last pos not working upon serv restart
|
Little Clucker Join Date: Mar 2008 Posts: 7 Reputation: 0 |
Hey,
So I created a system that saves the user's last position when they disconnect, which on a daily basis works fine. However when I use /gmx , or use the server control panel, to stop and start the server, all user's spawn in Blueberry, I was wondering if anyone could tell what could cause this? Code:
public OnPlayerDisconnect(playerid, reason)
{
KillTimer(stimer[playerid]);
SaveAccount(playerid);
if(reason == 0)
{
SendConnectionMessage(playerid, 2);
}
else if(reason == 1)
{
SendConnectionMessage(playerid, 3);
}
else
{
SendConnectionMessage(playerid, 0);
}
return 1;
}
Code:
public OnGameModeExit()
{
for(new i=0; i<MAX_PLAYERS; i++){
SaveAccount(i);
TextDrawDestroy(Zones[i]);}
return 1;
}
Code:
public SaveAccount(playerid)
{
new Float: x, Float: y, Float:z, Float: a;
GetPlayerPos(playerid, x,y,z);
GetPlayerFacingAngle(playerid, a);
PlayerInfo[playerid][pXPos] = x;
PlayerInfo[playerid][pYPos] = y;
PlayerInfo[playerid][pZPos] = z;
PlayerInfo[playerid][pAPos] = a;
new h, m, s;
TotalGameTime(playerid, h, m, s);
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "data");
INI_WriteInt(File, "Cash", GetPlayerMoney(playerid));
INI_WriteInt(File, "Admin", PlayerInfo[playerid][pAdmin]);
INI_WriteInt(File, "UCAdmin", PlayerInfo[playerid][pUCAdmin]);
INI_WriteInt(File, "DriversLicense", PlayerInfo[playerid][pDriverLicense]);
INI_WriteInt(File, "Hours", h);
INI_WriteInt(File, "Minutes", m);
INI_WriteInt(File, "Seconds", s);
INI_WriteInt(File, "pInJail", PlayerInfo[playerid][pInJail]);
INI_WriteInt(File, "pInJailTime", PlayerInfo[playerid][pInJailTime]);
INI_WriteFloat(File, "PosX", PlayerInfo[playerid][pXPos]);
INI_WriteFloat(File, "PosY", PlayerInfo[playerid][pYPos]);
INI_WriteFloat(File, "PosZ", PlayerInfo[playerid][pZPos]);
INI_WriteFloat(File, "PosA", PlayerInfo[playerid][pAPos]);
INI_WriteInt(File, "Banned", PlayerInfo[playerid][pBanned]);
INI_WriteString(File, "BannedBy", PlayerInfo[playerid][pBannedBy]);
INI_WriteString(File, "Reason", PlayerInfo[playerid][pReason]);
INI_Close(File);
return 1;
}
public LoadUser_data(playerid,name[],value[])
{
INI_Int("Password",PlayerInfo[playerid][pPass]);
INI_Int("Cash",PlayerInfo[playerid][pCash]);
INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
INI_Int("UCAdmin",PlayerInfo[playerid][pUCAdmin]);
INI_Int("DriverLicense",PlayerInfo[playerid][pDriverLicense]);
INI_Int("Hours",PlayerInfo[playerid][hours]);
INI_Int("Minutes",PlayerInfo[playerid][minutes]);
INI_Int("Seconds",PlayerInfo[playerid][seconds]);
INI_Int("InJail",PlayerInfo[playerid][pInJail]);
INI_Int("InJailTime",PlayerInfo[playerid][pInJailTime]);
INI_Float("XPos",PlayerInfo[playerid][pXPos]);
INI_Float("YPos",PlayerInfo[playerid][pYPos]);
INI_Float("ZPos",PlayerInfo[playerid][pZPos]);
INI_Float("APos",PlayerInfo[playerid][pAPos]);
INI_Int("Banned", PlayerInfo[playerid][pBanned]);
INI_String("BannedBy", PlayerInfo[playerid][pBannedBy],30);
INI_String("ReasonBanned", PlayerInfo[playerid][pReason], 128);
return 1;
}
Code:
public OnPlayerSpawn(playerid)
SetPlayerPos(playerid, PlayerInfo[playerid][pXPos], PlayerInfo[playerid][pYPos], PlayerInfo[playerid][pZPos]);
SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pAPos]);
SetSpawnInfo(playerid, NO_TEAM, GetPlayerSkin(playerid),PlayerInfo[playerid][pXPos], PlayerInfo[playerid][pYPos], PlayerInfo[playerid][pZPos],PlayerInfo[playerid][pAPos], 0, 0, 0, 0, 0, 0);
|
Aucun commentaire:
Enregistrer un commentaire