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

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

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

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    Anh em có vấn đề gì về cách làm map hãy hỏi, ai biết sẽ trả lời.

    Nghiêm cấm việc:
    - ko trả lời mà cứ chat nhảm 3:-O
    - trả lời ko rõ ràng :@)
    - trả lời với "hình như"

    Khi trả lời nếu có trigger phải cho vào code tag: [code]<trigger cho vô đây>[/code] hoặc dùng biểu tượng: [​IMG]

    Trả lời câu hỏi của ai, ở post nào phải quote (trích dẫn) rõ ràng. :bz

    ai muốn "thank" người đã giúp mình thì thay vì post 1 bài nói thank hãy click vào biểu tượng [​IMG] để thank :) (chú ý: ai chưa post đủ 50 bài sẽ ko thấy nút "Thanks", muốn thank thì vào profile của ng` kia, dùng VM (Visitor Message - Lời Nhắn) để thank)

    à trước khi hỏi gì, hãy đọc các topic chú ý:
    - Một số bài viết đáng chú ý của box
    - Tổng hợp các bài hướng dẫn
    - WE - object toàn thư
    Đồng thời tìm kiếm trong 8 topic hỏi đáp:
    ----
    ai có vấn đề gì ở topic cũ mà chưa đc trả lời hãy quote sang đây (chỉ đc quote 24h 1 lần với mỗi vấn đề chưa đc trả lời)
     
  2. ghót9x

    ghót9x Donkey Kong

    Tham gia ngày:
    15/6/09
    Bài viết:
    477
    Nơi ở:
    Hà Nội
    Sao các biến như Unit, Point, Integer, Real, Boolean... dùng array thì size=1 cũng ổn, nhưng timer lại phải tăng size lên cho phù hợp nhỉ? Hay là chỉ 1 số trường hợp thôi?
     
  3. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    size ở đây là số index được đặt giá trị khởi tạo

    với timer, phải được "khởi tạo" (trong JASS là CreateTimer() ) thì mới chạy được
    ví dụ đặt size = 5 vậy có index từ 0 -> 5 là có CreateTimer() => dùng được, các index sau đó đều là null ("No Timer") nên không dùng được
    (lẽ ra 5 thì chỉ 0 -> 4 nhưng theo script export ra thì lại là 0 -> 5, chắc Blizzard để vậy cho người nào dùng index từ 1 )

    việc đặt size sao cho phù hợp thì... tùy, dùng bao nhiêu đặt bấy nhiêu (tuy nhiên đừng cao quá nhé, có người từng để 1000 và hậu quả là script bị "đơ" =)))
    ví dụ: với ability X, level 1 dùng 3 timer, level 2 dùng 5 timer => nên đặt size = 5
     
    Chỉnh sửa cuối: 7/5/11
  4. kingghot

    kingghot Mr & Ms Pac-Man

    Tham gia ngày:
    15/4/10
    Bài viết:
    290
    Nơi ở:
    Rach Gia
    sao để cho một giàn súng bắn tên lửa một quãng đường
     
  5. Espeon - cool

    Espeon - cool Donkey Kong

    Tham gia ngày:
    16/1/07
    Bài viết:
    314
    Mình có 1 skill dùng 2 trigger thế này:

    Mã:
    [B]Arcane Swirl[/B]
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to Arcane Swirl 
        Actions
            Set SwirlCaster[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
            Set SwirlPoint[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
            Set SwirlSlide[(Player number of (Owner of (Triggering unit)))] = 36
            Set SwirlLevel2[(Player number of (Owner of (Triggering unit)))] = (Level of (Ability being cast) for (Triggering unit))
            Set EffectGroup[(Player number of (Owner of (Triggering unit)))] = (Create Unit Group)
            Trigger - Turn on Swirl Count <gen>
    
    Mã:
    [B]Swirl Count[/B]
        Events
            Time - Every 0.01 seconds of game time
        Conditions
        Actions
            For each (Integer Swirl) from 1 to 12, do (Actions)
                Loop - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            SwirlSlide[Swirl] Greater than 0
                        Then - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                If - Conditions
                                    SwirlSlide[Swirl] Greater than 1
                                Then - Actions
                                    Set SwirlLevel = SwirlLevel2[Swirl]
                                    Set TempReal = (175.00 + (25.00 x (Real(SwirlLevel))))
                                    Set SwirlGroup = (Units within (TempReal + 20.00) of SwirlPoint[Swirl] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy
                                    Unit Group - Pick every unit in SwirlGroup and do (Actions)
                                        Loop - Actions
                                            Unit Group - Add (Picked unit) to EffectGroup[Swirl]
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                If - Conditions
                                                    (Level of Lazer Attachment (+1) for (Picked unit)) Equal to 0
                                                Then - Actions
                                                    Unit - Add Lazer Attachment (+1) to (Picked unit)
                                                Else - Actions
                                    Unit Group - Pick every unit in SwirlGroup and do (Actions)
                                        Loop - Actions
                                            Set TempLoc = (Position of (Picked unit))
                                            Set TempAngle = ((Angle from SwirlPoint[Swirl] to TempLoc) - 5.00)
                                            Set TempReal2 = (Distance between SwirlPoint[Swirl] and TempLoc)
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                If - Conditions
                                                    TempReal2 Greater than or equal to (TempReal - 10.00)
                                                Then - Actions
                                                    Set TempLoc2 = (SwirlPoint[Swirl] offset by TempReal towards TempAngle degrees)
                                                Else - Actions
                                                    Set TempLoc2 = (SwirlPoint[Swirl] offset by (TempReal2 + 10.00) towards TempAngle degrees)
                                            Unit - Move (Picked unit) instantly to TempLoc2
                                            Unit - Cause SwirlCaster[Swirl] to damage (Picked unit), dealing ((Real(SwirlLevel)) x (TempReal2 / 125.00)) damage of attack type Spells and damage type Magic
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                If - Conditions
                                                    ((Picked unit) has buff Slow) Equal to True
                                                Then - Actions
                                                    Unit - Cause SwirlCaster[Swirl] to damage (Picked unit), dealing ((Real(SwirlLevel)) x (TempReal2 / 250.00)) damage of attack type Spells and damage type Magic
                                                Else - Actions
                                            Unit Group - Remove (Picked unit) from SwirlGroup
                                            Custom script:   call RemoveLocation (udg_TempLoc)
                                            Custom script:   call RemoveLocation (udg_TempLoc2)
                                    Set SwirlSlide[Swirl] = (SwirlSlide[Swirl] - 1)
                                    Custom script:   call DestroyGroup( udg_SwirlGroup )
                                Else - Actions
                                    [I]If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        If - Conditions
                                            And - All (Conditions) are true
                                                Conditions
                                                    (SwirlCaster[Swirl] is alive) Equal to True
                                                    (Level of Focus Magic  for SwirlCaster[Swirl]) Greater than 0
                                                    (ArcaneOrb[Swirl] is dead) Equal to True
                                        Then - Actions
                                            Set TempPoint = (Position of SwirlCaster[Swirl])
                                            Set Integer = (Random integer number between 1 and 5)
                                            Set TempInt = (Number of units in EffectGroup[Swirl])
                                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                If - Conditions
                                                    Integer Less than or equal to TempInt
                                                Then - Actions
                                                    Unit Group - Add SwirlCaster[Swirl] to SpellProcGroup
                                                    Set ArcaneCooldown[Swirl] = 0
                                                    Unit - Create 1 Arcane Orb1 for (Owner of SwirlCaster[Swirl]) at TempPoint facing Default building facing degrees
                                                    Set ArcaneOrb[(Player number of (Owner of SwirlCaster[Swirl]))] = (Last created unit)
                                                    Unit - Add a 15.00 second Generic expiration timer to ArcaneOrb[(Player number of (Owner of SwirlCaster[Swirl]))]
                                                    Floating Text - Create floating text that reads Focus Magic! at TempPoint with Z offset 10.00, using font size 10.00, color (70.00%, 0.00%, 30.00%), and 0.00% transparency
                                                    Floating Text - Hide (Last created floating text) for (All players matching ((Matching player) Not equal to (Owner of SwirlCaster[Swirl])))
                                                    Floating Text - Change (Last created floating text): Disable permanence
                                                    Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                                                    Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
                                                    Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees[/I]
                                                   
                                                Else - Actions
                                            Custom script:   call RemoveLocation (udg_TempPoint)
                                        Else - Actions
                                    Unit Group - Pick every unit in EffectGroup[Swirl] and do (Actions)
                                        Loop - Actions
                                            Unit - Cause SwirlCaster[Swirl] to damage (Picked unit), dealing 4.00 damage of attack type Spells and damage type Normal
                                            Unit - Remove Lazer Attachment (+1) from (Picked unit)
                                            Unit Group - Remove (Picked unit) from EffectGroup[Swirl]
                                    Custom script:   call DestroyGroup(udg_EffectGroup[udg_Swirl])
                                    Custom script:   call RemoveLocation (udg_SwirlPoint[udg_Swirl])
                                    Set SwirlSlide[Swirl] = 0
                        Else - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                If - Conditions
                                    And - All (Conditions) are true
                                        Conditions
                                            SwirlSlide[1] Equal to 0
                                            SwirlSlide[2] Equal to 0
                                            SwirlSlide[3] Equal to 0
                                            SwirlSlide[4] Equal to 0
                                            SwirlSlide[5] Equal to 0
                                            SwirlSlide[6] Equal to 0
                                            SwirlSlide[7] Equal to 0
                                            SwirlSlide[8] Equal to 0
                                            SwirlSlide[9] Equal to 0
                                            SwirlSlide[10] Equal to 0
                                            SwirlSlide[11] Equal to 0
                                            SwirlSlide[12] Equal to 0
                                Then - Actions
                                    Trigger - Turn off (This trigger)
                                    Game - Display to (All players) the text: off  
                                    Skip remaining actions
                                Else - Actions
    
    Trong đó Arcane Swirl là skill sử dụng trigger, Focus Magic là skill passive hỗ trợ nó, khi mình test, dùng skill bình thường thì không (hoặc chưa) thấy vấn đề gì, nhưng nếu có skill passive kèm theo thì dùng vài lần là có hiện tượng giật nên mình nghi nó bị leak ở phần in nghiêng. Tuy nhiên kiểm tra đi kiểm tra lại vẫn không thấy leak nó ở chỗ nào, nhờ mọi người xem giùm @@
     
  6. tunghamtien

    tunghamtien Youtube Master Race

    Tham gia ngày:
    30/6/09
    Bài viết:
    79
    Em thấy cái host bot dùng để tạo host trung gian cho map (dùng trên garena,chủ yếu là dota) có chức năng cấm chat.Có thể dùng trigger để làm việc này đc ko .Cụ thể là gõ command có đạng -load xxxxx thì nó chỉ đọc nội dung thôi (cho em hỏi lun cách đọc string phía sau chữ -load hay tương tự vậy),ko hiển thị ra.Đại khái là em định làm map có thể save/load đc ,nhưng sợ có người gõ đại rồi đc cái hero max lv ,max item hay dại loại như vậy.Thanks trước
     
  7. truongdzuy

    truongdzuy Mr & Ms Pac-Man

    Tham gia ngày:
    25/1/09
    Bài viết:
    274
    Nơi ở:
    Tp.HCM
    cho em hỏi làm sao để cho 1 boss sau 5' hiện ra trên 1 region ... sau khi giết xg thì 2' sau ra 1 con khác ?
    Và làm sao để cho 2 team duel vs nhau ... team nào thắng thì hiện lên màn hình , + 5000 gold cho các player team đó và trở về vị trí lúc trước khi duel ( như trong Maptonghop )
     
  8. kingghot

    kingghot Mr & Ms Pac-Man

    Tham gia ngày:
    15/4/10
    Bài viết:
    290
    Nơi ở:
    Rach Gia
    ai cho thẳng cái Triger cửa cần key với
     
  9. lonewolf020291

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

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    Dùng trigger cấm chat chưa nghe bao h cả. Còn cái này là lấy string xxxx từ -load xxxx
    Mã:
        Events
            Player - Player 1 (Red) types a chat message containing -load as A substring
        Conditions
        Actions
            Set string = (Substring((Entered chat string), 7, (Length of (Entered chat string))))
    
    Sợ người ta chat đại mà được lên lv hay item thì bạn nên tạo hệ thống mật mã riêng cho mình, như Final Fantasy RPG mình chơi chả bao h load bậy được.
    Edit Post: Xem thử cái này.

    Đoạn in nghiêng chả thấy gì cả, bạn thử thay thời gian 0.04 và call RemoveLocation(udg_xxxx) >> tại sao có dấu cách nhỉ
     
    Chỉnh sửa cuối: 23/3/11
  10. kingghot

    kingghot Mr & Ms Pac-Man

    Tham gia ngày:
    15/4/10
    Bài viết:
    290
    Nơi ở:
    Rach Gia
    Cho tôi hỏi sao để cho một map như Worl Cup mà thay vì đó là bóng chày
    Cho tôi xin một số Trigger sau :
    1/ Cầm bóng khi chội được
    2/ Đánh bóng, bóng sẽ bay
    3/ Chạy qua 9 móc rồi tới khung thành là thắng
     
  11. *darkman*

    *darkman* Mr & Ms Pac-Man

    Tham gia ngày:
    2/1/09
    Bài viết:
    278
    Cho hỏi spell Breath of Fire khi cast mình ko thấy data-damege per second mà chỉ thấy data-damage sao kì zậy . Thanks
     
  12. Espeon - cool

    Espeon - cool Donkey Kong

    Tham gia ngày:
    16/1/07
    Bài viết:
    314
  13. [Yami]

    [Yami] Donkey Kong

    Tham gia ngày:
    29/12/07
    Bài viết:
    313
    Nơi ở:
    Ha Noi, Vietnam,
  14. lonewolf020291

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

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    1) Vì ko có WE ở đây nên mình chỉ nói nội dung cách làm. Khi khởi tạo set biến unit-type array BossType[....] theo thứ tự 1,2,3 là thứ tự boss ra. Tạo biến: 1 integer Num, 1 unit Boss.
    Trigger 1
    Event Times elasped in 5 phút
    Action Unit - tạo 1 unit BossType[1] ở Region. Set Boss = last created unit. Set Num =1
    Trigger 2
    Event A unit dies
    Condition Dying unit == Boss
    Action Wait 2 phút. Set Num=Num + 1. Tạo 1 unit BossType[Num] ở Region. Set Boss = last created unit

    2) Đâu đó cái mẫu Duel ở đây

    Phải có Buff Drunken Haze.
     
    Chỉnh sửa cuối: 22/3/11
  15. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    LoneWolf ơi
    Bây giờ mình mún chọn Hero kiểu gì vậy?(VD:mình click vào con arthas chẳng hạn thì Mình chọn con hero đó)và chỉ hộ mình là mỗi Player chỉ đc chọn 1 Hero :|
    Thanks Lone trước nha ;) Mới là newbie :)
     
  16. faustviii

    faustviii Mr & Ms Pac-Man

    Tham gia ngày:
    28/1/09
    Bài viết:
    110
    Map Initialition cho chọn duy nhất 1 hero
    cái này bạn có thể tham khảo trong map melee của Blizzard
    còn pick như bạn nói thì dùng trigger,mình chỉ có thể gợi ý để bạn làm thôi chứ mình chưa viết trigger này baoh ^^:
    tạo 1 region
    đặt 1 dummy model arthas vào đó,có locust ability
    tạo 1 region khác tại nơi nào đấy bạn muốn hero được pick sẽ hiện ra
    NẾU 1 con cừu đi vào region arthas THÌ có hero arthas xuất hiện ở region 2 NẾU KHÔNG thì không có gì xảy ra (dùng lệnh IF THEN ELSE )
    Còn nếu bạn muốn click vào có luôn hero thì nên dùng tavern trong dota sẽ nhanh và tiện hơn
    http://world-editor-tutorials.thehelper.net/herotavern.php
    ^^
     
  17. lonewolf020291

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

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    Đọc
    Và đây là câu trả lời cụ thể.
    Chọn hero bằng cách click đúp.
     
  18. faustviii

    faustviii Mr & Ms Pac-Man

    Tham gia ngày:
    28/1/09
    Bài viết:
    110
    mọi người cho mình hỏi luôn
    1 spell channel sang không channel như thế nào
    vd: skill hút máu phải đứng yên,nhưng mình muốn có thể chạy nhảy loăng quăng mà vẫn không bị mất thì làm ntn
     
  19. truongdzuy

    truongdzuy Mr & Ms Pac-Man

    Tham gia ngày:
    25/1/09
    Bài viết:
    274
    Nơi ở:
    Tp.HCM
    1 tính làm 1 cái hệ thống duel ... trong tut ở gamevn thì em có xem rùi nhưng đó chỉ dành cho đánh thuờg ( vì khi đánh xog hết thì hk ra ngoài được ) ... vậy ai có thể giúp em làm sao để ktra số lượg hero còn của mỗi team ... nếu hero team 1 = 0 thì team 2 win ... các hero dc trở về nơi đứng trước khi duel
     
  20. *darkman*

    *darkman* Mr & Ms Pac-Man

    Tham gia ngày:
    2/1/09
    Bài viết:
    278
    Mình cho stats-buff Drunken Haze rùi mà có thấy data-damege per second đâu. Bạn Lone có thể giải thích rõ hơn đc ko Thanks nhìu
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này