Space.Marine 466 Опубликовано 19 Марта 2018 Поделиться Опубликовано 19 Марта 2018 Нашёл такой код: Скрытый текст local explosive_weapons = { ["wpn_rg-6"] = true, ["wpn_rpg7"] = true, ["grenade"] = true } function npcondeath(victim, who) if IsStalker(who) then local active_item = who:active_item() local active_slot = who:active_slot() if (active_item and (active_slot == 1 or active_slot == 2)) or active_slot == 3 then local section = active_slot ~= 3 and active_item:section() or "grenade" if explosive_weapons[section] then particles_object("anomaly2\\body_tear_00"):play_at_pos(victim:bone_position("bip01_head")) end end end end Но, почему-то, партикл body_tear_00 отыгрывается даже при убийстве из любого дробовика, хотя их нет в списке. Прошу людей разбирающихся помочь. Сказали, что код из Simbion мода, но там такого не нашёл. И ещё, хотелось бы, чтобы труп после смерти исчезал. Хотя я понимаю, что тут нужна проверка на квестовость непися... Но может у кого нибудь уже есть готовое решение ? Ссылка на комментарий
Graff46 598 Опубликовано 20 Марта 2018 Поделиться Опубликовано 20 Марта 2018 В 19.03.2018 в 10:39, Space.Marine сказал: Нашёл такой код: попробуйте этот: Скрытый текст local explosive_weapons = { ["wpn_rg-6"] = true, ["wpn_rpg7"] = true, ["grenade"] = true } function npcondeath(victim, who) if IsStalker(who) then local active_item = who:active_item() local active_slot = who:active_slot() if (active_item ) then local section = active_item:section() if explosive_weapons[section] or active_slot == 3 then particles_object("anomaly2\\body_tear_00"):play_at_pos(victim:bone_position("bip01_head")) end end end end 1 Ссылка на комментарий
_Val_ 2 225 Опубликовано 21 Марта 2018 Поделиться Опубликовано 21 Марта 2018 Столкнулся тут с такой проблемой. Хм...Решил что лучше здесь спросить, а не в ковырялке. Имеем такую логику персонажа. Сразу оговорюсь - val - это Темная Долина, а не мания величия. [logic] active = {-val_barman_1_sleep}walker@val_bar_sleep,sleeper@val_barmen [walker@val_bar_sleep] path_walk = val_barman_go_sleep_walk path_look = val_barman_go_sleep_look on_signal = val_sleep_bar | sleeper@val_barmen %+val_barman_1_sleep% [sleeper@val_barmen] path_main = val_bar_1_sleep_walk Согласно логике НПС должен подойти к диванчику, по сигналу из точки пути перейти в следующую схему(выдав поршень) и завалиться спать на этот диванчик. В действительности происходит следующее. По логу: on_signal___(c.v1___=___val_sleep_bar)___signalled___[val_barman_1] ----сигнал есть. npc = 'single_player' give_info_portion id = 'val_barman_1_sleep' ----выдан поршень Далее. object___'val_barman_1':___activate_by_section:___looking___for___section___'sleeper@val_barmen' reset_generic_schemes_on_scheme_switch:___npc:name()='val_barman_1' calling___module('xr_sleeper') Ну - судя по всему - в следующую схему он перешел. И тут начинается самое интересное. Scheduler tried to update object val_barman_1 Перец раскорячивается в точке пути и не идет на диванчик. При этом с ним можно разговаривать да и видно, что он находится под логикой sleeper@ а не в nil допустим. Путь для секции sleeper@ абсолютно рабочий. Проверено удалением предыдущей секции. Пробовал переводить перца из волкера в ремарк и далее по таймеру в слипер с выдачей поршня. Тогда еще интересней - виснет в ремарке, не выдавая поршень. Взрыв мозга уже. Подумываю обойтись без Бармена)) Ссылка на комментарий
Space.Marine 466 Опубликовано 21 Марта 2018 Поделиться Опубликовано 21 Марта 2018 (изменено) 16 часов назад, Graff46 сказал: попробуйте этот: Ничего не поменялось. Партикл проигрывается, как и раньше при убийстве из любого мощного ствола (дробовик, СВД и пр.) Если что - платформа ЗП. Изменено 21 Марта 2018 пользователем Space.Marine Ссылка на комментарий
WinCap 316 Опубликовано 21 Марта 2018 Поделиться Опубликовано 21 Марта 2018 @Space.Marine Мне кажется слот проверять совершенно не нужно. Попробуй в варианте от @Graff46 оставить в условии только наличие итема в таблице: if explosive_weapons[section] ~= nil then 1 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 21 Марта 2018 Поделиться Опубликовано 21 Марта 2018 14 часов назад, _Val_ сказал: Scheduler tried to update object как правило - перемещение или анимации. В ремарке без перехода куда-либо еще как себя ведет ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
_Val_ 2 225 Опубликовано 21 Марта 2018 Поделиться Опубликовано 21 Марта 2018 @Dennis_Chikin А без перехода я не пробовал. Вообще - проблема уже решена путём обходного маневра. Конечно хотелось бы понять, что в конце концов случилось с этим неписем...особенно с учетом того, что таких логик уже прилично написано и все они работают.... Ссылка на комментарий
Space.Marine 466 Опубликовано 21 Марта 2018 Поделиться Опубликовано 21 Марта 2018 (изменено) 4 часа назад, WinCap сказал: Попробуй Завтра проверю, но... Если в условии есть конкретно переменная explosive_weapons и для неё заданны конкретные параметры wpn_такое-то, то какого не работает ? Уточню, я в скриптах - максимум читатель без образования. Возможно ли такое поведения скрипта из-за того, что у меня значения k_ap и k_hit в конфигах некоторых боеприпасов больше единицы ? Изменено 21 Марта 2018 пользователем Space.Marine Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 21 Марта 2018 Поделиться Опубликовано 21 Марта 2018 or "grenade" if explosive_weapons[section] then А что, вообще, хотели этим сказать ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Space.Marine 466 Опубликовано 21 Марта 2018 Поделиться Опубликовано 21 Марта 2018 (изменено) 31 минуту назад, Dennis_Chikin сказал: А что, вообще Как я уже упоминал, я не специалист и, даже, не любитель. Я так понимаю, что условия такие, если некоторые заданные в explosive_weapons стволы а также гранаты, то - бабах ! Код из Simbion, как говорят. И, да, там есть фишка на эффект разрыва трупов для дум-дум боеприпаса (из описания мода). Как я припоминаю, это всё, тянется ещё из АМК мода для ТЧ. Я просто не понимаю, неужели это настолько проблематично (скорее просто на не нужно) решить спецам ? Изменено 21 Марта 2018 пользователем Space.Marine Ссылка на комментарий
abramcumner 1 157 Опубликовано 22 Марта 2018 Поделиться Опубликовано 22 Марта 2018 8 часов назад, Dennis_Chikin сказал: А что, вообще, хотели этим сказать ? При активных 1 и 2 слотах проверяется секция оружия, 3-ий слот считается гранатным ив нем проверка не делается. Мне кажется номера слотов, что в ТЧ, что в ЗП несколько другие, из-за того и глюки. 1 Ссылка на комментарий
technics 0 Опубликовано 22 Марта 2018 Поделиться Опубликовано 22 Марта 2018 Господа Скриптоведы .Кто знает, какой файл в Lost Alpha управляет патронами на поясе? Хочу отключить. В интернате ни черта не могу найти((( Ссылка на комментарий
Kirgudu 1 217 Опубликовано 22 Марта 2018 Поделиться Опубликовано 22 Марта 2018 10 часов назад, Dennis_Chikin сказал: А что, вообще, хотели этим сказать ? Если ты имел в виду синтаксическую ошибку, то её там нет. Условие является независимым, а предыдущую строку надо читать целиком, как самостоятельное присвоение: local section = active_slot ~= 3 and active_item:section() or "grenade" Инструмент Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 22 Марта 2018 Поделиться Опубликовано 22 Марта 2018 if who:active_slot() == 3 then ... else local item = who:active_item() if item and t[item:section()] then ... end end Может, все-таки так ? Или сразу: if who and who.active_slot and ( ( who:active_slot() == 3 ) or ( who:active_item() and t[who:active_item():section()] ) ) then ... end Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
_Val_ 2 225 Опубликовано 22 Марта 2018 Поделиться Опубликовано 22 Марта 2018 А вот кстати еще один животрепещущий вопрос. Что за гадская схема kamp? Какой раз уже сталкиваюсь - если непись идет с пути патрулирования к костру...уже находится под схемой kamp...то если его в момент передвижения(до того - как он уселся) - дернуть в другую схему, то сразу срабатывает Scheduler. Я конечно это дело обошел, методом дописывания неписю еще одного пути прямо к костерку по схеме walker, но что-то меня это начало утомлять. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 22 Марта 2018 Поделиться Опубликовано 22 Марта 2018 Изрядно гадская, да. Пришлось шаманствовать с removeNpc(): local kamp_end = xr_evaluators_id.stohe_kamp_base + 1 local on_pos = xr_evaluators_id.stohe_kamp_base + 2 local mgr = npc:motivation_action_manager() -- todo: слишком сложно. ПРОСТО оторвать лишние эвалюаторы СОВСЕМ. Оставить все в одном. local a = mgr and mgr:action( xr_actions_id.alife ) if a then a:remove_precondition( kamp_end ) else log( "warning", "(%s):removeNpc, no action (alife) (%s)", self.center_point, npc:name() ) end a = mgr:action( xr_actions_id.stohe_kamp_base + 3 ) if a then xr_logic.unsubscribe_action_from_events( npc, st, a ) mgr:remove_action( xr_actions_id.stohe_kamp_base + 3 ) -- log( "info", "(%s):removeNpc, %s, 2", self.center_point, npc:name() ) else log( "warning", "(%s):removeNpc, no action (action_kamp_wait) (%s)", self.center_point, npc:name() ) end mgr:remove_action( xr_actions_id.stohe_kamp_base + 1 ) -- log( "info", "(%s):removeNpc, %s, 3", self.center_point, npc:name() ) mgr:remove_evaluator( kamp_end ) -- mgr:add_evaluator( kamp_end, property_evaluator_const( true ) ) mgr:remove_evaluator( on_pos ) -- mgr:add_evaluator( on_pos, property_evaluator_const( true ) ) -- if npc:name() == "bar_dolg_ivancov" then -- log( "info", "(%s):removeNpc, %s, remove_evaluators, ok", self.center_point, npc:name() ) -- end st.on_position = false -- поскольку строжейж грохнуть не дают, сделаем вид, что он новый. st.count = 0 st.pos_lvid = nil st.dest_lvid = nil 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Graff46 598 Опубликовано 24 Марта 2018 Поделиться Опубликовано 24 Марта 2018 (изменено) Я тут поэкспериментировал и вроде как получается, что в спавне (скриптом) можно не указывать точно гейм-вертекс, главное что бы он был с данной локации (на которой спавним)... Изменено 24 Марта 2018 пользователем Graff46 Ссылка на комментарий
Fenrir02 199 Опубликовано 25 Марта 2018 Поделиться Опубликовано 25 Марта 2018 Доброго времени! Каким способом можно реализовать удаление предмета из инвентаря с течением времени с момента взятия этого предмета. Пример: экзоскелет работает только с аккумулятором (это я сделал), но через некоторое время аккумулятор разряжается и удаляется из рюкзака. Подайте идею. Важнейшая задача цивилизации - научить человека мыслить. Ссылка на комментарий
Graff46 598 Опубликовано 25 Марта 2018 Поделиться Опубликовано 25 Марта 2018 (изменено) Только что, Fenrir02 сказал: Подайте идею. Запоминай в пстор время (game.time()) когда батарея начала работать и проверяй сколько она работает, где проверять смотри сам, можно конечно биндером постоянно, можно еще на какое событие повесить, например дроп ГГ, ведь в игре достаточно часто патроны перезаряжаем, что то выкидываем, продаём\покупаем и тд... Не забываем про level.add_call Изменено 25 Марта 2018 пользователем Graff46 Ссылка на комментарий
Fenrir02 199 Опубликовано 25 Марта 2018 Поделиться Опубликовано 25 Марта 2018 3 часа назад, Graff46 сказал: пстор Не совсем понял что это Важнейшая задача цивилизации - научить человека мыслить. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти