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

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

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

    mvcthinh Mr & Ms Pac-Man

    Tham gia ngày:
    18/8/11
    Bài viết:
    140
    Nơi ở:
    HCM
    Câu hỏi dưới. Vào Forces trong cái Menu Scenario .
    Chỉnh chung team thì nhấn hết 5 cái ... (thêm 2 cái Share Unit Ctrl và S Adv.Unit Ctrl) là được.
     
  2. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    Có thể nôm na như thế này: Khi tạo rune đầu tiên thì đặt 1 chỉ số integer nào đó = 1. Ai đó nhặt thì đưa số đó về 0. Đợi đến thời gian quy định nếu số đó = 0 thì tạo rune mới và lại đặt số đó = 1. Ngược lại nếu số đó vẫn = 1 (tức là chưa ai nhặt) thì ko tạo.
     
  3. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mình chỉ có thể làm được như này :( cậu nói rõ cho mình biết đc ko

    [​IMG]
     

    Các file đính kèm:

    • 987.jpg
      987.jpg
      Kích thước:
      51.1 KB
      Đọc:
      0
  4. goldviper

    goldviper Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    7/1/10
    Bài viết:
    759
    Nơi ở:
    Tổ dân phố
    ^
    ko có điều kiện sao nó hoạt động
    sao phải làm loop B ( bạn muốn tạo 4 cái Rune ak :-/ )
     
  5. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mình làm ngẫu nhiên rơi ra 1 trong 4 loại rune đó :D

    Thú thật là mình có biết gì đâu,mình chỉ đơn thuần làm theo cách spawn unit thôi :| Giờ mình muốn hỏi làm điều kiện sao cho khi nó xuất hiện rồi,fải có có người tới nhặt rune xong thì nó xuất hiện tiếp.

    Chứ mình làm nó cứ tự ra một đống theo thời gian T_T
     
  6. mvcthinh

    mvcthinh Mr & Ms Pac-Man

    Tham gia ngày:
    18/8/11
    Bài viết:
    140
    Nơi ở:
    HCM
    Tìm cách làm = GUI mãi không ra.. nên thử làm với JASS.

    Giờ làm như thế này.

    Đầu tiên tạo một Trigger để Create các Item mà bạn muốn.
    PHP:
    Runes
        Events
            Map initialization
        Conditions
        Actions
            Item 
    Create Rune of Greater Healing at (Center of Rect[(Random integer number between 1 and 4)])
            
    Set TempItem[1] = (Last created item)
            
    Item Create Rune of Shielding at (Center of Rect[(Random integer number between 1 and 4)])
            
    Set TempItem[2] = (Last created item)
            
    Item Create Rune of Speed at (Center of Rect[(Random integer number between 1 and 4)])
            
    Set TempItem[3] = (Last created item)
            
    Item Create Rune of the Watcher at (Center of Rect[(Random integer number between 1 and 4)])
            
    Set TempItem[4] = (Last created item)
    Như ví dụ trên là 4 Item. Ban đầu ta đặt cho nó là như thế này. không thể đưa nó vào vòng Loop vì 4 Item khác loại nhau.
    Tạo một biến TempItem (với type là item, click Array cho nó)

    Tiếp theo Copy đoạn Code Jass dưới đây vào 1 Trigger mới.
    Để làm điều này thì Tạo 1 Trigger mới, tên gì cũng được ... Chọn Edit -> Convert to Custom Script.
    Xong xóa hết trong đó và copy toàn bộ dưới đây vào

    PHP:
    scope ItemAdd initializer Init

    private function CheckCond takes nothing returns boolean
    local integer Int
    set Int 
    1
            loop
                exitwhen Int 
    4
                 
    if ( ( GetItemTypeId(GetManipulatedItem()) == GetItemTypeId(udg_TempItem[Int]) ) ) then
                    
    return true
                    
                
    endif
                
    set Int Int 1
            endloop
        
    return false
    endfunction

    private function Conditions takes nothing returns boolean
        
    if ( not CheckCond() ) then
            
    return false
        
    endif
        return 
    true
    endfunction

    private function Actions takes nothing returns nothing
        local integer a
        local integer b 
    =1
       

        loop
            exitwhen b
    >4
            
    if  GetItemTypeId(GetManipulatedItem())== GetItemTypeId(udg_TempItem[b])  then
            set a 
    b
            
    endif
            
    set b b+1
        endloop
        
                call TriggerSleepAction
    (5)
                
    call CreateItemLocGetItemTypeId(udg_TempItem[a]), GetRectCenter(udg_Rect[GetRandomInt(14)]) )

    endfunction

    //===========================================================================
    private function Init takes nothing returns nothing
    local trigger t 
    CreateTrigger()
        
    call TriggerRegisterAnyUnitEventBJtEVENT_PLAYER_UNIT_PICKUP_ITEM )
        
    call TriggerAddConditiontCondition( function Conditions ) )
        
    call TriggerAddActiont, function Actions )
    set t null
    endfunction
    endscope
    Bây giờ mình thử phân tích đoạn trên để bạn có thể hiểu và áp dụng.

    Mã:
    private function CheckCond takes nothing returns boolean 
    local integer [COLOR="#FF0000"]Int [/COLOR]
    set[COLOR="#FF0000"] Int[/COLOR] = 1 
            loop 
                exitwhen [COLOR="#FF0000"]Int[/COLOR] > 4 
                 if ( ( GetItemTypeId(GetManipulatedItem()) == GetItemTypeId(udg_TempItem[[COLOR="#FF0000"]Int[/COLOR]]) ) ) then
                    return true 
                     
                endif 
                set [COLOR="#FF0000"]Int[/COLOR] = [COLOR="#FF0000"]Int[/COLOR] + 1 
            endloop 
        return false 
    endfunction 
    Đoạn trên này là điều kiện được Convert từ đoạn GUI này ra.
    Bạn hiểu nó đúng không . Cái này là điều kiện xem xem Unit đó nhặt Item số mấy mà mình đã lưu lại ở Trigger trên kia.
    Nếu có nhiều Item hơn thì ta có thể thay đổi đoạn này.
    Mã:
     [B]exitwhen[/B][COLOR="#0000FF"] Int [/COLOR]> X
    Với X là số Item mà bạn đã đặt ở Trigger trên.;)


    Tiếp đến mình xuống Function này.
    PHP:
    private function Actions takes nothing returns nothing
        local integer a
        local integer b 
    =1
       

        loop
            exitwhen b
    >4
            
    if  GetItemTypeId(GetManipulatedItem())== GetItemTypeId(udg_TempItem[b])  then
            set a 
    b
            
    endif
            
    set b b+1
        endloop
        
                call TriggerSleepAction
    (5)
                
    call CreateItemLocGetItemTypeId(udg_TempItem[a]), GetRectCenter(udg_Rect[GetRandomInt(14)]) )

    endfunction
    Ở đây cũng tương tự. Nếu số Item của bạn lớn hơn 4.. bạn có thể thay đổi số 4 ở trong này thành số lượng Item mà bạn đặt ở Trigger đầu.
    Mã:
      exitwhen b>4
    Trọng đoạn này. Số 5 là số thời gian mà nó sẽ tạo lại một Item mới cho bạn ở vị trí Random như bạn nói. Nếu muốn thay đổi thời gian thì cứ đổi số 5 thành số nào tùy bạn.
    PHP:
     call TriggerSleepAction(5)

    Thế là xong.. Chỉ cần thay đổi các giá trị mình đề cập để làm điều bạn muốn. Chúc thành công

    ---------- Post added at 18:50 ---------- Previous post was at 18:48 ----------

    Tặng bạn cái Maps này.. đây là Những gì mà mình nêu ở trên.


    ---------- Post added at 18:52 ---------- Previous post was at 18:50 ----------

    À quên.. mở maps = NEWGEN nha.. JassHelper mới nhất ... như vậy mới mở được/
     
  7. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    Luôn GUI này. Khỏi cần code luôn nhé cầm thẳng demo map về coi :D Trong đó là cứ 10s spawn 1 rune. Ko nhặt thì nó ko spawn thêm. Nếu nhặt ở giây thứ 9 thì ngay giây tiếp theo sẽ có 1 rune khác. Coi rồi sửa theo ý mình nhé :D Nếu có gì ko vừa ý cậu thì cứ bảo tôi.
    http://www.mediafire.com/?f1yelzconby2lyf
     
  8. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mình đã làm được rồi :D cám ơn 2 bạn nhiều lắm :D Vote

    Mà theo cách mtvthinh chỉ mình về cách share unit thì ko phải,ý mình muốn là lúc một đứa trong team mình rời cuộc chơi,có thông báo và mình tự động nhận được quyền điều khiển nó ấy,chứ ko phải 2 đứa đang chơi share unit cho nhau.
     
  9. mvcthinh

    mvcthinh Mr & Ms Pac-Man

    Tham gia ngày:
    18/8/11
    Bài viết:
    140
    Nơi ở:
    HCM
    thế thì bạn thử Share Unit Ctrl thôi... đừng Share Adv.Unit... sau đó test với 2 người xêm.. nếu không được thì lên đây chỉ cách khác.
     
  10. congacon238

    congacon238 Youtube Master Race

    Tham gia ngày:
    15/7/11
    Bài viết:
    21
    Cho em hỏi cách làm 2 món đồ giống nhau ép ra 1 món VD: khi có 2 cái Claw of Attack sẽ ra 1 Orb of Lightning:D
     
  11. Ăn xong dong

    Ăn xong dong Mr & Ms Pac-Man

    Tham gia ngày:
    7/6/11
    Bài viết:
    136
  12. hieu2525

    hieu2525 Mr & Ms Pac-Man

    Tham gia ngày:
    23/3/09
    Bài viết:
    111
    Nơi ở:
    HN
    Mọi người cho em hỏi 1 chút về GUI và Jass, tại sao 1 trigger như thế này:
    [​IMG]

    khi em save map lại, nó báo Undelacred function

    Vậy có cách nào để khắc phục được ko ạ? Em xin cảm ơn.

    ---------- Post added at 00:26 ---------- Previous post was at 00:23 ----------

    khi em save map lại, nó báo "Undelacred function DebugError"... em tìm hiểu mãi nhưng vẫn ko hiểu nguyên nhân vì sao @.@
     
  13. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    chỉ có BJDebugMsg chứ lấy đâu ra DebugError? 8-|

    BJDebugMsg: hiển thị một dòng chữ

    Undelacred = chưa khai báo
    DebugError <-- làm gì thì tôi chịu, không thể khai báo giúp bạn đc
     
  14. hieu2525

    hieu2525 Mr & Ms Pac-Man

    Tham gia ngày:
    23/3/09
    Bài viết:
    111
    Nơi ở:
    HN
    Trigger đấy là để báo khi mà cast skill ở 1 terrain ko phù hợp thì nó báo lỗi và order unit sang stop ạ. Em ko biết ở map gốc nó ko bị sao nhưng khi em copy sang map em thì nó lại bị như vậy ạ '.'
     
  15. Val.N

    Val.N Youtube Master Race

    Tham gia ngày:
    8/1/11
    Bài viết:
    66
    Check leak giùm em với mọi người (chỉ cho em leak nào làm map bị delay với nha, em kiếm hoài mà pó tay @.@)
     
  16. gamevnso1

    gamevnso1 Youtube Master Race

    Tham gia ngày:
    1/9/11
    Bài viết:
    5
    e muốn tạo map tổng hợp,ai biết làm giúp e với !!! pm e qa njck yh nhá : golden_darkness_9x
     
  17. conga12

    conga12 Mr & Ms Pac-Man

    Tham gia ngày:
    4/7/10
    Bài viết:
    164
    khi save lại bị hư về trigger (copy vào chưa kip edit nên sai về var) khi open map lại bị lỗi ai có thể giúp không
    [​IMG]
    và hỏi có tool nào xóa trigger không
     
  18. whyvip1994

    whyvip1994 Guest

    Tham gia ngày:
    9/9/11
    Bài viết:
    6
    Cho e hỏi làm sao để chỉnh số lượng giết và deni creep được tính trên title của multiboard vậy và nó chỉ hiện cho thằng giết dc hoac deni thôi và không tính trên bảng multiboard của người khác giống trong hình này nè.
    [​IMG]
     
  19. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    Những câu như thế này khó mà có câu trả lời cho được ==! Muốn làm map thì thạo những cái cơ bản trước đi đã ==! Mà nói thật tạo thì tạo cái gì khác đi chứ cái map tổng hợp đó theo quan điểm của riêng mình thì mức độ nhảm nhí khá là cao ==!
     
  20. Doom_Sage

    Doom_Sage Mr & Ms Pac-Man

    Tham gia ngày:
    24/7/11
    Bài viết:
    147
    Sao lại phán là nhảm nhí ! Map Tong Hop v49 đứng thứ 3 trong top download nhiều nhất trên epicwar đấy.
    Thế em biết những gì ?
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này