Skocz do zawartości

Tworzenie bardziej złożonych dialogów


Gość Diegtiariow

Rekomendowane odpowiedzi

NAZWA: Tworzenie bardziej złożonych dialogów
AUTOR: R.I.C.K.(KAIL)

 

LEKCJA NR 1 - TWORZENIE ZŁOŻONEGO DIALOGU Z KILKOMA GAŁĘZIAMI:

Spoiler

Stworzymy bardziej złożony dialog z Sidorowiczem, powiedzmy, że zapytamy go o Kła, Barmana i wioskę kotów.

Co się przyda:

  • character_desc_lokacja.xml
  • dialogs_lokacja.xml
  • stable_dialogs_lokacja.xml

Wchodzimy do character_desc_lokacja.xml, w przykładzie wzięto character_desc_escape.xml a teraz szukamy handlarza; poniżej są takie linijki:

<start_dialog>hello_dialog</start_dialog> - jakiś dialog na przywitanie
<actor_dialog>esc_trader_queshion_actor</actor_dialog> - nasz dialog

wszystko zapisujemy.

Teraz wchodzimy do dialogs_lokacja.xml, w przykładzie dialogs_escape.xml:
Trzeba stworzyć szkielet dialogu. Na samym dole zaczynami pisać przed słowem </dialogs>:

<dialog id="esc_trader_queshion_actor"> -- nazwa dialogu powinna być tak jak napisana jest w character_desc_lokacja
<dont_has_info>esc_trader_queshion_actor</dont_has_info>
<phrase_list> - szkielet
<phrase id="0"> - pierwszy ID
<text>esc_trader_queshion_0</text> - pierwsza fraza aktora typu odpowiedz na moje pytania
<next>1</next> -- przechodzimy do następnej frazy
</phrase>
<phrase id="1"> - nast. ID, tak jak było w next
<text>esc_trader_queshion_1</text> - fraza handlarza typu Pytaj, ale na wszystkie pytania mogę nie znać odpowiedzi
<next>2</next> -- tutaj przechodzimy do następnych gałęzi, to znaczy rozgałęzieniu dialogu można zapytać o 3 pytania
<next>4</next>
<next>8</next>
</phrase>
<phrase id="2">
<text>esc_trader_queshion_2</text> - opowiedz o sobie себе актер
<next>3</next> - co ci powiedzieć handlarzu
</phrase>
<phrase id="3">
<text>esc_trader_queshion_3</text>
</phrase>
<phrase id="4">
<text>esc_trader_queshion_4</text> -- pytanie 2 opowiedz o zonie
<next>5</next> -- zona to ogromna dziura
</phrase>
<phrase id="5">
<text>esc_trader_queshion_5</text>
<next>6</next>
</phrase>
<phrase id="6">
<text>esc_trader_queshion_6</text>
<next>7</next>
</phrase>
<phrase id="7">
<text>esc_trader_queshion_7</text>
</phrase>
<phrase id="8">
<text>esc_trader_queshion_8</text> opowiedz o spełniaczu życzeń
<next>9</next>
</phrase>
<phrase id="9">
<text>esc_trader_queshion_9</text> w dwóch słowach powiedz życzenie
</phrase>
</phrase_list>
</dialog>

I to wszystko. Szkielet został napisany, gdy zadajemy pytanie, rozmawimy, pierwsze pytanie, i wracamy do początku. Pozostaje tylko napisać tekst.

Wchodzimy do stable_dialogs_lokacja.xml, w przykładzie stable_dialogs_escape.xml i piszemy:

