G2 NK NPC działa, ale dialogu nie ma. 2371 3

O temacie

Autor O Z I

Zaczęty 21.10.2010 roku

Wyświetleń 2371

Odpowiedzi 3

O Z I

O Z I

Użytkownicy
posty15
  • Użytkownicy
Witam, z tej strony Oskar,

zrobiłem skrypt nowej broni, NPC i jego dialogów z pierwszym prostym questem, na podstawie tutoriala dobrze znanego z YT. Pod tytułem 'Gothic 2 Tworzenie modów od A do Z.'

Spacer pokazał kilka błędów, okazało się, że w poradniku był błąd, bo brakowało znaku "_" w pewnej części skryptu NPC ale to naprawiłem. Zostało kilka innych błędów w plikach dialogu, lecz nie umiem ich naprawić. Mój 1 NPC działa, wpisałem go do pliku startup, nosi nową broń, lecz z opcji dialogowej ma tylko KONIEC. Resztę które dodałem do skryptu w spacerze pokazywało błędy (SIEMA,ZADANIE,BROWAR) i nie działają te opcje dialogowe. Co może być źle? Było jeszcze kilka innych błędów nie wiem z jakiej racji ale nie mają na to chyba wpływu.


//*********************************************************************
// Info EXIT
//*********************************************************************
INSTANCE DIA_SLD_888_Wiechu_EXIT   (C_INFO)
{
npc         = SLD_888_Wiechu;
nr          = 999;
condition   = DIA_SLD_888_Wiechu_EXIT_Condition;
information = DIA_SLD_888_Wiechu_EXIT_Info;
permanent   = TRUE;
description = DIALOG_ENDE;
};

FUNC INT DIA_SLD_888_Wiechu_EXIT_Condition()
{
return TRUE;
};

FUNC VOID DIA_SLD_888_Wiechu_EXIT_Info()
{
AI_StopProcessInfos (self);
};

//*********************************************************************
// Info Hello
//*********************************************************************
INSTANCE DIA_SLD_888_Wiechu_siema   (C_INFO)
{
npc         = SLD_888_Wiechu_siema;
nr          = 1;
condition   = DIA_SLD_888_Wiechu_siema_Condition;
information = DIA_SLD_888_Wiechu_siema_Info;
permanent   = FALSE;
description = "Co słychać?";
};

FUNC INT DIA_SLD_888_Wiechu_siema_Condition()
{
return TRUE;
};

FUNC VOID DIA_SLD_888_Wiechu_siema_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Wiechu_siema_15_00"); //Co słychać?
AI_Output (self ,other,"DIA_SLD_888_Wiechu_siema_55_01"); //Umieram...


};

//*********************************************************************
// Zadanie
//*********************************************************************
INSTANCE DIA_SLD_888_Wiechu_zadanie   (C_INFO)
{
npc         = SLD_888_Wiechu_zadanie;
nr          = 1;
condition   = DIA_SLD_888_Wiechu_zadanie_Condition;
information = DIA_SLD_888_Wiechu_zadanie_Info;
permanent   = FALSE;
description = "Umierasz?";
};

FUNC INT DIA_SLD_888_Wiechu_zadanie_Condition()
{
if (npc_knowsinfo (other, DIA_SLD_888_Wiechu_Siema))
{
return TRUE;
};
};

FUNC VOID DIA_SLD_888_Wiechu_zadanie_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Wiechu_zadanie_15_00"); //Jak to umierasz?
AI_Output (self ,other,"DIA_SLD_888_Wiechu_zadanie_55_01"); //Umieram, bo od jakiś 10 min nie piłem żadnego browara i nie mam wystarczająco dużo sił by dojść do tawerny,a w okolicy nie ma żadnego sklepu gdzie mógłbym kupić jakiegoś browca.
AI_Output (self ,other,"DIA_SLD_888_Wiechu_zadanie_55_02"); //Jeżeli mógłbyś przynieść mi jakiegoś browca byłbym Ci dozgonnie wdzięczny!

Log_CreateTopic (TOPIC_piwko, LOG_MISSION); Log_SetTopicStatus (TOPIC_piwko, LOG_RUNNING);
B_LogEntry (TOPIC_piwko, "Wiesław potrzebuje piwa.");
};

//*********************************************************************
// Koniec zadania
//*********************************************************************
INSTANCE DIA_SLD_888_Wiechu_browar   (C_INFO)
{
npc         = SLD_888_Wiechu_browar;
nr          = 1;
condition   = DIA_SLD_888_Wiechu_browar_Condition;
information = DIA_SLD_888_Wiechu_browar_Info;
permanent   = FALSE;
description = "Mam browara";
};

FUNC INT DIA_SLD_888_Wiechu_browar_Condition()
{
if (npc_knowsinfo (other, DIA_SLD_888_Wiechu_zadanie))
&& (npc_hasitems (other, itfo_beer) >=1)
{
return TRUE;
};
};

