Topic hỏi đáp (tập 4) về cách làm map

Thảo luận trong 'World Editor' bắt đầu bởi Tom_Kazansky, 19/2/10.

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

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Em vừa mới down 1 map Diablo 3 warcraft, trong phần trigger ko thấy trigger nào mà chỉ thấy 1 file map .w3x, vậy là sao ?? làm sao để xem code của map đó ??
     
  2. Tordas Windfang

    Tordas Windfang Youtube Master Race

    Tham gia ngày:
    31/8/09
    Bài viết:
    77
    Người ta protect map rồi thì sao mà xem đc ? Có cố cũng chả xem đc :-j.
    Mà đây là vấn đề deprotect, post lên đây làm gì :-ss.
     
  3. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Vậy cho hỏi cách làm skill dash đến vị trí đã định, dùng cách slide của anh Tom thì chỉ bay đến 1 khoảng nào đó thôi chứ ko xác định rõ đc. Thanks
     
  4. kissofaries

    kissofaries Dragon Quest

    Tham gia ngày:
    11/3/07
    Bài viết:
    1,463
    Nơi ở:
    Kalimdor
    Bạn hướng dẫn cụ thể chút ko, mình ko hiểu lắm :(
     
  5. Ice_water

    Ice_water Dragon Quest

    Tham gia ngày:
    11/1/07
    Bài viết:
    1,457
  6. 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,284
    Làm sao để summon 2 con khác loại như Demonic Summoning trong DotA được các bạn nhỉ? với cả cái chiêu Doom và sở hữu item riêng cho từng người nữa :">
     
  7. quanganh1109

    quanganh1109 Youtube Master Race

    Tham gia ngày:
    5/2/07
    Bài viết:
    44
    Em làm 1 skill kiểu như Rupture của bloodseeker trong DOTA code như thế này đc. k anh
    PHP:
    // A0LH = Rupture
    function Trig_Bloodseeker_Spell_Rupture_Conditions takes nothing returns boolean
        
    if(not (GetSpellAbilityId()=='A0LH'))then
            
    return false
        
    endif
        return 
    true
    endfunction

    // A0LH = Rupture
    function oIoI takes nothing returns nothing
        local timer t
    =GetExpiredTimer()
        
    local string fTT=H2S(t)
        
    local unit ojj=GetStoredDTAXUnit(fTT,"RuptureCaster")
        
    local unit oJJ=GetStoredDTAXUnit(fTT,"RuptureTarget")
        
    local location okk=GetStoredDTAXLocation(fTT,"RuptureOldLoc")
        
    local location oKK=GetUnitLoc(oJJ)
        
    local real n66=.2*GetUnitAbilityLevel(ojj,'A0LH')*DistanceBetweenPoints(okk,oKK)
        if(
    n66>200)then
            set n66
    =0
        
    endif
        if(
    n66>5)then
            call DestroyEffect
    (AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl",oJJ,"origin"))
        endif
        if(
    n66>0)then
            call UnitDamageTargetBJ
    (ojj,oJJ,n66,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC)
        endif
        
    call RemoveLocation(okk)
        
    call StoreDTAXObject(fTT,"RuptureOldLoc",oKK)
    endfunction

    // A0LH = Rupture
    // e01R = Buff Placer
    // A0NH = Rupture Buff
    function Trig_Bloodseeker_Spell_Rupture_Actions takes nothing returns nothing
        local unit ojj
    =GetTriggerUnit()
        
    local unit oJJ=GetSpellTargetUnit()
        
    local location oLL=GetUnitLoc(oJJ)
        
    local integer Jhh=GetUnitAbilityLevel(ojj,'A0LH')
        
    local timer t=CreateTimer()
        
    local string fTT=H2S(t)
        
    local unit MQQ
        call UnitDamageTargetBJ
    (ojj,oJJ,50+100*Jhh,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC)
        
    call StoreDTAXObject(fTT,"RuptureCaster",ojj)
        
    call StoreDTAXObject(fTT,"RuptureTarget",oJJ)
        
    call StoreDTAXObject(fTT,"RuptureOldLoc",oLL)
        
    call TimerStart(t,.25,true,function oIoI)
        
    set MQQ=CreateUnit(GetOwningPlayer(oJJ),'e01R',0,0,bj_UNIT_FACING)
        
    call UnitAddAbility(MQQ,'A0NH')
        
    call PolledWait(3+(2*Jhh))
        
    call RemoveUnit(MQQ)
        
    call UnitRemoveAbility(oJJ,'B067')
        
    call PauseTimer(t)
        
    call PolledWait(1)
        
    call FlushStoredMissionShell(fTT)
        
    call DestroyTimer(t)
    endfunction

    function StartTrigger_Bloodseeker_Spell_Rupture takes nothing returns nothing
        set gg_trg_Bloodseeker_Spell_Rupture
    =CreateTrigger()
        
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Bloodseeker_Spell_Rupture,EVENT_PLAYER_UNIT_SPELL_EFFECT)
        
    call TriggerAddCondition(gg_trg_Bloodseeker_Spell_Rupture,Condition(function Trig_Bloodseeker_Spell_Rupture_Conditions))
        
    call TriggerAddAction(gg_trg_Bloodseeker_Spell_Rupture,function Trig_Bloodseeker_Spell_Rupture_Actions)
    endfunction

    function InitTrig_Bloodseeker_Spell_Rupture takes nothing returns nothing
    endfunction
     
  8. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Ai chỉ giúp cái này đi:
    Dạo này ít người post bài trả lời quá, mà số người hỏi càng tăng
     
  9. [E]ris[Y]uki

    [E]ris[Y]uki Mr & Ms Pac-Man

    Tham gia ngày:
    13/6/09
    Bài viết:
    207
    Có ai biết cách chỉnh vị trí skill khi đã học không em để ulti học xong nó bay lên đứng trên skill 2 à.
     
  10. 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,284
    Bạn cần tọa độ XY để xác định vị trí của nó. Trong phần Object, 2 dòng dưới đây nằm đầu tiên (vị trí bình thường). 4 cái tiếp theo là tọa độ vị trí cái spell khi Research(Vị trí spell khi ta bấm O để vào học) và Turn Off (Đối với Autocast)

    Art - Button Position Normal (X)
    Art - Button Position Normal (y)


    Bạn có thể xem hình dưới để hình dung:
    [​IMG]
    Chẳng hạn với 1 spell bạn muốn nó nằm ở ngay vị trí đầu tiên. Thì:

    Art - Button Position Normal (X): 0
    Art - Button Position Normal (y): 2

    Art - Button Position Research (X): 0
    Art - Button Position Research (y): 0
     
    Chỉnh sửa cuối: 29/4/10
  11. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    @anh Rex: Item Ice Revenant Summon 'AIir' > Summon unit với 2 Type.
    Còn vụ "sở hữu item riêng cho từng người" thì đợi em chút, nhớ ngày xưa có cái Tut của anh Tom, để em tìm lại xem sao.

    -----

    À đây rồi, em tìm thấy map rồi. Giờ em kô có nhiều thời gian giải thích lắm nhưng mà em sẽ hướng dẫn anh cách dùng cái System này.
    Trong Trigger 'IOR Get Item Cost' thì anh set số tiền mua của các Items vào đây.
    Trigger 'Get Muted Version' là anh set các Items "fake" khi mà một Player khác nhặt vào (Item kô có tác dụng gì cả). Ngược lại với trigger 'Get non Muted Version', đây là trigger để anh set Items "thật" vào.
    Btw... anh nên để các Items thuộc loại "Miscellaneous" thì mới dùng đc cái System này (nếu kô muốn edit cái system này).

    http://www.thehelper.net/forums/showpost.php?p=948165&postcount=9 >> Link Tutorial của anh Tom.

    @ZhengHe: Cái SlideDistance thì bằng tổng distance từ caster tới target point chia cho tick.
    Mã:
    Set SlideDistance = (Distance between (Position of Caster) and TargetPoint) / SlideTick
    Cứ như thế mà áp dụng vào.
     

    Các file đính kèm:

    Chỉnh sửa cuối: 28/4/10
  12. 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,284
    Anh thấy cái trigger mỗi 0.01 giây pịc hết player như vậy có sao ko? ANh set biến rồi destroy như này có được ko nhỉ?
    [​IMG]
     
  13. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    @Game_war48: nếu muốn cho hero slide với cùng vận tốc thì sao ??
     
  14. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    @anh Rex: Tùy thôi, vào map thì anh Edit lại, chỉ pick những players cần dùng và destroy (thì càng tốt).
    @ZhengHe: SlideDistance đc set ngay từ trigger "Start" ấy, chứ kô phải Set ở phần Timer, set ở Timer là bị lỗi.
    Mã:
    Set SlideDistance = (Distance between (Position of Caster) and TargetPoint) / TotalTick
     
  15. kissofaries

    kissofaries Dragon Quest

    Tham gia ngày:
    11/3/07
    Bài viết:
    1,463
    Nơi ở:
    Kalimdor
  16. [E]ris[Y]uki

    [E]ris[Y]uki Mr & Ms Pac-Man

    Tham gia ngày:
    13/6/09
    Bài viết:
    207
    Thanks anh Rex nhìu.
    Em hỏi luôn chỉnh max lvl của hero ở chỗ nào vậy, chỉnh luôn cả lvl khi vào game của hero nữa chứ???
     
  17. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    @Game_war48: nếu anh set vận tốc như trên thì khi chọn target point càng xa thì chạy càng nhanh, chọn càng gần chạy càng chậm.
     
  18. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    có khoảng cách, có tốc độ, có thời gian, chả nhẽ không tính toán theo ý thích được 8-}

    http://forum.gamevn.com/showpost.php?p=9847716&postcount=17 <--- bài viết này không ăn thua ?
     
  19. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    em vận ko hỉu cái công thức cho lắm (dốt toán) anh Tom chỉ giúp em :D
     
  20. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    Muốn move cố định theo một speed (khoảng cách mỗi lần move) thì lấy tổng khoảng cách (từ caster đến target point) chia cho speed sẽ ra đc tick. Giả sử speed là 50:
    Mã:
    Set SlideTick = (Distance between (Poisition of Caster) and TargetPoint) / 50
    (Và tất nhiên là ở trigger "Start").
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này