Space.Marine 464 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 (изменено) 10 часов назад, Firestarter сказал: влияния выбросов на появление артов Тыц. Там для Misery, но какая разница. bind_anomaly_zone.script: if math.random(1,100) > 17 then Изменено 10 Ноября 2021 пользователем Space.Marine 1 Ссылка на комментарий
ted.80 251 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 8 часов назад, Labadal сказал: Попробуй просто отследить, что на момент получения целью урона, в руках у гг был нож Очень не правильно - что-то подобное пробовал очень давно - поясню: если выстрелить из рпг или подствольника ну или гренку кинуть, и переключиться на нож - то твой скрипт покажет что урон нанесён ножом, Увы даже на костыль не тянет Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Labadal 68 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 10 минут назад, ted.80 сказал: Очень не правильно - что-то подобное пробовал очень давно - поясню: если выстрелить из рпг или подствольника ну или гренку кинуть, и переключиться на нож - то твой скрипт покажет что урон нанесён ножом, Увы даже на костыль не тянет Я так упавшую звезду проходил, кидал в нпс гранатами и переключался на метательные ножи. 1 1 God save Hatsune Miku! Ссылка на комментарий
ted.80 251 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 14 минут назад, Labadal сказал: Я так упавшую звезду проходил "Молодец" - что ещё сказать, только задавали вопрос ни как налюбить игру - а как отловить именно удар ножом так что твой совет весьма сомнителен Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Labadal 68 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 (изменено) 1 час назад, ted.80 сказал: "Молодец" - что ещё сказать, только задавали вопрос ни как налюбить игру - а как отловить именно удар ножом так что твой совет весьма сомнителен Окей, вот тебе подробный "туториал" как это сделать. 1. подключить X-ray Extensions 2. подключить OGSE.dll 3. подключить каллбек before_hit 4. function motivator_binder:before_hit_callback(p_s_hit, p_ignore_flags) self.last_hit_data = read_hit_data(p_s_hit) local who = level.object_by_id(self.last_hit_data.who_id) if who:id() == db.actor:id() then local wpn = level.object_by_id(self.last_hit_data.weapon_id) weapon_kill = wpn:section() end end 5. Теперь переменная weapon_kill хранит себе название оружия, которым был убит нпс. То есть в ней всё равно будет храниться, допустим, grenade_f1, даже если ты кинул гранату и быстро достал нож. 6. а дальше все просто if weapon_kill=="wpn_knife" then *что-то делается* end 7. В принципе, всё довольно просто. А используя оригинальные возможности, лучше тех вариантов, которые предложил я и товарищ Norman Eisenherz не придумаешь. Изменено 10 Ноября 2021 пользователем Labadal 1 God save Hatsune Miku! Ссылка на комментарий
Firestarter 3 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 12 часов назад, Space.Marine сказал: Тыц. Там для Misery, но какая разница. bind_anomaly_zone.script: if math.random(1,100) > 17 then Спасибо большое что помогли, я проверил это на своём сталкере. Но тут уже начинается моя проблема, языка Lua я не знаю, и поэтому сам бы я не допёр, что это означает процент шанса. Да и щас не понимаю, я не понимаю всех этих строчек. Обидно, конечно, что если хочешь что-то более-менее даже просто узнать, нужно изучать язык. Ссылка на комментарий
ted.80 251 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 13 часов назад, Labadal сказал: Есть у меня переменная, по умолчанию объявлена как local energia = 10 local energia = 10 Как я понял в каком-то скрипте у тебя объявляется переменная, и она равна = 10 при использовании чего-либо она уменьшается, (тут все понятно) но при сейв/лоад - скрипт грузится поновой, и переменная опять объявляется и она = 10 (вот тут и трабла?) для сохранности надо делать по другому Скрытый текст local energia = xr_logic.pstor_retrieve(db.actor, "nrg", nil) if not energia then -- | тут энергии нет впринципе xr_logic.pstor_store(db.actor, "nrg", 10) -- | тут выдаём 10 end для использования вот так Скрытый текст local energia = xr_logic.pstor_retrieve(db.actor, "nrg", nil) if energia then -- | тут энергия есть if energia > 0 then -- | тут её больше нуля else -- | тут её меньше или равно нулю end end 1 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Lieutenant Novikov 15 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 Здравствуйте. Столкнулся с такой проблемой. Как известно Call of Chernobyl хотя и масштабный мод, имеет несколько неприятных багов. Один из них: НПС у костра после того как их потревожит противник, возвращались к костру и молчали, застревая на одной анимации, до перезагрузки. Я решил исправить этот баг, и методом тыка вычислил файл который отвечает за поведение НПС у костра, xr_animpoint_predicates.script. Я взял файл из ЗП и заменил им COCовский, проблема исчезла, но появился побочный эффект, теперь НПС у костра всегда с одной анимацией, и разговаривают только "о жизни", не едят, не играют на гитаре, вообщем ведут себя как будто не в зоне кампа. Все попытки отредактировать файл не к чему не привели, отчасти потому что я плохо разбираюсь в скриптах. Может кто разбирается и увидит что не так? Вроде бы в этом замешаны эти фрагменты. Скрытый текст -------------------------------------------------------------------------------- -- Predicate functions for xr_animpoint actions -------------------------------- -------------------------------------------------------------------------------- function const_predicate_true(id) local npc = db.storage[id] and db.storage[id].object if (npc and db.storage[id].need_sleep) then return false end return true end function animpoint_predicate_bread(id) local npc = db.storage[id] and db.storage[id].object if (npc and not db.storage[id].need_sleep) then return true end return false end function animpoint_predicate_kolbasa(id) local npc = db.storage[id] and db.storage[id].object if (npc and not db.storage[id].need_sleep) then return true end return false end function animpoint_predicate_vodka(id) local npc = db.storage[id] and db.storage[id].object if (npc and not db.storage[id].need_sleep) then return true end return false end function animpoint_predicate_energy(id) local npc = db.storage[id] and db.storage[id].object if (npc and not db.storage[id].need_sleep) then return true end return false end function animpoint_predicate_guitar(id, camp) if not (camp) then return false end local npc = db.storage[id] and db.storage[id].object if (npc and not db.storage[id].need_sleep) then return true end return false end function animpoint_predicate_harmonica(id, camp) if not (camp) then return false end local npc = db.storage[id] and db.storage[id].object if (npc and not db.storage[id].need_sleep) then return true end return false end function animpoint_predicate_weapon(id) return true end Скрытый текст function const_predicate_true(npc_id) return true end function animpoint_predicate_bread(npc_id) if(db.storage[npc_id] and db.storage[npc_id].object and eatable_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("bread")) == true then return true end return false end function animpoint_predicate_kolbasa(npc_id) if(db.storage[npc_id] and db.storage[npc_id].object and eatable_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("kolbasa")) then return true end return false end function animpoint_predicate_vodka(npc_id) if(db.storage[npc_id] and db.storage[npc_id].object and eatable_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("vodka")) then return true end return false end function animpoint_predicate_energy(npc_id) if(db.storage[npc_id] and db.storage[npc_id].object and eatable_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("energy_drink")) then return true end return false end function animpoint_predicate_guitar(npc_id, is_in_camp) --printf(" predicate_guitar %s", npc_id) --printf(" registred_camp %s", tostring(is_in_camp)) if is_in_camp == true and db.storage[npc_id] and db.storage[npc_id].object and db.storage[npc_id].object:object("guitar_a") then --printf(" return true") return true end --printf(" return false") return false end function animpoint_predicate_harmonica(npc_id, is_in_camp) --printf(" predicate_harmonica %s", npc_id) --printf(" registred_camp %s", tostring(is_in_camp)) if is_in_camp == true and db.storage[npc_id] and db.storage[npc_id].object and harmonica_visuals[db.storage[npc_id].object:get_visual_name()] and db.storage[npc_id].object:object("harmonica_a") then --printf(" return true") return true end --printf(" return false") return false end function animpoint_predicate_weapon(npc_id) if(db.storage[npc_id] and db.storage[npc_id].object) then local smart = xr_gulag.get_npc_smart(db.storage[npc_id].object) if(smart) then for k,v in pairs(smart_table) do if smart:name() == v then return false end end end end return true end Ссылка на комментарий
Labadal 68 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 @ted.80 чет туплю жестко, сплошные вылеты ловлю. где вставить этот кусок? Можно ли переменную сделать глобальной? (Для использования в других скриптах небоходимо) God save Hatsune Miku! Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 @Labadal Можно привязать условную энергию к состоянию предмета: при каждом использовании менять через obj:set_condition( старое значение - 0.1 ) и отключать использование при obj:condition() < 0.1. Состояние при этом будет храниться в штатном нетпакете без дополнительных действий в скриптах. В OGSE так хранится состояние расходуемых ремкомплектов, а в NLC-7 – состояние постепенно теряющих силу артефактов. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Labadal 68 Опубликовано 10 Ноября 2021 Поделиться Опубликовано 10 Ноября 2021 @Norman Eisenherz Проблема в том, что используемый предмет расходует "энергию" бронекостюма, который надет на гг. Тут уж кондишн не отнимешь. (не в том смысле, что нельзя, а в том, что задумка) God save Hatsune Miku! Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 @Labadal Можно спавнить "аккумулятор" с невидимой иконкой и без собственного веса, считая, что предмет вставлен в броню. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Labadal 68 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 @Norman Eisenherz Вариант. Все же попробую первый способ. Не получится - сделаю так God save Hatsune Miku! Ссылка на комментарий
AndreySol 215 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 @Labadal Объяви свою переменную глобально, затем сохраняй ее в pstor, а при загрузке игры читай оттуда сохраненное значение. Ссылка на комментарий
Labadal 68 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 @AndreySol это понятно, но как сохранять? Где сохранять? God save Hatsune Miku! Ссылка на комментарий
mole venomous 3 381 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 1 час назад, Labadal сказал: как сохранять Скрытый текст -- Записываем переменную function save(variable_name, value) xr_logic.pstor_store(db.actor, variable_name, value) end -- Загружаем переменную function load(variable_name, value_if_not_found) return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found) end -- Удаляем переменную function del(variable_name) if db.storage[db.actor:id()].pstor[variable_name] then db.storage[db.actor:id()].pstor[variable_name] = nil end end Здесь могла быть ваша реклама. Ссылка на комментарий
Labadal 68 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 @mole venomous Допустим, где вызывать эти функцию? God save Hatsune Miku! Ссылка на комментарий
AndreySol 215 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 @Labadal На базе какого инвентарного предмета твой аккумулятор? Ссылка на комментарий
mole venomous 3 381 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 8 минут назад, Labadal сказал: где вызывать эти функцию? 1 час назад, AndreySol сказал: при загрузке игры читай оттуда сохраненное значение Здесь могла быть ваша реклама. Ссылка на комментарий
Labadal 68 Опубликовано 11 Ноября 2021 Поделиться Опубликовано 11 Ноября 2021 (изменено) @AndreySol Есть некий предмет ,который: 1. возможно использовать только когда надет костюм 2. при каждом использовании отнимает одну энергию этого костюма В целом, нужно: записывать переменную при сохранении/читать при загрузке/присвоить ей значение 10 в начале игры Изменено 11 Ноября 2021 пользователем Labadal God save Hatsune Miku! Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти