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

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


Kirag

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

Ребята, я сделал всё как сказано в этом посте, что бы НПС не реагировали на магазин, но у меня вот такой вылет происходит:

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: c:\my game$\s.t.a.l.k.e.r\gamedata\scripts\_g.script:873: attempt to call method 'section' (a nil value)

 

Изменено пользователем Ulman
Ссылка на комментарий

Ulman, странно, почему у тебя 873 с вылетом? Ты на какой патч ставил? Хотя. в принципе, какая разница, я ставил и на 4 и на 5 и на 6. Все работает с этой правкой. Может ты сам вводил какие-либо новые магазины к оружию, не прописанные у Kiraga. Если вводил, проверь, чтобы все они начинались с wm_, описывали все типы патронов под эти магазины и находились в файле magazines.ltx. Почитай в шапке ридми, подробно расписано. Или возможно при правке _g.script просто ошибку в синтаксисе сделал. Проверь еще раз внимательно, все работает.

 

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

Ulman, я еще что подумал, а нет ли проблемы в том, что ты ставишь не на движок ТЧ?

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

Marafon6540, конечно на ТЧ ставлю, патч 4, всё находится в файле magazines.ltx, новые магазины я не вводил, спасибо создателям мода, мне и существующих с головой хватает. Я вот думаю у меня в magazines.ltx есть такие секции:

[ammo_base]:identity_immunities

;belt = true;

 

[inv_separator]:identity_immunities

GroupControlSection = spawn_group

discovery_dependency =

$spawn = "food and drugs\antirad"

class = II_ATTCH

cform = skeleton

visual = physics\large_trash\prt\prt_none.ogf ; invisible

description = ""

 

inv_name = ""

inv_name_short = ""

inv_weight = 0

inv_grid_width = 0

inv_grid_height = 0

inv_grid_x = 14

inv_grid_y = 23

cost = 100

 

attach_angle_offset = -0.287979, 1.560923, 1.544060

attach_position_offset = 0.096910, -0.013594, 0.107925

attach_bone_name = bip01_r_hand

auto_attach = false

 

// should be deleted after update

bone_name = bip01_r_hand

position_offset = 0.0,0.0,0.0

angle_offset = 1.570790,1.570790,3.92699

 

Я точно не помню про вторую, но первую пришлось перенести сюда, так как без неё вылет. Хотя я думаю, это здесь не виновато.

А сама функция выглядит так:

function isWeapon(object)

local id = get_clsid(object)

if id == nil then return false end

if object and string.sub(object:section(),1,3) == "wm_" then

return false

end

if id == clsid.wpn_vintorez_s then return true

elseif id == clsid.wpn_ak74_s then return true

elseif id == clsid.wpn_lr300_s then return true

elseif id == clsid.wpn_hpsa_s then return true

elseif id == clsid.wpn_pm_s then return true

elseif id == clsid.wpn_shotgun_s then return true

elseif id == clsid.wpn_bm16_s then return true

elseif id == clsid.wpn_svd_s then return true

elseif id == clsid.wpn_svu_s then return true

elseif id == clsid.wpn_rpg7_s then return true

elseif id == clsid.wpn_val_s then return true

elseif id == clsid.wpn_walther_s then return true

elseif id == clsid.wpn_usp45_s then return true

elseif id == clsid.wpn_groza_s then return true

elseif id == clsid.wpn_knife_s then return true

elseif id == clsid.wpn_grenade_launcher then return true

elseif id == clsid.wpn_grenade_f1 then return true

elseif id == clsid.wpn_grenade_rpg7 then return true

elseif id == clsid.wpn_grenade_rgd5 then return true

elseif id == clsid.wpn_grenade_fake then return true

else return false end

end

 

Так что по идеи причин для вылета не должно быть.

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

Ulman

 

Черт его знает, у меня такого не было...

Такое могло бы получиться, если бы функция вызвалась для какого-нибудь оффлайнового оружия, но мне такие случаи не попадались. Попробуй на всякий случай переписать условие:

 

if object and object:section() and string.sub(object:section(),1,3) == "wm_" then

 

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

 

P.S. По поводу переноса секции [ammo_base] - порядок инклудов имеет значение. Насколько я понял, должна идти сначала базовая секция - ([ammo_base] в данном случае), а потом уже ссылки на нее [секция]:ammo_base.

 

P.P.S. Кстати же, эта секция вообще особо не нужна - это же копия identity_immunities без изменений и дополнений, поэтому вместо [секция]:ammo_base можно смело писать [секция]:identity_immunities

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

Мои работы:

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

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

Soul Cube

 

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

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

Ulman, насчет движка просто предположил посмотрев твое видео из подписи.

 

Секция [ammo_base] у меня выглядит так:

[ammo_base]:identity_immunities

;belt = true;

 

#include "ammo\magazines.ltx"

#include "dark_matter.ltx"

#include "ammo\9x18.ltx"

#include "ammo\9x19.ltx"

#include "ammo\9x39.ltx"

#include "ammo\12cal.ltx"

#include "ammo\57x28.ltx"

#include "ammo\357.ltx"

#include "ammo\545x39.ltx"

#include "ammo\556x45.ltx"

#include "ammo\762x25.ltx"

#include "ammo\762x39.ltx"

#include "ammo\762x51.ltx"

#include "ammo\762x54.ltx"

#include "ammo\792x57.ltx"

#include "ammo\1143x23.ltx"

#include "ammo\1270x99.ltx"

#include "ammo\1270x108.ltx"

#include "ammo\gauss_ammo.ltx"

,

но только находится она в файле weapons.ltx, а не в magazines.ltx. Непонятно, зачем ты ее переносил.

Функцию function isWeapon(object) из твоего поста только что скопировал в свой файл _g.script ТЧ 1.004. Все работает великолепно. НПС внимания не обращают и кричат убрать оружие только тогда, когда магазин полностью заряжен в руках появляется настоящее оружие. Пробежал весь Кордон - никаких вылетов.

Все-таки, по-моему, где-то что-то ты криво вставил или ошибку допустил. Мод у Kiraga практически безглючный, а фатальных вылетов по такой как у тебя причине ни разу не встречал.

А до правки _g.script вылеты были? Может имеет смысл весь мод полностью по новой пересадить?

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

Marafon6540, на счёт подписки, просто нет времени перезаписать новое видео. Может и к сожалению, хотя я считаю к лучшему, я мод вернул на движок ТЧ, причины пока разглашать не хочу. Ну да ладно... С _g.script действительно похоже есть проблема, при загрузке сейва вот такой вылет:

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: c:\my game$\s.t.a.l.k.e.r\gamedata\scripts\_g.script:1251: bad argument #3 to 'format' (string expected, got nil)

 

Думаю это имеет отношение к проблеме. Извините, что не в тему, но может кто то "объяснит" мне и эту проблему...

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

Вылет по _g.script такой же, но в строке 859. я вот подумал, не может ли он быть связан с новым оружием? Если попробовать добавить в isWeapon строки вида elseif id == clsid.нестандартный_ствол_s then return true? У меня слишком много новых стволов введено, +кулаки, несколько ножей и болты с фейками чтоб пробовать. Да и не мешает мне паника NPC особо...

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

По вылету _g.script-а:

 

Ulman

_g.script:1251: bad argument #3 to 'format' (string expected, got nil)

Такой и ему подобные к _g.script-у имеют весьма и весьма косвенное отношение. Функция, вылет вызывающая находится в этом файле, но вылет происходит потому, что в нее передается всякая чушь. Откуда именно передается - определить прямо нельзя.

Вообще, такие вещи надо ловить сразу, лажа где-то в последних изменениях, вот только времени слишком много прошло. Теперь фиг вспомнишь, что, когда и где менялось. Так что остается забить все функции тестовыми сообщениями (вроде функции qqq у меня), смотреть, после которого игра дохнет, и мало помалу локализовывать лажу. Другого выхода не вижу...

 

k01jan

Если попробовать добавить в isWeapon строки вида elseif id == clsid.нестандартный_ствол_s then return true?

Бесполезно. Все новое оружие сделано на стандартных классах, значит и clsid (список, кстати же, в двигло зашит) у них одно из стандартных. Так что это условие просто никогда не выполнится...

Мои работы:

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

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

Soul Cube

 

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

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

Бесполезно

. Простое и очевидное решение, как всегда, оказалось неверным.

Под снос.

