[ Hướng dẫn ] Làm skills Time Lapse

GUI: Tức là những trigger bình thường có ba dòng event, conditions, actions mà bạn có thể đưa các lệnh thực thi có sẵn bằng cách chuột phải-> add event, condition,action trong trigger đó.

MUI: MUI Là một thuật ngữ để chỉ về việc trigger đó có thể thực hiện cùng một lúc (hay chênh lệch ở một phạm vi thời gian) hoặc nhiều bản thân khác sử dụng mà không bị lỗi.
Lấy ví dụ đơn giản về một chiêu thức, thường thì bạn làm chiêu sử dụng lên một đối thủ, muốn gây ra dam sau 5s mà sử dụng hàm Wait 5.00s trong trigger , rồi sau đó sử dụng hàm deal dam và gán mục tiêu là một giá trị định sẵn (ex:set TargetUnit = GetSpellTargetUnit()) trước đó thì sẽ bị lỗi khi một đơn vị khác sử dụng chiêu thức đó trong phạm vi 5 giây.

JASS: Là trigger và cũng có event, conditions, actions nhưng được hiển thị dưới hình thức text, nó phải nhờ người viết phân định ra đâu là event, đâu là conditions, đâu là actions qua các bộ hàm gọi là function. Tiện lợi của JASS hơn GUI ở chỗ là dễ dàng giúp người viết thực hiện MUI spell nếu biết cách sử dụng hợp lý.
JASS được anh Tom-sama khuyên các bạn rành thạo nên học và viết các spell bằng JASS. :7onion68:
Bạn đọc thêm về JASS ở đây nhé:http://forums.gamevn.com/showthread.php?485055-Tutorial-GUI-to-JASS

p.s: Trả lời thui Tom-sama chém nhẹ em thui nhé :9cool_too_sad:

vậy làm sao để chuyển từ dạng GUI sang JASS
 
dụng hàm deal dam và gán mục tiêu là một giá trị định sẵn (ex:set TargetUnit = GetSpellTargetUnit()) trước đó thì sẽ bị lỗi khi một đơn vị khác sử dụng chiêu thức đó trong phạm vi 5 giây.

không có bị lỗi đâu nhé :| vì cái GetSpellTargetUnit() là 1 handle đã theo trigger đó thực thi tác dụng rồi. nên không sợ bị lỗi. thậm chí là Wait...
còn 1 variable sử dụng wait... thì có thể bị lỗi khi bị nhập(set) variable chẳng hạn như.

Mã:
Demo
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Animate Dead
    Actions
        Set UnitVar = (Triggering unit)[COLOR="#008000"][SIZE=2] // khi lần đầu tiên  unit A sử dụng Animate Dead. thì UnitVar(Empty) sẽ lưu nhớ handle đó. đến 2 giây sau thực thi tác dụng Kill UnitVar(A). nhưng nếu unit B sử dụng Animate Dead trước khi chưa đủ 5 giây(trong lúc đó) thì unit B sẽ được nhận là UnitVar(B) và hàm lệnh vẫn được thực thi với tác dụng số lần mình đã thực thi (lúc này là 2 unit sử dụng nên hàm sẽ chạy 2 lần). hết 2 giây sẽ kill UnitVar(B) "sẽ không phải là UnitVar(A) vì variable đã bị nhập(set) lại rồi." nhưng sẽ tiếp tục 1 lần nữa vì lúc đó là 2 lần..[/SIZE][/COLOR]
        Wait 2.00 seconds
        Unit - Kill UnitVar

@World_Editor:

bạn có thấy hình này không :-/
4da53a7fa84168822cb44535d800763e_45900967.untitl3ed2.png

thì vào phần Edit bấm Converter Custom Text là đươc...
 
Chỉnh sửa cuối:
anh có muốn thử không??
đây nhé: Làm cái trigger tương tự sau:
Khi một đơn vị sử dụng chiêu thức lên một mục tiêu, set biến_Unit= GetSpellTargetUnit(), đợi Wait 5s rồi gây dam cho biến_Unit đó.

Xong vào map test, rồi cho một unit cast lên unit a, rồi cho unit đã cast đó cast lên unit b khi chưa đủ 5s

thử yk ;))

p.s cái của anh là 2 giây, vậy cast trong phạm vi 2s sẽ bị lỗi, không deal dam lên unit a
 
Chỉnh sửa cuối:
không có bị lỗi đâu nhé :| vì cái GetSpellTargetUnit() là 1 handle đã theo trigger đó thực thi tác dụng rồi. nên không sợ bị lỗi. thậm chí là Wait...
còn 1 variable sử dụng wait... thì có thể bị lỗi khi bị nhập(set) variable chẳng hạn như.

Mã:
Demo
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Animate Dead
    Actions
        Set UnitVar = (Triggering unit)[COLOR="#008000"][SIZE=2] // khi lần đầu tiên  unit A sử dụng Animate Dead. thì UnitVar(Empty) sẽ lưu nhớ handle đó. đến 2 giây sau thực thi tác dụng Kill UnitVar(A). nhưng nếu unit B sử dụng Animate Dead trước khi chưa đủ 5 giây(trong lúc đó) thì unit B sẽ được nhận là UnitVar(B) và hàm lệnh vẫn được thực thi với tác dụng số lần mình đã thực thi (lúc này là 2 unit sử dụng nên hàm sẽ chạy 2 lần). hết 2 giây sẽ kill UnitVar(B) "sẽ không phải là UnitVar(A) vì variable đã bị nhập(set) lại rồi." nhưng sẽ tiếp tục 1 lần nữa vì lúc đó là 2 lần..[/SIZE][/COLOR]
        Wait 2.00 seconds
        Unit - Kill UnitVar

@World_Editor:

bạn có thấy hình này không :-/

vội quá nên ko kịp nhìn, xin lỗi nhé :8cool_cry:
 
Back
Top