
RayTwitty
Жители-
Число публикаций
1 278 -
Регистрация
-
Последнее посещение
-
Дней в топе
7 -
AMKoin
3,551 [Подарить AMKoin]
RayTwitty последний раз побеждал 27 Июня
RayTwitty - автор самых популярных публикаций!
Баланс оценок
567Недавние посетители профиля
-
@Pavel_2000 эта тема скорее всего не прокатит, так как функция сработает при пинках ГГ другими объектами (аномалии, монстры и т.д.). У тебя в движке есть коллбеки на события клавиатуры, значит почти наверняка есть метод получения стейта ГГ - какой-нибудь db.actor:actor_body_state(). Смотри документацию по движку.
-
@Pavel_2000 если тебе надо что-то делать во время движения ГГ, то лучше отслеживать не кнопки, а стейт ГГ. Все подобные вещи в движке висят на апдейте.
-
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Дело не в трансформациях XFORM, все там нормально. Обнули инерцию камеры во время полета за дроном: psCamInert = 0.0f -
@phalcor в сейве точно ничего не сохраняется. Чтобы партикл удалился сам, достаточно просто не оставить ссылку на него, сборщик мусора lua затрет. При выгрузке уровня, очевидно, все ссылки затираются. Хотя наверняка там грохаются и все партиклы отдельно, не дожидаясь никаких GC, ведь есть и еще всякие движковые партиклы, типа аномалий.
-
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Где тут криво прорисованные текстуры? Ты текстуру открывал? Пиксель в пиксель, в оригинале всё верно. P.S. Тут по-моему тема редактирования движка (и она была выбрана не просто так), а не тема "мастеров правки циферок в xml со стажем в 0.5 лет". Предлагаю эту шизу закончить, ибо уже оффтоп. -
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Это не описание фреймов, это вырезка определенной области из текстуры. Ты знаешь что такое фрейм в контексте сталкера?)) "по одному пикселю" - просто отступить от начала и/или в конце. В редких случаях, как костыль без доступа к движку это может прокатить, я подобное делал 10 лет назад с иконками костюмов ГГ в инвентаре. Но это не решение проблемы ни разу. Есть иконки, которые находится на полотне "ноздря в ноздрю", там ты уже никуда не сместишься (потому что залезешь на соседа или отрежешь лишнее у себя). Это дефект именно вырезки из текстуры и такого быть не должно. -
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
@Chypakabra твои скрины говорят лишь о том, что скорее всего код этих классов из ЗП не переносился. Косвенно могу судить по CUIComboBox - в ЗП там сделали отступ от левого края для текста в списке, чтобы смотрелось чуть лучше. Тут его нет, соответственно код с ТЧ не менялся. В любом случае, обсуждение ЕЕ не имеет смысла, так как мы не можем посмотреть исходники. P.S. То что ПЫС писали о "единой платформе" не нужно понимать буквально - речь скорее всего шла о каких-то core-вещах и рендере. UI-системы у всех игр разные, в ТЧ совсем другие окна инвентаря, ПДА, миникарты и прочего. -
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
А зачем его создавать? Речь шла о том, что отсутствие данных файлов никак не повлияло на тот факт, что при изменении разрешения мы фиксируем разное поведение в интерфейсе. Чел, ты не шаришь, забей) Ты можешь поправить циферки в конфиге и где-то у тебя получится подгадать момент, когда проблема не будет видна на конкретном разрешении, например FHD. Но если ты поставишь 4К, то проблемы повылазят в других местах. Не просто так эти классы переписаны в ЗП, и вообще там много толковых правок как выяснилось. А где в xml описываются frame-элементы?)) Там есть лишь общие размеры, но как они заполняются - это целиком на стороне движка. Вот там и есть проблема. Я не удивлюсь, что тех двух проблем, которые я привел на скрине, там нет. -
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
@Chypakabra причем тут это? Костыль с *_16.xml предназначен лишь для того, чтобы сделать мнимую адаптивность интерфейса. Но это вообще не относится к обсуждаемому вопросу. Да и "_16"-версий для главного меню вообще нет в игре. Это все ответы вообще не в кассу. Правильный ответ - взять классы FrameWindow и FrameLineWnd из ЗП, уверен на 99% что это решит проблему, уже по коду видно. -
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Это все было валидно, если бы на разрешении 1280х1024 таких косяков не наблюдалось. @h0N0r "дырка-полоска" во frame window (в районе пункта Минимальные) на месте, "полоски" в скролле тоже видны. Скорее всего из-за сжатия скриншота в jpg косяки не так заметны. -
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Кто-нибудь разбирался с проблемой рендеринга некоторых UI-элементов в ТЧ? Она появляется, если разрешение экрана сильно больше оригинальных 1024х768 (на скрине FHD). В ЗП такого уже не наблюдается. На мой взгляд, тут на самом деле две проблемы, а не одна: 1) рендер frame-элементов (собираются из кусков) - часто можно видеть "пробелы" в выпадающих списках, скролл-барах и КПК. 2) кривая вырезка областей из текстурного атласа, прежде всего всяких близкорасположенных друг к другу иконок (где сдвиг на 1 пиксель уже означает захват чужой области) - часто можно видеть на чек-боксах в различных меню, а также иконке свитера ГГ в инвентаре. P.S. Классы CUIFrameLineWnd и CUIFrameWindow в ЗП полностью переписаны, видимо как раз с этой целью. -
Редактирование движка X-Ray
RayTwitty ответил на тему форума автора Rolan в Скрипты / конфиги / движок
@НаноБот линк на видео? Вертолет летает сам по себе или он привязан к камере ГГ (управляет вертушкой)? -
@Stalkersof ты что хочешь сделать? Сонливость? Так зачем этот надмозг с таймерами городить. Сонливость - это почти тоже самое, что и другие состояния ГГ, сытость, радиация и т.д. Вот и пляши от этого. Введи для начала параметр сонливости ГГ и меняй его на апдейте - просто прибавляй какой-то коэффициент, по аналогии с другими. Выведи параметры в конфиги в секцию ГГ, чтобы удобно было менять. Далее твоя задача сохранить это все между загрузками игры - тут вариантов масса + в каждой платформе свои ништяки. Ну и все, основное ты считай сделал. Далее привязывайся к параметру сонливости - достиг условно 0.5 - показываешь зеленый индикатор, 0.7 - желтый и т.д. Туда же доп. эффекты типа зевков, уменьшения выносливости и прочее. При этом также легко будет намутить бустеры - всякие кофие и энергетики, которые просто будут уменьшать значение сонливости, а остальное (индикаторы) изменится само под воздействием внешних факторов. Туда же монстры - усыпляющие кошаки и аномалии, простор для творчества большой.
-
При наличии SetSelectedItem (в оригинале ТЧ нет, но есть в ХЕ и вроде бы в ЗП), можно и навигацию стрелками по элементам списка сделать. Я у себя в исходниках еще давно убрал это все под капот (со всеми проверками на вшивость), сделав два метода - выбрать следующий и предыдущий элемент списка. Помимо выбора возвращает успешность попытки (если например дошли до конца, то делать ничего не надо). -- навигация по списку с клавиатуры if keyboard_action == ui_events.WINDOW_KEY_PRESSED then local list = self:GetListWnd("list_window") if dik == DIK_keys.DIK_UP then if list:SelectLastItem() then self:OnListItemClicked() end elseif dik == DIK_keys.DIK_DOWN then if list:SelectNextItem() then self:OnListItemClicked() end elseif dik == DIK_keys.DIK_DELETE then self:OnButton_del_clicked() elseif dik == DIK_keys.DIK_RETURN then self:OnButton_load_clicked() end end Теперь подумываю изменить (добавить перегрузку, чтобы сохранить обратную совместимость) метод GetItem, чтобы без аргументов он сразу возвращал выбранный элемент списка (если есть). Тогда не придется городить эти все if index ~= -1 then return end и прочие: сразу local item = list:GetItem() if item then ... end P.S. Для ванильного (и ХЕ) движка давно юзаю обертку: function _G.validate_list(list) if list:GetSize() ~= 0 then local index = list:GetSelectedItem() return index ~= -1 and list:GetItem(index) end end Юзается так: self:AddCallback("list", ui_events.LIST_ITEM_CLICKED, self.on_list_item_clicked, self) function CUIMyWnd:on_list_item_clicked() if validate_list(self.list) then -- тут 100% есть выбранный item local item = self.list:GetItem(self.list:GetSelectedItem()) end end
-
@WinCap скорее всего некорректное название. GetSelectedIndex правильнее было бы. А вот GetItem уже возвращает юзердату. Можно там конечно дописать что-то типа if not list:GetItem(index) then return end, но это будет затычка. Мне кажется там проблема в чем-то другом. Скрипт кстати правленный, -1 заменено на 4294967295 как минимум, скорее всего оно было написано для другого движка. Как я уже писал выше, надо дебажить.
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды