[CoP] Создание Медика
Аристократ
Воскресенье, 05.07.2015, 15:18 | Сообщение # 1
Модмейкер-одиночка
Статус :
Опытный :
Сообщений :
2272
Награды :
17
Регистрация :
30.06.2012
Создание медика в ЗП
В этом уроке я хочу рассказать, как создать медика в игре. Это не трудно. Начнём!Создание НПС
Давайте, для начала, создадим нашего НПС, которого мы хотим сделать врачом.
Идём в
gamedata\configs\creatures\spawn_sections_zaton.ltx В самом низу вставляем секцию нашего НПС (сделаем бандита-медика)
Цитата
[zat_bandit_medic]:stalker $spawn = "respawn\zat_bandit_medic" character_profile = zat_bandit_medic spec_rank = novice community = bandit story_id = zat_bandit_medic_id
Далее идём в
gamedata\configs\gameplay\character_desc_zaton.xml Цитата
<specific_character id="zat_bandit_medic" team_default="1"> <name>Шов</name> <icon>ui_inGame2_bandit_3</icon> <map_icon x="1" y="0"> </map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>zat_bandit_medic</class> <community>bandit</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_02\bandit\</snd_config> <rank>60</rank> <reputation>0</reputation> <money min="480000" max="480000" infinitive="1" /> <visual>actors\stalker_bandit\stalker_bandit_3</visual> <supplies> [spawn] \n wpn_ak74u \n ammo_5.45x39_fmj = 1 \n wpn_beretta \n ammo_9x19_fmj = 1 \n grenade_rgd5 = 1 \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" <start_dialog>zat_bandit_medic_hello</start_dialog> ;- стартовый диалог НПС (приветствие) <actor_dialog>zat_bandit_medic_dialog</actor_dialog> ;- диалог лечения <actor_dialog>actor_break_dialog</actor_dialog> ;- прощаемся с НПС </specific_character>
Далее идём в
gamedata\configs\gameplay\npc_profile.xml Цитата
<character id="zat_bandit_medic"> <class>zat_bandit_medic</class> </character>
С созданием НПС закончили, теперь надо сделать ему логику.Логика
Я выбрал местечко на Скадовске рядом с Султаном. Сделаем НПС анимпоинт.
В
gamedata\spawns\alife_zaton.ltx добавим секцию анимпоинта:
Цитата
[порядковый_номер] ; cse_abstract properties section_name = smart_cover name = zat_a2_bandit_medic_animpoint position = 138.0086517334,-7.3435568809509,180.43949890137 direction = 0,-7.3435568809509,0 ; cse_alife_object properties game_vertex_id = 296 distance = 12.5999994277954 level_vertex_id = 1202662 object_flags = 0xffffffbf ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_low ;- используем анимку сидячего НПС (в данном случае низко, как НПС на ящиках) cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10 ; se_smart_cover properties last_description = animpoint_sit_low loopholes = animpoint_sit_low,1
Сохраняем, собираем.
По адресу
gamedata\configs\scripts\zaton создаём
zat_bandit_medic (файл логики НПС).
Там пишем следующее:
Цитата
[logic@zat_a2_bandit_medic] active = animpoint@medic suitable = {=check_npc_name(zat_bandit_medic)} true ;- только наш НПС может занимать этот анимпоинт trade = misc\trade\trade_zat_bandit_medic.ltx ;- файл торговли level_spot = medic ;- значок медика prior = 200 ;- приоритет [animpoint@medic] use_camp = false ;- может ли юзать кемп-зоны (нет) avail_animations = animpoint_sit_low ;- имя анимации cover_name = zat_a2_bandit_medic_animpoint ;- имя анимпоинта meet = meet@bandit_medic combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = true ;- бессмертие out_restr = zat_a2_sr_noweap gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false [meet@bandit_medic] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 use = {=actor_enemy} false, true trade_enable = true allow_break = false close_snd_distance = 3 meet_on_talking = false
С логикой всё, а теперь создадим файл торговли для нашего НПС (он будет торговать медикаментами, как Тремор и Костоправ)
Идём в
gamedata\configs\misc\trade и создаём файл
trade_zat_bandit_medic.ltx и пишем там
это Диалоги
Теперь создадим наши диалоги.
В
gamedata\configs\gameplay\dialogs_zaton.xml в конце пишем:
Диалог приветствия
Цитата
<dialog id="zat_bandit_medic_hello"> <phrase_list> <phrase id="0"> <text>zat_bandit_medic_hello_0</text> </phrase> </phrase_list> </dialog>
Диалог лечения:
Цитата
<dialog id="zat_bandit_medic_dialog"> <phrase_list> <phrase id="1"> <text>zat_bandit_medic_dialog_1</text> <precondition>dialogs.actor_needs_bless</precondition> ;- если ГГ ранен, то лечим. <next>2</next> </phrase> <phrase id="2"> <text>zat_bandit_medic_dialog_2</text> <action>dialogs.medic_magic_potion</action> ;- лечение <next>3</next> </phrase> <phrase id="0"> <text>zat_bandit_medic_dialog_0</text> <next>1</next> <next>4</next> </phrase> <phrase id="4"> <text>zat_bandit_medic_dialog_4</text> <precondition>dialogs.actor_is_damn_healthy</precondition> ;- если актор цел, то шлём его. </phrase> <phrase id="3"> <text>zat_bandit_medic_dialog_3</text> </phrase> </phrase_list> </dialog>
Сделаем диалоги пригодными для чтения, лезем в
gamedata\configs\text\rus\st_dialogs_zaton.xml Приветствие:
Цитата
<string id="zat_bandit_medic_hello_0"> <text>О, припёрся! Чё надо? Залатать или кайфануть? Так я знаю как!</text> </string>
Лечение:
Цитата
<string id="zat_bandit_medic_dialog_0"> <text>Чё-то мне хреново, глянь чё там?</text> </string> <string id="zat_bandit_medic_dialog_1"> <text>Ща глянем.</text> </string> <string id="zat_bandit_medic_dialog_2"> <text>[далее...]</text> </string> <string id="zat_bandit_medic_dialog_3"> <text>Во, теперь всё зашибись, наливай!</text> </string> <string id="zat_bandit_medic_dialog_4"> <text>Здоров, как бычара, чеши отсюда.</text> </string>
А теперь заспавним нашего НПС!Спавн
Я буду спавнить через сквад.
В
gamedata\configs\misc\squad_descr_zaton.ltx создаём сквад нашего НПС:
Цитата
[zat_bandit_medic_squad]:online_offline_group ;- id faction = bandit ;- группировка npc = zat_bandit_medic ;- наш НПС target_smart = zat_stalker_base_smart ;- цель (Скадовск) story_id = zat_bandit_medic_squad ;- стори_ид сквада
Адрес
gamedata\configs\misc\simulation_objects_props.ltx Занесём наш сквад в файл симуляции. В секции Цитата
;--------- ZATON UNIQUE SQUADS --------
пишем:Цитата
[zat_bandit_medic_squad]:default_squad sim_avail = false
Ну и в
Цитата
[start_position_zaton]
пишем:
Цитата
zat_bandit_medic_squad = zat_stalker_base_smart
Вот и всё!Удачи в модинге!
Сообщение отредактировал Rap4ik - Суббота, 28.04.2018, 22:32
Воскресенье, 05.07.2015, 15:18
Статус :
Сообщений :
666
Регистрация :
30.06.2012
FantomICW
Воскресенье, 05.07.2015, 15:20 | Сообщение # 2
Проект Смерти Вопреки
Статус :
Опытный :
Сообщений :
2259
Награды :
8
Регистрация :
06.01.2013
разделитель
Воскресенье, 05.07.2015, 15:20
Статус :
Сообщений :
666
Регистрация :
06.01.2013
Статус :
Новичок :
Сообщений :
267
Награды :
3
Регистрация :
24.04.2015
Rap4ik , А если я хочу его заспавнить на барже ноя,как там без делания анимации заспавнить?
Воскресенье, 05.07.2015, 15:32
Статус :
Сообщений :
666
Регистрация :
24.04.2015
Аристократ
Воскресенье, 05.07.2015, 15:37 | Сообщение # 4
Модмейкер-одиночка
Статус :
Опытный :
Сообщений :
2272
Награды :
17
Регистрация :
30.06.2012
Цитата Arhnagel228 (
)
как там без делания анимации заспавнить?
А в чём сложность снять координаты нужного места на барже и сделать анимпоинт? Ну если уж так, то: В simulation.ltx вместо Скадовска пишешь имя смарта баржи Ноя В squad_descr_zaton.ltx В скваде непися в target_smart вместо скадовска пишешь имя смарта баржи Ноя и всё, но это будет выглядеть некрасиво.
Воскресенье, 05.07.2015, 15:37
Статус :
Сообщений :
666
Регистрация :
30.06.2012
Статус :
Новичок :
Сообщений :
267
Награды :
3
Регистрация :
24.04.2015
Rap4ik , Да в том вопрос,что там есть анимации уже.вот в этом проблема.Добавлено (05.07.2015, 16:00) --------------------------------------------- просто как сквад сделать и все надо да?
Сообщение отредактировал Arhnagel228 - Воскресенье, 05.07.2015, 15:59
Воскресенье, 05.07.2015, 16:00
Статус :
Сообщений :
666
Регистрация :
24.04.2015
tema796
Воскресенье, 05.07.2015, 16:19 | Сообщение # 6
Статус :
Отмычка :
Сообщений :
168
Награды :
6
Регистрация :
20.08.2011
Arhnagel228 , Код
[zat_b18_noah_squad]:online_offline_group faction = stalker npc = zat_b18_noah, zat_bandit_medic target_smart = zat_b18 sympathy = 0 spawn_point = zat_b18_noah_spawn_point story_id = zat_b18_noah_squad
Воскресенье, 05.07.2015, 16:19
Статус :
Сообщений :
666
Регистрация :
20.08.2011
Статус :
Новичок :
Сообщений :
267
Награды :
3
Регистрация :
24.04.2015
tema796 , Спасибо!Выручил!
Воскресенье, 05.07.2015, 16:35
Статус :
Сообщений :
666
Регистрация :
24.04.2015
Joni_009
Воскресенье, 05.07.2015, 17:09 | Сообщение # 8
Статус :
Бывалый :
Сообщений :
1008
Награды :
14
Регистрация :
25.05.2014
Воскресенье, 05.07.2015, 17:09
Статус :
Сообщений :
666
Регистрация :
25.05.2014
Статус :
Новичок :
Сообщений :
267
Награды :
3
Регистрация :
24.04.2015
спасибо за урок!
Сообщение отредактировал Arhnagel228 - Понедельник, 06.07.2015, 11:40
Понедельник, 06.07.2015, 09:03
Статус :
Сообщений :
666
Регистрация :
24.04.2015
FantomICW
Понедельник, 06.07.2015, 09:26 | Сообщение # 10
Проект Смерти Вопреки
Статус :
Опытный :
Сообщений :
2259
Награды :
8
Регистрация :
06.01.2013
Arhnagel228 , я так понимаю, настали темные дни создания НПС? Медики, механики, проводники - все на голову валятся В XML неправильно прописал/не прописал НПС. Смотри секцию дескрипшена НПС (character_desc_...xml и его класса (npc_profiles.xml ). И, кстати, это на механика ругается.
Понедельник, 06.07.2015, 09:26
Статус :
Сообщений :
666
Регистрация :
06.01.2013
Статус :
Новичок :
Сообщений :
267
Награды :
3
Регистрация :
24.04.2015
FantomICW , да я понял спасибо)Добавлено (06.07.2015, 13:48) --------------------------------------------- Эм,я так и думал,В алл спавн переделал,поставил там как медика и др.Но медик не появился.Это в simulation?
Понедельник, 06.07.2015, 13:48
Статус :
Сообщений :
666
Регистрация :
24.04.2015
Модмейкер-одиночка
Статус :
Опытный :
Сообщений :
2272
Награды :
17
Регистрация :
30.06.2012
Arhnagel228 , читай урок, там всё написано.
Понедельник, 06.07.2015, 14:49
Статус :
Сообщений :
666
Регистрация :
30.06.2012
Сообщений :
492
Регистрация :
02.08.2013
А как собственно называется анимация сидящего НПС на стуле\кровати, а не на ящиках?
Четверг, 09.07.2015, 11:48
Статус :
Сообщений :
666
Регистрация :
02.08.2013
Проект Смерти Вопреки
Статус :
Опытный :
Сообщений :
2259
Награды :
8
Регистрация :
06.01.2013
Возрождённый , animpoint_sit_normal ?
Четверг, 09.07.2015, 16:30
Статус :
Сообщений :
666
Регистрация :
06.01.2013
Сообщений :
492
Регистрация :
02.08.2013
FantomICW , О, спасибо, браток.
Четверг, 09.07.2015, 18:39
Статус :
Сообщений :
666
Регистрация :
02.08.2013