Cách làm Map đây - Topic hỏi đáp cho anh em

Thảo luận trong 'World Editor' bắt đầu bởi hung_war3, 15/4/04.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. steeldragon

    steeldragon Dragon Quest

    Tham gia ngày:
    15/2/04
    Bài viết:
    1,272
    Nơi ở:
    Helsinki, Finland
    TUi nhận xét từng phần nè:
    1. 2/3 số quân theo hero thôi, còn 1/3 giữ nhà
    2. ko cần cái này đâu, bởi vì đã có cái 1, nếu mún đưa vô thì thêm 1 trigger nữa (trigger khi hero die thì lính như (2))
    3. Cái này ko đc đâu, tại vì footman war là war thuộc số nhiều, nếu cho lính về nhiều quá ---> hero dies mất
    4. hero thì máu còn 1/5 hơi ít hay là 1/4 thôi, khi bơm máu tới 1/2 gòi chạy ra lại
    5. cái này rất hay, ok
    6. àh, cái này thì tui chưa có làm unit upgrade, tức là vầy, khi ta chọn 1 con lính thì ta sẽ xài nó lun chờ khi kill đc 100 con thì nó tự up lên 1 con khác, nếu mún thì tui sẽ làm thêm 2 loại lính và 1 cái xe cho mỗi race
    7. hay lắm, mỗi khi hero chết thì chờ 30x level của hero (giây)
    8. ko đc, tại vì khi tui tạo unit lỡ set foot cost của tất cả unit là 0 gòi, để chỉnh lại cho
    9. ok
    10. ko hiểu cho lắm, ghi rõ hơn đi
    11. cái này khó àh nha, tại vì mình quá nhiều hero ko lẽ set cho từng con (theo tui nghĩ là vậy)
    12. ok
    Chờ mai tui up map lên gòi thêm vô tất cả cái đó. Theo tui thì phần hero finish rồi, nếu ông mún thêm gì vô thì thêm đi, còn tui thì tới thứ 2 là xong xuôi hero
     
  2. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    Trigger duel thì của tui nghiên cứu khác tên Kemytaru gì đó.. Hồi đó làm khác.. Cái Reaper Arena là tui soạn lại luôn đó..

    Về map thì mỗi map có những thông số khác nhau, cấu trúc và cách thưởng cũng khác nhau.. tui đưa trigger trong map tui đây: (cần 4 Triggers)

    Phần Setup cho 1 duel sắp xảy ra:
    Event : tùy
    Condition: tùy
    Action:
    Countdown Timer - Start DuelTImer as a One-shot timer that will expire in 420.00 seconds
    Countdown Timer - Create a timer window for DuelTImer with title Next Pit Duel
    Set DuelTImer = (Last started timer)
    Countdown Timer - Show DuelTimerWindow
    --------- Hết cơ bản, DuelTImer là 1 variable thuộc dạng Time

    Trigger Start Duel:
    Event: Time - DuelTImer expires
    Conditions: Tùy
    Action:
    //---Thao tác ngưng đọng mọi thứ--//
    Unit - Pause all units
    Set bPaused = True (tránh bug, bPaused là variable bolean)
    Set bDuel = True (tránh bug, Duel là variable bolean)
    Player Group - Pick every player in (All players) and do (Camera - Pan camera for (Picked player) to (Center of Dueling Pit <gen>) over 1.00 seconds)
    //---Thao tác lưu vị trí của Hero--//
    For each (Integer A) from 1 to 12, do (Set HeroSavePoints[(Integer A)] = (Position of Heroes[(Integer A)]))
    For each (Integer A) from 1 to 12, do (Set HeroSaveDirection[(Integer A)] = (Facing of Heroes[(Integer A)]))
    //---Thao tác di chuyển Hero--//
    For each (Integer A) from 1 to 12, do (Unit - Move Heroes[(Integer A)] instantly to (Center of HeroDuelSpots[(Integer A)]))
    For each (Integer A) from 1 to 12, do (Unit - Make Heroes[(Integer A)] face (Center of Dueling Pit <gen>) over 0.00 seconds)
    //---Thao tác chọn Hero ra đấu--//
    Set TempMaxKill = 0
    For each (Integer A) from 1 to 3, do (If ((Kills[(Integer A)] Greater than TempMaxKill) and ((((Player((Integer A))) slot status) Equal to Is playing) or (((Player((Integer A))) controller) Equal to Computer))) then do (Set TempMaxKill = Kills[(Integer A)]) else do (Do nothing))
    For each (Integer A) from 1 to 3, do (If ((Kills[(Integer A)] Equal to TempMaxKill) and ((((Player((Integer A))) slot status) Equal to Is playing) or (((Player((Integer A))) controller) Equal to Computer))) then do (Set Team1Leader = (Integer A)) else do (Do nothing))
    Set Team1LeaderHero = Heroes[Team1Leader]
    Unit - Move Team1LeaderHero instantly to (Center of Team1HeroDuel <gen>)
    Unit - Set life of Team1LeaderHero to 100.00%
    Unit - Set mana of Team1LeaderHero to 100.00%
    Unit - Make Team1LeaderHero Vulnerable
    ////--- Lặp lại tương tự, ở trên là team 1, players mang số từ 1 đến 3, làm tiếp thao tác lặp Interger với các nhóm còn lại như 4->6, .v.vv.
    //-- Cho đấu--//
    Wait 5.00 seconds (hoặc bao nhiêu tùy)
    Unit - Unpause Team1LeaderHero
    Unit - Unpause Team2LeaderHero
    ...
    Unit - Make Team1LeaderHero Vulnerable
    Unit - Make Team2LeaderHero Vulnerable
    ...
    ----------- Hết trigger startduel về cơ bản..

    Trigger Duel to End (nhận biết hết duel hay chưa)

    Event: Unit - A unit Dies
    Conditions:
    ((Dying unit) is A Hero) Equal to True
    bDuel equal to true
    Action:
    If ((Number of units in (Units in Dueling Pit <gen> matching (((Matching unit) is A Hero) Equal to True))) Equal to 1) then do (Trigger - Run End Duel <gen> (ignoring conditions)) else do (Do nothing)
    Wait 2.00 seconds
    If ((Number of units in (Units in Dueling Pit <gen> matching (((Matching unit) is A Hero) Equal to True))) Equal to 1) then do (If (bDuel Equal to True) then do (Set bDuel = False) else do (Do nothing)) else do (Do nothing)
    ---------- Kết thúc nhận biết

    Trigger End Duel:
    (cái này ko có event vì nó chỉ run khi cái Duel to End kích hoạt nó)
    Action:
    //--pauser và thưởng cho players--//
    Unit - Pause all units
    Unit Group - Pick every unit in (Units in Dueling Pit <gen> matching (((Matching unit) is A Hero) Equal to True)) and do (Set currentKiller = (Player number of (Owner of (Picked unit))))
    Set currentTeam = (((currentKiller - 1) / n) + 1) /--n là số người mỗi team, Reaper Arena thì n là 3, Map Corridor của tui thì n là 6)
    ... (Như vậy là đã có variable cho người chiến thắng và team của người chiến thắng trong map mỗi team có n người, muốn thưởng gì cứ lập action cho 2 variable này)
    //--Trả Heroes về vị trí cũ--//
    Wait 3.00 seconds
    Unit - Pause all units (phòng hờ heroes khác hồi sinh và hoạt động được)
    For each (Integer A) from 1 to 12, do (Unit - Move Heroes[(Integer A)] instantly to HeroSavePoints[(Integer A)], facing HeroSaveDirection[(Integer A)] degrees)
    For each (Integer A) from 1 to 12, do (Unit - Make Heroes[(Integer A)] Vulnerable)
    For each (Integer A) from 1 to 12, do (Camera - Pan camera for (Player((Integer A))) to HeroSavePoints[(Integer A)] over 1.00 seconds)
    Wait 2.00 seconds
    Unit - Pause all units
    Set bDuel = False
    Set bPaused = False
    Unit - Unpause all units
    //--Reset thông số chuẩn bị cho duel kế--//
    Set Team1Leader = 14
    Set Team2Leader = 14
    ..
    Set Team1LeaderHero = No unit
    Set Team2LeaderHero = No unit
    ..
    Countdown Timer - Start DuelTImer as a One-shot timer that will expire in 360.00 seconds (Thời gian tùy ý map maker)
    -------- Hết Trigger End Duel

    Have fun! Copy right by Mr.Atula ^^
    Chủ Nhật tới mới được online... mà thứ 2 tới thì thi :D Hông bít online típ được ko.. he he
     
  3. Thedevilxn

    Thedevilxn Mayor of SimCity

    Tham gia ngày:
    1/1/04
    Bài viết:
    4,439
    Nơi ở:
    ................
    -Coai xong hết trigger của ông thì cái vụ heroleader và phần thưởng hero làm tui nhức đầu quá hic cond nhìu quá chừng luôn T_T
    -Cách trao giải thưởng cũng có thể xài unit group-pick unit in region do action mà tui hay xài cái đó vì nó đơn giản :))
    -Hay thật sau khi reaper trở về thì DKM cũng xuất hiện luôn :)
     
  4. Moandor

    Moandor The Warrior of Light

    Tham gia ngày:
    4/8/03
    Bài viết:
    2,177
    Nơi ở:
    Northrend
    Lập Map có thể coi là 1 trương trình lập trình ý nhỉ ...các huynh thấy thê noà??/
     
  5. hunterxx

    hunterxx The Warrior of Light

    Tham gia ngày:
    27/5/04
    Bài viết:
    2,281
    Nơi ở:
    Krypton
    Uh đúng đó làm map là 1 nghệ thuật, ông thích thì làm cho dzui
    to Dragon:up map lên đi đang rảnh. Xem xong sẽ sửa lại AI
     
  6. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    Hồi trước có nghe devilxxn nói về phép mượn hồn.. hồi chiều làm thử.. hic mất 2 tiếng đồng hồ mới tạm vừa ý.. Nó còn khuyết điểm là hông thèm cooldown.. Nhức đầu quá nên tui đi ngủ lun :p Hông bít devilxxn có làm được chưa? Có đơn giản hơn thì post lên cho tui sửa nhé. Đây là cách làm của tui, convert trigger to text. Chữ màu đỏ là những chữ có thể thay đổi theo 1 hệ tên, còn dòng đỏ dài dài là tui add thêm, ko quan trọng.

    Trigger Spell sau:

    function Trig_Spell_Conditions takes nothing returns boolean
    if ( not ( GetIssuedOrderIdBJ() == String2OrderIdBJ("xyz") ) ) then
    return false
    endif
    if ( not ( GetUnitTypeId(GetOrderedUnit()) == Loại hero có phép này ) ) then
    return false
    endif
    return true
    endfunction

    function Trig_runSpell_Func006001 takes nothing returns boolean
    return ( R2I(GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit())) <= ( R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, GetTriggerUnit())) / 3 ) )
    endfunction

    function Trig_runSpell_Func007001 takes nothing returns boolean
    return ( R2I(GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit())) <= ( R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, GetTriggerUnit())) / 3 ) )
    endfunction

    function Trig_runSpell_Func008001 takes nothing returns boolean
    return ( R2I(GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit())) <= ( R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, GetTriggerUnit())) / 3 ) )
    endfunction

    function Trig_runSpell_Func023001 takes nothing returns boolean
    return ( udg_gsoul == false )
    endfunction

    function Trig_runSpell_Actions takes nothing returns nothing
    set udg_gsoul = true
    set udg_numsoul[1] = GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))
    set udg_numsoul[2] = GetConvertedPlayerId(GetOwningPlayer(GetOrderTargetUnit()))
    set udg_getsoul[1] = GetTriggerUnit()
    set udg_getsoul[2] = GetOrderTargetUnit()
    if ( Trig_runSpell_Func006001() ) then
    call DisplayTextToForce( GetForceOfPlayer(ConvertedPlayer(udg_numsoul[1])), "TRIGSTR_1470" )
    else
    call DoNothing( )
    endif
    if ( Trig_runSpell_Func007001() ) then
    set udg_gsoul = false
    else
    call DoNothing( )
    endif
    if ( Trig_runSpell_Func008001() ) then
    return
    else
    call DoNothing( )
    endif
    call TriggerSleepAction( 1.00 )
    call PauseUnitBJ( true, udg_getsoul[1] )
    call SetUnitLifeBJ( GetTriggerUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit()) - ( ( GetUnitStateSwap(UNIT_STATE_MAX_LIFE, GetTriggerUnit()) + 2.00 ) / 3.00 ) ) )
    call AddSpecialEffectTargetUnitBJ( "chest", GetTriggerUnit(), "Abilities\\Spells\\Human\\DivineShield\\DivineShieldTarget.mdx" )
    call SetUnitInvulnerable( GetTriggerUnit(), true )
    call SetUnitOwner( udg_getsoul[1], Player(PLAYER_NEUTRAL_PASSIVE), true )
    call SetUnitOwner( udg_getsoul[2], ConvertedPlayer(udg_numsoul[1]), true )
    set udg_HeroCase[udg_numsoul[1]] = udg_getsoul[2]
    set udg_HeroCase[udg_numsoul[2]] = null
    call PanCameraToTimedLocForPlayer( ConvertedPlayer(udg_numsoul[1]), GetUnitLoc(udg_HeroCase[udg_numsoul[1]]), 1.00 )
    call PanCameraToTimedLocForPlayer( ConvertedPlayer(udg_numsoul[2]), GetUnitLoc(udg_HeroCase[udg_numsoul[1]]), 1.00 )
    call DisplayTimedTextToForce( GetPlayersAll(), 15.00, "TRIGSTR_1471" )
    call DisplayTimedTextToForce( GetPlayersAll(), 15.00, "TRIGSTR_1472" )
    call TriggerSleepAction( 40.00 )
    if ( Trig_runSpell_Func023001() ) then
    return
    else
    call DoNothing( )
    endif
    call SetUnitOwner( udg_getsoul[2], ConvertedPlayer(udg_numsoul[2]), true )
    call SetUnitOwner( udg_getsoul[1], ConvertedPlayer(udg_numsoul[1]), true )
    set udg_HeroCase[udg_numsoul[2]] = udg_getsoul[2]
    set udg_HeroCase[udg_numsoul[1]] = udg_getsoul[1]
    call SetUnitInvulnerable( udg_getsoul[1], false )
    set udg_gsoul = false
    call PauseUnitBJ( false, udg_HeroCase[udg_numsoul[1]] )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
    call PanCameraToTimedLocForPlayer( ConvertedPlayer(udg_numsoul[1]), GetUnitLoc(udg_HeroCase[udg_numsoul[1]]), 1.00 )
    call PanCameraToTimedLocForPlayer( ConvertedPlayer(udg_numsoul[2]), GetUnitLoc(udg_HeroCase[udg_numsoul[2]]), 1.00 )
    set udg_getsoul[1] = null
    set udg_getsoul[2] = null
    endfunction

    //=Khai báo dữ kiện=================//
    function InitTrig_Spell takes nothing returns nothing
    set gg_trg_Spell = CreateTrigger( )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Spell, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
    call TriggerAddCondition( gg_trg_Spell, Condition( function Trig_Spell_Conditions ) )
    call TriggerAddAction( gg_trg_Spell, function Trig_Spell_Actions )
    endfunction

    ---Hết, copyright by Mr.Atula :p Các bạn nhớ là phải convert to text nhé!
    Lưu ý nếu map nào có đấu võ đài phải lập thêm trigger cho tình huống người chơi cast phép khi đấu võ đài nữa nhé. Phép của tui trong này muốn xài Hero fải hy sinh 2/3 máu, điều khiển hero của tên kia trong 40 giây.
     
  7. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    Chính xác hơn là Game Interface. Sẵn trả nhời xong ask Mod box này cái.. sao bài trên tui soạn dài thế mà cộng có 1Mp vậy? >_<
     
  8. hacker_games

    hacker_games Mr & Ms Pac-Man

    Tham gia ngày:
    29/7/04
    Bài viết:
    133
    to hung_war3
    bác có thể chỉ cho tui cach de tao map defensive nha. tui xin cảm ơn trước nha
     
  9. Thedevilxn

    Thedevilxn Mayor of SimCity

    Tham gia ngày:
    1/1/04
    Bài viết:
    4,439
    Nơi ở:
    ................
    -Tui làm đơn giản lắm pa ko cần convert to text lun mà nó vẫn cooldown but nếu 1 con có chiêu này thì ok chứ 2 con cùng cast thì con cast sau sẽ trả lại con mượn cho người ta còn con đầu tiên cast thì nó xin luôn hero của người ta >:)

    ================Change of heart=======================
    -Tạo 1 ability dỏm có thể cast vô 1 unit (vd như frost nova chẳng hạn)
    -Tạo 1 variable player có array là 2 tui đặt là PC
    -Tạo 1 variable unit ko có array tui đặt là UC
    +Event:a unit begin casting an ability
    +Conditon:ability being cast equal to change of heart
    +Action:
    -Set UC=target unit of ability being cast
    -Set Pc[1]=Player owner of triggering unit
    -Set PC[2]=Player owner of target unit of ability being cast
    -Wait:0.5s-->Cái này dùng để bắt Ability cooldown nhằm tránh tình trạng tạo bug khiến ability ko có cooldown hoặc ko cast được
    +If level of Change of heart for triggering unit equal to 1 then do multiaction
    -Change owner of UC[2] to PC[1]
    -Wait:[time]
    -Change owner of UC[2] to PC[2]
    +If level of Change of heart for triggering unit equal to 2 then do multiaction....................
    -Rùi all done rùi đó ai muốn làm nhìu lv thì tự làm thêm nha tương tự vậy thôi :))
     
  10. DarkVoThan

    DarkVoThan Youtube Master Race

    Tham gia ngày:
    2/8/04
    Bài viết:
    50
    nhưng mấy đàn anh ơi khi up lên 1.16 war3 thì map editor của em khi kích vào để xây dựng không được nữa nó bị lỗi đòi cần cd rom đàn anh nào biết chỗ dow sửa map thì chỉ cho đàn em với và giúp giùm chỗ dow map trên mạng
     
  11. Thedevilxn

    Thedevilxn Mayor of SimCity

    Tham gia ngày:
    1/1/04
    Bài viết:
    4,439
    Nơi ở:
    ................
    :)) ko phải WE của u bị hư đâu mà nó cần crack của WE 1.15 đó vô www.gamerzplanet.com mà tìm down về crack file ra rùi copy vô là ok
     
  12. hunterxx

    hunterxx The Warrior of Light

    Tham gia ngày:
    27/5/04
    Bài viết:
    2,281
    Nơi ở:
    Krypton
    Cái đó fải có crack WE nocd 1.15 rồi paste đè len cái cũ của u mới dc, down ở www.w3vn.uni.cc(tìm ỏ mục DL)
    T_T map đâu gòi dragon???
     
  13. DuongKyMinh

    DuongKyMinh The Warrior of Light

    Tham gia ngày:
    13/5/03
    Bài viết:
    2,439
    Nơi ở:
    Đào Hoa Đảo
    Ừ há :-& Làm trigger kiểu coding riết tui lú.. Vậy là ko cần convert to text cũng được.. T__T Phí 2 tiếng đồng hồ gõ.. mún điên lun >:) But mún có 2 con Hero xài thì mình đặt aray rộng ra.. có sao đâu ^^
     
  14. steeldragon

    steeldragon Dragon Quest

    Tham gia ngày:
    15/2/04
    Bài viết:
    1,272
    Nơi ở:
    Helsinki, Finland
    àh, sorry, mấy hum nay đang mê Need for speed U :p . Tui up lên rồi, với lại mấy cái spell tui cũng ko rành lắm nên chỉ edit lại chừng 1 chục cái spell có sẵn và copy vài cái từ map cũ của tui sang thôi. Ông về làm dùm mấy cái spell lv6 đi nha, mỗi cái 2 level thôi 3 mạnh lắm
    tui cũng up lên 1 mấy cái spell sưu tầm từ wc3campaings ông về coi thử coi có cái nào hay thì edit vô map lun
    ông về cứ thư thả mà làm tới thứ 2 tuần sau up lên cho tui, nhưng mà ông ráng lo cho nốt phần hero nha, dạo này tui bận tối mặt lun, tùm lum chuyện hết, thôi ráng lo dùm phần hero lun nha. Xong tui làm upgrade cho
    Nhưng mà nhất thiết là map phải dưới 1mb khoản 700KB thôi
     

    Các file đính kèm:

  15. iloveyoubaby3000

    iloveyoubaby3000 Donkey Kong

    Tham gia ngày:
    12/10/03
    Bài viết:
    334
    Nơi ở:
    Thị Trấn MASARA!!!
    Cho tui hỏi là đã ra warcaft mới chưa , đã có bản đồ đấu tứơng mới chưa và chừng nào mới đến cuộc thi GAMEVN?
     
  16. hunterxx

    hunterxx The Warrior of Light

    Tham gia ngày:
    27/5/04
    Bài viết:
    2,281
    Nơi ở:
    Krypton
    mấy spell ông làm mà chỉ có mỗi 4 level hả mà mấy cái aura thì mạnh khiếp dc level 4 +12 armor???Tui fải edit lại và chỉnh tất cả melee lẫn custom level 5 hết gòi, để tui làm nốt hero chứ ông cho mấy spell vô chúng nó chán quá +_+......
    Hic mấy spell ông import tui có thể làm dc 1/2 chỗ đoá tin ko???Ok tui sẽ làm nốt hero cho
     
  17. steeldragon

    steeldragon Dragon Quest

    Tham gia ngày:
    15/2/04
    Bài viết:
    1,272
    Nơi ở:
    Helsinki, Finland
    oái, sao ông chỉnh lại chi vậy, tuỳ chiêu mà ta cho nó level 4 hay level 5 chứ cho level 5 hết thì thấy map hơi rập khuôn, ko hay ko hay. Tốt nhất là cho có cái lv4 lv5, ability lv 6 thì cho 2 level hoặc 3 level tuỳ theo con. VD strength thì 3 levels còn intell. thì 2 level còn agi. thì có thể 3 level ông cho con nào cũng 3 levels hết
    còn chuyện aura thì tui wên là đang làm map footman nên cho hơi lố ông chỉnh lại lun đi, spell tui làm tất cả chỉ là edit lại 1 số cái spell có sẵn thôi còn mấy cái spell trigger đang suy nghĩ (tui ko hay lắm về phần ý tưởng nên nghĩ hoài ko ra, pó tay T_T) để suy nghĩ rồi edit vô sau vậy
    Mấy cái map spell đó tui up lên cho ông coi tham khảo thôi (cho có thêm ý tưởng mà), àh riêng cái Fire Prinson thì phải có UMSWE thì mới làm đc, nếu ông thấy cái nào hay thì đưa nó vô hoặc bắt chước + thêm vào tí chút thì ra cái mới thôi
    Hì hì, tui ko rành lắm về spell nên chỉ edit lại thôi, ông chờ tui lo xong cái model xong tui qua ngâm cứu phần spell tạm thời thì ông cứ làm cho xong cái spell + hero đi +_+
    To iloveyoubaby3000: bạn nói cái gì tui ko hỉu, đây là forum map maker mà. Sẵn tui trả lời lun, cái chuyện war3 mới thì tui chỉ biết có FT thôi còn map mới thì lên maps.worldofwar.net mà search thì ra thôi. Còn giải gamevn mà u nói chắc là DDay tour gì đó phải ko, nếu phải thì có cả 1 topic chỉ rồi kìa
     
  18. Anaconde the Reaper

    Anaconde the Reaper T.E.T.Я.I.S

    Tham gia ngày:
    4/6/03
    Bài viết:
    622
    Nơi ở:
    The Twisting Nether
    To Mr.Atula:

    Spell mind control bạn làm cẩn thận lắm, nhưng có mấy cái sau đây cần sửa ngay:

    -Không rõ bạn dùng we bản nào, nhưng từ 1.13, không ai đi dùng event unit issued order targeting a unit trong trường hợp này. Thay cái đấy bằng EVENT_PLAYER_UNIT_SPELL_EFFECT (tức là unit starts the effect of an ability). Không nên dùng unit begins casting hay finishes casting (có lẽ tôi sẽ giải thích sau).

    -Actions: Bạn dùng triggersleepaction mà duration tới 40s, mà cái này lại tính theo thời gian thực. Trong mọi trường hợp, luôn dùng polledwait. Wait này tính theo gametime, do vậy sẽ chính xác hơn nhiều. Tất nhiên, wait thông thường vẫn dùng phổ biến với nhạc game và âm thanh.
    Tất cả variable bạn đều để global. Thông thường spell này luôn có 2 con dùng, như vậy sẽ xảy ra trường hợp là một con bị mind control ra đi vĩnh viễn (lỗi phổ biến). Nếu bạn định dùng array thì tất cả các variable của bạn cũng đều phải array (kể cả special effect). Mà khi đó sẽ xảy ra nhiều trường hợp đặc biệt (con này mind control con kia, sau đó dùng con kia mind control con khác nữa, chẳng hạn). Tốt hơn hết nên thay tất cả global variable bằng local variable. Cách này thì phải gõ trong custom text, và khi muốn sửa cũng phải làm trong custom text (hơi khó nhìn).
    Bạn quên mất cho tất cả các item của con bị mind control undroppable. Cái này thì cũng ko có vấn đề, cứ cho là con kia bị chôm hết đồ thì cũng chẳng seo. :))
     
  19. Thedevilxn

    Thedevilxn Mayor of SimCity

    Tham gia ngày:
    1/1/04
    Bài viết:
    4,439
    Nơi ở:
    ................
    -Hình như script thì có thể dùng cho nhìu con cast cùng 1 lúc mà (tui ko bít script but mí spell script spell nào cũng xịn hết áh)
    -Cái vụ item undropdable thì tui có làm còn DKM thì ko vì hắn hy sinh máu unit bị cast
    -Unit start the effect of an ability -->cái này tui ko rành cách xài chủ yếu là xài unit begin casting an ability thôi
     
  20. hunterxx

    hunterxx The Warrior of Light

    Tham gia ngày:
    27/5/04
    Bài viết:
    2,281
    Nơi ở:
    Krypton
    To dragon
    Hic cũng ko hỉu tại sao mấy spell ông làm mạnh dữ ạ, tui chỉnh lại đoá hết cả
    Chắc là từ map cũ của ông chứ gì???
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này