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?
|
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 |