Dialog - co za co odpowiada? 3497 8

O temacie

Autor greex

Zaczęty 1.05.2012 roku

Wyświetleń 3497

Odpowiedzi 8

greex

greex

Użytkownicy
posty96
Propsy14
  • Użytkownicy
Cześć. Mam prośbę - jeżeli ktoś z was znajdzie chwilkę czasu może mi z poniższego dialogu napisać linijki, które odpowiadają za:

1. To, że po zakończeniu kwestii wracamy do "menu dialogu", a nie wychodzimy z dialogu.
2. To, że niektóre kwestie dostępne są dopiero po wykonaniu pierwszej kwestii. Np. "Jak leci?" jest widoczne dopiero po wybraniu "Kim jesteś?".

Bardziej zrozumiem jeżeli zobaczę to na przykładzie.

///////////////////////////////////////////////////////////////////////
// Info EXIT
///////////////////////////////////////////////////////////////////////
INSTANCE DIA_Fenia_EXIT   (C_INFO)
{
npc         = VLK_476_Fenia;
nr          = 999;
condition   = DIA_Fenia_EXIT_Condition;
information = DIA_Fenia_EXIT_Info;
permanent   = TRUE;
description = DIALOG_ENDE;
};

FUNC INT DIA_Fenia_EXIT_Condition()
{
return TRUE;
};

FUNC VOID DIA_Fenia_EXIT_Info()
{
if (hero.guild == GIL_PAL)
{
AI_Output (self, other, "DIA_Fenia_EXIT_17_00"); //Miłego dnia, panie paladynie.
};

if (hero.guild == GIL_KDF)
{
AI_Output (self, other, "DIA_Fenia_EXIT_17_01"); //Bezpiecznej podróży, wielki magu.
};

AI_StopProcessInfos (self);
};
 // ************************************************************
//   PICK POCKET
// ************************************************************

INSTANCE DIA_Fenia_PICKPOCKET (C_INFO)
{
npc = VLK_476_Fenia;
nr = 900;
condition = DIA_Fenia_PICKPOCKET_Condition;
information = DIA_Fenia_PICKPOCKET_Info;
permanent = TRUE;
description = Pickpocket_60_Female;
};                      

FUNC INT DIA_Fenia_PICKPOCKET_Condition()
{
C_Beklauen (50, 75);
};
 
FUNC VOID DIA_Fenia_PICKPOCKET_Info()
{
Info_ClearChoices (DIA_Fenia_PICKPOCKET);
Info_AddChoice (DIA_Fenia_PICKPOCKET, DIALOG_BACK ,DIA_Fenia_PICKPOCKET_BACK);
Info_AddChoice (DIA_Fenia_PICKPOCKET, DIALOG_PICKPOCKET ,DIA_Fenia_PICKPOCKET_DoIt);
};

func void DIA_Fenia_PICKPOCKET_DoIt()
{
B_Beklauen ();
Info_ClearChoices (DIA_Fenia_PICKPOCKET);
};

func void DIA_Fenia_PICKPOCKET_BACK()
{
Info_ClearChoices (DIA_Fenia_PICKPOCKET);
};
///////////////////////////////////////////////////////////////////////
// Info Hallo
///////////////////////////////////////////////////////////////////////
INSTANCE DIA_Fenia_Hallo   (C_INFO)
{
npc         = VLK_476_Fenia;
nr          = 3;
condition   = DIA_Fenia_Hallo_Condition;
information = DIA_Fenia_Hallo_Info;
important = TRUE;
};

FUNC INT DIA_Fenia_Hallo_Condition()
{
if (Npc_IsInState (self,ZS_Talk))
{
return TRUE;
};
};

FUNC VOID DIA_Fenia_Hallo_Info()
{
if (hero.guild == GIL_NONE)
{
AI_Output (self, other, "DIA_Fenia_Hallo_17_00"); //Wyglądasz na strasznie zmęczonego. Chyba długo nie spałeś, prawda?
AI_Output (other, self, "DIA_Fenia_Hallo_15_01"); //Zbyt długo, zdecydowanie zbyt długo.
};
AI_Output (self, other, "DIA_Fenia_Hallo_17_02"); //Chodź, podejdź bliżej. U mnie znajdziesz to, czego ci potrzeba!

Log_CreateTopic (Topic_CityTrader,LOG_NOTE);
B_LogEntry (Topic_CityTrader,"Fenia sprzedaje jedzenie przy drodze do portu.");
};


///////////////////////////////////////////////////////////////////////
// Info Handeln
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_HANDELN (C_INFO)
{
npc = VLK_476_Fenia;
nr = 10;
condition = DIA_Fenia_HANDELN_Condition;
information = DIA_Fenia_HANDELN_Info;
permanent = TRUE;
trade = TRUE;
description = "Pokaż mi swoje towary.";
};

func int DIA_Fenia_HANDELN_Condition ()
{
if Npc_KnowsInfo (hero,DIA_Fenia_HALLO)
{
return TRUE;
};
};
func void DIA_Fenia_HANDELN_Info ()
{
B_GiveTradeInv (self);
AI_Output (other, self, "DIA_Fenia_HANDELN_15_00"); //Pokaż mi swoje towary.
};

///////////////////////////////////////////////////////////////////////
// Info Infos
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_Infos (C_INFO)
{
npc = VLK_476_Fenia;
nr = 10;
condition = DIA_Fenia_Infos_Condition;
information = DIA_Fenia_Infos_Info;
permanent =  FALSE;
description = "Powiedziałaś, że masz wszystko... Czy to dotyczy również informacji?";
};

func int DIA_Fenia_Infos_Condition ()
{
if Npc_KnowsInfo (hero,DIA_Fenia_HALLO)
{
return TRUE;
};
};
func void DIA_Fenia_Infos_Info ()
{
AI_Output (other, self, "DIA_Fenia_Infos_15_00"); //Powiedziałaś, że masz wszystko... Czy to dotyczy również informacji?
AI_Output (self, other, "DIA_Fenia_Infos_17_01"); //Ależ oczywiście! A co cię interesuje?
};

///////////////////////////////////////////////////////////////////////
// MoreTraders
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_MoreTraders (C_INFO)
{
npc = VLK_476_Fenia;
nr = 11;
condition = DIA_Fenia_MoreTraders_Condition;
information = DIA_Fenia_MoreTraders_Info;
permanent = FALSE;
description = "Czy tu, w porcie, są jeszcze jacyś inni handlarze?";
};

func int DIA_Fenia_MoreTraders_Condition ()
{
if (Npc_KnowsInfo (other, DIA_Fenia_Infos))
{
return TRUE;
};
};
func void DIA_Fenia_MoreTraders_Info ()
{
AI_Output (other, self, "DIA_Fenia_Infos_haendler_15_00"); //Czy tu, w porcie, są jeszcze jacyś inni handlarze?
AI_Output (self, other, "DIA_Fenia_Infos_haendler_17_01"); //Trzymaj się lewej strony nabrzeża, a spotkasz Halvora, mojego męża. Sprzedaje ryby.
AI_Output (self, other, "DIA_Fenia_Infos_haendler_17_02"); //Po drugiej stronie znajdziesz Brahima, kartografa.
};

///////////////////////////////////////////////////////////////////////
// OV
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_OV (C_INFO)
{
npc = VLK_476_Fenia;
nr = 13;
condition = DIA_Fenia_OV_Condition;
information = DIA_Fenia_OV_Info;
permanent = FALSE;
description = "Znasz kogoś z górnego miasta?";
};

func int DIA_Fenia_OV_Condition ()
{
if (Npc_KnowsInfo (other, DIA_Fenia_Infos))
&& (other.guild == GIL_NONE)
{
return TRUE;
};
};
func void DIA_Fenia_OV_Info ()
{
AI_Output (other, self, "DIA_Fenia_Infos_oberesViertel_15_00"); //Znasz kogoś z górnego miasta?
AI_Output (self, other, "DIA_Fenia_Infos_oberesViertel_17_01"); //Gdybym znała kogoś stamtąd, na pewno byś mnie tu nie znalazł, chłopcze.
};

