Helló!
#include <a_samp>
#include <dini>
enum p_data
{
Float:last_x,
Float:last_y,
Float:last_z
}
new PlayerInfo[MAX_PLAYERS][p_data];
public OnPlayerConnect(playerid)
{
//Betölti a pozíciót.
new str[128];
format(str,sizeof(str),\"!!!CÉLHELY - JÁTÉKOS FÁJL: EZT ÍRD ÁT!!!\");
if(dini_Exists(str))
{
PlayerInfo[playerid][last_x] = dini_Float(str,\"LastX\");
PlayerInfo[playerid][last_y] = dini_Float(str,\"LastY\");
PlayerInfo[playerid][last_z] = dini_Float(str,\"LastZ\");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
//Elmenti a pozíciót.
new str[128];
format(str,sizeof(str),\"!!!CÉLHELY - JÁTÉKOS FÁJL: EZT ÍRD ÁT!!!\");
if(!dini_Exists(str))dini_Create(str);
GetPlayerPos(playerid,PlayerInfo[playerid][last_x],PlayerInfo[playerid][last_y],PlayerInfo[playerid][last_z]);
dini_FloatSet(str,\"LastX\",PlayerInfo[playerid][last_x]);
dini_FloatSet(str,\"LastY\",PlayerInfo[playerid][last_y]);
dini_FloatSet(str,\"LastZ\",PlayerInfo[playerid][last_z]);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid,PlayerInfo[playerid][last_x],PlayerInfo[playerid][last_y],PlayerInfo[playerid][last_z]);
return 1;
}
ezzel az a baj, hogy minden spawnoláskor ugyanoda fogja rakni a játékost, ahol legutoljára kilépett.
akkor egyszerûen létrehoz hozzá mégegy változót, amivel leellenõrizheti, hogy elsõ spawn-e...
#include <a_samp>
#include <dini>
enum p_data
{
Float:last_x,
Float:last_y,
Float:last_z,
FirstSpawn
}
new PlayerInfo[MAX_PLAYERS][p_data];
public OnPlayerConnect(playerid)
{
//Betölti a pozíciót.
new str[128];
format(str,sizeof(str),\"!!!CÉLHELY - JÁTÉKOS FÁJL: EZT ÍRD ÁT!!!\");
if(dini_Exists(str))
{
PlayerInfo[playerid][last_x] = dini_Float(str,\"LastX\");
PlayerInfo[playerid][last_y] = dini_Float(str,\"LastY\");
PlayerInfo[playerid][last_z] = dini_Float(str,\"LastZ\");
}
PlayerInfo[playerid][FirstSpawn] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
//Elmenti a pozíciót.
new str[128];
format(str,sizeof(str),\"!!!CÉLHELY - JÁTÉKOS FÁJL: EZT ÍRD ÁT!!!\");
if(!dini_Exists(str))dini_Create(str);
GetPlayerPos(playerid,PlayerInfo[playerid][last_x],PlayerInfo[playerid][last_y],PlayerInfo[playerid][last_z]);
dini_FloatSet(str,\"LastX\",PlayerInfo[playerid][last_x]);
dini_FloatSet(str,\"LastY\",PlayerInfo[playerid][last_y]);
dini_FloatSet(str,\"LastZ\",PlayerInfo[playerid][last_z]);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][FirstSpawn] == 0)
{
SetPlayerPos(playerid,PlayerInfo[playerid][last_x],PlayerInfo[playerid][last_y],PlayerInfo[playerid][last_z]);
PlayerInfo[playerid][FirstSpawn] = 1;
}
else
{
//Minden más esetben
SetPlayerPos(playerid, 0.0, 0.0, 10.0);
}
return 1;
}