main vs OnGameModeInit


Započeo monsterking, Avgust 29, 2022, 22:30:31 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pitanje/savjet: Može li neko da mi pojasni razliku između main i OnGameModeInit? Primjetio sam pomoću print naredbe da se po pokretanju servera prvo pozove OGMI pa onda main. Interesuje me za šta praktično služi main u samp gamemodu, za šta se najčešće koristi?
Opširnije:
Dodatno:

Koliko znam apsolutno nicemu, potreban je i neophodan samo da stoji i skuplja prasinu. Pokrece se kada se pokrene mod, mada valjalo bi to proveriti, ja licno nisam nikada koristio za bilo sta

Citat: V01D poslato Avgust 29, 2022, 23:00:20 POSLE PODNE
Koliko znam apsolutno nicemu, potreban je i neophodan samo da stoji i skuplja prasinu. Pokrece se kada se pokrene mod, mada valjalo bi to proveriti, ja licno nisam nikada koristio za bilo sta
moj odgovor je isti kao i od voida :P

Sluzi da printas copyright, build, verziju itd.... Takodje to je jedini deo u kome mozes da koristis stare funkcije kao sleep itd...

Prost odgovor je da je main funkcija ona koja je obavezna u svakom programu i ona je ta koja se pozove kada se pokrece program dok su sve ostale izvedene i pozivaju se iz nje. Kada se zavrsi main funkcija, zavrsava se i program.
Samp je malo specifican posto koristi pawn virtuelnu masinu i ima pristum interpretaciji koda. U sustini main funkcija nikad ne zavrsava zato sto samp server ne dozvoljava to da bi mogao da poziva callbackove.

Direktan odgovor bi bio, da se OnGameModeInit poziva nakon svih inicializacija samp servera to jest kada je server spreman za rad, dok u slucaju sa main funkcijom se moze desiti racing condition to jest da se jednom pozove pre necega, nekad posle (govorim interno o samp serveru to jest stvarima koje mi ne vidimo tipa loadovanje pluginova i slicno).

U sustini koristi OnGameModeInit da bi izbegao razne moguce bagove (recimo da pool za klase igraca nije inicializovan a ti pozivas AddPlayerClass sto ili ce da fail ili ce da crash samp server)