Gość Diegtiariow Opublikowano 28 Października 2023 Zgłoś Udostępnij Opublikowano 28 Października 2023 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/ Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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.