Вы находитесь на странице: 1из 7

Создание нового оружия

Материал из Mod Wiki.


Перейти к: навигация, поиск

В этой статье мы научимся создавать новые образцы вооружения. Для начала,


мы будем использовать модели из оригинальной игры. Если вы хотите создать
оружие, имеющее уникальный внешний вид, ознакомьтесь с уроком по
созданию моделей.

Добавим в игру АК101.

Содержание
1 Внешний вид
1.1 Текстуры
1.2 Модели
1.3 Иконки
2 Конфиги
2.1 Свойства оружия
2.2 Регистрация
3 Добавление в игру
4 Авторы

Внешний вид
Позаботимся о том, чтобы наше оружие отличалось внешне от того же АК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
;-----------------------------------------------------------------------------------

cost = 2;4000
weapon_class = assault_rifle

ammo_limit = 210
ammo_elapsed = 30

ammo_mag_size = 30
fire_modes = 1, -1

ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap


grenade_class = ammo_vog-25, ammo_vog-25p
launch_speed = 0

hand_dependence = 1
single_handed = 0

slot = 2
animation_slot = 2
inv_name = wpn-ak101
inv_name_short = wpn-ak101
inv_weight = 3.3

inv_grid_width = 5
inv_grid_height = 2
inv_grid_x = 11
inv_grid_y = 29

kill_msg_x = 0
kill_msg_y = 28
kill_msg_width = 84
kill_msg_height = 28

;-----------------------------------------------------------------------------------
;params of weapon recoil

fire_dispersion_base = 0.15;0.2
control_inertion_factor = 1.1f;1.25f

;отдача
cam_relax_speed =6;5;3.5; 0.15
cam_dispersion = 0.1;0.15
cam_dispersion_inc = 0.2;0.3
cam_dispertion_frac = 0.8;0.9
cam_max_angle = 10.0
cam_max_angle_horz = 20.0
cam_step_angle_horz = 1.1;1

fire_dispersion_condition_factor = 5.7;5
misfire_probability = 0.0055;0.003
misfire_condition_k = 0.06;0.05
condition_shot_dec = 0.00035;0.0001
;-----------------------------------------------------------------------------------

fire_point = 0,0.216,0.638
fire_point2 = 0,0.216,0.730

flame_particles = weapons\generic_weapon05
smoke_particles = weapons\generic_shoot_00
grenade_flame_particles = weapons\generic_weapon01

shell_point = 0,0.216,0.174
shell_particles = weapons\generic_shells

PDM_disp_base = 1.0
PDM_disp_vel_factor = 1.3
PDM_disp_accel_factor = 1.3
PDM_crouch = 1.0
PDM_crouch_no_acc = 1.0

; ttc
hit_power = 0.36, 0.4, 0.43, 0.46
hit_impulse = 140
hit_type = fire_wound
fire_distance = 1700
bullet_speed = 1000
rpm = 750

use_aim_bullet = true
time_to_aim = 1.0

;params when silencer is attached


;similar to corresponding params without prefix silencer_

silencer_hit_power = 0.38
silencer_hit_impulse = 120
silencer_fire_distance = 250
silencer_bullet_speed = 600

hud = wpn_ak101_hud

position = -0.026,-0.172,0
orientation = 0,0,0

;--STRAP PARAMETERS-----------------------------------------------------------------
strap_position = -0.16,-0.40,0.15
strap_orientation = -10,-5,10
strap_bone0 = bip01_spine2
strap_bone1 = bip01_spine1

visual = weapons\ak-101\wpn_ak101

light_color = 0.6,0.5,0.3
light_range = 5
light_var_color = 0.05
light_var_range = 0.5
light_time = 0.2

ph_mass = 5

;addons
scope_status = 2
silencer_status = 2
grenade_launcher_status = 0;2

zoom_enabled = true
scope_zoom_factor = 50

scope_name = wpn_addon_scope
scope_x = 42
scope_y = 3
silencer_name = wpn_addon_silencer
silencer_x = 218
silencer_y = 13
grenade_launcher_name = wpn_addon_grenade_launcher
grenade_launcher_x = 116
grenade_launcher_y = 23

;sounds (name of the sound, volume (0.0 - 1.0), delay (sec))


