..::STALKER.BY::.. http://stalker.by/forum/ |
|
Создаём НПС в ЗП http://stalker.by/forum/viewtopic.php?f=534&t=2601 |
Страница 1 из 1 |
Автор: | DiGGeR225 [ 05 мар 2011, 14:02 ] |
Заголовок сообщения: | Создаём НПС в ЗП |
Автор:RaDJa Уроков по созданию npc много, но многие из них не понятны, поэтому я сделал свою статью по этой теме. Урок прменим и к ТЧ, и к ЧН, и к ЗП. Для работы нужна программа Active Perl (её нужно просто скачать и установить) и ACDC (в ней мы и будем работать) Замечу, что для каждого Сталкера нужен свой ACDC. После того как скачали эти программы в папке с ACDC создаём .bat файлы: decompile и compile. Первый батник будет распаковывать all.spawn, второй запаковывать обратно изменённый all.spawn. В батнике decompile прописываем вот это: perl acdc.pl -d all.spawn pause - для ТЧ или perl acdccop.pl -d all.spawn pause - для ЗП perl acdc_cs.pl -d all.spawn pause - для ЧН в батнике compile прописываем: acdc.pl -c all.ltx pause - для ТЧ acdccop.pl -c all.ltx pause - для ЗП и т.д. далее закидываем all.spawn( путь gamedata\ spawns) в папку с acdc и запускаем decompile. Появилось много файлов ltx. Нам нужны файлы типа alife... и выбираем файл с нужной локацией. Теперь приступаем к работе. Я буду показывать пример на базе ЗП. -открываем alife_zaton -в самый конец добавляем нашего сталкера [1865] -номер объекта должен быть выше последнего объекта в файле ; cse_abstract properties section_name = stalker name = mudak -имя объекта position = 62.0999984741211,-3.55999994277954,37.5999984741211 - место где он появится(рассмотрим позже) direction = -0.0120869996026158,2.81339907646179,-0.0158249996602535 - угол поворота сталкера ; cse_alife_trader_abstract properties money = 416 character_profile = mudak -имя в character desc... ; cse_alife_object properties game_vertex_id = 292 - для каждого уровня это значение своё distance = 0 level_vertex_id = 76655 - не трогаем object_flags = 0xffffffbf custom_data = <<END [logic] cfg = scripts\mudak_logic.ltx - ссылка на файл логики нашего сталкера ; cse [smart_terrains] none = true END story_id = 10000 - будем считать его порядковым номером (для новых npc лучше ставить больше 10000) ; cse_visual properties visual_name = actors\stalker_merc\stalker_merc_4 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 2 health = 1 -поставим 0 будет лежать труп dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 62.0999984741211,-3.55999994277954,37.5999984741211 - место где он появится(рассмотрим позже) Важно! Нужно писать то же самое что и в строке position upd:o_model = 0 upd:o_torso = 2.81339907646179,-0.0120869996026158,0 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 2 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 1,2,2,1,2 predicate4 = 0,1,1,1 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties ПРИМЕР БЕЗ КОМЕНТОВ: [1865] ; cse_abstract properties section_name = stalker name = mudak position = 62.0999984741211,-3.55999994277954,37.5999984741211 direction = -0.0120869996026158,2.81339907646179,-0.0158249996602535 ; cse_alife_trader_abstract properties money = 416 character_profile = mudak ; cse_alife_object properties game_vertex_id = 292 distance = 0 level_vertex_id = 76655 object_flags = 0xffffffbf custom_data = <<END [logic] cfg = scripts\mudak_logic.ltx ; cse [smart_terrains] none = true END story_id = 10000 ; cse_visual properties visual_name = actors\stalker_merc\stalker_merc_4 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 2 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 62.0999984741211,-3.55999994277954,37.5999984741211 upd:o_model = 0 upd:o_torso = 2.81339907646179,-0.0120869996026158,0 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 2 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 1,2,2,1,2 predicate4 = 0,1,1,1 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties ТЕПЕРЬ ЗАПАКОВЫВАЕМ ОБРАТНО в all.spawn (внимание!если что-то сделано не правильно, то запаковки не будет) Если же всё правильно, то должен появится файл all.spawn.new Закидываем его в вашу gamedata\spawns и переименовываем файл в all.spawn Осталась работа в скриптах и конфигах -В папку gamedata\config(s) вкладываем файл game_story_ids, открываем его и конце пишем: 10000 = "mudak" -В папку gamedata\config(s)\creatures вставляем файл spawn_sections_zaton, открываем его и в самом конце вписываем: [mudak]:stalker $spawn = "respawn\mudak" character_profile = mudak spec_rank = novice community = stalker -Теперь по пути gamedata\config(s)\gameplay вставляем файл npc_profile и в нём пишем: <character id="mudak"> <class>mudak</class> <specific_character>mudak</specific_character> </character> -По этому же пути gamedata\config(s)\gameplay вставляем character_desc_zaton и вставляем в конце: <!---------------------------------------mudak-----------------------------------------------------> <specific_character id="mudak" team_default = "1"> <name>[цензура]</name> <icon>ui_inGame2_merc_4</icon> <bio>mudak</bio> <class>mudak</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <rank>434</rank> <reputation>5</reputation> <money min="10000" max="10000" infinitive="0"/> <snd_config>characters_voice\human_01\stalker\</snd_config> <crouch_type>-1</crouch_type> <visual>actors\stalker_merc\stalker_merc_4</visual> <supplies> [spawn] \n wpn_pm \n ammo_9x18_fmj = 1 \n wpn_ak74 \n ammo_5.45x39_fmj \n </supplies> #include "gameplay\character_criticals_4.xml" <!--<start_dialog>zat_b5_stalker_commander_dialog</start_dialog>--> </specific_character> -Осталось только дать логику нашему сталкеру, чтобы он тупо не бродил по Затону В папке gamedata\config(s)\script создаём пустой файл mudak_logic.ltx и в нём пишем: [logic] active = remark1 danger = danger_ignore [danger_ignore] ignore_distance = 5 [remark1] no_move = true Теперь можно поглазеть на нашего сталкера в игре (Он должен появится на Шевченко) Но хочу обратить внимание, что для упрощения снятия координат месторасположения npc в ТЧ можно воспользоваться во время игры консольной командой rs_stats on, а в ЗП rs_camera on |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |