[Thảo luận]làm Spell bằng Jass - chia sẻ và học hỏi ^^!

Thảo luận trong 'World Editor' bắt đầu bởi sukaraki, 26/3/09.

  1. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    Chậc, xóa chữ "Max" đi thì đc chứ để như cũ thì kô đc. Chắc kô có Set max life, hỏi anh Tom đê;)).
     
  2. rongdoVN

    rongdoVN Space Marine Doomguy Lão Làng GVN

    Tham gia ngày:
    6/9/05
    Bài viết:
    5,663
    Nơi ở:
    TS-Pri GameVN
    bạn viết thế nào mà error ????
     
  3. Dark Gamer

    Dark Gamer Legend of Zelda

    Tham gia ngày:
    26/8/07
    Bài viết:
    1,125
    Nơi ở:
    Hà Nội
    @GW : lấy đâu ra câu lệnh set max life unit đấy /:) , phải dùng ability Max life <~ rồi remove/add

    còn dmg thì sang 2pic hỏi đáp search đi , tớ post 1 lần rồi :-<

    demo map Max life ở dưới
     

    Các file đính kèm:

  4. emty838

    emty838 Youtube Master Race

    Tham gia ngày:
    24/5/09
    Bài viết:
    31
    bạn có thể chỉ mình cách test không, sao mình pick unit rồi gõ A subtring mà không thấy gì cả vậy
     
  5. emty838

    emty838 Youtube Master Race

    Tham gia ngày:
    24/5/09
    Bài viết:
    31
    và hình như cách của bạn là cộng thêm maxlife cho unit, xin lỗi vì mình đã nói không rõ yêu cầu, cái mình muốn là tạo một passive spell tăng maxlife theo %maxlife của unit, ví dụ nếu maxlife của unit tăng lên thành 1000 thì khi có spell maxlife= 1000*1.5=1500, và khi max life xuống còn 500 => maxlife= 500*1.5=750 ,max life của unit tăng lên khi unit nhặt item có bonus maxlife hoặc ăn sách, và giảm khi unit drop item có + bonus maxlife.
     
  6. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    cái Set unit max HP ở trên là cách cho unit bonus hp

    khi unit nhận đc ability trên, cho unit thêm số máu = max life hiện tại * % bonus
    mỗi khi nhận đc sách hay item life bonus thì tăng máu theo % số máu nhận đc từ sách, item. Tất nhiên, khi vứt item ra thì phải giảm máu theo % số máu nhận đc từ item đó

    ví dụ: 1000 max hp, nhận 50% bonus từ ability -> thêm 1000 * 0.5 = 500 máu nữa ( dùng Set Unit Max HP ở trên)
    khi nhận đc sách, cho 50 bonus hp, vậy phải thêm 50 * 0.5 = 25 máu nữa cho unit
    khi nhận/mất 1 item cho 400 máu, phải tăng/giảm 400 * 0.5 = 200 máu.

    p.s: nếu muốn tăng/giảm số % max life bonus này (50% -> 60% hoặc 50% -> 30%) thì hơi rắc rối.
    nếu đang là 50% thì số máu max hiện tại sẽ là 150% -> lấy 100% (số máu bình thường khi chưa có bonus %) là số máu max hiện tại / 1.5 rồi số đó nhân với 1.6 hoặc 1.3 là ra số máu max với 60% hoặc 30% bonus. Tất nhiên cũng dùng Set Unit Max HP ở trên để cộng/trừ.
     
  7. emty838

    emty838 Youtube Master Race

    Tham gia ngày:
    24/5/09
    Bài viết:
    31
    thank anh Tom, vậy là vẫn sử dụng lại nhưng triger trên và thêm vài triger unit nhận sách hoặc unit nhận item nửa, Àh sẵn tiện cho em hỏi thêm, thật ra trong jass có câu lệnh set max life cho unit không anh Tom, nếu không thì blizzard thật là tệ, có lệnh setmaxlife cho Destructable mà không có lệnh set max life cho unit. Trong khi chỉ cần 1 action đơn giản thì đã xong triger thì lại phải làm thêm triger khác => bó tay. Nếu em mà mở được mấy cái triger của blizzard trong các skill của nó thì em phải xem nó làm thế nào.
     
  8. kickboy00

    kickboy00 Mr & Ms Pac-Man

    Tham gia ngày:
    12/4/09
    Bài viết:
    164
    E chịu món Jass này...Ai có thể dạy e cơ bản đc không..Share nick chat cho e :(...:((
     
  9. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    setunitmaxlife <- ko có
    còn các spell (có sẵn) của Blizzard đã đc hard-coded, ko dễ dàng gì mà xem được (chứ đừng nói sửa).
     
  10. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
  11. kickboy00

    kickboy00 Mr & Ms Pac-Man

    Tham gia ngày:
    12/4/09
    Bài viết:
    164
    híc nhưng mà e đọc vẫn không hiêu hết.Dạy qua Yahoo vẫn dễ hơn chứ.Nick e là : are_you_love_me_00...Pác nào pro chỉ e đi:((
     
  12. rongdoVN

    rongdoVN Space Marine Doomguy Lão Làng GVN

    Tham gia ngày:
    6/9/05
    Bài viết:
    5,663
    Nơi ở:
    TS-Pri GameVN
    rành GUI chưa mà qua học jass :|
     
  13. WordEditor

    WordEditor C O N T R A

    Tham gia ngày:
    8/9/08
    Bài viết:
    1,509
    Nơi ở:
    Leaf Village
    Mình cũng..."dốt" JASS @-) , sao mọi người không làm = GUI cho dễ nhỉ, đánh JASS mỏi tay kinh khủng @@
     
  14. kickboy00

    kickboy00 Mr & Ms Pac-Man

    Tham gia ngày:
    12/4/09
    Bài viết:
    164
    Gui thì thoải mái đi,Jass thì mới cơ bản thôi.mới học đc vài cái lẻ lẻ :(..Chưa hiểu rõ lắm.Cần giải thích tường tận :(
     
  15. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    Tớ thì biết một nửa của JASS, mỗi tội chưa biết xài biến handlers để làm MUI thế nên cứ xài GUI là trên hết=)).
     
  16. Diệp Thanh

    Diệp Thanh Kirin Tor Moderator Lão Làng GVN

    Tham gia ngày:
    7/2/04
    Bài viết:
    4,113

    Wrong....gõ bao giờ chả nhanh hơn click? khi nào bạn đã làm quen được với JASS thì bạn sẽ nghĩ khác...làm sướng hơn GUI nhiều...tuy nhiên ko bắt buộc phải dùng JASS mới có map tốt !
     
  17. DarkKing2828

    DarkKing2828 Youtube Master Race

    Tham gia ngày:
    20/3/09
    Bài viết:
    69
    Mã:
    function Conditions takes nothing returns boolean
        if ( not ( GetSpellAbilityId() == 'A000' ) ) then
            return false
        endif
        return true
    endfunction
    
    function Effect takes nothing returns nothing
             local location TargetLoc = GetSpellTargetLoc()
             local unit Caster = GetSpellAbilityUnit()
             local unit Dummy = GetLastCreatedUnit()
             local unit PickedUnit
             local timer Timer = GetExpiredTimer()
             local group Group
             set Group = GetUnitsInRangeOfLocAll(600 , TargetLoc)
             call AddSpecialEffectTargetUnitBJ("overhead", Dummy , "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl")
             call DestroyEffectBJ(GetLastCreatedEffectBJ() )
             loop
                 set PickedUnit = FirstOfGroup(Group)
                 exitwhen PickedUnit==null
                 if IsUnitEnemy(PickedUnit,GetOwningPlayer(Caster))==true then
                 call GroupRemoveUnit(Group,PickedUnit)
                 call UnitDamageTargetBJ(Dummy , PickedUnit , 50.00 , ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL)
                 call SetUnitPositionLoc(PickedUnit , PolarProjectionBJ(GetUnitLoc(Dummy) , 40.00 , AngleBetweenPoints(GetUnitLoc(Dummy) , GetUnitLoc(PickedUnit))) )
                 set Dummy = null
                 endif
             endloop     
    endfunction
    
    function Actions takes nothing returns nothing
             local unit Caster
             local unit Dummy
             local location TargetLoc
             local timer Timer
             local group Group
             set Timer = CreateTimer()
             set TargetLoc = GetSpellTargetLoc()
             set Caster = GetSpellAbilityUnit()
             call CreateUnitAtLoc(GetOwningPlayer(Caster) , 'e000' , TargetLoc , bj_UNIT_FACING)
             set Dummy = GetLastCreatedUnit()
             call TimerStart(Timer , 0.5 , true , function Effect )
             call TriggerSleepAction( 10.00 )
             call KillUnit(Dummy)
             call DestroyTimer(Timer)
             call DestroyGroup(Group)
             call RemoveLocation(TargetLoc)
             set Caster = null
             set Dummy = null
             set TargetLoc = null
             set Group = null
             set Timer = null
    endfunction
    
    function InitTrig_Storm_Totem takes nothing returns nothing
        local trigger Trigger
        set Trigger = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ( Trigger, EVENT_PLAYER_UNIT_SPELL_EFFECT )
        call TriggerAddCondition( Trigger, Condition( function Conditions ) )
        call TriggerAddAction( Trigger, function Actions )
    endfunction
    
    các bác pro jass xem có gì sai giúp em tại sao nó lại ko tạo effect và ko deal hit point của các unit in group với :((:((
     
  18. Luckyboy292

    Luckyboy292 Youtube Master Race

    Tham gia ngày:
    3/1/10
    Bài viết:
    8
    có ai cho em hỏi viết code bằng gui và jass vào trigger kiểu gì hok
    em toàn phải dò tùng dòng khi làm bằng gui thôi mất thời gian lắm :((
     
  19. cahoLala

    cahoLala Youtube Master Race

    Tham gia ngày:
    24/10/09
    Bài viết:
    54
    Ai hướng dẫn làm 1 cái spell jass có MUI đơn giản đc ko ạ, bik MUI GUI còn jass thì tịt.
     

Chia sẻ trang này