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

Скриптование


Svoboда

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

(изменено)

@Fenrir02 Вот так попробуй: if level.name() == "l02_garbage" then

 

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

Поделиться этим сообщением


Ссылка на сообщение

@alexsimm Через sv_setweather

Список погод: 

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

default
indoor
map
mp
pripyat
radar
rain
sarkofag
stancia
test
yantar

Пример: sv_setweather pripyat 

Поделиться этим сообщением


Ссылка на сообщение

@scala Поправь вероятность появления товара в конфигах торговцев в секциях [supplies_start], [supplies_after...].

Пример: 

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

[supplies_start]

;Название предмета = количество, вероятность появления

 stalker_outfit              = 3,  0.7 

 

Поделиться этим сообщением


Ссылка на сообщение

@scala 1 поставь.

В секции [supplies_after_квест_торговца] указано количество предметов и вероятность появления, после выполнения квеста торговца.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Всем привет. Интересует, как можно еще отключать CustomStatic во время прицеливания через оптику(где запускается текстура внешнего прицела или прицельной сетки). Отслеживать через "db.actor:accuracy()*1000"  - не вариант, так как в результате статик будет отключатся и после прицеливания без оптики. В DMX моде вот такая реализация:

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

 


if upd_time3 == nil then
    upd_time3 = time + 500
  elseif upd_time3 < time then
    upd_time3 = time + 500  
    local accuracy = math_ceil(db.actor:accuracy()*1000)
    if accuracy == 1 then
        if not scopeUsed then
            local item = db.actor:active_item()
            if item then
                --get_console():execute("load ~#I#: db.actor:active_item():section()="..tostring(item:section()))
                if item:section() == "wpn_binoc" then
                    scopeUsed = true
                elseif IAmAWeapon[item:clsid()] then
                    local t = amk.get_weapon_data(alife():object(item:id()))
                    scopeUsed = (bit_and(t.addon_flags, 1) == 1 or rx_utils.get_addon_status(item, "sc") == 1)
                    --amk.dump_table(t)
                end
            end
        end
    else
        scopeUsed = false
    end
  end

 

Может получше варианты есть?

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

Поделиться этим сообщением


Ссылка на сообщение
4 минуты назад, dsh сказал:

или как определить, что сейчас идет прицеливание?

Да, но прицеливание именно через оптику. Вариант вот есть из DMX мода(выше). Просто интересуюсь, есть может варианты получше?

 

Поделиться этим сообщением


Ссылка на сообщение

Всем привет. Кто-то проверял, этот метод предотвращения утечки памяти после закрытия окна действительно работает?

 

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

function autohiding_msg(txt, delay)
	local dlg = MonologueMsg(txt)
	level.start_stop_menu(dlg, true)
	autohide_dlg_timer(delay, dlg):start()
end

class "MonologueMsg" (CUIScriptWnd)

function MonologueMsg:__init(txt) super()
	local xml = CScriptXmlInit()
	local dev = device()
	
	if dev.aspect_ratio > 0.7 then
		xml:ParseFile("ui_ogse_monologue_msg.xml") -- 4^3
	else
		xml:ParseFile("ui_ogse_monologue_msg_16.xml") -- 16^9
	end	
	xml:InitWindow("main", 0, self)
	self.msg = xml:InitStatic("main:msg", self)
	self.msg:SetTextST(txt)
	self.dlg = self                                         
end 

function MonologueMsg:OnKeyboard(dik, key_act) CUIScriptWnd.OnKeyboard(self,dik,key_act)
	if key_act == ui_events.WINDOW_KEY_PRESSED and dik == DIK_keys.DIK_ESCAPE then
		self:GetHolder():start_stop_menu(self,true)
		self.dlg = nil -- отпускаем объект для сборщика мусора
	end
	return true
end

  

Также интересует, есть ли смысл использовать collectgarbage("collect") после закрытия окна?

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@dsh, Это код из ОГСЕ 0693 (ogse.script)

 

47 минут назад, dsh сказал:

Я для этого делал вот такой костыль... dshCUIScriptWnd вот тут можешь посмотреть...

Спасибо, буду разбираться. 

47 минут назад, dsh сказал:

Смысл в том, что бы self в коллбэках окна не хранился, а хранился некий идентификатор, с помощью которого этот self в нужный момент извлекается из другой структуры, не связанной с этим окном.

Сложно конечно)

 

47 минут назад, dsh сказал:

Если уборщик может это убрать, он через некоторое время это уберет. Если не может, то и принудительный вызов уборщика тут не поможет.

Понял. Кстати этих collectgarbage("collect") в скриптах ОГСЕ (ui_handradio.script, jekan_devices.script, jekan_devices2.script, ui_remkit.script) - полно. От этого и немного фризит после нажатия на кнопки.

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

Поделиться этим сообщением


Ссылка на сообщение
17 минут назад, dsh сказал:

Можешь спокойно убирать, они там не нужны

Да уже пробовал, без collectgarbage фризов таких нет. 

 

14 минут назад, dsh сказал:

Просто добавь себе этот скрипт, закомментируй там ClearCallbacks() и везде поменяй

где наследуется от CUIScriptWnd пусть наследуется от dsh_ui.dshCUIScriptWnd

Да это я понимаю. Я имел ввиду код сложноват, до конца не пойму как оно работает)

 

 

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

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