Przejdę do sedna sprawy mamy taki przykładowy kod:
[...] public funkcja_duza() { log_to_file("addons/amxmodx/logs/logi.log", "Jestem funkcja_duza"); funkcja(); funcjamala(); return PLUGIN_CONTINUE; } public funkcja() { log_to_file("addons/amxmodx/logs/logi.log", "Jestem funkcja"); return PLUGIN_CONTINUE; } public funcjamala() { log_to_file("addons/amxmodx/logs/logi.log", "Jestem funcjamala"); return PLUGIN_CONTINUE; } [...]Funkcja "funcja_duza" jest wcześniej wywoływana przez event, nie istotne teraz jaki. "funkcja" oraz "funcjamala" wykonują jakieś zapytania na bazie danych i zapisują odczytane dane do zmiennych. "funcjamala" musi być wykonana po "funkcja" ponieważ korzysta z danych które odczytuje "funkcja".
Plik z logami wygląda natomiast tak:
Jestem funkcja_duza Jestem funcjamala Jestem funkcjaJak widać funkcje są wykonywane w odwrotnej kolejności. Do tej pory rozwiązałem to za pomocą wywołania "funcjamala" za pomocą set_task'a z 5sekundowym opóźnieniem.
Moje pytanie jest dlaczego tak się dzieje przecież za nim "funcjamala" zostanie wywołana "funkcja" musi zwrócić coś do "funkcja_duza". Jakie jest rozwiązanie tego problemu.
Kod i logi nie są prawdziwe napisałem je na potrzeby przykładu, aby lepiej zobrazować problem.
PS. Potrzebuje odpowiedzi na już ponieważ stoje z pluginem
Użytkownik diggs edytował ten post 22.04.2011 17:08