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

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

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

    Daric™ C O N T R A

    Tham gia ngày:
    7/3/12
    Bài viết:
    1,853
    Nơi ở:
    Porizon
    đơn giản thôi, thì tại "em" nhìn nhầm chứ sao Greater than or Equal to, chứ ko phải là Greater than, hoặc là cái WE Script bị lỗi (còn khuya mới có chuyện này) :2cool_sexy_girl:

    nếu đã chỉnh mà vẫn bị thì rất đơn giản để sửa, đó là gộp 2 trigger đó lại thành 1 :7cool_spiderman:
     
    Chỉnh sửa cuối: 19/6/12
  2. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM
    Multiboard thì dùng local player. Tạo 1 multiboard cho toàn bộ player, khi hero kill hay chết thì dùng local player để update multiboard. Ví dụ:
    Mã:
    Events
       A unit dies
    Conditions
       Dying unit is a hero = false
    Actions 
       Set TempInt = (Player number of (Owner of (killing unit)))
       Set CreepKill[TempInt] = CreepKill[TempInt] + 1
       If - then - else
          If - Conditions
              (Owner of (killing unit)) = Local Player
          Then - Actions
              Multiboard - Change [COLOR="#0000FF"]Multiboard[/COLOR]'s tittle to Creep killed: + String(CreepKill[TempInt])
    
    Cái condition trên chỉ có trong JNGP, nếu không có thì dùng custom script.

    Còn quest thì tôi không chắc, vì chưa thử bao giờ, nhưng có thể local player cũng áp dụng được.
     
  3. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    dùng như vậy thì gây desync (player sẽ bị disconnect khỏi game)



    dùng nhiều multiboard.

    sử dụng Show/Hide với Local Player thì được
     
  4. truongdzuy

    truongdzuy Mr & Ms Pac-Man

    Tham gia ngày:
    25/1/09
    Bài viết:
    274
    Nơi ở:
    Tp.HCM
    Cho em Quote lại .......
    Cho em hỏi luôn là khi làm passive loại như để enemy đánh vào mìnk, mìnk có % gây slow đối thủ....lúc này tạo dummy và cast slow vào, thì nếu nh` đối thủ đánh vào -> có tạo nh` dummy kô ạ ? ..... tại e sợ như v. sẽ thừa dummy chưa kill và gây đến việc leaks :|~
     
  5. langthangbairac

    langthangbairac T.E.T.Я.I.S

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    nếu sợ thì turn off / on trigger
     
  6. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    vậy thì có lẽ chỉ còn cách lừa tình player khi trong game thôi
    chỉnh trigger là equal to 59 (để no +1 nữa là..) nhưng lại bảo là 60 thì mới win :D
    như thế có đc ko nhỉ :))
     
  7. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    12 trigger đếm kill + 1 trigger kiểm tra điểm, thay bằng:

    Mã:
    KillScore
        Events
            Unit - A unit Dies
        Conditions
            ((Dying unit) is A Hero) Equal to True
        Actions
            -------- update kill count --------
            Set TempInt = (Player number of (Owner of (Killing unit)))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (Killing unit) Not equal to No unit
                    (Killing unit) Not equal to (Dying unit)
                    TempInt Lesser Than or Equal To 12
                Then - Actions
                    Set Kills[TempInt] = (Kills[TempInt] + 1)
                Else - Actions
            -------- update death count --------
            Set TempInt = (Player number of (Owner of (Dying unit)))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    TempInt Lesser Than or Equal To 12
                Then - Actions
                    Set Deaths[TempInt] = (Deaths[TempInt] + 1)
                Else - Actions
            -------- update score --------
            Set Kill1 = (Kills[1] + (Kills[2] + (Kills[3] + (Kills[4] + (Kills[5] + Kills[6])))))
            Set Kill2 = (Kills[7] + (Kills[8] + (Kills[9] + (Kills[10] + (Kills[11] + Kills[12])))))
            -------- Victory/Defeat --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    Kill1 Equal to 2
                Then - Actions
                    Player Group - Pick every player in (All allies of Player 1 (Red)) and do (Game - Victory (Picked player) (Show dialogs, Show scores))
                    Player Group - Pick every player in (All enemies of Player 1 (Red)) and do (Game - Defeat (Picked player) with the message: <Empty String>)
                Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    Kill2 Equal to 2
                Then - Actions
                    Player Group - Pick every player in (All allies of Player 7 (Green)) and do (Game - Victory (Picked player) (Show dialogs, Show scores))
                    Player Group - Pick every player in (All enemies of Player 7 (Green)) and do (Game - Defeat (Picked player) with the message: <Empty String>)
                Else - Actions
    
    biến array Kills và Death nhớ để array size = 12.

    on/off thì giải quyết đc gì?

    vấn để ở đây là tạo/xóa dummy ra sao thôi, làm thiếu thì rõ là sẽ leak
     
    Chỉnh sửa cuối: 19/6/12
  8. Daric™

    Daric™ C O N T R A

    Tham gia ngày:
    7/3/12
    Bài viết:
    1,853
    Nơi ở:
    Porizon
    vấn đề về việc leaks dummy do tạo nhiều dummy sẽ không gây nhiều ảnh hưởng khi bạn biết cách giải quyết làm trống (null) các giá trị dummy đã được tạo, đồng thời phải remove dummy đó khỏi map sau khi nó hoàn thành công việc. Như vậy sẽ ko còn lo về leak lag nữa ... :8cool_cool:
    Thường việc remove dummy ra khỏi map bằng cách check sau khi dummy chết (kill = Add Timer Life) thì lập tức remove dummy đó ra khỏi map! :7cool_feel_good:

    và đôi khi bạn biết không, lúc đầu vào map mà tạo dummy nhiều có thể gây map bị lag trong giãn cách 0.2 cho đến 1s, điều này làm nhiều bạn khốn đốn và sợ tiềm cơ leak, ồ ko đâu, thực chất map chỉ load thông tin của unit đó được tạo. Để tránh điều này, bạn nên reload unit đó trước khi tạo và cho nó làm việc (Tạo trước unit đó trc khi vào map, như vậy map đã load sẵn thông tin rồi, khỏi cần load lần nữa khi tạo!) :2cool_after_boom::5cool_bad_smelly:
     
    Chỉnh sửa cuối: 19/6/12
  9. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    còn cái demo Revive Hero giống DDay, tại sao add vào map em giống y chang má lại ko đc, bị 2 lỗi:
    1) hiện bảng, hiện tên nhưng ko hiện CountdownTime (thời gian đếm ngược)
    2) ko hồi sinh luôn @@
     
  10. truongdzuy

    truongdzuy Mr & Ms Pac-Man

    Tham gia ngày:
    25/1/09
    Bài viết:
    274
    Nơi ở:
    Tp.HCM
    Cho em Quote lại .......
    btw, Tks Daric , cũng đã hiểu sơ về việc Leak Dummy r :)

    Cái này, ý bạn là tạo unit đó sẵn r` khi bắt đầu game delete nó đi để khi xài skill có dummy đó nó sẽ k lag nữa àk :-?
     
    Chỉnh sửa cuối: 20/6/12
  11. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Bạn copy trigger đó lên cho mọi người xem,và cái demo đó chỉ hoạt động tốt với mỗi player chỉ có 1 Hero,mình xài hoàn toàn ổn
     
  12. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    ^
    Mã:
    HeroReviveInitialization
        Events
            Time - Elapsed game time is 0.00 seconds
        Conditions
        Actions
            For each (Integer A) from 1 to 12, do (Actions)
                Loop - Actions
                    Trigger - Add to HeroRevive <gen> the event (Time - ReviveTimer[(Integer AHero Dies
        Events
            Unit - A unit Dies
        Conditions
            ((Triggering unit) is A Hero) Equal to True
        Actions
            Set TempUnit = (Triggering unit)
            Set TempInt = (Player number of (Owner of TempUnit))
            Set TempReal = (0.00 + (2.00 x (Real((Hero level of TempUnit)))))
            Countdown Timer - Start ReviveTimer[TempInt] as a One-shot timer that will expire in TempReal seconds
            Countdown Timer - Create a timer window for ReviveTimer[TempInt] with title (Name of TempUnit)
            Set ReviveTimerWindow[TempInt] = (Last created timer window)
            Countdown Timer - Show ReviveTimerWindow[TempInt]
            Set HeroForRevive[TempInt] = TempUnit
    )] expires)HeroRevive
        Events
        Conditions
        Actions
            For each (Integer A) from 1 to 12, do (Actions)
                Loop - Actions
                    Set TempInt = (Integer A)
                    Custom script:   set udg_TempCheck = ( GetExpiredTimer() == udg_ReviveTimer[ udg_TempInt ] )
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            TempCheck Equal to True
                        Then - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                If - Conditions
                                    (HeroForRevive[TempInt] belongs to an ally of Player 1 (Red)) Equal to True
                                Then - Actions
                                    Set TempLoc = (Center of Region 000 <gen>)
                                Else - Actions
                                    Set TempLoc = (Center of Region 000 Copy <gen>)
                            Hero - Instantly revive HeroForRevive[TempInt] at TempLoc, Show revival graphics
                            Custom script:   call RemoveLocation( udg_TempLoc )
                            Countdown Timer - Destroy ReviveTimerWindow[TempInt]
                        Else - Actions
     
  13. Evil_Hunter

    Evil_Hunter Mario & Luigi

    Tham gia ngày:
    18/9/11
    Bài viết:
    786
    Nơi ở:
    Evil Forest
    Quote :(
    ...............................
     
  14. bomgiadat

    bomgiadat Youtube Master Race

    Tham gia ngày:
    7/4/09
    Bài viết:
    8
    map em làm giờ đang 12 mb muốn giảm dung lượng xuống thì làm gì ? em đã dùng wc3mapoptimizer mà k0 cải thiện dc nhiều . mà map thì chưa làm xong dự kiên là còn tăng mb nữa giờ phải sao ? :6cool_surrender:
     
  15. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    Integer = số dummy?

    trước khi giảm số dummy thì xóa bớt dummy đã, ví dụ:

    Integer = 4
    NewInteger = Integer - 2 // = 2

    vậy xóa dummy từ: NewInteger + 1 tới Integer

    cuối cùng Set Integer = NewInteger
    ----
    mà sao hai cái tăng/giảm khoảng cách, một cái dùng issued order, một cái là start effect ability?

    xóa bớt import
     
  16. truongdzuy

    truongdzuy Mr & Ms Pac-Man

    Tham gia ngày:
    25/1/09
    Bài viết:
    274
    Nơi ở:
    Tp.HCM
    Cho em Quote lại .......
    CHo em hỏi thêm về các thông số damg của DotA trong Game Play Constance, ai bjk chỉ em .... vì theo thông số mẫu..... thì với lượng máu và giáp như dotA, chứ ở map e thì cùng lượng máu và damg như DotA nhưng s mau chết wá :|~
     
  17. bibo2187

    bibo2187 Youtube Master Race

    Tham gia ngày:
    20/5/12
    Bài viết:
    8
    Cho mình hỏi về phần quest trong game. Về cơ bản thì mình cũng biết tạo quest cơ bản và có thể tự nghiên cứu thêm, nhưng có 1 phần mình muốn hỏi là về phần level của hero, ví dụ như hero khi đạt lv 2 thì sẽ có quest mới, và cái thằng cho quest sẽ hiện cái dấu chấm than trên đầu, khi mình đi vào cái region của thằng đó sẽ tự động nhận quest và cái dấu chấm than mất đi. Rồi khi hero lên lv 5 thì cũng cái thằng hồi nãy cho mình 1 quest khác, lúc này thì lại tiếp tục hiện cái dấu chấm than trên đầu nó, mình vào cái region của thằng đó nhận quest thì dấu chấm than đó mất đi. Nói tóm gọn là mình muốn khi Hero khi đạt tới 1 cấp độ nào đó thì sẽ có quest tuơng ứng và mỗi lần có quest thì cái dấu chấm than trên đầu con đó sẽ hiện ra và khi nhận quest thì mất đi.
     
  18. zzchaolegionzz

    zzchaolegionzz T.E.T.Я.I.S

    Tham gia ngày:
    27/9/07
    Bài viết:
    606
    Nơi ở:
    Black Parade
    cho mình hỏa lại giờ làm sao để player đỏ là computer để ra creep và player7 là computer mà khi vào bảng player 2 team trong game không hiện 2 pleyer này mà chỉ hiện từ player 2 màu xanh da trời. cho đến player 11 màu xám. trừ player xanh lá cây ra.
     
  19. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Có ai biết Tut nào hướng dẫn làm 1 cây cầu như trong các map Diablo III ko?
    Ví dụ như :

    [​IMG]
    [​IMG]
     
  20. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    ^
    Tạo hình dạng cây cầu với 1 loạt các doodads ko có pathing
    Nâng cả cây cầu ấy lên = cách nâng height của doodads lên (Ctrl+PageUp).
    Đặt các destructible có pathing và thiết lập Pathing-Is walkable = true để unit có thể "đặt chân" lên cầu
    Cuối cùng là đặt Pathing blocker 2 bên thành cầu để tránh unit bị "trượt chân"

    Tham khảo thêm ở Tut này
    Còn cái vực trông như the abiss thì chả qua là fog nó dày là và tối màu là được
    Thêm vào đó phải nâng mặt = terrain lên để khi đến đoạn cây cầu còn có chỗ lõm xuống
    Có thể dùng raise tool để nâng độ cao lên và dùng MiscData.txt để disable max và min độ cao terrain so với mặt bằng
     
    Ice Dragon thích bài này.
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này