Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: PeroviC poslato Maj 13, 2018, 02:18:05 PRE PODNE

Naslov: Ackslimit
Poruka od: PeroviC poslato Maj 13, 2018, 02:18:05 PRE PODNE
Moj problem: Ubacio sam textdraw za sat, datum i random poruke. Kada sam sam na serveru sve to normalno izbacuje i menja se. Kada udje jos neki igrac meni se ne menja vise dok se njemu normalno menja.. To sam valjda sredio ali server laguje ponekad i u onom crnom prozoru mi izbacuje ackslimit da je prekoracen. Limit je bio po defaultu 3000 povecao sam na 5000 opet je veliki.

Treba mi savet kako to da sredim. Hvala!
Naslov: Odg: Ackslimit
Poruka od: Salesman poslato Maj 13, 2018, 10:50:07 PRE PODNE
DraGoN je spomenuo u jednom od ovih rjesavanja, optiimizuj skriptu vjv, si stringovima stavio preveliki array pa je mnogo prekoracen acks limit, probaj optimizovati skriptu.

EDIT: Link rjesavanja acks limita (http://balkan-samp.com/forum/index.php?topic=120240.0)
Naslov: Odg: Ackslimit
Poruka od: PekiBrat poslato Maj 13, 2018, 15:24:59 POSLE PODNE
Jesi stavio za sve igrace to preko foreach ili loop neki nesto
Naslov: Odg: Ackslimit
Poruka od: PeroviC poslato Maj 13, 2018, 15:32:03 POSLE PODNE
Ne stavljam foreach obicno stavljam ono for( max_players.. Stavio sam ovu variablu u public SatTimer i DatumTimer
Naslov: Odg: Ackslimit
Poruka od: Salesman poslato Maj 13, 2018, 17:48:17 POSLE PODNE
Citat: PeroviC poslato Maj 13, 2018, 15:32:03 POSLE PODNE
Ne stavljam foreach obicno stavljam ono for( max_players.. Stavio sam ovu variablu u public SatTimer i DatumTimer

predpostavljam da je petlja isla

[pawn]for(new i=broj;  i >ili< MAX_PLAYERS; i++ ili --)
{
  //nesto
}
return 1;[/pawn]
Naslov: Odg: Ackslimit
Poruka od: PeroviC poslato Maj 14, 2018, 00:06:41 PRE PODNE
[pawn]forward SatTimer();

public OnPlayerConnect(playerid)
{
    SetTimer("SatTimer", 1000, 1);

    //textdraw..
   ../

    return 1;
}

public SatTimer()
{
        new string[100],hours,minutes;
   gettime(hours, minutes);
   format(string, sizeof string, "%s%d:%s%d", (hours < 10) ? ("0") : (""), hours, (minutes < 10) ? ("0") : (""), minutes);
   TextDrawSetString(Sat, string);
   return 1;
}[/pawn]
Naslov: Odg: Ackslimit
Poruka od: Paul Castellano poslato Maj 14, 2018, 11:14:50 PRE PODNE
[pawn]    SetTimer("SatTimer", 1000, 1);
[/pawn]
ovo nebi trebalo ići u OnPlayerConnect nego OnGameModeInit  :-\
Naslov: Odg: Ackslimit
Poruka od: PeroviC poslato Maj 14, 2018, 13:52:15 POSLE PODNE
Isto je buraz, obrisao sam iz OnPlayerConnect i ubacio u OnGameModeInit.
Kad sam sam na serveru menja se vreme(sat i random poruke) cim udje jos 1 igrac meni se vise ne menja stoji samo.. Gledao sam po sajtovima, drugim modovima isto su ubacivali kao i ja, ne znam do cega moze da bude problem!
Naslov: Odg: Ackslimit
Poruka od: Nodze poslato Maj 15, 2018, 17:37:00 POSLE PODNE
Skini i ubaci, posle javi STA je http://forum.sa-mp.com/showthread.php?t=531302
Naslov: Odg: Ackslimit
Poruka od: PeroviC poslato Maj 16, 2018, 17:18:47 POSLE PODNE
Nece da radi. Sigurno moram nesto da ubacim neki include ili tako nesto..
Naslov: Odg: Ackslimit
Poruka od: Lukiii poslato Maj 17, 2018, 11:14:37 PRE PODNE
Optimizuj skriptu bice ti lakse
Naslov: Odg: Ackslimit
Poruka od: PeroviC poslato Maj 17, 2018, 14:57:17 POSLE PODNE
Optimizovao sam neke delove u skripti i ne izbacuje ack limit.

Imam veci problem.. Kada sam sam na serveru vreme mi u textdraw normalno radi a kad se jos neko pridruzi meni se ne menja sat samo stoji npr. 14:52 dok se tom drugom liku menja. U stvari samo kada sam AFK i on se pridruzi meni se ne menja a ovako kad igram sve je normalno!
Takodje napravio sam system kad poginem da odem na lecenje u bolnicu na 30s. Kada mi se sat ne menja ja se ubijem /kill, spawnujem u bolnici i sat nastavi normalno da se menja samo sto se lepi jedan na drugi TextDraw.. Nisam se ranije susretao sa ovakvim problemom i ne znam do cega moze da bude.. kao da tajmer nece da ucitava normalno a postavljen je cim se server upali da na svaku 1000ms ocitava public!
Naslov: Odg: Ackslimit
Poruka od: InasSkripterlji poslato Maj 18, 2018, 10:16:18 PRE PODNE
[pawn]task settime[1000]()
{
   new string[256],sati,minute,sekunde;
    gettime(sati, minute, sekunde);
    format(string, sizeof string, "%s%d:%s%d:%s%d", (sati < 10) ? ("0") : (""), sati, (minute < 10) ? ("0") : (""), minute, (sekunde < 10) ? ("0") : (""), sekunde);
    TextDrawSetString(TDEditor_TD[17], string);

   new knezbog[256],godina,mesec,dan;
    getdate(godina, mesec, dan),
    format(knezbog, sizeof knezbog, "%d/%s%d/%s%d", dan, ((mesec < 10) ? ("0") : ("")), mesec, (godina < 10) ? ("0") : (""), godina);
    TextDrawSetString(TDEditor_TD[16], knezbog);
}
[/pawn]
Et ti samo prilagodi svojoj skripti
Naslov: Odg: Ackslimit
Poruka od: // xunder poslato Maj 18, 2018, 11:35:40 PRE PODNE
Ubaci crash detect, compile skriptu sa -d3 parametrom i vidi da li ti kada se to desi izbacuje errore tipa (stack/heap size exceeded npr.).
Ako izbacuje moras optimizovati odredjeni dio koda koji se u tom trenutku izvrsava.
Naslov: Odg: Ackslimit
Poruka od: PeroviC poslato Maj 18, 2018, 18:56:32 POSLE PODNE
Ubacio sam FS gl_realtime i namestio sve lepo tako da mi sat radi.

Sto se tice toga kad compile skriptu, koristim GTA:RP mod tako da mi od pocetka izbacuje 'header size i ostale gluposti..' Sta ovde mogu da optimizujem, sta prvo treba optimizujem??

Slika - http://prntscr.com/jjm79u