[Tutorial] Tạo các hiệu ứng skill

file rất bài bản + hình lẫn công thức, tiếng tàu cũng chỉ mô tả, chủ yếu nhìn hình ;))
 
hôm nay thử làm vài cái mà mãi không được :(( vào game nó cho ra cái hình gì đấy :(
mà có ai biết r và z trong những công thức đấy là gì không ?
 
z là chiều cao trong công thức đó! còn r thì chịu :-??

trong lập trình "r" thường được đặt cho biến chỉ độ dài của bán kính, thường sử dụng pixe làm đơn vị.
 
Các bạn chỉ mình cách chỉnh gây damage cho các effect như Ziczac Start Tròn Vuông Xoắn Óc v.v dc ko thank
 
^
Gây damage cho cái Moon
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Moon
Actions
Trigger - Turn off (This trigger)
Set damG1 = (Create Unit Group)
For each (Integer Integer_A) from 1 to 30, do (Actions)
Loop - Actions
Special Effect - Create a special effect at ((Position of (Casting unit)) offset by 300.00 towards ((Facing of (Casting unit)) + (((Real(Integer_A)) x 10.00) - 150.00)) degrees) using Abilities\Weapons\FaerieDragonMissile\FaerieDragonMissile.mdl
Special Effect - Destroy (Last created special effect)
Unit Group - Pick every unit in (Units within 100.00 of ((Position of (Casting unit)) offset by 300.00 towards (((Facing of (Casting unit)) + ((Real(Integer_A)) x 10.00)) - 150.00) degrees) matching (((((Triggering unit) is A structure) Equal to False) and (((Matching unit) is in damG1) Equ and do (Actions)
Loop - Actions
Unit - Cause (Casting unit) to damage (Picked unit), dealing 200.00 damage of attack type Spells and damage type Normal
Unit Group - Add (Picked unit) to damG1
For each (Integer Integer_A) from 1 to 27, do (Actions)
Loop - Actions
Special Effect - Create a special effect at (((Position of (Casting unit)) offset by 100.00 towards ((Facing of (Casting unit)) + 180.00) degrees) offset by 200.00 towards ((Facing of (Casting unit)) + (((Real(Integer_A)) x 10.00) - 135.00)) degrees) using Abilities\Weapons\FaerieDragonMissile\FaerieDragonMissile.mdl
Special Effect - Destroy (Last created special effect)
Unit Group - Pick every unit in (Units within 100.00 of (((Position of (Casting unit)) offset by 100.00 towards ((Facing of (Casting unit)) + 180.00) degrees) offset by 200.00 towards (((Facing of (Casting unit)) + ((Real(Integer_A)) x 10.00)) - 135.00) degrees) matching (((((Triggering uni and do (Actions)
Loop - Actions
Unit - Cause (Casting unit) to damage (Picked unit), dealing 200.00 damage of attack type Spells and damage type Normal
Unit Group - Add (Picked unit) to damG1
Custom script: call DestroyGroup( udg_damG1 )
Trigger - Turn on (This trigger)
Mình mới tập thôi có sai sót gì thì gạch nhẹ tay :2cool_burn_joss_sti
Map: http://www.mediafire.com/?ijfl9kvju4tawjf
 
Lâu rùi ko lên 4rum chơi, đọc thấy thiếu hình trái tim mà sẵn đang có nên share lun :)

d4b65dda47f0691027e8f1223e7588eb_52358502.11231.png


đặt cái này trong header hay library scope gì đó tùy...
Mã:
    globals
                                        real                            POSITIVE_Y
                                        real                            NEGATIVE_Y
    endglobals

    function HeartY takes real a, real MaxSize, real x returns nothing
        if x > MaxSize then
            call BJDebugMsg("Math Error!")
            return
        endif
        set POSITIVE_Y = a*RAbs(x) + SquareRoot(MaxSize*MaxSize - x*x)
        set NEGATIVE_Y = a*RAbs(x) - SquareRoot(MaxSize*MaxSize - x*x)
    endfunction

còn đây là cách test:
Mã:
function InitTrig_test takes nothing returns nothing
    call TriggerSleepAction(10.)
    local real x = 500.
    loop
        call HeartY(.75,500.,x)
        call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Undead\\AnimateDead\\AnimateDeadTarget.mdl",x,POSITIVE_Y))
        call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Undead\\AnimateDead\\AnimateDeadTarget.mdl",x,NEGATIVE_Y))
        set x = x - 5
        exitwhen x < -500.
    endloop
endfunction
 
ai chi cach de efect di chuyen ko? giong the nay: http://www.youtube.com/watch?v=0hyNvZTNTrc

Time - Every 0.03 seconds of game time
Unit - Move <Dummy> instantly to ((Position of Caster) offset by ((Tọa độ X), (Tọa độ Y)))

Đây chỉ là cho Effect di chuyển theo pt thôi. (Chỉ áp dụng cho pt có tính chu kỳ)

Còn tạo từng Effect hiện ra dần dần xếp thành hình thì thêm cái này vào loop

Wait 0.03 seconds
 
Mình thấy dùng nhiều effect thế này thì chắc là chỉ làm cho đẹp chứ nếu áp dụng vào game thì có lẽ fps sẽ giảm rất nhiều :D
 
eh,trong cái dòng For each (Integer A) from 1 to 10, do (Actions) thì cái "Actions" là cái gì?
 
ai làm đc spell này cho mình xin map demo nha tks trước . Hình ảnh đây :

13051010.gif
 
cho mình hỏi ngu một cái, mấy cái trên chỉ là làm hiệu ứng thôi đúng không?
Vậy chứ nếu deal dame luôn và deal buff luôn thì sao?
Ví dụ như cái deal 10 cái nova theo đường thẳng, vậy mình muốn 10 cái này đều tạo ra 1 vùng là 150 dame tại vị trí cái nova nổ ra, nếu các creep đứng trong đó thì bị đóng băng, còn nếu là hero địch thì bị slow, và chính mình cũng bị slow trước tiên ( cái này nhắm làm cho hero đừng bá đạo quá ).
Mấy bạn có giúp thì làm ơn cho nguyên cái trigger luôn nha, Jass hay Gui mình thật không biết tí gì
[2] À mà có thêm cái chiêu cho nổ 1 vùng random trước mặt hero range là 500 nhưng nổ 6 cái nova, vị trí là random, range 150/nova
[3] à, có thêm một cái nửa, là khi cái spell con hero bay lên rồi chưởng xuống một cái fireball, rồi từ từ hạ xuống lúc này con hero là bất tử đến khi nó tiếpđất thì kết thúc skill đó và nó chỉ chưởng đúng 1 cái fire ball thôi nhé ( nếu nó là ranger và có atk speed cao nó bắn thêm vài cái thì không đúng ) à nếu nó bay lên trong 1/2 giây thì nó cũng đâu có kịp bắn đâu nhỉ. Thôi kệ cẩn tắc vô áy náy
 
Back
Top