Colder 12 Опубликовано 16 Февраля 2021 Поделиться Опубликовано 16 Февраля 2021 Скрытый текст --// (space-РАСТЯЖКА\X\Y\КОЛЛ-ячеек) local btns_params = { inv = {space = 90, st_x = 30, st_y = 60, len_x = 4}, slt = {space = 90, st_x = 540, st_y = 80, len_x = 4} } function ui_assembly:NewBtnCreate(type,i,sect,kol,pos) local tbl if type == "inv" then tbl = self.tbl_buttons else tbl = self.tbl_buttons_s end local b local tb = btns_params[type] local sizes = give_icon_params(sect) local pl_x = tb.st_x+(tb.space*math.mod(pos-1,tb.len_x)) local pl_y = tb.st_y+(tb.space*math.floor((pos-1)/tb.len_x)) local but_x = pl_x+(100-(sizes.width/2)) local but_y = pl_y+(100-(sizes.height/2)) b = tbl if not b and kol>0 then tbl = CUIButton() b = tbl b:SetWindowName("btn_"..type..i) b:SetAutoDelete(true) b:InitTexture("ui\\ui_icon_equipment") b:SetOriginalRect(sizes.x,sizes.y,sizes.width,sizes.height) if kol and kol>1 then b:SetText("x"..kol) else b:SetText("") end b:SetTextColor(255,240,165,25) b:SetFont(GetFontGraffiti19Russian()) b:Init(but_x,but_y,sizes.width,sizes.height) self:AttachChild(b) self:AddCallback(b:WindowName(), ui_events.BUTTON_CLICKED, loadstring("axr_assembly.btn_"..type.."_click("..i..")"), self) b:Show(kol>0) elseif b and kol==0 then b:Show(false) elseif b then b:SetWndPos(but_x,but_y) if kol>1 then b:SetText("x"..kol) else b:SetText("") end b:Show(true) end if type == "inv" then self.tbl_buttons = tbl else self.tbl_buttons_s = tbl end end --// размер иконок function give_icon_params(sect) local ini = system_ini() local t = {} if ini and ini:section_exist(sect) then t.width = ini:r_float(sect, "inv_grid_width")*50 t.height = ini:r_float(sect, "inv_grid_height")*50 t.x = ini:r_float(sect, "inv_grid_x")*50 t.y = ini:r_float(sect, "inv_grid_y")*50 else mylog("give_icon_params: section ["..sect.."] not exist") t.width = 20 t.height = 20 t.x = 20 t.y = 20 end return t end Парни помогите уменьшить иконки в GUI окне. Ссылка на комментарий
naxac 2 447 Опубликовано 16 Февраля 2021 Поделиться Опубликовано 16 Февраля 2021 (изменено) @Colder , b:SetStretchTexture(true) и b:Init(but_x,but_y,sizes.width*0.7,sizes.height*0.7) Вместо 0.7 можно другой масштаб поставить, смотря какой нужен. Изменено 16 Февраля 2021 пользователем naxac 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
DibokDibokin 1 Опубликовано 17 Февраля 2021 Поделиться Опубликовано 17 Февраля 2021 (изменено) Здравствуйте. Можно ли сделать так чтобы длительность эффекта (или сама эффективность предметов могла ухудшаться или улучшаться) восстановления здоровья после приёма, например, аптечки, мог быть другим в зависимости от, например, насыщения ГГ? Изменено 17 Февраля 2021 пользователем DibokDibokin Ссылка на комментарий
AndreySol 215 Опубликовано 18 Февраля 2021 Поделиться Опубликовано 18 Февраля 2021 @DibokDibokin Все эти расчеты находятся в движке, соответственно - правка движка. Ссылка на комментарий
Okichi 922 Опубликовано 18 Февраля 2021 Поделиться Опубликовано 18 Февраля 2021 @AndreySol а в оригинальном движке из скрипта нельзя получить параметры сытости, например? Если возможно, то так-то ведь никто не запрещает получить этот параметр, и после "полноценного" приема аптечки и завершения эффекта ее действия чутка испортить актору здоровье в зависимости от выше полученной "сытости"? Ну костыль, конечно, но если вариантов других нет, то... Или есть противопоказания? 1 След от кругов на воде - это тоже след (с) Ссылка на комментарий
AndreySol 215 Опубликовано 18 Февраля 2021 Поделиться Опубликовано 18 Февраля 2021 50 минут назад, Okichi сказал(а): Или есть противопоказания? Для костылей противопоказаний обычно нет. Но они костылями и останутся. Конкретно по сытости: local actor_satiety = db.actor.satiety, ну и дальше делай что тебе хотца. 1 3 Ссылка на комментарий
I am Dead 916 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 Приветствую всех, как удалить или убить объект заспавненный через all.spawn не прибегаю к началу новой игры? Скрытый текст [6520] ; cse_abstract properties section_name = lights_hanging_lamp name = light_uglovaya_1_glass_0006 position = -107.088996887207, -11.6824464797974, -5.0175313949585 direction = 3.14159274101257, -3.45578122138977, -1.57079589366913 id = 65535 version = 118 script_version = 6 spawn_id = 6520 ; cse_alife_object properties game_vertex_id = 703 level_vertex_id = 172 object_flags = 0xffffffba custom_data = <<END [collide] ignore_static END ; cse_visual properties visual_name = physics\light\new_light\light_uglovaya_1_glass ; cse_ph_skeleton properties ; cse_alife_object_hanging_lamp properties main_color = 0xffffffff main_brightness = 0.80000001 main_color_animator = light\light_omni_white_idle main_range = 12 light_flags = 0x3a lamp_fixed_bones = link health = 0 main_virtual_size = 0.1 ambient_radius = 3.5 ambient_power = 0.40000001 main_texture = lights\lights_spot_wire_02 main_bone = bone_lamp main_cone_angle = 2.0943952 glow_radius = 0.69999999 ambient_bone = bone_omni ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ссылка на комментарий
AndreySol 215 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 @I am Dead local sim = alife() local s_obj = sim:object(light_uglovaya_1_glass_0006) if s_obj then sim:release(s_obj, true) end будет работать только в ТЧ, в ЗП нет ф-ции получения объекта по имени. 1 1 Ссылка на комментарий
I am Dead 916 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 @AndreySol Вчера пробовал таким образом удалить, не вышло.. Ссылка на комментарий
Okichi 922 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 @AndreySol Если берется имя из аллспавна - его в кавычки нужно local s_obj = sim:object( "light_uglovaya_1_glass_0006" ) И вот что-то не уверена, что можно так удалять источники света. Для physic_object и physic_destroyable_object - сработает, для источника света - вопрос... След от кругов на воде - это тоже след (с) Ссылка на комментарий
Zander_driver 10 334 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 В ТЧ для любых, каких угодно объектов сработает. И, Только что, Okichi сказал(а): Если берется имя из аллспавна - его в кавычки нужно Естественно, да 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Okichi 922 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 @Zander_driver у меня совершенно точно какие-то источники света удаляться отказывались ) т.е. лампочки нет - свет есть. След от кругов на воде - это тоже след (с) Ссылка на комментарий
gam 117 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 @Okichi for id=1, 65535 do local obj = level.object_by_id(id) if obj then 1 Ссылка на комментарий
dsh 3 824 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 @Okichi лампочка и свет - это два отдельных объекта. Притом лампочка может вообще не быть объектом, а нарисована на стене. 5 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Okichi 922 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 6 минут назад, dsh сказал(а): ампочка может вообще не быть объектом, а нарисована на стене. Так поэтому и написала, что не обязательно удаление видимой глазами финтифлюшки удалит и свет) Т.е. имелось в виду, что удаление свисающей лампочки не равно удалению источника света из нее. @gam зачем перебор по id, если известно точное имя объекта из аллспавна. Имхо, не нужен совсем. След от кругов на воде - это тоже след (с) Ссылка на комментарий
mole venomous 3 433 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 (изменено) Не поленился и проверил. Конкретно эта лампочка (light_uglovaya_1_glass_0006) замечательно удаляется, как источник света. Оставшийся светильник это декор на локации. @I am Dead , способ вполне рабочий, что предложил@AndreySol , только , как уже указали, там кавычки нужны. Скрытый текст local sim = alife() local s_obj = sim:object("light_uglovaya_1_glass_0006") if s_obj then sim:release(s_obj, true) end Сам всё проверил, поставил вызов ф-ии при загрузке левела. Изменено 19 Февраля 2021 пользователем mole venomous 2 1 1 Здесь могла быть ваша реклама. Ссылка на комментарий
hArdplAyer22_22 0 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 Доброго времени суток. Есть нескромный вопрос. Человек я в скриптовании и програмировании не слишком умный, часто беру чужие наработки и меняю под себя (конечно же с указанием авторства и огромной благодарностью). Нужна помощь. Взял из ОГСЕ на ТЧ скрипт на ограничение количества артефактов на поясе, немного переделал в силу своих скромных знаний, чтобы общее количество артефактов на поясе не превышало 5 (6 артефакт автоматически снимался). Так вот, скрипт снимает каждый 6 артефакт определенного вида (например, снимает шестую Душу, но общее количество артов может висеть и больше). Собственно, сама функция: function remove_arts() for key, value in pairs(belt) do if string.find(key, "af_") then local obj_sect = key if belt[key] and belt[key] > 5 then amk.remove_item(db.actor:object(key)) amk.spawn_item_in_inv(key) belt[key] = belt[key] - 1 if (not warning_last or warning_last ~= key) then warning_last = key end end end end end Подскажите глупому, пожалуйста, как переделать, чтобы можно было вешать любых 5 артов, и любой 6 арт снимало. Ссылка на комментарий
I am Dead 916 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 @mole venomous @AndreySol Странно, вчера точно так же пытался удалить только была еще проверка на поршень чтобы функция несколько раз не воспроизводилась. Скрытый текст function del_lampa() local sim = alife() local s_obj = sim:object("light_uglovaya_1_glass_0006") if s_obj and (not db.actor:has_info("delete_lampa") )then sim:release(s_obj, true) end db.actor:give_info_portion("delete_lampa") end Ссылка на комментарий
mole venomous 3 433 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 (изменено) Думаю, проверки на наличие s_obj достаточно, но если нужна проверка поршня, лучше сделать из bind_stalker, биндер net_spawn что-то вроде: Скрытый текст if not has_alife_info(инфо) then self.object:give_info_portion(инфо) экшн end Изменено 19 Февраля 2021 пользователем mole venomous 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 19 Февраля 2021 Поделиться Опубликовано 19 Февраля 2021 3 часа назад, hArdplAyer22_22 сказал(а): for key, value in pairs(belt) do Что такое здесь belt, и откуда оно берется? Может, там (откуда оно берется), и надо было, вот это все делать? 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти