|
|
#1 | |
Member
|
|
|
|
I'm telling you, blink+shrapnel works and it has no channeling time unlike epicenter so sniper is a better initiator than SK.
/thread |

|
|
#2 | |
Member
Join Date: Jun 2009
Posts: 1,574
|
I imagine thats the one you found? i read that thread at least 100 times.
__________________
|
|
|
|
|
#3 | |
Member
|
^ yea. thanks for nothing ._.
__________________
Quote:
![]() |
|
|
|
|
#4 |
Member
Join Date: Dec 2009
Posts: 1
|
Dual Breathe is a weird skills TBH, it can be split in half and shot in different directions by clicking on a spot right under jakiro, if anything it's 2 Cone AoEs at once.
|
|
|
|
#5 | |
Member
|
^ well yea, but i imagine the AoE of both cones are the same. i hope so at least. yay another question!
where are those mech guys that know everything? i saw antiweltteilchen reading this, still no answer
__________________
Quote:
![]() |
|
|
|
|
#6 |
Member
Join Date: Aug 2009
Location: Brazil
Posts: 2,305
|
For a cone, A = (alpha*pi*R²)/360º, where alpha is the angle of the cone, R is the length(what you want to know).
since we got an AoE of 2000, then: 2000 = (alpha*pi*R²)/360 720000 = alpha*pi*R² Since the cone has 200 AoE on the minimum and 250 AoE on the maximum side, then alpha = 53,13º aprox. so, 720000 = 53*pi*R² R² ~= 4324,2 R ~= 65,75 units. Notice that the "cone" has a circle on the top and on the end of it, so you gotta add about 225 units to the lenght. 65,75 is the distance between the two circles. So basically, the cone has about 290 AoE lenght. |
|
|
|
#7 |
Forum Staff
|
it's indeed horribad complicated.
Code:
function Func1544 takes real loc_real01,real loc_real02,real loc_real03,real loc_real04,real loc_real05,real loc_real06,real loc_real07,real loc_real08 returns boolean
local real loc_real09=(loc_real08-loc_real02)*(loc_real03-loc_real01)-(loc_real07-loc_real01)*(loc_real04-loc_real02)
local real loc_real10=(loc_real08-loc_real06)*(loc_real01-loc_real05)-(loc_real07-loc_real05)*(loc_real02-loc_real06)
local real loc_real11=(loc_real08-loc_real04)*(loc_real05-loc_real03)-(loc_real07-loc_real03)*(loc_real06-loc_real04)
return(loc_real09*loc_real10>0)and(loc_real11*loc_real10>0)
endfunction
function Func1545 takes nothing returns boolean
local real loc_real01=real005
local real loc_real02=real006
local real loc_real03=real007
local real loc_real04=real008
local real loc_real05=real009
local real loc_real06=real010
return IsUnitEnemy(GetFilterUnit(),GetOwningPlayer(GetTriggerUnit()))and Func1544(loc_real01,loc_real02,loc_real03,loc_real04,loc_real05,loc_real06,GetUnitX(GetFilterUnit()),GetUnitY(GetFilterUnit()))
endfunction
function Func1546 takes real loc_real01,real loc_real02,real loc_real03 returns nothing
local real loc_real04=550
local real loc_real05=200
local real loc_real06=250
local real loc_real07=Asin((loc_real06-loc_real05)/ loc_real04)
local real loc_real08=loc_real05/ Sin(loc_real07)
local real loc_real09=(loc_real04+loc_real06+loc_real08)*Tan(loc_real07)
local real loc_real10=loc_real02+loc_real08*Cos((loc_real01-180)*bj_DEGTORAD)
local real loc_real11=loc_real03+loc_real08*Sin((loc_real01-180)*bj_DEGTORAD)
local real loc_real12=(loc_real02+(loc_real04+loc_real06)*Cos(loc_real01*bj_DEGTORAD))+loc_real09*Cos((loc_real01-90)*bj_DEGTORAD)
local real loc_real13=(loc_real03+(loc_real04+loc_real06)*Sin(loc_real01*bj_DEGTORAD))+loc_real09*Sin((loc_real01-90)*bj_DEGTORAD)
local real loc_real14=(loc_real02+(loc_real04+loc_real06)*Cos(loc_real01*bj_DEGTORAD))+loc_real09*Cos((loc_real01+90)*bj_DEGTORAD)
local real loc_real15=(loc_real03+(loc_real04+loc_real06)*Sin(loc_real01*bj_DEGTORAD))+loc_real09*Sin((loc_real01+90)*bj_DEGTORAD)
set real005=loc_real10
set real006=loc_real11
set real007=loc_real12
set real008=loc_real13
set real009=loc_real14
set real010=loc_real15
endfunction
function Func1547 takes nothing returns nothing
local unit loc_unit01=CreateUnit(GetOwningPlayer(GetTriggerUnit()),'e00E',GetUnitX(GetEnumUnit()),GetUnitY(GetEnumUnit()),0)
call UnitAddAbility(loc_unit01,'A0OA')
call IssueTargetOrder(loc_unit01,"frostnova",GetEnumUnit())
set loc_unit01=null
endfunction
function Func1548 takes nothing returns boolean
local trigger loc_trigger01=GetTriggeringTrigger()
local integer loc_integer01=GetHandleId(loc_trigger01)
local player loc_player01=(LoadPlayerHandle(hashtable001,(loc_integer01),(54)))
local unit loc_unit01=(LoadUnitHandle(hashtable001,(loc_integer01),(14)))
local real loc_real01=(LoadReal(hashtable001,(loc_integer01),(6)))
local real loc_real02=(LoadReal(hashtable001,(loc_integer01),(7)))
local real loc_real03=(LoadReal(hashtable001,(loc_integer01),(47)))
local real loc_real04=(LoadReal(hashtable001,(loc_integer01),(48)))
local integer loc_integer02=(LoadInteger(hashtable001,(loc_integer01),(5)))
local unit loc_unit02
if GetTriggerEvalCount(loc_trigger01)>1 then
call SetUnitAnimation(loc_unit01,"stand")
call FlushChildHashtable(hashtable001,(loc_integer01))
call Func0034(loc_trigger01)
else
call SetUnitAnimation(loc_unit01,"spell")
set loc_unit02=CreateUnit(loc_player01,'e00E',loc_real01,loc_real02,0)
call UnitAddAbility(loc_unit02,'A0OC')
call SetUnitAbilityLevel(loc_unit02,'A0OC',loc_integer02)
call IssuePointOrder(loc_unit02,"breathoffrost",loc_real03,loc_real04)
endif
set loc_trigger01=null
set loc_player01=null
set loc_unit01=null
set loc_unit02=null
return false
endfunction
function Func1549 takes unit loc_unit01,player loc_player01,integer loc_integer01,location loc_location01,real loc_real01,real loc_real02 returns nothing
local trigger loc_trigger01=CreateTrigger()
local integer loc_integer02=GetHandleId(loc_trigger01)
call SavePlayerHandle(hashtable001,(loc_integer02),(54),(loc_player01))
call SaveReal(hashtable001,(loc_integer02),(6),((loc_real01)*1.0))
call SaveReal(hashtable001,(loc_integer02),(7),((loc_real02)*1.0))
call SaveReal(hashtable001,(loc_integer02),(47),((GetLocationX(loc_location01))*1.0))
call SaveReal(hashtable001,(loc_integer02),(48),((GetLocationY(loc_location01))*1.0))
call SaveInteger(hashtable001,(loc_integer02),(5),(loc_integer01))
call SaveUnitHandle(hashtable001,(loc_integer02),(14),(loc_unit01))
call TriggerRegisterTimerEvent(loc_trigger01,0.3,true)
call TriggerAddCondition(loc_trigger01,Condition(function Func1548))
set loc_trigger01=null
endfunction
function Func1550 takes nothing returns nothing
local unit loc_unit01=GetTriggerUnit()
local integer loc_integer01=GetUnitAbilityLevel(loc_unit01,'A0O7')
local real loc_real01=GetUnitX(loc_unit01)
local real loc_real02=GetUnitY(loc_unit01)
local location loc_location01
local unit loc_unit02
local group loc_group01=Func0029()
if GetSpellTargetUnit()==null then
set loc_location01=GetSpellTargetLoc()
else
set loc_location01=GetUnitLoc(GetSpellTargetUnit())
endif
call Func1546(bj_RADTODEG*Atan2(GetLocationY(loc_location01)-loc_real02,GetLocationX(loc_location01)-loc_real01),loc_real01,loc_real02)
call GroupEnumUnitsInRange(loc_group01,loc_real01,loc_real02,2000,Condition(function Func1545))
call ForGroup(loc_group01,function Func1547)
call Func0028(loc_group01)
set loc_unit02=CreateUnit(GetOwningPlayer(loc_unit01),'e00E',loc_real01,loc_real02,0)
call UnitAddAbility(loc_unit02,'A0OB')
call SetUnitAbilityLevel(loc_unit02,'A0OB',loc_integer01)
call IssuePointOrder(loc_unit02,"breathoffire",GetLocationX(loc_location01),GetLocationY(loc_location01))
call Func1549(loc_unit01,GetOwningPlayer(loc_unit01),loc_integer01,loc_location01,loc_real01+50*Cos(Atan2(GetLocationY(loc_location01)-loc_real02,GetLocationX(loc_location01)-loc_real01)),loc_real02+50*Sin(Atan2(GetLocationY(loc_location01)-loc_real02,GetLocationX(loc_location01)-loc_real01)))
call RemoveLocation(loc_location01)
set loc_unit01=null
set loc_location01=null
set loc_group01=null
endfunction
function Func1551 takes nothing returns boolean
if GetSpellAbilityId()=='A0O7' then
call Func1550()
endif
return false
endfunction
__________________
|
|
|
|
#8 | ||
Member
|
edit: ^ LOL. that doesnt really help me ._.
Quote:
im also not sure if it really is a cone, i mean 200 starting AoE IMO means that the spell covers 200 units in width directly in front of jakiro, and 250 where it ends. after approximately 850 units. im just theorycrafting, but i really cant imagine what that description on the hero page is supposed to mean otherwise.
__________________
Quote:
![]() |
||
|
|
|
#9 |
Member
|
In my mind, I've always considered it a cone starting at 200 and getting wider to 250 with a 250 radius hemisphere attached at the end. I'll straight-up admit that I don't know why I thought that was correct and that reading the JASS has done nothing to clear things up for me either.
__________________
|
|
|
|
#10 | |
Member
|
i guess ill just have to make up a number
__________________
Quote:
![]() |
|
|
|
|
#11 |
Member
Join Date: Jun 2009
Posts: 69
|
You don't need to put a number. Just use a picture.
|
|
|
|
#12 |
Member
Join Date: Jun 2009
Posts: 1,574
|
ya np, its what i do best.
Accomplishing nothing and still getting thanked.
__________________
|
|
|
|
#13 | |
Member
|
i am going to use a picture, but it would be nice to put a number in it. with icepath and macropyre its significantly easier <.<
__________________
Quote:
![]() |
|
|
|
|
#14 |
Member
Join Date: Jun 2009
Posts: 83
|
|
|
|
|
#15 |
Member
|
Its like Knight Davion fire
|
|
|
|
#16 |
Member
|
The length of the cone should be not more than 500 but above 400. The second breath has a further range of 50.
Well, that's my guts feeling LOL. |
|
|
| Last edited by Pillowphile; 12-15-2009 at 04:05 AM. | |
|
|
#17 |
Member
Join Date: Oct 2009
Posts: 10
|
![]() first enermies in P1,2,3,4 area will be slowed ![]() then cast breath of fire in the cone area ![]() then breath of frost providing dot damage ![]() actual damaged area ![]() the wisps placed at the end only got dot damage ![]() slow area sry for my bad english |
|
|
| Last edited by frenzyman; 12-15-2009 at 04:37 AM. Reason: Baidu sucks | |
|
|
#18 |
Member
Join Date: Jun 2009
Posts: 425
|
The breath's Damage AoE isn't the complicated one though. It is the Frost Nova AoE that everyone here (Besides the OP) is talking about. It is so complicated that it will Frost Nova units that are within ~200 units behind and to the side of THD even if they aren't affected by the Dual Breaths itself.
Dual Breath is 1 Breath of Fire, 1 Breath of Frost and 1 triggered AoE that causes all units to be targeted by a Dummy Unit with Frost Nova. The 2 breaths are Hardcoded and has the AoE's as shown in frenzyman's pictures. The first Circle's circumference of the Breath starts by touching THD's Collision Size then expands as it travels. However the Frost Nova AoE Circle starts with its center at the center of THD. Though I think it is much easier to just use a Trigger that detects the damage source of the Dummy that casts the Breath of Frost and Frost Nova all units damaged by it. This way all the AoE's will be the similar.
__________________
I don't like moving...
|
|
|
| Last edited by Clogon; 12-15-2009 at 10:21 AM. | |
|
|
#19 | |
Member
|
wow, thanks man. that really is quite complicated, but those pictures show it in a way that even i can understand
__________________
Quote:
![]() |
|
|
||
| Last edited by kawumm; 12-16-2009 at 03:00 AM. Reason: wannabe mod making fun of me | ||
|
|
#20 | |
Member
Join Date: Sep 2009
Posts: 2,119
|
Quote:
On topic: Picture seems to be a lot easier then these complicated formulas.
__________________
|
|
|