Воскресенье, 22.09.2024, 14:30
Приветствую Вас Гость | RSS
F.R.O.N.T.
Главная | Статьи | Регистрация | Вход
Меню сайта
Все новые статьи находяться на форуме!!! Видеть их могут только рарегистрированые пользователи...
Категории каталога
Мои статьи [28] Сценарии [0]
Пишите сюда свои сцинарии
Модострой [152]
Статьи по созданию модов
КАК СНЯТЬ ФИЛЬМ??? [0]
Статьи о том как снять фильмы
Мини-чат
Наш опрос
Оцените портал...
1. Отлично
2. Хорошо
3. Ужасно
4. Неплохо
5. Плохо
Всего ответов: 78
Главная » Статьи » Мои статьи

Создание квеста для прохода в баре к Воронину
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)
Просмотров: 1223 | Рейтинг: 3.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
счетчик посещенийсчетчик посещений
Друзья сайта
 
Фан сайт игры S.T.A.L.K.E.R.

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

Статистика

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

Copyright MyCorp © 2024