12.04.2011, 06:58
Folosesc: godfather(modificat 75%)
Am o problema la conturi , uneori jucatorileor cand ies de pe server li se sterg conturile.
Eu am verificat si OnPlayerDisconnect si OnGameModeExit si OnGameModeExitFunc si tot ce se poate ... dar nu iam dat de cap.
Va las aici publicurile de la care cred eu ca poate fii , daca vreti ceva in + spuneti.
Asta e functia care le actualizeaza datele jucatorilor:
Am o problema la conturi , uneori jucatorileor cand ies de pe server li se sterg conturile.
Eu am verificat si OnPlayerDisconnect si OnGameModeExit si OnGameModeExitFunc si tot ce se poate ... dar nu iam dat de cap.
Va las aici publicurile de la care cred eu ca poate fii , daca vreti ceva in + spuneti.
Code:
public OnPlayerDisconnect(playerid) { new string[256]; OnPlayerUpdate(playerid); TextDrawHideForPlayer(playerid,TextdrawHour); TextDrawHideForPlayer(playerid,TextdrawMinute); gActivePlayers[playerid]--; numplayers--; PlayerInfo[playerid][pAdjustable] = 1; new playername2[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername2, sizeof(playername2)); new y, m, d; new h,mi,s; getdate(y,m,d); gettime(h,mi,s); format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s s-a deconectat.",d,m,y,h,mi,s,playername2); QuitLog(string); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(TaxiAccepted[i] < 999) { if(TaxiAccepted[i] == playerid) { TaxiAccepted[i] = 999; GameTextForPlayer(i, "~w~Taxi Caller~n~~r~Left the game", 5000, 1); TaxiCallTime[i] = 0; DisablePlayerCheckpoint(i); } } else if(BusAccepted[i] < 999) { if(BusAccepted[i] == playerid) { BusAccepted[i] = 999; GameTextForPlayer(i, "~w~Bus Caller~n~~r~Left the game", 5000, 1); BusCallTime[i] = 0; DisablePlayerCheckpoint(i); } } } } if(GettingCK[playerid] < 999) { if(IsPlayerConnected(GettingCK[playerid])) { SCM(GettingCK[playerid], COLOR_YELLOW, "Your Character Kill has left the server, try again later."); OnCK[GettingCK[playerid]] = 999; } } if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 100) { if(IsPlayerConnected(TransportDriver[playerid])) { TransportMoney[TransportDriver[playerid]] += TransportCost[playerid]; TransportTime[TransportDriver[playerid]] = 0; TransportCost[TransportDriver[playerid]] = 0; format(string, sizeof(string), "~w~Passenger left~n~~g~Earned $%d",TransportCost[playerid]); GameTextForPlayer(TransportDriver[playerid], string, 5000, 1); } } if(GotHit[playerid] > 0) { if(GetChased[playerid] < 999) { if(IsPlayerConnected(GetChased[playerid])) { SCM(GetChased[playerid], COLOR_YELLOW, "Your Hit has left the server."); GoChase[GetChased[playerid]] = 999; } } } if(PlayerPaintballing[playerid] != 0) { PaintballPlayers --; } if(PlayerKarting[playerid] > 0 && PlayerInKart[playerid] > 0) { KartingPlayers --; } if(PlayersChannel[playerid] < 999) { IRCInfo[PlayersChannel[playerid]][iPlayers] -= 1; } if(HireCar[playerid] != 299) { gLastDriver[HireCar[playerid]] = 300; gCarLock[HireCar[playerid]] = 0; UnLockCar(HireCar[playerid]); } if (gLastCar[playerid] > 0) { gLastDriver[gLastCar[playerid]] = 300; if(PlayerInfo[playerid][pPhousekey] != gLastCar[playerid]-1) { gCarLock[gLastCar[playerid]] = 0; UnLockCar(gLastCar[playerid]); } } if(PlayerBoxing[playerid] > 0) { if(Boxer1 == playerid) { if(IsPlayerConnected(Boxer2)) { PlayerBoxing[Boxer2] = 0; SetPlayerPos(Boxer2, 765.8433,3.2924,1000.7186); SetPlayerInterior(Boxer2, 5); GameTextForPlayer(Boxer2, "~r~Match interupted", 5000, 1); } } else if(Boxer2 == playerid) { if(IsPlayerConnected(Boxer1)) { PlayerBoxing[Boxer1] = 0; SetPlayerPos(Boxer1, 765.8433,3.2924,1000.7186); SetPlayerInterior(Boxer1, 5); GameTextForPlayer(Boxer1, "~r~Match interupted", 5000, 1); } } InRing = 0; RoundStarted = 0; Boxer1 = 255; Boxer2 = 255; TBoxer = 255; } if(TransportDuty[playerid] == 1) { TaxiDrivers -= 1; } else if(TransportDuty[playerid] == 2) { BusDrivers -= 1; } if(PlayerInfo[playerid][pJob] == 11) { if(JobDuty[playerid] == 1) { Medics -= 1; } } else if(PlayerInfo[playerid][pJob] == 7) { if(JobDuty[playerid] == 1) { Mechanics -= 1; } } }
Code:
public GameModeInitExitFunc() { new string[128]; format(string, sizeof(string), "Traveling..."); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { DisablePlayerCheckpoint(i); gPlayerCheckpointStatus[i] = CHECKPOINT_NONE; GameTextForPlayer(i, string, 4000, 5); SetPlayerCameraPos(i,1460.0, -1324.0, 287.2); SetPlayerCameraLookAt(i,1374.5, -1291.1, 239.0); gPlayerLogged[i] = 0; OnPlayerUpdate(i); } } SetTimer("GameModeExitFunc", 4000, 0); return 1; }
Code:
public GameModeExitFunc() { TextDrawDestroy(txtAnimHelper); KillTimer(synctimer); KillTimer(newmistimer); KillTimer(unjailtimer); KillTimer(othtimer); KillTimer(cartimer); KillTimer(accountstimer); KillTimer(checkgastimer); KillTimer(pickuptimer); KillTimer(productiontimer); KillTimer(spectatetimer); KillTimer(stoppedvehtimer); KillTimer(turftimer); GameModeExit(); TextDrawDestroy(TextdrawHour); TextDrawDestroy(TextdrawMinute); TextDrawDestroy(SunGlasses); KillTimer ( Hrace:Timer ) ; gme = true; DoExit(); }
Code:
public OnGameModeExit () { gme = true; DoExit(); return 1; }
Asta e functia care le actualizeaza datele jucatorilor:
Code:
public OnPlayerUpdate(playerid) { if(IsPlayerConnected(playerid)) { if(gPlayerLogged[playerid]) { new string3[32]; new playername3[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername3, sizeof(playername3)); format(string3, sizeof(string3), "User/%s.ini", playername3); new File: hFile = fopen(string3, io_write); if (hFile) { new var[32]; format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var); PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid); format(var, 32, "Level=%d\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var); format(var, 32, "Pin=%d\n",PlayerInfo[playerid][pPin]);fwrite(hFile, var); format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var); format(var, 32, "Helper=%d\n",PlayerInfo[playerid][pHelper]);fwrite(hFile, var); format(var, 32, "FightStyle=%d\n",PlayerInfo[playerid][pFightStyle]);fwrite(hFile, var); format(var, 32, "DonateRank=%d\n",PlayerInfo[playerid][pDonateRank]);fwrite(hFile, var); format(var, 32, "UpgradePoints=%d\n",PlayerInfo[playerid][gPupgrade]);fwrite(hFile, var); format(var, 32, "ConnectedTime=%d\n",PlayerInfo[playerid][pConnectTime]);fwrite(hFile, var); format(var, 32, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var); format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var); format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var); format(var, 32, "Origin=%d\n",PlayerInfo[playerid][pOrigin]);fwrite(hFile, var); format(var, 32, "CK=%d\n",PlayerInfo[playerid][pCK]);fwrite(hFile, var); format(var, 32, "Muted=%d\n",PlayerInfo[playerid][pMuted]);fwrite(hFile, var); format(var, 32, "Respect=%d\n",PlayerInfo[playerid][pExp]);fwrite(hFile, var); format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var); format(var, 32, "Bank=%d\n",PlayerInfo[playerid][pAccount]);fwrite(hFile, var); format(var, 32, "Crimes=%d\n",PlayerInfo[playerid][pCrimes]);fwrite(hFile, var); format(var, 32, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var); format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var); format(var, 32, "Arrested=%d\n",PlayerInfo[playerid][pArrested]);fwrite(hFile, var); format(var, 32, "WantedDeaths=%d\n",PlayerInfo[playerid][pWantedDeaths]);fwrite(hFile, var); format(var, 32, "Phonebook=%d\n",PlayerInfo[playerid][pPhoneBook]);fwrite(hFile, var); format(var, 32, "LottoNr=%d\n",PlayerInfo[playerid][pLottoNr]);fwrite(hFile, var); format(var, 32, "Fishes=%d\n",PlayerInfo[playerid][pFishes]);fwrite(hFile, var); format(var, 32, "BiggestFish=%d\n",PlayerInfo[playerid][pBiggestFish]);fwrite(hFile, var); format(var, 32, "Job=%d\n",PlayerInfo[playerid][pJob]);fwrite(hFile, var); format(var, 32, "Clock=%d\n",PlayerInfo[playerid][pClock]);fwrite(hFile, var); format(var, 32, "Smoke=%d\n",PlayerInfo[playerid][pSmoke]);fwrite(hFile, var); format(var, 32, "Color=%d\n",PlayerInfo[playerid][pColor]);fwrite(hFile, var); format(var, 32, "PaintJob=%d\n",PlayerInfo[playerid][pPaintJob]);fwrite(hFile, var); format(var, 32, "Beer=%d\n",PlayerInfo[playerid][pBeer]);fwrite(hFile, var); format(var, 32, "NameChanged=%d\n",PlayerInfo[playerid][pNameChanged]);fwrite(hFile, var); format(var, 32, "Bilet=%d\n",PlayerInfo[playerid][pBilet]);fwrite(hFile, var); format(var, 32, "Abonament=%d\n",PlayerInfo[playerid][pAbonament]);fwrite(hFile, var); format(var, 32, "Spawntaxi=%d\n",PlayerInfo[playerid][pSpawntaxi]);fwrite(hFile, var); format(var, 32, "Frozen=%d\n",PlayerInfo[playerid][pFrozen]);fwrite(hFile, var); format(var, 32, "Paycheck=%d\n",PlayerInfo[playerid][pPayCheck]);fwrite(hFile, var); format(var, 32, "HeadValue=%d\n",PlayerInfo[playerid][pHeadValue]);fwrite(hFile, var); format(var, 32, "Jailed=%d\n",PlayerInfo[playerid][pJailed]);fwrite(hFile, var); format(var, 32, "Materials=%d\n",PlayerInfo[playerid][pMats]);fwrite(hFile, var); format(var, 32, "Drugs=%d\n",PlayerInfo[playerid][pDrugs]);fwrite(hFile, var); format(var, 32, "Leader=%d\n",PlayerInfo[playerid][pLeader]);fwrite(hFile, var); format(var, 32, "Member=%d\n",PlayerInfo[playerid][pMember]);fwrite(hFile, var); format(var, 32, "FMember=%d\n",PlayerInfo[playerid][pFMember]);fwrite(hFile, var); format(var, 32, "Rank=%d\n",PlayerInfo[playerid][pRank]);fwrite(hFile, var); format(var, 32, "Char=%d\n",PlayerInfo[playerid][pChar]);fwrite(hFile, var); format(var, 32, "ContractTime=%d\n",PlayerInfo[playerid][pContractTime]);fwrite(hFile, var); format(var, 32, "DetSkill=%d\n",PlayerInfo[playerid][pDetSkill]);fwrite(hFile, var); format(var, 32, "SexSkill=%d\n",PlayerInfo[playerid][pSexSkill]);fwrite(hFile, var); format(var, 32, "BoxSkill=%d\n",PlayerInfo[playerid][pBoxSkill]);fwrite(hFile, var); format(var, 32, "LawSkill=%d\n",PlayerInfo[playerid][pLawSkill]);fwrite(hFile, var); format(var, 32, "MechSkill=%d\n",PlayerInfo[playerid][pMechSkill]);fwrite(hFile, var); format(var, 32, "JackSkill=%d\n",PlayerInfo[playerid][pJackSkill]);fwrite(hFile, var); format(var, 32, "CarSkill=%d\n",PlayerInfo[playerid][pCarSkill]);fwrite(hFile, var); format(var, 32, "NewsSkill=%d\n",PlayerInfo[playerid][pNewsSkill]);fwrite(hFile, var); format(var, 32, "DrugsSkill=%d\n",PlayerInfo[playerid][pDrugsSkill]);fwrite(hFile, var); format(var, 32, "CookSkill=%d\n",PlayerInfo[playerid][pCookSkill]);fwrite(hFile, var); format(var, 32, "FishSkill=%d\n",PlayerInfo[playerid][pFishSkill]);fwrite(hFile, var); format(var, 32, "pSHealth=%.1f\n",PlayerInfo[playerid][pSHealth]);fwrite(hFile, var); GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]); format(var, 32, "pHealth=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var); format(var, 32, "Int=%d\n",PlayerInfo[playerid][pInt]);fwrite(hFile, var); format(var, 32, "Local=%d\n",PlayerInfo[playerid][pLocal]);fwrite(hFile, var); format(var, 32, "Team=%d\n",PlayerInfo[playerid][pTeam]);fwrite(hFile, var); format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var); format(var, 32, "PhoneNr=%d\n",PlayerInfo[playerid][pPnumber]);fwrite(hFile, var); format(var, 32, "House=%d\n",PlayerInfo[playerid][pPhousekey]);fwrite(hFile, var); format(var, 64, "Car=%d\n",PlayerInfo[playerid][pPcarkey]);fwrite(hFile, var); format(var, 32, "Bizz=%d\n",PlayerInfo[playerid][pPbiskey]);fwrite(hFile, var); format(var, 32, "House=%d\n",PlayerInfo[playerid][pPhousekey]);fwrite(hFile, var); format(var, 32, "WantedLevel=%d\n",PlayerInfo[playerid][pWantedLevel]);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]; } format(var, 32, "Pos_x=%.1f\n",PlayerInfo[playerid][pPos_x]);fwrite(hFile, var); format(var, 32, "Pos_y=%.1f\n",PlayerInfo[playerid][pPos_y]);fwrite(hFile, var); format(var, 32, "Pos_z=%.1f\n",PlayerInfo[playerid][pPos_z]);fwrite(hFile, var); format(var, 32, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var); format(var, 32, "FlyLic=%d\n",PlayerInfo[playerid][pFlyLic]);fwrite(hFile, var); format(var, 32, "BoatLic=%d\n",PlayerInfo[playerid][pBoatLic]);fwrite(hFile, var); format(var, 32, "FishLic=%d\n",PlayerInfo[playerid][pFishLic]);fwrite(hFile, var); format(var, 32, "GunLic=%d\n",PlayerInfo[playerid][pGunLic]);fwrite(hFile, var); format(var, 32, "PassPort=%d\n",PlayerInfo[playerid][pPassPort]);fwrite(hFile, var); format(var, 32, "Gun1=%d\n",PlayerInfo[playerid][pGun1]);fwrite(hFile, var); format(var, 32, "Gun2=%d\n",PlayerInfo[playerid][pGun2]);fwrite(hFile, var); format(var, 32, "Gun3=%d\n",PlayerInfo[playerid][pGun3]);fwrite(hFile, var); format(var, 32, "Gun4=%d\n",PlayerInfo[playerid][pGun4]);fwrite(hFile, var); format(var, 32, "Ammo1=%d\n",PlayerInfo[playerid][pAmmo1]);fwrite(hFile, var); format(var, 32, "Ammo2=%d\n",PlayerInfo[playerid][pAmmo2]);fwrite(hFile, var); format(var, 32, "Ammo3=%d\n",PlayerInfo[playerid][pAmmo3]);fwrite(hFile, var); format(var, 32, "Ammo4=%d\n",PlayerInfo[playerid][pAmmo4]);fwrite(hFile, var); format(var, 32, "CarTime=%d\n",PlayerInfo[playerid][pCarTime]);fwrite(hFile, var); format(var, 32, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var); format(var, 32, "PayDayHad=%d\n",PlayerInfo[playerid][pPayDayHad]);fwrite(hFile, var); format(var, 32, "CDPlayer=%d\n",PlayerInfo[playerid][pCDPlayer]);fwrite(hFile, var); format(var, 32, "Wins=%d\n",PlayerInfo[playerid][pWins]);fwrite(hFile, var); format(var, 32, "Loses=%d\n",PlayerInfo[playerid][pLoses]);fwrite(hFile, var); format(var, 32, "AlcoholPerk=%d\n",PlayerInfo[playerid][pAlcoholPerk]);fwrite(hFile, var); format(var, 32, "DrugPerk=%d\n",PlayerInfo[playerid][pDrugPerk]);fwrite(hFile, var); format(var, 32, "MiserPerk=%d\n",PlayerInfo[playerid][pMiserPerk]);fwrite(hFile, var); format(var, 32, "PainPerk=%d\n",PlayerInfo[playerid][pPainPerk]);fwrite(hFile, var); format(var, 32, "TraderPerk=%d\n",PlayerInfo[playerid][pTraderPerk]);fwrite(hFile, var); format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var); format(var, 32, "Mission=%d\n",PlayerInfo[playerid][pMissionNr]);fwrite(hFile, var); format(var, 32, "Warnings=%d\n",PlayerInfo[playerid][pWarns]);fwrite(hFile, var); format(var, 32, "Fwarn=%d\n",PlayerInfo[playerid][pFwarn]);fwrite(hFile, var); format(var, 32, "Adjustable=%d\n",PlayerInfo[playerid][pAdjustable]);fwrite(hFile, var); format(var, 32, "AdminWarnings=%d\n",PlayerInfo[playerid][pAWarns]);fwrite(hFile, var); if(PlayerInfo[playerid][pDonateRank] < 1) { PlayerInfo[playerid][pFuel] = 0; } format(var, 32, "Fuel=%d\n",PlayerInfo[playerid][pFuel]);fwrite(hFile, var); format(var, 32, "Married=%d\n",PlayerInfo[playerid][pMarried]);fwrite(hFile, var); format(var, 32, "MarriedTo=%s\n",PlayerInfo[playerid][pMarriedTo]);fwrite(hFile, var); fclose(hFile); } } } return 1; }