NguLongHaKhac
T.E.T.Я.I.S
Bạn muốn khi sử dụng War Stomp thì quái ở xung quanh bạn sẽ bị storm bolt bắn vào hay là khi sử dụng skill blizzard thì sẽ có flame strike ở chỗ blizzard
Và vẫn còn rất nhiều những ý tưởng khác nữa nhưng phải làm thế nào đây Chính vì vậy mình viết TUT này để hướng dẫn cho 1 số bạn mới vào nghề
(trong đó có mình
) về spell tạo bằng dummy unit 
Trước hết,chúng ta cần:
Warcraft III
World Editor
Vì mình chỉ hướng dẫn về spell kiểu đơn giản nên chỉ cần 2 cái trên thôi
1
ummy Unit
Vậy dummy unit là gì ? Dummy Unit là 1 unit với 1 model chỉ có 1 cái bóng
thường để giúp chúng ta tạo ra được rất nhiều thứ trong quá trình tạo map war cũng như là tạo spell
Dummy unit tạo kiểu gì ? Trước tiên,bạn cần New custom unit (tạo 1 unit mới) vào Footman (hoặc còn gì cũng được trừ hero và peasant,peon,acolyte và wisp ra <- Cái này mình nói sau) và sau đó thiết lập các thông số như sau :
Thứ nhất là ability - normal ,bạn cần set cho con dummy này với skill là invurneabel và locust.Sau đó đến phần Art - model : thường thì 1 số spell cũng có thể cho con dummy này với model là .mdl thì nó sẽ chỉ hiện lên 1 cái bóng còn đối với 1 số spell thì cũng có thể cho dummy là 1 số model effect khác
.Theo mình thì các bạn nên chọn .mdl hoặc làm theo cách này :
tiếp theo là đến thống số combat - atacks enabled thì bạn chọn none nên con dummy này sẽ không đánh được :) Vậy là đã hoàn thiện phần dummy unit rồi 
2:Spell
Các bạn tạo 2 spell mới: là spell thứ nhất và thứ hai
1 spell là của hero cũng giống như spell war stomp mình nói ở phía trên hay bạn chọn như thế nào thì tùy ý bạn :) Gọi là spell chính
và 1 spell là của unit bạn thích chọn flame strike hay là spell nào bạn muốn cũng được Nhưng mà bạn phải chỉnh mana cho spell này là 0 (Nếu không thì dummy sẽ không thể sử dụng được spell thứ 2 này) .Gọi là spell phụ
Phần 2 của mình hơi sơ sài 1 tý
3:Trigger
Vì sao phải dùng Variables ? Vì Nếu không dùng biến thì nó sẽ dần dần bị lag tham khảo tại đây http://forums.gamevn.com/showthread.php?475215-Tutorial-Memory-Leaks-and-Custom-Script
Dưới đây là 1 số hình ảnh : War Stomp với flame strike
War Stomp với hex
và cuối cùng là Crushing Stomp
Tạo ability Shockwave dành cho unit và chỉnh missle art là crushing wave ở phần effect
Tạo ability War Stomp cho hero và chỉnh ntn cũng được
Vậy là đã xong
TUT của mình hết rồi ! Có gì mong mọi người đóng góp ý kiến :)
Ngày mai mình sẽ viết thêm về passive còn bây giờ thì mình đi ngủ đây
Link Testing:http://www.mediafire.com/?zq6agsdmnoo4ht0
Và vẫn còn rất nhiều những ý tưởng khác nữa nhưng phải làm thế nào đây Chính vì vậy mình viết TUT này để hướng dẫn cho 1 số bạn mới vào nghề
(trong đó có mình
) về spell tạo bằng dummy unit 
Trước hết,chúng ta cần:
Warcraft III

World Editor
Vì mình chỉ hướng dẫn về spell kiểu đơn giản nên chỉ cần 2 cái trên thôi

1
ummy UnitVậy dummy unit là gì ? Dummy Unit là 1 unit với 1 model chỉ có 1 cái bóng
thường để giúp chúng ta tạo ra được rất nhiều thứ trong quá trình tạo map war cũng như là tạo spellDummy unit tạo kiểu gì ? Trước tiên,bạn cần New custom unit (tạo 1 unit mới) vào Footman (hoặc còn gì cũng được trừ hero và peasant,peon,acolyte và wisp ra <- Cái này mình nói sau) và sau đó thiết lập các thông số như sau :
Thứ nhất là ability - normal ,bạn cần set cho con dummy này với skill là invurneabel và locust.Sau đó đến phần Art - model : thường thì 1 số spell cũng có thể cho con dummy này với model là .mdl thì nó sẽ chỉ hiện lên 1 cái bóng còn đối với 1 số spell thì cũng có thể cho dummy là 1 số model effect khác
.Theo mình thì các bạn nên chọn .mdl hoặc làm theo cách này :
Mã:
bấm tổng hợp nút shift + enter vào art - model và xóa hết dòng chữ đó đi rồi viết dấu "[B]_[/B]" rùi bấm enter

