#include <a_samp>#include <dini>new egyszer = 1; //Ha az érték 0 akkor minden egyes spawnolásnál oda rakja, ha 1 akkor csak csatlakozás után követő spawnolásnálnew File[128];new spawn[MAX_PLAYERS];public OnPlayerDisconnect(playerid){ format(File, sizeof(File), \"users/%s.ini\", pName(playerid)); if(!dini_Exists(File)) { dini_Create(File); }new Float:x,Float:y,Float:z, interior;GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);dini_IntSet(File,\"sx\",floatround(x));dini_IntSet(File,\"sy\",floatround(y));dini_IntSet(File,\"sz\",floatround(z));dini_IntSet(File,\"sint\",interior);dini_IntSet(File,\"swld\",GetPlayerVirtualWorld(playerid));return 1;}public OnFilterScriptInit(){ for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) { spawn = 0; }return 1;}public OnPlayerConnect(playerid){ spawn[playerid]=0; return 1;}public OnPlayerSpawn(playerid){if(egyszer == 0 || (spawn[playerid] == 0 && egyszer == 1)){ format(File, sizeof(File), \"users/%s.ini\", pName(playerid));if(dini_Int(File,\"sx\") != 0){ SetPlayerPos(playerid,float(dini_Int(File,\"sx\")),float(dini_Int(File,\"sy\")),float(dini_Int(File,\"sz\"))); SetPlayerInterior(playerid,(dini_Int(File,\"sint\"))); SetPlayerVirtualWorld(playerid, (dini_Int(File,\"swld\")));}spawn[playerid]=1;}return 1;}stock pName(playerid){ new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); return name;}
#include <a_samp>#include <dini>new fs[MAX_PLAYERS], Float:sX[MAX_PLAYERS], Float:sY[MAX_PLAYERS], Float:sZ[MAX_PLAYERS], Float:sAngle[MAX_PLAYERS], vw[MAX_PLAYERS], int[MAX_PLAYERS];new pFile[64];public OnPlayerSpawn(playerid){switch(fs[playerid]){case 1:{ SetPlayerPos(playerid, sX[playerid], sY[playerid], sZ[playerid]), SetPlayerFacingAngle(playerid, sAngle[playerid]);//csak akkor spawnolja a mentett pozícióra, mikor te akarod. SetPlayerVirtualWorld(playerid, vw[playerid]), SetPlayerInterior(playerid, int[playerid]);}}fs[playerid] = 0;//ez csak azért, ha pl van máshol SetPlayerPos, ami valszeg van, ne rakja át a játékost megint erre a pontra.return 1;}public OnPlayerDeath(playerid, killerid, reason){fs[playerid] = 1; //halál után a mentett helyre spawnolreturn 1;}public OnPlayerConnect(playerid){LoadData(playerid);return 1;}public OnPlayerDisconnect(playerid, reason){new Float:X, Float:Y, Float:Z, Float:Angle;GetPlayerPos(playerid, X, Y, Z), GetPlayerFacingAngle(playerid, Angle); format(pFile, sizeof(pFile), \"/users/%s.ini\", pName(playerid)); dini_FloatSet(pFile, \"spawnx\", X); dini_FloatSet(pFile, \"spawny\", Y); dini_FloatSet(pFile, \"spawnz\", Z); dini_FloatSet(pFile, \"spawnangle\", Angle); dini_IntSet(pFile, \"vw\", GetPlayerVirtualWorld(playerid)); dini_IntSet(pFile, \"int\", GetPlayerInterior(playerid)); printf(\"%s pozicióadatai sikeresen mentődtek!\", pName(playerid)); return 1;}stock LoadData(playerid){ format(pFile, sizeof(pFile), \"/users/%s.ini\", pName(playerid)); if(dini_Exists(pFile)) { sX[playerid] = dini_Float(pFile, \"spawnx\"); sY[playerid] = dini_Float(pFile, \"spawny\"); sZ[playerid] = dini_Float(pFile, \"spawnz\"); sAngle[playerid] = dini_Float(pFile, \"spawnangle\"); int[playerid] = dini_Int(pFile, \"int\"); vw[playerid] = dini_Int(pFile, \"vw\");}else{ dini_Create(pFile);}return 1;} stock pName(playerid){new name[32];GetPlayerName(playerid, name, sizeof(name));return name;}
GetPlayerPoolSize is felesleges, mivel valszeg nem menetközben fogja betölteni, hogy mentsen, hanem a szerver indulásakor, amikor még nincs játékos...
nem azért, de a dini-ben is van float mentés...felesleges a floatround. [/quote]Igen tudok róla, csak egy scriptemből vettem ki és nem figyeltem oda :shurg: Csak szerettem volna a kérdésre választ adni.További szép napot! / Jó hétvégét!