30

» WarCraft 3 / Как с помощью фрэймов отобразить модель героя?

noyl, вы вопрос читали? Создавать фрэймы я умею.
Есть нативка BlzFrameSetModel
Нативку я нашёл, но не к каждому фрэйму она применима.
И фрейм вроде как нужен правильный для этого.
Написал парсер фрэймов, чтоб каждый не открывать. Скорей всего, нужен фрэйм с типом MODEL, например
Frame "MODEL" "ScoreScreenBackground" {
			BackgroundArt "UI\Glues\ScoreScreen\ScoreScreen-Background\ScoreScreen-Background.mdl",
			SetAllPoints,
			LayerStyle "NOSHADING",
		}
Как будет время, буду тестировать и отпишусь о результатах.
30

» WarCraft 3 / Как закрепить плавающий текст вверху экрана?

Походу это просто текст на экране, а не сообщение о расходах.
Вы точно читали?
do
    TimerStart(
        CreateTimer(),
        0,
        false,
        function()
            local GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
            local frame = BlzGetFrameByName("ResourceBarUpkeepText", 0)
            BlzFrameClearAllPoints(frame)
            BlzFrameSetPoint(frame, FRAMEPOINT_TOP, GAME_UI, FRAMEPOINT_TOP, 0, -0.05)
        end
    )
end
Загруженные файлы
30

» WarCraft 3 / Как закрепить плавающий текст вверху экрана?

кажется тут совсем другое. Я имел ввиду этот текст
Я ж говорю, плохо читали)
do
    TimerStart(
        CreateTimer(),
        0,
        false,
        function()
            local GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
            local tooltip =
                BlzCreateFrameByType("TEXT", "StandardInfoTextTemplate", GAME_UI, "StandardInfoTextTemplate", 0)
            BlzFrameSetSize(tooltip, 0.28, 0.08)
            BlzFrameSetPoint(tooltip, FRAMEPOINT_CENTER, GAME_UI, FRAMEPOINT_CENTER, 0.0, 0.0)
            BlzFrameSetText(tooltip, "И что тут непонятного?")
        end
    )
end
Загруженные файлы
30

» WarCraft 3 / Как закрепить плавающий текст вверху экрана?

я там прочитал и сделал то
Плохо читали, там же есть пример с текстом
function TestFrameEvent takes nothing returns nothing
   //call BJDebugMsg("TestFrameEvent")
   //call BJDebugMsg("Player: "+GetPlayerName(GetTriggerPlayer()))

   if BlzGetTriggerFrameEvent() ==FRAMEEVENT_CONTROL_CLICK then
       call BJDebugMsg("FRAMEEVENT_CONTROL_CLICK")

   elseif BlzGetTriggerFrameEvent() == FRAMEEVENT_MOUSE_ENTER then
       call BJDebugMsg("FRAMEEVENT_MOUSE_ENTER")
   elseif BlzGetTriggerFrameEvent() == FRAMEEVENT_MOUSE_LEAVE then
       call BJDebugMsg("FRAMEEVENT_MOUSE_LEAVE")
   endif
endfunction

function TestClickableButton takes nothing returns nothing
local trigger trig = CreateTrigger()
  local framehandle mainbutton = BlzCreateFrame("ScoreScreenBottomButtonTemplate", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI,0), 0,  0)
   local framehandle imgFrame = BlzGetFrameByName("ScoreScreenButtonBackdrop",  0)
   local framehandle tooltipBox = BlzCreateFrame("ListBoxWar3", mainbutton, 0,  0)
  local framehandle tooltip = BlzCreateFrameByType("TEXT", "StandardInfoTextTemplate", tooltipBox, "StandardInfoTextTemplate",  0)

   call BlzFrameSetSize(mainbutton, 0.04, 0.04)

   call BlzFrameSetSize(tooltipBox, 0.3, 0.1)
   call BlzFrameSetSize(tooltip, 0.28, 0.08)//tooltip-Text is smaller than the box, so it wont touch the border.

  call BlzFrameSetTexture(imgFrame, "ReplaceableTextures\\CommandButtons\\BTNPeasant.blp", 0, true) //set the image of the imgFrame, with 0 the texture is streched with 1 the frame is filled with that texture.

   call BlzFrameSetAbsPoint(mainbutton, FRAMEPOINT_TOPLEFT, 0.4, 0.3) //positionate button on the screen


   call BlzFrameSetPoint(tooltip, FRAMEPOINT_CENTER, tooltipBox, FRAMEPOINT_CENTER, 0.0, 0.0) //place tooltip into tooltipBox
  call BlzFrameSetPoint(tooltipBox, FRAMEPOINT_BOTTOM, mainbutton, FRAMEPOINT_TOP, 0.0, 0.0) //place tooltipBox with its bottom to the mainButtons TOP. tooltipBox will be over the mainbutton

   call BlzFrameSetTooltip(mainbutton, tooltipBox) //show tooltipBox only when mainbutton is hovered with the mouse.
  call BlzFrameSetText(tooltip, "Sound\\Music\\mp3Music\\Credits.mp3|nSound\\Music\\mp3Music\\PH.mp3|n|cffffcc00Sound\\Music\\mp3Music\\War2IntroMusic.mp3") //text of the tooltip


   call TriggerAddAction(trig, function TestFrameEvent)
   call BlzTriggerRegisterFrameEvent(trig, fh, FRAMEEVENT_CONTROL_CLICK)
   call BlzTriggerRegisterFrameEvent(trig, fh, FRAMEEVENT_MOUSE_ENTER)
   call BlzTriggerRegisterFrameEvent(trig, fh, FRAMEEVENT_MOUSE_LEAVE)

