GMX--Saving Pos Help, YSI, YCMD
#1

I Have a Problem With The Command GMX , If I use /q PlayerDisconnect Gets Called Saves My Stats But If I use GMX It Doesn't Save And Sets X Y Z Players Enum To 0 How Can I Fix This Help Please Thanks
PHP код:
enum pInfo
{
  
pUserName[128],
  
pRegistrationDate,
  
pPass,
  
pPassString,
  
pAge,
  
pOrgin,
  
pSex,
  
pSexShown,
  
pIP[16],
  
pEmail[256],
  
pLogOnAttempt,
  
pLastLogin,
  
pChangeView,
  
pChangeView2,
  
pAdmin,
  
pVIP,
  
pMoney,
  
pScore,
  
pKills,
  
pDeaths,
  
pTeam,
  
pRank,
  
pJob,
  
pSkin,
  
pHairStyle,
  
pMood,
  
pMoodSpawn,
  
pHasSTDs,
  
pCancer,
  
pHealth,
  
pArmour,
  
pDuty,
  
pFrozen,
  
pMute,
  
pWarning,
  
pBanned,
  
pPhoneBook,
  
pPhoneNumber,
  
pMarried,
  
pMarriedTo[128],
  
pSpectating,
  
pBalloonPlayer,
  
pUavControl,
  
pFightingStyle,
  
pBoxingSkill,
  
pBoxingWins,
  
pBoxinLosses,
  
pWantedLevel,
  
pCrimes,
  
pArrested,
  
pJailCount,
  
pJailed,
  
pJailTime,
  
pFishLicense,
  
pFishSkill,
  
pFishTool,
  
pBiggestFish,
  
pFishes,
  
pFishCaughtCount,
  
//---[Shopping]
  
pSeatBelt,
  
pCDMP3Player,
  
pWatch,
  
pAttachments,
  
pPlaneTickets,
  
pHorseShoes,
  
pHelmet,
  
pCigarettes,
  
pSmoked,
  
pLighter,
  
pBeers,
  
//--[Pos]
  
Float:X,
  
Float:Y,
  
Float:Z,
  
Float:Angle,
  
Interior,
  
World,
};
public 
LoadUserAccounts(playerid,name[],value[])
{
  
INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  
INI_Int("Password",PlayerInfo[playerid][pPass]);
  
INI_Float("X",PlayerInfo[playerid][X]);
  
INI_Float("Y",PlayerInfo[playerid][Y]);
  
INI_Float("Z",PlayerInfo[playerid][Z]);
  
INI_Float("Angle",PlayerInfo[playerid][Angle]);
  
INI_Int("Interior",PlayerInfo[playerid][Interior]);
  
INI_Int("World",PlayerInfo[playerid][World]);
  
INI_Int("Age",PlayerInfo[playerid][pAge]);
  
INI_Int("Orgin",PlayerInfo[playerid][pOrgin]);
  
INI_Int("Sex",PlayerInfo[playerid][pSex]);
  
INI_Int("SexShown",PlayerInfo[playerid][pSexShown]);
  
INI_Int("MoodSpawn",PlayerInfo[playerid][pMoodSpawn]);
  
INI_Int("Money",PlayerInfo[playerid][pMoney]);
  
INI_Int("CD-Player",PlayerInfo[playerid][pCDMP3Player]);
  
INI_Int("Watch",PlayerInfo[playerid][pWatch]);
  
INI_Int("Beers",PlayerInfo[playerid][pBeers]);
  
INI_Int("Cigs",PlayerInfo[playerid][pCigarettes]);
  
INI_Int("Lighter",PlayerInfo[playerid][pLighter]);
  
INI_Int("Smoked",PlayerInfo[playerid][pSmoked]);
  
INI_Int("HorseShoes",PlayerInfo[playerid][pHorseShoes]);
  
INI_Int("Helmet",PlayerInfo[playerid][pHelmet]);
  return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
  
SendDeathMessage(INVALID_PLAYER_IDplayerid201);
  new 
string[128],Float:Xz,Float:Yz,Float:Zz,Float:zAngle;
  
GetPlayerPos(playerid,Xz,Yz,Zz);
  
GetPlayerFacingAngle(playerid,zAngle);
  
PlayerInfo[playerid][X] = Xz;
  
PlayerInfo[playerid][Y] = Yz;
  
PlayerInfo[playerid][Z] = Zz;
  
PlayerInfo[playerid][Angle] = zAngle;
  
PlayerInfo[playerid][Interior] = GetPlayerInterior(playerid);
  
PlayerInfo[playerid][World] = GetPlayerVirtualWorld(playerid);
  if(
fexist(UserPath(playerid)))
  {
    new 
INI:File INI_Open(UserPath(playerid));
    
INI_SetTag(File,"Player-Data");
    
INI_WriteString(File,"UserName",GetName(playerid));
    
INI_WriteInt(File,"LogOnAttempt",0);
    
INI_WriteFloat(File,"X",PlayerInfo[playerid][X]);
    
INI_WriteFloat(File,"Y",PlayerInfo[playerid][Y]);
    
INI_WriteFloat(File,"Z",PlayerInfo[playerid][Z]);
    
INI_WriteFloat(File,"Angle",PlayerInfo[playerid][Angle]);
    
INI_WriteInt(File,"Interior",PlayerInfo[playerid][Interior]);
    
INI_WriteInt(File,"World",PlayerInfo[playerid][World]);
    
INI_WriteInt(File,"HorseShoes",PlayerInfo[playerid][pHorseShoes]);
    
INI_WriteString(File,"Mood",PlayerInfo[playerid][pMood]);
    
INI_WriteInt(File,"MoodSpawn",0);
    
INI_WriteInt(File,"Sex",PlayerInfo[playerid][pSex]);
    
INI_WriteInt(File,"SexShown",PlayerInfo[playerid][pSexShown]);
    
INI_WriteInt(File,"Helmet",PlayerInfo[playerid][pHelmet]);
    
INI_WriteInt(File,"SeatBelt",PlayerInfo[playerid][pSeatBelt]);
    
INI_WriteInt(File,"CD-Player",PlayerInfo[playerid][pCDMP3Player]);
    
INI_WriteInt(File,"Watch",PlayerInfo[playerid][pWatch]);
    
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    
INI_WriteInt(File,"VIP",PlayerInfo[playerid][pVIP]);
    
INI_WriteInt(File,"Skin",PlayerInfo[playerid][pSkin]);
    
INI_WriteInt(File,"WantedLevel",PlayerInfo[playerid][pWantedLevel]);
    
INI_WriteInt(File,"Money",GetPlayerMoney(playerid));
    
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    
INI_WriteInt(File,"Score",PlayerInfo[playerid][pScore]);
    
INI_WriteInt(File,"Warn",PlayerInfo[playerid][pWarning]);
    
INI_WriteInt(File,"STD'S",PlayerInfo[playerid][pHasSTDs]);
    
INI_WriteInt(File,"Beers",PlayerInfo[playerid][pBeers]);
    
INI_WriteInt(File,"Cigs",PlayerInfo[playerid][pCigarettes]);
    
INI_WriteInt(File,"Lighter",PlayerInfo[playerid][pLighter]);
    
INI_WriteInt(File,"Smoked",PlayerInfo[playerid][pSmoked]);
    
INI_WriteInt(File,"Cancer",PlayerInfo[playerid][pCancer]);
    
INI_Close(File);
  }
  
format(stringsizeof(string),COLOR_ORANGE"%s"COLOR_WHITE" Player-Data Has Now Been Updated !!"GetName(playerid));
  
SendClientMessageToAll(-1string);
  
printf("%s Player-Data Has Now Been Saved And Updated !!"GetName(playerid));
  switch(
reason)
  {
    case 
0format(stringsizeof(string),COLOR_ORANGE"%s"COLOR_WHITE" Has Lost Connection To Server !!"GetName(playerid));
    case 
1format(stringsizeof(string),COLOR_ORANGE"%s"COLOR_WHITE" Is Leaving The Server !!"GetName(playerid));
    case 
2format(stringsizeof(string),COLOR_ORANGE"%s"COLOR_WHITE" Has Been Kicked/Banned To The Server !!"GetName(playerid));
  }
  
SendClientMessageToAll(-1string);
  return 
1;
}
public 
OnPlayerSpawn(playerid)
{
  
INI_ParseFile(UserPath(playerid),"LoadUserAccounts", .bExtra true, .extra playerid);
  if(
fexist(UserPath(playerid)))
  {
    
SetPlayerPos(playerid,PlayerInfo[playerid][X],PlayerInfo[playerid][Y],PlayerInfo[playerid][Z]);
    
SetPlayerFacingAngle(playerid,PlayerInfo[playerid][Angle]);
    
SetPlayerInterior(playerid,PlayerInfo[playerid][Interior]);
    
SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][World]);
  }
  return 
