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


Dodatki SourceMod



Temat jest zamknięty








