Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: SelfControle poslato Oktobar 13, 2019, 04:40:34 PRE PODNE

Naslov: Server Lag
Poruka od: SelfControle poslato Oktobar 13, 2019, 04:40:34 PRE PODNE
Problem(error/warning): Napravio sam mod od "nule". Mod kompajluje za od prilike 3 sekunde, nije zahtevna skripta i optimizovana je! Medjutim kada upalim mod sve se lepo pokrene ulogujem se na server i kada napravim par koraka server zabode na nekoliko sekundi. Kada NE napravim ni jedan korak sve radi normalno tj. kada upisem nesto u chatu ispisuje odmah. Pokusavao sam da izbacim tajmere, neke vece stringove za /stats i slicno, menjao plugin streamer i sscanf.. ali nista!
Dio skripte: Nema
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): Nije crash servera
Slika/video ingame problema(obavezno ako je ingame problem): Nema
Naslov: Odg: Server Lag
Poruka od: YumikoJR poslato Oktobar 13, 2019, 08:29:47 PRE PODNE
izbacuje li ti bar nesto u server_log?
Naslov: Odg: Server Lag
Poruka od: __vedran.xyz77 poslato Oktobar 13, 2019, 10:18:31 PRE PODNE
OnPlayerUpdate?
Naslov: Odg: Server Lag
Poruka od: SelfControle poslato Oktobar 13, 2019, 16:58:12 POSLE PODNE
Citat: Fiddleshock poslato Oktobar 13, 2019, 08:29:47 PRE PODNE
izbacuje li ti bar nesto u server_log?
U server_log sve normalno izbacuje, ne izbacuje nikakve greske niti pretnje.
Naslov: Odg: Server Lag
Poruka od: SelfControle poslato Oktobar 13, 2019, 17:00:30 POSLE PODNE
Citat: 002 poslato Oktobar 13, 2019, 10:18:31 PRE PODNE
OnPlayerUpdate?
public OnPlayerUpdate(playerid)
{
    if(IsPlayerConnected(playerid))
{
    if(gPlayerLogged[playerid])
    {
new string3[64];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "Korisnici/%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, "AdminLevel=%d\n", PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 64, "AdminSlot=%d\n", PlayerInfo[playerid][pAdminSlot]);fwrite(hFile, var);
format(var, 64, "Member=%d\n", PlayerInfo[playerid][pMember]);fwrite(hFile, var);
format(var, 64, "MemberSlot=%d\n", PlayerInfo[playerid][pMemberSlot]);fwrite(hFile, var);
format(var, 64, "Godine=%d\n", PlayerInfo[playerid][pAge]);fwrite(hFile, var);
format(var, 64, "Pol=%d\n", PlayerInfo[playerid][pSex]);fwrite(hFile, var);
format(var, 64, "Drzava=%d\n", PlayerInfo[playerid][pOrigin]);fwrite(hFile, var);
format(var, 64, "Register=%d\n", PlayerInfo[playerid][pReg]);fwrite(hFile, var);
format(var, 64, "Tutorial=%d\n", PlayerInfo[playerid][pTut]);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, "Level=%d\n", PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
format(var, 64, "Exp=%d\n", PlayerInfo[playerid][pExp]);fwrite(hFile, var);
format(var, 64, "Vozacka=%d\n", PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
format(var, 64, "Health=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
format(var, 64, "Posao=%d\n", PlayerInfo[playerid][pJob]);fwrite(hFile, var);
format(var, 64, "Plata=%d\n", PlayerInfo[playerid][pPayCheck]);fwrite(hFile, var);
format(var, 64, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var);
format(var, 64, "Lotto=%d\n", PlayerInfo[playerid][pLottoNr]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}

Evo ovo je ceo public OnPlayerUpdate, zove se na svakih 15minuta, kada se igrac diskonektuje, kada se server restartuje.
Naslov: Odg: Server Lag
Poruka od: Riv3R4 poslato Oktobar 13, 2019, 17:50:41 POSLE PODNE
Citat: SelfControle poslato Oktobar 13, 2019, 04:40:34 PRE PODNE
Problem(error/warning): Napravio sam mod od "nule". Mod kompajluje za od prilike 3 sekunde, nije zahtevna skripta i optimizovana je!
Sta za tebe znaci optimizovano ako radis ovo u playerupdateu, i otkad onplayerupdate poziva svakih 15 min?
Savjet 1. ako hoces da radis vec spremanja svakih 15 min , uradi poseban timer i pozivaj ga ti na svakih 15 min u gamemodeinit, jer update ti nije na svakih 15 min vjeruj :D
Savjet 2. nema potrebe da spremas na svakih 15 min , razlog, u vecini slucajeva sve se spremi , crash , disconnect, nestala konekcija , nestalo igracu struje nebitno ti je spremit ce igracu acc, jedini slucaj kada nece ako tebi padne server. Tako da najbitnije stvari pokusaj spremati uvijek kada dodje do promjene, novac, lvl itd... a ostalo jednostavno spremaj na disconnectu
Naslov: Odg: Server Lag
Poruka od: __vedran.xyz77 poslato Oktobar 13, 2019, 18:54:17 POSLE PODNE
Citat: SelfControle poslato Oktobar 13, 2019, 17:00:30 POSLE PODNE
public OnPlayerUpdate(playerid)
{
    if(IsPlayerConnected(playerid))
   {
       if(gPlayerLogged[playerid])
       {
         new string3[64];
         new playername3[MAX_PLAYER_NAME];
         GetPlayerName(playerid, playername3, sizeof(playername3));
         format(string3, sizeof(string3), "Korisnici/%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, "AdminLevel=%d\n", PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
            format(var, 64, "AdminSlot=%d\n", PlayerInfo[playerid][pAdminSlot]);fwrite(hFile, var);
            format(var, 64, "Member=%d\n", PlayerInfo[playerid][pMember]);fwrite(hFile, var);
            format(var, 64, "MemberSlot=%d\n", PlayerInfo[playerid][pMemberSlot]);fwrite(hFile, var);
            format(var, 64, "Godine=%d\n", PlayerInfo[playerid][pAge]);fwrite(hFile, var);
            format(var, 64, "Pol=%d\n", PlayerInfo[playerid][pSex]);fwrite(hFile, var);
            format(var, 64, "Drzava=%d\n", PlayerInfo[playerid][pOrigin]);fwrite(hFile, var);
            format(var, 64, "Register=%d\n", PlayerInfo[playerid][pReg]);fwrite(hFile, var);
            format(var, 64, "Tutorial=%d\n", PlayerInfo[playerid][pTut]);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, "Level=%d\n", PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
            format(var, 64, "Exp=%d\n", PlayerInfo[playerid][pExp]);fwrite(hFile, var);
            format(var, 64, "Vozacka=%d\n", PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
            GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
            format(var, 64, "Health=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
            format(var, 64, "Posao=%d\n", PlayerInfo[playerid][pJob]);fwrite(hFile, var);
            format(var, 64, "Plata=%d\n", PlayerInfo[playerid][pPayCheck]);fwrite(hFile, var);
            format(var, 64, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var);
            format(var, 64, "Lotto=%d\n", PlayerInfo[playerid][pLottoNr]);fwrite(hFile, var);
            fclose(hFile);
         }
      }
   }
   return 1;
}

Evo ovo je ceo public OnPlayerUpdate, zove se na svakih 15minuta, kada se igrac diskonektuje, kada se server restartuje.
To je nesto sto nebih predlozio ni Lanmiju da uradi, gledaj OnPlayerUpdate se poziva oko 80 puta dok pomeris mis, dok se poziva preko 300 puta hodanjem, zatim pri vozenju auta pri brzini od 100km/h i po 1-2k puta obrisi to sve i napravi lepo cuvanje.
Citat: Riv3R4 poslato Oktobar 13, 2019, 17:50:41 POSLE PODNE
Sta za tebe znaci optimizovano ako radis ovo u playerupdateu, i otkad onplayerupdate poziva svakih 15 min?
Savjet 1. ako hoces da radis vec spremanja svakih 15 min , uradi poseban timer i pozivaj ga ti na svakih 15 min u gamemodeinit, jer update ti nije na svakih 15 min vjeruj :D
Savjet 2. nema potrebe da spremas na svakih 15 min , razlog, u vecini slucajeva sve se spremi , crash , disconnect, nestala konekcija , nestalo igracu struje nebitno ti je spremit ce igracu acc, jedini slucaj kada nece ako tebi padne server. Tako da najbitnije stvari pokusaj spremati uvijek kada dodje do promjene, novac, lvl itd... a ostalo jednostavno spremaj na disconnectu
!true
Naslov: Odg: Server Lag
Poruka od: SelfControle poslato Oktobar 13, 2019, 19:12:35 POSLE PODNE
Problem je resen, jedno veliko HVALA na pomoci!! <3