Lieutenant Novikov 15 Опубликовано 22 Августа 2020 Здравствуйте. Столкнулся с такой проблемой: в COC (мод на ЗП) решил отредактировать рупоры, чтобы было как в ТЧ (выключались на ночь, а при нападении противника на базу играли сигналы тревоги), и вообщем-то прописал логику и т.д. Но натолкнулся на такую проблему: необходимо в логике прописать info_portion, ну чтобы менялись звуковые дорожки, но для этого его нужно выдать, насколько я понял через функцию. И вот какую функцию необходимо использовать, чтобы при нападении на отряд/базу выдавался info_portion? Поделиться этим сообщением Ссылка на сообщение
Lieutenant Novikov 15 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение