Tykalny trigger - G2NK 5042 11

O temacie

Autor Rogal123

Zaczęty 14.08.2016 roku

Wyświetleń 5042

Odpowiedzi 11

Rogal123

Rogal123

Użytkownicy
posty20
Propsy1
ProfesjaScenarzysta
  • Użytkownicy
Przejdę do rzeczy - jakie powinny być parametry takiego "tykalnego triggera"? Chodzi mi dokładnie o oCTriggerScript, by po wejściu w niego wywołała się funkcja. Prosiłbym o to okienko z tym, jak powinno wyglądać albo chociaż o wytknięcie tych ważnych. Z góry dzięki.  :ok:
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Bardziej przyda ci się oCTriggerOnTouch. Musisz ustawić rozmiar prostopadłościanu i podać funkcję jaką ma wywołać.

Rogal123

Rogal123

Użytkownicy
posty20
Propsy1
ProfesjaScenarzysta
  • Użytkownicy

Rogal123

Tykalny trigger - G2NK
#2 2016-08-14, 22:31(Ostatnia zmiana: 2016-08-14, 23:16)
Mniemam, że chodziło tu o oCTriggerUntouch, gdyż Ontoucha nie mam. Stworzyłem tego Triggera i nadal nie wiem, w jaki sposób ustawić mu rozmiar prostopadłościanu. Kombinowałem coś z wielkim modelem drzewa, a następnie usunąłem mu ShowVisual, ale tutaj chyba nie na tym miało to polegać. Na dodatek na samym końcu jest TriggerTarget, gdzie chyba wpisuje się funkcję. Ale właśnie, ma to być nazwa funkcji czy raczej nazwa pliku, w którym się ona znajduje?
Niemniej, tak jak zrobiłem i z kombinowaniem z TriggerTargetem na te dwa sposoby nie podziałało. Przeoczyłem coś ważnego?

Edit: Prostopadłościan się udał, pierwszy raz użyłem opcji BBox i odkryłem, że to w ten sposób się robi wymiary. Niestety - funkcja nadal się wywołuje. Błąd w niej samej czy coś innego?

A tutaj owa testowa funkcja:
func void OWCA_MARTWA_TRIGGER ()
{
// if (OWCA_MARTWA == FALSE)
// {
OWCA_MARTWA=TRUE;
Wld_InsertNpc (Troll, "OWCAMARTWA");
// };
};
 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Funkce wywolywane w spacerze musza mieć dopisek S1 w skrypcie.


OWCA_MARTWA_TRIGGER_S1
 

Rogal123

Rogal123

Użytkownicy
posty20
Propsy1
ProfesjaScenarzysta
  • Użytkownicy
To cenna wskazówka, jednak wciąż nic. Próbowałem zarówno z wpisywaniem nazwy funkcji jako target jak i z nazwą pliku z funkcją. Najwidoczniej coś pominąłem albo spartoliłem.  :facepalm:
Tutaj zdjęcie z parametrami triggera. Gdzieś jest tak, jak nie powinno?

 

K4R0L111

K4R0L111

Użytkownicy
posty31
Propsy14
ProfesjaSkrypter
  • Zbanowany
_S1 musi być w skrypcie a nie w Spacerze.

Rogal123

Rogal123

Użytkownicy
posty20
Propsy1
ProfesjaScenarzysta
  • Użytkownicy
Jest w skrypcie. Z twojej wypowiedzi wnioskuję, że w spacerze musi być nazwa skryptu. Niestety, ale także nie działa.
 

A.K.

A.K.

Użytkownicy
posty156
Propsy163
Profesjabrak
  • Użytkownicy
Wiesz co, spróbuj może jednak oCTriggerScript z takimi ustawieniami:


Pod scriptFunc nazwa Twojej funkcji.
 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Trigger Target w Spacerze bez dopiska S1. Czyli: OWCA_MARTWA_TRIGGER
A w skrypcie: OWCA_MARTWA_TRIGGER_S1
 

Rogal123

Rogal123

Użytkownicy
posty20
Propsy1
ProfesjaScenarzysta
  • Użytkownicy
Nie rozumiem, zarówno ta propozycja z TriggerScriptem jak i poprawka z S1 nie działają... Co jeszcze może być tego powodem? Jest gdzieś w oryginalnym Gothiku podobny trigger, bym mógł porównać?
 

A.K.

A.K.

Użytkownicy
posty156
Propsy163
Profesjabrak
  • Użytkownicy
Na przykład funkcja z Archolem na Irdorath.

Tak wyglądają ustawienia oCTriggerScript:



A tak skrypt (plik \Scripts\Content\Story\Events\EVT_ArcholDead_Func.d):

var int EVT_ARCHOLDEAD_FUNC_OneTime;
func void EVT_ARCHOLDEAD_FUNC ()
{
if (Npc_IsDead(Skeleton_Lord_Archol))
{
Skeleton_Archol1.aivar[AIV_EnemyOverride] = FALSE;
Skeleton_Archol2.aivar[AIV_EnemyOverride] = FALSE;
Skeleton_Archol3.aivar[AIV_EnemyOverride] = FALSE;
Skeleton_Archol4.aivar[AIV_EnemyOverride] = FALSE;
Skeleton_Archol5.aivar[AIV_EnemyOverride] = FALSE;
Skeleton_Archol6.aivar[AIV_EnemyOverride] = FALSE;
};

if (EVT_ARCHOLDEAD_FUNC_OneTime == FALSE)
{
B_LogEntry (TOPIC_HallenVonIrdorath,"Ich habe so etwas wie einen Tempel gefunden. Er wird von einer Unmenge von untoten Wesen bewohnt. Erinnert mich alles verdammt an diesen elenden Orctempel des Schläfers. Diesmal werde ich nicht versagen. Diesmal nicht!");
EVT_ARCHOLDEAD_FUNC_OneTime = TRUE;
};
};
 

Rogal123

Rogal123

Użytkownicy
posty20
Propsy1
ProfesjaScenarzysta
  • Użytkownicy
Nie wiem, dlaczego zadziałało, ale gdy nazwałem funkcję EVT_OWCA_FUNC, pyknęło i troll jebnął w danym waypoincie ^^
Dzięki wszystkim, można zamknąć.
 


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