Jump to content

Tworzenie kwestu dla Soljanki


trurl3

Recommended Posts

[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_0
1


bar_ohran_propusk_1
2
3


bar_ohran_propusk_2


bar_ohran_propusk_3
dialogs.break_dialog






bar_friend_propusk_0
1


bar_friend_propusk_1
2


bar_friend_propusk_2
3


bar_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.

:D 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.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.