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

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


Kirag

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

Kirag, спасибо большое :) . Строку в death_manager закомментил и сразу же неиспользуемые стволы остаются на трупах с магазином и патроном... Ток первый раз когда загрузил, немного веса сбросилось, ещё раз сохранился, загрузился - всё нормально, вес не сбросился.

P.S. А про разрядку пустого магазина прошу извинить, не подумал с просони ;) .

Изменено пользователем PRO
Канал возобновляет работу.
Ссылка на комментарий

Kirag, у меня вопрос.

Возможно ли сделать так, чтобы после убийства НПС, у него спавнились разные магазины? Например:

В конфиге АК у меня прописано так - ammo_class = mag_45_5.45x39_fmj, mag_30_5.45x39_fmj, я кладу НПС с этим АК и у него спавнятся магазины только на 45 патронов...и так с каждым НПС. Та же самая беда с ВСС Винторез. Как-то можно это исправить? Или придётся прописывать каждому проблемному стволу свой магазин(АК 74 - mag_30_5.45x39_fmj, АКС74у - mag_45_5.45x39_fmj), но тогда АК 74 не будет поддерживать магазины на 45 патронов(а это неправильно) и наоборот.

Спасибо за любой ответ ;) .

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

Напряг извилину и сделал вот что:

Сама проблема у меня бы в том, что не все магазины были в обиходе у НПС => и у меня. Через некоторое время после отправки сообщения в тему допёр, что в обиходе только первый магазин, прописанный в ammo_mag_size. Решил эту проблему, прописав в АК 74 сначала магазины на 30 патронов, а после - на 45 патронов, а в АКС 74у наоборот. И сразу же у НПС с калашами стали появлятся магазины и на 30, и на 45 патронов. Самый класс, когда у НПС попадались сразу оба разных магазина :rolleyes: .

Канал возобновляет работу.
Ссылка на комментарий
какой магазин первым прописан в конфиге оружия, тот и спавнится.

Строго говоря, это не совсем так.

 

Какой тип магазина уже заряжен в оружие, такие и доспавниваются и назначаются активными, если в инвентаре НПС нет любого другого подходящего магазина - тогда активным назначается этот другой магазин (хотя первый раз НПС в любом случае отстреляет с уже заряженного). Если есть несколько подходящих, из них берется за активный самый последний из существующих по списку ammo_class. Это про живого НПС.

 

Что касается мертвого, ему спавнятся активные магазины, выбранные когда НПС был жив-здоров.

 

По умолчанию магазины к оружию не спавнятся, а оружие появляется заряженным самым первым магазином в списке ammo_class - это и дает такой эффект.

 

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

 

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

Kirag, исправлен ли баг с бронебойными патронами? Когда заряжаешь и при открытии и закрытии инвентаря много раз подряд можно было зарядить магазин на 30 патронов бронебойными, при этом на самом деле тратилось 5-7. С обычными такого нет, да и при разрядке магазина и при такой же повторной зарядке (с открытием и закрытием инвентаря) все нормально происходит, но тоже не всегда. Так можно на псевдогиганта с 30 патронами пойти, еще и останется :)

И дополнительный вопрос, кто делал худ зарядки магазинов? Просто нужна помощь :)

ТЧ 1.0004. SAP и Trans mod

github

Ссылка на комментарий

Desertir

Зарядка будет изменена из-за подключения разгрузки, так что по ее багам не знаю, как повернется.

Худ зарядки магазинов делал я сам, только модели магазинов дергал отовсюду.

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

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
Ссылка на комментарий

Marafon6540

Нигде ты не напортачил, почти все идет, как и рассчитано. Единственно что, патронов в коробах должно бы быть не 249, а 250, но тут уже, скорее всего, ошибка округления.

 

Дело в том, что при выдаче через алл.спавн магазины выдаются с condition = 1, безо всяких уточнений. Это та же ситуация, как и при разрядке оружия - из оружия вытряхивается N "магазин-патронов" - магазинов с зарядом 1 патрон и condition = 1 - которые преобразуются в один магазин с зарядом в N патронов и соответствующим condition.

Считаем:

1000 "магазин-патронов" к ПКМ - преобразуются в 4 магазина по 250 патронов - ну, почти так и есть, видимо, ошибка округления.

5 "магазин-патронов" к АК - преобразуются в 1 магазин с 5 патронами - именно так и есть.

Ну и 100 пачек ammo_5.45x39_ap по 30 патронов в пачке = 3000 патронов

 

Попробуй выдавать иначе.