///////////////////////////////////////////////////////////////////////
// Hafen
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_Interesting (C_INFO)
{
npc = VLK_476_Fenia;
nr = 14;
condition = DIA_Fenia_Interesting_Condition;
information = DIA_Fenia_Interesting_Info;
permanent = FALSE;
description = "Co ciekawego można znaleźć w okolicach portu?";
};

func int DIA_Fenia_Interesting_Condition ()
{
if (Npc_KnowsInfo (other, DIA_Fenia_Infos))
{
return TRUE;
};
};
func void DIA_Fenia_Interesting_Info ()
{
AI_Output (other, self, "DIA_Fenia_Infos_interessantes_15_00"); //Co ciekawego można znaleźć w okolicach portu?
AI_Output (self, other, "DIA_Fenia_Infos_interessantes_17_01"); //Jeśli szukasz mocnych wrażeń, udaj się do knajpy Kardifa na nabrzeżu. Tam zawsze coś się dzieje.
AI_Output (self, other, "DIA_Fenia_Infos_interessantes_17_02"); //Nie sposób tam nie trafić. Przed wejściem stoi facet, który z pewnością przykuje twoją uwagę.
AI_Output (self, other, "DIA_Fenia_Infos_interessantes_17_03"); //Poza tym jest też wielki okręt paladynów. Warto go zobaczyć!
AI_Output (self, other, "DIA_Fenia_Infos_interessantes_17_04"); //Nietrudno tam trafić. Trzymaj się tylko lewej strony nabrzeża, a potem przejdź pod wielką kamienną twarzą.
};

///////////////////////////////////////////////////////////////////////
// Hafen
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_Aufregend (C_INFO)
{
npc = VLK_476_Fenia;
nr = 15;
condition = DIA_Fenia_Aufregend_Condition;
information = DIA_Fenia_Aufregend_Info;
permanent = FALSE;
description = "Czy ostatnio wydarzyło się tu coś niezwykłego?";
};

func int DIA_Fenia_Aufregend_Condition ()
{
if (Npc_KnowsInfo (other, DIA_Fenia_Infos))
{
return TRUE;
};
};
func void DIA_Fenia_Aufregend_Info ()
{
AI_Output (other, self, "DIA_Fenia_Add_15_00"); //Czy ostatnio wydarzyło się tu coś niezwykłego?
AI_Output (self, other, "DIA_Fenia_Add_17_01"); //Można tak powiedzieć. To nie było dawno temu.
AI_Output (self, other, "DIA_Fenia_Add_17_02"); //Uciekał tędy złodziej. Najwyraźniej ukradł łuk w dolnej części miasta.
AI_Output (self, other, "DIA_Fenia_Add_17_03"); //Oczywiście, straż przybyła jak zwykle za późno.
AI_Output (self, other, "DIA_Fenia_Add_17_04"); //Uciekł im bez problemu - po prostu wskoczył do wody i tyle go widzieli.
};


Oprócz tego mam pytania, ale nie chcę robić kolejnego tematu:

1. Jak zrobić, by kupcom co rozdział resetował się towar?
2. Jak zrobić, by dana kwestia była dostęna tylko w danym rozdziale?
3. Czy tworząc Questa muszę coś jeszcze edytować oprócz plików dialogowych postaci, których quest dotyczy?

Z góry dzięki :P
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Masz od tego tutoriale, zacznij je czytać.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh

Toworish

Dialog - co za co odpowiada?
#2 2012-05-03, 01:00(Ostatnia zmiana: 2012-05-03, 01:17)
Cześć. Mam prośbę - jeżeli ktoś z was znajdzie chwilkę czasu może mi z poniższego dialogu napisać linijki, które odpowiadają za:

1. To, że po zakończeniu kwestii wracamy do "menu dialogu", a nie wychodzimy z dialogu.
2. To, że niektóre kwestie dostępne są dopiero po wykonaniu pierwszej kwestii. Np. "Jak leci?" jest widoczne dopiero po wybraniu "Kim jesteś?".

Bardziej zrozumiem jeżeli zobaczę to na przykładzie.

///////////////////////////////////////////////////////////////////////
// Info EXIT
///////////////////////////////////////////////////////////////////////
INSTANCE DIA_Fenia_EXIT   (C_INFO)
{
npc         = VLK_476_Fenia;
nr          = 999;
condition   = DIA_Fenia_EXIT_Condition;
information = DIA_Fenia_EXIT_Info;
permanent   = TRUE;
description = DIALOG_ENDE;
};

FUNC INT DIA_Fenia_EXIT_Condition()
{
return TRUE;
};

FUNC VOID DIA_Fenia_EXIT_Info()
{
if (hero.guild == GIL_PAL)
{
AI_Output (self, other, "DIA_Fenia_EXIT_17_00"); //Miłego dnia, panie paladynie.
};

if (hero.guild == GIL_KDF)
{
AI_Output (self, other, "DIA_Fenia_EXIT_17_01"); //Bezpiecznej podróży, wielki magu.
};

AI_StopProcessInfos (self);
};
 // ************************************************************
//   PICK POCKET
// ************************************************************

INSTANCE DIA_Fenia_PICKPOCKET (C_INFO)
{
npc = VLK_476_Fenia;
nr = 900;
condition = DIA_Fenia_PICKPOCKET_Condition;
information = DIA_Fenia_PICKPOCKET_Info;
permanent = TRUE;
description = Pickpocket_60_Female;
};                      

FUNC INT DIA_Fenia_PICKPOCKET_Condition()
{
C_Beklauen (50, 75);
};
 
FUNC VOID DIA_Fenia_PICKPOCKET_Info()
{
Info_ClearChoices (DIA_Fenia_PICKPOCKET);
Info_AddChoice (DIA_Fenia_PICKPOCKET, DIALOG_BACK ,DIA_Fenia_PICKPOCKET_BACK);
Info_AddChoice (DIA_Fenia_PICKPOCKET, DIALOG_PICKPOCKET ,DIA_Fenia_PICKPOCKET_DoIt);
};

func void DIA_Fenia_PICKPOCKET_DoIt()
{
B_Beklauen ();
Info_ClearChoices (DIA_Fenia_PICKPOCKET);
};

func void DIA_Fenia_PICKPOCKET_BACK()
{
Info_ClearChoices (DIA_Fenia_PICKPOCKET);
};
///////////////////////////////////////////////////////////////////////
// Info Hallo
///////////////////////////////////////////////////////////////////////
INSTANCE DIA_Fenia_Hallo   (C_INFO)
{
npc         = VLK_476_Fenia;
nr          = 3;
condition   = DIA_Fenia_Hallo_Condition;
information = DIA_Fenia_Hallo_Info;
important = TRUE;
};

FUNC INT DIA_Fenia_Hallo_Condition()
{
if (Npc_IsInState (self,ZS_Talk))
{
return TRUE;
};
};

FUNC VOID DIA_Fenia_Hallo_Info()
{
if (hero.guild == GIL_NONE)
{
AI_Output (self, other, "DIA_Fenia_Hallo_17_00"); //Wyglądasz na strasznie zmęczonego. Chyba długo nie spałeś, prawda?
AI_Output (other, self, "DIA_Fenia_Hallo_15_01"); //Zbyt długo, zdecydowanie zbyt długo.
};
AI_Output (self, other, "DIA_Fenia_Hallo_17_02"); //Chodź, podejdź bliżej. U mnie znajdziesz to, czego ci potrzeba!

Log_CreateTopic (Topic_CityTrader,LOG_NOTE);
B_LogEntry (Topic_CityTrader,"Fenia sprzedaje jedzenie przy drodze do portu.");
};


///////////////////////////////////////////////////////////////////////
// Info Handeln
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_HANDELN (C_INFO)
{
npc = VLK_476_Fenia;
nr = 10;
condition = DIA_Fenia_HANDELN_Condition;
information = DIA_Fenia_HANDELN_Info;
permanent = TRUE;
trade = TRUE;
description = "Pokaż mi swoje towary.";
};

