27

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

» WarCraft 3 / GetMainSelectedUnit

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

» WarCraft 3 / GetMainSelectedUnit

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

» 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)
Вроде работает
Загруженные файлы
27

» Warcraft 3 Classic HD / Warcraft 3 Classic HD

darkowlom,
обновление с поддержкой normal, roughness, metallic, specular, emissive
случае если карту запускает игрок без мода они просто не будут использоваться, не нарушая совместимости
Это уже сделано близзами 5 лет назад.
27

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

ScorpioT1000, на каждый источник света*. Свет используется в DNC моделях, HD-портретах, всяких спецэффектах и 3д экранах.
В целом, всем пофиг на тени и модели, там эльфов опять баффнули, и в коммьюнити начался сущий кошмар.
27

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

Последние новости!
Обновился формат моделей, теперь это MDX1200. Из изменений обнаружили только то, что источник света потолстел на 4 байта: появилось новое float свойство ShadowIntensity. Вроде бы в основном у близзов в моделях стоит 0.4.
Актуальный билд ретеры здесь.
27

» WarCraft 3 / Система гибкой перезарядки способностей [Lua]

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