Manool 145 Опубликовано 16 Мая 2021 37 минут назад, I am Dead сказал(а): хочу заблокировать бег В этом движке есть методы condition.cant_spint_power_begin и condition.cant_spint_power_end Если поставить get_actor_obj().condition.cant_spint_power_begin = 1 get_actor_obj().condition.cant_spint_power_end = 1 то актор перестанет бежать. 1 Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 16 Мая 2021 2 минуты назад, I am Dead сказал(а): о есть бег будет принудительно сбрасываться на шаг? Нет пока установлены эти значения актор вообще не сможет бежать, как, например в экзоскелете с отключенным бегом. 3 минуты назад, I am Dead сказал(а): И есть ли что то подобное для других состояний -- Блокировка шага актора get_actor_obj().condition.cant_walk_power_begin = 1 get_actor_obj().condition.cant_walk_power_end = 1 Кстати, все эти методы есть в lua_help к движку OGSR. 1 Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 20 Мая 2021 2 часа назад, I am Dead сказал(а): Как запустить анимацию через add_cam_effector циклично Вот так - level.add_cam_effector("camera_effects\\earthquake.anm", 2002, true, "") true в данном случае и определяет повторять ли анимацию. Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 28 Мая 2021 (изменено) 2 часа назад, hArdplAyer22_22 сказал(а): Как очистить определенный инвентарный ящик по ID? Вот так можно - Скрытый текст function clear_box( box_id ) -- ID ящика, который нужно очистить for a = 1, 65535, 1 do local sobj = alife():object( a ) if sobj and sobj.parent_id == box_id then alife():release( sobj, true ) end end end Причём, неважно, в онлайне ящик или нет. Изменено 28 Мая 2021 пользователем Manool Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 27 Апреля 2022 (изменено) 9 часов назад, Colder сказал: Пытаюсь дать рандомный хит заспавненому предмету ГГ в рюкзак Хит наносится так - Скрытый текст local h = hit() h.power = 0.3 h.direction = vector():set(0, 0, 0) h.impulse = 0 h.draftsman = db.actor h.type = hit.fire_wound obj:hit(h) -- obj в данном случае клиентский объект, которому наносится хит item:set_condition((math.random(5)+15)/100) Метод set_condition применяется к клиентским объектам. А в вашем случае item - это, скорее всего, строка, поэтому и вылет. Изменено 27 Апреля 2022 пользователем Manool 1 Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 4 Июня 2022 (изменено) 3 часа назад, mole venomous сказал: вернуть значение параметра на текущем уровне Скрытый текст if system_ini():line_exist(item:section(), "hit_power") then local hp = system_ini():r_string(item:section(), "hit_power") if hp then local t = {} for a in string.gfind(hp, "[%w_%-%.]+") do table.insert(t, a) end local dhp = t[level.get_game_difficulty() + 1] or t[1] -- параметр hit_power в зависимости от уровня сложности игры end end Изменено 4 Июня 2022 пользователем Manool 1 1 Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 7 Июля 2022 @Labadal local target = level.get_target_obj() if target then local sobj = alife():object(target:id()) if sobj then alife():release(sobj, true) end end 1 1 1 Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 20 Августа 2022 @Colder Скрытый текст function CTreasure:create_random_stash() for k, v in pairs(self.treasure_info) do self:give_treasure(k) break end end Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 20 Августа 2022 (изменено) @Colder Выдаст рандомный тайник - Скрытый текст function CTreasure:create_random_stash() local t = {} for k, v in pairs(self.treasure_info) do table.insert(t, k) end self:give_treasure(t[math.random(#t)]) end Изменено 20 Августа 2022 пользователем Manool 1 Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение
Manool 145 Опубликовано 24 Августа 2022 @mole venomous Скрытый текст local excluded_ids = {} for i = 0, db.actor:belt_count() - 1 do -- цикл всех предметов на поясе local item = db.actor:item_on_belt(i) if item then excluded_ids[item:id()] = true end end -- проверка на исключение: if excluded_ids[id] then -- id здесь предмета, который нужно проверить end 1 1 Объединённый Пак OGSR Engine Поделиться этим сообщением Ссылка на сообщение