<string id="esc_trader_queshion_0">
<text>Odpowiesz mi na kilka pytań?</text>
</string>
<string id="esc_trader_queshion_1">
<text>Pytaj, może odpowiem</text>
</string>
<string id="esc_trader_queshion_2">
<text>Kim jest stalker Kieł?</text>
</string>
<string id="esc_trader_queshion_3">
<text>Hmm, gdzieś słyszałem, że Kieł to legenda zony, jeden z członków grupy Striełoka. Byli ponoć w centrum zony i nawet przeżyli. Często go widziano w Barze, rok temu był u mnie i interesował się rzadkimi częściami, a gdzie jest teraz pojęcia nie mam.</text>
</string>
<string id="esc_trader_queshion_4">
<text>Opowiedz o Barmanie.</text>
</string>
<string id="esc_trader_queshion_5">
<text>A co tu opowiadać, Barman jak barman, znajduje się w Barze 100 Radów, można u niego kupić wyposażenie i zapytać odnośnie pracy.</text>
</string>
<string id="esc_trader_queshion_6">
<text>Jaką pracę może zaproponować?</text>
</string>
<string id="esc_trader_queshion_7">
<text>Różną. Od szukania artefaktów do zabijania stada mutantów lub przyniesienia cennego ładunku.</text>
</string>
<string id="esc_trader_queshion_8">
<text>Co to za obóz tutaj niedaleko?</text>
</string>
<string id="esc_trader_queshion_9">
<text>To tutejszy obóz nowicjuszy, dowodzi w nim Wilk, jeśli chcesz możesz pójść z nim pogadać albo z miejscowymi stalkerami, ale oni mało ci powiedzą, bo wszyscy są jeszcze zieloni.</text>
</string>

I to wszystko, napisaliśmy dialog.

 

LEKCJA NR 2 - TWORZENIE ZŁOŻONEGO DIALOGU Z WARUNKIEM:

Spoiler

Dzisiaj stworzymy złożony dialog z dwiema opcjami odpowiedzi i warunkiem, powiedzmy, że musisz zapytać postać o coś ważnego, ale on nie chce ot tak rozmawiać i za informację żąda "przynieś mi wódkę i ci powiem" .

Czego będziesz potrzebować:

  • dialogs_new.script
  • character_desc_lokacja.xml
  • dialogs_lokacja.xml
  • info_l-lokacja.xml
  • stable_dialogs_lokacja.xml

Tworzymy skrypt w folderze scripts z nazwą dialogs_new.script i piszemy funkcję/warunek:

-przepustka ochroniarza
function have_vodka(first_speaker, second_speaker) -- funkcja sprawdza czy akto ma w inwentarzu 1 butelkę wódki
return first_speaker:object("vodka") ~= nil
end

function give_vodka(first_speaker, second_speaker) -- funkcja oddajemy przedmiot postaci
dialogs.relocate_item_section(second_speaker, "vodka", "out")
end

Zakończyliśmy i zapisujemy.

Następnie przechodzimy do pliku character_desc_lokacja.xml, znajdujemy swoją postać, a dokładniej jej profil:

#include "gameplay\character_food.xml"
</supplies>

#include "gameplay\character_criticals_3.xml"
<!--<actor_dialog>dialog_helo</actor_dialog> -- jakieś dialogi
<actor_dialog>kuda_otvesti</actor_dialog>-->
<actor_dialog>spawn_npc1_wpn_pm_m1_quest</actor_dialog>
<actor_dialog>spawn_npc1_wpn_pm_m1_quest_completed</actor_dialog>
<actor_dialog>dialog_who</actor_dialog>
<actor_dialog>esc_talk_item</actor_dialog> -- nasz dialog
</specific_character>

Zapisujemy, będziemy pisać teraz szkielet dialogu.

Przechodzimy do pliku dialogs_Lokacja.xml i po słowie:

</dialogs>

piszemy:

