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

Tạo một biến real=life của random 1 unit trong group đó. Sau đó pick từng unit trong group kia để check,nếu life của picked unit đó nhỏ hơn biến real thì set real = life của unit đó. Giá trị sau cùng trả về là biến real nhỏ nhất,sau đó tiếp tục pick từng unit trong group kia một lần nữa,nếu picked unit nào có giá trị life nhỏ hơn hoặc = biến real trên thì unit đó ít máu nhất trong group

Em làm thử trigger như thế này sai ở chỗ nào mà thỉnh thoảng nó chọn 2 thằng chứ ko phải chọn 1 (2 thằng máu ko bằng nhau).

[SPOIL]
Mã:
Untitled Trigger 001
    Events
        Player - Player 1 (Red) skips a cinematic sequence
    Conditions
    Actions
        Set Group = (Units in Region 000 <gen>)
        Set Life = (Life of (Random unit from Group))
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Life of (Picked unit)) Less than Life
                    Then - Actions
                        Set Unit = (Picked unit)
                        Set Life = (Life of Unit)
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Life of (Picked unit)) Less than or equal to Life
                            Then - Actions
                                Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
                                Special Effect - Destroy (Last created special effect)
                            Else - Actions
                    Else - Actions
[/SPOIL]
 
Em làm thử trigger như thế này sai ở chỗ nào mà thỉnh thoảng nó chọn 2 thằng chứ ko phải chọn 1 (2 thằng máu ko bằng nhau).

[SPOIL]
Mã:
Untitled Trigger 001
    Events
        Player - Player 1 (Red) skips a cinematic sequence
    Conditions
    Actions
        Set Group = (Units in Region 000 <gen>)
        Set Life = (Life of (Random unit from Group))
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Life of (Picked unit)) Less than Life
                    Then - Actions
                        Set Unit = (Picked unit)
                        Set Life = (Life of Unit)
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Life of (Picked unit)) Less than or equal to Life
                            Then - Actions
                                Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
                                Special Effect - Destroy (Last created special effect)
                            Else - Actions
                    Else - Actions
[/SPOIL]

Mã:
Untitled Trigger 001
    Events
        Player - Player 1 (Red) skips a cinematic sequence
    Conditions
    Actions
        Set Group = (Units in Region 000 <gen>)
        Set Life = (Life of (Random unit from Group))
        Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Life of (Picked unit)) Less than Life
                    Then - Actions
                        Set Unit = (Picked unit)
                        Set Life = (Life of Unit)
       Unit Group - Pick every unit in Group and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Life of (Picked unit)) Less than or equal to Life
                    Then - Actions
                        Set Unit = (Picked unit)
                        Set Life = (Life of Unit)                       
                        Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
                        Special Effect - Destroy (Last created special effect)                     
                    Else - Actions
 
^
Chưa hiểu ý lắm ? Bạn nói rõ cái skill ra xem nào >_>?

Tk dragonmanga :D skill khi cast thì pick từng unit trong phạm vi 200. Unit cứ 2s thì mất máu (max 3 lần). tức là khi dính skill rùi mà có blink ra đâu hay chạy bao xa cũng bị mất máu :D
 
Tk dragonmanga :D skill khi cast thì pick từng unit trong phạm vi 200. Unit cứ 2s thì mất máu (max 3 lần). tức là khi dính skill rùi mà có blink ra đâu hay chạy bao xa cũng bị mất máu :D

Thay Ability của bạn vào nhé

[SPOIL]
Mã:
Demo
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Blizzard
    Actions
        Set Point = (Target point of ability being cast)
        Set UnitGroup = (Units within 200.00 of Point matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)))
        For each (Integer A) from 1 to 3, do (Actions)
            Loop - Actions
                Wait 2.00 seconds
                Unit Group - Pick every unit in UnitGroup and do (Actions)
                    Loop - Actions
                        Unit - Cause (Triggering unit) to damage (Picked unit), dealing 500.00 damage of attack type Spells and damage type Normal
        Custom script:   call RemoveLocation(udg_Point)
        Custom script:   call DestroyGroup(udg_UnitGroup)
[/SPOIL]
 
Hỏi:Tạo nhiều library có ảnh hưởng tới thời gian loading map không ?


Không cậu ạ. Thời gian load map chỉ tốn ở các function Init thôi. Các function init sẽ đc gọi trong lúc load map
Ví dụ như library A initializer Init
thì Init sẽ đc gọi trong lúc khởi tạo map.
Hay các function của GUI như:
function InitTrig_FireBolt takes nothing returns nothing

Các object (units, destructibles) đc đặt trước trong map thực ra cũng là code chạy tạo ra object lúc load map mà thôi
 
Khi tạo 1 multiboard, làm thế nào để cố định player nào thì ở dòng đấy nhỉ? VD : Player Red luôn ở dòng 1 và tên có màu đỏ, Player Blue luôn ở dòng 2 và có tên màu xanh,...
 
Cách 1:
Cho hỏi về Trigger.Có 1 unit đứng bán item theo dạng Shop.Tôi chạy lại mua item có lever bất kì.Và item đó không chứa trong người của mình,sau khi mua xong thì xuất hiện 1 group unit khác player tại 1 vị trí region định sẳn.Vậy viết trigger như thế nào các bạn giúp tôi.
Cách 2:
Tiếp theo là item.Tôi làm khác với cách trên.Sau khi unit mua item và đi vào region định sẳn và có cầm theo 1 lệnh bài gì đó tương ứng với lever quái.Điều kiện của trigger là phải mang theo lệnh bài đó trong túi,thì sẽ xuất hiện quái.và cứ 15s xuất hiện 10 quái tại điểm region đó.

Ai biết cách nào giúp tôi nhé..cám ơn tất cả.^^
 
Chỉnh sửa cuối:
Cho em hỏi 2 lệnh trong Custom script là call DestroyGroupset bj_wantDestroyGroup = true khác nhau ở điểm nào ạ?
 
Cho em hỏi 2 lệnh trong Custom script là call DestroyGroupset bj_wantDestroyGroup = true khác nhau ở điểm nào ạ?

khi sử dụng Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
Loop - Actions
thì sử dụng hàm set bj_wantDestroyGroup = true nó sẽ tự hiểu rằng group đó chỉ sử dụng 1 lần!
còn nếu sử set My_var = group v.v... thì sử dụng call DestroyGroup
 
Có Ability nào khi đánh tạo buff lên thằng bị đánh (giống như Slow Poison) nhưng tác dụng với các Orb Effect khác ko các bác?
 
Có Ability nào khi đánh tạo buff lên thằng bị đánh (giống như Slow Poison) nhưng tác dụng với các Orb Effect khác ko các bác?

Hoàn toàn không \m/ ngoại trừ Orb Of Slow :D 'AIsb'
 
1. Ai hướng dẫn cho mình làmc cái hình Minimap với. Mình thấy hiện cái mini map mặc dịnh ra thì nó xấu, còn hide mini map thì lại ko đc bắt mắt và đẹp

2. Làm sao để cứ 10 phút thì tất cả player sẽ đc đưa dến 1 vị trí (region) để solo (giống trong map Tổng Hợp) Ai chỉ cho em cách làm với!
 
Chỉnh sửa cuối:
1. Ai hướng dẫn cho mình làmc cái hình Minimap với. Mình thấy hiện cái mini map mặc dịnh ra thì nó xấu, còn hide mini map thì lại ko đc bắt mắt và đẹp

2. Làm sao để cứ 10 phút thì tất cả player sẽ đc đưa dến 1 vị trí (region) để solo (giống trong map Tổng Hợp) Ai chỉ cho em cách làm với!

