Da, query-urile ingreuneaza, deoarece acel query trimite informatii catre baza de date, considera baza de date ca un procesor sau un creier de exemplu, iar cum intr-un gamemode se folosesc sute de query-uri, gandeste-te cum ar fi daca un profesor de exemplu ti-ar spune 100 de lucruri iar tu trebuie sa memorezi, bine, nu am dat cel mai bun exemplu. Sa luam un procesor. Daca deschizi sute de tab-uri in browser incepe sa iti mearga greu PC-ul (browserul), procesorul nu poate face fata. Iar daca ai baza de date picata, cum a fost la zeroping acum 2 luni, trebuie sa folosesti in gamemode forma mysql_tquery sau mysql_pquery ca sa nu iti pice serverul si sa iti mearga in continuare. Daca folosesti mysql_query iti va pica serverul.
La fel si cu gamemode-ul, gandeste-te la acelasi exemplu de mai sus, daca ai avea un Intel Pentium 4 vs Intel Core i9 7900X. Asa este si cu optimizarea gamemode-ului. Tickrate-ul este un fel de FPS al serverului, toate serverele dau impresia ca sunt optimizate la putini playeri on (~200 ticks), dar se simte la multi jucatori (200-300+).
Daca doresti sa ai un gamemode optimizat, in primul rand trebuie sa ai cod scris curat si ordonat. Timerele sunt necazele multora mai ales cu gamemode-uri bigzone, am vazut intr-un gamemode un timer de 1ms (1 milisecunda) la speedometer, care este cel mai folosit. Acum sunt mai multe metode de optimizare, poti optimiza si cu functii externe, y_timers etc. Si array-urile incarca gamemode-ul, desigur, daca sunt folosite. Poti declara un array de 1024 de caractere daca tu folosesti numai 5 din ele, de exemplu:
new array[ 1024 ];
format(array, 5, "buna");
Exista include-ul y_va tot din libraria YSI care iti usureaza munca.
Acum hai sa-ti explic diferentele:
mysql_query - trimite query-ul sa zicem instant, asa ca baza de date se va suprasolicita daca sunt trimise multe.
mysql_tquery - trimite query-urile intr-o ordine anume, prima data le stocheaza si dupa le executa, ideal daca baza de date e picata.
mysql_pquery - trimite query-urile in pararel;
Cat despre libraria YSI, cele mai importante ar fi:
- y_iterate
- y_commands (care vine la pachet cu y_master)
- y_timers
- y_hooks (daca esti pe module)
- y_bit
- y_va
si cam atat imi vine in minte momentan, voi da edit daca imi mai vin in minte.
Sper ca te-am ajutat, mult succes!