Na podstawie oryginalnego G2NK pokażę wam jak zrobić by gra kończyła się po dialogu razem z outro i credits.
Część dialogowa
func void DIA_Jorgen_DI_UndeadDragonDead_over ()
{
AI_StopProcessInfos (self);
B_Extro_Avi ();
};
func void DIA_Jorgen_DI_UndeadDragonDead_over ()
Funkcja dialogu jest to funkcja którą przypisujemy danemu dialogowi po więcej informacji odsyłam do tutoriali oddanych dialogom.
AI_StopProcessInfos (self);
Kończy dialog
B_Extro_Avi ();
Wywołuje funkcję opisaną w oddzielnym pliku który musi być repasrowany przed dialogami(które są
chyba reparsowane na końcu).
Zawartość B_extro_avi lub naszego pliku z tą funkcją opisaną.
func void B_Extro_Avi ()
{
if (Npc_IsDead(PC_Thief_DI) == FALSE)
&& (Npc_IsDead(PC_Fighter_DI) == FALSE)
{
DiegAndGornAreOnboard = TRUE;
};
PlayVideo ( "Extro_Xardas.BIK");
PlayVideo ( "Credits_Extro.BIK");
PlayVideo ( "Credits2.BIK");
if (DiegAndGornAreOnboard == TRUE)
{
PlayVideo ( "Extro_AllesWirdGut.BIK");
};
ExitSession ();
};
func void B_Extro_Avi ()
Jest to definicja funkcji tą nazwę podamy w naszym dialogu po więcej szczegółów dotyczących funkcji polecam zajrzeć do tutoriala "
Funkcje".
Ode mnie tylko jedno:
Zwróćcie uwagę że po funkcji nie ma średnika (;) wielu początkujących skrypterów robi ten błąd.
if (Npc_IsDead(PC_Thief_DI) == FALSE)
To sprawdza czy Diego (pc_thief możemy podać inną instancję) żyje. Jest to chyba dobry przykład ponieważ większość modów kończy się po zabiciu kogoś tam (najczęściej czarnego maga). Można również napisać inne odwołania na przykład do zakończonego zadania czy to znanej nam informacji, posiadania odpowiednich przedmiotów
DiegAndGornAreOnboard = TRUE;
Jeżeli zarówno Gorn jak i Diego są żywi funkcja zwróci TRUE.
My również możemy napisać własną funkcje którą umieścimy jako nasz element tutaj ale pamiętajcie że musi być to zreparsowane przed jej użyciem ponieważ inaczej dostaniecie błąd

PlayVideo ( "Extro_Xardas.BIK");
PlayVideo znaczy po angielsku odtwórz film. I ta funkcja właśnie to robi
W nawiasie mamy opisany plik z rozszerzeniem (zwróćcie uwagę że jest to napisane w cudzysłowach ("")).
Pliki filmowe (intro, outro itp) znajdują się w:
Dla Gothic 1
x:\Program Files\Piranha Bytes\Gothic\_Work\Data\Video\Extro.bik
Dla Gothic 2
x:\Program Files\JoWood\Gothic II\_Work\Data\video
Gdzie x tam litera dysku na jaki zainstalowaliście Gothic (domyślnie C)
Jest to domyślna ścieżka instalacji jeżeli podaliście inna to ineresuje was tekst od Gothic dalej
Nie próbowałem dawać filmów w inne miejsce ani z innym rozszerzeniem możecie spróbować lecz nie jest to mądry pomysł.
Przykład przeze mnie pokazany udowadnia że możemy pokazać kilka filmów naraz zostaną one pokazane jeden po drugim w kolejności wystąpienia.
ExitSession ();
Z angielskiego zamknij sesję.
Zamyka bieżącą grę oraz pokazuje nam menu startowe.
Możemy użyć tego również by dawać przerywniki w grze wtedy do funkcji dialogu (nie musi być to wywoływane przez dialog, możemy użyć innego warunku) nie dajemy
AI_StopProcessInfos (self);
chyba że chcemy by rozmowa się skończyła po filmie.
Oraz w funkcji wywoływanej przez nas nie dajemy
ExitSession ();
ponieważ gra zakończy się przed wcześnie.
Drogą na skróty która możemy wykorzystać w dialogach jest danie
PlayVideo ("Intro_ADDON");
do func void dialogu.
Mam nadzieję że wszystko jasno opisałem.
Kopiujcie jak chcecie ale na dole niech pisze by Sawik