WordEditor
C O N T R A
Khôn thế, đưa map là lộ cả thiên cơ rồi còn gìCảm phiền đưa map đc kô? Nhìn cả đoạn dài ngoằng mà chả biết cái If nào ra cái If nào cả.

Cảm phiền xem luôn giùm được không, xem suốt 24 tiếng thế nào cũng hiểu :(
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Khôn thế, đưa map là lộ cả thiên cơ rồi còn gìCảm phiền đưa map đc kô? Nhìn cả đoạn dài ngoằng mà chả biết cái If nào ra cái If nào cả.

Khôn thế, đưa map là lộ cả thiên cơ rồi còn gì
Cảm phiền xem luôn giùm được không, xem suốt 24 tiếng thế nào cũng hiểu :(
.Mấy bro cho hỏi cái trigger MUI này chưa remove leak chỗ nào ko mà vào cast liên tục thì leak loạn cả lên :(
[/code]
Actions
For each (Integer A) from 1 to MUI[3], do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(BurnOrbCheck[(Integer A)] Equal to False) and (BurnOrbCheckAttack[(Integer A)] Equal to False)
Then - Actions
Set BurnOrbInteger[(Integer A)] = 1
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbInteger[(Integer A)] Greater than 0
Then - Actions
Set BurnOrbPointCaster[(Integer A)] = (Position of BurnOrbCaster[(Integer A)])
Set BurnOrbPointDummy[(Integer A)] = (Position of BurnOrbDummy[(Integer A)])
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in [b](Units within 100.00 of BurnOrbPointDummy[(Integer A)][/b] matching ((((Matching unit) belongs to an enemy of (Owner of BurnOrbCaster[(Integer A)])) Equal to True) and (((((Matching unit) is alive) Equal to True) and ((Level of Spell Immunity (Neutral Hostile) fo and do (Actions)
Loop - Actions
Unit - Cause BurnOrbCaster[(Integer A)] to damage (Picked unit), dealing (((Real((Level of Burning Orb for BurnOrbCaster[(Integer A)]))) x 25.00) + 25.00) damage of attack type Spells and damage type Normal
Unit - Order BurnOrbDummy[(Integer A)] to Night Elf Druid Of The Talon - Faerie Fire (Picked unit)
Unit - Order BurnOrbDummy[(Integer A)] to Undead Necromancer - Cripple (Picked unit)
Unit Group - Add (Picked unit) to BurnOrbGroup[(Integer A)]
Special Effect - Create a special effect attached to the head of (Picked unit) using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the hand left of (Picked unit) using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the hand right of (Picked unit) using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the foot right of (Picked unit) using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the foot left of (Picked unit) using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
Special Effect - Destroy (Last created special effect)
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in [b](Units in (Playable map area)[/b] matching ((((Matching unit) belongs to an enemy of (Owner of BurnOrbCaster[(Integer A)])) Equal to True) and ((((Matching unit) has buff Burn) Equal to True) and (((Matching unit) is in BurnOrbGroup[(Integer A)]) Equal to True))) and do (Actions)
Loop - Actions
Unit - Cause BurnOrbCaster[(Integer A)] to damage (Picked unit), dealing 0.60 damage of attack type Spells and damage type Normal
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbInteger[(Integer A)] Greater than 5
Then - Actions
Set BurnOrbPoint[(Integer A)] = (BurnOrbPointCaster[(Integer A)] offset by 140.00 towards ((Angle from BurnOrbPointCaster[(Integer A)] to BurnOrbPointDummy[(Integer A)]) - 5.00) degrees)
Unit - Move BurnOrbDummy[(Integer A)] instantly to BurnOrbPoint[(Integer A)], facing ((Angle from BurnOrbPointCaster[(Integer A)] to BurnOrbPointDummy[(Integer A)]) - 90.00) degrees
Custom script: call RemoveLocation(udg_BurnOrbPoint[bj_forLoopAIndex])
Set BurnOrbInteger[(Integer A)] = (BurnOrbInteger[(Integer A)] - 1)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbInteger[(Integer A)] Greater than 4
Then - Actions
Set BurnOrbTarget[(Integer A)] = (Random unit from [b](Units within 800.00 of BurnOrbPointCaster[(Integer A)][/b] matching ((((Matching unit) belongs to an enemy of (Owner of BurnOrbCaster[(Integer A)])) Equal to True) and (((Matching unit) is alive) Equal to True))))
Set BurnOrbPointTarget[(Integer A)] = (Position of BurnOrbTarget[(Integer A)])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbTarget[(Integer A)] Equal to No unit
Then - Actions
Set BurnOrbPoint[(Integer A)] = (BurnOrbPointCaster[(Integer A)] offset by 140.00 towards ((Angle from BurnOrbPointCaster[(Integer A)] to BurnOrbPointDummy[(Integer A)]) - 5.00) degrees)
Unit - Move BurnOrbDummy[(Integer A)] instantly to BurnOrbPoint[(Integer A)], facing ((Angle from BurnOrbPointCaster[(Integer A)] to BurnOrbPointDummy[(Integer A)]) - 90.00) degrees
Custom script: call RemoveLocation(udg_BurnOrbPoint[bj_forLoopAIndex])
Set BurnOrbInteger[(Integer A)] = 5
Else - Actions
Set BurnOrbInteger[(Integer A)] = 4
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbInteger[(Integer A)] Greater than 3
Then - Actions
Set BurnOrbPoint[(Integer A)] = (BurnOrbPointCaster[(Integer A)] offset by 140.00 towards ((Angle from BurnOrbPointCaster[(Integer A)] to BurnOrbPointDummy[(Integer A)]) - 5.00) degrees)
Unit - Move BurnOrbDummy[(Integer A)] instantly to BurnOrbPoint[(Integer A)], facing ((Angle from BurnOrbPointCaster[(Integer A)] to BurnOrbPointDummy[(Integer A)]) - 90.00) degrees
Custom script: call RemoveLocation(udg_BurnOrbPoint[bj_forLoopAIndex])
Set BurnOrbUnit[(Integer A)] = (Random unit from [b](Units within (Distance between BurnOrbPointCaster[(Integer A)][/b] and BurnOrbPointTarget[(Integer A)]) of BurnOrbPointCaster[(Integer A)] matching ((((Matching unit) belongs to an enemy of (Owner of BurnOrbCaster[(Integer A)])) Equal to True)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbUnit[(Integer A)] Equal to No unit
Then - Actions
Set BurnOrbInteger[(Integer A)] = (BurnOrbInteger[(Integer A)] - 1)
Set BurnOrbCheckAttack[(Integer A)] = True
Else - Actions
Set BurnOrbPointTarget2[(Integer A)] = (Position of BurnOrbUnit[(Integer A)])
Set BurnOrbPointTarget[(Integer A)] = (Position of BurnOrbTarget[(Integer A)])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Integer((Distance between BurnOrbPointCaster[(Integer A)] and BurnOrbPointTarget[(Integer A)]))) Greater than (Integer((Distance between BurnOrbPointCaster[(Integer A)] and BurnOrbPointTarget2[(Integer A)])))
Then - Actions
Set BurnOrbTarget[(Integer A)] = BurnOrbUnit[(Integer A)]
Else - Actions
Set BurnOrbInteger[(Integer A)] = (BurnOrbInteger[(Integer A)] - 1)
Set BurnOrbCheckAttack[(Integer A)] = True
Custom script: call RemoveLocation(udg_BurnOrbPointTarget2[bj_forLoopAIndex])
Custom script: call RemoveLocation(udg_BurnOrbPointTarget[bj_forLoopAIndex])
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbInteger[(Integer A)] Greater than 2
Then - Actions
Set BurnOrbPointTarget[(Integer A)] = (Position of BurnOrbTarget[(Integer A)])
Set BurnOrbPoint[(Integer A)] = (BurnOrbPointDummy[(Integer A)] offset by 10.00 towards (Angle from BurnOrbPointDummy[(Integer A)] to BurnOrbPointTarget[(Integer A)]) degrees)
Unit - Move BurnOrbDummy[(Integer A)] instantly to BurnOrbPoint[(Integer A)], facing (Angle from BurnOrbPointDummy[(Integer A)] to BurnOrbPointTarget[(Integer A)]) degrees
Special Effect - Create a special effect at BurnOrbPointDummy[(Integer A)] using Abilities\Spells\Human\Feedback\SpellBreakerAttack.mdl
Special Effect - Destroy (Last created special effect)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Integer((Distance between BurnOrbPointDummy[(Integer A)] and BurnOrbPointTarget[(Integer A)]))) Less than or equal to 11
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of BurnOrbCaster[(Integer A)]) Equal to Lava Spirit
Then - Actions
Unit - Cause BurnOrbCaster[(Integer A)] to damage BurnOrbTarget[(Integer A)], dealing ((Real((Level of Burning Orb for BurnOrbCaster[(Integer A)]))) x 100.00) damage of attack type Spells and damage type Normal
Else - Actions
Unit - Cause BurnOrbCaster[(Integer A)] to damage BurnOrbTarget[(Integer A)], dealing ((Real((Level of Burning Orb for BurnOrbCaster[(Integer A)]))) x 100.00) damage of attack type Spells and damage type Normal
Special Effect - Create a special effect at BurnOrbPointTarget[(Integer A)] using Abilities\Spells\Other\Doom\DoomDeath.mdl
Special Effect - Destroy (Last created special effect)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Integer((Percentage life of BurnOrbCaster[(Integer A)]))) Greater than (Integer((Percentage life of BurnOrbTarget[(Integer A)])))
Then - Actions
Unit - Cause BurnOrbCaster[(Integer A)] to damage BurnOrbTarget[(Integer A)], dealing (((Percentage life of BurnOrbCaster[(Integer A)]) - (Percentage life of BurnOrbTarget[(Integer A)])) x ((((Real((Level of Burning Orb for BurnOrbCaster[(Integer A)]))) x 2.00) / 4.00) + 0.50)) damage of attack type Spells and damage type Normal
Else - Actions
Set BurnOrbInteger[(Integer A)] = (BurnOrbInteger[(Integer A)] - 1)
Else - Actions
Custom script: call RemoveLocation(udg_BurnOrbPointTarget[bj_forLoopAIndex])
Custom script: call RemoveLocation(udg_BurnOrbPoint[bj_forLoopAIndex])
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbInteger[(Integer A)] Greater than 1
Then - Actions
Set BurnOrbPoint[(Integer A)] = (BurnOrbPointDummy[(Integer A)] offset by 10.00 towards (Angle from BurnOrbPointDummy[(Integer A)] to BurnOrbPointCaster[(Integer A)]) degrees)
Unit - Move BurnOrbDummy[(Integer A)] instantly to BurnOrbPoint[(Integer A)], facing (Angle from BurnOrbPointDummy[(Integer A)] to BurnOrbPointCaster[(Integer A)]) degrees
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Integer((Distance between BurnOrbPointDummy[(Integer A)] and BurnOrbPointCaster[(Integer A)]))) Less than or equal to 145
Then - Actions
Set BurnOrbInteger[(Integer A)] = (BurnOrbInteger[(Integer A)] - 1)
Set BurnOrbCheckAttack[(Integer A)] = False
Else - Actions
Custom script: call RemoveLocation(udg_BurnOrbPoint[bj_forLoopAIndex])
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbInteger[(Integer A)] Greater than 0
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BurnOrbCheck[(Integer A)] Equal to True
Then - Actions
Set BurnOrbInteger[(Integer A)] = 180
Else - Actions
Unit - Remove BurnOrbDummy[(Integer A)] from the game
Unit - Create 1 Effect for Neutral Passive at BurnOrbPointDummy[(Integer A)] facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Custom script: call RemoveLocation(udg_BurnOrbPointCaster[bj_forLoopAIndex])
Custom script: call RemoveLocation(udg_BurnOrbPointDummy[bj_forLoopAIndex])
Custom script: call DestroyGroup(udg_BurnOrbGroup[bj_forLoopAIndex])
Set BurnOrbInteger[(Integer A)] = (BurnOrbInteger[(Integer A)] - 1)
Else - Actions
Custom script: call RemoveLocation(udg_BurnOrbPointCaster[bj_forLoopAIndex])
Custom script: call RemoveLocation(udg_BurnOrbPointDummy[bj_forLoopAIndex])
Else - Actions
set bj_wantDestroyGroup = true
Cuộc thi hero contest mà lại cho ra map khác à...nếu ko muốn lộ thì sao ra map khác


.

1. Người ta để Timer là 0.04 còn chả ăn ai, cậu ấy còn tương 0.02.
2. Ở GUI, nguyên cái Unit Group đã Leak rồi, 0.02s, có 3 cái pick group nhỉ, mỗi cái leak 1 handle (ko null local) => 1s leak 50*3 = leaks 150 handle.
3. Tốt nhất nên cho Group vào biến sau đó Destroy, kô khuyến cáo dùng set bj_wantDestroyGroup
Spell spectre dagger của specte trong dota có cái đường đen chạy theo tảget rất hay,cho em hỏi là làm đường đen đó thế nào ạ?và làm sao để đường đen đó theo target liên tục?
là dummy unit có shadow
dĩ nhiên phải dùng timer tạo dummy liên tục ở vị trí unit bị dính rồi.
Thế còn đoạn phóng dao ra cúng tạo dummy ở vị trí con dao ạ?Vậy thì chắc phải dùng lệnh move con dao

Cho em hỏi cái này, em muốn làm một spell khi cast sẽ tạo ra 4 tia lửa phóng ra 4 hướng từ vị trí cast. Sau đó khi unit gặp vật cản như vách tương hoặc unit sẽ dừng lại và deal dam cho vật cản( tất nhiên nếu là vách tường thì không cần dam), độ dài tia lửa sẽ tăng lên theo lvl của spell, anh nào thương em giúp em cái này với, em mò mãi chẳng ra.![]()
![]()
![]()

Từ đấy có thể hiểu là mỗi lần move, pick group, check condition. Có enemy không? không thì đi tiếp, có đi kill dummy, create effect, damage! Xong
[code/].
em hiểu như thế này có được không, ta tạo một triger tạo ra 4 unit cho nó move về 4 hướng, sau đó thêm một triger nữa với event là unit moved. kiểm tra unit type xem phải dummy không, nếu phải thì kiểm tra xem có unit nào nằm trong khu vực đó là enemy không thì dam enemy, kill mummy, con nếu không có thì tiếp tục move unit. Em hiểu như vậy có đúng không.
nhưng có thêm hai câu hỏi nửa là làm sao để quảng đường đi của dummy tăng lên theo lvl của skill, và làm sao để skill này MUI. giúp em với, thank.:D