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

Принятый ответ

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
5 лет назад
0
NazarPunk, я там прочитал и сделал то, что выше скинул. Код не работает.
0
29
5 лет назад
0
я там прочитал и сделал то
Плохо читали, там же есть пример с текстом
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
0
21
5 лет назад
0
NazarPunk, кажется тут совсем другое. Я имел ввиду этот текст
1
29
5 лет назад
1
кажется тут совсем другое. Я имел ввиду этот текст
Я ж говорю, плохо читали)
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
Загруженные файлы
0
26
5 лет назад
0
вообще то в маньяке это сделано через абуз строк мультиборда, способ очень бородатый
0
21
5 лет назад
0
NazarPunk, а почему текст не похож? Я попытался имзенить размер, но он не меняется. Расположение тоже не получается сделать по центру.
Походу это просто текст на экране, а не сообщение о расходах.
SetSize меняет не размер, а местонахождение...
1
29
5 лет назад
1
Походу это просто текст на экране, а не сообщение о расходах.
Вы точно читали?
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
Загруженные файлы
0
21
5 лет назад
0
NazarPunk, здесь Вы просто переместили надпись, а мне нужно создать свой текст
Здесь я вывел через SetPlayerState( ) надпись на экране, как видно на скрине, эта надпись намного крупнее.
Загруженные файлы
0
26
5 лет назад
0
здесь Вы просто переместили надпись, а мне нужно создать свой текст
Hate:
вообще то в маньяке это сделано через абуз строк мультиборда, способ очень бородатый
чукча не читатель, чукча писатель?
0
29
5 лет назад
Отредактирован nazarpunk
0
ScopteRectuS, я непойму, что вы хотите?
Величину текста кодом задать нельзя. Все текстовые фрэймы игры наследуют один из следующих фрэймов
  Frame "TEXT" "StandardButtonTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.013, "",
    FontJustificationH JUSTIFYCENTER,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 0.99 0.827 0.0705 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.5 0.5 0.5 1.0,
	FontShadowColor 0.0 0.0 0.0 0.9,	
    FontShadowOffset 0.001 -0.001,
}

Frame "TEXT" "StandardInfoTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.013, "",
    FontJustificationH JUSTIFYCENTER,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 0.99 0.827 0.0705 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.5 0.5 0.5 1.0,
	FontShadowColor 0.0 0.0 0.0 0.9,	
    FontShadowOffset 0.001 -0.001,	
}

Frame "TEXT" "StandardTitleTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.015, "",
    FontJustificationH JUSTIFYLEFT,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 1.0 1.0 1.0 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.2 0.2 0.2 1.0,
    FontShadowColor 0.0 0.0 0.0 0.9,	
    FontShadowOffset 0.001 -0.001,	
}

Frame "TEXT" "StandardLabelTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.013, "",
    FontJustificationH JUSTIFYLEFT,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 0.99 0.827 0.0705 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.2 0.2 0.2 1.0,
	FontShadowColor 0.0 0.0 0.0 0.9,	
    FontShadowOffset 0.001 -0.001,	
}

Frame "TEXT" "StandardValueTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.013, "",
    FontJustificationH JUSTIFYLEFT,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 1.0 1.0 1.0 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.2 0.2 0.2 1.0,
	FontShadowColor 0.0 0.0 0.0 0.9,	
    FontShadowOffset 0.001 -0.001,	
}

Frame "TEXT" "StandardSmallTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.011, "",
    FontJustificationH JUSTIFYLEFT,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 0.99 0.827 0.0705 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.2 0.2 0.2 1.0,
	FontShadowColor 0.0 0.0 0.0 0.9,	
    FontShadowOffset 0.001 -0.001,	
}

Frame "TEXT" "StandardSmallTitleTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.011, "",
    FontJustificationH JUSTIFYLEFT,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 1.0 1.0 1.0 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.2 0.2 0.2 1.0,
	FontShadowColor 0.0 0.0 0.0 0.9,	
    FontShadowOffset 0.001 -0.001,	
}

Frame "TEXT" "StandardExtraSmallTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.009, "",
    FontJustificationH JUSTIFYLEFT,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 0.99 0.827 0.0705 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.2 0.2 0.2 1.0,
    FontShadowColor 0.0 0.0 0.0 0.9,    
    FontShadowOffset 0.001 -0.001,  
}

Frame "TEXT" "StandardExtraSmallTitleTextTemplate" {
    DecorateFileNames,
    FrameFont "MasterFont", 0.007, "",
    FontJustificationH JUSTIFYLEFT,
    FontJustificationV JUSTIFYMIDDLE,    
    FontFlags "FIXEDSIZE",
    FontColor 1.0 1.0 1.0 1.0,
    FontHighlightColor 1.0 1.0 1.0 1.0,
    FontDisabledColor 0.2 0.2 0.2 1.0,
    FontShadowColor 0.0 0.0 0.0 0.9,    
    FontShadowOffset 0.001 -0.001,  
}
Если хотите свои настройки, создайте свой .fdf и измените их
            Frame "TEXT" "MyAwesomeText" INHERITS "StandardInfoTextTemplate" {
                SetPoint TOPLEFT, "MyAwesomeFrame", BOTTOMLEFT, 0.0, -0.001,
                Width 0.37,
                FontJustificationH JUSTIFYLEFT,
                Text "MyAwesomeText",
            }

0
21
5 лет назад
0
NazarPunk, если в двух словах, то мне нужна функция из мемхака:
    function SuperTextPrinter takes string s, integer color, real staytime returns nothing
        call CallThisCallWith4Args( pPrintText1, RMem( pGameClass2 ), GetStringAddress( s ), mR2I( staytime ), color )
    endfunction
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.