Topic hỏi đáp về cách làm map | version 10

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

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. 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
    @ Tom : thế còn cái scope Multiboard của e anh ơi, lỗi ở đâu nhỉ
    mà cái fatal error trigger thường do j hả anh ?

    Mã:
    public function Init takes nothing returns nothing
        local trigger a = CreateTrigger() // tao bang
        local trigger b = CreateTrigger() // creeping
        local trigger l = CreateTrigger() // player left
        local trigger t = CreateTrigger() // dem thoi gian
        local trigger k = CreateTrigger() // giet -> chan creep, tuong, cong exp
        local integer i
       // call TriggerRegisterTimerEvent(t,1,true)
        //call TriggerAddAction(t,function time)
        //set i = 1
        //loop
        //    exitwhen i > 10
        //    call TriggerRegisterPlayerEventLeave( l, Player(i) )
        //    set i = i + 1
        //endloop
        //call TriggerAddAction(l,function leftact)
        //call TriggerRegisterAnyUnitEventBJ(k,EVENT_PLAYER_UNIT_DEATH)
        //call TriggerAddCondition(k,Condition(function killcond))
        //call TriggerAddAction(k,function killact)
        //call TriggerRegisterTimerEvent(a,0.1,false)
        //call TriggerAddAction(a,function create)
        
        //call TriggerSleepAction(0.3)
        //call DestroyTrigger(a)
        set t = null
        set a = null
        set b = null
        set l = null
        set k = null
    endfunction
    phát sinh lỗi ở đây, nhg k hiểu, chả lẽ do local :o
     
    Chỉnh sửa cuối: 16/6/11
  2. ThanatoUltimate

    ThanatoUltimate Youtube Master Race

    Tham gia ngày:
    2/4/09
    Bài viết:
    19
    @zzchaolegionzz Máy chưa reg war3 nên thế đấy. Thử chạy file .reg trong thư mục đó rồi thử lại xe sao. Không đc thì buộc phải download cái setup của war3 về thôi bạn ạ.
     
  3. ZhengHe

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

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Mã:
    DestroyEffect(AddSpecialEffect("", x, y))
    Cho hỏi tại sao các effect tạo bằng jass tại sao ko hiện ra??
     
  4. ragnarok17

    ragnarok17 Youtube Master Race

    Tham gia ngày:
    14/4/11
    Bài viết:
    5
    Ai chỉ mình viết câu lệnh để đợi 1 unit đánh xong 5 lần mới thực hiện 1 lệnh khác với !!!
     
  5. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    @Dark Gamer, nếu bỏ comment thì lỗi? anh ko nghĩ trong "init function" có thể dùng "call TriggerSleepAction(0.3)" ngoài cái đó ra thì chưa thấy chỗ nào "lạ" cả

    ngoài ra trigger "a" ko nên destroy luôn, nếu destroy luôn thì sao nó chạy đc

    còn tùy effect, khi "add" và "destroy" luôn như vậy thì effect sẽ sử dụng animation "death", nếu ko có thì sẽ là "birth" (nếu chỉ có 1 animation thì ko nói)
    và vì vậy, giả sử 1 effect có animation "stand" và "death", và chỉ thấy nó khi "stand" vậy với lệnh trên, effect này sẽ "death" nên ko nhìn thấy

    ví dụ: effect Abilities\Spells\Orc\AncestralSpirit\AncestralSpiritCaster.mdl có "Birth, Stand, Death", nhg chỉ thấy nó khi "Birth", nếu dùng lệnh trên thì nó sẽ "Death" luôn => ko thấy effect

    cách giải quyết thì... dùng wait (hoặc timer): add effect -> wait/timer -> destroy effect

    Mã:
    function DestroySFXWait takes effect e, real dur returns nothing
        call PolledWait(dur)
        call DestroyEffect(e)
    endfunction
    
    
    sử dụng hàm trên: truyền vào effect cần destroy và thời gian chờ
    ngoài ra phải thêm .execute (chỉ JassNewGen mới có):

    Mã:
    call DestroySFXWait[B].execute[/B]( AddSpecialEffect("", x, y), 10. )
    .execute làm cho hàm chạy ở một "luồng" (thread) khác do đó wait ko ảnh hưởng tới các lệnh đang chạy
     
    Chỉnh sửa cuối: 16/6/11
  6. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Của bạn đây, mình chỉ làm giúp bạn vài thứ mình biết.
    Link: http://www.mediafire.com/?9youbwuuz46z9f8
    - Unit 2 Force đi của Mid đã đi vào đường mòn cong của khu rừng
    - Vụ EXP phạm vi 700 range mình pó tay :|
    - Bảng điểm đã như yêu cầu
    - Map bạn như DotA và X Hero thì sao, phần team 3 là thế nào, mình đọc ko hĩu ý là gì zzz
    - Mini map là sao, nối 2 map lại như Map Camp của Rexxar Orc à, nếu là vậy thì mình chịu
    - Rohan theo ý bạn, nếu Rohan ra khỏi vùng nước sẽ trở vào lại vùng nước và hồi phục 100% máu, nếu Rohan die thì sau 300 giây sẽ hồi sinh 1 Rohan khác trong vùng nước.
    - Creep rừng mình đã làm cho 1 vùng sẵn, bạn vào coi và làm tương tự cho các vùng còn lại, mình random creep cho bạn từ Ashven > VillageFall
    - Tôi tìm mãi ko ra cái Phù nào trong map, nên tôi làm thẳng 1 cái item Return Tree thay cho Phù của bạn, nó cũg có tác dụng di chuyển về Tree Eternity
     
  7. 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
    @Tom : thế e mới bó tay chứ, nhưng đằng này e cho disable cả cái đoạn ấy rùi mà vẫn lỗi, pó tay luôn. mà e đập đt rồi, mất số của anh ùi, anh nháy lại đi, dạo này mất tăm kinh vãi, bận gì thế @@
    destroy luôn vì nó chạy lúc 0.1s , e nghĩ chạy xong destroy lun chứ để chả làm gì cả. k thì cho vào function action destroy GetTriggeringTrigger là được
    hôm nào e qua anh hỏi phát nhé :X

    @ZhengHe : ngoài ra bạn phải để ý cái đường dẫn của nó, ví dụ bt có dòng "Abilities\Spells\Orc\AncestralSpirit\AncestralSpiritCaster.mdl" thì bạn phải đổi lại "Abilities\\Spells\\Orc\\AncestralSpirit\\AncestralSpiritCaster.mdl" ( Đừng hỏi vì sao vì jass nó là như thế :| )

    @rag : làm 1 trigger
    1 varible integer Count = 0

    Mã:
        Events
            Unit - A unit Is attacked
        Conditions
            (Attacking unit) Equal to // Unit cần
        Actions
            Set Count = (Count + 1)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    Count Greater than or equal to 5
                Then - Actions
                    Set Count = 0
                    Trigger - Run // Trigger cần chạy// (ignoring conditions)
                Else - Actions
     
    Chỉnh sửa cuối: 16/6/11
  8. goldviper

    goldviper Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    7/1/10
    Bài viết:
    743
    Nơi ở:
    Tổ dân phố
    cho mình hỏi làm sao để cho dummy đi xuyên qua được cái "nền đen" , mình tạo spell slice cho Hero thì được nhưng với dummy ( base là con wisp) thi lại ko được , đến miền ngăn cách là nó bị khựng lại hoặc di chuyển dọc theo miền ngăn cách rất khó chịu :|
    Đây là 1 ví dụ về trigger khởi tạo của mình , mọi người xem qua ko biết có thiếu cái hàm nào ko :(
    Mã:
        Events
            Unit - A unit Starts the effect of an ability
    
        Conditions
            (Ability being cast) Equal to Shockwave 
    
        Actions
            Actions
        Set Casterabc = (Casting unit)
        Set LevelInteger = (Level of Shockwave  for Casterabc)
        Set ShockwavePoint[0] = (Position of Casterabc)
        Set Pointabc = (Target point of ability being cast)
        Set Angle = (Angle from ShockwavePoint[0] to Pointabc)
        Set Realabc = ((75.00 x (Real(LevelInteger))) + (Real((Strength of Casterabc (Include bonuses)))))
        Set ShockwavePoint[3] = (ShockwavePoint[0] offset by (650.00 + (100.00 x (Real(LevelInteger)))) towards Angle degrees)
        Unit - Create 1 Shockwave ( dummy ) for (Owner of Casterabc) at ShockwavePoint[0] facing Angle degrees
        Set Dummyabc = (Last created unit)
        Unit - Pause Dummyabc
        Unit - Turn collision for Dummyabc Off // mình đã thêm dòng này để giúp nó đi xuyên qua mà vẫn ko được.
        Wait 0.50 seconds
        Trigger - Turn on SW Move <gen>
        Trigger - Turn on SW KnockBack <gen>
    
    @rag : cách của bạn DarkGamer thì cũng ko có gì sai về lí thuyết nhưng vẫn chưa thuyết phục lắm , bạn nên dùng hàm trigger unit take damage (như kiểu mấy spell autocast ý) để check việc nó có nhận dam hay ko rồi mới set biến Count = Count + 1 .
     
    Chỉnh sửa cuối: 16/6/11
  9. doan_hao15

    doan_hao15 Youtube Master Race

    Tham gia ngày:
    28/8/10
    Bài viết:
    63
    Cho hỏi
    Wait 2.00 seconds.
    Wait 2.00 game-time seconds.
    khác nhau ở chỗ nào? Tại sao dùng Wait 2.00 seconds thì thoải mái còn dùng Wait 2.00 game-time seconds hay bị lỗi trigger?
     
  10. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    > Wait 2.00 seconds.: thời gian thực
    > Wait 2.00 game-time seconds.: thời gian "game"

    nếu có lag, drop gì gì thì "game-time" sẽ dừng còn "thực" không dừng

    còn việc:
    thì bạn nghe ai nói vậy? :-/

    giờ biết 2 cái này khác nhau thế nào rồi thì tự biết câu trả lời nhỉ?
     
  11. letuan87bk

    letuan87bk Youtube Master Race

    Tham gia ngày:
    15/1/09
    Bài viết:
    81
    Mình tạo 1 custom item ability trên nền ability bonnus amor và gán các giá trị
    Khi gán ability này cho item và mọi thứ diễn ra tốt đẹp: hero mang item có effec cục băng bao quanh người. Tuy nhiên khi mình đổi lại cái Art-Target Attachment Point sang vị trí là origin thì khi load game test thử, hero cầm item mà chả thấy hiệu ứng cục băng đâu. Ai biết nguyên nhân chỉ mình cách khắc phục với.

    Ngoài ra cũng có rất nhiều model khác khi chọn ở mục Art target nhưng đều không hiển thị khi vào game hoặc chỉ hiển thị vài giây sau đó hết luôn (như cái doodad/eye of sargeras hay cái missile Death Tower...), không biết có quy tắc nào khi chọn Art target không ?
     
  12. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Với loại mà "dán" 1 model duy nhất lên creep thì nên làm từ những dạng spell AURA có sẵn của WE ( cánh cho vô đây tốt nhất), còn "dán" 2 hoặc nhiều model thì dùng spell SPHERE ( 3 cục lửa bay trên đầu) của con Blood Mage ( loại này cho các trượng hợp 2 tay sáng lên như Bloodlust hay 2 chân sáng lên của Dday).
     
  13. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    lạ nhỉ, mình thấy nó hiện ra mà
    [​IMG]

    quy tắc thì theo tôi biết ko có quy tắc nào, tuy nhiên có một chú ý sau:

    một số model khi chọn xong, ở đường dẫn của nó sẽ ko có .mdx (ví dụ: Eye of Sargeras: Doodads\Cinematic\EyeOfSargeras\EyeOfSargeras)
    nên bạn phải thêm .mdx vào đường dẫn này (dòng "Custom") (ví dụ: Eye of Sargeras: Doodads\Cinematic\EyeOfSargeras\EyeOfSargeras.mdx)

    [​IMG]
     
    letuan87bk thích bài này.
  14. letuan87bk

    letuan87bk Youtube Master Race

    Tham gia ngày:
    15/1/09
    Bài viết:
    81
    Cám ơn ban Kazansky, tớ làm theo và ok rồi, thành quả nè :D
    [​IMG]

    Cho tớ hỏi thêm

    Cái effct của Charm (ability) tớ cũng muốn dùng cho item như mấy cái kia nhưng khi vào game, nó chỉ xuất hiện 1 lần khi hero nhặt item đó xong rồi hết luôn, làm sao để nó duy trì effect đó liên tục được ?

    Tớ làm skill multishot theo như cái tut này
    http://world-editor-tutorials.thehelper.net/mshot.php
    vào game chạy ngon lành rồi nhưng muốn edit nó giống như skill bắn split shot của Medusa trong dota ý, nghĩa là damg tính theo % damg của hero chứ không phải là 1 giá trị fixe như thế này
     
  15. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    effect của "Charm" không "lặp" nên nó chỉ hiện một lần (muốn nó lặp thì phải edit model, đây lại là vụ khác :-??)

    split shot thì:
    • tạo 1 custom ability từ "Defend", bỏ requirement, chỉnh level và chỉnh Data - Damage Dealt theo giá trị mong muốn( 1.00 = 100%)
    • tạo 1 custom ability từ Barrage (để có Multishot như trong tutorial trên)
    • cho hero sử dụng ability "Defend"

    vào trigger editor, tạo trigger:
    Mã:
    Splitshot
        Events
            Unit - A unit Is issued an order with no target
        Conditions
            (Level of Defend for (Triggering unit)) Greater than 0
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (Issued order) Equal to (Order(defend))
                Then - Actions
                    -------- turn on Defend --------
                    Unit - Add Barrage to (Triggering unit)
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (Issued order) Equal to (Order(undefend))
                Then - Actions
                    -------- turn off Defend --------
                    Unit - Remove Barrage from (Triggering unit)
                Else - Actions
    
    trong trigger trên, thay Defend,Barrage bằng Defend/Barrage của bạn
     
  16. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Các pro cho hỏi, mình muốn làm 1 spell = trigger mà muốn sử dụng spell đó, nhất định phải là trời tối mới đc dùng, còn trời sáng thì vô tác dụng.
     
  17. goldviper

    goldviper Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    7/1/10
    Bài viết:
    743
    Nơi ở:
    Tổ dân phố
    Mình đã thử thay base dummy là wisp = hero thì lại có thể đi qua nền đen được :o Tiện đây mình hỏi luôn là base dummy là con gì cũng ảnh hưởng đến trigger ư :-?
    Nữa là công thức tính mấy cái hp regen vs mana regen.
    vd : unholy aura có 100% hp regen , vậy là bao hp /s
    brilliant aura có 100% mana regen , vậy là bao mp /s
     
  18. 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
    @gold : 100% cộng thêm số HP regen của quân ấy thêm 1 lần
    ví dụ 1 unit có HP regen ( trong F6 ) là 3 life/s , được 100% sẽ thành 6 life/s
    1 hero có HP regen là 2 hp/s, str 30, mỗi str cộng 0.2hp/s -> 2 + 30x0.2 = 8hp/s -> 16hp/s

    @Flame :
    Conditions
    (In-game time of day) Greater than or equal to 6.00
    (In-game time of day) Less than or equal to 18.00
     
  19. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    cho hỏi xài Custom Script nào để check player 1 có phải là Observer không ?
    sẳn hỏi thêm Compatibility trong UMWSE tác dụng là gì :-?? và trigger Image củng tác dụng là gì :-s
     
  20. doan_hao15

    doan_hao15 Youtube Master Race

    Tham gia ngày:
    28/8/10
    Bài viết:
    63
    Cho hỏi khi dung lượng map wá lớn không thể chạy được chế độ hai người chơi trở lên thì phải sử lý thế nào?
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này