Cop. Урок по созданию нового оружия
Я не разу не находил урока по созданию нового оружия по ЗП и вот решил сам написать. Я добавлю снайперскую винтовку КСВК
Сначало идем в gamedata\configs\weapons и создаем файл под названием w_ksvk.ltx, и пишем в него секцию:
[wpn_ksvk]:identity_immunities,weapon_probability,default_weapon_params GroupControlSection = spawn_group $spawn = "weapons\ksvk" ; option for Level Editor $npc = on ; option for Level Editor $prefetch = 8 scheduled = off ; option for ALife Simulator cform = skeleton class = WP_SVU description = st_wpn_ksvk_descr ef_main_weapon_type = 3 ef_weapon_type = 11 default_to_ruck = false sprint_allowed = true ;------------------------------------------------------------------------------- cost = 200000 weapon_class = sniper_rifle inv_weight = 15.4 ;----TTX------------------------------------------------------------------------ hit_power = 350 hit_impulse = 3525 hit_type = fire_wound fire_distance = 2000 bullet_speed = 700 ;800 ;начальная скорость пули rpm = 40 rpm_empty_click = 200 use_aim_bullet = false ;Поддерживается ли первая суппер пуля time_to_aim = 1.0 hud = wpn_ksvk_hud misfire_probability = 0.00000005 ;вероятность осечки при максимальном износе !!!old - now not working ;изношенность, при которой появляется шанс осечки misfire_start_condition = 0.000006 ;изношеность при которой шанс осечки становится константным misfire_end_condition = 0.0000001 ;шанс осечки при изношености больше чем misfireStartCondition misfire_start_prob = 0.0000065 ;шанс осечки при изношености больше чем misfireEndCondition misfire_end_prob = 0.0000000065 ;увеличение изношености при одиночном выстреле condition_shot_dec = 0.000000065 ;увеличение изношености при выстреле очередью condition_queue_shot_dec = 0.000000065 ammo_elapsed = 10 ammo_mag_size = 5 fire_modes = 1;, -1 ammo_class = ammo_7.62x54_7h1 hand_dependence = 1 single_handed = 0 ;---дисперсия------------------------------------------------------------------------- ;базовая дисперсия fire_dispersion_base = 0.01 ;угол (в градусах) базовой дисперсии оружия (оружия зажатого в тисках) control_inertion_factor = 1.7 crosshair_inertion = 6.15 ;отдача cam_return = 1 cam_relax_speed = 3.0 ;скорость возврата в исходное положение cam_relax_speed_ai = 360 ;скорость возврата в исходное положение cam_dispersion = 1.8 ;увеличения угла (в градусах) с каждым выстрелом cam_dispersion_inc = 1.8 ;увеличениe cam_dispersion с каждым выстрелом cam_dispersion_frac = 1.0 ;ствол будет подыматься на cam_dispersion*cam_dispersion_frac +- cam_dispersion*(1-cam_dispersion_frac) cam_max_angle = 12.0 ;максимальный угол отдачи cam_max_angle_horz = 3.0 ;(degree) maximum shot horizontal degree cam_step_angle_horz = 1.5 ;(degree) size of step camera moved in horizontal position while shooting ;PDM_disp_base = 0.85 ;PDM_disp_vel_factor = 3.4 ;PDM_disp_accel_factor = 3.4 ;PDM_disp_crouch = 1.0 ;PDM_disp_crouch_no_acc = 1.0 PDM_disp_base = 2.0 PDM_disp_vel_factor = 4.0 PDM_disp_accel_factor = 4.0 PDM_disp_crouch = 1.0 PDM_disp_crouch_no_acc = 1.0 zoom_cam_relax_speed = 0.7 ; scope & ironsight zoom_cam_relax_speed_ai = 120.75 zoom_cam_dispersion = 0.65 zoom_cam_dispersion_inc = 0.65 zoom_cam_dispersion_frac = 1.0 zoom_cam_max_angle = 10.0 zoom_cam_max_angle_horz = 5.0 zoom_cam_step_angle_horz = 0.5 fire_dispersion_condition_factor = 10 ;увеличение дисперсии в процентах при максимальном износе ;---DOF------------------------------------------------------------------------- ;zoom_dof = 0.5, 1.0, 350 reload_dof = 0.0, 0.5, 5, 2 ;------------------------------------------------------------------------------- holder_range_modifier = 2.15 ; во сколько раз увеличивается eye_range holder_fov_modifier = 1.0 ; во сколько раз увеличивается eye_fov min_radius = 5 max_radius = 250 hit_probability_gd_novice = 1 hit_probability_gd_stalker = 1 hit_probability_gd_veteran = 1 hit_probability_gd_master = 1 ;------------------------------------------------------------------------------- slot = 1 ; // secondary animation_slot = 2 ; type of the animation that will be used inv_name = st_wpn_ksvk inv_name_short = st_wpn_ksvk inv_grid_width = 6 inv_grid_height = 2 inv_grid_x = 7 inv_grid_y = 34 upgr_icon_x = 594 upgr_icon_y = 395 upgr_icon_width = 294 upgr_icon_height = 80 kill_msg_x = 0 kill_msg_y = 59 kill_msg_width = 80 kill_msg_height = 26 ;------------------------------------------------------------------------------- position = -0.026, 0.0, -0.02 orientation = 0, 0, 0 fire_point = 0.0, 0.128, 0.522 fire_point2 = 0.0, 0.128, 0.522 flame_particles = weapons\generic_weapon05 smoke_particles = weapons\generic_shoot_00 rpm_empty_click = 200 shell_point = 0.0, 0.128, 0.0 shell_dir = 0.0, 0.0, 0.4 shell_particles = weapons\generic_shells ;--STRAP PARAMETERS----------------------------------------------------------------- ;под мишкой strap_position = -0.26,-0.11,0.25 ; position (offset) and orientation of the weapon when it is strapped strap_orientation = -15,-9,110 ; (3rd person view in degrees) strap_bone0 = bip01_spine2 strap_bone1 = bip01_spine1 startup_ammo = 10 visual = dynamics\weapons\wpn_ksvk\wpn_ksvk.ogf light_disabled = true light_color = 0.6,0.5,0.3 light_range = 4.0 light_var_color = 0.05 light_var_range = 0.5 light_time = 0.2 ph_mass = 3 ;addons scope_status = 1 silencer_status = 0 grenade_launcher_status = 0 zoom_enabled = true zoom_rotate_time = 0.35 scope_zoom_factor = 10 ;ПСО-1 4X scope_texture = wpn_crosshair scope_name = wpn_addon_scope scope_x = 60 scope_y = -2 ;звуки snd_draw = weapons\svu_draw snd_holster = weapons\generic_holster snd_shoot = weapons\n_svu_shot snd_empty = weapons\gen_empty, 0.5 snd_reload = weapons\svu_reload snd_close = weapons\generic_close [wpn_ksvk_hud]:hud_base zoom_hide_crosshair = true attach_place_idx = 0 item_visual = dynamics\weapons\wpn_ksvk\wpn_ksvk_hud hands_position = -0.044500,-0.209998,0.273998 hands_orientation = 1.800001,-0.600001,0.200002 hands_position_16x9 = 0.005000,-0.227498,0.332498 hands_orientation_16x9 = 3.649998,2.150000,-0.250000 item_position = 0,0,-0.02 item_orientation = 0,0,0 shell_point = 0.025,0.05,0.124 shell_dir = 0.0, 1.0, 0.0 shell_bone = wpn_body fire_point = 0.0,0.043,0.795 fire_bone = wpn_body aim_hud_offset_pos = -0.071000,0.031999,-0.103000 aim_hud_offset_rot = -0.002500,0.020000,0.000000 aim_hud_offset_pos_16x9 = -0.143500,0.024000,-0.120500 aim_hud_offset_rot_16x9 = -0.005000,-0.005000,0.000000 gl_hud_offset_pos = 0,0,0 gl_hud_offset_rot = 0,0,0 lean_hud_offset_pos = 0,0,0 lean_hud_offset_rot = 0,0,0 anm_show = svu_draw anm_hide = svu_holster anm_shots = svu_shoot anm_reload = svu_reload anm_bore = svu_idle_bore anm_idle = svu_idle anm_idle_aim = svu_idle_aim anm_idle_moving = svu_idle_moving anm_idle_sprint = svu_idle_moving
Без пояснения, это и так вы должны знать.
Потом сходим в файл gamedata\configs\weapons\weapons.ltx и добовляем вот это - #include "w_ksvk.ltx", вот так оно будет выглядеть там:
#include "w_g36.ltx" #include "w_ksvk.ltx" #include "w_pkm.ltx" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Огнестрельное оружие ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Теперь идем в файл mp_ranks.ltx, по адресу gamedata\configs\mp и пишем там вот это - wpn_ksvk, где то между ними:
wpn_wincheaster1300_trapper, wpn_ksvk, wpn_g36_nimble |(39)
Это что бы вылета не было когда вас убъют.
Теперь идем в gamedata\configs\text\rus\st_items_weapons.xml и пишем в самом низу:
<string id="st_wpn_ksvk"> <text>Свое название</text> </string> <string id="st_wpn_ksvk_descr"> <text>Свой текст.</text> </string>
Все с конфигами покончено, теперь текстуры. Идем в папку gamedata\textures\wpn и создаем там паку с названием ksvk, внего кидаем 5 текстур, вот их названия:
1.dds, 1_bump.dds, 3.dds, 1_bump#.dds, 2.dds
Ну и конечно же иконка, ее здесь ставить gamedata\textures\ui\ui_icon_equipment.dds
Теперь модели, идем в папку gamedata\meshes\dynamics\weapons и создаем папку wpn_ksvk и кидаем две модели, с названием:
wpn_ksvk.ogf, wpn_ksvk_hud.ogf.
Надеюсь не впервом классе и знаете как добавить ГГ в начале игры.
Все, если все сделано правильно, то она у вас будет, очень меткая, и не изнашеваемая.
Автор: mmihaill