10.11.2012, 06:19
Well i looked at multiple threads about this problem and tried to add code to make it work, Some of it compiled successfully but still did not work in-game. My problem is that the server only saves the player stats when they log out before restart but if they stay logged in during the restart they're stats get reset. I don't know where it is saving the files if it saving them at all i guess, I also don't know if there is any type of GMX to be heard of. Here is some code that i think is needed.
OnPlayerDisconnect:
OnGameModeExit:
OnPlayerDisconnect:
Код:
public OnPlayerDisconnect(playerid, reason) { if(IsPlayerNPC(playerid)) { IsSpawned[playerid] =0; return 1; } if(afktag[playerid] == 1) { new pname[16]; GetPlayerName(playerid,pname,16); strdel(pname, strlen(pname)-5, strlen(pname)); afktag[playerid] =0; SetPlayerName(playerid,pname); } new string[128]; new pname[24]; GetPlayerName(playerid,pname,sizeof(pname)); //Save Wanted Level && Jailtime SavedWantedLevel[playerid] =GetPlayerWantedLevel(playerid); SavedJailTime[playerid] =JailTime[playerid]; if(PLAYERLIST_authed[playerid] == 1) { dUserSetINT(PlayerName(playerid)).("Bankcash",BankCash[playerid]); dUserSetINT(PlayerName(playerid)).("Cash",GetPlayerMoney(playerid)); dUserSetINT(PlayerName(playerid)).("Score",GetPlayerScore(playerid)); dUserSetINT(PlayerName(playerid)).("Adminlevel",AdminLevel[playerid]); dUserSetINT(PlayerName(playerid)).("Army",CanUseArmy[playerid]); dUserSetINT(PlayerName(playerid)).("CIA",CanUseCIA[playerid]); dUserSetINT(PlayerName(playerid)).("RegularPlayer",IsRegularPlayer[playerid]); dUserSetINT(PlayerName(playerid)).("DrugHouseOwner",DrugHouseOwner[playerid]); dUserSetINT(PlayerName(playerid)).("OttoOwner",OttoOwner[playerid]); dUserSetINT(PlayerName(playerid)).("TSkill",TerroristSkill[playerid]); dUserSetINT(PlayerName(playerid)).("RobSkill",RobSkill[playerid]); dUserSetINT(PlayerName(playerid)).("HasPackC4",HasPackC4[playerid]); dUserSetINT(PlayerName(playerid)).("HasPackRope",HasPackRope[playerid]); dUserSetINT(PlayerName(playerid)).("HasPackMoney",HasPackMoney[playerid]); dUserSetINT(PlayerName(playerid)).("SavedWantedLevel",SavedWantedLevel[playerid]); dUserSetINT(PlayerName(playerid)).("SavedJailTime",SavedJailTime[playerid]); } //Do things to the playerid ResetVariables(playerid); TextDrawHideForPlayer(playerid,VersionTD); TextDrawHideForPlayer(playerid,WebsiteTD); TextDrawDestroy(MessageTD[playerid]); TextDrawDestroy(JailTimer[playerid]); TextDrawDestroy(LocationTD[playerid]); if (PlayerInfo[playerid][pRoadblock] != 0) { RemoveRoadblock(playerid); } for(new i = 0; i < sizeof(Objects); i++) ////Xobj { if(Player[playerid][view][i]) { Player[playerid][view][i] = false; DestroyPlayerObject(playerid,Player[playerid][objid][i]); } } format(string,sizeof(string),"%s Has just left the server! (%s)",pname,aDisconnectNames[reason]); SendClientMessageToAll(COLOR_VIOLETBLUE,string); format(string,sizeof(string),"1%s Has just left the server! (%s)",pname,aDisconnectNames[reason]); IRC_Say(gGroupID,IRC_CHANNEL,string); return 1; }
Код:
public OnGameModeExit() { //////xobject for(new i = 0; i < MAX_PLAYERS; i++) { for(new o = 0; o < sizeof(Objects); o++) { if(Player[i][view][o]) { Player[i][view][o] = false; DestroyPlayerObject(i,Player[i][objid][o]); } } } KillTimer(timer); // Disconnect the first bot IRC_Quit(gBotID[0], "Gamemode exiting"); // Destroy the group IRC_DestroyGroup(gGroupID); IRC_DestroyGroup(gGroupAdminID); return 1; }