ơ, tự nhiên có 3 bài ko hiểu sao lại có ở đây ???
và cũng sorry bà con, mấy hôm này bận cầy trả nợ cho thằng em maple nên cứ online là....... :(
giờ mới có chút time post tiếp cho bà con
--------------------------------------------------------------------------
Tiếp, tôi sẽ bàn về Spell-Trigger và Spell-Jass, mối quan hệ của chúng với "Unit Caster Spell"
Đầu tiên hãy xem 1 ví dụ đơn giản về 1 Spell:
Khi cast spell: Gọi 1 cục đá rơi xuống, nó phát nổ và bắn ra 1 quả shockwave về phía Bắc
Mọi chuyện ko có gì khó khăn cho lắm với những Effect trên và chỉ có 1 Hero hay Unit có thể cast nó ra
Tôi sử dụng 3 Effect và 1 Effect do War3 quản lý
Lấy spell cơ bản là Silence của Dark Ranger với Effect là Inferno(cái này do War3 quản lý)
-Tiếp đó, căn thời gian tảng đá Inferno rơi xuống rồi tạo 3 Special Effect tại điểm nó rơi: StarFall, FlameStrike-Special, FlamStrike-Effect
-Gán biến cho 3 effect vừa tạo
-Gọi 1 Unit Caster Spell và Order nó bắn ShockWave theo hướng 90 độ
-Đợi khoảng 2s, Hủy 3 Effect vừa tạo đi
Ko có gì đáng nói cả. Nhưng vấn đề phát sinh ở đây là như sau:
-Bạn muốn khi Hero của bạn cầm 1 Item gì đó, khi tấn công cũng có khả năng bắn ra được phép đó, hay là tạo 1 chùm mưa element, lấy 1 hạt mưa là spell đó chẳng hạn vv....
Lúc đó công việc của bạn là 1 Trigger Order cho nhiều CASTER SPELL bắn phép đó. Có thể diễn giải như sau:
-Vòng lặp
-Tạo 1 Unit Caster Spell
-Add phép Silence cho Unit CasterSpell
-Order nó bắn và chính vị trí đang đứng của nó chẳng hạn(Order tất nhiên là Silence - Dark Ranger)
-Hết vòng lặp
Như vậy, cứ lúc nào bạn cần bắn phép này thì add spell Silence cho CasterSpell và ra lệnh cho nó bắn...
Nhưng mọi việc không đến nỗi dễ như thế :(
Như Zeddy đã từng quan tâm, việc đồng thời(chỉ là tương đối) có 2,3,4...100 unit cùng bắn phép đó thì sao đây ???
Trigger cũng sẽ nhận đủ và làm đủ 100 lần spell trên, nhưng kết quả thì ko như ta mong đợi :(
Tại sao lại vậy ?
Đơn giản vì 1 lý do: spell trên có dùng 3 biến Effect để gắn + thời gian WAIT đã phá hỏng cách hiểu của WAR về Trigger khi sử lý những dòng lệnh đó
Tôi đảm bảo với các bạn nếu xóa những dòng WAIT 2s hay 1s vv.. thì nó sẽ có tác dụng với CASTERSPELL. Các bạn có thể thử
Nhưng được mấy spell mà ko cần căn thời gian cho chính xác(đấy là tôi mới nói về riêng spell Simple này đấy)
Và 1 lý do nữa mà các bạn cũng cần quan tâm là về Level của spell đó.
Ví dụ 2 hero cùng cast spell đó. Hero1 với level 2 cast trước, Hero2 với level 10 cast sau.
Nếu sử dụng đoạn trigger trên thì đố bạn biết cả 2 spell được bắn ra sẽ mang level bao nhiều ? Level 10 là câu trả lời
Vì khi dùng lệnh Wait, War sẽ hiểu sai về Casting Unit. Thực chất, đây là 1 biến luôn được gán cho bất kỳ Unit nào vừa mới cast 1 spell nào đó.
Do có lệnh wait nên khi đoạn trigger1 của Hero1 dừng lại wait, Trigger2 của hero2 chạy sau sẽ gán biến Casting Unit vào Hero thứ 2
=> đương nhiên khi đến lúc Trigger1 đã wait hết thời gian, nó sẽ chạy tiếp nhưng với Casting Unit là Hero2 ko phải Hero1 nữa
Mọi chuyện sẽ còn rắc rối cho bạn hơn nữa khi các bạn làm những spell phức tạp hơn nhiều so với cái spell đơn giản này
Nhưng trước hết, hãy down cái map Trigger này về đã

Map đây: