main vs OnGameModeInit

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

prethodna tema - sledeća tema

0 članova i 2 gostiju 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
Sunce greje lagano šetam se po Voždovcu
Moja kučka i ja, furam je na povodcu
Zove se Lola i nije nešto lepa
Ali meni daće lapo kada dokopa se repa
Rođena na ulici, dolazi iz geta
I zato je gangsta kučka, a ne starleta
Zahvaljujući njoj meni dignuta je đoka
Krov je spušten, vožnjica od bloka do bloka
I ako glumiš mangupa jebaće ti mamicu
U tašni nema lak za nokte, ali ima palicu
Odrasla na Medaku, iz huda je sestra
Nijedna Snoopova kučka nije tol'ko gangsta
Za nju sam 'Pac, ona moja je Madonna
Ako znaš još neku takvu javi mi preko fona
I kada njesra izbije ona ne vata pištolja
Već nabada na prvu jer je gangsta drolja

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)