endfunction
30

» WarCraft 3 / WC3 Gothic User Interface Widescreen

можно,внизу портрета убрать синию,и красную полоску сделать по стандарту хп на черном фоне?
имхо, так красивее смотрится(
30

» WarCraft 3 / проблема с ландшафтом

ScopteRectuS, потому что плавный переход в воду делается не стандартными клифами, а поднятием рельефа
Загруженные файлы
30

» WarCraft 3 / как разбить фигуры на прямоугольники?

Если не нужны события входа/выхода, то можно хранить массив рёбер и не связываться с ректами.
30

» WarCraft 3 / как разбить фигуры на прямоугольники?

не могу сказать, у меня же нет центра
Центр есть у точки, которая проверяется на принадлежность к многоугольнику. Вам нужно лишь хранить массив рёбер фигуры.
30

» WarCraft 3 / как разбить фигуры на прямоугольники?

Каким образом детерминируются многоугольники?
По ссылке в вопросе это уже спрашивали
Загруженные файлы
30

» WarCraft 3 / проблема с ландшафтом

У меня похожие баги появлялись в JNGP после копирования кусков ланда. Решал через
После регулировки, если можно свободно повышать/понижать уровень уклона нужно ручками всё править. Можете прикрепить карту, попробую зафиксить. Желательно без триггеров ибо последний патч.
Загруженные файлы
30

» WarCraft 3 / Как с помощью фрэймов отобразить модель героя?

А как ты фреймы тогда сделал?
BlzCreateFrameByType() и дальше по накатанной. Скриншот кстати из инвентаря на DGUI, я его для наглядности прикрепил.
30

» The Witcher new Empires / The Witcher new Empires

Если установить небо, оно будет видно только через игровую камеру, которая срезает дальность видимости, без нее красивее
Как писалось выше, лучше скриншоты гэймплэя делать.
Насчет запутанного древа исследований, видел его пару раз, а так в рисках самые обычные грейды на Атаку/Защиту
В некоторых картах есть чувство, что играешь на забытом истории языке. Ибо вообще непонятно что и зачем ты делаешь.
30

» The Witcher new Empires / The Witcher new Empires

так как редко вижу реально качественные риски
я вообще видел мало рисков на вар3, но все они болеют одинаковой фигнёй
  • запутанное дерево исследований
  • отсутствие описаний механик в самой игре
  • союз через чат
  • стандартное управление отрядами

надеюсь авторы прибьют это в зародыше
30

» WarCraft 3 / Использования юнита как снаряд

А что насчёт хранения всех снарядов в группе и выбора уже из неё только тех, которые в нужной области?
Уже несколько человек несколько раз предлагали. Автор хочет использовать GroupEnumUnitsInRange() для пика юнитов по удалённости от точки.
30

» WarCraft 3 / Использования юнита как снаряд

как это ТРИ ?
  • Перебор группы снарядов и снятие Aloc
  • Пик снарядов в области и совершение над ними действий
  • Перебор группы снарядов и выдача Aloc
вместо
  • Перебор группы снарядов, сравнение расстояния и совершение действия прям в этом переборе.
30

» WarCraft 3 / Использования юнита как снаряд

Extremator, вместо одного перебора группы и сравнения расстояния, вы предлагаете три. Экономично)
30

» Love2D / Lua за 15 минут

prog, это же уровень памяти, а написано так, что можно подумать
s = 'one'
s = 'two'
print(s) --> one
30

» Love2D / Lua за 15 минут

Кто хочет конкретики, пусть читает документацию.
Тогда получается, что статьи не нужны)

Я кстати не понял вот этого
s = 'walternate'  --строки неизменны (нельзя переназначать) как в Рython'e
Хотя код ниже прекрасно исполняется
s = 'one'
s = function()
	return 'work'
end
print(s()) --> work
30

» Love2D / Lua за 15 минут

-- Следующее выражение подобно конструкции a?b:c в C/js:
С тернарным оператором в луа проблема

И не сказано про замыкания и области видимости.