SA-MP Forums Archive
[Question] Update - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: [Question] Update (/showthread.php?tid=349720)



[Question] Update - NeroX98 - 09.06.2012

Hi i have a not hosted (dedicated) samp server... The problem is when i close the black screen (samp-server.exe) the player stats (level,exp,kills...) are not saving but when samp-server.exe is still running and player disconnects from the server, stats are saving... So i'd like to know if i host the server will the stats saving... ?

EDIT: Read my last post


Re: [Question] Update - Face9000 - 09.06.2012

Doesn't matter if your server is hosted or not to save stats.

When you close samp-server.exe,OnGameModeExit is called,so put your saving variables there.


Re : [Question] Update - ricardo178 - 09.06.2012

Actualy that's because OnPlayerDisconnect, it saves. When player quit, it calls OnPlayerDisconnect.

When you turn the black windows off, it calls OnGameModeExit, and if player stats are not saving witha timer or there, it wont save.


Re: [Question] Update - JhnzRep - 09.06.2012

Well you could GMX the server creating a custom GMX command(https://sampforum.blast.hk/showthread.php?tid=319439) and while it's restarting close the box.


Re: [Question] Update - NeroX98 - 09.06.2012

thanks guyz in my gamemode there isn't OnGameModeExit so i've thinked that its not that im searching for


Re: [Question] Update - Face9000 - 09.06.2012

Quote:
Originally Posted by NeroX98
Посмотреть сообщение
thanks guyz in my gamemode there isn't OnGameModeExit so i've thinked that its not that im searching for
Just add it?


Re: [Question] Update - NeroX98 - 10.06.2012

Again me

I have the function OnPlayerUpdateCustom(playerid); for saving stats

Код:
public OnPlayerUpdateCustom(playerid)
{
    if(IsPlayerConnected(playerid)) {
        if(gPlayerLogged[playerid]) {
            new string3[64];
            new playername3[MAX_PLAYER_NAME];
            GetPlayerName(playerid, playername3, sizeof(playername3));
            format(string3, sizeof(string3), "users/%s.ini", playername3);
            new File: hFile = fopen(string3, io_write);
            if (hFile) {
                new var[64];
                format(var, 64, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
                PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
                format(var, 64, "Level=%d\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
                format(var, 64, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
                format(var, 64, "DonateRank=%d\n",PlayerInfo[playerid][pDonateRank]);fwrite(hFile, var);
                format(var, 64, "UpgradePoints=%d\n",PlayerInfo[playerid][gPupgrade]);fwrite(hFile, var);
                format(var, 64, "ConnectedTime=%d\n",PlayerInfo[playerid][pConnectTime]);fwrite(hFile, var);
                format(var, 64, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
                format(var, 64, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
                format(var, 64, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var);
                format(var, 64, "Origin=%d\n",PlayerInfo[playerid][pOrigin]);fwrite(hFile, var);
                format(var, 64, "CK=%d\n",PlayerInfo[playerid][pCK]);fwrite(hFile, var);
                format(var, 64, "Muted=%d\n",PlayerInfo[playerid][pMuted]);fwrite(hFile, var);
                format(var, 64, "Respect=%d\n",PlayerInfo[playerid][pExp]);fwrite(hFile, var);
                format(var, 64, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
                format(var, 64, "Bank=%d\n",PlayerInfo[playerid][pAccount]);fwrite(hFile, var);
                format(var, 64, "Crimes=%d\n",PlayerInfo[playerid][pCrimes]);fwrite(hFile, var);
                format(var, 64, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
                format(var, 64, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
                format(var, 64, "Arrested=%d\n",PlayerInfo[playerid][pArrested]);fwrite(hFile, var);
                format(var, 64, "WantedDeaths=%d\n",PlayerInfo[playerid][pWantedDeaths]);fwrite(hFile, var);
                format(var, 64, "Phonebook=%d\n",PlayerInfo[playerid][pPhoneBook]);fwrite(hFile, var);
                format(var, 64, "LottoNr=%d\n",PlayerInfo[playerid][pLottoNr]);fwrite(hFile, var);
                format(var, 64, "Fishes=%d\n",PlayerInfo[playerid][pFishes]);fwrite(hFile, var);
                format(var, 64, "BiggestFish=%d\n",PlayerInfo[playerid][pBiggestFish]);fwrite(hFile, var);
                format(var, 64, "Job=%d\n",PlayerInfo[playerid][pJob]);fwrite(hFile, var);
                format(var, 64, "Paycheck=%d\n",PlayerInfo[playerid][pPayCheck]);fwrite(hFile, var);
                format(var, 64, "HeadValue=%d\n",PlayerInfo[playerid][pHeadValue]);fwrite(hFile, var);
                format(var, 64, "Jailed=%d\n",PlayerInfo[playerid][pJailed]);fwrite(hFile, var);
                format(var, 64, "JailTime=%d\n",PlayerInfo[playerid][pJailTime]);fwrite(hFile, var);
                format(var, 64, "Materials=%d\n",PlayerInfo[playerid][pMats]);fwrite(hFile, var);
                format(var, 64, "Drugs=%d\n",PlayerInfo[playerid][pDrugs]);fwrite(hFile, var);
                format(var, 64, "Leader=%d\n",PlayerInfo[playerid][pLeader]);fwrite(hFile, var);
                format(var, 64, "Member=%d\n",PlayerInfo[playerid][pMember]);fwrite(hFile, var);
                format(var, 64, "FMember=%d\n",PlayerInfo[playerid][pFMember]);fwrite(hFile, var);
                format(var, 64, "Rank=%d\n",PlayerInfo[playerid][pRank]);fwrite(hFile, var);
                format(var, 64, "Char=%d\n",PlayerInfo[playerid][pChar]);fwrite(hFile, var);
                format(var, 64, "ContractTime=%d\n",PlayerInfo[playerid][pContractTime]);fwrite(hFile, var);
                format(var, 64, "DetSkill=%d\n",PlayerInfo[playerid][pDetSkill]);fwrite(hFile, var);
                format(var, 64, "SexSkill=%d\n",PlayerInfo[playerid][pSexSkill]);fwrite(hFile, var);
                format(var, 64, "BoxSkill=%d\n",PlayerInfo[playerid][pBoxSkill]);fwrite(hFile, var);
                format(var, 64, "LawSkill=%d\n",PlayerInfo[playerid][pLawSkill]);fwrite(hFile, var);
                format(var, 64, "MechSkill=%d\n",PlayerInfo[playerid][pMechSkill]);fwrite(hFile, var);
                format(var, 64, "JackSkill=%d\n",PlayerInfo[playerid][pJackSkill]);fwrite(hFile, var);
                format(var, 64, "CarSkill=%d\n",PlayerInfo[playerid][pCarSkill]);fwrite(hFile, var);
                format(var, 64, "NewsSkill=%d\n",PlayerInfo[playerid][pNewsSkill]);fwrite(hFile, var);
                format(var, 64, "DrugsSkill=%d\n",PlayerInfo[playerid][pDrugsSkill]);fwrite(hFile, var);
                format(var, 64, "CookSkill=%d\n",PlayerInfo[playerid][pCookSkill]);fwrite(hFile, var);
                format(var, 64, "FishSkill=%d\n",PlayerInfo[playerid][pFishSkill]);fwrite(hFile, var);
                format(var, 64, "pSHealth=%.1f\n",PlayerInfo[playerid][pSHealth]);fwrite(hFile, var);
                GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
                format(var, 64, "pHealth=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
                format(var, 64, "Int=%d\n",PlayerInfo[playerid][pInt]);fwrite(hFile, var);
                format(var, 64, "Local=%d\n",PlayerInfo[playerid][pLocal]);fwrite(hFile, var);
                format(var, 64, "Team=%d\n",PlayerInfo[playerid][pTeam]);fwrite(hFile, var);
                format(var, 64, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var);
                format(var, 64, "PhoneNr=%d\n",PlayerInfo[playerid][pPnumber]);fwrite(hFile, var);
                format(var, 64, "Car=%d\n",PlayerInfo[playerid][pPcarkey]);fwrite(hFile, var);
                format(var, 64, "Car2=%d\n",PlayerInfo[playerid][pPcarkey2]);fwrite(hFile, var);
                format(var, 64, "Car3=%d\n",PlayerInfo[playerid][pPcarkey3]);fwrite(hFile, var);
                if ((PlayerInfo[playerid][pPos_x]==0.0 && PlayerInfo[playerid][pPos_y]==0.0 && PlayerInfo[playerid][pPos_z]==0.0)) {
                    PlayerInfo[playerid][pPos_x] = 1684.9;
                    PlayerInfo[playerid][pPos_y] = -2244.5;
                    PlayerInfo[playerid][pPos_z] = 13.5;
                }
                if(Spectate[playerid] != 255) {
                    PlayerInfo[playerid][pPos_x] = Unspec[playerid][sPx];
                    PlayerInfo[playerid][pPos_y] = Unspec[playerid][sPy];
                    PlayerInfo[playerid][pPos_z] = Unspec[playerid][sPz];
                    PlayerInfo[playerid][pInt] = Unspec[playerid][sPint];
                    PlayerInfo[playerid][pLocal] = Unspec[playerid][sLocal];
                }
                new Float:x, Float:y, Float:z;
                GetPlayerPos(playerid,x,y,z);
                PlayerInfo[playerid][pPos_x] = x;
                PlayerInfo[playerid][pPos_y] = y;
                PlayerInfo[playerid][pPos_z] = z;
                format(var, 64, "Pos_x=%.1f\n",PlayerInfo[playerid][pPos_x]);fwrite(hFile, var);
                format(var, 64, "Pos_y=%.1f\n",PlayerInfo[playerid][pPos_y]);fwrite(hFile, var);
                format(var, 64, "Pos_z=%.1f\n",PlayerInfo[playerid][pPos_z]);fwrite(hFile, var);
                format(var, 64, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
                format(var, 64, "FlyLic=%d\n",PlayerInfo[playerid][pFlyLic]);fwrite(hFile, var);
                format(var, 64, "BoatLic=%d\n",PlayerInfo[playerid][pBoatLic]);fwrite(hFile, var);
                format(var, 64, "FishLic=%d\n",PlayerInfo[playerid][pFishLic]);fwrite(hFile, var);
                format(var, 64, "GunLic=%d\n",PlayerInfo[playerid][pGunLic]);fwrite(hFile, var);
                format(var, 64, "Gun1=%d\n",PlayerInfo[playerid][pGun1]);fwrite(hFile, var);
                format(var, 64, "Gun2=%d\n",PlayerInfo[playerid][pGun2]);fwrite(hFile, var);
                format(var, 64, "Gun3=%d\n",PlayerInfo[playerid][pGun3]);fwrite(hFile, var);
                format(var, 64, "Gun4=%d\n",PlayerInfo[playerid][pGun4]);fwrite(hFile, var);
                format(var, 64, "Ammo1=%d\n",PlayerInfo[playerid][pAmmo1]);fwrite(hFile, var);
                format(var, 64, "Ammo2=%d\n",PlayerInfo[playerid][pAmmo2]);fwrite(hFile, var);
                format(var, 64, "Ammo3=%d\n",PlayerInfo[playerid][pAmmo3]);fwrite(hFile, var);
                format(var, 64, "Ammo4=%d\n",PlayerInfo[playerid][pAmmo4]);fwrite(hFile, var);
                format(var, 64, "CarTime=%d\n",PlayerInfo[playerid][pCarTime]);fwrite(hFile, var);
                format(var, 64, "BolnicaVreme=%d\n",PlayerInfo[playerid][pBolnicaVreme]);fwrite(hFile, var);
                format(var, 64, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var);
                format(var, 64, "PayDayHad=%d\n",PlayerInfo[playerid][pPayDayHad]);fwrite(hFile, var);
                format(var, 64, "Watch=%d\n",PlayerInfo[playerid][pWatch]);fwrite(hFile, var);
                format(var, 64, "Crashed=%d\n",PlayerInfo[playerid][pCrashed]);fwrite(hFile, var);
                format(var, 64, "Wins=%d\n",PlayerInfo[playerid][pWins]);fwrite(hFile, var);
                format(var, 64, "Loses=%d\n",PlayerInfo[playerid][pLoses]);fwrite(hFile, var);
                format(var, 64, "AlcoholPerk=%d\n",PlayerInfo[playerid][pAlcoholPerk]);fwrite(hFile, var);
                format(var, 64, "DrugPerk=%d\n",PlayerInfo[playerid][pDrugPerk]);fwrite(hFile, var);
                format(var, 64, "MiserPerk=%d\n",PlayerInfo[playerid][pMiserPerk]);fwrite(hFile, var);
                format(var, 64, "PainPerk=%d\n",PlayerInfo[playerid][pPainPerk]);fwrite(hFile, var);
                format(var, 64, "TraderPerk=%d\n",PlayerInfo[playerid][pTraderPerk]);fwrite(hFile, var);
                format(var, 64, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var);
                format(var, 64, "Mission=%d\n",PlayerInfo[playerid][pMissionNr]);fwrite(hFile, var);
                format(var, 64, "Warnings=%d\n",PlayerInfo[playerid][pWarns]);fwrite(hFile, var);
                format(var, 64, "VirWorld=%d\n",PlayerInfo[playerid][pVirWorld]);fwrite(hFile, var);
                format(var, 64, "Married=%d\n",PlayerInfo[playerid][pMarried]);fwrite(hFile, var);
                format(var, 64, "MarriedTo=%s\n",PlayerInfo[playerid][pMarriedTo]);fwrite(hFile, var);
                format(var, 64, "FishTool=%d\n",PlayerInfo[playerid][pFishTool]);fwrite(hFile, var);
                format(var, 64, "Note1=%s\n",PlayerInfo[playerid][pNote1]);fwrite(hFile, var);
                format(var, 64, "Note1s=%d\n",PlayerInfo[playerid][pNote1s]);fwrite(hFile, var);
                format(var, 64, "Note2=%s\n",PlayerInfo[playerid][pNote2]);fwrite(hFile, var);
                format(var, 64, "Note2s=%d\n",PlayerInfo[playerid][pNote2s]);fwrite(hFile, var);
                format(var, 64, "Note3=%s\n",PlayerInfo[playerid][pNote3]);fwrite(hFile, var);
                format(var, 64, "Note3s=%d\n",PlayerInfo[playerid][pNote3s]);fwrite(hFile, var);
                format(var, 64, "Note4=%s\n",PlayerInfo[playerid][pNote4]);fwrite(hFile, var);
                format(var, 64, "Note4s=%d\n",PlayerInfo[playerid][pNote4s]);fwrite(hFile, var);
                format(var, 64, "Note5=%s\n",PlayerInfo[playerid][pNote5]);fwrite(hFile, var);
                format(var, 64, "Note5s=%d\n",PlayerInfo[playerid][pNote5s]);fwrite(hFile, var);
                format(var, 64, "InvWeapon=%d\n",PlayerInfo[playerid][pInvWeapon]);fwrite(hFile, var);
                format(var, 64, "InvAmmo=%d\n",PlayerInfo[playerid][pInvAmmo]);fwrite(hFile, var);
                format(var, 64, "Lighter=%d\n",PlayerInfo[playerid][pLighter]);fwrite(hFile, var);
                format(var, 64, "Cigarettes=%d\n",PlayerInfo[playerid][pCigarettes]);fwrite(hFile, var);
                format(var, 64, "Locked=%d\n",PlayerInfo[playerid][pLocked]);fwrite(hFile, var);
                format(var, 64, "Gm=%d\n",PlayerInfo[playerid][pGm]);fwrite(hFile, var);
                format(var, 64, "PinKod=%d\n",PlayerInfo[playerid][pPinKod]);fwrite(hFile, var);
                format(var, 64, "Kredit=%d\n",PlayerInfo[playerid][pKredit]);fwrite(hFile, var);
                fclose(hFile);
            }
        }
    }
    return 1;
}
And i added into OnGameModeExit();

Код:
public OnGameModeExit()
{
	for(new i = 0;i<MAX_PLAYERS;i++)
 	{
 	print("Gamemodot se isklucuva. Pocekajte da se zacuvaat podatocite !");
    ResetPlayerPropertyInfo(i);
    gActivePlayers[i]--;
    numplayers--;
    OnPlayerUpdateCustom(i);
    }
    return 1;
}
But its not saving... HELP !


Re : [Question] Update - ricardo178 - 10.06.2012

Hmm, i am not sure about this but i don't think it will save.

Do this:

Create a command to restart, than, when you type it, set a timer with 5 or 6 seconds to make the server restart. While that seconds pass, on the /gmx cmd code, make i save player stats, so than when it restarts, it's saved.