Проблема: через некоторое время аккаунты перестают подгружатся и сохранятся.
#1

Здравствуйте!

Столкнулся с очень плохой проблемой на сервере, причем не думаю что она кодовая. Сервер Role Play и естественно есть регистрация персонажа. Вот уже почти год работает сервер и ничего подобного не было, а тут такое: сервер работает некоторое время (пару часов, точно пока не засекал) и аккаунты просто перестают подгружатся и сохранятся. К примеру в scriptfiles уже есть мой аккаунт Stabker_Steepson.ini но при входе в игру требуется регистрация! Причем если я зарегистрируюсь это ничего не изменит, после релога тоже самое. Ломаю голову но не могу понять в чем проблема. Кодово впринципе я ничего не изменял, да и после рестарта все на свои места становится, понятно что ошибка не в коде (покрайней мере я так считаю).

Писал хостерам, ответили что с их стороны все нормально. Думал что не туда файлы перенаправляет.

Из-за чего тогда?
Очень надеюсь на вашу помощь, т.к. из-за таких проблем онлайн падает сильно

Вот код самой сохранялки


pawn Код:
public OnPlayerUpdateRL(playerid)
{
    new string[100];
    format(string,100,"::: OnPlayerUpdateRL - %s :::",PlayerInfo[playerid][Username]);
    printr(string);
    if(IsPlayerConnected(playerid))
    {
        if(gPlayerLogged[playerid] == 1)
        {
            new string3[32];
            format(string3, sizeof(string3), "%s.ini", PlayerInfo[playerid][Username]);
            new File = ini_openFile(string3);
            if(!File)
            {
                    format(string,100,"::: Starting_OnPlayerUpdateRL - %s :::",PlayerInfo[playerid][Username]);
                    printr(string);
                    PlayerInfo[playerid][pCash] = GetSRVMoney(playerid);
                    ini_setInteger(File,"Level",PlayerInfo[playerid][pLevel]);
                    ini_setInteger(File,"House",PlayerInfo[playerid][pPhousekey]);
                    ini_setInteger(File,"Bizz",PlayerInfo[playerid][pPbiskey]);
                    ini_setInteger(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
                    ini_setFloat(File,"Fuelcar",PlayerInfo[playerid][pFuelcar]);
                    ini_setInteger(File,"Text",PlayerInfo[playerid][pText]);
                    ini_setInteger(File,"HP",PlayerInfo[playerid][pHP]);
                    ini_setInteger(File,"Proverkaip",PlayerInfo[playerid][pProverkaip]);
                    ini_setInteger(File,"pPhoneBook",PlayerInfo[playerid][pPhoneBook]);
                    ini_setInteger(File,"pDirectory",PlayerInfo[playerid][pDirectory]);
                    ini_setInteger(File,"pAlcoholPerk",PlayerInfo[playerid][pAlcoholPerk]);
                    ini_setInteger(File,"Car",PlayerInfo[playerid][pCar]);
                    ini_setInteger(File,"Donateschet",PlayerInfo[playerid][pDonatechet]);
                    ini_setInteger(File,"Donatemoney",PlayerInfo[playerid][pDonatemoney]);
                    ini_setInteger(File,"DonateRank",PlayerInfo[playerid][pDonateRank]);
                    ini_setInteger(File,"Registered",PlayerInfo[playerid][pReg]);
                    ini_setInteger(File,"Sex",PlayerInfo[playerid][pSex]);
                    ini_setInteger(File,"pArrested",PlayerInfo[playerid][pArrested]);
                    ini_setInteger(File,"Muted",PlayerInfo[playerid][pMuted]);
                    ini_setInteger(File,"Crimes",PlayerInfo[playerid][pCrimes]);
                    ini_setInteger(File,"Respect",PlayerInfo[playerid][pExp]);
                    ini_setInteger(File,"Money",PlayerInfo[playerid][pCash]);
                    ini_setInteger(File,"Kills",PlayerInfo[playerid][pKills]);
                    ini_setInteger(File,"Deaths",PlayerInfo[playerid][pDeaths]);
                    ini_setInteger(File,"Paycheck",PlayerInfo[playerid][pPayCheck]);
                    ini_setInteger(File,"Jailed",PlayerInfo[playerid][pJailed]);
                    ini_setInteger(File,"Cheat",PlayerInfo[playerid][pCheat]);
                    ini_setInteger(File,"JailTime",PlayerInfo[playerid][pJailTime]);
                    ini_setInteger(File,"Materials",PlayerInfo[playerid][pMats]);
                    ini_setInteger(File,"Drugs",PlayerInfo[playerid][pDrugs]);
                    ini_setInteger(File,"Leader",PlayerInfo[playerid][pLeader]);
                    ini_setInteger(File,"Member",PlayerInfo[playerid][pMember]);
                    ini_setInteger(File,"Rank",PlayerInfo[playerid][pRank]);
                    ini_setInteger(File,"Job",PlayerInfo[playerid][pJob]);
                    ini_setInteger(File,"VodPrava",PlayerInfo[playerid][pVodPrava]);
                    ini_setInteger(File,"BizLic",PlayerInfo[playerid][pBizLic]);
                    ini_setInteger(File,"FlyLic",PlayerInfo[playerid][pFlyLic]);
                    ini_setInteger(File,"BoatLic",PlayerInfo[playerid][pBoatLic]);
                    ini_setInteger(File,"FishLic",PlayerInfo[playerid][pFishLic]);
                    ini_setInteger(File,"GunLic",PlayerInfo[playerid][pGunLic]);
                    ini_setInteger(File,"Slot1", PlayerInfo[playerid][pSlot1]);
                    ini_setInteger(File,"Slot2", PlayerInfo[playerid][pSlot2]);
                    ini_setInteger(File,"Slot3", PlayerInfo[playerid][pSlot3]);
                    ini_setInteger(File,"Slot4", PlayerInfo[playerid][pSlot4]);
                    ini_setInteger(File,"Slot5", PlayerInfo[playerid][pSlot5]);
                    ini_setInteger(File,"Slot6", PlayerInfo[playerid][pSlot6]);
                    ini_setInteger(File,"Slot7", PlayerInfo[playerid][pSlot7]);
                    ini_setInteger(File,"Slot8", PlayerInfo[playerid][pSlot8]);
                    ini_setInteger(File,"Slot9", PlayerInfo[playerid][pSlot9]);
                    ini_setInteger(File,"Slot10", PlayerInfo[playerid][pSlot10]);
                    ini_setInteger(File,"Slot11", PlayerInfo[playerid][pSlot11]);
                    ini_setInteger(File,"Slotammo2", PlayerInfo[playerid][pSlotammo2]);
                    ini_setInteger(File,"Slotammo3", PlayerInfo[playerid][pSlotammo3]);
                    ini_setInteger(File,"Slotammo4", PlayerInfo[playerid][pSlotammo4]);
                    ini_setInteger(File,"Slotammo5", PlayerInfo[playerid][pSlotammo5]);
                    ini_setInteger(File,"Slotammo6", PlayerInfo[playerid][pSlotammo6]);
                    ini_setInteger(File,"Slotammo7", PlayerInfo[playerid][pSlotammo7]);
                    ini_setInteger(File,"Slotammo8", PlayerInfo[playerid][pSlotammo8]);
                    ini_setInteger(File,"Slotammo9", PlayerInfo[playerid][pSlotammo9]);
                    ini_setInteger(File,"Slotammo10", PlayerInfo[playerid][pSlotammo10]);
                //  ini_setInteger(File,"Gun0",PlayerInfo[playerid][pGun0]);
            //      ini_setInteger(File,"Gun1",PlayerInfo[playerid][pGun1]);
                    ini_setInteger(File,"Gun2",PlayerInfo[playerid][pGun2]);
                    ini_setInteger(File,"Gun3",PlayerInfo[playerid][pGun3]);
                    ini_setInteger(File,"Gun4",PlayerInfo[playerid][pGun4]);
                    ini_setInteger(File,"Gun5",PlayerInfo[playerid][pGun5]);
                    ini_setInteger(File,"Gun6",PlayerInfo[playerid][pGun6]);
                    ini_setInteger(File,"Gun7",PlayerInfo[playerid][pGun7]);
                    ini_setInteger(File,"Gun8",PlayerInfo[playerid][pGun8]);
                    ini_setInteger(File,"Gun9",PlayerInfo[playerid][pGun9]);
                    ini_setInteger(File,"Gun10",PlayerInfo[playerid][pGun10]);
                //  ini_setInteger(File,"Gun11",PlayerInfo[playerid][pGun11]);
                //  ini_setInteger(File,"Ammo0",PlayerInfo[playerid][pAmmo0]);
                   // ini_setInteger(File,"Ammo1",PlayerInfo[playerid][pAmmo1]);
                    ini_setInteger(File,"Ammo2",PlayerInfo[playerid][pAmmo2]);
                    ini_setInteger(File,"Ammo3",PlayerInfo[playerid][pAmmo3]);
                    ini_setInteger(File,"Ammo4",PlayerInfo[playerid][pAmmo4]);
                    ini_setInteger(File,"Ammo5",PlayerInfo[playerid][pAmmo5]);
                    ini_setInteger(File,"Ammo6",PlayerInfo[playerid][pAmmo6]);
                    ini_setInteger(File,"Ammo7",PlayerInfo[playerid][pAmmo7]);
                    ini_setInteger(File,"Ammo8",PlayerInfo[playerid][pAmmo8]);
                    ini_setInteger(File,"Ammo9",PlayerInfo[playerid][pAmmo9]);
                    ini_setInteger(File,"Ammo10",PlayerInfo[playerid][pAmmo10]);
            //       ini_setInteger(File,"Ammo11",PlayerInfo[playerid][pAmmo11]);
                    ini_setInteger(File,"Desert",PlayerInfo[playerid][pDesert]);
                    ini_setInteger(File,"Smg",PlayerInfo[playerid][pSmg]);
                    ini_setInteger(File,"Ak47",PlayerInfo[playerid][pAk]);
                    ini_setInteger(File,"M4",PlayerInfo[playerid][pM4]);
                    ini_setInteger(File,"pShot",PlayerInfo[playerid][pShot]);
                    ini_setInteger(File,"Char",PlayerInfo[playerid][pChar]);
                    ini_setFloat(File,"pSHealth",PlayerInfo[playerid][pSHealth]);
                    GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
                    ini_setFloat(File,"pHealth",PlayerInfo[playerid][pHealth]);
                    ini_setInteger(File,"Int",PlayerInfo[playerid][pInt]);
                    ini_setInteger(File,"Local",PlayerInfo[playerid][pLocal]);
                    ini_setInteger(File,"Model",PlayerInfo[playerid][pModel]);
                    ini_setInteger(File,"PhoneNr",PlayerInfo[playerid][pPnumber]);
                    ini_setInteger(File,"PayDay",PlayerInfo[playerid][pPayDay]);
                    ini_setInteger(File,"PayDayHad",PlayerInfo[playerid][pPayDayHad]);
                    ini_setInteger(File,"Tutorial",1);
                    ini_setInteger(File,"Warnings",PlayerInfo[playerid][pWarns]);
                    ini_setInteger(File,"unWarns",PlayerInfo[playerid][punWarns]);
                    ini_setInteger(File,"unWarnstime",PlayerInfo[playerid][punWarnstime]);
                    ini_setInteger(File,"Fuel",PlayerInfo[playerid][pFuel]);
                    ini_setInteger(File,"Married",PlayerInfo[playerid][pMarried]);
                    ini_setInteger(File,"pDrugmoney",PlayerInfo[playerid][pDrugmoney]);
                    ini_setInteger(File,"MuteTime",PlayerInfo[playerid][pMuteTime]);
                    ini_setInteger(File,"Mobile",PlayerInfo[playerid][pMobile]);
                    ini_setInteger(File,"Bank",PlayerInfo[playerid][pBank]);
                    ini_setInteger(File,"Ban",PlayerInfo[playerid][pLocked]);
                    ini_setInteger(File,"Krisha",PlayerInfo[playerid][pKrisha]);
                    ini_setInteger(File,"UseKrisha",PlayerInfo[playerid][pUseKrisha]);
                    ini_setInteger(File,"Dolg",PlayerInfo[playerid][pDolg]);
                    ini_setInteger(File,"BoxSkill",PlayerInfo[playerid][pBoxSkill]);
                    ini_setInteger(File,"KongfuSkill",PlayerInfo[playerid][pKongfuSkill]);
                    ini_setInteger(File,"KickboxSkill",PlayerInfo[playerid][pKickboxSkill]);
                    ini_setInteger(File,"pDostup",PlayerInfo[playerid][pDostup]);
                    ini_setInteger(File,"Beg",PlayerInfo[playerid][pBeg]);
                    ini_setInteger(File,"Rp",PlayerInfo[playerid][pRp]);
                    ini_setInteger(File,"Zakonop",PlayerInfo[playerid][pZakonp]);
                    ini_setInteger(File,"NarcoZavisimost",PlayerInfo[playerid][pNarcoZavisimost]);
                    ini_setInteger(File,"Mats",PlayerInfo[playerid][pMats]);
                    ini_setInteger(File,"NarcoLomka",PlayerInfo[playerid][pNarcoLomka]);
                    ini_setInteger(File,"Proz",PlayerInfo[playerid][pProz]);
                    //------
                    ini_setInteger(File,"Колёса",PlayerInfo[playerid][pKolesocar]);
                    ini_setInteger(File,"Покраска",PlayerInfo[playerid][pPokraska]);
                    ini_setInteger(File,"Спойлер",PlayerInfo[playerid][pSpoiler]);
                    ini_setInteger(File,"Передний бампер",PlayerInfo[playerid][pBamper1]);
                    ini_setInteger(File,"Задний бампер",PlayerInfo[playerid][pBamper2]);
                    ini_setInteger(File,"Цвет",PlayerInfo[playerid][pCvet]);
                    ini_setInteger(File,"Нитро",PlayerInfo[playerid][pNitro]);
                    ini_setInteger(File,"Гидравлика",PlayerInfo[playerid][pGidra]);
                    new playersip[256];
                    GetPlayerIp(playerid,playersip,sizeof(playersip));
                    new year, month, day;
                    getdate(year, month, day);
                    new strstre[100];
                    format(strstre,sizeof(strstre),"%d/%d/%d",day,month,year);
                    ini_setString(File,"Online",strstre);
                    ini_setString(File,"pvIp",playersip);
                    //-----
                    ini_setInteger(File,"pAvtomas",PlayerInfo[playerid][pAvtomas]);
                    ini_setInteger(File,"pMestoJail",PlayerInfo[playerid][pMestoJail]);
                    ini_setInteger(File,"Voennik",PlayerInfo[playerid][pVoennik]);
                    ini_setInteger(File,"Zvonok",PlayerInfo[playerid][pZvonok]);
                    ini_setInteger(File,"pPiss",PlayerInfo[playerid][pPiss]);
                    ini_setInteger(File,"Housecash",PlayerInfo[playerid][pHousecash]);
                    ini_setInteger(File,"Звёзды",PlayerInfo[playerid][pZvezdi]);
                    ini_setInteger(File,"Ogran",PlayerInfo[playerid][pOgran]);
                    ini_setInteger(File,"Sigarety",PlayerInfo[playerid][pSigarety]);
                    ini_setInteger(File,"Segizavisimost",PlayerInfo[playerid][pSegizavisimost]);
                    ini_setInteger(File,"Gun51Time",PlayerInfo[playerid][pGun51Time]);
                    ini_setInteger(File,"GunsniperTime",PlayerInfo[playerid][pGunsniperTime]);
                    ini_setInteger(File,"GunaviaTime",PlayerInfo[playerid][pGunaviaTime]);
                    ini_setInteger(File,"GunfbiTime",PlayerInfo[playerid][pGunfbiTime]);
                    ini_setInteger(File,"GunlspdTime",PlayerInfo[playerid][pGunlspdTime]);
                    ini_setInteger(File,"GunRacersTime",PlayerInfo[playerid][pGunRacersTime]);
                    ini_setInteger(File,"IgrovayaZarplata",PlayerInfo[playerid][pIgrovayaZarplata]);
                    ini_setInteger(File,"LimitGrabezha",PlayerInfo[playerid][pLimitGrabezha]);
                    ini_setInteger(File,"Pokuril",PlayerInfo[playerid][pPokuril]);
                    ini_setInteger(File,"Prinalnarko",PlayerInfo[playerid][pPrinalnarko]);
                    ini_setInteger(File,"Zaigru",PlayerInfo[playerid][pZaigru]);
                    ini_setInteger(File,"KillerKills",PlayerInfo[playerid][pKillerKills]);
                    ini_setInteger(File,"Obshaga",PlayerInfo[playerid][pObshaga]);
                    ini_setFloat(File,"CarX",PlayerInfo[playerid][pCarX]);
                    ini_setFloat(File,"CarY",PlayerInfo[playerid][pCarY]);
                    ini_setFloat(File,"CarZ",PlayerInfo[playerid][pCarZ]);
                    ini_setFloat(File,"CarAngle",PlayerInfo[playerid][pCarAngle]);
                    ini_setInteger(File,"Cvet2",PlayerInfo[playerid][pCvet2]);
                    ini_setInteger(File,"Farmer",PlayerInfo[playerid][pFarmer]);
                    ini_setInteger(File,"FarmRank",PlayerInfo[playerid][pFarmRank]);
                    ini_setInteger(File,"SpasSkill",PlayerInfo[playerid][pSpas]);
                    ini_setInteger(File,"UziSkill",PlayerInfo[playerid][pUzi]);
                    ini_setInteger(File,"RPgolosov",PlayerInfo[playerid][pRPgolosov]);
                    ini_setInteger(File,"Seconds",PlayerInfo[playerid][pSeconds]);
                    ini_setInteger(File,"VoteCode",PlayerInfo[playerid][VoteCode]);
                    ini_setInteger(File,"UnBanYear",PlayerInfo[playerid][UnBanYear]);
                    ini_setInteger(File,"UnBanDay",PlayerInfo[playerid][UnBanDay]);
                    ini_setInteger(File,"UnBanMonth",PlayerInfo[playerid][UnBanMonth]);
                    ini_closeFile(File);
                    format(string,100,"::: Profile %s was updated :::",PlayerInfo[playerid][Username]);
                    printr(string);
                }
        }
    }
    return 1;
}
Reply
#2

похоже где-то происходит переполнение буфера или накопление ошибки.

PS вот скажи мне, а тяжело было дать теме название как сейчас?
Reply
#3

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
похоже где-то происходит переполнение буфера или накопление ошибки.

PS вот скажи мне, а тяжело было дать теме название как сейчас?
Ну да, на счет названия извеняюсь. Просто эмоции не могу сдержать.

А на счет переполнения буфера или накопления ошибки. Можно подробнее?
Reply
#4

Quote:
Originally Posted by stabker
Посмотреть сообщение
Ну да, на счет названия извеняюсь. Просто эмоции не могу сдержать.

А на счет переполнения буфера или накопления ошибки. Можно подробнее?
Внутри кода используется очень много внутренних временных переменных и встроенный сборщик мусора не всегда все успевает прибрать, ну и выходит что по мере работы сервера накапливается ошибка приводящая со временем к переполнению буфера.

А кстати сколько уже аккаунтов в виде фалов?
Reply
#5

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Внутри кода используется очень много внутренних временных переменных и встроенный сборщик мусора не всегда все успевает прибрать, ну и выходит что по мере работы сервера накапливается ошибка приводящая со временем к переполнению буфера.

А кстати сколько уже аккаунтов в виде фалов?
Да переменных не так много и раньше же работало все отлично.
Файлов аккаунтов около 50-60к
Reply
#6

Quote:
Originally Posted by stabker
Посмотреть сообщение
Да переменных не так много и раньше же работало все отлично.
Файлов аккаунтов около 50-60к
Попробуйте удалить те которые не используются более месяца.
Reply
#7

P.S. Не уверен, но помоему не сохраняет не только акки, мб и другие файлы. Буду уточнять
Reply
#8

Мод рлс этим все сказано там весь мод это быдло код,а чтобы его привести в нормальный вид нужна оптимизация,и не будет никаких слётов.
Reply
#9

Quote:
Originally Posted by Legolas.W
Посмотреть сообщение
Мод рлс этим все сказано там весь мод это быдло код,а чтобы его привести в нормальный вид нужна оптимизация,и не будет никаких слётов.
Я его уже перелопатил и нагрузку сделал минимальной. Но если по теме, в чем мб проблема? Я просто удивляюсь! Код нормальный, а акки слетают. Причем не все, мой к примеру сохраняется, а у других нет.
Reply
#10

А что за функция printr?
Reply
#11

Quote:

Я его уже перелопатил и нагрузку сделал минимальной. Но если по теме, в чем мб проблема? Я просто удивляюсь! Код нормальный, а акки слетают. Причем не все, мой к примеру сохраняется, а у других нет.

Ну у меня когда Сан Сити переделенный стоял тоже такое было я таймер сохранения на 2 минуты ставил,и прописал папку для сохранения акк позже не замечал слетов,может из за того что ф-ала много было поменяно.
Reply
#12

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
А что за функция printr?
Древняя функция для фикса кириллицы в логах.

pawn Код:
#define FixConsole(%1) for(new rSt;rSt<strlen(%1);rSt++) if(%1[rSt]>191 && %1[rSt]<240) %1[rSt]-=64; else if(%1[rSt]>239 && %1[rSt]<256) %1[rSt]-=16; else if (%1[rSt] == 168 ) %1[rSt]+=72; else if (%1[rSt] == 184) %1[rSt]+=57
#define defix(%1) for(new rStd;rStd<strlen(%1);rStd++) if(%1[rStd]>127 && %1[rStd]<176) %1[rStd]+=64; else if(%1[rStd]>223 && %1[rStd]<240) %1[rStd]+=16; else if (%1[rStd] == 240) %1[rStd]-=72; else if (%1[rStd] == 241) %1[rStd]-=57
stock printr(message[]) // by [LTD]LuxurY
{
    FixConsole(message);
    print(message);
    return 1;
}
Reply
#13

Quote:
Originally Posted by Legolas.W
Посмотреть сообщение
Ну у меня когда Сан Сити переделенный стоял тоже такое было я таймер сохранения на 2 минуты ставил,и прописал папку для сохранения акк позже не замечал слетов,может из за того что ф-ала много было поменяно.
Если ты в rls копался там есть reklamatimer я в него сохранялку акков вставил будучи еще нубом.

Вообщем проблема решена, аккаунты сохраняются. Просто поставил предыдущую версию сервера без последних обновлений и щас переношу их туда.
Reply
#14

Ошибся, проблема не решена! Она еще хуже чем я думал. Вот создал отдельную тему т.к. ее содержание уже другое
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)