Перейти к контенту

Магазинное питание оружия


Kirag

Рекомендуемые сообщения

Kirag, раз уж пошел такой разговор про большевиков, (они еще и говорят, оказывается) то если ты воплотишь все свои идеи в жизнь, то это будет уже не февральская, а Великая Октябрьская. Полный переворот. А какой простор... Только бы дождаться и только бы получилось!

 

Mordovan, ситуация такая: мод ВСС, Мертвый город, прилетел вертолет и всех пострелял. Выбежал из темницы, подхватил винтовку, она убита в дробадан, рядом другая - такая же (не знаю из чего стреляет "крокодил", но целого магазина к LR300 не нашлось еще в 5 стволах). И вот я с этой винтовкой и 300 патронов к ней шарюсь по локации с одной мыслью: где взять магазин? А теперь:

Возникла такая идея – а что если к каждому конкретному стволу (в зависимости от класса), привязать определенное число запасных магазинов.
Так я в Зоне или как? (На одном из переходов в МГ военные перестрелялись с наемниками и в одном из стволов нашел магазин к Валу, вот это было счастье!) Надеюсь я понятно выразился?

 

 

Kirag, а если ко всему, что ты описал, прицепить твои вертолеты? От них вообще возможно спрятаться? Я не смог.

 

PS. А подствольный дробовик или многозарядный подствольный гранатомет - это вообще МЕГАЧИТ. Найдёте себе соперника если у вас такое оружие? ИМХО.

Изменено пользователем Marafon6540

Поделиться этим сообщением


Ссылка на сообщение

Kirag, я у себя в сборке так и ставил, очень-очень редкое выпадание магазинов и в трупах и в оружии. Поэтому и получилось с 15 человек снял лишь один магазин. Но зато острые ощущения обеспечены, терминатора не получилось. И попрятаться пришлось и одиночными пострелять, считая каждый патрон.

 

PRO, попробуй прописать нужные тебе магазины в файле death_items_by_communities.ltx.

Поделиться этим сообщением


Ссылка на сообщение
PRO, какой магазин первым прописан в конфиге оружия, тот и спавнится. А поддерживать оружие будет ВСЕ магазины, прописаные в конфиге. Если, например, для АК впишешь первым mag_30_5.45x39_fmj, то он и будет спавниться.

Поделиться этим сообщением


Ссылка на сообщение

Kirag, попал в странную ситуацию, и не могу разобраться в чем дело.

Пытаюсь адаптировать магазины к одному из модов. Для проверки в all.spawn выдал ГГ сдедующее:

wpn_pkm

belt_250_7.62x54r=1000

wpn_ak74

mag_30_5.45x39_ap=5

По идее должно быть 1000 коробок к ПКМ по 250 патронов и 5 рожков к АК по 30 патронов. В игре же получается ПКМ и АК с 1 патроном (как и положено) и в инвентаре 4 короба к ПКМ по 249 патронов и 1 рожок к АК с 5 патронами. (Если ставлю belt_250_7.62x54r=2, то получается 1 короб с 2 патронами).

Если добавляю в в all.spawn строку ammo_5.45x39_ap=100 в игре получается в инвентаре 3000 патронов.

 

Не можешь подсказать в чем дело и где я так напортачил? Пробовал все удалять и по-новой адаптировать - результат тот же.

 

Изменено пользователем Marafon6540

Поделиться этим сообщением


Ссылка на сообщение

Kirag, спасибо, а то у меня уже шарики за ролики побежали. Пока ждал твоего ответа еще раз все убрал, совместил и получил тот же результат. Даже подумать не мог про алл.спавн такое. Хотя сейчас вроде бы вспоминаю, что уже упоминалась в теме подобная проблема.

Ну век живи - век учись. Буду пробовать по другому проверять работу магазинов. Правда заморачиваться с character_desc неохота, не хочу трогать оригинальные. Попробую просто купи-продай, благо есть возможность.

Поделиться этим сообщением


Ссылка на сообщение

Kirag, попробовал выдать через

function give_weapon(trader, actor)

dialogs.relocate_item_section(trader, "wpn_pkm", "in")

dialogs.relocate_item_section(trader, "belt_250_7.62x54r", "in")

dialogs.relocate_item_section(trader, "belt_250_7.62x54r", "in")

dialogs.relocate_item_section(trader, "belt_250_7.62x54r", "in")

dialogs.relocate_item_section(trader, "belt_250_7.62x54r", "in")

dialogs.relocate_item_section(trader, "mag_30_5.45x39_ap", "in")

dialogs.relocate_item_section(trader, "mag_30_5.45x39_ap", "in")

dialogs.relocate_item_section(trader, "mag_30_5.45x39_ap", "in")

dialogs.relocate_item_section(trader, "mag_30_5.45x39_ap", "in")

dialogs.relocate_item_section(trader, "mag_30_5.45x39_ap", "in")

dialogs.relocate_item_section(trader, "wpn_ak74", "in")

end

В результате получил ПКМ и АК с полными магазинами, короб с 4 патр. и рожок с 5 патр. Прямо напасть какая-то!

Сейчас попробую через ammo_manager.

 

Добавлено через 57 мин.:

Все получилось. То, что и надо было.

Поделиться этим сообщением


Ссылка на сообщение
Kirag, вот еще какой вопрос у меня возник. А если в ящик положить магазины через алл.спавн, то что получится? Мне надо, чтобы в ящике до поры до времени лежало 4 короба к ПКМ. Так как мне написать belt_250_7.62x54r=4 или belt_250_7.62x54r=1000. Как будет правильно?

Поделиться этим сообщением


Ссылка на сообщение
Kirag, возник еще один вопрос. По ходу мода ГГ несколько раз грабят, забирается все, вплоть до ножа и даже квестовых предметов. Возможно ли как-то сделать проверку на наличие dark_matter_container1\2 в инвентаре через bind_stalker, или g.script, или еще как-то? И если его нет тут же выдать. Так чтоб сильно машину не загружало и не подтормаживало. Или как сделать, чтобы их точно ни при каких условиях не могли отобрать?

Поделиться этим сообщением


Ссылка на сообщение

Kirag, совершенно точно ты описал. Диалог - нужная ветка - функция. Сама функция имеет вид:

function clear_actor_inventory(actor)

actor:iterate_inventory(del_item, actor)

end

function del_item(npc, item)

local section = item:section()

 

if section == "bolt" or section == "device_torch" or section == "device_pda" then

return

end

npc:mark_item_dropped(item)

alife():release(alife():object(item:id()), true)

end

Если я теперь вставлю в del_item строку:

if section == "bolt" or section == "device_torch" or section == "device_pda" or section == "dark_matter_container1" or section == "dark_matter_container2" then

return

end

Будет ли этот вариант правильным?

Изменено пользователем Marafon6540

Поделиться этим сообщением


Ссылка на сообщение

desert, насчет магазинов 5.45х39 на 75 патронов: Пулемет РПК

Хотя, честно сказать, нигде больше не нашел описания 5.45 на 75 патр., везде 7.62.

Изменено пользователем Marafon6540

Поделиться этим сообщением


Ссылка на сообщение
desert, :offtopic: во как. А я думал, что РПК вообще выпускался только под 5.45. Ну что со старого ракетчика взять? Я оружия под 5.45 даже и в руках не держал. В армии был АКМ 7.62, а уж про пулеметы и пистолеты вообще молчу - это для меня как научная фантастика. Знаю, что есть, но пощупать нельзя. ;)

Поделиться этим сообщением


Ссылка на сообщение

Псевдомышь,

:offtopic: 2. тебе надо открыть all.spawn (прогой xrSpawner) найти там объект №956 (для оригинала, в модах может быть другой) и прописать ему в секцию [spawn] то, что ты хочешь ему выдать. Другого пути я не вижу (кроме ACDC, но это сложнее).

Поделиться этим сообщением


Ссылка на сообщение

Псевдомышь,

:offtopic:

А если я захочу добавить магазин в ящик в тайнике Стрелка, или положить на полочку рядом - тоже через all.spawns?

Можно и скриптом, но долго возиться (хотя, если знаешь ID своего ящика в тайнике, то не очень долго). Через all.spawn проще, но один недостаток - новая игра.

Поделиться этим сообщением


Ссылка на сообщение

Псевдомышь,

Полагаю исправить это невозможно, или невозможно сложно. Но именно эта мелочь, из-за которой мой энтузиазм упал до отметки 0 по Фаренгейту
Эта проблема решается элементарно просто - 2-3 минуты, чтобы прописать запрет на торговлю интересующими тебя стволами и предметами для НПС в файле trade_generic.ltx. Что-то типа:
wpn_ak74_m1            ;NO TRADE
wpn_abakan_m1        ;NO TRADE
wpn_fort_m1            ;NO TRADE
wpn_ak74u_m1        ;NO TRADE
wpn_mp5_m1            ;NO TRADE

. И все. теперь даже если ты продашь кому-либо свой автомат, купить его обратно просто не сможешь.

 

Добавлено через 8 мин.:

Sutorihin2011, в своем файле конфига ПМ попробуй заменить строку anim_shoot = shoot на anim_shoot= shoot1. По идее должно помочь.

 

 

Поделиться этим сообщением


Ссылка на сообщение

Псевдомышь, ну вот видишь, проблемы то, оказывается, и нет. Как говорится - а был ли мальчик?. А насчет подбора оружия ранеными, то в оригинале кажется подбирать не будут, там надо править конфиги, чтоб подбирали.

 

Sutorihin2011, в Жести же два ПМ насколько я помню, на 8 и 12 патронов. Посмотри может параллельно нужно править и второй конфиг.

Поделиться этим сообщением


Ссылка на сообщение

Sutorihin2011, только что у себя вставил в Жесть ПМ из Арсенала. Никаких проблем, кроме одной - гильзу выбрасывает влево. Если хочешь, чтобы выбрасывал вправо, то надо править particles.xr, добавлять туда партикл arsenal_shells1. Тут я не помощник, не знаю как это делать. Вот тебе конфиг после моей правки. Если у себя ты все остальное правильно сделал, то все работает:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[wpn_pm]:identity_immunities

GroupControlSection = spawn_group

discovery_dependency =

$spawn = "weapons\pm_sk1" ; option for Level Editor

$npc = on ; option for Level Editor

$prefetch = 8

scheduled = off ; option for ALife Simulator

cform = skeleton

class = WP_PM

min_radius = 0

max_radius = 30

description = enc_arsenal_pm

 

ef_weapon_type = 5

 

;-----------------------------------------------------------------------------------

holder_range_modifier = 1.0 ; во сколько раз увеличивается eye_range

holder_fov_modifier = 1.0 ; во сколько раз увеличивается eye_fov

;-----------------------------------------------------------------------------------

 

cost = 400

 

ammo_limit = 120

ammo_current = 96

ammo_elapsed = 8

 

ammo_mag_size = 1;8; 7

ammo_class = clip_8_9x18_fmj, clip_8_9x18_pmm

 

 

hand_dependence = 1

 

slot = 1

animation_slot = 1 ; type of the animation that will be used

single_handed = 1

 

inv_name = ars-pm

inv_name_short = ars-pm

inv_weight = 0.73

 

inv_grid_width = 1

inv_grid_height = 1

inv_grid_x = 18

inv_grid_y = 6

 

kill_msg_x = 227

kill_msg_y = 82

kill_msg_width = 27

kill_msg_height = 23

 

;-----------------------------------------------------------------------------------

;базовая дисперсия

fire_dispersion_base = 0.05 ;угол (в градусах) базовой дисперсии оружия (оружия зажатого в тисках)

 

;отдача

cam_relax_speed = 0 ;скорость возврата в исходное положение

cam_dispersion = 0.4 ;увеличения угла (в градусах) с каждым выстрелом

cam_dispersion_inc = 0.0 ;увеличениe cam_dispersion с каждым выстрелом

cam_dispertion_frac = 1.0 ;ствол будет подыматься на cam_dispersion*cam_dispertion_frac +- cam_dispersion*(1-cam_dispertion_frac)

cam_max_angle = 20.0 ;максимальный угол отдачи

cam_max_angle_horz = 5.0 ;(degree) maximum shot horizontal degree

cam_step_angle_horz = 1.0 ;(degree) size of step camera moved in horizontal position while shooting

 

fire_dispersion_condition_factor= 5 ;увеличение дисперсии в процентах при максимальном износе

misfire_probability = 0.003 ;вероятность осечки при максимальном износе

misfire_condition_k = 0.05

condition_shot_dec = 0.0003 ;увеличение износа при каждом выстреле

;-----------------------------------------------------------------------------------

 

flame_particles = weapons\generic_weapon03

smoke_particles = weapons\generic_shoot_00

 

shell_point = 0.0, 0.214, 0.039

shell_dir = 0.0, 0.0, 0.4

shell_particles = weapons\generic_shells ;weapons\arsenal_shells1

 

rpm_empty_click = 100

 

PDM_disp_base = 1.0

PDM_disp_vel_factor = 0.7

PDM_disp_accel_factor = 0.7

PDM_crouch = 1.0

PDM_crouch_no_acc = 1.0

 

; ttc

hit_power = 0.48

hit_impulse = 10

hit_type = fire_wound

 

fire_distance = 500 ;1000

bullet_speed = 315 ;290 ;начальная скорость пули

rpm = 260

; end ttc

 

use_aim_bullet = true ;Поддерживается ли первая суппер пуля

time_to_aim = 1.0

 

silencer_hit_power = 0.38

silencer_hit_impulse = 8

silencer_fire_distance = 200

silencer_bullet_speed = 220

 

hud = wpn_pm_hud

normal = 0, 1, 0

position = -0.026,-0.172,0.0

orientation = 0, 0, 1

 

;--STRAP PARAMETERS-----------------------------------------------------------------

;strap_position = -0.1,-0.45,0.2 ; position (offset) and orientation of the weapon when it is strapped

;strap_orientation = 1.57,0,0 ; (3rd person view)

;strap_bone0 = bip01_spine2

;strap_bone1 = bip01_spine1

 

direction = 0, 0, 1

fire_point = 0.0, 0.208, 0.108

 

;startup_ammo = 90

visual = weapons\pm\wpn_pm.ogf

 

light_color = 0.6,0.5,0.3

light_range = 3.0

light_var_color = 0.05

light_var_range = 0.5

light_time = 0.2

 

ph_mass = 1

 

;addons

scope_status = 0

silencer_status = 2

grenade_launcher_status = 0

collimator_factor = 0

collimator_target = 0

 

zoom_enabled = true

scope_zoom_factor = 90

 

;звуки

snd_draw = weapons\generic_draw

snd_holster = weapons\generic_holster

snd_shoot = weapons\pm_shot

snd_empty = weapons\pistol_empty

snd_reload = weapons\p_reload16, 0.8

snd_close = weapons\generic_holster

 

weapon_remove_time = 5000

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; silencer

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

silencer_name = wpn_addon_sil_9_p ; section name for the attachable silencer

silencer_x = 37 ; offset in inventory icon

silencer_y = -15

 

;params when silencer is attached

;similar to corresponding params without prefix silencer_

 

silencer_hit_power = 35

silencer_hit_impulse = 60

silencer_fire_distance = 100

silencer_bullet_speed = 220

;silencer_flame_particles = weapons\generic_weapon01

silencer_smoke_particles = weapons\generic_shoot_00

snd_silncer_shot = weapons\p_silent7, 0.5

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

 

 

[wpn_pm_hud]

shell_point = -0.330000,-0.010000,0.050000

fire_point = -0.215,0.0,0.015

fire_bone = wpn_body

orientation = 0,0,0

position = 0,0,0

visual = Arsenal_Mod\wpn_pm_sk1_hud.ogf

 

anim_holster = holster

anim_idle = idle

anim_empty = empty

anim_reload = reload_full

anim_reload_empty = reload

anim_draw = draw

anim_draw_empty = draw_empty

anim_shoot = shoot

anim_shot_last = shoot_last

anim_close = holster

anim_idle_aim = idle_aim

anim_idle_sprint = idle_sprint

 

;смещения HUD для режима приближения

zoom_offset = -0.16315,0.0505,0.001

zoom_rotate_x = 0.0

zoom_rotate_y = 0.0

 

zoom_hide_crosshair = true ;to hide crosshair in zoom

 

 

 

 

В нем нужно еще выставить inv_grid_x и inv_grid_y, чтобы правильно отображался в инвентаре (здесь остались арсеналовские) , и inv_name.

Удачи!

 

Поделиться этим сообщением


Ссылка на сообщение
desert, не знаю кому как, но если еще и в продажу прописать, то вообще смысл теряется магазинного питания. Их будет такое огромное количество, что никто вообще набивать не будет, только собирать и покупать. У меня, например, при параметре выпадения от 0 до 1, к Агропрому было уже 11 магазинов. Сейчас у себя ставлю 0,0, запрещаю в продажу, так и то на мой взгляд многовато получается.

Поделиться этим сообщением


Ссылка на сообщение
Kirag, недавно адаптировал твои магазины для мода Поиск. Никакого хардкора. В xr_motivator поставил local count = math.random(0,0), в продаже у торговцев магазинов нет вообще, у НПС изредка (15-25%) можно купить, с подобранного оружия снимается в среднем 1-2 магазина с 10-12 стволов. Так вот при прохождении мода мне приходилось покупать патроны в пачках, их не хватало. А магазинов вполне достаточно и для отечественных и для натовских стволов из того, что подобрал. Единственный момент, что пришлось выдать 2 запасных магазина для уникального оружия. Но это и понятно - где же их можно еще взять? А хардкор ради самого хардкора - нет, это не наш с тобой метод. Чем мне и нравится твой мод, так это тем, что добавляет огромную долю реалистичности в игру. И намного более эффективную, чем патроны на поясе. Да, могут быть в модах моменты, когда у ГГ остается один-единственный ствол в руках, и надо чтобы в нем обязательно был магазин. Ну так при правильной адаптации такие узкие места вполне спокойно обходятся.

Поделиться этим сообщением


Ссылка на сообщение
CON, если там есть патроны на поясе то, наверное, никак. А если как обычно из рюкзака, то совместить файлы не так уж и сложно.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...