Wykorzystanie funkcji loop zamiast timera - możliwe? 3953 2

O temacie

Autor pagi111

Zaczęty 22.01.2021 roku

Wyświetleń 3953

Odpowiedzi 2

pagi111

pagi111

Użytkownicy
posty51
Propsy2
Profesjabrak
  • Użytkownicy
Siemka,

w pliku ZS_MM_RTN_Summoned jest funkcja, która co sekundę sprawdza czy summon nie jest przyzwany już zbyt długo i jeśli czas >= zdefiniowanemu czasowi przywołania dla summonów, to ginie. Da się też w tą funkcję włożyć oczywiście inne warunki i można robić ciekawe rzeczy z przywołańcami (np. mogą ciągnąć manę na sekundę).

Gdy chcę zrobić jakiś efekt czasowy, to do tej pory zawsze używałem funkcji timera, typu:
FF_ApplyOnceExt (Timer_SPL_Sprint, 1000, -1);
Pytanie brzmi: czy można w jakiś sposób wykorzystać funkcję typu loop do innych kwestii niż przywołania, a jeśli tak, to jak to zrobić?
No dobra, już wiem, że na pewno jest ona wykorzystywana do innych rzeczy - np. czas trwania zamrożenia, itp. Pytanie jak to zrobić. Bo dodanie return LOOP_CONTINUE na końcu mojego skryptu nie podziałało.

Wystarczy to dodać na końcu swojej funkcji?
return LOOP_CONTINUE;Tak jest w tej funkcji przywołańców. Ale próbowałem tak ze swoją funkcją i nie działa, chyba że coś źle zrobiłem.

I jeśli wgl da się zastosować tę funkcję loop, to czy jest ona pod jakimś względem lepsza od timera, albo na odwrót?
 

bogu9821

bogu9821

Użytkownicy
posty407
Propsy185
ProfesjaProgramista
  • Użytkownicy
Nie da się w swoich funkcjach. LOOP_CONTINUE to stała, której wartość zwrócona tylko w określonych funkcjach sprawdzanych przez silnik (AI, magia), powoduje ponowne wywołanie funkcji.
 
while(false) Do();

pagi111

pagi111

Użytkownicy
posty51
Propsy2
Profesjabrak
  • Użytkownicy
No to sprawa jasna, dzięki za odpowiedź.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry