26

» WarCraft 3 / Что не так с опцией HUD Scale?

konvan5, может быть костыли скоро не понадобятся, если близзы дадут возможность форсить опцию для карты. И вероятность этого ненулевая, типа год назад я бы не поверил, что они позволят лочить дальность камеры в редакторе, а оно вон как оказалось.
26

» WarCraft 3 / Ну очень часто ломается импорт

Принятый ответ
Обнуление веса импорта это какой-то древний баг вроде, ещё на патчах до рефа появился.
Есть какие-то способы исправить проблему?
Не использовать менеджер импорта. Карту можно сохранить как папку (File -> Save as -> .w3x Folder), и весь импорт просто закидывать туда файлами в стандартном проводнике. Вместо трахания с путями теперь можно сразу создать любую удобную структуру папок в карте. С импортом ничего не случится, поскольку это ваши файлы на диске, которые редактор только читает.
Хранить рабочий файл карты в рефе не обязательно, можно полноценно работать именно с папкой, можно даже подключить систему контроля версий. Открыть карту в редакторе можно и в режиме папки, просто перетащив папку в окно редактора. И, собственно, сбилдить карту в один w3x файл для игры можно в любой момент, всё также через сохранение.
Может это звучит как костыль, но нет, это реально удобно. Не счесть сколько тут было поседевших ребят, которые много месяцев делали карту в одном файле, а потом она у них в один прекрасный день перестала открываться. Папка решает все подобные проблемы. Папка ваш друг.
26

» Администрация XGM / механизм цитирования

ScorpioT1000, это больше про мобилки, когда не дописал коммент, свернул браузер, а потом вернулся. Страница обновилась, текст коммента остался, а указатель ветки слетел. Хотя вот конкретно с этим я, по-моему, довольно таки уже давно сталкивался.
26

» Администрация XGM / механизм цитирования

Постоянно одна и та же история. Выделяю текст комментария в ветке, потом лезу в какую-то менюшку сбоку, там пункты типа "цитировать" и "ответить с цитатой" или что-то такое, я хз, что нажимать, тыкаю на что-то на рандоме, и меня выкидывает из ветки. Если замечу, то перетыкаю, если нет, то коммент отправится не в реплай, а просто под ресурс. На мобилке это всё вдвойне неудобно. Если страницу обновить, и продолжить писать, то тоже выкинет из ветки.
И подозреваю, что проблема не у меня одного, замечал в комментах следы подобного взаимодействия с сайтом и у других юзеров. Я не знаю как это должно быть правильно, но у вас ответ в ветку с цитатой это просто какой-то лютый квест.
26

» Stormgate / Показали альфа-версию редактора ландшафта Stormgate

просто заигрывание со стандартным развитием
То есть также как и в варкрафте? Ну кто бы мог подумать.
26

» WarCraft 3 / [2.0.3 vJass] UI - Move Able Frame - Перетаскиваем фрейм мышкой

Smeto, обычный таймер — это обычный таймер, а это какая-то кастомная функция с TriggerSleepAction. Не знаю, что там утекает или не утекает, но почему нельзя голый нативный таймер использовать?
26

» WarCraft 3 / [2.0.3 vJass] UI - Move Able Frame - Перетаскиваем фрейм мышкой

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
Что это вообще такое и для чего?
26

» WarCraft 3 / Вылетает редактор карт

Принятый ответ
Все редакторы из 2007-го ломаются об строку в реестре, которая создаётся при запуске новой версии.

запускается только через Battle net
В свойствах ярлыка баттлнетовского редактора нужно написать -launch, тогда он будет запускаться не требуя запущенного battle.net
26

» WarCraft 3 / Reforged PTR 2.0.3: Оптимизация, новые настройки и изменения баланса (+ исправления нативных функций)

Ещё одно незадокументированное обновление.
Теперь в цветовых кодах спецсимвол c стал регистрозависимым. Если использовать |C вместо |c в таких местах как тексты на кнопках, то содержимое внутри цветового кода будет заменено на текущий хоткей.
Блин блинский, Flappy Bird сломался.
Загруженные файлы
26

» WarCraft 3 / Список дефолтных фреймов-1. Потомки gameUI

А ведь фреймы ввода сообщения я таки в итоге смог оффнуть, чтобы инпут бокс на Enter не появлялся
26

» WarCraft 3 / Список дефолтных фреймов-1. Потомки gameUI

Smeto, таки баян.
Наверное именно этот фрейм дёргается нативкой BlzEnableCursor. В целом, до спрайта курсора из кода не добраться, но альфу, скейл и видимость он наследует от него.
А насчёт смены координат, у спрайтов есть такое поведение, что модель начинает уезжать в сторону от фактического положения, если размер фрейма (именно Width и Height) становится слишком большим. Возможно, что это та же история.
26

» WarCraft 3 / [2.0.3] Как перетаскивать фрейм мышкой?

Smeto, у тултипов есть весомый плюс: они позволяют ловить курсор в мёртвой зоне в самом верху экрана (близзовская нативка там возвращает (0.0, 0.0) вместо мировых координат. В остальном там куча проблем, ибо в игре сходу нужно создать тысячи объектов, их нужно пересоздавать при загрузке сохранений и ещё придётся отслеживать разрешение игрока, чтобы заполнить весь экран клетками.
И координаты она возвращает грубые, так как используется сетка, а не реальные координаты, там прям мастхев lerp добавлять, чтобы не двигать фрейм лесенкой.

В спейс шуторе решал эту задачу более простым способом: я сразу фиксировал намертво игровую камеру перпендикулярно земле, и благодаря этому знал какие мировые координаты находятся на краях 0.8 x 0.6 экрана, но это специфический случай, применимый только к карте фул на фреймах.
26

» WarCraft 3 / [2.0.3] Как перетаскивать фрейм мышкой?

Принятый ответ
Костылями. Воспользоваться любой существующей наработкой на определение экранных координат курсора (например, вот одна на математике камеры, вот вторая на тултипах), и двигать фрейм в координаты курсора по событию или по таймеру.
Но так чётко и синхронизировано как у близзов с инвентарём не получится, там вообще не фрейм, а текстура в модели курсора на иконку предмета меняется.
26

» WarCraft 3 / GetMainSelectedUnit

Smeto, да вроде не особо то и меньше. Получение основного фрейма для группы я скопипастил с хайва, а дальше там вообще просто пример как проверить подсвечена ли иконка жёлтой рамкой, и вывод, который тут не нужен, так как здесь достаточно вернуть первое значение.
P.S. Наработка – огонь. Руками воспроизводим внутреннюю UIшную сортировку, чтобы порядок юнитов из группы совпадал с порядком иконок в интерфейсе.
26

» WarCraft 3 / GetMainSelectedUnit

Smeto, так а в чём сложность определить выделенного юнита в группе тогда?
26

» WarCraft 3 / GetMainSelectedUnit

Smeto, попробуй так
страшно, вырубай
    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)
Вроде работает
Загруженные файлы