В этой статье мы научимся создавать новые образцы вооружения. Для
начала, мы будем использовать модели из оригинальной игры. Если вы
хотите создать оружие, имеющее уникальный внешний вид, ознакомьтесь с
уроком по созданию моделей.
Добавим в игру АК101.
Внешний вид
Позаботимся о том, чтобы наше оружие отличалось внешне от того же АК74. Текстуры
Нарисуем
для оружия новую текстуру. Подробно останавливаться на этом процессе не
буду, ознакомьтесь с примером, приведенным здесь. Итак, основываясь на
текстуре АК74, мы сделали вот такую текстуру:
Файлы текстур мы назвали: wpn_ak10.dds wpn_ak10_bump#.dds wpn_ak10_bump.dds Модели
Новых моделей мы пока делать не станем, просто воспользуемся дублированными моделями от АК74. Скопируем папку:
gamedata\meshes\weapons\ak47\
И назовем её ak-101. Содержимое, соответственно, переименуем в: wpn_ak101.ogf wpn_ak101_hud.ogf.
Теперь пропишем в эти модели созданные нами текстуры. Способ описан здесь. Иконки
Добавим в игру иконки, которыми оружие будет отображаться в инвентаре. Способ подробно описан здесь.
Вот, что получилось в конечном итоге:
Конфиги
Новое оружие мы будем делать на базе оригинальных конфигурационных файлов. Создадим АК101 на базе конфигов АК74. Свойства оружия
Скопируем файл из папки:
gamedata\config\ak74.ltx
Назовем его ak101.ltx.
Отредактируем
свойства по своему усмотрению (но лучше - в соответствии с достоверной
информацией о характеристиках оружия, т.к. АК101 - всё-таки оружие
реально существующее). Редактирование конфигов оружия подробно описано в
отдельном уроке. В данном случае конфиг был составлен таким образом: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [wpn_ak101]:identity_immunities GroupControlSection = spawn_group discovery_dependency = $spawn = "weapons\ak-101" ; name and section in level editor $npc = on $prefetch = 8 scheduled = off ;[] option for ALife Simulator cform = skeleton class = WP_AK74 ; class of the weapon that corresponding to CPP class min_radius = 30 ; [] for AI max_radius = 100 ; [] for AI description = enc_weapons1_wpn-ak101
ef_main_weapon_type = 2 ef_weapon_type = 6
;----------------------------------------------------------------------------------- holder_range_modifier = 1.0 ; во сколько раз увеличивается eye_range holder_fov_modifier = 0.7 ; во сколько раз увеличивается eye_fov ;-----------------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;HUD offset in zoom mode (to all) ;(use CONSOLE: hud_adjust_mode 0,1,2, then keys WSADQE and P to show current value in console)
Итак,
с характеристиками разобрались. Теперь зарегистрируем оружие в файле
weapons.ltx. Для этого пропишем в него строку следующего вида: #include "w_ak101.ltx"
Также, необходимо прописать модели, используемые для отображения оружия, в prefetch.ltx: [...] weapons\abakan\wpn_abakan weapons\abakan\wpn_abakan_hud weapons\ak-101\wpn_ak101 weapons\ak-101\wpn_ak101_hud weapons\ak74\wpn_ak74 weapons\ak74\wpn_ak74_hud [...]
Так
же не забудте в файле mp_ranks.ltx прописать после available_items
(которое внизу) прописать название своего оружия. Это предотвратит вылет
при убийстве ГГ. Добавление в игру
Осталось добавить оружие в игру.
Выдайте его некоторым NPC (как это сделать?), расширьте ассортимент торговцев (как это сделать?).