Добавлен FireKnight
Возникла проблема. В фреймах я прям нубасик. У меня не получается никак сделать локальные тултипы для игроков. Сам же фрейм, при наведении на которого и появляется описание, какой-то сломанный – он не скрывается. А если и каким-то образом и скрывается, то не меняется описание. Что не так?
BoxedText.fdf
// -- LOCAL TEMPLATES -------------------------------------------------------
Frame "BACKDROP" "BoxedTextBackgroundTemplate" {
DecorateFileNames, //Look-Up Names in some String table (for example gameinterface)
BackdropTileBackground, //Tile mode enabled
BackdropBackground "ToolTipBackground", //BackgroundFile
BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
BackdropCornerSize 0.008, //higher numbers make the corners bigger.
BackdropBackgroundInsets 0.0022 0.0022 0.0022 0.0022, //makes the background smaller, from the outside.
BackdropEdgeFile "ToolTipBorder", //the border File
BackdropBlendAll,
}
// -- Frames -------------------------------------------------------
Frame "BACKDROP" "BoxedText" INHERITS "BoxedTextBackgroundTemplate" {
UseActiveContext,
Frame "TEXT" "BoxedTextTitle_Player1" {
UseActiveContext,
DecorateFileNames,
SetPoint TOPLEFT, "BoxedText", TOPLEFT, 0.005, -0.005, //Positionate "BoxedTextSimpleTitle"'s TOPLEFT to "BoxedText"'s TOPLEFT with an offset
SetPoint TOPRIGHT, "BoxedText", TOPRIGHT, -0.005, -0.005,
FontFlags "FIXEDSIZE",
FrameFont "MasterFont", 0.014, "",
FontColor 1.0 1.0 1.0 1.0, //Red Green Blue Alpha 0.0 to 1.0
FontShadowColor 0.0 0.0 0.0 0.9,
FontShadowOffset 0.001 -0.001,
}
Frame "TEXT" "BoxedTextValue_Player1" {
UseActiveContext,
DecorateFileNames,
SetPoint TOPLEFT, "BoxedText", TOPLEFT, 0.005, -0.02,
SetPoint BOTTOMRIGHT, "BoxedText", BOTTOMRIGHT, -0.005, 0.005,
FontFlags "FIXEDSIZE",
FrameFont "MasterFont", 0.01, "",
FontColor 1.0 1.0 1.0 1.0,
FontShadowColor 0.0 0.0 0.0 0.9,
FontShadowOffset 0.001 -0.001,
}
}
Frame "BACKDROP" "BoxedText" INHERITS "BoxedTextBackgroundTemplate" {
UseActiveContext,
Frame "TEXT" "BoxedTextTitle_Player2" {
UseActiveContext,
DecorateFileNames,
SetPoint TOPLEFT, "BoxedText", TOPLEFT, 0.005, -0.005, //Positionate "BoxedTextSimpleTitle"'s TOPLEFT to "BoxedText"'s TOPLEFT with an offset
SetPoint TOPRIGHT, "BoxedText", TOPRIGHT, -0.005, -0.005,
FontFlags "FIXEDSIZE",
FrameFont "MasterFont", 0.014, "",
FontColor 1.0 1.0 1.0 1.0, //Red Green Blue Alpha 0.0 to 1.0
FontShadowColor 0.0 0.0 0.0 0.9,
FontShadowOffset 0.001 -0.001,
}
Frame "TEXT" "BoxedTextValue_Player2" {
UseActiveContext,
DecorateFileNames,
SetPoint TOPLEFT, "BoxedText", TOPLEFT, 0.005, -0.02,
SetPoint BOTTOMRIGHT, "BoxedText", BOTTOMRIGHT, -0.005, 0.005,
FontFlags "FIXEDSIZE",
FrameFont "MasterFont", 0.01, "",
FontColor 1.0 1.0 1.0 1.0,
FontShadowColor 0.0 0.0 0.0 0.9,
FontShadowOffset 0.001 -0.001,
}
}
Frame "BACKDROP" "BoxedText" INHERITS "BoxedTextBackgroundTemplate" {
UseActiveContext,
Frame "TEXT" "BoxedTextTitle_Player3" {
UseActiveContext,
DecorateFileNames,
SetPoint TOPLEFT, "BoxedText", TOPLEFT, 0.005, -0.005, //Positionate "BoxedTextSimpleTitle"'s TOPLEFT to "BoxedText"'s TOPLEFT with an offset
SetPoint TOPRIGHT, "BoxedText", TOPRIGHT, -0.005, -0.005,
FontFlags "FIXEDSIZE",
FrameFont "MasterFont", 0.014, "",
FontColor 1.0 1.0 1.0 1.0, //Red Green Blue Alpha 0.0 to 1.0
FontShadowColor 0.0 0.0 0.0 0.9,
FontShadowOffset 0.001 -0.001,
}
Frame "TEXT" "BoxedTextValue_Player3" {
UseActiveContext,
DecorateFileNames,
SetPoint TOPLEFT, "BoxedText", TOPLEFT, 0.005, -0.02,
SetPoint BOTTOMRIGHT, "BoxedText", BOTTOMRIGHT, -0.005, 0.005,
FontFlags "FIXEDSIZE",
FrameFont "MasterFont", 0.01, "",
FontColor 1.0 1.0 1.0 1.0,
FontShadowColor 0.0 0.0 0.0 0.9,
FontShadowOffset 0.001 -0.001,
}
}
function CustomStatsUI takes nothing returns nothing
local framehandle StatIconPlayer1
local framehandle StatFramePlayer1
local framehandle StatTextPlayer1
local framehandle StatIconPlayer2
local framehandle StatFramePlayer2
local framehandle StatTextPlayer2
local framehandle StatIconPlayer3
local framehandle StatFramePlayer3
local framehandle StatTextPlayer3
call BlzLoadTOCFile("war3mapimported\\BoxedText.toc")
set StatIconPlayer1 = BlzCreateFrameByType("BACKDROP", "StatIconPlayer1", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
set StatFramePlayer1 = BlzCreateFrameByType("FRAME", "StatFramePlayer1", StatIconPlayer1,"", 0)
set StatTextPlayer1 = BlzCreateFrame("BoxedText", StatIconPlayer1, 0, 0)
call BlzFrameSetAllPoints(StatFramePlayer1,StatIconPlayer1)
call BlzFrameSetTooltip(StatFramePlayer1,StatTextPlayer1)
call BlzFrameSetSize(StatIconPlayer1, 0.03, 0.03)
call BlzFrameSetAbsPoint(StatIconPlayer1, FRAMEPOINT_CENTER, 0.480, 0.034)
call BlzFrameSetAbsPoint(StatTextPlayer1, FRAMEPOINT_BOTTOMRIGHT, 0.798, 0.165)
call BlzFrameSetSize(StatTextPlayer1, 0.295, 0.09)
call BlzFrameSetText(BlzGetFrameByName("BoxedTextValue_Player1",0), "1")
call BlzFrameSetText(BlzGetFrameByName("BoxedTextTitle_Player1",0), "Дополнительные характеристики")
call BlzFrameSetTexture(StatIconPlayer1,"ATTSpell_Nature_CrystalBall.blp",0, true)
set StatIconPlayer2 = BlzCreateFrameByType("BACKDROP", "StatIconPlayer2", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
set StatFramePlayer2 = BlzCreateFrameByType("FRAME", "StatFramePlayer2", StatIconPlayer2,"", 0)
set StatTextPlayer2 = BlzCreateFrame("BoxedText", StatIconPlayer2, 0, 0)
call BlzFrameSetAllPoints(StatFramePlayer2,StatIconPlayer2)
call BlzFrameSetTooltip(StatFramePlayer2,StatTextPlayer2)
call BlzFrameSetSize(StatIconPlayer2, 0.03, 0.03)
call BlzFrameSetAbsPoint(StatIconPlayer2, FRAMEPOINT_CENTER, 0.480, 0.034)
call BlzFrameSetAbsPoint(StatTextPlayer2, FRAMEPOINT_BOTTOMRIGHT, 0.798, 0.165)
call BlzFrameSetSize(StatTextPlayer2, 0.295, 0.09)
call BlzFrameSetText(BlzGetFrameByName("BoxedTextValue_Player2",0), "2")
call BlzFrameSetText(BlzGetFrameByName("BoxedTextTitle_Player2",0), "Дополнительные характеристики")
call BlzFrameSetTexture(StatIconPlayer2,"ATTSpell_Nature_CrystalBall.blp",0, true)
set StatIconPlayer3 = BlzCreateFrameByType("BACKDROP", "StatIconPlayer3", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
set StatFramePlayer3 = BlzCreateFrameByType("FRAME", "StatFramePlayer3", StatIconPlayer2,"", 0)
set StatTextPlayer3 = BlzCreateFrame("BoxedText", StatIconPlayer3, 0, 0)
call BlzFrameSetAllPoints(StatFramePlayer3,StatIconPlayer3)
call BlzFrameSetTooltip(StatFramePlayer3,StatTextPlayer3)
call BlzFrameSetSize(StatIconPlayer3, 0.03, 0.03)
call BlzFrameSetAbsPoint(StatIconPlayer3, FRAMEPOINT_CENTER, 0.480, 0.034)
call BlzFrameSetAbsPoint(StatTextPlayer3, FRAMEPOINT_BOTTOMRIGHT, 0.798, 0.165)
call BlzFrameSetSize(StatTextPlayer3, 0.295, 0.09)
call BlzFrameSetText(BlzGetFrameByName("BoxedTextValue_Player3",0), "3")
call BlzFrameSetText(BlzGetFrameByName("BoxedTextTitle_Player3",0), "Дополнительные характеристики")
call BlzFrameSetTexture(StatIconPlayer3,"ATTSpell_Nature_CrystalBall.blp",0, true)
set StatIconPlayer1 = null
set StatFramePlayer1 = null
set StatTextPlayer1 = null
call TimerStart(CreateTimer(),0.05,true,function CustomStatsUIsystem_Actions)
endfunction
Код, который активируется при инициализации карты.
function SelectUnitPlayerNumber takes nothing returns boolean
return IsUnitSelected(GetFilterUnit(),Player(udg_SelectUnitPlayerNumber)) and GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE) > 0
endfunction
function ReplaceDotToComma takes string s returns string
local integer i = 0
local string exm = ""
loop
exitwhen i > StringLength(s)
if SubString(s,i,i+1) == "." then
set exm = exm + ","
else
set exm = exm + SubString(s,i,i+1)
endif
set i = i + 1
endloop
return exm
endfunction
function GetTextTooltipFromUnit takes unit u returns string
local integer h = GetHandleId(u)
local integer criticaldamage_chance = LoadInteger(udg_Hash,'A00A',StringHash(I2S(h) + "_criticaldamage_chance"))
local integer criticaldamage_power = LoadInteger(udg_Hash,'A00A',StringHash(I2S(h) + "_criticaldamage_power"))
local integer spellpower = LoadInteger(udg_Hash,'A00A',StringHash(I2S(h) + "_spellpower"))
local integer spelldef = LoadInteger(udg_Hash,'A00A',StringHash(I2S(h) + "_spelldef"))
local real regeneration_health
local real regeneration_mana
local string s
local string rgh
local string rgm
set criticaldamage_power = criticaldamage_power + 200
set regeneration_health = BlzGetUnitRealField(u,UNIT_RF_HIT_POINTS_REGENERATION_RATE)
set regeneration_mana = BlzGetUnitRealField(u,UNIT_RF_MANA_REGENERATION)
set rgh = R2SW(regeneration_health,2,2)
set rgm = R2SW(regeneration_mana,2,2)
set rgh = ReplaceDotToComma(rgh)
set rgm = ReplaceDotToComma(rgm)
//другие элементы отслеживания, которые я ещё не добавил, но не суть.
set s = "Шанс критического урона: |cffffcc00" + I2S(criticaldamage_chance) + "%|r|nКритический урон: |cffffcc00" + I2S(criticaldamage_power) + "%|r|nСила способностей: |cffffcc00" + I2S(spellpower) + "%|r|nСопротивление магии: |cffffcc00" + I2S(spelldef) + "%|r|nРегенерация здоровья: |cffffcc00" + rgh + "|r ед./сек.|nРегенерация маны: |cffffcc00" + rgm + "|r ед./сек."
set u = null
return s
endfunction
function CustomStatsUIsystem_Actions takes nothing returns nothing
local group g
local unit u
local boolexpr b
local integer i
local unit ex_u
local string s
//player 1
set i = 0
set udg_SelectUnitPlayerNumber = 0
set b = Filter(function SelectUnitPlayerNumber)
set g = CreateGroup()
call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,b)
loop
set u = FirstOfGroup(g)
if u != null then
set ex_u = u
set i = i + 1
call GroupRemoveUnit(g,u)
set u = null
else
exitwhen u == null
endif
endloop
call DestroyGroup(g)
call DestroyBoolExpr(b)
set g = null
set b = null
if i == 1 then
call BlzFrameSetSize(BlzGetFrameByName("StatIconPlayer1",0),0.03, 0.03)
set s = GetTextTooltipFromUnit(ex_u)
call BlzFrameSetText(BlzGetFrameByName("BoxedTextValue_Player1",0), s)
call BlzFrameSetText(BlzGetFrameByName("BoxedTextTitle_Player1",0), "Дополнительные характеристики")
else
call BlzFrameSetSize(BlzGetFrameByName("StatIconPlayer1",0),0,0)
endif
set ex_u = null
set u = null
set s = null
endfunction
Сам код по обновлению описаний. Там видно, что я пытался уже даже уменьшить фрейм, чтобы он исчез, но он не уменьшился.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
Как скрыть / убрать дефолтный tooltip