(GIINK) Dialog - Postacie nie rozmawiają 3321 5

O temacie

Autor Cezar

Zaczęty 25.08.2010 roku

Wyświetleń 3321

Odpowiedzi 5

Cezar

Cezar

Użytkownicy
posty2
  • Użytkownicy
Napisałem Dialog do stworzonej przeze mnie postaci. Sprawdziłem w GothicStarter_mod błędy i poprawiłem je. Następnie użyłem opcji "napraw skrypt" w Spacerze, który nie pokazał żadnych błędów. Usunąłem pliki OU, a potem zaktualizowałem Dialogi według filmików Czipa17. Za jego przykładem również stworzyłem paczkę z modem. Po uruchomieniu gry wywołuję NPCa w konsoli, po czym nawiązuję rozmowę. Opcję dialogowe są, zadanie jest zapisane w dzienniku, również wszystkie warunki działają, po wykonaniu zadania dostaję to co zapisałem w skrypcie dialogu. Jednak postacie nie rozmawiają ze sobą. Po wielu próbach użyłem do pomocy Easy Dialog Makera, ale po poprawieniu błędów problem pozostaje. O to cały dialog:
Cytuj
//========================================
//-----------------> EXIT
//========================================

INSTANCE DIA_Adi_EXIT(C_INFO)
{
   npc         = ZZZ_5000_Adi;
   nr         = 999;
   condition      = DIA_Adi_EXIT_Condition;
   information   = DIA_Adi_EXIT_Info;
   permanent   = TRUE;
   description    = DIALOG_ENDE;
};

func int DIA_Adi_EXIT_Condition()
{
   return TRUE;
};

func int DIA_Adi_EXIT_Info()
{
   AI_StopProcessInfos   (self);
};

//========================================
//-----------------> HELLO1
//========================================

INSTANCE DIA_Adi_HELLO1 (C_INFO)
{
   npc         = ZZZ_5000_Adi;
   nr         = 1;
   condition   = DIA_Adi_HELLO1_Condition;
   information   = DIA_Adi_HELLO1_Info;
   permanent   = FALSE;
   description   = "Witaj!";
};

func int DIA_Adi_HELLO1_Condition()
{
      return TRUE;
};

func void DIA_Adi_HELLO1_Info()
{
        AI_Output (other, self, "DIA_Adi_HELLO1_15_01"); //Witaj!
        AI_Output (self, other, "DIA_Adi_HELLO1_03_02"); //Elo Bezio, Bezio elo.

};


//========================================
//-----------------> ZADANIE1
//========================================

INSTANCE DIA_Adi_ZADANIE1 (C_INFO)
{
   npc         = ZZZ_5000_Adi;
   nr         = 4;
   condition   = DIA_Adi_ZADANIE1_Condition;
   information   = DIA_Adi_ZADANIE1_Info;
   permanent   = FALSE;
   description   = "Co tam?";
};

func int DIA_Adi_ZADANIE1_Condition()
{
     if (Npc_KnowsInfo (other, DIA_Adi_HELLO1))
  {
      return TRUE;
  };
};


func void DIA_Adi_ZADANIE1_Info()
{
        AI_Output (other, self, "DIA_Adi_ZADANIE1_15_01"); //Co tam?
        AI_Output (other, self, "DIA_Adi_ZADANIE1_03_02"); //Gdzie moja Viagra, Bezio?
        AI_Output (self, other, "DIA_Adi_ZADANIE1_15_03"); //Zżarłem Ci!
        AI_Output (self, other, "DIA_Adi_ZADANIE1_03_04"); //O ty mendo! Jak ja Cię pier...
        AI_Output (other, self, "DIA_Adi_ZADANIE1_15_05"); //Żartowałem! Nie wiem gdzie jest Viagra.
        AI_Output (self, other, "DIA_Adi_ZADANIE1_03_06"); //Potrzebuję Viagry... Jak mi ją znajdziesz dostaniesz ognisty mieczyk!
       

        Log_CreateTopic (TOPIC_Viagra,LOG_MISSION);
        Log_SetTopicStatus (TOPIC_Viagra,LOG_RUNNING);
        B_LogEntry   (TOPIC_Viagra,"Adi zgubił Viagrę. Jak ją znajdę, dostane ognisty miecz!");

};

//========================================
//-----------------> KONIEC_ZADANIA
//========================================

INSTANCE DIA_Adi_KONIEC_ZADANIA (C_INFO)
{
   npc         = ZZZ_5000_Adi;
   nr         = 5;
   condition   = DIA_Adi_KONIEC_ZADANIA_Condition;
   information   = DIA_Adi_KONIEC_ZADANIA_Info;
   permanent   = FALSE;
   description   = "Mam Viagrę";
};

func int DIA_Adi_KONIEC_ZADANIA_Condition()
{
     if (Npc_KnowsInfo (other, DIA_Adi_ZADANIE1))
     && (Npc_HasItems (other, ItFo_viagra) >=1)
  {
      return TRUE;
  };
};


func void DIA_Adi_KONIEC_ZADANIA_Info()
{
        AI_Output (other, self, "DIA_Adi_KONIEC_ZADANIA_15_02"); //Mam Viagrę!
        AI_Output (self, other, "DIA_Adi_KONIEC_ZADANIA_03_03"); //Hahaha... Dobra Viagra nie jest zła!
        AI_Output (self, other, "DIA_Adi_KONIEC_ZADANIA_03_04"); //Masz tu miecz. Uważaj na ogień!
     
     B_GiveInvItems (other, self, itfo_viagra, 1);
        B_LogEntry   (TOPIC_Viagra,"Dałem Viagrę Adikowi!");
        Log_SetTopicStatus (TOPIC_viagra, LOG_SUCCESS);

        B_GivePlayerXP (90);
        Createinvitems (self, itmw_addon_firesword, 1);
        B_GiveInvItems (self, other, ItMw_Addon_firesword, 1);

};

Skrypty itemów stworzonych przeze mnie też są w porządku.

PS. Jest link do jakiegoś Tutka, by zrobić tak, że NPCa nie trzeba wywoływać w konsoli, tylko jest już w grze po jej włączeniu?
 

nouwak

nouwak

Użytkownicy
Darth Novak
posty62
Propsy182
Profesjabrak
  • Użytkownicy
  • Darth Novak
Co do dialogu, nie wiem, co może nie działać, skoro dałeś OU. Natomiast żeby NPC się pokazywał w startup.d dopisujesz:

WldInsertNPC (ZZZ_5000_Adi, "Odpowiedni_Waypoint");


"Odpowiedni_Waypoint" oczywiście zastępujesz tym, gdzie się ma pojawić.
 
"Never trust a bartender with bad grammar." - Kyle Katarn

maciejh

maciejh

Rzeka
posty779
Propsy258
ProfesjaScenarzysta
  • Rzeka
Aby postać była po włączeniu musisz zreparsować skrypty.
 

Cezar

Cezar

Użytkownicy
posty2
  • Użytkownicy
Cytat: nouwak link=topic=11257.msg108678#msg108678#msg108678#msg108678 date=1282755439
Co do dialogu, nie wiem, co może nie działać, skoro dałeś OU. Natomiast żeby NPC się pokazywał w startup.d dopisujesz:

WldInsertNPC (ZZZ_5000_Adi, "Odpowiedni_Waypoint");


"Odpowiedni_Waypoint" oczywiście zastępujesz tym, gdzie się ma pojawić.
To chyba coś nie tak z grą, bo ściągnąłem skrypty Czipa17, tzn. te, ktore robił w swoim filmiku. One nie działają, choć jeszcze kilka dni temu zrobiłem wszystko było w porządku.
 

MrAntananarywa

MrAntananarywa

Użytkownicy
posty3
  • Użytkownicy
czasem reinstal to jedyna możliwa opcja. możesz zacząć od ponownej instalacji GMDK, a jak nie podziała spróbować wgrać od nowa calego gothica
 

BlackVampire

BlackVampire

Użytkownicy
posty59
Propsy5
ProfesjaGracz
  • Użytkownicy
Nie musisz nic reinstalować. Poprostu źle zreparsowałeś skrypty (innej możliwości nie ma). Sprubuj tak:
1.Usuń pliki Ou.bin i Ou.csl.
2.Uruchom GothicModStarter (lub jakoś tak).
3.Zaznacz po prawej stronie opcję reparse script lub skripte parsen (w zależności od języka playerkita jest różnie).
4.Przesuń suwak zspy na prawo do końca (aby uruchomiał program zspy i pokazywał w nim błędy.
5.Wciśnij przycisk start editor lub Editor Starten.
6.Teraz spacer będzie się uruchomiał (jeżeli nie pokaże błędów to skrypty masz dobrze napisane).
7.W spacerze pokażą się takie dwa pski narzędzi pionowy i poziomy.
8.Na poziomym zaznacz Toggles OutputUnits- Window (taki przycisk z książką).
9.Rozwińokienko o tytule output units
10.Wciśnij przycisk Updaate (lewy dolny róg w okienku output units).
11.Gdy wczyta wszystkie do listy bez błędów wciśnij save.
12.Zamknij spacer uruchom grę i sprawdź.
 


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