1;
}
YCMD:gmx(playeridparams[], help)//LVL5
{
  if(
PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid,-1,""COLOR_RED"<<Error>>"COLOR_WHITE" You Need To Be"COLOR_RED" Admin Level 5"COLOR_WHITE" To Use This Command!");
  new 
string[128];
  if(
PlayerInfo[playerid][pAdmin] == 5)
  {
    new 
Float:aXFloat:aYFloat:aZ;
    if(
IsPlayerConnected(playerid))
    {
      
GetPlayerPos(playeridaXaYaZ);
      
PlayerInfo[playerid][X] = aX;
      
PlayerInfo[playerid][Y] = aY;
      
PlayerInfo[playerid][Z] = aZ;
    }
  }
  
format(string,sizeof(string),""COLOR_RED"<<Admin>>"COLOR_ORANGE" %s"COLOR_WHITE" Has Restarted The Server !!",GetName(playerid));
  
SendClientMessageToAll(-1,string);
  
SendRconCommand("gmx");
  }
  return 
1;

Reply
#2

Don't save the player if the position is 0 in your saving function.
Reply
#3

what you mean don't save the player if x y z is 0 ?
Reply
#4

Yes.
Reply
#5

many people haves this problem and i dont think so there is a fix to save postion on restart coz people only make it to save when player disconnects not when the servers closes/crashes
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)