|
Originally Posted by Cracker
doesnt work for me
or it works but woutn save.Made a corinanate file also but everytime il spawn in normal spawn not the place where i loged out Made this cordinates: Код:
PositionX=1565 PositionY=-2294 PositionZ=14 |
|
Originally Posted by revenngeR
what about if player is in a interior and the player exits?
|
nice job
|
Yes, i have tested it and it is IMPOSSIBLE for you to know when a player is going to disconnect!
And i do know pawno, so stop saying i don't. |
|
Dini is just bad to use now since more advanced things are out; see if you can learn those. Give y_ini a shot!
|
|
This is a simple way to save player position after closing the game and loading it after the player gets back.
First include these files (It will be attached with the script) Код:
#include <Dini> #include <dudb> Код:
Player(playerid)
{
new player[MAX_PLAYER_NAME];
GetPlayerName(playerid, player, sizeof(player));
return player;
}
Код:
new Float:positionx; new Float:positiony; new Float:positionz; Now we need to open a file on scriptfiles to save our coordinates, to do that put this code at the end of your script. Код:
FileStats(playerid)
{
new a[256]; format(a, sizeof(a), "%s.ini",udb_encode(Player(playerid)));
return a;
}
Now we need to store these positions in the file, to do that type this under the above code. Код:
SaveStats(playerid)
{
dini_IntSet(FileStats(playerid), "PositionX", floatround(positionx));
dini_IntSet(FileStats(playerid), "PositionY", floatround(positiony));
dini_IntSet(FileStats(playerid), "PositionZ", floatround(positionz));
}
Next is to load the positions from the file, to do that type under the above code, Код:
LoadStats(playerid)
{
positionx = dini_Int(FileStats(playerid), "PositionX");
positiony = dini_Int(FileStats(playerid), "PositionY");
positionz = dini_Int(FileStats(playerid), "PositionZ");
}
Ok now we need to load the file when the player connect, so we type this under OnPlayerConnect Код:
LoadStats(playerid); Код:
new Float:x;
new Float:y;
new Float:z;
GetPlayerPos(playerid,x,y,z);
positionx = x;
positiony = y;
positionz = z;
if (!dini_Exists(FileStats(playerid)))
{
dini_Create(FileStats(playerid));
}
SaveStats(playerid);
Now we need to set the player position when he/she enters so we copy this code under OnPlayerSpawn, Код:
SetPlayerPos(playerid,positionx,positiony,positionz); Код:
SetPlayerPos(playerid,1182.7733,-1323.6193,13.5785); positionx = 1182.7733; positiony = -1323.6193; positionz = 13.5785; Ok Now the script will look like: Код:
#include <Dini>
#include <dudb>
new Float:positionx;
new Float:positiony;
new Float:positionz;
public OnPlayerConnect(playerid)
{
LoadStats(playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new Float:x;
new Float:y;
new Float:z;
GetPlayerPos(playerid,x,y,z);
positionx = x;
positiony = y;
positionz = z;
if (!dini_Exists(FileStats(playerid)))
{
dini_Create(FileStats(playerid));
}
SaveStats(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid,positionx,positiony,positionz);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerPos(playerid,1182.7733,-1323.6193,13.5785);
positionx = 1182.7733;
positiony = -1323.6193;
positionz = 13.5785;
return 1;
}
Player(playerid)
{
new player[MAX_PLAYER_NAME];
GetPlayerName(playerid, player, sizeof(player));
return player;
}
FileStats(playerid)
{
new a[256]; format(a, sizeof(a), "%s.ini",udb_encode(Player(playerid)));
return a;
}
SaveStats(playerid)
{
dini_IntSet(FileStats(playerid), "PositionX", floatround(positionx));
dini_IntSet(FileStats(playerid), "PositionY", floatround(positiony));
dini_IntSet(FileStats(playerid), "PositionZ", floatround(positionz));
}
LoadStats(playerid)
{
positionx = dini_Int(FileStats(playerid), "PositionX");
positiony = dini_Int(FileStats(playerid), "PositionY");
positionz = dini_Int(FileStats(playerid), "PositionZ");
}
Here is the gf edit with full server included with my save position script. Download From Here http://discoveryweb.net/savepositiongf.zip Here is the full working script with the included files. Download From Here http://discoveryweb.net/saveposition.zip Tell me if you need any help or if the link is broken. Saleh Yassin |