Unit - A unit Starts the effect of an ability - Khi một unit bắt đầu hiệu ứng của một ability
Conditions - Điều kiện để trigger hoạt động
(Ability being cast) Equal to xxxx - xxxx là tên mình đặt tạm cho ability này
Actions
Set Point[1] = (Target point of ability being cast) - Vị trí mà mình cast vào
Set UnitGroup = (Units within 500.00 of Point matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is dead) Equal to False) - Set các mục tiêu và điều kiện các mục tiêu đó là ai,ở đây mục tiêu được chọn trong 500 phạm vi là kẻ thù của triggering unit,không phải là các công trình và không phải là các mục tiêu đã chết.
Unit Group - Pick every unit in UnitGroup and do (Actions) - Pick các unit đó và
Loop - Actions
Set Point[2] = (Position of (Picked unit))
Unit - Create 1 Dummy for (Owner of (Triggering unit)) at Point[2] facing Default building facing degrees
Unit - Add a 10.00 second Generic expiration timer to (Last created unit) - Vì sao phải add 10 giây expiration timer cho con dummy đó (không bắt buộc phải đúng 10s,chỉ cần hơn thời gian tác dụng của Shadow strike là đc ;) ) ? Vì đơn giản Skill Shadow strike có hiệu ứng kéo dài,gây sát thương liên tục trong nhiều giây,nếu remove con dummy sớm rồi mục tiêu Picked Unit mà chết do con dummy trong thời gian tác dụng thì không thể xác định được là do ai giết.
Unit - Add Shadow strike to (Last created unit)
Unit - Set level of Shadow strike for (Last created unit) to (Level of Ability being cast for (Triggering unit))
Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike Picked Unit - Cho con dummy sử dụng skill vào các mục tiêu đã chọn trong phạm vi ấy.
Custom script: call RemoveLocation (udg_Point[2])
Custom script: call DestroyGroup (udg_UnitGroup)
Custom script: call RemoveLocation (udg_Point[1]) - Remove leak thôi