2:Spell
Các bạn tạo 2 spell mới: là spell thứ nhất và thứ hai
1 spell là của hero cũng giống như spell war stomp mình nói ở phía trên hay bạn chọn như thế nào thì tùy ý bạn :) Gọi là spell chính
và 1 spell là của unit bạn thích chọn flame strike hay là spell nào bạn muốn cũng được Nhưng mà bạn phải chỉnh mana cho spell này là 0 (Nếu không thì dummy sẽ không thể sử dụng được spell thứ 2 này) .Gọi là spell phụ
Phần 2 của mình hơi sơ sài 1 tý

3:Trigger
Thắc Mắc :ở phần này mình cũng không hiểu biết nhiều cho lắm nên cũng chỉ mạo muội hướng dẫn vài cách thui
3.1:Đầu tiên,bạn cần tạo 1 new trigger mới để tiến hành làm spell dummy: Sau khi tạo thì sẽ xuất hiện ra 3 mục : Event
Condition:
Action:
Đầu tiên ở phần event thì bạn nên chọn là Unit - A unit Starts the effect of an ability
vì mình khuyên là các bạn nên chọn starts the effect khi mới làm spell :)
Ở phần condition thì các bạn chỉnh (Ability being cast) Equal to [Spell Chính]
Tiếp theo là đến phần action, Phần này trước tiên các bạn cần làm quen với Variables
các bạn tạo 1 Variables có tên là Temp_Point Và bạn chọn type của nó là Point và nhấn ok Và các bạn tạo 1 action là
Sau đó thì bạn tạo 1 action mới làMã:Set [B]Temp_Point[/B] = (Position of (Triggering unit))
Thứ 2 là bạn Tạo tiếp action phía dưới làMã:Unit - Create 1 Dummy for (Owner of (Triggering unit)) at Temp_Point facing Default building facing degrees (Đây là lúc dummy sẽ hiện ra và sẽ thực hiện 1 spell khác)Ở bước này cũng có thể bỏ qua hoặc cũng có thể không cũng đượcMã:Unit - Add (Spell dành cho unit mình nói ở phần trên ấy :D hay là spell phụ) to (Last Created Unit) <--- Ở phần này nghĩa là add cho cái con dummy đó spell phụ mà bạn chọn
Bước này là bước set level của spell phụ đó sao cho bằng spell chính,Nếu bạn chỉ làm spell chính là 1 level thôi thì có thể bỏ qua bước này
Bước 3 là Bắt còn dummy đó sử dụng spell phụ,ở phần này ví dụ bạn làm với cái spell phụ đó là war stomp chẳng hạn thì bạn tạo action làMã:Unit - Set level of [Spell Phụ] for (Last created unit) to (Level of spell chính for (Triggering unit))
còn nếu bạn muốn làm cái spell phụ đó là flame strike thì bạn tạo action là:Mã:Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
Bước 4 là Tiêu diệt dummyMã:Unit - Order (Last created unit) to Human Blood Mage - Flame Strike (Temp_Point) (Phần Order này thì các bạn tìm ở Unit - Issue order ..... tự mò nhé :D), Sau khi 0.3 giây thì dummy đó sẽ mất đi (Nếu thích thì các bạn có thể chỉnh thêm thời gian cho nó bao lâu cũng được nhưng đừng lâu quá
)
Và cuối cũng là bạn tạo 1 custom script để xóa cái Variables temp_point trên kia :Mã:Unit - Add a 0.30 second Generic expiration timer to (Last created unit)
Mã:Custom script: [B]call RemoveLocation (udg_Temp_Point)[/B]Vậy là đã xong hoàn chỉnh 1 spell với dummy rồiMã:Đây là spell war stomp với flame strike: War Strike Events Unit - A unit Starts the effect of an ability Conditions (Ability being cast) Equal to War Strike Actions Set Temp_Point = (Position of (Triggering unit)) Unit - Create 1 Footman for (Owner of (Triggering unit)) at Temp_Point facing Default building facing degrees Unit - Add Flame Strike to (Last created unit) Unit - Order (Last created unit) to Human Blood Mage - Flame Strike Temp_Point Unit - Add a 3.00 second Generic expiration timer to (Last created unit) Custom script: call RemoveLocation (udg_Temp_Point)![]()
Nhưng chắc chắn sẽ có 1 số bạn bảo là Mình muốn con ability đó biến hex hay là storm bolt,spell targert vào quái thì phải làm thế nào ?
Vì vậy mình sẽ hướng dẫn 1 số bạn làm cả cách này luôn:
Event và condition vẫn giữ nguyên như trên
Action thì đầu tiên bạn cần tạo thêm 1 biến nữa là Temp_Group vời type là unit group
sau đó thì bạn tạo action là
^Nhìn có vẻ là rất khó nên mình đã làm trước 1 map để các bạn có thể tham khảoMã:Set Temp_Group = (Units within 300.00 of (Position of (Triggering unit)) matching ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and (((Casting unit) is alive) Equal to True)))
Sau đó thì các bạn tạo 1 action mới nữa là
Và vẫn làm giống như cách trên thôi là set temp point .... tạo unit .... add spell phụ (Nhưng lưu ý là bạn phải tạo trong cái loop - action đó không thì dummy của bạn sẽ không sử dụng được spell phụ đâu)Mã:Unit Group - Pick every unit in Temp_Group and do (Actions) Loop - Actions <---- Nó sẽ hiện ra cái này
Sau khi add spell phụ rồi thì đến phần sử dụng spell VD bạn muốn nó biến hex chẳng hạn thì tạo action là :
sau khi tạo xong cái action order thì vẫn như cũ add 0.3s để nó chếtMã:Unit - Order (Last created unit) to Orc Shadow Hunter - Hex (Picked unit)
Cuối cùng là bạn tạo 2 cái custom Script Nhưng mà không phải ở bên trong Loop - Action mà tạo ở bên ngoài giống như set biến unit group ý :d
Mã:Custom script: call RemoveLocation (udg_Temp_Point) Custom script: call DestroyGroup (udg_Temp_Group)Mã:Untitled Trigger 001 Copy Events Unit - A unit Starts the effect of an ability Conditions (Ability being cast) Equal to War Stomp Actions Set Temp_Group = (Units within 300.00 of (Position of (Triggering unit)) matching ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and (((Casting unit) is alive) Equal to True))) Unit Group - Pick every unit in Temp_Group and do (Actions) Loop - Actions Set Temp_Point = (Position of (Triggering unit)) Unit - Create 1 Footman for (Owner of (Triggering unit)) at Temp_Point facing Default building facing degrees Unit - Add Hex to (Last created unit) Unit - Order (Last created unit) to Orc Shadow Hunter - Hex (Picked unit) Unit - Add a 0.50 second Generic expiration timer to (Last created unit) Custom script: call RemoveLocation (udg_Temp_Point) Custom script: call DestroyGroup (udg_Temp_Group)
Vì sao phải dùng Variables ? Vì Nếu không dùng biến thì nó sẽ dần dần bị lag tham khảo tại đây http://forums.gamevn.com/showthread.php?475215-Tutorial-Memory-Leaks-and-Custom-Script
Dưới đây là 1 số hình ảnh : War Stomp với flame strike
War Stomp với hex
và cuối cùng là Crushing Stomp