snd_draw = weapons\ak74_draw
snd_holster = weapons\generic_holster
snd_shoot = weapons\ak74_shot_0
snd_shoot1 = weapons\ak74_shot_1
snd_shoot2 = weapons\ak74_shot_2
snd_shoot3 = weapons\ak74_shot_3
snd_empty = weapons\gen_empty, 0.5
snd_reload = weapons\ak74_reload, 0.7, 0.35
snd_shoot_grenade = weapons\gen_grenshoot
snd_reload_grenade = weapons\gen_grenload, 1.0, 0.8
snd_switch = weapons\groza_switch, 1.0, 0.5

;params when silencer is attached


;similar to corresponding params without prefix silencer_

;silencer_flame_particles = weapons\generic_weapon01
silencer_smoke_particles = weapons\generic_shoot_00

snd_silncer_shot = weapons\w_ak74_shot1

silencer_light_color = 0.6,0.5,0.3
silencer_light_range = 0.01
silencer_light_var_color = 0.05
silencer_light_var_range = 0.5
silencer_light_time = 0.2

;-----------------------------------------------------------------------------
;-- HUD DESCRIPTION
;-----------------------------------------------------------------------------
[wpn_ak101_hud]
allow_inertion = true

;similar to corresponding params in weapon section but for 1st person view

shell_point = -0.065000,0.000000,-0.045000
shell_dir = 0.0, 1.0, 0.0

fire_point = 0.09,0.020,-0.06
fire_point2 = 0.30, 0.00, 0.05
fire_bone = wpn_body

orientation = 0, 0, 0
position = 0, 0, 0.05
visual = weapons\ak-101\wpn_ak101_hud

grenade_bone = wpn_grenade

; animation names

anim_idle = idle
anim_idle_aim = idle_aim
anim_reload = reload
anim_draw = draw_wo_gl
anim_holster = holster_wo_gl
anim_shoot = shoot

; animation names
; attached grenade launcher [GRENADE fire mode]
anim_idle_g = idle_grenade
anim_idle_g_aim = idle_g_aim
anim_reload_g = reload_grenade
anim_shoot_g = shoot_grenade
anim_switch_grenade_on = switch_grenade
anim_switch_grenade_off = switch_grenade_off
anim_draw_g = draw_grenade_mode
anim_holster_g = holster_grenade_mode

; attached grenade launcher [NORMAL fire mode]


anim_idle_gl = idle_w_gl
anim_idle_gl_aim = idle_w_gl_aim
anim_reload_gl = reload_w_gl
anim_draw_gl = draw_w_gl
anim_holster_gl = holster_w_gl
anim_shoot_gl = shoot_w_gl
anim_idle_sprint = idle_sprint

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;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)

zoom_offset = -0.112400,0.016800,-0.115000
zoom_rotate_x = 0.000200
zoom_rotate_y = 0.017500

zoom_hide_crosshair = true

; same as above, but for attached grenade launcher for


; in NORMAL shoot mode

grenade_normal_zoom_offset = -0.112500,0.014000,0.000000
grenade_normal_zoom_rotate_x = -0.000900
grenade_normal_zoom_rotate_y = 0.017200

; same as above, but for attached grenade launcher for


; in GRENADE mode

grenade_zoom_offset = -0.039600,-0.433100,0.000000
grenade_zoom_rotate_x = -0.538700
grenade_zoom_rotate_y = -0.033800

Регистрация
Итак, с характеристиками разобрались. Теперь зарегистрируем оружие в
файле 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
[...]

Добавление в игру
Осталось добавить оружие в игру.

Выдайте его некоторым NPC (как это сделать?), расширьте ассортимент


торговцев (как это сделать?).

А вот как оно будет выглядеть в игре:

Изображение:Russian_Guns_3.jpeg

Авторы
Статья создана:

BAC9-FLCL

По материалам мода Russian Guns за авторством:

Tony
lez0

Получено с http://sdk.stalker-
game.com/ru/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D

Категория: Статьи участников

Просмотры

Статья
Обсуждение
Просмотр
История

Личные инструменты

Представиться системе

Навигация

Заглавная страница
Новости портала
База знаний
Случайная страница

Портал

Форум
Список MOD'ов
Модмейкеры

Документация
Справка по SDK
Статьи участников
Глоссарий
Справка по сайту

Служебные

Свежие правки
Все страницы
Категории
Шаблоны
Список участников
F.A.Q.
Учебник
Регистрации команд
Редактировать ЭТО

Поиск

Перейти Найти

Инструменты

Ссылки сюда
Связанные правки
Загрузить файл
Спецстраницы
Версия для печати
Постоянная ссылка

Последнее изменение этой страницы: 17:32, 31 июля 2007.


К этой странице обращались 215 раз.
Политика конфиденциальности
О портале
Отказ от ответственности