Jump to content
  • 0

Problema, lag infernal 180+ de jucatori


[RW]Robi

Question

Salut, am o problema cu serverul, cand ating peste 180 de jucatori este un lag infernal, abea daca mai raspunde, cei de la 0Ping au spus ca serverul consuma cat unul de 800 de sloturi...

Am incercat tot felul de chestii, am mai scos operatii ce se repeta de multe ori exemplu chat_logs, etc.

Am adaugat toate timerele intr-un timer care se repeta la o secunda si restrictionandul pentru celelalte timere ce trebuie sa se repete de exemplu la 5 minute cum ar fi salvarea datelor in mysql.

Un exemplu:

new secunde300 = 0;

in timer:

secunde300++;
if(secunde300 >= 300)
{
	secunde300 = 0;
	variabile;
}

Va rog sa ma ajutati, nu mai stiu ce sa fac.

                        

 

 

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

solved

 

Edit: a fost de la operatiile mysql, si poate de la variabila MAX_PLAYERS setata pe 1000, oricum multumesc tuturor!

Edited by [RW]Robi

                        

 

 

Link to comment
Share on other sites

  • 0
  • 0
On 26.05.2016 at 21:30, WiDuAlK said:

Asta inseamna sa folosesti GM-uri de pe internet, nu sunt optime deloc. Rescrie GM folosind procesor de comenzi, sscanf, foreach, plugin's la timere, etc.... Vezi ce zice si crashdetect cand ai lagu ala infernal.

am rezolvat tot din crashdetect acum 2 zile, nu mai exista erori.

Edit: folosesc procesorul de comenzi zcmd, am foreach la timere, am include sscanf, am tot ce e necesar..

Edited by [RW]Robi

                        

 

 

Link to comment
Share on other sites

  • 0

=)))))))))))) se numesc boti, domnule Robert

                                                                                                 

Link to comment
Share on other sites

  • 0
Just now, [RW]Robi said:

poftim?

Scoate botii si o sa vezi cum dispare lag-ul.

                                                                                                 

Link to comment
Share on other sites

  • 0
On 26.05.2016 at 22:51, Ainox said:

Scoate botii si o sa vezi cum dispare lag-ul.

nu am boti inteligentule, lasa ca ma descurc eu cumva.

 

dati T/C doar hatereala.

                        

 

 

Link to comment
Share on other sites

  • 0

Lucrurile care folosesc procesorul sunt loop-urile in special, mai sunt si timerele, timerele ce se folosesc cu variabile. Si daca ai coduri inutile, scrise aiurea. Nu as recomanda acel foreach, mai bine te folosesti de functia nativa IsPlayerConnected si de o variabila care sa te ajute sa verifi cand jucatorul este logat pe server.

Inca ceva in fiecare loop folosit unde e nevoie sa-l inchizi foloseste functia brake. Si iar la fel foloseste-te de functia continue cand e nevoie.

Exemplu:

for(new i = 0; i < MAX_PLAYERS; i++){

if(IsPlayerConnected(i) && IsPlayerLogged == 1){

if(i == 50){

codul dorit apoi 

break;

} } }

 

SAU

for(new i = 0; i < MAX_PLAYERS; i++){

if(IsPlayerConnected(i) && IsPlayerLogged == 1){

if(i == 50) continue;

if(i == 49)

{   codul }

}  }

O alta chestie care am observat-o este ca serverele celor de la zeroping sunt cam pline e posibil ca sa nu consume asa mult cat zic ei si lagul sa fie si din cauza hostului.

Sper ca ai inteles si te vor ajuta sfaturile mele. Am vazut ce gamemode folosesti si da dupa parerea mea e prost configurat, multe bug-uri ..... In urma cu ceva timp era concurs de postat poze cu buguri mari de pe server-ul tau pe diferite grupuri ce au legatura cu acest joc, asta in caz ca nu te confund dar nu prea cred :))

Si inca o chestie ai grija si la variabilele definite ce reprezinta numarul total de jucatori sau de masini ca de exemplu MAX_PLAYERS  sa fie definit cat ai tu numarul de sloturi. Daca ai 200 sloturi vai fi #define MAX_PLAYERS 200 Pentru ca daca tu ai 200 sloturi iar MAX_PLAYERS este definit 1000 loop care se foloseste in functie de MAX_PLAYERS se foloseste aiurea daca intelegi.

Edited by Jamal Alin

Cea mai sigura sursa de facut bani de buzunar in mediul virtual. Inregistreaza-te si pune-te pe treaba !!!

http://www.viespar.ro/?reff=ab8e9d8086304d6136eac03c710238d7

Link to comment
Share on other sites

  • 0
On 27.05.2016 at 00:39, Jamal Alin said:

