Создание нового оружия — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Создание нового оружия — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
(Отмена правки 14554, сделанной участником 5.228.9.32 (обс.))
(Готовый бизнес, высокий доход.)
Строка 1: Строка 1:
В этой статье мы научимся создавать новые образцы вооружения. Для начала, мы будем использовать модели из оригинальной игры. Если вы хотите создать оружие, имеющее уникальный внешний вид, ознакомьтесь с [[Создание моделей и их добавление в игру|уроком]] по созданию моделей.
+
Предлагаем Вам готовый бизнес по дропшипингу в который уже входят:  
 
+
Добавим в игру '''АК101'''.
+
 
+
==Внешний вид==
+
 
+
Позаботимся о том, чтобы наше оружие отличалось внешне от того же '''АК74'''.
+
 
+
===Текстуры===
+
 
+
Нарисуем для оружия новую текстуру. Подробно останавливаться на этом процессе не буду, ознакомьтесь с примером, приведенным [[Изменение текстур#Изменение текстур моделей|здесь]]. Итак, основываясь на текстуре '''АК74''', мы сделали вот такую текстуру:
+
 
+
[[Изображение:500px-AK101 texture.jpg]]
+
 
+
Файлы текстур мы назвали:
+
 
+
* '''wpn_ak10.dds'''
+
* '''wpn_ak10_bump#.dds'''
+
* '''wpn_ak10_bump.dds'''
+
 
+
===Модели===
+
 
+
Новых моделей мы пока делать не станем, просто воспользуемся дублированными моделями от '''АК74'''. Скопируем папку:
+
 
+
'''gamedata\meshes\weapons\ak74\'''
+
 
+
И назовем её '''ak-101'''. Содержимое, соответственно, переименуем в:
+
 
+
* '''wpn_ak101.ogf'''
+
* '''wpn_ak101_hud.ogf'''.
+
 
+
Теперь пропишем в эти модели созданные нами текстуры. Способ описан [[Изменение текстур#Создание новых visual для использования с новыми объектами|здесь]]'''.
+
 
+
P.S. от Кепа: Вобще, если вы создаёте новое оружие на основе старой модели, то удобней будет прописывать его через файл gamedata\config\misc\unique_items.ltx (в Тени чернобыля). В Чистом небе уникальные стволы лежат в файлах оружия.
+
Смысл в том, что вам не нужно бутет переписывать все значения оружия в новый файл, а просто надо добавить ссылки на новые текстуры и описания, и перечислить свойства, которые Вы хотите заменить. Кроме того, создавая отдельный файл модели для нового оружия Вы тупо загружаете одну и туже информацию в память по второму кругу (это нехорошо, да). Всё остальное надо делать также как написано далее.
+
 
+
Если создаете оружие с новой моделью то обязательно не оставляйте её без изменений.Почему-то в игре не может быть двух оружий с одинаковыми моделями.И еще-если вы создаете прототипное оружие(меняете часть конфигов) то обязательно кладите конфиг в соответствующий файл(в ЧН и ЗП это файл с оружием-прототипом,а в ТЧ unique_items) иначе при загрузке игра будет вылетать,примерно так:
+
argument:can not find section 'название вашего оружия'
+
 
+
===Иконки===
+
 
+
Добавим в игру иконки, которыми оружие будет отображаться в инвентаре. Способ подробно описан [[Изменение текстур#Изменение иконок предметов|здесь]].
+
 
+
Вот, что получилось в конечном итоге:
+
 
+
[[Изображение:500px-AK101 icon.jpg]]
+
 
+
==Конфиги==
+
 
+
Новое оружие мы будем делать на базе оригинальных конфигурационных файлов. Создадим '''АК101''' на базе конфигов '''АК74'''.
+
 
+
===Свойства оружия===
+
 
+
Скопируем файл из папки:
+
 
+
'''gamedata\config\weapons\ak74.ltx'''
+
 
+
Назовем его '''ak101.ltx'''.
+
 
+
 
+
Отредактируем свойства по своему усмотрению (но лучше - в соответствии с достоверной информацией о характеристиках оружия, т.к. '''АК101''' - всё-таки оружие реально существующее). Редактирование конфигов оружия подробно описано в отдельном [[Редактирование оружия|уроке]]. В данном случае конфиг был составлен таким образом:
+
 
+
<ini>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
[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]
+
- 15 одностраничных сайтов (самые трендовые товары на данный момент).  
allow_inertion = true
+
- Два самых надежных поставщика работающих по дропшипингу!
 
+
(Поставщики проверялись неоднократно, и было выбрано 2 самых надежных и выгодных)  
;similar to corresponding params in weapon section but for 1st person view
+
- Мы Вас научим правильно использовать РСЯ.  
 
+
- Наша поддержка от 3-х месяцев.  
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
+
Все подробности у нас на сайте. ( biznes.zarplatt.ru )  
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</ini>
+
 
+
===Регистрация===
+
 
+
Итак, с характеристиками разобрались. Теперь зарегистрируем оружие в файле '''weapons.ltx'''. Для этого пропишем в него строку следующего вида:
+
 
+
<pre>#include "w_ak101.ltx"</pre>
+
 
+
Также, необходимо прописать модели, используемые для отображения оружия, в '''prefetch.ltx''':
+
 
+
<ini>[...]
+
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
+
[...]</ini>
+
 
+
Так же не забудте в файле '''mp_ranks.ltx''' прописать после '''available_items''' (которое внизу)
+
прописать название своего оружия. Это предотвратит вылет при убийстве ГГ а также вылет при выкидывании оружия из инвентаря.
+
 
+
==Добавление в игру==
+
 
+
Осталось добавить оружие в игру.
+
 
+
Выдайте его некоторым NPC ([[Редактирование NPC#Практика|как это сделать?]]), расширьте ассортимент торговцев ([[Редактирование торговцев#Расширяем ассортимент|как это сделать?]]).
+
 
+
А вот как оно будет выглядеть в игре:
+
 
+
[[Изображение:Russian_Guns_3.jpeg]]
+
 
+
P.S. При создании нового оружия можно допустить некоторые ошибки в конфиге, что приведёт к вылету игры.
+
При таком случае сразу после вылета игры заходим в любой текстовый редактор и нажимаем клавиши Ctrl+V (вставить) и внизу можно увидеть из-за какой ошибки вылетела игра, а там уже дело техники исправить ошибку...
+
 
+
 
+
<code>Expression    : fatal error
+
Function      : CModelPool::Instance_Load
+
File          : E:\stalker\patch_1_0004\xr_3da\xrRender\ModelPool.cpp
+
Line          : 111
+
Description  : <no expression>
+
Arguments    : Can't find model file 'weapons\gaussmod\wpn_gauss_hud.ogf'.</code>
+
 
+
В данном примере видно, что либо вы не создали папку с необходимой моделью оружия, либо неправильно прописан путь к нужному файлу...
+
 
+
(Чтобы в игре название и описание оружия были не от АК-74 а от нашей АК-101 делаем как написано в этой [http://stalkerin.gameru.net/wiki/index.php/%D0%A1%D0%BF%D0%B0%D0%B2%D0%BD_%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BE%D0%B2 статье], всё начиная с "''И description = enc_equipment_food_bread1 на description = enc_equipment_food_bread1_test''" вам понадобится.)
+
Информацию о оружии можно найти [http://world.guns.ru здесь.]
+
 
+
'''АК-101''' - ''Автомат Калашникова АК-101 является экспортной модификацией штатного автомата Российской армии АК-74М. Главным (и фактически единственным) отличием АК-101 от АК-74М является калибр - автомат "сотой" серии использует патроны калибра 5.56мм (5.56х45 НАТО) и соответствующие магазины, в остальном автоматы идентичны.''
+
 
+
==Авторы==
+
 
+
Статья создана:
+
*[[Участник:BAC9-FLCL|BAC9-FLCL]]
+
 
+
Статья подправлена:
+
*[[Участник:Хемуль04|Хемуль04]]
+
 
+
По материалам мода [[Mod:Russian Guns|Russian Guns]] за авторством:
+
*[[Участник:Tony|Tony]]
+
*[[Участник:lez0|lez0]]
+
 
+
[[Категория:Конфигурационные_файлы]]
+
 
+
Когда будете прописыватьв конфиге значения "inv_grid_y" и "inv_grid_x" имейте в виду, что отсчет по сетке идет с верхнего левого угла и указывать нужно верхний левый угол картинки, которая должна отображатся в инвентаре. То есть координаты самого первого угла будут 0;0. Самая первая винтовка в файле ...\S.T.A.L.K.E.R\gamedata\textures\ui\ui_icon_equipment.dds это - СВД. И если вы посмотрите ее конфигурационный файл то увидете, что там указаны значения inv_grid_x = 0  inv_grid_y = 0.  Отсчет по оси X идет по горизонтали с лева на право, а по оси Y - сверху вниз по возрастающей. Но считать с начала сетки - очень не удобно, поэтому вычисляйте координаты вашего обьекта по известным координатам уже существующего и реально правильно отображаемого файла в игре. Например мы имеем inv_grid_x= 5 inv_grid_y= 9 для fn2000(координаты верхнего левого угла) и мы хотим узнать координаты гранатф ф1, которая находится рядом. Для этого удобно использовать фотошоп с сеткой 50 на 50 пикселей. (как ее сделать описано по ссылке в статье к которой написана эта поправка.) И так мы видим что граната находится сразу справа порсле винтовки. То есть на 4-й клетке после квадрата угла винтовки без его учета. Она находится спраа, а значит нужно по оси X к 5 прибавить 4, и получится 9. По оси Y координтаы не изменились так как они находятся на одной линии с винтовкой. Таким образом получает коордитаны гранаты 9 по Х и 9 по Y. Если мы посмотрим конфиг гранаты то увидим там "inv_grid_x= 9" "inv_grid_y= 9". То что и соответствует тому, что мы высчитали. :) Удачи.
+

Версия 18:50, 25 ноября 2016

Предлагаем Вам готовый бизнес по дропшипингу в который уже входят:

- 15 одностраничных сайтов (самые трендовые товары на данный момент). - Два самых надежных поставщика работающих по дропшипингу! (Поставщики проверялись неоднократно, и было выбрано 2 самых надежных и выгодных) - Мы Вас научим правильно использовать РСЯ. - Наша поддержка от 3-х месяцев.

Ваша задача только в обработке заказа и передачи его поставщику. Каждый заказ Вы сможете отследить по специальному трек номеру. Вам не нужно ИП, ООО или любой другой вид юридической деятельности. Вся бухгалтерия (чехи, гарантия) закреплена за поставщиком.

Все подробности у нас на сайте. ( biznes.zarplatt.ru )

- Данный вид бизнеса практически не требует начального капитала.

Другие места
LANGUAGE