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

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

  1. Meepolisk

    Meepolisk Donkey Kong

    Tham gia ngày:
    8/2/08
    Bài viết:
    336
    ^ nó dùng trigger, chứ k chỉnh cái gì trong object cả
     
  2. Drakkar Knight

    Drakkar Knight Mr & Ms Pac-Man Lão Làng GVN

    Tham gia ngày:
    13/11/11
    Bài viết:
    269
    Nơi ở:
    Hà Nội
    Sao map của em lúc mới vào game nó rất lag (trong 3 giây). Em nghĩ là do Trigger có Event - Time Elapsed nhiều quá nhưng chỉnh gần hết thành Map Initialization thì nó vẫn thế. Bác nào biết là do nguyên nhân nào ko?
     
  3. Handsomeboss

    Handsomeboss Youtube Master Race

    Tham gia ngày:
    30/5/10
    Bài viết:
    68
    Nơi ở:
    Hồ Chí Minh
    đây tui rảnh nên làm map demo cho bạn đây, http://www.mediafire.com/?b511878j55vume1

    - - - Updated - - -

    Vậy bạn nên kể ra thêm bạn cho loại actions gì chạy vào 3 giây đầu tiên. Thường lag là do create Heroes, units custom không có trong map. Bạn muốn khắc phục thì chỉ cần đặt tụi nó vào map trước, xong chỉnh một trigger - event map installation - actions - remove tụi nó đi là xong.
     
  4. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Muốn xác định 1 unit có khoảng cách ngắn nhất tới 1 điểm so với các unit khác thì làm thế nào?
     
  5. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    gọi unit đó là U, điểm kia là P, khoảng cahs P-U là D

    pick các unit xung quanh P với bán kính = D (thêm điều kiện nếu cần)
    • đếm số unit trong group này, nếu = 1 (tức là chỉ có mỗi unit U) => U là unit gần điêm P nhất
    • tìm unit gần điểm P nhất nếu ko phải là U:
      • lặp qua group trên, gọi picked unit là A
      • so sánh khoảng cách P-A với D
      • bằng thì không làm gì cả
      • nhỏ hơn thì: đặt U = A, D = P-A
      • sao loop thì U là unit gần điểm P nhất.


    chỉnh thống số của attack theo unit Gryphon Rider (Human) hay Glaive Thrower (Night Elf)

    cái "bắn xuyên" này có AoE như hình chữ nhật, tính từ target

    Combat - Attack # -
    • Area of Effect Targets: các mục tiêu mà "bắn xuyên" có thể tác dụng vào
    • Damage Loss Factor: lượng damage bị mất qua mỗi mục tiêu (theo %, 0.25 = 25%)
    • Damage Spill Distance: khoảng cách của "bắn xuyên"
    • Damage Spill Radius: độ rộng của "bắn xuyên"

    hiệu ứng trên mỗi unit bị dính cái "bắn xuyên" này nằm ở Art - Target (của unit này)

    như TA thì cái "Spill Distance" có sẵn 0, dùng Upgrade để tăng cái này (xem upgrade Storm Hammers hay Vorpal Blades)
     
    Chỉnh sửa cuối: 12/1/13
  6. heroes1412

    heroes1412 Youtube Master Race

    Tham gia ngày:
    4/8/06
    Bài viết:
    57
    Làm thế nào để khi 1 Worker dc tạo ra, order cho nó chặt cái cây gần nó nhất????????????
     
  7. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Create quá nhiều unit trong một khoảng thời gian,trong các vòng lặp có vấn đề khiến nó không thể "kết thúc" vòng lặp .v.v. là một trong số các nguyên nhân gây ra lag
     
  8. 1251992

    1251992 The Warrior of Light Lão Làng GVN

    Tham gia ngày:
    16/9/07
    Bài viết:
    2,072
    Nơi ở:
    Mjölby, Sweden
    bác cho em hỏi nếu mình thay sound unit của dota và map hiện giờ là 6.77 nếu map 6.77b ra thì sound của mình vẫn còn hay bị thay đổi lại hả bác
     
  9. bahomao12345

    bahomao12345 Mr & Ms Pac-Man

    Tham gia ngày:
    9/6/12
    Bài viết:
    111
    Làm cách nào để moị người cùng team ko thể giết nhau. Em test map mà khi chọn nhân vật, nó toàn tự đánh đồng đội và con chuột biến thành màu đỏ. Làm sao để hết tình trạng này?
     
  10. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Trong JNG hoặc WE,trên thanh menu chọn Scenario/Player Properties chọn mục Forces,Add thêm Force,chia các Player theo team như ý muốn.

    Không can thiệp trigger thì các Player trong cùng một Force không thể thành địch của nhau.

    Muốn các unit không tấn công được nhau thì add thêm trigger

    Mã:
    Melee Initialization
        Events
            Unit - A unit Is attacked
        Conditions
            ((Triggering unit) belongs to an ally of (Owner of (Attacking unit))) Equal to True
        Actions
            Unit - Order (Attacking unit) to Stop
    
     
  11. Drakkar Knight

    Drakkar Knight Mr & Ms Pac-Man Lão Làng GVN

    Tham gia ngày:
    13/11/11
    Bài viết:
    269
    Nơi ở:
    Hà Nội
    Em tải 1 map demo Kill Streak bên Hiveworkshop và sửa lại 1 ít cho phù hợp. Nhưng khi vào game thỉnh thoảng nó lại hiện liên tiếp thế này (quả này phải hiện Ultra Kill mới đúng):

    [​IMG]

    Đây là trigger, các bác xem giùm em bị lỗi ở chỗ nào ạ:

    [SPOIL]
    Mã:
    Spree
        Events
            Time - Elapsed game time is 0.00 seconds
        Conditions
        Actions
            Set SpreeNextKillMaximumTimer = 10
    [/SPOIL]

    [SPOIL]
    Mã:
    Die
        Events
            Unit - A unit Dies
        Conditions
            ((Dying unit) is A Hero) Equal to True
            ((Dying unit) belongs to an enemy of (Owner of (Killing unit))) Equal to True
            (Owner of (Killing unit)) Not equal to Player 11 (Dark Green)
            (Owner of (Killing unit)) Not equal to Neutral Hostile
            (Owner of (Dying unit)) Not equal to Player 11 (Dark Green)
            (Owner of (Dying unit)) Not equal to Neutral Passive
        Actions
            Set SpreeInteger[(Player number of (Owner of (Killing unit)))] = (SpreeInteger[(Player number of (Owner of (Killing unit)))] + 1)
            Set SpreeInteger[(Player number of (Owner of (Dying unit)))] = 0
            Set SpreeNextKill[(Player number of (Owner of (Killing unit)))] = (SpreeNextKill[(Player number of (Owner of (Killing unit)))] + 1)
            Set SpreeTimer[(Player number of (Owner of (Killing unit)))] = SpreeNextKillMaximumTimer
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    MakeKill Equal to True
                Then - Actions
                    Set KillPoints[(Player number of (Owner of (Killing unit)))] = (KillPoints[(Player number of (Owner of (Killing unit)))] + 1)
                    Set KillingSpree[(Player number of (Owner of (Killing unit)))] = (KillingSpree[(Player number of (Owner of (Killing unit)))] + 1)
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    FirstBlood Equal to False
                    (Owner of (Killing unit)) Not equal to (Owner of (Dying unit))
                    ((Dying unit) is A Hero) Equal to True
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· giµnh ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + (First Blood  + (ColorEnd + (+200 vµng))))))
                    Player - Add 200 to (Owner of (Killing unit)) Current gold
                    Sound - Play firstblood <gen>
                    Set FirstBlood = True
                Else - Actions
                    Trigger - Remove (This trigger) from the trigger queue
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeInteger[(Player number of (Owner of (Killing unit)))] Equal to 3
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· ®¹t ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + Killing Spree)))
                    Sound - Play Killing_Spree <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeInteger[(Player number of (Owner of (Killing unit)))] Equal to 4
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· ®¹t ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + Dominating)))
                    Sound - Play Dominating <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeInteger[(Player number of (Owner of (Killing unit)))] Equal to 5
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· ®¹t ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + Mega Kill)))
                    Sound - Play MegaKill <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeInteger[(Player number of (Owner of (Killing unit)))] Equal to 6
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· ®¹t ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + Unstoppable)))
                    Sound - Play Unstoppable <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeInteger[(Player number of (Owner of (Killing unit)))] Equal to 7
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· ®¹t ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + Whicked Sick)))
                    Sound - Play WhickedSick <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeInteger[(Player number of (Owner of (Killing unit)))] Equal to 8
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· ®¹t ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + Monster Kill)))
                    Sound - Play MonsterKill <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeInteger[(Player number of (Owner of (Killing unit)))] Equal to 9
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· ®¹t ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + God Like)))
                    Sound - Play GodLike <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeInteger[(Player number of (Owner of (Killing unit)))] Greater than or equal to 10
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playername[(Player number of (Owner of (Killing unit)))] + ( ®· ®¹t ®­îc  + (Playercolor[(Player number of (Owner of (Killing unit)))] + (Beyond God Like! + (ColorEnd + !!! Ai cã thÓ ®¸nh b¹i h¾n?)))))
                    Sound - Play HolyShit <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeNextKill[(Player number of (Owner of (Killing unit)))] Equal to 2
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playercolor[(Player number of (Owner of (Killing unit)))] + (Double Kill + (ColorEnd + ( cho  + Playername[(Player number of (Owner of (Killing unit)))]))))
                    Sound - Play Double_Kill <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeNextKill[(Player number of (Owner of (Killing unit)))] Equal to 3
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playercolor[(Player number of (Owner of (Killing unit)))] + (Triple Kill + (ColorEnd + ( cho  + Playername[(Player number of (Owner of (Killing unit)))]))))
                    Sound - Play triple_kill <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeNextKill[(Player number of (Owner of (Killing unit)))] Equal to 4
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playercolor[(Player number of (Owner of (Killing unit)))] + (Ultra Kill + (ColorEnd + ( cho  + Playername[(Player number of (Owner of (Killing unit)))]))))
                    Sound - Play UltraKill_4 <gen>
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    SpreeNextKill[(Player number of (Owner of (Killing unit)))] Greater than or equal to 5
                Then - Actions
                    Wait 0.20 seconds
                    Game - Display to (All players) the text: (Playercolor[(Player number of (Owner of (Killing unit)))] + (Rampage + (ColorEnd + ( cho  + Playername[(Player number of (Owner of (Killing unit)))]))))
                    Sound - Play Rampage_5 <gen>
                Else - Actions
    [/SPOIL]

    [SPOIL]
    Mã:
    Next Kill
        Events
            Time - Every 1.00 seconds of game time
        Conditions
        Actions
            For each (Integer A) from 1 to 12, do (Actions)
                Loop - Actions
                    Set SpreeTimer[(Integer A)] = (SpreeTimer[(Integer A)] - 1)
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            SpreeTimer[(Integer A)] Equal to 0
                        Then - Actions
                            Set SpreeNextKill[(Integer A)] = 0
                        Else - Actions
    [/SPOIL]
     
    Chỉnh sửa cuối: 13/1/13
  12. Jolli Sheny

    Jolli Sheny Donkey Kong

    Tham gia ngày:
    26/12/12
    Bài viết:
    315
    mọi người giúp mình làm 1 skill until chém điên hộ mình với
     
  13. Evil_Hunter

    Evil_Hunter Mario & Luigi

    Tham gia ngày:
    18/9/11
    Bài viết:
    786
    Nơi ở:
    Evil Forest
    Tham khảo
    Mã:
    Visibility - Create an initially Disabled visibility modifier for Player 1 (Red) emitting Visibility across (Playable map area)
    
     
  14. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Dạo này đãng trí quá... Tại sao Hero đứng rất xa chỗ kẻ địch bị giết mà vẫn đc nhận exp nhỉ?
     
  15. Drakkar Knight

    Drakkar Knight Mr & Ms Pac-Man Lão Làng GVN

    Tham gia ngày:
    13/11/11
    Bài viết:
    269
    Nơi ở:
    Hà Nội
    Gameplay Constants/ Hero XP - Global Distribution chỉnh thành False là đc
     
  16. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM
    Vì mặc định war3 là global distribution (exp được chia đều cho cả force). Vào Gameplay Constant -> Hero Exp - Global Distribution -> chuyển thành false
     
    phichcoi, phutu01, phylia and 67 others like this.
  17. Drakkar Knight

    Drakkar Knight Mr & Ms Pac-Man Lão Làng GVN

    Tham gia ngày:
    13/11/11
    Bài viết:
    269
    Nơi ở:
    Hà Nội
    Có cách nào xác định đc 1 unit đang dùng skill Defend ko nhỉ các bác?
     
  18. Jolli Sheny

    Jolli Sheny Donkey Kong

    Tham gia ngày:
    26/12/12
    Bài viết:
    315
    ai làm giúp với :(
     
  19. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Đặt một biến boolean,khi unit đó
    Mã:
        (Issued order) Equal to Human Footman - Defend
    
    set biến đó = true
    khi unit đó
    Mã:
        (Issued order) Equal to Human Footman - Stop Defend
    
    set biến đó = false

    Dựa vào đó mà check unit đó đang dùng skill đó hay không.

    Điên kiểu gì ? Dùng skill berserk với Data AttackSpeed = 99999 ??
     
  20. Ăn xong dong

    Ăn xong dong Mr & Ms Pac-Man

    Tham gia ngày:
    7/6/11
    Bài viết:
    136
    Chỉ e cái skill này vs :(:
    -Hero dg invi thì khi đánh nó tun 1 phát zô đứa bị đánh (1 lần thui)
    -E làm trigger hero có buff(invi) thì khi đánh rùi tun. :(( nhưng khi đánh thì nó mất buff rùi ai zúp e skill này vs Tk
     

Chia sẻ trang này