<dialog id="esc_talk_item">
<has_info>new_info</has_info>-- вставить сдесь
<dont_has_info>esc_talk_item</dont_has_info>
<phrase_list>
<phrase id="0">
<text>esc_talk_item_0</text> -- 1-sza fraza aktora
<next>1</next>
</phrase>
<phrase id="1">
<text>esc_talk_item_1</text> -- odpowiedź postaci
<next>2</next> - przechodzimy do następnej frazy
</phrase>
<phrase id="2">
<text>esc_talk_item_2</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>esc_talk_item_3</text>
<next>4</next>
</phrase>
<phrase id="4">
<text>esc_talk_item_4</text>
<next>5</next>
</phrase>
<phrase id="5">
<text>esc_talk_item_5</text>
<next>6</next>
</phrase>
<phrase id="6">
<text>esc_talk_item_6</text>
</phrase>
<phrase id="7">
<text>esc_talk_item_7</text>
<next>8</next>
<next>10</next>
</phrase>
<phrase id="8">
<text>esc_talk_item_8</text>
<precondition>dialogs_new.have_vodka</precondition> -- warunek ze skryptu
<action>dialogs_new.give_vodka</action> - aktywujemy oddanie przedmiotu ze skryptu
<next>9</next>
<phrase id="9">
<text>trader_ohranik_whois_9</text>
<give_info>esc_talk_item</give_info> - umieszczamy wszystko tutaj po zdaniu postaci, gdy mówi o doktorze i kończymy dialog
</phrase>
<phrase id="10">
<text>esc_talk_item_10</text>
<next>11</next>
</phrase>
<phrase id="11">
<text>esc_talk_item_11</text>
<next>12</next>
</phrase>
<phrase id="12">
<text>esc_talk_item_12</text> -- zrozumiano
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>

I tak, szkielet został napisany. Napiszemy infoportion.

Jeśli chcesz, aby twój dialog był aktywowany przez infoportion, napisz tak:

<has_info>new_info</has_info>

Dalej przechodzimy do info_l-lokacja.xml, i piszemy:

<info_portion id="esc_talk_item"></info_portion>

Jeśli chcesz, aby twój dialog nie pojawiał się ponownie, wydamy infoportion:

<give_info>esc_talk_item</give_info>

A teraz pozostało tylko napisać tekst.

Wchodzimy do stable_dialogs_lokacja.xml, otwieramy i piszemy:

<string id="esc_talk_item_0">
<text>Potrzebuję informacji.</text>
</string>
<string id="esc_talk_item_1">
<text>Co chcesz wiedzieć?</text>
</string>
<string id="esc_talk_item_2">
<text>Wiesz, kim jest Doktor?</text>
</string>
<string id="esc_talk_item_3">
<text>Wiem, ale tak po prostu nie opowiem o nim.</text>
</string>
<string id="esc_talk_item_4">
<text>Dobra, co chcesz w zamian?</text>
</string>
<string id="esc_talk_item_5">
<text>Przynieś mi butelkę wódki i pogadamy wtedy.</text>
</string>
<string id="esc_talk_item_6">
<text>Dobrze.</text>
</string>
<string id="esc_talk_item_7">
<text>Ok, poczekam.</text>
</string>
<string id="esc_talk_item_8">
<text>Trzymaj wódkę.</text>
</string>
<string id="esc_talk_item_9">
<text>Wspaniale, później będzie można się zrelaksować. Odnośnie Doktora, to gdzie go znaleźć wie tylko Striełok. Doktor jest jednym z pierwszych stalkerów, którzy przyszli do zony. Leczy on stalkerów od radiacji, a także niektórych mutantów zony. Słyszałem nawet, że Doktor to były wojskowy, przyszedł do zony z oddziałem, na początku kiedy zona się pojawiła. On i inni wojskowi ochraniali perymetr.</text>
</string>
<string id="esc_talk_item_10">
<text>Nie mam niestety wódki.</text>
</string>
</string>
<string id="esc_talk_item_11">
<text>W takim razie i rozmowy nie będzie. Przyniesiesz to pogadamy.</text>
</string>
<string id="esc_talk_item_12">
<text>Rozumiem.</text>
</string>

I to wszystko, zakończyliśmy nasz dialog.

 

ŹRÓDŁO:

https://ap-pro.ru/forums/topic/1183-sozdanie-bolee-slozhnyh-dialogov/

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.