03.09.2011, 23:19
My code complies correctly, but when a new player registers their X,Y,Z coords are 0, 0, 0 but they spawn at Unity Station. If they go somewhere else and /q Their coords still remain 0, 0, 0 in stead of updating to their last known position for them to reconnect at those last known coords. And the Skins Wont save either now. Not sure what im doing wrong.
OnPlayerDisconnect & OnPlayerSpawn
OnDialogRegister
OnPlayerDisconnect & OnPlayerSpawn
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Cash",PlayerInfo[playerid][pCash]);
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
INI_WriteInt(File,"Skin",PlayerInfo[playerid][pSkin]);
INI_WriteInt(File,"Vip",PlayerInfo[playerid][pVip]);
INI_WriteFloat(File,"X",PlayerInfo[playerid][pLastX]);
INI_WriteFloat(File,"Y",PlayerInfo[playerid][pLastY]);
INI_WriteFloat(File,"Z",PlayerInfo[playerid][pLastZ]);
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
INI_Close(File);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pLastX] == 0.0 && PlayerInfo[playerid][pLastY] == 0.0 && PlayerInfo[playerid][pLastZ] == 0.0)
{
SetPlayerPos(playerid, 1723.2061,-1907.0430,13.5646);
}
else SetPlayerPos(playerid, PlayerInfo[playerid][pLastX], PlayerInfo[playerid][pLastY], PlayerInfo[playerid][pLastZ]);
return 1;
}
pawn Код:
INI_WriteFloat(File,"X", 1481.3613);
INI_WriteFloat(File,"Y", -1758.5322);
INI_WriteFloat(File,"Z", 17.5313);