[PYTANIA] Tworzenie dialogów

Regulamin forum
Dział "Tworzenie Modyfikacji" służy do zadawania pytań odnośnie tworzenia modyfikacji, edytowania plików gry, oraz pisania tzw. tutoriali, czyli poradników odnośnie modyfikowania gry.
Nie zadajemy tutaj pytań odnośnie modyfikacji gotowych (nie dyskutujemy o nich!), prócz prób ich połączenia etc.


Przy cytowaniu plików *.LTX stosować tag [SYNTAX="ini"], przy cytowaniu plików *.script [SYNTAX="lua"] a przy cytowaniu plików *.xml - [SYNTAX="xml"].

[PYTANIA] Tworzenie dialogów

Postprzez kubekpop w 13 Cze 2011, 18:06

Witam. Szukam sposobu na dodanie nowego dialogu z handlarzem, oraz na dodanie do poszczególnych opcji dialogowych różnych funkcji, na przykład:
A-gracz B-handlarz
B-Witaj
A-Masz dla mnie jakiś sprzęt?
B-Mam. Tu masz spis przedmiotów
A-
[Tutaj będą dwie opcje do wyboru:]
1. AK74
2. LR300
I w zależności od tego, którą opcję wybiorę, ten przedmiot ma się pojawić w ekwipunku. Wiem jak to działa w istniejących dialogach z
Kod: Zaznacz wszystko
dialogs.relocate_item_section_to_actor(first_speaker, second_speaker,
lecz nie wiem, jak dodać to do nowych dialogów. Nie wiem w ogóle, jak dodać ten dialog do gry, a co dopiero przypisać do opcji dialogowych funkcje, więc... Jakieś pomysły?
Awatar użytkownika
kubekpop
Przewodnik

Posty: 956
Dołączenie: 05 Sty 2011, 20:56
Ostatnio był: 05 Lut 2020, 11:37
Miejscowość: Warszawa
Frakcja: Czyste Niebo
Ulubiona broń: UDP Compact
Kozaki: 160

Reklamy Google

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez Cromm Cruac w 14 Cze 2011, 13:02

tutek na prosty dialog do Cienia tutaj. W CN powinno być podobnie.
Jeśli chcesz przenosić przedmioty pomiędzy postaciami to dany NPC musi te przedmioty posiadać w ekwipunku.
Poza tym w dialogu musi znaleźć się wywołanie funkcji, która przedmioty przeniesie.

Poniżej przykład dialogu ze Żwawym z Zewu Prypeci (odmawiamy przyjęcia zamówionego przedmiotu):
Kod: Zaznacz wszystko
<phrase id="111311"> ; id zdania w dialogu
 <text>zat_b51_stalker_nimble_get_order_111311</text> ;id tekstu w st_dialogs_zaton.xml
 <action>dialogs_zaton.zat_b51_refuse_item</action> ; wywołana akcja - funkcja zat_b51_refuse_item w dialogs_zaton.script
 <disable_info>zat_b51_order_in_process</disable_info> ; skasowanie 'info', że złożono zamówienie
 <disable_info>zat_b51_order_ready</disable_info> ; skasowanie 'info', że zamówienie jest gotowe do odbioru
 <give_info>zat_b51_order_refused</give_info> ; ustawienie 'info', że odmówiliśmy odebrania przedmiotu.
 <next>1113111</next> ; id następnego zdania (phrase) w rozmowie
</phrase>


Oprócz tego mogą wystąpić tagi warunkowe:
Kod: Zaznacz wszystko
<has_info>zat_b51_told_about_item_2_2</has_info> ; sprawdzenie czy ustawiono 'info'
<dont_has_info>zat_b51_told_about_item_2_2</dont_has_info> ; sprawszenie czy dane 'info' nie jest ustawione (np. zostało skasowane przez <disable_info>)
<precondition>dialogs_zaton.zat_b51_refuse_item</precondition> ; wywołanie funkcji sprawdzającej czy np. postać ma coś w ekwipunku, jest ranna itp. (coś co wymaga użycia skryptu do sprawdzenia)

Spełnienie danego warunku oznacza,że zdanie pojawi się w dialogu podczas gry.

Oczywiście nie wszystko musi wystąpić w danym dialogu. Jeżeli dana postać zawsze posiada dany przedmiot to możesz opuścić wszystko oprócz <text><action> i <next>. Ale jeśli może dać ci przedmiot tylko raz to musisz dodać jakiś tag warunku (albo <precondition>sprawdź_czy_mam_dany_przedmiot</precondition> albo <dont_has_info>już_ci_to_dałem</dont_has_info>)
Image

"Twoja opowieść mnie znudziła albowiem nie była o mnie" - Król Julian

Za ten post Cromm Cruac otrzymał następujące punkty reputacji:
Positive kubekpop.
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2542
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 19 Wrz 2024, 22:19
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez kubekpop w 14 Cze 2011, 16:31

Dzięki. Będę próbował. Ale czy mógłby mi ktoś wyjaśnić, jak dodać to do dialogu z handlarzem, co w jakim pliku dopisać do dialogu, jak dodawać funkcje itp. tak, jakbyście tłumaczyli komuś, kto tego jeszcze nie robił (czyli mnie :E )? Bo ja ledwo ten tutorial rozumiem... I jeśli można, prosiłbym o przykłady z Czystego Nieba. Żeby nie było nieporozumień, dialog ma się pojawiać zawsze, za każdym razem dostajemy to, co opisałem w pierwszym poście. Gdyby taka opcja była w Czystym Niebie, to bym sobie poradził śledząc te dialogi, ale nie ma. Chyba, że ktoś by mi wyciągnął opcję dialogową i jej funkcję przy odbieraniu nagrody (Masz coś dla mnie?). Jeszcze będę szukał, ale pomocą nie pogardzę, bo dialogów i skryptów to nie rozumiem.
[EDIT]
Albo mam pomysł. Przeglądałem sobie różne pliki, i trochę załapałem o dodawaniu funkcji. Na razie proszę Was o podanie mi pliku(ów), gdzie znajdują się opcje dialogowe z handlarzem Czystego Nieba (te, które są dostępne zawsze) oraz ich lokalizację (odpowiednią część tego pliku). Ja się trochę nimi pobawię, spróbuję dodać nową frazę i dodać to do całości. Możecie mi pomóc?
Awatar użytkownika
kubekpop
Przewodnik

Posty: 956
Dołączenie: 05 Sty 2011, 20:56
Ostatnio był: 05 Lut 2020, 11:37
Miejscowość: Warszawa
Frakcja: Czyste Niebo
Ulubiona broń: UDP Compact
Kozaki: 160

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez The Witcher w 14 Cze 2011, 19:05

Prostą funkcję na dodanie przedmiotu napisz sobie samemu. Funkcje używane w dialogach masz w dialogs.script.

Możesz sobie tam dodać funkcję z dodaniem przedmiotu:

Kod: Zaznacz wszystko
function daj_przedmiot(first_speaker, second_speaker)
   dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "przedmiot_1")
        dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "przedmiot_2")
        dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "przedmiot_3")
end


Wtedy wystarczy w danej frazie dodać:

Kod: Zaznacz wszystko
<action>dialogs.daj_przedmiot</action>


I gra gitara.

Za ten post The Witcher otrzymał następujące punkty reputacji:
Positive kubekpop.
The Witcher
Legenda

Posty: 1176
Dołączenie: 31 Lip 2008, 09:03
Ostatnio był: 21 Wrz 2024, 08:22
Ulubiona broń: --
Kozaki: 329

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez kubekpop w 14 Cze 2011, 19:58

No i coś nie chce działać. W poszczególnych plikach mam tak:
st_dialogs_marsh:
Kod: Zaznacz wszystko
<string id="text_0">
              <text>Masz dla mnie jakiś sprzęt?</text>
 </string> 
 <string id="text_1">
              <text>Masz dla mnie jakiś sprzęt?</text>
           </string>
           <string id="text_2">
              <text>LR300</text>
           </string>
           <string id="text_3">
              <text>kałAcha.</text>
           </string>
           <string id="text_4"
           <text>Jasne. Co chcesz?</text>
           </string>

Character_desc_marsh:
Kod: Zaznacz wszystko
 <specific_character id="mar_csky_trader" team_default = "1">
    <name>mar_csky_trader_name</name>
    <icon>ui_npc_u_nebo_1</icon>
    <map_icon x="1" y="0"></map_icon>
    <bio></bio>

    <class>mar_csky_trader</class>
    <community>csky</community> <terrain_sect>stalker_terrain</terrain_sect>

    <rank>400</rank>
    <reputation>0</reputation>

   <money min="1000000" max="1000000" infinitive="1"/>

    <visual>actors\stalker_nebo\stalker_nebo_1</visual>
      <snd_config>characters_voice\human_01\csky\</snd_config>
    <supplies>
      [spawn] \n
      hand_radio \n
#include "gameplay\character_food.xml"
#include "gameplay\character_drugs.xml"
    </supplies>

#include "gameplay\character_criticals_1.xml"
    <start_dialog>mar_csky_trader_hello_dialog</start_dialog>
    <actor_dialog>tm_reward_task</actor_dialog>
    <actor_dialog>Dawaj</actor_dialog>
</specific_character>

dialogs_marsh:
Kod: Zaznacz wszystko
 <dialog id="Dawaj">
            <phrase_list>
                <phrase id="0">
                    <text>text_0</text>
                    <next>1</next>
                   
                </phrase>
                <phrase id="1">
                    <text>text_1</text>
                   
                <next>4</next>
  </phrase>
                <phrase id="2">
                    <text>text_2</text>
                    <action>dialog_manager.daj_przedmiot2</action>