Lucrurile care folosesc procesorul sunt loop-urile in special, mai sunt si timerele, timerele ce se folosesc cu variabile. Si daca ai coduri inutile, scrise aiurea. Nu as recomanda acel foreach, mai bine te folosesti de functia nativa IsPlayerConnected si de o variabila care sa te ajute sa verifi cand jucatorul este logat pe server.

Inca ceva in fiecare loop folosit unde e nevoie sa-l inchizi foloseste functia brake. Si iar la fel foloseste-te de functia continue cand e nevoie.

Exemplu:

for(new i = 0; i < MAX_PLAYERS; i++){

if(IsPlayerConnected(i) && IsPlayerLogged == 1){

if(i == 50){

codul dorit apoi 

break;

} } }

 

SAU

for(new i = 0; i < MAX_PLAYERS; i++){

if(IsPlayerConnected(i) && IsPlayerLogged == 1){

if(i == 50) continue;

if(i == 49)

{   codul }

}  }

O alta chestie care am observat-o este ca serverele celor de la zeroping sunt cam pline e posibil ca sa nu consume asa mult cat zic ei si lagul sa fie si din cauza hostului.

Sper ca ai inteles si te vor ajuta sfaturile mele. Am vazut ce gamemode folosesti si da dupa parerea mea e prost configurat, multe bug-uri ..... In urma cu ceva timp era concurs de postat poze cu buguri mari de pe server-ul tau pe diferite grupuri ce au legatura cu acest joc, asta in caz ca nu te confund dar nu prea cred :))

Si inca o chestie ai grija si la variabilele definite ce reprezinta numarul total de jucatori sau de masini ca de exemplu MAX_PLAYERS  sa fie definit cat ai tu numarul de sloturi. Daca ai 200 sloturi vai fi #define MAX_PLAYERS 200 Pentru ca daca tu ai 200 sloturi iar MAX_PLAYERS este definit 1000 loop care se foloseste in functie de MAX_PLAYERS se foloseste aiurea daca intelegi.

inteleg ce vrei tu sa spui, foreachul este mai rapid de cat for(new, avand in vedere definirea MAX_PLAYERS, este o idee buna, ar fi usat mai putin dn 'memoria' serverului.

O sa redefinesc MAX_PLAYERS pe 250 de sloturi, insa foreach-ul este mult mai rapid, nu cred ca e nevoie sa-l schimb cu for(new.

                        

 

 

Link to comment
Share on other sites

  • 0
On ‎5‎/‎27‎/‎2016 at 16:21, [RW]Robi said:

60.000+

sunt ceva linii, incearca sa mai restrangi cat de mult poti.

daca ai variabile gen new Float: x, Float: y etc pune Float: Pos[2];
la fel si la textdraw-uri

new Text: Text1, Text: Text2

new Text: Text[2];

foloseste  y_timers pt timere

foloseste:

#define Functie:%0(%1) forward%0(%1); public%0(%1)

o sa scapi de cel putin 2-3k linii

foloseste Streamer la obiecte/pickup-uri

nu permite sa se poata spawna mai mult de 2 masini pe server de odata

zcmd e un processor bun, dar schimba pe DC_CMD are si o functie de marire a vitezei si nu trebuie sa rescrii comenzile ca foloseste aceeasi scurtatura CMD:

foloseste foreach in loc de loop(for)

 

**********************************

Servicii Scripting de calitate:

*********************************

Future Project: ExpertGame

*********************************

Link to comment
Share on other sites

  • 0
13 minutes ago, DaEdRiC-FoX said:

sunt ceva linii, incearca sa mai restrangi cat de mult poti.

daca ai variabile gen new Float: x, Float: y etc pune Float: Pos[2];
la fel si la textdraw-uri

new Text: Text1, Text: Text2

new Text: Text[2];

foloseste  y_timers pt timere

foloseste:


#define Functie:%0(%1) forward%0(%1); public%0(%1)

o sa scapi de cel putin 2-3k linii

foloseste Streamer la obiecte/pickup-uri

nu permite sa se poata spawna mai mult de 2 masini pe server de odata

zcmd e un processor bun, dar schimba pe DC_CMD are si o functie de marire a vitezei si nu trebuie sa rescrii comenzile ca foloseste aceeasi scurtatura CMD:

foloseste foreach in loc de loop(for)

Multumesc pentru propuneri, am sa incerc sa schimb procesorul de comenzii pe DC_CMD, daca lagul persista sa apara, legat de celalalte chestii, deja folosesc foreach, am facut niste schimbarii legate de mysql, dupa parerea mea daca sunt multe actiuni in mysql si lagul va fi la fel, am mai scos ce nu aveam nevoie, ex chat_logs, kill_logs, iplog, etc. Sper sa nu mai fie probleme.

                        

 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.