Robienia tick tocka nauczyłem się od Rafała Budzisa - w tym(https://youtu.be/P-uHrEmZEJE?t=780) filmie, od 13 minuty, zaczyna on pracę z tą funkcją-triggerem.
Ja postaram się to skrócić do pigułki.
Ogólna zasada działania:
1. Trigger tick_tock wywoływany jest po raz pierwszy przez funkcję inicjującą grę - startup
2. Tick_tock ma przypisany własną funkcję, której przeznaczenie pozostaje do dyspozycji autora - od sprawdzania danego warunku np. co sekundę do wyświetlania efektów.
3. Tick_tock po wykonaniu wywołuję siebie samego, czyli wracamy do punktu 2.
W ten sposób otrzymujemy przydatną pętlę, która może posłużyć chociażby do mikstur czasowych - tylko uważać tutaj na nakładanie się efektów mikstur
Przejdźmy teraz do tworzenia triggera naszego tick_tocka.
W spacerze wchodzimy w zakładkę Create. Wybieramy kolejno: zCTriggerBase (abstract) > zCTrigger > oCTriggerScript.
Miejsce położenia tick_tocka nie ma znaczenia.
Teraz nazwijmy go, np TICK_TOCK.
vobName: TICK_TOCK
Kolejnym elementem, którym się zajmujemy jest TriggerTarget. To pole odpowiada za to, który trigger ma być wywoływany po zakończeniu wywoływania się obecnego. My oczywiście chcemy wywoływać naszego ticktocka.
triggerTarget: TICK_TOCK
Dalej, ustawiamy sobie odstęp czasu pomiędzy zakończeniem pierwszego wywoływania, a początkiem drugiego.
fireDelaySec: 1
I na końcu przypisujemy naszemu triggerowi napisaną już przez nas funkcję. Jeśli deklaracja naszej funkcji ma postać void TICK_TOCK() to my wpisujemy jedynie TICK_TOCK.
scriptFunc: TICK_TOCK
To co umieścimy już w samej funkcji to już nasza inwencja twórcza.
I oczywiście na koniec należy dodać do startup'u wywołanie naszego triggera.
Wchodzimy więc w startup i w jednej z funkcji wpisujemy:
Wld_SendTrigger("TICK_TOCK");
Ostatnio edytowany przez Kruk (2017-01-28 18:35:17)
Offline
Dobry tutek, dobre wytłumaczenie Leci +1 punkt reputacji
Offline
Gdy w startupie wstawie to Wld_SendTrigger("TICK_TOCK"); i włączą grę, to wywala i pisze że Gothic 2 Przestał działać...
Offline
Lul, trochę nietypowo. Nie masz jakiś logów, zspy'a? Spróbuj może posprawdzać nazwy czy są identyczne. Ewentualnie mogło też coś pójść nie tak przy samym triggerze.
Możesz podesłać screeny właściwości triggera i funkcji startupowej inicjującej tick_tocka?
Offline
Żadnych logów (błędnych) zspy nie ma. Nazwy są identyczne, chwilowo nie mam jak podesłać, ale gdy będę miał jak to podeślę I wywala to tylko wtedy kiedy chcę wywołać funkcję czyli jak dałem do startupu to odrazu gdy wcisne nowa gra. Próbowałem też, ze startem rozdziału...to gra działa normalnie normalnie, pojawia się Rozdział 1 i wyjebało odrazu xD
Offline
No nie wiem co mogło się powalić. Próbuj coś wykombinować. Ja kiedy pierwszy raz stawiałem tick tocka to pół dnia spędziłem na znajdowaniu błędów xD
Offline
Ponieważ dostałem Wasze skrypty i mogłem je przejrzeć to zorientowałem się gdzie był błąd. Według Budzisa należało ustawić retriggerWaitSec, a Tick Tock robiony przeze mnie miał ustawianą wartość w fireDelaySec. Także mybad.
Ostatnio edytowany przez Kruk (2017-01-28 18:35:37)
Offline
Aaaaaa to temu xD
Offline
Kiedyś też robiłem tick tocka na skryptach do g1Mtek była tam fajna funkcja ducha(przeźroczystości) chciałem żeby ona się odświeżała co kilka sekund ale nie działało a błędów nie było
Offline
Gothic 1 wiecznie (jak dla mnie) ma jakieś problemy z moddingiem. Heh
Offline
Tak wygląda życie w kodzie xD
Offline
Ciężki kawałek chleba xD
Offline
Kruk napisał(a):
Ponieważ dostałem Wasze skrypty i mogłem je przejrzeć to zorientowałem się gdzie był błąd. Według Budzisa należało ustawić retriggerWaitSec, a Tick Tock robiony przeze mnie miał ustawianą wartość w fireDelaySec. Także mybad.
Ty to poprawiłeś w tutku?
Offline
Tak. Nie widać?
Offline
Jest fireDelaySec: 1
Offline
Bo ma tak być xD
Offline
A nie retriggerWaitSec?
Offline
Nie. Ma być tak jak jest w poradniku.
Offline
Okok
Offline