FUNC VOID DIA_SLD_888_Wiechu_browar_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Wiechu_browar_15_00"); //Mam piwo.
AI_Output (self ,other,"DIA_SLD_888_Wiechu_browar_55_01"); //Bożesz Ty mój! Chłopie! Ratujesz mi życie!
AI_Output (self ,other,"DIA_SLD_888_Wiechu_browar_55_02"); //Naprawdę wielkie dzięki! Weź te kilka złociszy w nagrodę przyjacielu!

B_giveinvitems (other, self, itfo_beer, 1);
Createinvitems (self, itmi_gold 150);
B_giveinvitems (self, other, itmi_gold, 150);
B_LogEntry (TOPIC_piwko, "Dałem Wiechowi piwo.");
Log_SetTopicStatus (TOPIC_piwko, LOG_SUCCESS);
};



To są moje początki, zacząłem od wczoraj i to jest już 4 próba, w połowie udana (nareszcie ;]) :naughty:  



I jeszcze jedno pytanie, skąd wziąć te wszystkie nazwy do pisania ręcznego modów tzn. nazwy przedmiotów do ekwipunku, zbroi, rutyn do wykonywania, twarzy, nazwy w stylu 2HD_SWD tylko, że dla łuków, kuszy itp.?

Pozdrawiam i zarazem dzień dobry ;] to mój pierwszy post.
 

Tomaj

Tomaj

Użytkownicy
posty107
Propsy13
  • Użytkownicy
Nie wiem czy to jest przyczyną problemów, ale napewno jest błąd w linijce
Createinvitems (self, itmi_gold 150);
musi być przecinek pomiędzy itmi_gold a 150: Createinvitems (self, itmi_gold, 150);
Z tego co widze to reszta skryptu jest chyba dobrze.
Co do tych itemów to poszukaj tutaj:
\_Work\data\Scripts\content\Items
nie wiem czy o to ci chodziło.
 

O Z I

O Z I

Użytkownicy
posty15
  • Użytkownicy
Cytat: Tomaj link=topic=11718.msg115512#msg115512#msg115512#msg115512 date=1287691903
Nie wiem czy to jest przyczyną problemów, ale napewno jest błąd w linijce
Createinvitems (self, itmi_gold 150);
musi być przecinek pomiędzy itmi_gold a 150: Createinvitems (self, itmi_gold, 150);
Z tego co widze to reszta skryptu jest chyba dobrze.
Co do tych itemów to poszukaj tutaj:
\_Work\data\Scripts\content\Items
nie wiem czy o to ci chodziło.


Co do tych nazw przedmiotów to po nie kąt o to mi chodziło. A co z tymi rutynami NPC? Gdzie je znajdę w raz z tłumaczeniem na polski?

Co do skryptu dialogu, wygląda teraz tak: (Zmieniłem jeszcze imię w międzyczasie)

//*********************************************************************
// Info EXIT
//*********************************************************************
INSTANCE DIA_SLD_888_Yurishi_EXIT   (C_INFO)
{
npc         = SLD_888_Yurishi;
nr          = 999;
condition   = DIA_SLD_888_Yurishi_EXIT_Condition;
information = DIA_SLD_888_Yurishi_EXIT_Info;
permanent   = TRUE;
description = DIALOG_ENDE;
};

FUNC INT DIA_SLD_888_Yurishi_EXIT_Condition()
{
return TRUE;
};

FUNC VOID DIA_SLD_888_Yurishi_EXIT_Info()
{
AI_StopProcessInfos (self);
};

//*********************************************************************
// Info Hello
//*********************************************************************
INSTANCE DIA_SLD_888_Yurishi_siema   (C_INFO)
{
npc         = SLD_888_Yurishi_siema;
nr          = 1;
condition   = DIA_SLD_888_Yurishi_siema_Condition;
information = DIA_SLD_888_Yurishi_siema_Info;
permanent   = FALSE;
description = "Co słychać?";
};

FUNC INT DIA_SLD_888_Yurishi_siema_Condition()
{
return TRUE;
};

FUNC VOID DIA_SLD_888_Yurishi_siema_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Yurishi_siema_15_00"); //Co słychać?
AI_Output (self ,other,"DIA_SLD_888_Yurishi_siema_55_01"); //Umieram...


};

//*********************************************************************
// Zadanie
//*********************************************************************
INSTANCE DIA_SLD_888_Yurishi_zadanie   (C_INFO)
{
npc         = SLD_888_Yurishi_zadanie;
nr          = 1;
condition   = DIA_SLD_888_Yurishi_zadanie_Condition;
information = DIA_SLD_888_Yurishi_zadanie_Info;
permanent   = FALSE;
description = "Umierasz?";
};

FUNC INT DIA_SLD_888_Yurishi_zadanie_Condition()
{
if (npc_knowsinfo (other, DIA_SLD_888_Yurishi_Siema))
{
return TRUE;
};
};

FUNC VOID DIA_SLD_888_Yurishi_zadanie_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Yurishi_zadanie_15_00"); //Jak to umierasz?
AI_Output (self ,other,"DIA_SLD_888_Yurishi_zadanie_55_01"); //Umieram, bo od jakiś 10 min nie piłem żadnego browara i nie mam wystarczająco dużo sił by dojść do tawerny,a w okolicy nie ma żadnego sklepu gdzie mógłbym kupić jakiegoś browca.
AI_Output (self ,other,"DIA_SLD_888_Yurishi_zadanie_55_02"); //Jeżeli mógłbyś przynieść mi jakiegoś browca byłbym Ci dozgonnie wdzięczny!

Log_CreateTopic (TOPIC_piwko, LOG_MISSION); Log_SetTopicStatus (TOPIC_piwko, LOG_RUNNING);
B_LogEntry (TOPIC_piwko, "Wiesław potrzebuje piwa.");
};

//*********************************************************************
// Koniec zadania
//*********************************************************************
INSTANCE DIA_SLD_888_Yurishi_browar   (C_INFO)
{
npc         = SLD_888_Yurishi_browar;
nr          = 1;
condition   = DIA_SLD_888_Yurishi_browar_Condition;
information = DIA_SLD_888_Yurishi_browar_Info;
permanent   = FALSE;
description = "Mam browara";
};

FUNC INT DIA_SLD_888_Yurishi_browar_Condition()
{
if (npc_knowsinfo (other, DIA_SLD_888_Yurishi_zadanie))
&& (npc_hasitems (other, itfo_beer) >=1)
{
return TRUE;
};
};

FUNC VOID DIA_SLD_888_Yurishi_browar_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Yurishi_browar_15_00"); //Mam piwo.
AI_Output (self ,other,"DIA_SLD_888_Yurishi_browar_55_01"); //Bożesz Ty mój! Chłopie! Ratujesz mi życie!
AI_Output (self ,other,"DIA_SLD_888_Yurishi_browar_55_02"); //Naprawdę wielkie dzięki! Weź te kilka złociszy w nagrodę przyjacielu!

B_giveinvitems (other, self, itfo_beer, 1);
Createinvitems (self, itmi_gold, 150);
B_giveinvitems (self, other, itmi_gold, 150);
B_LogEntry (TOPIC_piwko, "Dałem Wiechowi piwo.");
Log_SetTopicStatus (TOPIC_piwko, LOG_SUCCESS);
};

Ale niestety dalej mam ten sam problem, przy sprawdzaniu spacerem wyskakują po kolei:

U:PAR Redefined identier: RTN_START_900 (line 40)

U:PAR: \_WORK\DATA\SCRIPTS\CONTENT\ITEMS\IT_ADDONS_WEAPONS.D: Unknown identier: ATR_STRENGHT

U:PAR: \_WORK\DATA\SCRIPTS\CONTENT\STORY\DIALOGE\DIA_SLD_888_YURISHI.D Unknown identier: SLD_888_YURISHI_SIEMA


U:PAR: \_WORK\DATA\SCRIPTS\CONTENT\STORY\DIALOGE\DIA_SLD_888_YURISHI.D Unknown identier: SLD_888_YURISHI_ZADANIE


U:PAR: \_WORK\DATA\SCRIPTS\CONTENT\STORY\DIALOGE\DIA_SLD_888_YURISHI.D Unknown identier: SLD_888_YURISHI_BROWAR

Nie wiem od czego jest ten pierwszy błąd. Bo ten drugi na 100% od nowej broni wklejam jakby co skrypt dodany w IT_ADDONS_WEAPONS.D

INSTANCE ItMw_Addon_naszakosa (C_Item)
{
name = "Kosa";  

mainflag = ITEM_KAT_NF;
flags = ITEM_2HD_SWD|ITEM_MISSION;
material = MAT_METAL;

value = 1000;

damageTotal   = 120;
damagetype = DAM_EDGE;
range     =   110;

cond_atr[2]   = ATR_STRENGHT;
cond_value[2]   = 100;
visual = "ItMw_065_1h_sword_bastard_03.3DS";

description = name;
TEXT[1] = "Ta broń ładnie kosi";
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Str_needed; COUNT[3] = cond_value[2];
TEXT[4] = NAME_TwoHanded;
TEXT[5] = NAME_Value; COUNT[5] = value;
};

Zauważyłem, że coś z tą bronią jest jednak nie tak bo niby w info pisze, że wymaga 100 siły tak jak wpisałem ale jak zinsertowałem ją na bezim to mogłem ją założyć mająć 10 siły? ;/.

No i co z tymi pozostałymi błędami?




**********************************************************************
EDIT: SKRYPT NAPISAŁEM OD NOWA Z ZAPOŻYCZONYM SZKIELETEM I TERAZ WSIO DZIAŁA ;]

MOŻNA ZAMKNĄĆ...
 

maciejh

maciejh

Rzeka
posty779
Propsy258
ProfesjaScenarzysta
  • Rzeka
Rutyny znajdziesz w \_Work\Data\Scripts\Content\AI\Human plik Ta
 


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