29.01.2017, 07:41
(
Последний раз редактировалось AjaxM; 29.01.2017 в 07:53.
Причина: Example Code Added
)
GetPlayer functions is not called when a player disconnects. And yes, you could create a variable where you update his co-ordinates every seconds.
EDIT ;
Example:
EDIT ;
Example:
PHP код:
forward PosSaving(playerid);
new PosSavingTimer[MAX_PLAYERS];
public OnPlayerSpawn(playerid)
{
PosSavingTimer[playerid] = SetTimerEx("PosSaving", 1000, false, "i", playerid); // Ticks every seconds
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if (PINFO[playerid][Plogged] == false) return 0;
new query[150];
mysql_format(ConHandler, query, sizeof query, "UPDATE `playerdata` SET `SpawnPosX` = %f, `SpawnPosY` = %f, `SpawnPosZ` = %f, `SpawnPosA` = %f, `Interior` = %d WHERE `ID` = %d LIMIT 1", PINFO[playerid][SpawnPX], PINFO[playerid][SpawnPY], PINFO[playerid][SpawnPZ], PINFO[playerid][SpawnPA], GetPlayerInterior(playerid), PINFO[playerid][ID]);
mysql_tquery(ConHandler, query);
KillTimer(PosSavingTimer[playerid]);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
KillTimer(PosSavingTimer[playerid]);
return 1;
}
public PosSaving(playerid)
{
new Float:x, Float:y, Float:z. Float:a;
GetPlayerFacingAngle(playerid, a);
GetPlayerPos(playerid, x,y,z);
PINFO[playerid][SpawnPX] = x;
PINFO[playerid][SpawnPY] = y;
PINFO[playerid][SpawnPZ] = z;
PINFO[playerid][SpawnPA] = a;
return 1;
}