Створення складних квестів - створення модів - модифікації - s

Півсправи зроблено. Залишилося лише насадити на сформований каркас повноцінні текстові репліки NPC - не ключова слова, які не посилання, а саму «начинку» в дусі: «Ееей, Мічений. Горілки, горілки давай. І швидше там, скільки вже можна чекати ». Насамперед відкрийте «Блокнотом» файл stable_dialogs_escape.xml з директорії gamedata \\ config \\ text \\ rus \\ зі встановленою грою і упровадите в кінець документа перед тегом \ наступну конструкцію:
\
\ Слухай, Сидорович, є у тебе якась цікава работенка для мене? Що-небудь екзотичне. Розумієш про що я? Набридли вбивства, набридли пограбування. Нудьга. \
\
\
\ Ну, Мічений, повеселив ти мене. Давно я такого абсурду не чув. Ну, йди, йди і знайди снігової людини, поговори з Ктулху. \
\
\
\ Ктулху, говориш. А може бути, він є, насправді є. Ти про це не думав. Зараз піду його пошукаю, адже повинен же він існувати: в зоні про нього теж чимало чув! \
\
\
\ Ну, йди, йди, тільки ось будь добрий - захопи для мене по дорозі декілька слушних штучок - що знайдеш: консерви, частини місцевих Животина, цінні артефакти. В боргу не залишуся. \
\
Неважко помітити, що даний блок майже повністю копіює раніше написаний нами діалог в загальному вигляді, з тією лише різницею, що між тегами \ і \ укладені вже не короткі назви рядків англійською, а повноцінні текстові репліки рідною російською мовою.

\
\ Поговори з Ктулху \
\
\
\ Знайди корисні предмети і артефакти \
\
\
\ Зустрінься зі сніговою людиною \
\

Наведена вище структура складається з трьох блоків, кожен з яких, в свою чергу, містить рівно по три рядки. У першому рядку, яка починається з «кейворди» string_id, вказується певний ідентифікаційне ім'я рядка англійською (без пробілів), у другій - між тегами \ і \ - начинка, текст підказки, ну і, нарешті, в третій - тег \, який закриває блок підказки.
Діалог написаний, квест сконструйований, умови прописані, підказки позначені. Здавалося б, саме час - протестувати свіжоспечену місію в грі. Але не тут-то було. Ми ж з вами не реалізували саму можливість виконати квест, тобто практично не прописали стартер завдання в тіло діалогу. Давайте повернемося до виправлення діалогу і усунемо дане непорозуміння. Отже. По-перше, зробіть діалог нелінійним. Для цього в першу чергу створіть якомога більше число реплік, а потім прикрутіть до потрібних блокам кілька команд для переходу до нових записів, наприклад:

\
\ Escape_trader_igromania_12 \
\ 2 \
\ 4 \
\ 6 \
\ 8 \
З цього прикладу чітко видно, що гравець може сам зробити вибір - до якого ланці діалогу перейти: 2,4, 6 або 8.

Після цього вбудуйте в тіло кінцевих «розмовних» блоків посилання для активації потрібних ігрових скриптів, скажімо:
\
\ Escape_igromania_17 \
\ Igromania_quest_done \
\ Artifacts_and_obj \
\ Give_gold \
\ 23 \
\
Останні штрихи. Залишилося лише написати скрипти, відповідальні за «виписку гонорару» гравцеві, а також передачу цінного предмета певного NPC. Відкрийте файл gamedata \\ scripts \\ escape_dialog.script за допомогою «Блокнота» і вживу перед ключовим словом Trader наступний функціональний блок, точніше кажучи - два блоки:


function give_gold (first_speaker, second_speaker)
dialogs.relocate_money (second_speaker, 84000, «in»)
end

Перша функція в наведеному прикладі відповідає за видачу золотих гравцеві в сумі 84000, друга - за вилучення цінних артефактів і штучок у Міченого.