<next>3</next>
                </phrase>
 <phrase id="3">
                    <text>text_3</text>
                     <action>dialog_manager.daj_przedmiot1</action>
                </phrase>
            </phrase_list>
        </dialog>

A w logu mam, że błąd przy czytaniu atrybutów z st_dialogs_marsh. Co z nim nie tak? Już nawet nie chodzi mi o sens wypowiedzi, bo to dopracuję później, tylko żeby nie było wypadu do pulpitu.
Ostatnio edytowany przez kubekpop, 14 Cze 2011, 20:03, edytowano w sumie 1 raz
Awatar użytkownika
kubekpop
Przewodnik

Posty: 956
Dołączenie: 05 Sty 2011, 20:56
Ostatnio był: 05 Lut 2020, 11:37
Miejscowość: Warszawa
Frakcja: Czyste Niebo
Ulubiona broń: UDP Compact
Kozaki: 160

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez The Witcher w 14 Cze 2011, 20:02

Upnij całe pliki i cały log.
The Witcher
Legenda

Posty: 1176
Dołączenie: 31 Lip 2008, 09:03
Ostatnio był: 21 Wrz 2024, 08:22
Ulubiona broń: --
Kozaki: 329

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez kubekpop w 14 Cze 2011, 20:06

A log to:
Kod: Zaznacz wszystko
FATAL ERROR
 
[error]Expression    : false
[error]Function      : CXml::Load
[error]File          : E:\priquel\sources\engine\xrXMLParser\xrXMLParser.cpp
[error]Line          : 87
[error]Description   : XML file:text\pol\st_dialogs_marsh.xml value: errDescr:Error reading Attributes.
 

stack trace:
Ostatnio edytowany przez kubekpop, 20 Cze 2011, 16:45, edytowano w sumie 1 raz
Awatar użytkownika
kubekpop
Przewodnik

Posty: 956
Dołączenie: 05 Sty 2011, 20:56
Ostatnio był: 05 Lut 2020, 11:37
Miejscowość: Warszawa
Frakcja: Czyste Niebo
Ulubiona broń: UDP Compact
Kozaki: 160

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez The Witcher w 14 Cze 2011, 20:11

Tu jest błąd:

Kod: Zaznacz wszystko
<string id="text_4"


Brakuje >.
The Witcher
Legenda

Posty: 1176
Dołączenie: 31 Lip 2008, 09:03
Ostatnio był: 21 Wrz 2024, 08:22
Ulubiona broń: --
Kozaki: 329

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez kubekpop w 14 Cze 2011, 20:18

Kod: Zaznacz wszystko
Expression    : next_phrase_node
Function      : CPhraseDialog::AddPhrase
File          : E:\priquel\sources\engine\xrGame\PhraseDialog.cpp
Line          : 318
Description   : 4


Takiego mam loga przy próbie rozmowy z handlarzem (po naciśnięciu "F"). Znaczek '>' dodałem. Co jeszcze jest nie tak?
Awatar użytkownika
kubekpop
Przewodnik

Posty: 956
Dołączenie: 05 Sty 2011, 20:56
Ostatnio był: 05 Lut 2020, 11:37
Miejscowość: Warszawa
Frakcja: Czyste Niebo
Ulubiona broń: UDP Compact
Kozaki: 160

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez The Witcher w 14 Cze 2011, 20:23

Nie dodałeś frazy o id 4, a w 1 masz:

Kod: Zaznacz wszystko
<next>4</next>
The Witcher
Legenda

Posty: 1176
Dołączenie: 31 Lip 2008, 09:03
Ostatnio był: 21 Wrz 2024, 08:22
Ulubiona broń: --
Kozaki: 329

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez kubekpop w 14 Cze 2011, 20:28

Dzięki. Jeszcze jedno. Opcja dialogowa z funkcją am być ze strony gracza, czy handlarza, tzn. jak ja powiem tą frazę z funkcją, to dostanę ten sprzęt, czy handlarz musi to powiedzieć?

@DOWN
Dzięki, The Witcher. Zaraz przebuduję dialog, i jakby były jakieś kłopoty, to napiszę.
Ostatnio edytowany przez kubekpop, 14 Cze 2011, 20:35, edytowano w sumie 1 raz
Awatar użytkownika
kubekpop
Przewodnik

Posty: 956
Dołączenie: 05 Sty 2011, 20:56
Ostatnio był: 05 Lut 2020, 11:37
Miejscowość: Warszawa
Frakcja: Czyste Niebo
Ulubiona broń: UDP Compact
Kozaki: 160

Re: [PYTANIA]na temat tworzenia dialogów

Postprzez The Witcher w 14 Cze 2011, 20:30

Handlarz bodajże.
The Witcher
Legenda

Posty: 1176
Dołączenie: 31 Lip 2008, 09:03
Ostatnio był: 21 Wrz 2024, 08:22
Ulubiona broń: --
Kozaki: 329

Następna

Powróć do Czyste Niebo

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 2 gości