trurl3 Posted December 23, 2010 Report Share Posted December 23, 2010 [align=left]Jest to tłumaczenie tutoriala tworzenia kwestu w rodzaju: Art dla sierżanta Pliczko za wpuszczenie do bazy Powinności[/align] Źródło - forum AMK, autor='potap' data='23.5.2008 1) Trzeba stworzyć dialog. Szukamy pliku stable_dialogs_bar(ścieżka gamedata\config\text\rus) i na końcu dodajemy dwa dialogi, na przykład takie: Słuchaj stary, mam bardzo ważna informacje dla twojego dowódcy, może się jakoś dogadamy?W zasadzie można, ale przysluga za przysługę, Naznaczony. Mam klienta, dobrze płaci, ale szuka jedynie naprawdę cennych artefaktów. Możesz mi przynieść artefakt Pancerz?Dałeś do pieca ... dobra, czekaj, znajde ci pancerz, ty nasz żółwiku.Eh ty żłobie, lepiej dobrze sie rozglądaj, bo jeszcze jakas zabłakana kulka nadleci.Czołem sierżancie, nie zapomniałeś o naszej umpowie?.Tak, pamiętam, coś tam było. Jakoś niespieszno ci było, mnie żólwirm nazwałeś, a sam... no dobra, przyniosłeś?.A jakże, trzymaj, tylko ostrożnie, sporo mnie to trudu kosztowało.No, w naszym fachu bez tego sie nie da... i czego stoisz, przechodź.[/php] Pierwszy dialog nazywa się bar_ohran_propusk, a drugi bar_friend_propusk. Zwróćcie uwagę, że wszystkie dialogi powinny zaczynać się od kwestii Naznaczonego. 2)Znajdujemy plik dialogs_bar(ścieżka gamedata\config\gameplay) i tworzymy szkielet naszego dialogu znowu na końcu pliku: [php]bar_ohran_propusk_01bar_ohran_propusk_123bar_ohran_propusk_2bar_ohran_propusk_3dialogs.break_dialogbar_friend_propusk_01bar_friend_propusk_12bar_friend_propusk_23bar_friend_propusk_3 To wszystko, mamy już dialog. Właśnie ta linijka dialogs.break_dialog oznacza, że z pliku skryptowego dialogs wywoływana jest funkcja break_dialog. T.zn. jeśli my odmówimy przyniesienia artu dla Pliczko, to dialog zostanie przerwany. Jesli wszystko zrobilismy dobrze, to zapisujemy nasze zmiany. 3) Znajdujemy plik character_desc_bar, szukamy Pliczko(tego, który nas nie puszcza do Woronina) i dodajemy mu dwa dialogi: bar_ohran_propusk bar_friend_propusk - to są nasze dialogi. bar_dolg_base_guard_start bar_dolg_base_guard_talk bar_dolg_base_guard_story bar_dolg_base_guard_rules #include "gameplay\character_dialogs.xml" Zapisujemy nasze zmiany i uruchamiamy grę. Jeśli zrobiliśmy wszystko prawidłowo, to u Pliczko pojawią się dwa nowe dialogi. Dialogi mamy, ale teraz trzeba zrobić tak, żeby on nas wpuścił do Woronina t.zn. trzeba dodać Pliczko kwest. W katalogu gameplay jest dużo plików tego rodzaju: info_known_objects,info_l05dark_valley i t.d. To wszystko są infoportions gry, bez nich kwest nie zadziała. Musimy stworzyć swoje infoportions. Stworzymy swój plik, gdzie będą sie mieścić nasze infoportions. Ja nazwałem swój plik info_dan_way(nie zapomnijcie dopisać go w pliku system t.zn. dodać swojego pliku do pozostałych plików z infoportions) Wewnętrzna struktura plikubędzie mniej więcej taka to nasz infoportion Nr1 bar_dolg_propusk to jest cel zadania, który ukazuje sie w game_tasks to nasz infoportion Nr2 to nasz infoportion Nr3 Następnie otwieramy game_tasks i po wszystkich include wpisujemy nasz kwest Przynieść art Pliczko Znaleźć artefakt Pancerz ui_iconsTotal_artefact bar_dolg_propusk_done Znaleźć artefakt Pancerz ui\ui_icons_task dan_dialog.bar_dolg_propusk_have bar_dolg_propusk_have Przynieść artefakt Pliczko blue_location bar_dolg_guard_commander bar_dolg_propusk_done To wszystko, teraz musimy podłaczyć infoportions do naszego dialogu, znajdujemy dialogs_bar szukamy w nim naszych dialogów i dodajemy inforpotions; bar_dolg_propusk_start to znaczy, że dialog nie pojawi sie u Pliczko bar_dolg_propusk_have jeśli zadziałały nasze inforpotions наши инфопоршни t.zn. żeby bar_dolg_propusk_done po wypełnieniu zadania dialog nie pojawił sie znowu bar_ohran_propusk_0 1 bar_ohran_propusk_1 2 3 bar_ohran_propusk_2 dan_dialog.bar_dolg_propusk_havet.zn. będzie wykonywana funkcja bar_dolg_propusk_startbar_dolg_propusk_have z pliku skryptowego dan_dialog. bar_ohran_propusk_3 bar_dolg_propusk_startinformacja o otrzymaniu pierwszego infoportion. dialogs.break_dialog bar_dolg_propusk_done nie pokazywać po otrzymaniu 3 infoportion bar_dolg_propusk_have pokazywać, jesli jest drugi infoportion bar_friend_propusk_0 1 bar_friend_propusk_1 2 bar_friend_propusk_2 dan_dialog.bar_dolg_propusk_done wywoływana jest funkcja bar_dolg_propusk_done bar_dolg_propusk_done informacja o otrzymaniu 3 infoportion zadanie wypełnione 3 bar_friend_propusk_3 bar_dolg_base_pass tu działa infoportion o przxepuszczeniu nas na bazę Powinności. bar_dolg_community_start bar_dolg_community_leader Teraz musimy stworzyć swój plik skryptowy i dodać 2 funkcje. Jedna konieczna jest do sprawdzenia obecności w inwentarzu Pancerza o odpowiednio do włączenia infoportion bar_dolg_propusk_have. Druga dla przekazania Pliczko artu. Na przykład nazwiemy go dan_dialog i wpiszemy nasze funkcje. function bar_dolg_propusk_have(task, objective) ta funkcja sprawdza obecność artu if db.actor ~= nil then return db.actor:object("af_armor_3") ~= nil end return false end function bar_dolg_propusk_done(first_speaker, second_speaker) ta funkcja oddaje art Pliczko dialogs.relocate_item_section(second_speaker, "af_armor_3", "out") second_speaker:set_relation(game_object.friend, first_speaker) ta linia zmienia Pliczko w przyjaciela. end I to jakby wszystko. Jesli zrobiliście wszystko prawidłowo, to po tym, jak przyniesiecie art Pliczko, zostaniecie wpuszczeni do bazy Powinności. ------------------------------------------ Pytanie: bar_ohran_propusk_01 Może to głupie pytanie, ale co znaczy: ? Odpowiedź: - to identyfikator kolejnej frazy. Piszesz jakie frazy mogą nastapić po tej. Wytłumaczę po kolei. Tag, rozpoczynający frazę - oznacza, że ta fraza otrzymuje "nazwę" "1". Przy pomoicy tej "nazwy" fraza jest pózniej wywoływana z innych fraz przez tag . Tag , w ktorym, na przykład, jest "bar_ohran_propusk_1" - to odwolanie do linii, w której znajduje sie tekst frazy, znajdujący sie w innym pliku. Przykład: Walnij się o ścianę Pytanie: Z tego co tu było napisane, mogę zrozumiec co nastepuje: - słowa NPC-a + słowa naznaczonego, a - jak może Naznaczony odpowiedzieć. Jesli nie, to będę musiał zrobić to, co proponował ochroniarz. Walnąć sie o ścianę. Odpowiedź: Hmmm... Z HTML miałes do czynienia? Przystaw do ściany materac )) Plik "bar_dialogs.xml" ... -- otwarcie ciała frazy text1 -- wpisujemy, co będzie tekstem frazy - odniesienie do linii 2 -- odniesienie (identyfikator) do nastepnej frazy - piszemy to, co jest w jej parametrze id -- zamknięcie ciała frazy -- otwarcie ciała frazy, do której jest odniesienie z pierwszej text2 -- odniesienie ndo linii z tekstem tej frazy -- zamknięcie ciała frazy ... Plik "stable_bar_dialogs.xml" ... -- otwieramy ciało linii Walnij się o ścianę -- dodajemy tekst -- zamykamy ciało linii Dobra, tylko daj materac ... Ale oczywiście, najlepiej dochodzić samemu. Quote Link to comment Share on other sites More sharing options...
czernobyl10 Posted December 24, 2010 Report Share Posted December 24, 2010 Trulu artykuł obszerny,zawiera wszystko. Powiedz czy na podstawie tego artykułu każdy może napisać swojego questa do soli? Dla mnie niestety to wyższa szkoła sztuk magicznych i pewnie do kolejnej pl będzie dodany stosowny plik z tym questem. Robisz wielką robote-wielki szacun:wodka: Quote Link to comment Share on other sites More sharing options...
trurl3 Posted December 24, 2010 Author Report Share Posted December 24, 2010 No i juz widzisz, że nie każdy... Ale w zasadzie wytłumaczony jest tok postepowania. A jesli ktos umie pisac programy w XML-u to wtedy nie ma problemu Quote Link to comment Share on other sites More sharing options...
czernobyl10 Posted December 24, 2010 Report Share Posted December 24, 2010 To czekamy na qeusta, oczywiście wszystko jest do opanowania. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.