Строгое предупреждение от модератора Ааз
Флуд. Пост ни о чем, в следующий раз будет пред.
Изменено пользователем Ааз
Ссылка на комментарий

Поставил мод, всё, спасибо, увлекло.

Но через минут двадцать нашёл баг с преобразованием патронов, может, уже был...

Для воспроизведения нужен магазин, например, от ПМ, полностью заряженный 9х18 патронами. В инвентаре - 8 патронов 9х18 и 8 патронов 9х18 +Р+. Куда-нибудь выкидываем обычные патроны, вытаскиваем магазин. Нажимаем Y, меняя тип патронов. Затем жмём ЛКМ, магазин разряжается, но! - обычные патроны, что были в магазине, чудом превратились в 9х18 +P+!

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

Kirag, возможно ли в версии для чистой игры и для AMK повесить зарядку магазинов на кнопку активации артефакта вместо бинокля. 7 же используется только в сетевой игре, а с модами по сети народ не играет.

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

Мелкоастец

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

 

Пуля

Проблема в том, что в сингле "7", кажется, вообще ничего не делает. По логике, если "1" вызывает 0-й слот, "2" - 1-й, ... "6" - 5-й, то "7" должна бы активировать 6-й слот, т.е. костюм. В МП костюмов вроде нет, да и вообще с трудом верится...

Мои работы:

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

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

Soul Cube

 

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

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

3HATOK

Я точно не стану. Тамошние архивы вскрывать - это себя не любить. Была б нормальная геймдата - можно было бы адаптировать.

Мои работы:

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

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

Soul Cube

 

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

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

Насколько я знаю, Wolkolak пытался адаптировать "магазины" к "разгрузке" НЛС-6.0 при разработке своего мода "Реальная зона" на основе НЛС-6.0 "Начало" (пишу по памяти, извините если ошибся в названии). Но в какой все стадии сказать не могу - новостей по этой разработке давно не поступало, увы.

 

ПыСы: А по всем попыткам модифиццировать НЛС6.0 согласен с Kirag-ом - адов труд, и причины вылетов зачастую совершенно не понятны - пишу по своему опыту, пытался вставить туда вменяемые стволы и бросил.

 

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

Да уж, в НЛС серьезнейшим образом поменялась структура - архивы, патчи на них тоже в архивах... Зачем - непонятно. Вариант "Чтоб не лазали" Мастер Сяк с возмущением отвергает, но за что заплачена такая цена, что можно было сделать так и только так - уходом от привычной структуры геймдаты - ни полнамека...

 

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

Ну и кроме того, раз уж все равно связался с меню и т.п., хочу сделать полноценную работу с оружием - лавры "кризиса" спать не дают :) Уже реализованы равнозначные слоты для оружия. Частично сделаны сменные аддоны ("Ночные прицелы" потеряют актуальность, у них несовместимая схема с очень жесткими органичениями). Есть мысли по смене режима прицеливания (либо прицелы переменной кратности с дискретными значениями этой кратности, либо как на HK G36 - коллиматор/оптика) и даже по ЛЦУ (но тут есть несколько серьезных "ЕСЛИ" и "НО"). Само собой, за это придется платить кучей вариантов "базового" ствола, но я в конец обленился и сделал автогенерацию конфигов - потом только из лога забрать и в .ltx запихнуть, только мусор убрать ("найти и заменить все" прекрасно справляется)

Теперь главное со всеми этими окнами не облажаться - хреново я в них еще разбираюсь...

Мои работы:

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

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

Soul Cube

 

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

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

Новости отличные!

 

Дай Бог, что бы Вам хватило бы времени и терпения (к сожалению жизнь штука сложная).

Такой вопрос - а насколько все эти улучшения усложнят замену оригинальных моделей оружия в Игре и адаптацию к сюжетным модам?

Я понимаю, что вопрос, скорее всего преждевременный, но все равно интересно!

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

Всем привет, назрел такой вопрос. Так как сам играю в Р.М.А под с адаптацией магазинов, уж очень нравится, так вот проблема: в мертвом городе из рюкзака изымают все вещи(и dark_matter_container'ы), кроме прописанных как квестовые. Так вот, будут ли они работать, если их прописать как quest_item(путем добавления в их конфиге новой строчки)?

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

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

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

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

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

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

Войти

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

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

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