I am Dead 918 Опубликовано 13 Апреля 2021 (изменено) @Баба ЯГА Как это не работает? В OGSE таким образом главное меню подбирается в зависимости от реального времени суток. Скрытый текст function main_menu:InitBackground() local time = level.present() and level.get_time_hours() or tonumber(os.date("%H", os.time())) local night = time <= 8 or time >= 20 self.bg_st:InitTexture(night and "ui\\ui_mm_night_back" or "ui\\ui_mm_main_back") local multiplier = 0.5625 if screen_aspect_ratio > 2 then -- ultra-wide multiplier = 0.40 end local tex_orig_w = screen_aspect_ratio * 1024 * multiplier local tex_orig_x_offs = (1024 - tex_orig_w) / 2 self.bg_st:SetOriginalRect(tex_orig_x_offs, 0, tex_orig_w, 768); end Изменено 13 Апреля 2021 пользователем I am Dead Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 25 Апреля 2021 @Капрал Хикс Вот так твоя проблема решается: Скрытый текст function motivator_binder:load(reader) self.loaded = true printf("motivator_binder:load(): self.object:name()='%s'", self.object:name()) object_binder.load(self, reader) printf("motivator_binder:object_binder.load(): self.object:name()='%s'", self.object:name()) if reader:r_eof() then abort("[xr_motivator.script]SAVE FILE IS CORRUPT") end self.treasure_processed = reader:r_bool() xr_logic.load_obj(self.object, reader) if system_ini():r_u32("script","current_server_entity_version") > 6 then -- патч 6 self.npc_script_version = alife():object(self.object:id()).script_version dialog_manager.load(self.object, reader, self.npc_script_version) else -- патч 4 dialog_manager.load(self.object, reader) end trade_manager.load(self.object, reader) end А свои затычки из dialog_manager убери оставив лишь такой код: Скрытый текст function load(npc, reader, ver) if selected_phrase_by_id == nil then selected_phrase_by_id = { intro = {}, cool_info = {}, action_info = {} } end local flag = nil if ver >= 7 then flag = reader:r_stringZ() else flag = tostring(reader:r_s16()) end if flag ~= "-1" then selected_phrase_by_id.intro[npc:id()] = {phrase = flag, count = 0} else selected_phrase_by_id.intro[npc:id()] = nil end if ver >= 7 then flag = reader:r_stringZ() else flag = tostring(reader:r_s16()) end if flag ~= "-1" then selected_phrase_by_id.cool_info[npc:id()] = {phrase = flag, count = 0} else selected_phrase_by_id.cool_info[npc:id()] = nil end end 1 1 Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 25 Апреля 2021 @Biblia Сделай проверку на класс предмета. Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 26 Апреля 2021 Есть такая функция из xr_codition.script -- true если у актора одет шлем указанной секции function actor_wear_helmet(actor, npc, p) return p[1] ~= nil and actor:object( p[1] ) ~= nil and actor:item_in_slot(10) ~= nil and actor:item_in_slot(10):section() == p[1] end Как сделать тоже самое только для проверки предмета который находится на поясе? P.S почему то не получается с телефона поместить под спойлер. Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 26 Апреля 2021 @Biblia Блин, я сейчас не у компьютера поэтому не могу наизусть пример написать. Тем более в интернета полно уроков на эту тему. Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 26 Апреля 2021 @Biblia Пример можешь поглядеть в новом арсенале 6, там есть скрипт на озвучивание подбираемого предмета по его классу( самое первое что пришло где можно подглядеть пример использования). 1 2 Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 27 Апреля 2021 49 минут назад, ARTLantist сказал(а): Добавлять в движке итератор для пояса и с его помощью проверять наличие предмета нужной секции. Иначе никак. Подсказали функцию которая замечательно работает. Скрытый текст function actor_has_item_on_belt(actor, npc, p) local obj = actor:object(p[1]) return obj and actor:is_on_belt(obj) end 2 Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 28 Апреля 2021 @ARTLantist Функция такая я как понял в OGSR моде присутствует. Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 28 Апреля 2021 (изменено) @ARTLantist Тогда вопрос уже другой, как эту функцию переделать под огср. Скрытый текст -- переносим все вещи из ящика с указанным story_id function transfer_from_box(box_sid) local box = level_object_by_sid(box_sid) if box then box:iterate_inventory_box(function(item) box:transfer_item(item, db.actor) end) end end С такой функцией у меня идет ругань на iterate_inventory_box так как в движке его нету, происходит вылет. Изменено 28 Апреля 2021 пользователем I am Dead Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 28 Апреля 2021 @Stalkersof Попробуй так сделать: Скрытый текст function generic_object_binder:use_callback(obj, who) if self.use_flag == nil and self.object:section()~="m_trader" then self.object:set_nonscript_usable(false) self.use_flag = true end -------------------------- -------------------------- -------------------------- level.start_stop_menu(NewUI4.main(), true) --self:mutanter_use(obj,who) end Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 30 Апреля 2021 @Kirgudu Хмм, действительно тут уж правильней будет "сталкер или монстр" 1 Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 16 Мая 2021 Приветствую всех. Можно ли на платформе OGSR задать состояние тела для актора? Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 16 Мая 2021 @AndreySol Делаю некую систему повреждения конечностей. И к примеру когда повреждены ноги хочу заблокировать бег. Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 16 Мая 2021 @mole venomous Вот это мне и надо, спасибо за подсказку Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 16 Мая 2021 (изменено) @Manool То есть бег будет принудительно сбрасываться на шаг? И есть ли что то подобное для других состояний ? К примеру если нога очень сильно повреждена то гг даже ходить не сможет, а только в полный присяд( типо ползет ). Изменено 16 Мая 2021 пользователем I am Dead Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 16 Мая 2021 @Manool Благодарю, а то я уже понавыдумывал костылей костылей всяких. Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 17 Мая 2021 @UriZzz По факту да, если обозначенная локальная переменная. 1 Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 20 Мая 2021 Обрыл весь форум, но так нашёл ответа. Как запустить анимацию через add_cam_effector циклично? Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 20 Мая 2021 @Manool Странно, так она и вовсе не запускается. Поделиться этим сообщением Ссылка на сообщение
I am Dead 918 Опубликовано 28 Мая 2021 Можно ли на OGSR Engine заблокировать какой либо слот по определённой функции не прибегая к db.actor.hide_weapon? Поделиться этим сообщением Ссылка на сообщение