func int DIA_Fenia_HANDELN_Condition ()
{
if Npc_KnowsInfo (hero,DIA_Fenia_HALLO)
{
return TRUE;
};
};
func void DIA_Fenia_HANDELN_Info ()
{
B_GiveTradeInv (self);
AI_Output (other, self, "DIA_Fenia_HANDELN_15_00"); //Pokaż mi swoje towary.
};

///////////////////////////////////////////////////////////////////////
// Info Infos
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_Infos (C_INFO)
{
npc = VLK_476_Fenia;
nr = 10;
condition = DIA_Fenia_Infos_Condition;
information = DIA_Fenia_Infos_Info;
permanent =  FALSE;
description = "Powiedziałaś, że masz wszystko... Czy to dotyczy również informacji?";
};

func int DIA_Fenia_Infos_Condition ()
{
if Npc_KnowsInfo (hero,DIA_Fenia_HALLO)
{
return TRUE;
};
};
func void DIA_Fenia_Infos_Info ()
{
AI_Output (other, self, "DIA_Fenia_Infos_15_00"); //Powiedziałaś, że masz wszystko... Czy to dotyczy również informacji?
AI_Output (self, other, "DIA_Fenia_Infos_17_01"); //Ależ oczywiście! A co cię interesuje?
};

///////////////////////////////////////////////////////////////////////
// MoreTraders
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_MoreTraders (C_INFO)
{
npc = VLK_476_Fenia;
nr = 11;
condition = DIA_Fenia_MoreTraders_Condition;
information = DIA_Fenia_MoreTraders_Info;
permanent = FALSE;
description = "Czy tu, w porcie, są jeszcze jacyś inni handlarze?";
};

func int DIA_Fenia_MoreTraders_Condition ()
{
if (Npc_KnowsInfo (other, DIA_Fenia_Infos))
{
return TRUE;
};
};
func void DIA_Fenia_MoreTraders_Info ()
{
AI_Output (other, self, "DIA_Fenia_Infos_haendler_15_00"); //Czy tu, w porcie, są jeszcze jacyś inni handlarze?
AI_Output (self, other, "DIA_Fenia_Infos_haendler_17_01"); //Trzymaj się lewej strony nabrzeża, a spotkasz Halvora, mojego męża. Sprzedaje ryby.
AI_Output (self, other, "DIA_Fenia_Infos_haendler_17_02"); //Po drugiej stronie znajdziesz Brahima, kartografa.
};

///////////////////////////////////////////////////////////////////////
// OV
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_OV (C_INFO)
{
npc = VLK_476_Fenia;
nr = 13;
condition = DIA_Fenia_OV_Condition;
information = DIA_Fenia_OV_Info;
permanent = FALSE;
description = "Znasz kogoś z górnego miasta?";
};

func int DIA_Fenia_OV_Condition ()
{
if (Npc_KnowsInfo (other, DIA_Fenia_Infos))
&& (other.guild == GIL_NONE)
{
return TRUE;
};
};
func void DIA_Fenia_OV_Info ()
{
AI_Output (other, self, "DIA_Fenia_Infos_oberesViertel_15_00"); //Znasz kogoś z górnego miasta?
AI_Output (self, other, "DIA_Fenia_Infos_oberesViertel_17_01"); //Gdybym znała kogoś stamtąd, na pewno byś mnie tu nie znalazł, chłopcze.
};

///////////////////////////////////////////////////////////////////////
// Hafen
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_Interesting (C_INFO)
{
npc = VLK_476_Fenia;
nr = 14;
condition = DIA_Fenia_Interesting_Condition;
information = DIA_Fenia_Interesting_Info;
permanent = FALSE;
description = "Co ciekawego można znaleźć w okolicach portu?";
};

