Бармен | Дата: Четверг, 28.05.2015, 00:48 | Сообщение # 16 |
Практика 1. В configs/gameplay/dialogs_zaton.xml добавим два новых диалога: Код <dialog id="zat_super_psevdogig_take_task_dialog"> <!--Взятие квеста--> <dont_has_info>psevdogig_task_dialog_done</dont_has_info> <phrase_list> <phrase id="0"> <text>zat_super_psevdogig_take_task_dialog_0</text> <next>1</next> </phrase> <phrase id="1"> <text>zat_super_psevdogig_take_task_dialog_1</text> <next>2</next> </phrase> <phrase id="2"> <text>zat_super_psevdogig_take_task_dialog_2</text> <next>3</next> </phrase> <phrase id="3"> <text>zat_super_psevdogig_take_task_dialog_3</text> <next>4</next> </phrase> <phrase id="4"> <text>zat_super_psevdogig_take_task_dialog_4</text> <next>5</next> </phrase> <phrase id="5"> <text>zat_super_psevdogig_take_task_dialog_5</text> <give_info>psevdogig_task_dialog_done</give_info> <action>dialogs_zaton.give_super_psevdogig_task</action> <!--Выдаем задание и артефакт--> </phrase> </phrase_list> </dialog> <dialog id="zat_super_psevdogig_task_end_dialog"> <has_info>zat_super_psevdogig_af_activation</has_info> <dont_has_info>psevdogig_task_finished</dont_has_info> <phrase_list> <phrase id="0"> <text>zat_super_psevdogig_task_end_dialog_0</text> <next>1</next> </phrase> <phrase id="1"> <text>zat_super_psevdogig_task_end_dialog_1</text> <give_info>psevdogig_task_finished</give_info> <action>dialogs_zaton.give_super_psevdogig_task_reward</action> <!--Выдаем награду--> </phrase> </phrase_list> </dialog> 2. Пропишем их Бороде (секция zat_a2_stalker_barmen, файл character_desc_zaton.xml): Код <actor_dialog>zat_super_psevdogig_take_task_dialog</actor_dialog> <actor_dialog>zat_super_psevdogig_task_end_dialog</actor_dialog> 3. В configs/text/rus/st_dialogs_zaton.xml поместим текстовку диалогов: Код <string id="zat_super_psevdogig_take_task_dialog_0"> <text>Как дела, Борода? Есть новости какие-то?</text> </string> <string id="zat_super_psevdogig_take_task_dialog_1"> <text>Здравствуй. Новость-не новость, а у нас на Северном озере поселился какой-то убер-псевдогигант, который не дает сталкерам (да и псевдоплотям, что уж тут говорить) покоя...Тварь неубиваемая какая-то. Посоветовавшись с Гонтой, решили попробовать его (я про псевдогиганта) активацией артефакта ликвидировать. Подходящий артефакт у меня вот есть, а смельчака для этого задания найти не можем...</text> </string> <string id="zat_super_psevdogig_take_task_dialog_2"> <text>Знаешь, я мог бы вам помочь.</text> </string> <string id="zat_super_psevdogig_take_task_dialog_3"> <text>Ты с Цементного завода рухнул? Да эта хрень тебя может в псевдочебурек превратить...А кто мне будет все те же арты таскать? На ком Лоцман зарабатывать будет? Короче, ты уверен?</text> </string> <string id="zat_super_psevdogig_take_task_dialog_4"> <text>Уверен. Мне скучно, прост)00)).</text> </string> <string id="zat_super_psevdogig_take_task_dialog_5"> <text>Ну, окей, удачи. Вот тебе "Грави" для активации. Будь аккуратен.</text> </string> <string id="zat_super_psevdogig_task_end_dialog_0"> <text>Все, старик. Нету больше твоего убер-псевдогигабайта.</text> </string> <string id="zat_super_psevdogig_task_end_dialog_1"> <text>Вах, слушай, молодец какой! Молоток! Возьми себе печеньку.</text> </string> С диалогами все. Здесь все просто, поэтому детально рассказывать о них не буду. Если же эта часть показалась Вам сложной, то, простите, этот урок не совсем для Вашего уровня знаний. 1. В configs/misc/tm_zaton.ltx добавим секция квеста: Код [zat_super_psevdogig_task] icon = ui_inGame2_Logovo_krovososov prior = 10 storyline = false title = {+zat_super_psevdogig_af_activation} zat_super_psevdogig_task_2, zat_super_psevdogig_task_1 descr = {+zat_super_psevdogig_af_activation} zat_super_psevdogig_task_2_text, at_super_psevdogig_task_1_text target = {+zat_super_psevdogig_af_activation} zat_a2_stalker_barmen, zat_super_psevdogig_squad condlist_0 = {+psevdogig_task_finished} complete Немного разобра: - иконка стоит от миссии на устранение логова кровососов - задание имеет две стадии: часть на устранение мутанта и часть, которая требует поговорить с Бородой (на эту часть обновление происходит при получении инфопорции zat_super_psevdogig_af_activation, мы к ней вернемся позже) - в первой части метка задания падает на сквад мутанта (его story_id - zat_super_psevdogig_squad), во второй - на Бороду - квест заканчивается при получении инфы psevdogig_task_finished, которая выдается в уже созданном нами диалоге Как видите, квест по структуре очень простой. 2. Прописываем в configs/text/rus/st_quests_zaton.xml его текстовую часть: Код <string id="zat_super_psevdogig_task_1"> <text>Помощь криворуким: устранить убер-псевдогиганта</text> </string> <string id="zat_super_psevdogig_task_1_text"> <text>Я оказался прав: все сталкеры на Затоне - криворукие болваны. Теперь мне нужно за них устранить очень крутого мутанта на Северном озере.</text> </string> <string id="zat_super_psevdogig_task_2"> <text>Помощь криворуким: сломать Бороде нос</text> </string> <string id="zat_super_psevdogig_task_2_text"> <text>Хочу сказать пару ласковых слов Бороде. Какого фига это барыго в экзе не сказало мне, что меня на озере ждет не убер-псевдогигант, а жирная зеленая Гидра Затонская?</text> </string> Переходим к конфигам мутанта. 1. Файл configs/creatures/m_giant.ltx. Сделаем секцию нашего уникального псевдогиганта. Она будет почти аналогичная обычному гиганту: Код [super_psevdogig]:m_gigant_e $spawn = "monsters\gigants\super_psevdogig" visual = monsters\psevdogigant\psevdogigant_uber ;Это моя новая модель corpse_visual = monsters\psevdogigant\psevdogigant_uber_dead ;Это тоже rank = 50 ;Увеличим ранг spec_rank = strong ;Псевдик Стронг! radiation_pp_effector_name = postprocess_acidic ;Выставим кислотный постпроцесс attack_params = super_psevdogig_attack_params ;Новая секция параметрво атаки [super_psevdogig_attack_params] ;Тут усилен импульс ;-------------------------------------------------------------------------------------------------------------------------------------------- - ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, top, bottom) | Test Dist ;-------------------------------------------------------------------------------------------------------------------------------------------- - ;Bite stand_attack_0 = 0.25, 0.9, 200, 0.5, 1.0, 0.5, -0.8, 0.8, -1.8, 1.8, 2.6 ;Left leg Strike stand_attack_1 = 0.40, 0.9, 150, 5.0, 2.5, 4.0, -0.6, 0.6, -1.8, 1.8, 3.2 ;Bite2 stand_attack_2 = 0.25, 0.9, 200, 0.5, 1.0, 5.0, -0.8, 0.8, -1.8, 1.8, 2.6 stand_attack_run_0= 0.5, 0.9, 600, 0.5, 1.0, 5.0, -0.6, 1.3, -1.8, 1.8, 3.3 jump_attack_1 = 0.1, 2.00, 1600, 0.5, 1.0, 5.0, -1.0, 1.3, -1.6, 1.6, 5.5 2. Дальше требуется создать мутанту сквад в configs/misc/squad_descr_zaton.xml: Код [zat_super_psevdogig_squad]:online_offline_group faction = monster_special npc = super_psevdogig ;НПС в скваде - наш псевдогигант target_smart = zat_sim_2 ;Целевой смарт - полуостров на Северном озере spawn_point = zat_sim_2_giant_home ;Спавн поинт - поинт "логова" для мутанта story_id = zat_super_psevdogig_squad ;Sid совпадает с названием секции (ваш Кэп) 1. Прежде всего, открываем файл логики смарта полуострова - configs/scripts/zaton/smart/zat_sim_2.ltx, и внизу добавляем секцию exclusive с ссылкой на эксклюзивную логику гиганта: Код [exclusive] giant = zaton\zat_sim_2_super_psevdogig.ltx Итак, логика нашего мутанта называется giant. 2. Переходим к самой логике. Создаем файл zaton\zat_sim_2_super_psevdogig.ltx. Заполняем его: Код [logic@giant] ;Название логики - giant (смотрите выше) suitable = {=target_squad_name(zat_super_psevdogig_squad)} true ;Логика доступна только для монстра из нашего сквада monster_job = true prior = 200 active = mob_home@giant [mob_home@giant] on_info = %=restore_health% ;Здоровье мутанта постоянно пополняется ;Если дистаниция до ГГ меньше 7 метров, в наличии есть квестовый артефакт, а активного туториала нету, то запускается туториал убийства: on_info2 = {=dist_to_actor_le(7) =actor_has_item(super_psevdogig_af_gravi) !has_active_tutorial} %=run_tutorial(zat_super_psevdogig_af_tutor)% ;Если дистаниция до ГГ больше 7 метров, в наличии есть квестовый артефакт, а туториал запущен, то запускается туториал убийства: on_info3 = {=dist_to_actor_ge(7) =actor_has_item(super_psevdogig_af_gravi) =has_active_tutorial} %=stop_tutorial% ;При получении инфы "zat_super_psevdogig_af_activation", убиваем НПС функцией "kill_npc" из xr_effects.script: on_info4 = {+zat_super_psevdogig_af_activation} %=kill_npc% ;При получении инфы "zat_super_psevdogig_af_activation_begin", удаляем НПС вообще и запускаем партиклы аномалии/разрыва новой функцией on_info5 = {+zat_super_psevdogig_af_activation_begin} %=zat_super_psevdogig_explode_2% path_home = giant_home ;В way_zaton.ltx это - zat_sim_2_giant_home ("логово") ;Настройки охраны "логова": home_min_radius = 20 home_max_radius = 50 aggressive = true 3. Настало время использовать ранее снятые координаты. Распаковываем all.spawn с ACDC или же используем СДК Левел Эдитор, чтоб создать точку для монстра в way_zaton.ltx: Код [zat_sim_2_giant_home] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -19.00901222229,-7.0012526512146,526.37811279297 p0:game_vertex_id = 47 p0:level_vertex_id = 907875 Собираем спавн. |
|