В алл.спавне в секции актора убери секцию [dont_spawn_character_supplies] (или как-то так) - это откроет возможность задавать стартовый инвентарь через профиль актора в character_desc_general.xml

И в этом профиле выдавай в секции supplies, как и обычным НПС:

...

belt_250_7.62x54r = 4, cond = 0.995 \n

...

 

Должно выдать 4 полных короба. Здесь cond = 0.995 соответствует полному магазину (100% заряда, неважно, сколько это в патронах), cond = 0 - пустому. Не знаю только, сожрет ли третий знак после запятой, а тут это важно. С одним знаком точно работает.

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

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

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

Ссылка на комментарий

Marafon6540,

Если будешь выдавать магазины скриптом, используй ammo_manager.give_loaded(секция) для выдачи полных магазинов. При выдаче через ammo_manager.give_loaded секции пустого магазина (с "_e" на конце) он так и будет пустым - так и задумано. Выдачу в диалогах - так же, заодно будет сообщение про полученный предмет.

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

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

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. Как будет правильно?
Ссылка на комментарий

Все магазины, что спавнятся не у актора, автоматом получают condition = 0.995 и при взятии считаются полными. Так что пиши belt_250_7.62x54r=4

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

Товарищи, форумчане!

Сделал тут на днях магазин на 20 патронов для M16A1 и FAMas F1-http://rghost.ru/17621651

P.S. Для самостоятельного добавления! Лично я поставил вместо дисков от льюиса :crazy: .

P.S.S.Kirag, желательно добавь его к себе в мод, т.к стволы то не редкие :grin2: .

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

PRO

Не сожрет FAMAS-F1 (свой приемник магазинов) магазин от М16 (стандарт STANAG):

К 1994 году на основе FAMAS G1 был разработан вариант FAMAS G2, главным отличием которого стал измененный приемник магазинов, рассчитанный не на старые "родные" магазины от FAMAS, на на стандартизованные в рамках НАТО магазины от винтовки М16, имеющие стандартную емкость в 30 патронов (эти магазины имеют отличную от ранних FAMAS-овских конструкцию защелки и невзаимозаменяемы с ними).

источник

В то же время М16А1/А2 прекрасно сожрут магазины от М16А3/А4 - и там, и там стандарт STANAG

Поэтому у себя я проигнорировал магазин STANAG на 20 патронов (есть же совместимые и более распространенные на 30) и винтовку FAMAS-F1 - в пользу FAMAS-G2, (за редкость как ее, так и нестандартных магазинов к ней)

 

Marafon6540

Тут проще подправить функцию ограбления, чтобы она не видела эти предметы.

Там по логике вещей стоит либо iterate_inventory, либо inventory_for_each - порядок разный, суть одна. Перебираются предметы в инвентаре, и удаляются с концами либо перемещаются куда-то - не знаю, как здесь, опять-таки не суть.

Чтобы запретить оргабление на контейнеры, для каждого предмета надо дополнительно получить его секцию, и удалять только если она не dark_matter_container1\2.

 

Насчет полного запрета на удаление из инвентаря - не знаю. При выходе с уровня также удаляется все из инвентаря и вызывается функция on_item_drop, причем это происходит ДО вызова net_destroy - сигнала о выходе. Я не знаю, что получится, если устраивать переспавн в этот момент, а как понять это заранее - тоже не знаю... Так ничего и не придумал на эту тему...

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

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

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
Ссылка на комментарий

Kirag,

Я в курсе, но у меня модели M16A1 и Famas F1 с магазинами на 20 п., вот я так и решил проблему свою :) . И заодно поделился с вами... Ну не делать же на каждый ствол свой магазин, а как я предлагаю вполне возможно(ведь в описании написано, что это просто магазин на 20 патронов калибра 5.56).

P.S. Между прочим у вас тоже есть магазины, которые приходиться ставить на неподдерживающие их стволы(не сочтите за провокацию ;) ). Надо было мне про всю эту поддержку, не поддержку сразу написать :russian_ru: , а то меня что то понесло тыкать пальцем.

Изменено пользователем PRO
Канал возобновляет работу.
Ссылка на комментарий

Marafon6540

Правильно

 

PRO

Где у меня не сходится?

Про серию G36 был, помню, спорный момент - но проверял, STANAG-и она прекрасно жрет.

Короткие магазины 7,62х39 на 10 от "Сайги М3" на серию АК-47, разве что - там могли для гражданской версии переделать крепление...

Или ты еще что-то заметил?

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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