В маньяке с бензопилой помню было такое, хп и стамина отображались сверху в виде плавающего текста, только мне для другого надо. Не знаю как закрепить, пытался многими способами, но ни к чему хорошему не пришел, может есть идеи как это исполнить на GUI ну или если на Jass, то тогда объяснить, что и как там можно менять и для чего)

Например, так.
Создаёшь текст, периодическим триггером на 0.01 секунды его смещаешь. Но всё равно текст сильно дёргается. Надо вскрывать маньяка, либо DGUI, чтобы посмотреть, как там ровно сделано.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
prog, а Вы не знаете как это сделать? Я пытался, но ничего не смог сделать, едниственное, что смог сделать, это сдвинуть в места "Нет расходов" и только то, что вызывается во время игры, а сам свою создать никак не могу.
        local mainFrame = BlzGetOriginFrame( ORIGIN_FRAME_TOP_MSG, 0 )
        local text      = BlzCreateFrame( "ResourceBarUpkeepText", mainFrame, 0, 0 )

        SetPlayerState( Player(0), PLAYER_STATE_RESOURCE_FOOD_USED, 99 )

        BlzFrameSetText( text, "P I C K   H E R O" )
        BlzFrameSetVisible( text, true )

        BlzFrameSetPoint( text, FRAMEPOINT_TOP, mainFrame, FRAMEPOINT_CENTER, 0.0, 0.0 )

        print( "ASD" )
21
NazarPunk, я там прочитал и сделал то, что выше скинул. Код не работает.
30
я там прочитал и сделал то
Плохо читали, там же есть пример с текстом
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
кажется тут совсем другое. Я имел ввиду этот текст
Я ж говорю, плохо читали)
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
Загруженные файлы
26
вообще то в маньяке это сделано через абуз строк мультиборда, способ очень бородатый
21
NazarPunk, а почему текст не похож? Я попытался имзенить размер, но он не меняется. Расположение тоже не получается сделать по центру.
Походу это просто текст на экране, а не сообщение о расходах.
SetSize меняет не размер, а местонахождение...
30
Походу это просто текст на экране, а не сообщение о расходах.
Вы точно читали?
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
Загруженные файлы
21
NazarPunk, здесь Вы просто переместили надпись, а мне нужно создать свой текст
Здесь я вывел через SetPlayerState( ) надпись на экране, как видно на скрине, эта надпись намного крупнее.
Загруженные файлы
26
здесь Вы просто переместили надпись, а мне нужно создать свой текст
Hate:
вообще то в маньяке это сделано через абуз строк мультиборда, способ очень бородатый
чукча не читатель, чукча писатель?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.