- Joined
- Oct 16, 2010
- Messages
- 680
Not too familiar with FT's so I don't really know why is it never appears in the game
the trigger works just fine, only the FT drives me crazy
the trigger works just fine, only the FT drives me crazy
JASS:
public function GetDamageCalc takes unit tu,unit au, real d returns real
local real cd
local texttag tt
local integer x = 0
local integer y = 0
local real c = 1
set tt = CreateTextTag()
call SetTextTagVisibility(tt,true)
call SetTextTagPermanent(tt,false)
call SetTextTagLifespan(tt,1.5)
call SetTextTagFadepoint(tt,1.0)
call SetTextTagVelocity(tt,0.5,0)
call SetTextTagAge(tt,1.5)
call SetTextTagPosUnit(tt,tu,30.0)
//---------------------------------PLAYER VS. MOB---------------------------------------
if GetOwningPlayer(tu) == Player(11) then
loop
exitwhen GetPlayerName(Player(x)) == GetPlayerName(GetOwningPlayer(au))
set x = x + 1
endloop
if GetUnitLevel(tu) == GetUnitLevel(au) then
set cd = udg_DamageEventPrevAmt*(1+(HStat[x*10+1]/10*GetUnitLevel(au)))
if GetRandomInt(0,100)<HStat[x*10+4] then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"hero damage mob")
call SetTextTagText(tt,R2S(cd),0.03*c)
elseif GetUnitLevel(tu) > GetUnitLevel(au) then
set cd = (udg_DamageEventPrevAmt*(1-((GetUnitLevel(tu)-GetUnitLevel(au))*0.1)))*(1+(HStat[x*10+1]/10*GetUnitLevel(au)))
if (GetRandomInt(1,100)+Pow(GetUnitLevel(tu)-GetUnitLevel(au),2.0)) > 100 then
set cd = 0
endif
if cd == 0 then
call DisplayTimedTextToPlayer(Player(0),0,0,20,"hero miss to mob")
call SetTextTagText(tt,"Miss!",0.03*c)
else
if GetRandomInt(0,100)<HStat[x*10+4] then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"hero damage mob")
call SetTextTagText(tt,R2S(cd),0.03*c)
endif
else
set cd = (udg_DamageEventPrevAmt*(1+((GetUnitLevel(au)-GetUnitLevel(tu))*0.05)))*(1+(HStat[x*10+1]/10*GetUnitLevel(au)))
if GetRandomInt(0,100)<HStat[x*10+4] then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"hero damage mob")
call SetTextTagText(tt,R2S(cd),0.03*c)
endif
//---------------------------------MOB VS. PLAYER---------------------------------------
elseif GetOwningPlayer(au) == Player(11) then
loop
exitwhen GetPlayerName(Player(y)) == GetPlayerName(GetOwningPlayer(tu))
set y = y + 1
endloop
if GetUnitLevel(tu) == GetUnitLevel(au) then
set cd = udg_DamageEventPrevAmt*(1-(HStat[y*10+3]/100*GetUnitLevel(tu)))
if GetRandomInt(0,100)<10 then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"mob damage hero")
call SetTextTagText(tt,R2S(cd),0.03*c)
elseif GetUnitLevel(tu) > GetUnitLevel(au) then
set cd = (udg_DamageEventPrevAmt*(1-((GetUnitLevel(tu)-GetUnitLevel(au))*0.1)))*(1-(HStat[y*10+3]/100*GetUnitLevel(tu)))
if (GetRandomInt(1,100)+Pow(GetUnitLevel(tu)-GetUnitLevel(au),2.0)) > 100 then
set cd = 0
endif
if cd == 0 then
call DisplayTimedTextToPlayer(Player(0),0,0,20,"mob miss hero")
call SetTextTagText(tt,"Miss!",0.03*c)
else
if GetRandomInt(0,100)<10 then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"mob damage hero")
call SetTextTagText(tt,R2S(cd),0.03*c)
endif
else
set cd = (udg_DamageEventPrevAmt*(1+((GetUnitLevel(au)-GetUnitLevel(tu))*0.05)))*(1-(HStat[y*10+3]/100*GetUnitLevel(tu)))
if GetRandomInt(0,100)<10 then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"mob damage hero")
call SetTextTagText(tt,R2S(cd),0.03*c)
endif
//---------------------------------PLAYER VS. PLAYER---------------------------------------
else
loop
exitwhen GetPlayerName(Player(y)) == GetPlayerName(GetOwningPlayer(tu))
set y = y + 1
endloop
if GetUnitLevel(tu) == GetUnitLevel(au) then
set cd = (udg_DamageEventPrevAmt*(1+(HStat[x*10+1]/10*GetUnitLevel(au))))*(1-(HStat[y*10+3]/100*GetUnitLevel(tu)))
if GetRandomInt(0,100)<HStat[x*10+4] then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"hero damage hero")
call SetTextTagText(tt,R2S(cd),0.03*c)
elseif GetUnitLevel(tu) > GetUnitLevel(au) then
set cd = ((udg_DamageEventPrevAmt*(1-((GetUnitLevel(tu)-GetUnitLevel(au))*0.1)))*HStat[x*10+1]/10*GetUnitLevel(au))*(1-(HStat[y*10+3]/100*GetUnitLevel(tu)))
if (GetRandomInt(1,100)+Pow(GetUnitLevel(tu)-GetUnitLevel(au),2.0)) > 100 then
set cd = 0
endif
if cd == 0 then
call DisplayTimedTextToPlayer(Player(0),0,0,20,"hero miss to hero")
call SetTextTagText(tt,"Miss!",0.03*c)
else
if GetRandomInt(0,100)<HStat[x*10+4] then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"hero damage hero")
call SetTextTagText(tt,R2S(cd),0.03*c)
endif
else
set cd = ((udg_DamageEventPrevAmt*(1+((GetUnitLevel(au)-GetUnitLevel(tu))*0.05)))*HStat[x*10+1]/10*GetUnitLevel(au))*(1-(HStat[y*10+3]/100*GetUnitLevel(tu)))
if GetRandomInt(0,100)<HStat[x*10+4] then
set cd = cd * 2
set c = 1.8
endif
call DisplayTimedTextToPlayer(Player(0),0,0,20,"hero damage hero")
call SetTextTagText(tt,R2S(cd),0.03*c)
endif
endif
return cd
endfunction