2: Trong Tổng hợp các bài hướng dẫn và một số link hữu dụng có mà: http://www.mediafire.com/download.php?mwg5ymy4cn2
 
cho mình hỏi trong GUI làm thế nào để sử dụng được lệnh call BJDebugMessage giống trong Jass ?
 
Thì bạn viết dòng jass đó vào lệnh Custom script

Custom Script: call BJDebugMsg("yay!")
 
Last edited by a moderator:
Có cách nào để khi làm gì đấy mà ko đủ gỗ thì không hiện thông báo bằng âm thanh "not enough lumber" không nhỉ?
 
e là người mới có ai chỉ e cách hồi sinh tướng như thế nào không

Trong event unit sells a unit,điều kiện unit type of sold unit equal to tower Pick tất cả player muốn ko được xây loại tower đó rồi:
Mã:
Player - Make tower Unavailable for training/construction by (Picked player)

chỉ e hồi sinh tướng đi a e mò hoài mà không được
 
Last edited by a moderator:
mọi ng cho mình hỏi: làm sao để làm 1 unit khi vừa đc tạo ra (=trigger) nhưng ko đk đc nó
going như zombie của undying trong dota
 
Mã:
globals
    integer array CombatPoint
    boolean array CombatFlag
endglobals

function CombatCon takes nothing returns boolean
    return ((GetEventPlayerChatString() == "-st") or (GetUnitAbilityLevel(GetKillingUnit(),'A03J') > 0)) or (GetLearnedSkillBJ() == 'A03J')
endfunction

function CombatAct takes nothing returns nothing
    local unit u
    local player p
    if GetLearnedSkillBJ() == 'A03J' then
        set u = GetTriggerUnit()
        set p = GetOwningPlayer(u)
        set CombatFlag[GetConvertedPlayerId(p)] = true
    endif
    if GetEventPlayerChatString() == "-st" then
        set p = GetTriggerPlayer()
        if CombatFlag[GetConvertedPlayerId(p)] then
            call DisplayTextToForce(GetForceOfPlayer(p),( "Combat Points: " + ( I2S(CombatPoint[GetConvertedPlayerId(p)]) + "." )))
        endif
    else
        if (GetUnitAbilityLevel(GetKillingUnit(),'A03J') > 0) and (GetDyingUnit() == UNIT_TYPE_HERO) then
            set u = GetKillingUnit()
            set p = GetOwningPlayer(u)
            if CombatFlag[GetConvertedPlayerId(p)] then
                set CombatPoint[GetConvertedPlayerId(p)] = CombatPoint[GetConvertedPlayerId(p)] + 1
            endif
        endif
    endif
    set p = null
    set u = null
endfunction

//===========================================================================
function InitTrig_Combat_Mastery takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_HERO_SKILL )    
    set bj_forLoopAIndex = 0
    set bj_forLoopAIndexEnd = 11
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        call TriggerRegisterPlayerChatEvent( t, Player(GetForLoopIndexA()), "-st", true )
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
    call TriggerAddCondition(t,function CombatCon)
    call TriggerAddAction( t, function CombatAct )
    set t = null
endfunction
cho hỏi lỗi ở đâu mà khi -st thì CombatPoint nó không + thêm vào ( khi giết hero thì đáng ra nó phải từ 0 lên 1, đằng này nó cứ 0 hoài ).
Code khi học skill sẽ mở CombatPoint, cho phép giết 1 Hero tăng 1 charge và -st để ktra số charge.
 
Ai hướng dẫn cho mình làmc cái hình Minimap với. Mình thấy hiện cái mini map mặc dịnh ra thì nó xấu, còn hide mini map thì lại ko đc bắt mắt và đẹp

P/S; Sao mình cứ xài model (download) thì người nó không hiện gì vậy, trong suốt luôn ko nhìn thấy gì. Vậy là sao? Con nào cũng vậy, ai hướng dẫn dùm mình cách khắc phục với
 
Chỉnh sửa cuối:
Back
Top