Воскресенье, 08.03.2026, 09:47
Приветствую Вас Гость | RSS
F.R.O.N.T.
Главная | Статьи | Регистрация | Вход
Меню сайта
Все новые статьи находяться на форуме!!! Видеть их могут только рарегистрированые пользователи...
Категории каталога
Мои статьи [28] Сценарии [0]
Пишите сюда свои сцинарии
Модострой [152]
Статьи по созданию модов
КАК СНЯТЬ ФИЛЬМ??? [0]
Статьи о том как снять фильмы
Мини-чат
Наш опрос
Какой мод лучше всего?
1. АМК 1.4
2. Другие
3. ЖЕСТЬ
4. Зона поражения 1-2
5. Прибой стори
6. Арсенал мод
7. Old good STALKER
8. АВС
9. Симбион
10. Addon To STALKER
11. СРП
12. New Level changer
13. АИ пак
14. CprHicks mod
15. Черноречье
Всего ответов: 110
Главная » Статьи » Мои статьи

Создание квеста для прохода в баре к Воронину
1) Надо создать наш диалог. Ищем файл stable_dialogs_bar(путь gamedata\config\text\rus) и в конце пищем два диалога примерно вот таких: 

<string id="bar_ohran_propusk_0"> 
<text>Дружище послушай, у меня очень ценная информация для твоего командира, давай как-нибудь договоримся?</text> 
</string> 
<string id="bar_ohran_propusk_1"> 
<text>В принципе можно,но услуга за услугу.Дело у меня есть к тебе меченый.У меня клиент есть, хорошо платит но ему нужны только ценные артефакты. Сможешь мне принести артефакт Панцирь?</text> 
</string> 
<string id="bar_ohran_propusk_2"> 
<text>Ну ты и ... ладно жди достану тебе панцири, черепаха ты наша.</text> 
</string> 
<string id="bar_ohran_propusk_3"> 
<text>Ну ты и жлоб поглядывай за углами вдруг шальная пуля прилетит.</text> 
</string> 

<string id="bar_friend_propusk_0"> 
<text>Привет сержант не забыл наш уговор?.</text> 
</string> 
<string id="bar_friend_propusk_1"> 
<text>Да помню-помню было такое,долго же ты,а еще меня черепахой называл,а сам... ну ладно принес?.</text> 
</string> 
<string id="bar_friend_propusk_2"> 
<text>А как же держи,попотеть пришлось.</text> 
</string> 
<string id="bar_friend_propusk_3"> 
<text>Ну в нашем деле не без этого проходи че стоишь.</text> 
</string> 

Первый называется bar_ohran_propusk, а второй bar_friend_propusk. Учтите все диалоги должны начинаться со слов меченого. 
2)Находим файл dialogs_bar(путь gamedata\config\gameplay) и составляем скелет нашего диалога опять же в конце файла: 
<dialog id="bar_ohran_propusk"> 
<phrase_list> 
<phrase id="0"> 
<text>bar_ohran_propusk_0</text> 
<next>1</next> 
</phrase> 
<phrase id="1"> 
<text>bar_ohran_propusk_1</text> 
<next>2</next> 
<next>3</next> 
</phrase> 
<phrase id="2"> 
<text>bar_ohran_propusk_2</text> 
</phrase> 
<phrase id="3"> 
<text>bar_ohran_propusk_3</text> 
<action>dialogs.break_dialog</action> 
</phrase> 
</phrase_list> 
</dialog> 
<dialog id="bar_friend_propusk"> 
<phrase_list> 
<phrase id="0"> 
<text>bar_friend_propusk_0</text> 
<next>1</next> 
</phrase> 
<phrase id="1"> 
<text>bar_friend_propusk_1</text> 
<next>2</next> 
</phrase> 
<phrase id="2"> 
<text>bar_friend_propusk_2</text> 
<next>3</next> 
</phrase> 
<phrase id="3"> 
<text>bar_friend_propusk_3</text> 
</phrase> 
</phrase_list> 
</dialog> 
Все у нас есть диалог. Вот эта строчка <action>dialogs.break_dialog</action> означает что из скриптового файла 
dialogs вызывается функция break_dialog. Т.е. если мы откажемся нести арт Пличко то диалог прерывается. 
Все если мы правильно сделали то сохраняем наши изменения. 
3) Находим файл character_desc_bar и ищем Пличко(тот что нас не пускает к Воронину) и добавляем ему два диалога: 

<actor_dialog>bar_ohran_propusk</actor_dialog> 
<actor_dialog>bar_friend_propusk</actor_dialog> - это наши диалоги. 
<start_dialog>bar_dolg_base_guard_start</start_dialog> 
<actor_dialog>bar_dolg_base_guard_talk</actor_dialog> 
<actor_dialog>bar_dolg_base_guard_story</actor_dialog> 
<actor_dialog>bar_dolg_base_guard_rules</actor_dialog> 
#include "gameplay\character_dialogs.xml" 
Сохраняем наши изменения и запускаем игру если мы сделали все правильно то у него появиться два диалога. 

Диалог мы сделали, но нам теперь нужно сделать так чтобы он нас пустил к Воронину т.е. приделать Пличко квест. 
В папке gameplay есть много файлов таких как info_known_objects,info_l05dark_valley и т.д. Это все инфопоршни игры без них квест не получиться. Нам надо создать свои инфопоршни. Создадим свой файл где будут лежать наши инфопоршни.Я назвал сой файл info_dan_way(не забудь те прописать его в файле system т.е. добавить к остальным файлам с инфопоршними свой файл) 
Внутри он будет выглядеть примерно так 
 

<game_information_portions> 

<info_portion id="bar_dolg_propusk_start"> это наши инфопоршень №1 
<task>bar_dolg_propusk</task> это цель задания которая указывается в game_tasks 
</info_portion> 

<info_portion id="bar_dolg_propusk_have"></info_portion> это наши инфопоршень №2 

<info_portion id="bar_dolg_propusk_done"></info_portion>это наши инфопоршень №3 

</game_information_portions> 

Дальше открываем game_tasks и после всех инклудов вписываем наш квест 

<game_task id="bar_dolg_propusk"> 
<title>Принести арты Пличко</title> 
<objective> 
<text>Найти артефакт панцирь</text> 
<icon>ui_iconsTotal_artefact</icon> 
<infoportion_complete>bar_dolg_propusk_done</infoportion_complete> 
</objective> 
<objective> 
<text>Найти артефакт панцирь</text> 
<icon height="50" width="50" x="100" y="50">ui\ui_icons_task</icon> 
<function_complete>dan_dialog.bar_dolg_propusk_have</function_complete> 
<infoportion_set_complete>bar_dolg_propusk_have</infoportion_set_complete> 
</objective> 
<objective> 
<text>Принести артефакт Пличко</text> 
<map_location_type hint="Пличко">blue_location</map_location_type> 
<object_story_id>bar_dolg_guard_commander</object_story_id> 
<infoportion_complete>bar_dolg_propusk_done</infoportion_complete> 
</objective> 
</game_task> 

Все теперь нам надо добавить инфопоршни в наш диалог, находим dialogs_bar ищем в нем наши диалоги и добавляем инфопоршни; 
<dialog id="bar_ohran_propusk"> 
<dont_has_info>bar_dolg_propusk_start</dont_has_info> это значит что диалог не появиться у Пличко 
<dont_has_info>bar_dolg_propusk_have</dont_has_info> если сработали наши инфопоршни т.е. чтобы 
<dont_has_info>bar_dolg_propusk_done</dont_has_info> после выполнения задания диалог вновь не появлялся 
<phrase_list> 
<phrase id="0"> 
<text>bar_ohran_propusk_0</text> 
<next>1</next> 
</phrase> 
<phrase id="1"> 
<text>bar_ohran_propusk_1</text> 
<next>2</next> 
<next>3</next> 
</phrase> 
<phrase id="2"> 
<text>bar_ohran_propusk_2</text> 
<action>dan_dialog.bar_dolg_propusk_have</action> т.е. будет выполняться функция 
<give_info>bar_dolg_propusk_start</give_info> bar_dolg_propusk_have из сриптового файла dan_dialog. 
</phrase> 
<phrase id="3"> 
<text>bar_ohran_propusk_3</text> 
<give_info>bar_dolg_propusk_start</give_info> информации о получении первого инфопоршня. 
<action>dialogs.break_dialog</action> 
</phrase> 
</phrase_list> 
</dialog> 

<dialog id="bar_friend_propusk"> 
<dont_has_info>bar_dolg_propusk_done</dont_has_info> не показывать после получения 3 инфопоршня 
<has_info>bar_dolg_propusk_have</has_info> показывать если есть второй инфопоршень 
<phrase_list> 
<phrase id="0"> 
<text>bar_friend_propusk_0</text> 
<next>1</next> 
</phrase> 
<phrase id="1"> 
<text>bar_friend_propusk_1</text> 
<next>2</next> 
</phrase> 
<phrase id="2"> 
<text>bar_friend_propusk_2</text> 
<action>dan_dialog.bar_dolg_propusk_done</action> вызывается функция bar_dolg_propusk_done 
<give_info>bar_dolg_propusk_done</give_info> информация о получения 3 инфопоршня задание выполенено 
<next>3</next> 
</phrase> 
<phrase id="3"> 
<text>bar_friend_propusk_3</text> 
<give_info>bar_dolg_base_pass</give_info> это срабатывает инфопоршни о пропуске нас на базу долга. 
<give_info>bar_dolg_community_start</give_info> 
<give_info>bar_dolg_community_leader</give_info> 
</phrase> 
</phrase_list> 
</dialog> 
Теперь нам надо создать свой скриптовой файл и вписать 2 функции. Одна нужна для проверки наличия в инвентаре панциря и соответственно включения инфопоршня bar_dolg_propusk_have. Вторая для передачи Пличко 
арта. Например dan_dialog и вписать наши функции. 

function bar_dolg_propusk_have(task, objective) эта функция проверяет наличие арта 
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) эта функция отдачи арта Пличко 
dialogs.relocate_item_section(second_speaker, "af_armor_3", "out") 
second_speaker:set_relation(game_object.friend, first_speaker) эта строчка делает Пличко другом. 
end 

Ну вот вроде все. Если сделали все правильно, то после того, как принесли арт Пличко, вас свободно пропустят на базу долга. 

Источник: http://www.amk-team.ru/forum

Категория: Мои статьи | Добавил: front (04.08.2009)
Просмотров: 1258 | Рейтинг: 3.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
счетчик посещенийсчетчик посещений
Друзья сайта
 
Фан сайт игры S.T.A.L.K.E.R.

Бар_У_границы_Зоны_бар_настоящего_сталкера!

Статистика

На портале: 1
Новичков: 1
Участников: 0

Copyright MyCorp © 2026