[Tutorial] - Slide, Chain Spells

À à, vì vốn từ tôi không cao nên cũng nghĩ cái từ "chắc" này có nghĩa là "chắc chắn". :-j
Việc cạu không biết cách MUI kia có lẽ cậu không hề liếc qua cái tutorial của anh tom nhỉ? ;;)
 
sao phải mất thời gian thế nhỉ, muốn đụng unit nào nó chết thì add cho nó Mine - exploding (Goblin Land Mine) (Activation Delay: 0.01, Invisible Transition Time: 1000, Cast Range: 100)
còn deal dmg lúc chết thì add AOE damage upon death chỉnh Damage, Area of Effet, Target Allowed là xong

Chẹp, thế mà anh Tom không nói sớm, em có biết cái vụ này đâu (Mới học War mà) . Thank anh Tom, em sẽ thử ngay đây.
------------------------
Cái Avatar mới của anh Tom cực độc, hài thật =))
 
Tom có 1 tutorial về:


Mã:
SlideMove  // ko cần OFF sẵn, cứ ON luôn
    Events
        Time - Every 0.04 seconds of game time
    Conditions
    Actions
        For each (Integer A) from 1 to SlideIndex, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        SlideTick[(Integer A)] Equal to 0
                    Then - Actions
                        For each (Integer B) from (Integer A) to (SlideIndex - 1), do (Actions)
                            Loop - Actions
                                Set SlideAngle[(Integer A)] = SlideAngle[((Integer A) + 1)]
                                Set SlideDistance[(Integer A)] = SlideDistance[((Integer A) + 1)]
                                Set SlideTick[(Integer A)] = SlideTick[((Integer A) + 1)]
                                Set SlideUnit[(Integer A)] = SlideUnit[((Integer A) + 1)]
                        Set SlideIndex = (SlideIndex - 1)
                    Else - Actions
                -------- ---------------- --------
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        SlideTick[(Integer A)] Greater than 0
                    Then - Actions
                        Set SlideTick[(Integer A)] = (SlideTick[(Integer A)] - 1)
                        Set TempLoc = (Position of SlideUnit[(Integer A)])
                        Set TempLoc2 = (TempLoc offset by SlideDistance[(Integer A)] towards SlideAngle[(Integer A)] degrees)
                        Unit - Move SlideUnit[(Integer A)] instantly to TempLoc2
                        Special Effect - Create a special effect at TempLoc2 using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                        Special Effect - Destroy (Last created special effect)
                        Destructible - Pick every destructible within 200.00 of TempLoc2 and do (Actions)
                            Loop - Actions
                                Destructible - Kill (Picked destructible)
                        Custom script:   call RemoveLocation( udg_TempLoc )
                        Custom script:   call RemoveLocation( udg_TempLoc2 )
                    Else - Actions

Đầu tiên có 1 cái loop, vòng lặp từ 1 đến SlideIndex (số slide đang dùng ấy) Nếu SlideIndex = 0 thì ko lặp.

Sau đó kiểm tra SlideTick từ 1 đến SlideIndex, cái nào = 0 thì dừng slide đó, nhg thay vì tắt trigger như trên thì ta giảm SlideIndex.


Mã:
For each (Integer B) from (Integer A) to (SlideIndex - 1), do (Actions)
                            Loop - Actions
                                Set SlideAngle[(Integer A)] = SlideAngle[((Integer A) + 1)]
                                Set SlideDistance[(Integer A)] = SlideDistance[((Integer A) + 1)]
                                Set SlideTick[(Integer A)] = SlideTick[((Integer A) + 1)]
                                Set SlideUnit[(Integer A)] = SlideUnit[((Integer A) + 1)]
                        Set SlideIndex = (SlideIndex - 1)

Loop B này dùng để đẩy index lùi lại. Ví dụ ta có thế này:
Mã:
1 2 3 4 5 6 7
Và Slide 4 dừng, thì phải lặp từ slide 4, và đẩy các dữ liệu (unit, distance, angle, tick) lùi lại, tức là 5 -> 4, 6 -> 5, 7 -> 6 và giảm SlideIndex đi 1 đơn vị
Mã:
1 2 3 4 5 6 7  //cũ: index = 7
1 2 3 5 6 7     //đẩy lùi lại, bây giờ index = 6

còn phía dưới thì cứ move unit bình thường.

Bây giờ Slide đã MUI rồi, 100 unit slide cùng lúc cũng ko sao.
Vậy mọi người xem demo map Tom attach ở dưới nhá. :)>-

Chưa MUI đâu Tom à,nếu muốn MUI dùng mảng thì khi 1 phần tử trong mảng thực hiện xong phải xóa,mà thuật toán xóa phần tử trong mảng như trên thì sai ở đoạn
Mã:
For each (Integer B) from (Integer A) to (SlideIndex - 1), do (Actions)
                            Loop - Actions
                                Set SlideAngle[(Integer A)] = SlideAngle[((Integer A) + 1)]
                                Set SlideDistance[(Integer A)] = SlideDistance[((Integer A) + 1)]
                                Set SlideTick[(Integer A)] = SlideTick[((Integer A) + 1)]
                                Set SlideUnit[(Integer A)] = SlideUnit[((Integer A) + 1)]
                        Set SlideIndex = (SlideIndex - 1)

đúng là phải thay Integer A = Integer B kia
sửa lại
Mã:
For each (Integer B) from (Integer A) to (SlideIndex - 1), do (Actions)
                            Loop - Actions
                                Set SlideAngle[(Integer B)] = SlideAngle[((Integer B) + 1)]
                                Set SlideDistance[(Integer B)] = SlideDistance[((Integer B) + 1)]
                                Set SlideTick[(Integer B)] = SlideTick[((Integer B) + 1)]
                                Set SlideUnit[(Integer B)] = SlideUnit[((Integer B) + 1)]
                        Set SlideIndex = (SlideIndex - 1)
:)
 
Skill knockback của anh nó bug đấy :|
em chả biết bug chỗ nào trong trigger nhưng có thể spam được ??
chỉ spam s trong game là nó 1 lần đánh 3 4 phát knockback,có lần em làm 5 phát liên tiếp ?? 17% chắc chả có tác dụng ?
 
cái đó chỉ là tương đối, cái chính ở đây là sự hoạt động của knockback
ngoài ra, cái % chance là random, đã random thì ai mà biết đc nó xảy ra lúc nào =))
 
Mình vẫn chưa hiể, bạn có thể nói rõ hơnn được không. Nếu có demo map thì càng tốt. Mình đã có triger tạo và Slide Dummy theo tut của anh Tom, giờ làm thế nào để khi Dummy chạm vào unit khác thì phát nổ (tức là làm cho Dummy die lun).
bạn thử tạo con dummy là con unit trong map melee đó, có chiêu tự tử giống goblin trong DotA đó, auto active skill tự tử (dòng đầu trong Object Editor), đây chỉ là ý tưởng, tôi chưa thử lần nào, có gì thì lươợng thứ :)
 
Back
Top