func int DIA_Fenia_Interesting_Condition ()
{
if (Npc_KnowsInfo (other, DIA_Fenia_Infos))
{
return TRUE;
};
};
func void DIA_Fenia_Interesting_Info ()
{
AI_Output (other, self, "DIA_Fenia_Infos_interessantes_15_00"); //Co ciekawego można znaleźć w okolicach portu?
AI_Output (self, other, "DIA_Fenia_Infos_interessantes_17_01"); //Jeśli szukasz mocnych wrażeń, udaj się do knajpy Kardifa na nabrzeżu. Tam zawsze coś się dzieje.
AI_Output (self, other, "DIA_Fenia_Infos_interessantes_17_02"); //Nie sposób tam nie trafić. Przed wejściem stoi facet, który z pewnością przykuje twoją uwagę.
AI_Output (self, other, "DIA_Fenia_Infos_interessantes_17_03"); //Poza tym jest też wielki okręt paladynów. Warto go zobaczyć!
AI_Output (self, other, "DIA_Fenia_Infos_interessantes_17_04"); //Nietrudno tam trafić. Trzymaj się tylko lewej strony nabrzeża, a potem przejdź pod wielką kamienną twarzą.
};

///////////////////////////////////////////////////////////////////////
// Hafen
///////////////////////////////////////////////////////////////////////
instance DIA_Fenia_Aufregend (C_INFO)
{
npc = VLK_476_Fenia;
nr = 15;
condition = DIA_Fenia_Aufregend_Condition;
information = DIA_Fenia_Aufregend_Info;
permanent = FALSE;
description = "Czy ostatnio wydarzyło się tu coś niezwykłego?";
};

func int DIA_Fenia_Aufregend_Condition ()
{
if (Npc_KnowsInfo (other, DIA_Fenia_Infos))
{
return TRUE;
};
};
func void DIA_Fenia_Aufregend_Info ()
{
AI_Output (other, self, "DIA_Fenia_Add_15_00"); //Czy ostatnio wydarzyło się tu coś niezwykłego?
AI_Output (self, other, "DIA_Fenia_Add_17_01"); //Można tak powiedzieć. To nie było dawno temu.
AI_Output (self, other, "DIA_Fenia_Add_17_02"); //Uciekał tędy złodziej. Najwyraźniej ukradł łuk w dolnej części miasta.
AI_Output (self, other, "DIA_Fenia_Add_17_03"); //Oczywiście, straż przybyła jak zwykle za późno.
AI_Output (self, other, "DIA_Fenia_Add_17_04"); //Uciekł im bez problemu - po prostu wskoczył do wody i tyle go widzieli.
};


Oprócz tego mam pytania, ale nie chcę robić kolejnego tematu:

1. Jak zrobić, by kupcom co rozdział resetował się towar?
2. Jak zrobić, by dana kwestia była dostęna tylko w danym rozdziale?
3. Czy tworząc Questa muszę coś jeszcze edytować oprócz plików dialogowych postaci, których quest dotyczy?

Z góry dzięki :P

co do trzeciego to nie,nie musisz nic edytować,a co do drugiego to nie jestem na tyle doświadczony w tym ale jakoś to było że piszesz kapitel < 3 czyli że dana kwestia będzie dostępna od trzeciego rozdziału a > 3 znaczy że do trzeciego,ale niech się jeszcze chłopaki o tym wypowiedzą:)
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

HerrKlebstoff

HerrKlebstoff

Użytkownicy
posty165
Propsy48
Profesjabrak
  • Użytkownicy
Mylisz się, tawarisz.

Cytuj
1. Jak zrobić, by kupcom co rozdział resetował się towar?

Scripts/Content/Story/B_GiveTradeInv - tam masz wszystkie tego typu rzeczy związane z handlem - na ich podstawie mozesz zrobić własne.

Cytuj
2. Jak zrobić, by dana kwestia była dostęna tylko w danym rozdziale?

Tutaj jako przykład możesz wziąć pierwszy lepszy skrypt, gdzie takiego czegoś użyto. :-/ Na przykład:

if (Kapitel < 3) // Czyli tylko w 1 i 2
if (Kapitel > 3) // Po zakończeniu 3 rozdziału
if (Kapitel = 3) //Tylko w 3 rozdziale
if (Kapitel =< 3) // W trzecim i wcześniej(1 i 2)
etc.

Cytuj
3. Czy tworząc Questa muszę coś jeszcze edytować oprócz plików dialogowych postaci, których quest dotyczy?

Tak. Content/Story/Log_Entries.

Cytuj
2. To, że niektóre kwestie dostępne są dopiero po wykonaniu pierwszej kwestii. Np. "Jak leci?" jest widoczne dopiero po wybraniu "Kim jesteś?".

Np jeśli masz w dialogu opcje dialogową zapisana w ten sposób:
DIA_Fenia_MoreTraders
To ustalasz taki warunek:
  if (Npc_KnowsInfo (other, DIA_Fenia_MoreTraders))
Cytuj
1. To, że po zakończeniu kwestii wracamy do "menu dialogu", a nie wychodzimy z dialogu.

o ile dobrze pamiętam, to nic nie wstawiasz, jednak głowy nie dam. Albo po prostu zrób opcje "wróć" na podstawie innych dialogów...
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
INSTANCE DIA_Fenia_EXIT   (C_INFO)
{
        npc         = VLK_476_Fenia;
        nr          = 999;//miejsce na liście dialogów 999 to najdalsze miejsce dlatego dialog koniec jest zawsze na koncu spisu
        condition   = DIA_Fenia_EXIT_Condition;//funkcja która musi zwrócic TRUE zeby dialog był widoczny na spisie
        information = DIA_Fenia_EXIT_Info;//funkcja wykonująca się po wybraniu dialogu z listy
        permanent   = TRUE;//jesli true dialog dostępny bedzie mprzez całą gre
important   = FALSE;//jeśli true postać do nas sama zagada
trade    = FALSE;//jeśli true po dialogu otworzy się handel
        description = DIALOG_ENDE;//nazwa dialogu na liście
};

FUNC INT DIA_Fenia_EXIT_Condition()
{
        return TRUE;//wpisująć tu false możemy łatwo wyłączyć dialog
};

FUNC VOID DIA_Fenia_EXIT_Info()
{
        if (hero.guild == GIL_PAL)//jeżeli jesteśmy palladynem
        {
                AI_Output                       (self, other, "DIA_Fenia_EXIT_17_00"); //Miłego dnia, panie paladynie.
        };

        if (hero.guild == GIL_KDF)//jeżeli jesteśmy magiem ognia
        {
                AI_Output                       (self, other, "DIA_Fenia_EXIT_17_01"); //Bezpiecznej podróży, wielki magu.
        };
       
        AI_StopProcessInfos (self);//wychodzenie z dialogu jeśli nie damy tej linijki wyjdziemy do listy z dialogami.
};

w Condition dialogów możemy dawać różne warunki i dialog konca można by rozbić na 2 dialogi osobny dla palladyna osobny dla maga.
INSTANCE DIA_Fenia_EXIT   (C_INFO)
{
        npc         = VLK_476_Fenia;
        nr          = 999;
        condition   = DIA_Fenia_EXIT_Condition;
        information = DIA_Fenia_EXIT_Info;
        permanent   = TRUE;
        description = DIALOG_ENDE;
};

FUNC INT DIA_Fenia_EXIT_Condition()
{
        if (hero.guild == GIL_PAL)//dialog dostępny jeśli jesteśmy palladynem
        {
        return TRUE;
};
};

FUNC VOID DIA_Fenia_EXIT_Info()
{

        AI_Output                       (self, other, "DIA_Fenia_EXIT_17_00"); //Miłego dnia, panie paladynie.
        AI_StopProcessInfos (self);
};

INSTANCE DIA_Fenia_EXIT2   (C_INFO)
{
        npc         = VLK_476_Fenia;
        nr          = 999;
        condition   = DIA_Fenia_EXIT_Condition;
        information = DIA_Fenia_EXIT_Info;
        permanent   = TRUE;
        description = DIALOG_ENDE;
};

FUNC INT DIA_Fenia_EXIT2_Condition()
{
        if (hero.guild == GIL_KDF)//dialog dostępny jeśli jesteśmy magiem
        {
        return TRUE;
};
};

FUNC VOID DIA_Fenia_EXIT2_Info()
{

        AI_Output                       (self, other, "DIA_Fenia_EXIT_17_01"); //Bezpiecznej podróży, wielki magu.
        AI_StopProcessInfos (self);
};

możemy tam dawać w cholere warunków np. zamiast tych co podałem może być

if Npc_KnowsInfo (hero,DIA_Fenia_HALLO) // jeśli znamy dialog DIA_Fenia_HALLO

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Mylisz się, tawarisz.

Cytuj
1. Jak zrobić, by kupcom co rozdział resetował się towar?

Scripts/Content/Story/B_GiveTradeInv - tam masz wszystkie tego typu rzeczy związane z handlem - na ich podstawie mozesz zrobić własne.

Cytuj
2. Jak zrobić, by dana kwestia była dostęna tylko w danym rozdziale?

Tutaj jako przykład możesz wziąć pierwszy lepszy skrypt, gdzie takiego czegoś użyto. :-/ Na przykład:

if (Kapitel < 3) // Czyli tylko w 1 i 2
if (Kapitel > 3) // Po zakończeniu 3 rozdziału
if (Kapitel = 3) //Tylko w 3 rozdziale
if (Kapitel =< 3) // W trzecim i wcześniej(1 i 2)
etc.

Cytuj
3. Czy tworząc Questa muszę coś jeszcze edytować oprócz plików dialogowych postaci, których quest dotyczy?

Tak. Content/Story/Log_Entries.

Cytuj
2. To, że niektóre kwestie dostępne są dopiero po wykonaniu pierwszej kwestii. Np. "Jak leci?" jest widoczne dopiero po wybraniu "Kim jesteś?".

Np jeśli masz w dialogu opcje dialogową zapisana w ten sposób:
DIA_Fenia_MoreTraders
To ustalasz taki warunek:
  if (Npc_KnowsInfo (other, DIA_Fenia_MoreTraders))
Cytuj
1. To, że po zakończeniu kwestii wracamy do "menu dialogu", a nie wychodzimy z dialogu.

o ile dobrze pamiętam, to nic nie wstawiasz, jednak głowy nie dam. Albo po prostu zrób opcje "wróć" na podstawie innych dialogów...

a no tak faktycznie to przepraszam za wprowadzenie w błąd;]
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

greex

greex

Użytkownicy
posty96
Propsy14
  • Użytkownicy
Dzięki za pomoc, już to wszystko w miarę "ogarnąłem" - stworzyłem dwa questy, trzy rozbudowane dialogi i wszystko działa :)

Tym co odpowiedzieli Popsa dam jak będę mógł, bo aktualnie wykorzystałem limit :P

Jeszcze takie pytanie dotyczące itemów ( nie chcę robić specjalnie tematu ) - jak zrobić, by dany item pojawiał się dopiero wtedy gdy znaleźliśmy poprzedni? Tzn. tak jak Chromaniny w Gothic I - następny pojawiał się dopiero wtedy, gdy odnaleźliśmy poprzedni.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Jeszcze takie pytanie dotyczące itemów ( nie chcę robić specjalnie tematu ) - jak zrobić, by dany item pojawiał się dopiero wtedy gdy znaleźliśmy poprzedni? Tzn. tak jak Chromaniny w Gothic I - następny pojawiał się dopiero wtedy, gdy odnaleźliśmy poprzedni.

wydaje mi się ze chromaniny są zrobione tak ze jeśli przeczytasz książkę to razem z wyświetlaniem wykonuje się

Wld_InsertItem (instancja następnej książki, "WayPoint w danym świacie");

greex

greex

Użytkownicy
posty96
Propsy14
  • Użytkownicy
Chyba rzeczywiście tak jest ;) Zobaczyłem skrypt Gothica i pod np. 2 chromaninem jest:

if (riddle2 == FALSE)
{
B_GiveXP (300);
B_LogEntry (theriddle_log, "Znalazłem drugą księgę zatytułowaną Chromanin. Po raz kolejny - przedstawia sobą zagadkę... To, co kiedyś rozdzielono, zostanie znów połączone po bolesnej chwili rozłąki...");
Snd_Play ("FoundRiddlersBook");
Wld_InsertItem (theriddle3,"FP_SLEEP_OW_BLOODFLY_01_02");

riddle2  =  TRUE;

};
 


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