U vezi ackslimita

Započeo Balsa., Januar 24, 2018, 18:16:44 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Detaljan opis problema: pa ovako ja moram povecat ackslimit uvjek na 5-10 k da bi server radio i da bih mogao uci.
Stara mi je dosta skripta. Sta ja mogu uraditi da acks ne bi morao dirati i da bi koristilo manje memorije.

I da li bi ovo izdrzalo 50 igraca (sa acks limitom)
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):


optimizujes skriptu
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Kako tacno osim stringova i pojasni mi stringove sta znaci tacno


String ti je varijabla u kojoj se cuvaju slova najprostije receno
Evo neki primercic
new string[128];
format(string,sizeof(string),"Dobrodosli, mozete ici!",);
Ovo [128] ti je struktura od 128 elemenata znaci u formatu mozes imati najvise 128 elemenata, ili bilo gde drugde gde koristis string. ako imas vise od 128 nece biti ispisano
Poslednja Izmena: Januar 25, 2018, 22:58:39 POSLE PODNE od |Gagi|
Uporan rad sve pboedjuje.
Publius Vergilius Maro Vergilije

Aha, znaci aio ima vise od 128 znakova nece biti ispisano.
Dobro nego zmaci za svaki send ckient message i tako dovoljan je string 128, odnosno maksimum slova je 128, a za krace i 64 i 32 moze ako je u litsnju Dobrodosao na server.
Znaci sto je manji string manje memorije jel


Bice ispisano ono sto je do 128, preko nece biti ispisano. Strukturu mozes staviti proizvoljno [1] [51] [151] kolko mislis da ti odgovara, toliko stavis. Sto se tice memorije, svaki karakter zauzima odredjenu memoriju, optimizujes skriptu, nadjes gde mozes staviti nesto krace, nepotrebno izbacis, inace ne vidim sto bi smanjivao memoriju .pwn .amx kad to nisu prevelike memorije :D Mod od oko 30k linija zauzme skoro 2MB
Poslednja Izmena: Januar 25, 2018, 23:05:14 POSLE PODNE od |Gagi|
Uporan rad sve pboedjuje.
Publius Vergilius Maro Vergilije

Na nekim mjestima u skripti ispisujes dosta poruka, moraš smanjiti te loopove. Preko 5000 nemoj ići.

Citat: |Gagi| poslato Januar 25, 2018, 23:03:59 POSLE PODNE
Bice ispisano ono sto je do 128, preko nece biti ispisano. Strukturu mozes staviti proizvoljno [1] [51] [151] kolko mislis da ti odgovara, toliko stavis. Sto se tice memorije, svaki karakter zauzima odredjenu memoriju, optimizujes skriptu, nadjes gde mozes staviti nesto krace, nepotrebno izbacis, inace ne vidim sto bi smanjivao memoriju .pwn .amx kad to nisu prevelike memorije :D Mod od oko 30k linija zauzme skoro 2MB
Al onda ne znam, imam previse if u skripti i svasta nesto...


Citat: Balsa. poslato Januar 26, 2018, 12:59:14 POSLE PODNE
Al onda ne znam, imam previse if u skripti i svasta nesto...
provjeri for loopove, gledaj da unutar for loopa ne pravis string, vec prije njega, npr:

nepravilno:

[pawn]for ( new i; i < 999; i++ ) {
    new str [ 512 ]; // string se deklarise 998 puta, potrebna memorija = 998 * sizeof ( str ) * 4 bajta
    // ...
}[/pawn]

pravilno:

[pawn]new str [ 512 ]; // samo jednom deklarises string.
for ( new i; i < 999; i++ ) {
    // ...

}[/pawn]

ako trazis samo jedan broj iz niza, i ako postoji mogucnost da taj broj ne postoji:

[pawn]
new str [ 72 ];
for  ( new i; i < 999; i++ ) {
    format ( str, 72, "/directory/%d.ini", i );
    if ( fexist ( str ) ) {
        new string [ 128 ]; // samo jednom deklarises string.
        // kod ovdje.
        break;

    }
   
}[/pawn]


bilo je lijepo dok je trajalo.