Tạo ability Shockwave dành cho unit và chỉnh missle art là crushing wave ở phần effect
Tạo ability War Stomp cho hero và chỉnh ntn cũng được

Mã:
Untitled Trigger 001
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Crushing Stomp
Actions
Set unitgroup = (Units within 350.00 of (Position of (Triggering unit)) matching ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and (((Triggering unit) is alive) Equal to True)))
Special Effect - Create a special effect attached to the overhead of (Triggering unit) using Abilities\Spells\Undead\DarkRitual\DarkRitualCaster.mdl
Special Effect - Destroy (Last created special effect)
Unit Group - Pick every unit in unitgroup and do (Actions)
Loop - Actions
Set temp_point = (Position of (Triggering unit))
Unit - Create 1 Dummy for (Owner of (Triggering unit)) at temp_point facing Default building facing degrees
Unit - Add Crushing Wave to (Last created unit)
Unit - Order (Last created unit) to Orc Tauren Chieftain - Shockwave (Position of (Picked unit))
Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
Custom script: call DestroyGroup (udg_unitgroup)
Custom script: call RemoveLocation (udg_temp_point
TUT của mình hết rồi ! Có gì mong mọi người đóng góp ý kiến :)Ngày mai mình sẽ viết thêm về passive còn bây giờ thì mình đi ngủ đây

Link Testing:http://www.mediafire.com/?zq6agsdmnoo4ht0
Chỉnh sửa cuối:


:
.
.
. Sao không kiểm tra Unit có skill Passive đấy không mà lại dùng buff ?
?