konvan5, может быть костыли скоро не понадобятся, если близзы дадут возможность форсить опцию для карты. И вероятность этого ненулевая, типа год назад я бы не поверил, что они позволят лочить дальность камеры в редакторе, а оно вон как оказалось.
Обнуление веса импорта это какой-то древний баг вроде, ещё на патчах до рефа появился.
Есть какие-то способы исправить проблему?
Не использовать менеджер импорта. Карту можно сохранить как папку (File -> Save as -> .w3x Folder), и весь импорт просто закидывать туда файлами в стандартном проводнике. Вместо трахания с путями теперь можно сразу создать любую удобную структуру папок в карте. С импортом ничего не случится, поскольку это ваши файлы на диске, которые редактор только читает.
Хранить рабочий файл карты в рефе не обязательно, можно полноценно работать именно с папкой, можно даже подключить систему контроля версий. Открыть карту в редакторе можно и в режиме папки, просто перетащив папку в окно редактора. И, собственно, сбилдить карту в один w3x файл для игры можно в любой момент, всё также через сохранение.
Может это звучит как костыль, но нет, это реально удобно. Не счесть сколько тут было поседевших ребят, которые много месяцев делали карту в одном файле, а потом она у них в один прекрасный день перестала открываться. Папка решает все подобные проблемы. Папка ваш друг.
ScorpioT1000, это больше про мобилки, когда не дописал коммент, свернул браузер, а потом вернулся. Страница обновилась, текст коммента остался, а указатель ветки слетел. Хотя вот конкретно с этим я, по-моему, довольно таки уже давно сталкивался.
Постоянно одна и та же история. Выделяю текст комментария в ветке, потом лезу в какую-то менюшку сбоку, там пункты типа "цитировать" и "ответить с цитатой" или что-то такое, я хз, что нажимать, тыкаю на что-то на рандоме, и меня выкидывает из ветки. Если замечу, то перетыкаю, если нет, то коммент отправится не в реплай, а просто под ресурс. На мобилке это всё вдвойне неудобно. Если страницу обновить, и продолжить писать, то тоже выкинет из ветки.
И подозреваю, что проблема не у меня одного, замечал в комментах следы подобного взаимодействия с сайтом и у других юзеров. Я не знаю как это должно быть правильно, но у вас ответ в ветку с цитатой это просто какой-то лютый квест.
Smeto, обычный таймер — это обычный таймер, а это какая-то кастомная функция с TriggerSleepAction. Не знаю, что там утекает или не утекает, но почему нельзя голый нативный таймер использовать?
function PolledWait2 takes real time returns nothing
local timer t
local real R
if time>0. then
set t = CreateTimer()
call TimerStart(t,time,false,null)
loop
set R=TimerGetRemaining(t)
exitwhen R<=0.
call TriggerSleepAction(R)
endloop
call DestroyTimer(t)
set t=null
endif
endfunction
Теперь в цветовых кодах спецсимвол c стал регистрозависимым. Если использовать |C вместо |c в таких местах как тексты на кнопках, то содержимое внутри цветового кода будет заменено на текущий хоткей.
Наверное именно этот фрейм дёргается нативкой BlzEnableCursor. В целом, до спрайта курсора из кода не добраться, но альфу, скейл и видимость он наследует от него.
А насчёт смены координат, у спрайтов есть такое поведение, что модель начинает уезжать в сторону от фактического положения, если размер фрейма (именно Width и Height) становится слишком большим. Возможно, что это та же история.
Smeto, у тултипов есть весомый плюс: они позволяют ловить курсор в мёртвой зоне в самом верху экрана (близзовская нативка там возвращает (0.0, 0.0) вместо мировых координат. В остальном там куча проблем, ибо в игре сходу нужно создать тысячи объектов, их нужно пересоздавать при загрузке сохранений и ещё придётся отслеживать разрешение игрока, чтобы заполнить весь экран клетками.
И координаты она возвращает грубые, так как используется сетка, а не реальные координаты, там прям мастхев lerp добавлять, чтобы не двигать фрейм лесенкой.
В спейс шуторе решал эту задачу более простым способом: я сразу фиксировал намертво игровую камеру перпендикулярно земле, и благодаря этому знал какие мировые координаты находятся на краях 0.8 x 0.6 экрана, но это специфический случай, применимый только к карте фул на фреймах.
Костылями. Воспользоваться любой существующей наработкой на определение экранных координат курсора (например, вот одна на математике камеры, вот вторая на тултипах), и двигать фрейм в координаты курсора по событию или по таймеру.
Но так чётко и синхронизировано как у близзов с инвентарём не получится, там вообще не фрейм, а текстура в модели курсора на иконку предмета меняется.
Smeto, да вроде не особо то и меньше. Получение основного фрейма для группы я скопипастил с хайва, а дальше там вообще просто пример как проверить подсвечена ли иконка жёлтой рамкой, и вывод, который тут не нужен, так как здесь достаточно вернуть первое значение.
P.S. Наработка – огонь. Руками воспроизводим внутреннюю UIшную сортировку, чтобы порядок юнитов из группы совпадал с порядком иконок в интерфейсе.
local unitFrame = BlzGetFrameByName("SimpleInfoPanelUnitDetail", 0)
local bottomCenterUI = BlzFrameGetParent(unitFrame)
local groupFrame = BlzFrameGetChild(bottomCenterUI, 5)
--[[BlzFrameClearAllPoints(groupFrame)
BlzFrameSetAbsPoint(groupFrame, FRAMEPOINT_CENTER, 0.4, 0.3)
BlzFrameSetSize(groupFrame, 0.188125, 0.1140625)
--Scale it up
BlzFrameSetScale(groupFrame, 1.5)]]
local buttonContainerFrame = BlzFrameGetChild(groupFrame, 0)
local buttonFrame
TimerStart(CreateTimer(), .25, true, function()
local activeButtonTick = {}
for i = 0, 11 do
buttonFrame = BlzFrameGetChild(buttonContainerFrame, i)
table.insert(activeButtonTick, BlzFrameIsVisible(BlzFrameGetChild(buttonFrame, 0)) and i or nil)
end
if #activeButtonTick > 0 then
print("IDs: ", table.concat(activeButtonTick, ", "))
end
end)
» Stormgate / Альфа-версия редактора Stormgate вышла в открытый доступ
» Stormgate / Показали альфа-версию редактора ландшафта Stormgate
» WarCraft 3 / Что не так с опцией HUD Scale?
Ред. Makeba
» WarCraft 3 / Ну очень часто ломается импорт
Ред. Makeba
» Администрация XGM / механизм цитирования
» Администрация XGM / механизм цитирования
» Stormgate / Показали альфа-версию редактора ландшафта Stormgate
» Stormgate / Показали альфа-версию редактора ландшафта Stormgate
» WarCraft 3 / [2.0.3 vJass] UI - Move Able Frame - Перетаскиваем фрейм мышкой
» WarCraft 3 / [2.0.3 vJass] UI - Move Able Frame - Перетаскиваем фрейм мышкой
» WarCraft 3 / [2.0.0] Как кодом заставить нажать на скил с целью, но без применения
Ред. Makeba
» WarCraft 3 / [2.0.0] Как кодом заставить нажать на скил с целью, но без применения
» WarCraft 3 / Кинематограф/Спецэффекты
» WarCraft 3 / Вылетает редактор карт
» WarCraft 3 / Reforged PTR 2.0.3: Оптимизация, новые настройки и изменения баланса (+ исправления нативных функций)
» WarCraft 3 / Список дефолтных фреймов-1. Потомки gameUI
» WarCraft 3 / Список дефолтных фреймов-1. Потомки gameUI
Ред. Makeba
» WarCraft 3 / Список дефолтных фреймов-1. Потомки gameUI
» WarCraft 3 / Мне нужно помощь в написание скрипта если хотите помочь пишите
Ред. Makeba
» WarCraft 3 / [2.0.3] Как перетаскивать фрейм мышкой?
» WarCraft 3 / [2.0.3] Как перетаскивать фрейм мышкой?
Ред. Makeba
» WarCraft 3 / GetMainSelectedUnit
» WarCraft 3 / GetMainSelectedUnit
Ред. Makeba
» WarCraft 3 / GetMainSelectedUnit