Name | Type | is_array | initial_value |
-- in 1.31 and upto 1.32.9 PTR (when I wrote this). Frames are not correctly saved and loaded, breaking the game.
-- This runs all functions added to it with a 0s delay after the game was loaded.
FrameLoader = {
OnLoadTimer = function ()
for _,v in ipairs(FrameLoader) do v() end
end
,OnLoadAction = function()
for _,v in ipairs(FrameLoader) do v() end
TimerStart(FrameLoader.Timer, 0, false, FrameLoader.OnLoadTimer)
end
}
function FrameLoaderAdd(func)
if not FrameLoader.Timer then
FrameLoader.Trigger = CreateTrigger()
FrameLoader.Timer = CreateTimer()
TriggerRegisterGameEvent(FrameLoader.Trigger, EVENT_GAME_LOADED)
TriggerAddAction(FrameLoader.Trigger, FrameLoader.OnLoadAction)
end
table.insert(FrameLoader, func)
end
-- HideMinDamageV3
do
local realFunction = MarkGameStarted
local timer, damageA, damageB, parentA, parentB, damageA2, damageB2, text, index
local function update(sourceFrame, targetFrame)
text = BlzFrameGetText(sourceFrame)
index = string.find(text, " - ", 1, true)
BlzFrameSetText(targetFrame, string.sub( text, index + 3))
end
local function Init()
BlzLoadTOCFile("war3mapImported\\HideMinDamage.toc")
if not timer then timer = CreateTimer() end
damageA = BlzGetFrameByName("InfoPanelIconValue", 0)
damageB = BlzGetFrameByName("InfoPanelIconValue", 1)
parentA = BlzGetFrameByName("SimpleInfoPanelIconDamage",0)
parentB = BlzGetFrameByName("SimpleInfoPanelIconDamage",1)
BlzCreateSimpleFrame("CustomDamageString", parentA, 0)
damageA2 = BlzGetFrameByName("CustomDamageStringValue", 0)
BlzCreateSimpleFrame("CustomDamageString", parentB, 1)
damageB2 = BlzGetFrameByName("CustomDamageStringValue", 1)
BlzFrameSetFont(damageA, "", 0, 0)
BlzFrameSetFont(damageB, "", 0, 0)
TimerStart(timer, 0.05, true, function()
if BlzFrameIsVisible(parentA) then
update(damageA, damageA2)
end
if BlzFrameIsVisible(parentB) then
update(damageB, damageB2)
end
end)
end
function MarkGameStarted()
realFunction()
realFunction = nil
Init()
if FrameLoaderAdd then FrameLoaderAdd(Init) end
end
end
-- HideMinDamageV3 NOFDF
do
local realFunction = MarkGameStarted
local timer, damageA, damageB, parentA, parentB, damageA2, damageB2, text, index
local function update(sourceFrame, targetFrame)
text = BlzFrameGetText(sourceFrame)
index = string.find(text, " - ", 1, true)
BlzFrameSetText(targetFrame, string.sub( text, index + 3))
end
local function Init()
if not timer then timer = CreateTimer() end
damageA = BlzGetFrameByName("InfoPanelIconValue", 0)
damageB = BlzGetFrameByName("InfoPanelIconValue", 1)
parentA = BlzGetFrameByName("SimpleInfoPanelIconDamage",0)
parentB = BlzGetFrameByName("SimpleInfoPanelIconDamage",1)
BlzCreateSimpleFrame("SimpleInfoPanelDestructableDetail", parentA, 11)
damageA2 = BlzGetFrameByName("SimpleDestructableNameValue", 11)
BlzFrameClearAllPoints(damageA2)
BlzFrameSetPoint(damageA2, FRAMEPOINT_TOPLEFT, BlzGetFrameByName("InfoPanelIconLabel", 0), FRAMEPOINT_BOTTOMLEFT, 0.002625, -0.003)
if SkinManagerGetLocalPath then BlzFrameSetFont(damageA2, SkinManagerGetLocalPath("InfoPanelTextFont"), 0.008, 0) else BlzFrameSetFont(damageA2, "Fonts/frizqt__.ttf", 0.008, 0) end
BlzCreateSimpleFrame("SimpleInfoPanelDestructableDetail", parentB, 12)
damageB2 = BlzGetFrameByName("SimpleDestructableNameValue", 12)
BlzFrameSetFont(damageA, "", 0, 0)
BlzFrameSetFont(damageB, "", 0, 0)
BlzFrameClearAllPoints(damageB2)
BlzFrameSetPoint(damageB2, FRAMEPOINT_TOPLEFT, BlzGetFrameByName("InfoPanelIconLabel", 1), FRAMEPOINT_BOTTOMLEFT, 0.002625, -0.003)
if SkinManagerGetLocalPath then BlzFrameSetFont(damageB2, SkinManagerGetLocalPath("InfoPanelTextFont"), 0.008, 0) else BlzFrameSetFont(damageB2, "Fonts/frizqt__.ttf", 0.008, 0) end
TimerStart(timer, 0.05, true, function()
if BlzFrameIsVisible(parentA) then
update(damageA, damageA2)
end
if BlzFrameIsVisible(parentB) then
update(damageB, damageB2)
end
end)
end
function MarkGameStarted()
realFunction()
realFunction = nil
Init()
if FrameLoaderAdd then FrameLoaderAdd(Init) end
end
end
library FrameLoader initializer init_function
// in 1.31 and upto 1.32.9 PTR (when I wrote this). Frames are not correctly saved and loaded, breaking the game.
// This library runs all functions added to it with a 0s delay after the game was loaded.
// function FrameLoaderAdd takes code func returns nothing
// func runs when the game is loaded.
globals
private trigger eventTrigger = CreateTrigger()
private trigger actionTrigger = CreateTrigger()
private timer t = CreateTimer()
endglobals
function FrameLoaderAdd takes code func returns nothing
call TriggerAddAction(actionTrigger, func)
endfunction
private function timerAction takes nothing returns nothing
call TriggerExecute(actionTrigger)
endfunction
private function eventAction takes nothing returns nothing
call TimerStart(t, 0, false, function timerAction)
endfunction
private function init_function takes nothing returns nothing
call TriggerRegisterGameEvent(eventTrigger, EVENT_GAME_LOADED)
call TriggerAddAction(eventTrigger, function eventAction)
endfunction
endlibrary
library HideMinDamageText initializer init_function requires optional FrameLoader
// HideMinDamageV4
globals
private framehandle DamageA
private framehandle DamageB
private framehandle DamageA2
private framehandle DamageB2
private framehandle ParentA
private framehandle ParentB
private string Text
private integer Index
private integer LoopA
private integer LoopAEnd
endglobals
private function find takes nothing returns nothing
set LoopAEnd = StringLength(Text) - 1
set LoopA = 1
loop
exitwhen LoopA >= LoopAEnd
if SubString(Text, LoopA, LoopA +3) == " - " then
set Index = LoopA + 3
return
endif
set LoopA = LoopA + 1
endloop
set Index = 0
endfunction
private function update takes nothing returns nothing
if BlzFrameIsVisible(ParentA) then
set Text = BlzFrameGetText(DamageA)
call find()
call BlzFrameSetText(DamageA2, SubString(Text, Index, StringLength(Text)))
endif
if BlzFrameIsVisible(ParentB) then
set Text = BlzFrameGetText(DamageB)
call find()
call BlzFrameSetText(DamageB2, SubString(Text, Index, StringLength(Text)))
endif
endfunction
private function At0s takes nothing returns nothing
call BlzLoadTOCFile("war3mapImported\\HideMinDamage.toc")
set ParentA = BlzGetFrameByName("SimpleInfoPanelIconDamage", 0)
set ParentB = BlzGetFrameByName("SimpleInfoPanelIconDamage", 1)
set DamageA = BlzGetFrameByName("InfoPanelIconValue", 0)
set DamageB = BlzGetFrameByName("InfoPanelIconValue", 1)
call BlzCreateSimpleFrame("CustomDamageString", ParentA, 0)
set DamageA2 = BlzGetFrameByName("CustomDamageStringValue", 0)
call BlzCreateSimpleFrame("CustomDamageString", ParentB, 1)
set DamageB2 = BlzGetFrameByName("CustomDamageStringValue", 1)
call BlzFrameSetFont(DamageA, "", 0, 0)
call BlzFrameSetFont(DamageB, "", 0, 0)
call TimerStart(GetExpiredTimer(), 0.05, true, function update)
endfunction
private function init_function takes nothing returns nothing
static if LIBRARY_FrameLoader then
call FrameLoaderAdd(function At0s)
endif
call TimerStart(CreateTimer(), 0, false, function At0s)
endfunction
endlibrary
library HideMinDamageText initializer init_function requires optional FrameLoader
// HideMinDamageV4
globals
private framehandle DamageA
private framehandle DamageB
private framehandle DamageA2
private framehandle DamageB2
private framehandle ParentA
private framehandle ParentB
private string Text
private integer Index
private integer LoopA
private integer LoopAEnd
endglobals
private function find takes nothing returns nothing
set LoopAEnd = StringLength(Text) - 1
set LoopA = 1
loop
exitwhen LoopA >= LoopAEnd
if SubString(Text, LoopA, LoopA +3) == " - " then
set Index = LoopA + 3
return
endif
set LoopA = LoopA + 1
endloop
set Index = 0
endfunction
private function update takes nothing returns nothing
if BlzFrameIsVisible(ParentA) then
set Text = BlzFrameGetText(DamageA)
call find()
call BlzFrameSetText(DamageA2, SubString(Text, Index, StringLength(Text)))
endif
if BlzFrameIsVisible(ParentB) then
set Text = BlzFrameGetText(DamageB)
call find()
call BlzFrameSetText(DamageB2, SubString(Text, Index, StringLength(Text)))
endif
endfunction
private function At0s takes nothing returns nothing
set ParentA = BlzGetFrameByName("SimpleInfoPanelIconDamage", 0)
set ParentB = BlzGetFrameByName("SimpleInfoPanelIconDamage", 1)
set DamageA = BlzGetFrameByName("InfoPanelIconValue", 0)
set DamageB = BlzGetFrameByName("InfoPanelIconValue", 1)
call BlzCreateSimpleFrame("SimpleInfoPanelDestructableDetail", ParentA, 11)
set DamageA2 = BlzGetFrameByName("SimpleDestructableNameValue", 11)
//call BlzFrameSetFont(DamageA2, SkinManagerGetLocalPath("InfoPanelTextFont"), 0.008, 0)
call BlzFrameSetFont(DamageA2, "Fonts/frizqt__.ttf", 0.008, 0)
call BlzFrameClearAllPoints(DamageA2)
call BlzFrameSetPoint(DamageA2, FRAMEPOINT_TOPLEFT, BlzGetFrameByName("InfoPanelIconLabel", 0), FRAMEPOINT_BOTTOMLEFT, 0.002625, -0.003)
call BlzCreateSimpleFrame("SimpleInfoPanelDestructableDetail", ParentB, 12)
set DamageB2 = BlzGetFrameByName("SimpleDestructableNameValue", 12)
//call BlzFrameSetFont(DamageB2, SkinManagerGetLocalPath("InfoPanelTextFont"), 0.008, 0)
call BlzFrameSetFont(DamageB2, "Fonts/frizqt__.ttf", 0.008, 0)
call BlzFrameClearAllPoints(DamageB2)
call BlzFrameSetPoint(DamageB2, FRAMEPOINT_TOPLEFT, BlzGetFrameByName("InfoPanelIconLabel", 1), FRAMEPOINT_BOTTOMLEFT, 0.002625, -0.003)
call BlzFrameSetFont(DamageA, "", 0, 0)
call BlzFrameSetFont(DamageB, "", 0, 0)
call TimerStart(GetExpiredTimer(), 0.05, true, function update)
endfunction
private function init_function takes nothing returns nothing
static if LIBRARY_FrameLoader then
call FrameLoaderAdd(function At0s)
endif
call TimerStart(CreateTimer(), 0, false, function At0s)
endfunction
endlibrary