Gandifil 0 Опубликовано 22 Февраля 2011 Поделиться Опубликовано 22 Февраля 2011 Эта секция есть. Специально проверял. Что ж невелика беда. Буду переделывать. Ссылка на комментарий
L@r1ng1t$ 3 Опубликовано 22 Февраля 2011 Поделиться Опубликовано 22 Февраля 2011 Kirag, заметил досадный глюк: постоянно добавляется вес в рюкзаке, а где-то через три-четыре часа активной игры появляется лишних 30(!) кг. Как говорил выше Zander_driver, этот вес появляется при лоаде. Может в каллбэк bind_stalker.script на загрузку поместить пересчёт веса в dark_matter_container'е? Ссылка на комментарий
Kirag 39 Опубликовано 26 Февраля 2011 Автор Поделиться Опубликовано 26 Февраля 2011 По поводу увеличения веса инвентаря после перезагрузки уровня: Дополнительный вес не всегда учитывался при операциях с магазинами, из-за этого вес в процессе игры набирался меньше, чем должен был. При загрузке уровня он пересчитывался с нуля так, как это было задуманно. Поправил этот момент. Также поправил ситуацию, когда разряжается "стопка" стволов в инвентаре - извлекается столько магазинов и с тем количеством патронов, которое было в оружии из "стопки". Ссылка в шапке. Ссылка на комментарий
Zander_driver 10348 Опубликовано 27 Февраля 2011 Поделиться Опубликовано 27 Февраля 2011 Добавлю от себя малость Я немножко изменил give_loaded в ammo_manager.script: function give_loaded(section) if string.sub(section,1,4) == "mag_" or string.sub(section,1,5) == "clip_" or string.sub(section,1,5) == "belt_" then consider_loaded = true end spawn.inv(section) news_manager.relocate_item(db.actor, "in", section) end Что это дает - при выдаче магазина в диалоге, выдается стандартное сообщение "Получен предмет" с названием магазина. Ссылка на комментарий
Kirag 39 Опубликовано 27 Февраля 2011 Автор Поделиться Опубликовано 27 Февраля 2011 Тогда уж if db.actor:is_talking() then news_manager.relocate_item(db.actor, "in", section) end А то не только в диалоге сообщение получится Ссылка на комментарий
Zander_driver 10348 Опубликовано 2 Марта 2011 Поделиться Опубликовано 2 Марта 2011 После последнего апдейта, устраняющего невсегда считаемую массу: FATAL ERROR [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: ....t.a.l.k.e.r\gamedata\scripts\kirag_take_drop.script:128: attempt to call field 'vodka_effect' (a nil value) stack trace: После употребления водки FATAL ERROR [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: ....t.a.l.k.e.r\gamedata\scripts\kirag_take_drop.script:56: attempt to call field 'convert_addon' (a nil value) stack trace: После снятия прицела с оружия. Возможно и еще что то вылезет... в Kirag_take_drop.script куча вызовов всяческих функций из item_effects, но в самом этом файле функция только одна. Возможно забыли положить этот файл при апдейте? И еще по изменению массы. Может дело в отсутствующем обновлении item_effects а может в чем то другом, но я заметил один момент когда масса магазинов по прежнему не считается - до сейв-лоада. А именно при взятии свободно лежащего на земле, полностью заряженного магазина. Вес инвентаря остается тем же что был, и только после s\l пересчитывается как надо. Ссылка на комментарий
Kirag 39 Опубликовано 2 Марта 2011 Автор Поделиться Опубликовано 2 Марта 2011 (изменено) Опять я на те же грабли - я не вложить забыл, а выкинуть ненужное из kirag_take_drop. В результате он совмещен много с чем, но этого много чего в "магазинах" нет. Закомменти нафиг все вызовы из item_effects, кроме item_effects.fake_weapon_effect(sect). По ситуации поднятия магазина - можешь подробнее написать порядок действий с самого начала, откуда магазин взялся. Я вроде делал учет веса при подборе с земли, не пойму, что и где я не учел... Изменено 2 Марта 2011 пользователем Kirag Ссылка на комментарий
Zander_driver 10348 Опубликовано 2 Марта 2011 Поделиться Опубликовано 2 Марта 2011 (изменено) Ну ситуация такая. Жил был монолитовец, помер от моей пули. Нахожу на его трупе полный магазин. беру. Потом, увидев что веса у меня стало слишком много, выкидываю этот полный магазин на землю, ничего с ним не делая. Потом пошел-повоевал, боеприпасы поистратились. Открываю инвентарь, смотрю вес - ага, магазин тот уже влезет. Иду обратно, подбираю тот выброшенный магазин. Опять открываю инвентарь смотрю - вес тот же. Сохраняюсь, загружаюсь - вес увеличился, магазин посчитался. Edit: Может это чем то поможет, незнаю. Это был магазин на 42 патрона 5.56 для AUG, Вставил я его самостоятельно, вот его секции конфига: [mag_42_5.56x45_ss190]:ammo_5.56x45_ss190 box_size = 1 mag_size = 42 script_binding = ammo_manager.init wm_section = wm_5.56x45a42 inv_name = mag_42_5.56x45 description = desc_load_5.56x45_ss190 inv_name_short = mag_42_5.56x45_ss190_s inv_weight = 0.0117 belt = true inv_grid_width = 1 inv_grid_height = 1 inv_grid_x = 31 inv_grid_y = 16 visual = weapons\magazines\mag_30_556x45.ogf cost = 140 [mag_42_5.56x45_ss190_e]:mag_42_5.56x45_ss190 description = desc_mag_e inv_weight = 0.127 inv_grid_width = 1 inv_grid_height = 1 inv_grid_x = 31 [wm_5.56x45a42]:wm;_556 ammo_mag_size = 42 ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_he, ammo_5.56x45_pt, ammo_5.56x45_ap charged0 = mag_42_5.56x45_ss190 charged1 = mag_42_5.56x45_he charged2 = mag_42_5.56x45_pt charged3 = mag_42_5.56x45_ap inv_weight = 0.127 visual = weapons\magazines\mag_30_556x45.ogf hud = mag_30_556x45_hud inv_grid_y = 15 Изменено 2 Марта 2011 пользователем Zander_driver Ссылка на комментарий
Леня Баньши 5 Опубликовано 4 Марта 2011 Поделиться Опубликовано 4 Марта 2011 Такой вопрос, на арене спавнятся просто патроны, решил исправить, просто добавил, стали появляться но с одним патроном, исправил на спавн из ammo_manager все равно обоймы с одним патроном. Думаю дело в отсутствии дарк_меттер контейнера, добавил его спавн но все равно обоймы с одним патроном, что можно с этим сделать? Ссылка на комментарий
Kirag 39 Опубликовано 4 Марта 2011 Автор Поделиться Опубликовано 4 Марта 2011 Через ammo_manager.give_loaded магазины все равно только с одним патроном даются? Странно... План Б, который есть всегда: for i = 1,к-во_патронов_в_магазинах do spawn.inv(секция_магазина) end Эти магазины с одним патроном должны переработаться в полные магазины, насколько патронов хватит. Ссылка на комментарий
Леня Баньши 5 Опубликовано 4 Марта 2011 Поделиться Опубликовано 4 Марта 2011 (изменено) Kirag после добавления for i = 1,к-во_патронов_в_магазинах do spawn.inv(секция_магазина) end Стало вылетать с логом Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...hernobyl\gamedata\scripts\state_mgr_animation.script:176: attempt to index field 'animations' (a nil value) С чем это связано фиг знает. Изменено 4 Марта 2011 пользователем Леня Баньши Ссылка на комментарий
Kirag 39 Опубликовано 4 Марта 2011 Автор Поделиться Опубликовано 4 Марта 2011 Сам удивляюсь. Самим по себе спавном предмета в инвентарь запороть анимации невозможно в принципе. Значит, вставил (очень) не туда. Нерабочий спавн по ammo_manager.give_loaded это косвенно подтверждает... Ссылка на комментарий
Леня Баньши 5 Опубликовано 4 Марта 2011 Поделиться Опубликовано 4 Марта 2011 Kirag вставлял в xr_effects.scripts : ... local spawn_items = {} if has_alife_info("bar_arena_fight_1") then table.insert(spawn_items, "wpn_pm") ammo_manager.give_loaded("clip_8_9x18_pmm") ... Ссылка на комментарий
desert 0 Опубликовано 4 Марта 2011 Поделиться Опубликовано 4 Марта 2011 (изменено) Похожая ситуация на чистой игре решалась выстрелом, магазин в инвентарь, отбросом оружия, поднятием и последующей зарядкой магазина, в укромном уголке, или скачками по арене, так как в скриптах вообще никак, пришлось искать альтернативу) Изменено 4 Марта 2011 пользователем desert Ссылка на комментарий
Kirag 39 Опубликовано 4 Марта 2011 Автор Поделиться Опубликовано 4 Марта 2011 То есть сначала в таблицу заносится, а потом спавнится? Тогда план Б выглядит чуть по другому, но смысл тот же: ... local spawn_items = {} if has_alife_info("bar_arena_fight_1") then table.insert(spawn_items, "wpn_pm") for i = 1,к-во_патронов_в_магазинах do table.insert(spawn_items, "clip_8_9x18_pmm") end ... Только вместо прямого спавна в инвентарь - занесение в таблицу спавна. Ссылка на комментарий
Леня Баньши 5 Опубликовано 5 Марта 2011 Поделиться Опубликовано 5 Марта 2011 Увы, все равно вылет с жалобой на анимацию. desert, Столько мороки, явно не удобно каждый раз заряжать обоймы и магазины. Легче уж прописать стволы для арены, питающиеся просто патронами. Ссылка на комментарий
Gandifil 0 Опубликовано 5 Марта 2011 Поделиться Опубликовано 5 Марта 2011 Kirag, а вот версию 1, можно ставить поверх бета версии мода(первой)?? Или на чистое? Ссылка на комментарий
Kirag 39 Опубликовано 5 Марта 2011 Автор Поделиться Опубликовано 5 Марта 2011 Gandifil Теоретически, поверх беты с перезаписью всего должно сработать. Если было с чем-то совмещено - совмещать нужно заново 100%. Ссылка на комментарий
Zander_driver 10348 Опубликовано 6 Марта 2011 Поделиться Опубликовано 6 Марта 2011 Нашел еще одну уязвимость в плане вылетов. Ситуация: В рюкзаке был магазин на 20 патронов 9х39 СП-5. Поместил его в слот, нажал 5, разрядил с помощью ПКМ. Дальше - кажется я на пустом магазине второй раз нажал ПКМ, началась анимация заряжания, но до того как хоть один патрон был заряжен, я переключился на 3 слот, т.е. на автомат. В инвентаре после этого лежал пустой магазин 9х39, обычный пустой по всем признакам. Потом, помещаю этот пустой магазин в слот, жму 5 - получаю вылет. FATAL ERROR [error]Expression : fatal error [error]Function : CInifile::r_section [error]File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp [error]Line : 342 [error]Description : <no expression> [error]Arguments : Can't open section 'mag_20_9x39_sp5_e_e' stack trace: Со скриптами магазинов ничего не делал, потом специально загружался и проверял на магазинах 20 СП-5 - если нормально разряжать через ПКМ, то все нормально работает. Ссылка на комментарий
Kirag 39 Опубликовано 7 Марта 2011 Автор Поделиться Опубликовано 7 Марта 2011 (изменено) Странно, почему 2 раза "_e" добавилось. Секцию выпадающего после зарядки в инвентарь магазина скрипт смотрит в конфиге wm_XXX, в строках chargedN. Если магазин пустой, то к этой секции дописывается "_e", но только один раз. Посмотри, не вписал ли ты случайно секцию пустого магаза в chargedN, тогда могло бы получиться "_e_e" в конце... Либо скрипт сильно глюканул, но механизм неясен - даже если бы выполнилось дважды, все равно основная секция перечиталась бы из конфига... Добавлено через 4 мин.: P.S. Информация от Zander_driver: При написании совместно с магазинами подобных скриптов, мониторящих инвентарь, стоит быть осторожнее. А то у меня одно время стабильность вылетов по entity not found. id_parent=0 id_entity=ХХХ была просто ужасающая. Изменено 7 Марта 2011 пользователем Kirag Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти