Цитата(Zagolski @ 30.08.2017, 04:34)
Он скорее всего имеет в виду, чтобы текстура прицела накладывалась вместе с текстурой худа от маски, чтобы при прицеливании через текстурный прицел был виден эффект загрязнения маски и остальное.
Ну тут ещё проще. Все UI-окна рисуются на экране по очереди. Нужно найти в движке где регулируется очередь и сделать так чтобы маска на лице рисовалась перед\после прицела. Вообщем это совсем другая тема.
Как вариант по аналогии с 3D-прицелом выше можно просто сделать чёрный квадрат с текстурой прицела и заменять худ им. Т.к это 3D-модель, то весь UI будет поверх неё.
====================================================
Цитата(Xottab_DUTY @ 26.08.2017, 18:03)
Насколько я помню, он падал и с
Код
self.sleep_mb:SetAutoDelete(true)
А вот такое не пробовал:
Код
self.sleep_mb.SetAutoDelete(true)
Вообщем да, там сразу две (три) проблемы:
1) В самом lua-скрипте синтаксическая ошибка (опечатка с двойным self)
2) Если её исправить, то начнёт вываливаться в другом месте с логом:
Код
FATAL ERROR
[error] expression : !m_error_code
[error] Function : raii_guard::~raii_guard
[error] File : script_engine.cpp
[error] Line : 570
[LUA][Error]: No matching overload found, candidates:
void <unknown>(vector2&,custom [float])
Passed arguments [2]: userdata (vector2&), number (361)
stack traceback:
[C]: at 0x045f1d47
[C]: in function '__newindex'
... call of pripyat\gamedata\scripts\ui_sleep_dialog.script:74: in function 'Initialize'
... call of pripyat\gamedata\scripts\ui_sleep_dialog.script:94: in function 'TestAndShow'
... call of pripyat\gamedata\scripts\ui_sleep_dialog.script:181: in function 'sleep'
...ker - call of pripyat\gamedata\scripts\xr_effects.script:2856: in function <...ker - call of pripyat\gamedata\scripts\xr_effects.script:2846>
Причина вылета в этой строчке ui_sleep_dialog.script:74:
pos.x = self.sleep_static:GetWndPos().x+self.sleep_static:GetWidth(), что равносильно pos.x = 321 + 40 --// 361
А
точнее (судя по всему) в LuaJit / LuaBind который почему-то пытается то-ли сложить vector2 с числом в этой строке, то-ли как то ещё криво воспринимает оператор + (хотя мне пока неясно причём он здесь, если мы присваиваем результат свойству .x а не самому vector2).
Я также заметил что такой код стал приводить к вылету:
local pos = vector2():set(123, 456);
tostring(pos);
Раньше бы tostring вернул userdata:, скорее всего класс vector2() экспортирован не правильно, либо проблема гораздо глубже. Продолжу разбираться уже завтра, возможно даже я где-то что-то сломал.
3) В догонку - в текущем Open XRay опять поломан вывод лога (не выводится stack traceback). Я его чинил, но в последующем туда прокралась опечатка:
Впрочем сейчас заметил что там ещё есть просторы по его улучшению. Попробую на днях исправить, но не уверен что в OpenXRay остался хоть кто-то из владельцев, способный принять pull request.
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
И меня ещё волнует (
бомбит) что применение автоматического форматирования кода в OpenXRay (в ещё более ранних коммитах) привело к такой "красоте" в некоторых местах:
Хотя в целом авто-форматирование - вещь хорошая, но настроено и применено оно было совершенно бездумно -__-
Теперь даже нельзя diff-ом сравнить правленый движок с оригинальным.