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. kitagawa

    kitagawa Donkey Kong

    Tham gia ngày:
    13/9/08
    Bài viết:
    348
    Nơi ở:
    TP.HCM
    Mình dùng action:
    Mã:
    Set r = (Random ingeter number between 0 and 4)
    và cho thông báo "r" đó lên màn hình. Kết quả của mọi lần thử đều là 3 2 4 1 0. Thậm chí sau vài lần "3 2 4 1 0" thì k thể thông báo "r" lên màn hình được luôn.

    Mình đoán là game đã lưu kết quả random đó vào bộ nhớ đệm. Có ai biết custom script hoặc trigger gì để xóa bộ nhớ đệm đó đi k? :/
     
  2. Kenmj

    Kenmj Youtube Master Race

    Tham gia ngày:
    26/5/09
    Bài viết:
    95
    Bạn nào biết tạo bóng cây kiểu này chỉ giúp mình..
    [​IMG]
     
  3. Bottom

    Bottom Mr & Ms Pac-Man

    Tham gia ngày:
    21/8/13
    Bài viết:
    195
    Nơi ở:
    Mar Heaven
    Tình hình là hỏi nhiều mà không ai trả lời :D
     
  4. SITUVN

    SITUVN T.E.T.Я.I.S

    Tham gia ngày:
    6/11/09
    Bài viết:
    575
    Không có gì là đệm, do giải thuật Đồng dư tuyến tính đã làm chuỗi các kết quả luôn giống nhau. Chỉ cần số nguồn (seed number) khởi đầu là một số thì các số tiếp theo luôn theo một quy luật. Cho dù có thử lại bao nhiêu lần thì các lần thử luôn cho chuỗi các kết quả như nhau.
    Đó là thuật toán ngẫu nhiên được áp dụng cho hầu hết các ngôn ngữ lập trình.

    Còn một thuật toán ngẫu nhiên nữa là theo thời gian (cụ thể là giờ, phút, giây hoặc mili-giây). Thuật toán đúng là ngẫu nhiên vì chuỗi các kết quả sẽ không thể trùng nhau được.
    Giải pháp là: Dùng thuật toán Đồng dư tuyến tính kết hợp với thời gian.

    Tóm gọn lại, bạn lấy số ngẫu nhiên vừa lấy được từ 0 - 4 rồi nhân với thời gian và làm vài phép tính để nó ra số nằm trong phạm vi cần thiết.

    VD:
    Chỉ là mã mô tả
    Mã:
    r = Ramdom(0, 4); // Số ngẫu nhiên từ 0 - 4
    r = r * GetMiliSeconds(); // lấy Mili-giây
    r = r mod 4; // chia lấy dư với 4 sẽ làm kết quả nằm trong phạm vi 0 - 4
    
    Vì trong Warcraft không có API lấy thời gian của máy tính mà chỉ có thể lấy thời gian đã chơi. Có thể dùng nó.

    Chuỗi các kết quả: thứ tự và giá trị của các con số ngẫu nhiên.
    Tham khảo: https://sites.google.com/site/sbskit/papers/randomnumber
     
  5. congminhmc

    congminhmc T.E.T.Я.I.S Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    550
    - Theo mình nghĩ thì nếu dùng model không sử dụng bất kì attachment nào có sẵn thì sẽ được bạn ak,nghĩa là ban đầu chỉ có rifleman không thôi chứ không có súng.và sau đó bạn dùng item,abilt add attachment rồi add vào unit là sẽ mất hay không mất súng :)
    - VD1: mình code ntn có gì bạn thêm vào nhé,ví dụ như là sao lưu item vậy :)
    PHP:
    Melee Initialization
        Events
            Unit 
    A unit Acquires an item
        Conditions
            
    (Item-type of (Item being manipulated)) Equal to Item hóa footman
            
    (Unit-type of (Hero manipulating item)) Equal to Rifleman
        Actions
            Unit 
    Remove (Hero manipulating itemfrom the game
            Unit 
    Create 1 Footman for Owner of (Hero manipulating item)) at (Postion of (Hero manipulating item)) facing Default building facing degrees
    -VD2: giống như câu hỏi đầu tiên của bạn :)
     
  6. khoai_so

    khoai_so Youtube Master Race

    Tham gia ngày:
    13/6/11
    Bài viết:
    68
    Nơi ở:
    Gia Lâm - Hà Nội
    Ai biết làm mấy cái này thì chỉ mình với, thanks trước ạh!
    1. Làm cho cái gỗ với cái đùi gà ở bên trên mất thay vào đó là cái đồng hồ giống DotA
    2. Làm cho hero chỉ nhận exp khi gần creep trong phạm vi 800 range, chứ mình làm map mà trên map có thằng nào chết là con hero được nhận exp
    3. Làm mua đồ từ xa được giống DotA, ở đầu game có cái nhà mua hero ấy :D mua xong là chỗ đấy bị khuất sides
     
  7. congminhmc

    congminhmc T.E.T.Я.I.S Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    550
    1: bạn kiếm hình ảnh đồng hồ dota đấy ở đâu đó và import vào map rồi thay ở Advance -> Game interface
    và thay Icon - Lumber bằng hình đồng hồ mà bạn muốn nhé :)
    2: mình chịu :D
    3: cái đó là hộ đặt 1 unit "circle" gần nhà mua hero và khi mua item đó nó sẽ create ra hero và remove cái circle đó nên sẽ bị khuất sides nhé bạn :)
    ở trên mình cũng có đoạn trigger khi mua item,bạn dùng code đó để làm nhé :)
     
  8. khoai_so

    khoai_so Youtube Master Race

    Tham gia ngày:
    13/6/11
    Bài viết:
    68
    Nơi ở:
    Gia Lâm - Hà Nội
    cái 1. bạn làm cho mình trigger đồng hồ được ko ạ? :D mình thay icon nhưng nó vẫn là Lumber và Food thôi... mình muốn ô Food là giây và ô Lumber là phút. :) Xin lỗi nếu mình đòi hỏi quá nhiều nhé :D
     
  9. congminhmc

    congminhmc T.E.T.Я.I.S Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    550
    ak vậy mình hiểu nhầm bạn :D Trigger của bạn này :)
    Trigger1:
    PHP:
    Events
    Time
    -Every 60.00 seconds of game time
    Conditions
    Actions
    PlayerGroup 
    Pick every player in (All players) and do (Player Add 1 to (Picked playerCurrent Lumber))
    Trigger2:
    PHP:
    Events
    Time
    -Every 1.00 seconds of game time
    Conditions
    Actions
    Set FoodSEC 
    = (Player 1 (RedFood used)
    PlayerGroup Pick every player in (All players) and do (Player Set (Picked playerFood Used to (FoodSEC 1))
    Trigger3 :
    PHP:
    Events
    Player 
    Player 1 (Red)'s Food used becomes Greather than or equal to 60.00
    Conditions
    Actions
    Player - Set Player 1 (Red)'
    s Food used to 0
    Mình lấy từ ở đây,bạn có thể lấy thêm thông tin nhé :)
    http://www.thehelper.net/threads/dota-clock.141537/
    hay http://www.hiveworkshop.com/forums/trigger-gui-editor-tutorials-279/lumber-food-clock-147990/
     
  10. khoai_so

    khoai_so Youtube Master Race

    Tham gia ngày:
    13/6/11
    Bài viết:
    68
    Nơi ở:
    Gia Lâm - Hà Nội
    cho mình hỏi là cái hideworkshop chỉ chỉnh Low Upkeep Go to Advanced and go to “Game Constants”.
    Find “Upkeep – Food Levels” and change Low and Medium to 100. Vậy Low và Medium là cai nào trong mấy cái integer ấy vậy :D[​IMG]
     
  11. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Cho hỏi cái effect nứt đất khi mới cast ulti của con Tauren Chieftain trong Dota là gì vậy nhỉ? Sao mình kiếm mãi ko ra.
     
  12. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
  13. thuytien16

    thuytien16 Youtube Master Race

    Tham gia ngày:
    31/10/09
    Bài viết:
    31
    Mình muốn cho hero của mình 200 level thì sẽ tự động move về chỗ bắt đầu và level sẽ về 1 (chỉ số giữ nguyên lúc lv 200) đồng thời được thêm 1 số gỗ nhất định + food sẽ tăng thêm 1 .Cứ như vậy, nếu food đên 5 thì sẽ là 300 level mới quay về lv 1 (chỉ số vẫn giữ nguyên lúc lv 200) vẫn được thêm 1 số gỗ như cũ và thêm 1 food . Ai biết xin làm ơn giúp mình với :(
     
  14. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    Edit 1: (red line)
    Edit 2: Trigger này mỗi lần hero lên lv sẽ đc 5 gỗ. Lên đến lv 200 và food = 0,1,2,3 sẽ reset lv1 (giữ chỉ số), tặng thêm 10 gỗ (tổng cộng 15) và tăng 1 food. Food lv 5 và hero lv 300 sẽ reset, bonus như cũ (tăng 15 gỗ 1 food)
    (**) EDITTED xem post mới
     
    Chỉnh sửa cuối: 20/7/14
  15. thuytien16

    thuytien16 Youtube Master Race

    Tham gia ngày:
    31/10/09
    Bài viết:
    31
    Bạn ơi cái này không được rùi, mình muốn nó phải hoàn thành những điều kiện trên (200 lv, 300 lv, luc len lv 200 la tu move,sau do ve lv 1, chỉ số giữ nguyên ) mới đc thêm gỗ cơ, cái của bạn nó cứ lên 1 lever nó lại cộng thêm 1 gỗ và 1 food rồi :(
     
  16. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box

    [spoil]
    Mã:
    HeroLevelUp
        Events
            Unit - A unit Gains a level
        Conditions
        Actions
            For each (Integer A) from 1 to 12, do (Actions)
                Loop - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Owner of (Triggering unit)) Equal to (Player((Integer A)))
                        Then - Actions
                            Set TempUnit = (Triggering unit)
                            Set TempPlayer = (Owner of TempUnit)
                            Player - Add 5 to TempPlayer Current lumber
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                If - Conditions
                                    Or - Any (Conditions) are true
                                        Conditions
                                            ((Hero level of TempUnit) Equal to 300) and ((TempPlayer Food used) Equal to 4)
                                            ((Hero level of TempUnit) Equal to 200) and ((TempPlayer Food used) Less than 4)
                                Then - Actions
                                    Set TempPoint = (TempPlayer start location)
                                    Set TempInteger = (Strength of TempUnit (Exclude bonuses))
                                    Set TempInteger1 = (Agility of TempUnit (Exclude bonuses))
                                    Set TempInteger2 = (Intelligence of TempUnit (Exclude bonuses))
    [COLOR="#FF0000"]                                Player - Add 1 to TempPlayer Current lumber //chỉnh cái này thay đổi thưởng thêm lúc lv 200 và 300
                                    Player - Add 1 to TempPlayer Food used[/COLOR]
                                    Unit - Move (TempUnit) instantly to TempPoint
                                    Hero - Set TempUnit Hero-level to 1, Hide level-up graphics
                                    Hero - Modify Strength of TempUnit: Set to TempInteger
                                    Hero - Modify Agility of TempUnit: Set to TempInteger1
                                    Hero - Modify Intelligence of TempUnit: Set to TempInteger2
                                    Custom script:   call RemoveLocation( udg_TempPoint )
                                Else - Actions
                            Custom script:   exitwhen true
                        Else - Actions
    
    [/spoil]
     
  17. thuytien16

    thuytien16 Youtube Master Race

    Tham gia ngày:
    31/10/09
    Bài viết:
    31
    Thank bạn nhiều, mình chưa đủ bài viết nên không thấy nut thank chỉ cảm ơn mồm vậy. Bạn có thể giúp mình nốt lần cuối hem

    Mình muốn khi hero của mình khi đủ lever (ví dụ lv 50) dùng lệnh "-move 1" thì nó được chuyển đến địa điểm chỉ định trước, nhưng nếu nếu nó không đủ level mà dùng lệnh đó thì nó không xảy ra, vậy phải viết thế nào vậy
     
  18. Bottom

    Bottom Mr & Ms Pac-Man

    Tham gia ngày:
    21/8/13
    Bài viết:
    195
    Nơi ở:
    Mar Heaven
    Làm giùm mấy skill :
    - ném 1 quả bom vào đầu nạn nhân khi nạn nhân di chuyển thì nổ bùm nếu move típ thì nổ típ đến khi nổ hết 3 lần thì rềmove buff !! Lúc ném chưa nổ mà chỉ hiện buff lên đầu nạn nhân thôi
    - trong war3 có skill nào ném 1 cục missle vào target point rồi deal dmg AoE không ? Chỉ tìm được cái Attack Groud của mấy cái xe hay pháo. Hix
    - 1 cục model từ trên trời rớt xuống. Model gì cũng được để đổi sau. Chủ yếu tham khảo cách làm nó rớt.
     
  19. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    ^ chúc may mắn

    Tôi cũng chỉ được đến đây là gần như các yếu tố cơ bản. (Add tiền, player chat, đổi stat, move unit, set group, remove leak, cách dùng if-then-else và loop...) còn lại mong bạn làm được vì làm GUI đơn giản chỉ cần [chút tiếng anh] + [tư duy logic] + [cẩn thận].
    [spoil]
    Mã:
    [COLOR="#FF0000"]command adding // trigger cũ tôi đã chỉ, chỉ cần thêm 1 dòng vào. Bạn có thể ko dùng cách này mà add trực tiếp 12 event cho 12 player vào từng trigger liên quan[/COLOR]
        Events
            Time - Elapsed game time is 0.00 seconds
        Conditions
        Actions
            Player Group - Pick every player in (All players) and do (Actions)
                Loop - Actions
                    Trigger - Add to Untitled Trigger 003 <gen> the event (Player - (Picked player) types a chat message containing -agi as A substring)
                    Trigger - Add to Untitled Trigger 003 <gen> the event (Player - (Picked player) types a chat message containing -str as A substring)
                    Trigger - Add to Untitled Trigger 003 <gen> the event (Player - (Picked player) types a chat message containing -int as A substring)
    [COLOR="#FF0000"]                Trigger - Add to MovingHero <gen> the event (Player - (Picked player) types a chat message containing -move 1 as An exact match)[/COLOR]
    
    Mã:
    [COLOR="#FF0000"]MovingHero// trigger mới tạo[/COLOR]
        Events
        Conditions
        Actions
            Set TempUnitGroup = (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))
            Unit Group - Pick every unit in TempUnitGroup and do (Actions)
                Loop - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Hero level of TempUnit) Greater than or equal to 50
                        Then - Actions
                            Set TempPoint = (Center of (Playable map area))
                            Unit - Move TempUnit instantly to TempPoint
                            Custom script:   call RemoveLocation( udg_TempPoint )
                        Else - Actions
            Custom script:   call DestroyGroup( udg_TempGroup )
    
    [/spoil]
     
  20. langthangbairac

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

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    Mình giúp vấn đề 1:

    Bạn tạo 1 skill để lại buff .....
    Bên trigger bạn sử dụng check order id là : "smart" --> Action
    p/s: ko có demo
     

Chia sẻ trang này