Перейти к контенту

Рекомендуемые сообщения

4 часа назад, aromatizer сказал:

который за время появления статика срабатывал бы только один раз.

А где гарантии?

Время видимости статика не нормировано ничем. Он может появиться на один фрейм, а может провисеть полчаса. Медленный апдейт в этом случае лишь повысит шанс НЕобнаружения факта появления статика. Т.е. фича будет "работать через раз". Или вообще не работать.

2 часа назад, I am Dead сказал:

Ну покажи уж

Показывалось много раз... просто в данном случае, этот инструмент "не в тему".

Пост десятилетней давности, и там же его обсуждение, с предложениями аналогов от других авторов.

  • Полезно 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

:offtopic: Теперь то уж точно оптимизация в некоторых проектах улучшится... :dance2:

Изменено пользователем aromatizer
  • Не согласен 1
  • Сомнительно 1

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

Ссылка на комментарий

@aromatizer оффтоп, оптимизация посредством урезания как то звучит не очень... 

 

P. S Если намёк был на мои проекты - то я по максимуму везде стараюсь не мучать апдейт, задействовав другие каллбеки ( которых на огср достаточно много) оставив лишь самое необходимое что требует постоянной проверки. 

Изменено пользователем I am Dead
  • Нравится 3
Ссылка на комментарий

Подскажите в чем проблема. Пытаюсь вывести прогресс бар для каждого слота но не могу выровнить шкалу. Пишу так:

Скрытый текст

    local slots = {

    [1] = {100, 190},
    [2] = {330, 190},
    [4] = {330, 440},
    [6] = {170, 400},

    }

 

    for num, xy in pairs(slots) do
        local item = db.actor:item_in_slot(num)

        if item then
        local item_sect = item:section()
        local x, y, width, height, y_fix, x_fix, w_fix = axr_base.icon_new_pos(item_sect, num)

 

        --// окно
        local weapon_tex = CUIStatic()
        self:AttachChild(weapon_tex)

        local wnd_x, wnd_y = unpack(xy)
        weapon_tex:Init(wnd_x + x_fix, wnd_y + y_fix, w_fix * f_size, height * f_size)

 

        --// текстура
        weapon_tex:InitTexture("ui\\ui_icon_equipment")
        weapon_tex:SetStretchTexture(true)
        weapon_tex:SetOriginalRect(x, y, width, height)

 

        --// прогресс
        local wpn_condition_progress = 0
        local bar = xml:InitProgressBar("bar_frame", weapon_tex)
        wpn_condition_progress = item:condition()*100
        bar:SetProgressPos(wpn_condition_progress)

 

        -- имя
        local wnd_name = "repair_wpn_" .. num

        self:Register(xml:Init3tButton(wnd_name, self), wnd_name)
        self:AddCallback("repair_wpn_" ..num, ui_events.BUTTON_CLICKED, function() self:repair_wpn(num) end, self)

Скрытый текст

    <bar_frame_ x="50" y="50" width="56" height="5" horz="1" min="0" max="100" pos="1">
        <background>
            <texture>ui_cop_Game_progress_efficiency_full</texture>
        </background>
        <min_color r="86" g="196" b="209"/>
        <middle_color r="86" g="196" b="209"/>
        <max_color r="86" g="196" b="209"/>
    <progress>
        <texture>ui_cop_item_cond</texture>
    </progress>
    </bar_frame>

Итог: https://yadi.sk/i/AH1ZOpH45nyQXQ

Ссылка на комментарий

@Colder Привет мне кажется что всё дело вот в чём:

ты задаёшь координаты слотов

9 часов назад, Colder сказал:

 local slots = {

    [1] = {100, 190},
    [2] = {330, 190},
    [4] = {330, 440},
    [6] = {170, 400},

    }

а уже к ним привязываешь координаты прогресса

9 часов назад, Colder сказал:

 <bar_frame_ x="50" y="50"

соответственно получается где-то так

9 часов назад, Colder сказал:

 local slots = {

    [1] = {100 + 50, 190 + 50},
    [2] = {330 + 50, 190 + 50},
    [4] = {330 + 50, 440 + 50},
    [6] = {170 + 50, 400 + 50},

    }

 

  • Согласен 1
Ссылка на комментарий

@Colder , ну всё правильно выводится: на 50 пикселей правее левого края и на 50 ниже верхнего. А ты как задумывал? То есть, где надо, чтобы была шкала?

Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
3 часа назад, Colder сказал:

Не помогло

Что именно не помогло?

я же сказал, что координаты прогресса у тебя жостко привязаны к координатам иконки,

и выводятся на 50 пихелей правее и 50 ниже - от левого верхнего угла иконки,

а так как иконки имеют разные размеры - нужно это учитывать!

либо сдвигать прогресс на дополнительное количество пихелей - относительно иконки - для каждой иконки, 

либо выводить прогресс по своим собственным координатам - не привязанных к иконке,

 

  • Согласен 1
  • Полезно 1
Ссылка на комментарий
3 часа назад, Colder сказал:

Вот я и не могу

Простейший вариант - чтоб не плодить костыли и не писать кучу проверок и функций

Скрытый текст

	<bar_frame_1 x="50" y="50" width="56" height="5" horz="1" min="0" max="100" pos="1">
		<background>
			<texture>ui_cop_Game_progress_efficiency_full</texture>
		</background>
		<min_color r="86" g="196" b="209"/>
		<middle_color r="86" g="196" b="209"/>
		<max_color r="86" g="196" b="209"/>
		<progress>
			<texture>ui_cop_item_cond</texture>
		</progress>
	</bar_frame_1>
	
	<bar_frame_2 x="50" y="50" width="56" height="5" horz="1" min="0" max="100" pos="1">
		<background>
			<texture>ui_cop_Game_progress_efficiency_full</texture>
		</background>
		<min_color r="86" g="196" b="209"/>
		<middle_color r="86" g="196" b="209"/>
		<max_color r="86" g="196" b="209"/>
		<progress>
			<texture>ui_cop_item_cond</texture>
		</progress>
	</bar_frame_2>
	
	<bar_frame_4 x="50" y="50" width="56" height="5" horz="1" min="0" max="100" pos="1">
		<background>
			<texture>ui_cop_Game_progress_efficiency_full</texture>
		</background>
		<min_color r="86" g="196" b="209"/>
		<middle_color r="86" g="196" b="209"/>
		<max_color r="86" g="196" b="209"/>
		<progress>
			<texture>ui_cop_item_cond</texture>
		</progress>
	</bar_frame_4>
	
	<bar_frame_6 x="50" y="50" width="56" height="5" horz="1" min="0" max="100" pos="1">
		<background>
			<texture>ui_cop_Game_progress_efficiency_full</texture>
		</background>
		<min_color r="86" g="196" b="209"/>
		<middle_color r="86" g="196" b="209"/>
		<max_color r="86" g="196" b="209"/>
		<progress>
			<texture>ui_cop_item_cond</texture>
		</progress>
	</bar_frame_6>

 

делаем 4 прогресса - так можно двигать их независимо

 

а чтоб это заработало 

 

Скрытый текст
        --// прогресс
        local wpn_condition_progress = 0
        local bar = xml:InitProgressBar("bar_frame_"..num, weapon_tex)        ---- измени эту строку вот так
        wpn_condition_progress = item:condition()*100
        bar:SetProgressPos(wpn_condition_progress)

 

100% уверенности в работоспособности нет - так как не могу проверить

но вроде должно работать :crazy2:

  • Спасибо 1
  • Нравится 1
Ссылка на комментарий

Всем привет. Ознакомился с возможностями движка ОГСР, но видимо недостаточно хорошо. 

Есть ли на этом движке возможность определить предмет на поясе и далее производить с ним какие-либо действия?

Т.е. речь не о проверке

local item = inventory.belt["item"]

а именно о том, что бы заданный объект можно было хитануть, удалить и т.п.

Изменено пользователем mole venomous

Здесь могла быть ваша реклама.

Ссылка на комментарий

@mole venomous , можно сделать так:

local obj = db.actor:object("item")
if obj and db.actor:is_on_belt(obj) then
-- хитануть, удалить и т.п.
end

Или так (это подойдёт, если у актера может быть несколько предметов с секцией "item"):

local obj
for i = 0, db.actor:belt_count()-1 do
  obj = db.actor:item_on_belt(i)
  if obj and obj:section() == "item" then
  -- хитануть, удалить и т.п.
  end
end
Изменено пользователем naxac
  • Спасибо 1
  • Полезно 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

Всем привет! Помогите разобраться. Хочу поместить в динамический худ мод NLC статик показателей ГГ . При вызове худа cтатик создается все работает но вот при закрытии удалить его ни как не получается. На get_hud():RemoveCustomStatic ни как не реагирует.

Скрытый текст

local function getSt(text, alpha, red, green, blue)
    alpha = (alpha<0 and 0) or (alpha>10 and 10) or alpha
    local param = 10 - math.floor(alpha + 0.5)
    text = string.sub(text, 1) .. string.format("%1.0f%%", alpha*10)
    alpha = 250 - param*10
    return {text, alpha, red, green, blue}
end


    local function show()
    local hud = get_hud()
    local custom_static
    local tbl = {
["actor_health"]  =    getSt("Здоровье:", db.actor.health *10,  0, 255,   0),                            
["actor_psy_health"] =getSt("Психика:", db.actor.psy_health    *10,   0, 250, 255),
["actor_satiety"] =   getSt("Голод:", 10 - db.actor.satiety    *10, 255, 155,   0),
["actor_radiation"] = getSt("Облучение:", db.actor.radiation    *10, 255, 255,   0),
["actor_sleep"] =   getSt("Усталость:", nlc_vars.gg_need_sleep    /25, 255, 255, 255),}
    for k,v in pairs(tbl) do
        custom_static = hud:GetCustomStatic(k)
        if custom_static == nil then
                 hud:AddCustomStatic(k, true)
        elseif v then
                    custom_static:wnd():SetText(v[1])
            custom_static:wnd():SetTextColor(v[2],v[3],v[4],v[5])
          end
    end
end

 

Ссылка на комментарий

@bastorиз очевидного: не вижу кода удаления статика, только добавления (я ж не телепат и не "крутой хацкер"!); также, если у тебя GetCustomStatic(k), то и RemoveCustomStatic должен иметь параметр-указатель кого-что удалять (не всё же подряд и не случайный!)

Изменено пользователем Black_Raven_03
Скрытый текст

AMD FX-8100 (Bulldozer) , 16GB DDR3-1600, AFOX GeForce GTX1050Ti и нормально сталкерим в НА5.1, НА7, OGSE-0693, OGSR, НС2016, OLR, OFFLIFE, CoC, LADC, СГМ, "Возвращении в Зону", Аномали, ЧН ОГСМ!

Мозг состоит на 80 процентов из жидкости, и мало того, что она тормозная, так многим еще конкретно не долили...@Denikius136
Black_Raven.gif
 

Ссылка на комментарий
1 час назад, Black_Raven_03 сказал:

должен иметь параметр-указатель кого-что удалять

Разобрался уже статик не удалялся потому что выполнялся внутри функции  худа вынес его в отдельный скрипт и все заработало.

  • Согласен 1
  • Полезно 1
Ссылка на комментарий

День добрый товарищи. У меня вопрос, вот какого плана: Как установить метку на предмет, если использовать «Рандомный спавн объектов» от тов. Singapur22?

Пример функции:

function my_spawn()
local tbl = {
{129.204,-6.337,-12.101,427496,133},
{101.002,-7.632,-4.966,398683,116},
{106.678,-7.494,8.702,406288,118}
}
local items = {
'af_medusa',
'af_vyvert',
'af_blood'
}       
xr_effects.uni_random_spawn(items, tbl, kol)
end

 

Pir%40t%40s.gif

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   1 пользователь

AMK-Team.ru

×
×
  • Создать...