Вопрос: Как сделать полный квест? |
Ответ: Мы создадим квест (например для того чтобы нас пустили к Воронину) Приступим: <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 kill_stalker_padla_escape(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 Ну вот вроде все. Если сделали все правильно, то после того, как принесли арт Пличко, вас свободно пропустят на базу долга. |
[Наверх]
(просмотров: 6308)
|