16.02.2011, 05:47
Please look at my work its my first time with dini and it compiles im not sure if will work and i cant test it.
I want it to save the position when they logout and then set them back when they connect.
basically the relog where they logged out.
Please look though see if i made a mistake of if i can better it please
I want it to save the position when they logout and then set them back when they connect.
basically the relog where they logged out.
Please look though see if i made a mistake of if i can better it please
pawn Код:
#include <a_samp>
#include <dini>
new Float:pX, Float:pY, Float:pZ;
new Float:SetPosX[MAX_PLAYERS];
new Float:SetPosY[MAX_PLAYERS];
new Float:SetPosZ[MAX_PLAYERS];
new bool:FirstLog[MAX_PLAYERS];
enum LogInfo
{
LogX,
LogY,
LogZ
};
new pInfo[MAX_PLAYERS][LogInfo];
public OnPlayerConnect(playerid)
{
FirstLog[playerid] = true;
if(!dini_Exists("LogPos/%s.veh"))//Dont look right :S
{
new dateiname[MAX_PLAYER_NAME+4];
new playername[MAX_PLAYER_NAME];
new var[256];
GetPlayerName(playerid, playername, sizeof(playername));
format(dateiname, sizeof(dateiname), "LogPos/%s.veh", playername);
new File: LogFile = fopen(dateiname, io_write);
format(var, 256, "LogX=0\n", pInfo[playerid][LogX]); fwrite(LogFile, var);
format(var, 256, "LogY=0\n", pInfo[playerid][LogY]); fwrite(LogFile, var);
format(var, 256, "LogZ=0\n", pInfo[playerid][LogZ]); fwrite(LogFile, var);
fclose(LogFile);
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new dateiname[MAX_PLAYER_NAME+4];
new playername[MAX_PLAYER_NAME];
new var[256];
GetPlayerName(playerid, playername, sizeof(playername));
if(!dini_Exists("LogPos/%s.ini"))//Dont look right :S
{
format(dateiname, sizeof(dateiname), "LogPos/%s.ini", playername);
new File: LogFile = fopen(dateiname, io_write);
format(var, 256, "LogX=0\n", pInfo[playerid][LogX]); fwrite(LogFile, var);
format(var, 256, "LogY=0\n", pInfo[playerid][LogY]); fwrite(LogFile, var);
format(var, 256, "LogZ=0\n", pInfo[playerid][LogZ]); fwrite(LogFile, var);
fclose(LogFile);
}
if(dini_Exists("LogPos/%s.txt"))//Dont look right :S
{
GetPlayerPos(playerid, pX, pY, pZ);
format(dateiname, sizeof(dateiname), "LogPos/%s.ini", playername);
new File: LogFile = fopen(dateiname, io_write);
format(var, 256, "LogX=%i\n", pX); fwrite(LogFile, var);
format(var, 256, "LogY=%i\n", pY); fwrite(LogFile, var);
format(var, 256, "LogZ=%i\n", pZ); fwrite(LogFile, var);
fclose(LogFile);
}
return 1;
}
public OnPlayerSpawn(playerid)
{
if(FirstLog[playerid] == true)
{
if(dini_Exists("LogPos/%s.txt"))//Dont look right :S
{
SetPosX[playerid] = pInfo[playerid][LogX];
SetPosY[playerid] = pInfo[playerid][LogY];
SetPosZ[playerid] = pInfo[playerid][LogZ];
}
SetPlayerPos(playerid,SetPosX[playerid],SetPosY[playerid],SetPosZ[playerid]);
FirstLog[playerid] = false;
}
return 1;
}