Topic hỏi đáp (tập 3) về cách làm map

Status
Không mở trả lời sau này.
Em nghi bạn ấy nói về skill gọi ỏb trong map dday và skill mà bạn ấy base là skill Spirit Wolves quá :))
Base trên skill locust swarm đi bạn ơi \m/

Đúng là chiêu đó đó
Base trên summonwareeagle
Nhưng không hiểu sao nó không tự bay được

@ anh Tom: shared spell cooldown = false rồi đấy ạ
 
Nếu không nhầm thì bạn đã đọc cái tut làm skill này ở đâu đó đúng không? Còn không thì chắc bạn nghĩ tùm lum ra mà thôi :))
Nếu như muốn mấy viên đó bay lạon xạ thì dùng skill Locust Swarm ulti của Crypt Lord! (chĩ summon dc 1 type unit)
Còn custom tự mò vậy \m/
 
Thật ra thì 2 cái điều kiên đầu chỉ là 1 mà thui, nên khi mua 2 cái là nó combine lun.
Thế này tui chỉ bạn cách đơn giản nhất ( nhưng dài) dùng 2 if,
- If thứ 1, kiểm tra điều kiện 1 Công thức 1 Circlet of Nobility rùi add cho hero cái Amulet of Spell Shield đồng thời Remove cái công thức với cái Cỉclet
- If thứ 2, kiển tra điều kiện
((Hero manipulating item) has an item of type Circlet of Nobility) Equal to True

nếu true thì Remove nốt cái còn lại và thêm Effect vào
nếu false thì Remove cái Amulet of Spell Shield, đồng thời Create lại cho hero 1 cái Circlet với cái công thức

Nói rõ hơn dùm em cái khó hiểu wá ( hướng dẫn tận tình chút ) làm 1 cái vd đi.
 
Dạ cho hỏi là làm sao để cast 1 spell dạng như stampede mà con dính chưởng bị đẩy lùi ạ :D
 
Dạ cho hỏi là làm sao để cast 1 spell dạng như stampede mà con dính chưởng bị đẩy lùi ạ :D

Nghĩa là bị tê giác húc vào thì dash ấy hả?Hay là dùng 1 cái thì dash hết mấy thằng đứng gần?
 
Bị húc thì văng về hướng con đó húc :|
Na ná như cái chiu Knock Back vậy,wính 1 hit thì đẩy ngược về...
 
Spell này hơi khó, nhưng vẫn possible, có điều phải làm loop với MUI....8->
Kết hợp dạng move dummy với dash của anh Tom, chỉnh thành MUI
Sau đó create dummy mà cast spell
Nói vậy chắc cũng hiểu chứ, đâu có quá khó đâu nhỉ ;;)
 
Spell này hơi khó, nhưng vẫn possible, có điều phải làm loop với MUI....8->
Kết hợp dạng move dummy với dash của anh Tom, chỉnh thành MUI
Sau đó create dummy mà cast spell
Nói vậy chắc cũng hiểu chứ, đâu có quá khó đâu nhỉ ;;)

"đâu có quá khó" thì làm thử đi, nói không thì ai chả nói đc =))
 
Trong map dota bản cũ có thằng Storrm spirit có chiêu 3(cũ) là cứ sau khi đánh 5 cú thì trên tay no sẽ có cục điện,ở cú đánh tiếp theo,tức là cú thứ 6,nó sẽ tung ra 1 quả thunder clap ở vị trí của mục tiêu mà nó đánh.Ai chỉ em làm spell pasive này với,nhân tiện cho em hỏi công thức chung của skill kiểu:sau x cú đánh thì ord effect y attach vào hero,gây dam z.
 
Trong map dota bản cũ có thằng Storrm spirit có chiêu 3(cũ) là cứ sau khi đánh 5 cú thì trên tay no sẽ có cục điện,ở cú đánh tiếp theo,tức là cú thứ 6,nó sẽ tung ra 1 quả thunder clap ở vị trí của mục tiêu mà nó đánh.Ai chỉ em làm spell pasive này với,nhân tiện cho em hỏi công thức chung của skill kiểu:sau x cú đánh thì ord effect y attach vào hero,gây dam z.

tạo 1 biến integer, khi tấn công thì +1, đến khi=5 thì tạo attach, đến 6 thì set nó về 1 và thunder clap
nói thế đã hiểu chưa:>
 
Tạo 1 passive từ Poison với buff mới (để 3 slot buff là 1 buff mới tạo)
Dùng DDS (damage detection system) để biết lúc nào unit này đánh trúng.
Khi một unit take dmg mà có buff poison mới trên tức là đã bị đánh trúng => trigger "Overload" thôi

[Spell] Overload <-- demo
 
need help! sao e đổi thư mục của war thì k còn tiếng và icons nữa:((
 
Cám ơn anh Tôm,nhân tiện cho em hỏi luôn,tại sao spell của mọi người ở dòng else-action thường để trống,tại sao ko để là do nothing?
 
Cho em hỏi trong 2 trigger có nhiều function, giá trị của biến local có dc sử dụng trong tất cả các function hay chỉ sử dụng được trong function đã giai báo nó?

Mã:
function Trig_Nature_Spirit_Field_Action_Copy_Func002001003 takes nothing returns boolean
    return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_Nature_Spirit_Field_Unit)) == true )
endfunction

function Trig_Nature_Spirit_Field_Action_Copy_Func002A takes nothing returns nothing
    call UnitDamageTargetBJ( [B]unit1[/B], GetEnumUnit(), ( I2R(GetUnitAbilityLevelSwapped('A00H', [B]unit1[/B])) * ( 5.00 * I2R(GetHeroStatBJ(bj_HEROSTAT_STR, unit1, true)) ) ), ATTACK_TYPE_CHAOS, DAMAGE_TYPE_DIVINE )
    call AddSpecialEffectTargetUnitBJ( "origin", GetEnumUnit(), "Units\\NightElf\\Wisp\\WispExplode.mdl" )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
endfunction

function Trig_Nature_Spirit_Field_Action_Copy_Func004C takes nothing returns boolean
    if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, [B]unit1[/B]) >= ( 0.10 * GetUnitStateSwap(UNIT_STATE_MAX_MANA, [B]unit1[/B]) ) ) ) then
        return false
    endif
    return true
endfunction

function Trig_Nature_Spirit_Field_Action_Copy_Actions takes nothing returns nothing
    local integer integer1
    local [B]unit unit1[/B]
    set integer1 = 0
    if (integer1 <= 0) then
        set integer1 = (integer1 + 1)
        set [B]unit1 = udg_Nature_Spirit_Field_Unit[/B]
    else
        call DoNothing(  )
    endif
    call SetUnitManaBJ( [B]unit1[/B], ( GetUnitStateSwap(UNIT_STATE_MANA, unit1) - ( 0.10 * GetUnitStateSwap(UNIT_STATE_MAX_MANA, [B]unit1[/B]) ) ) )
    call ForGroupBJ( GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(unit1), Condition(function Trig_Nature_Spirit_Field_Action_Copy_Func002001003)), function Trig_Nature_Spirit_Field_Action_Copy_Func002A )
    call TriggerSleepAction( 0.50 )
    if ( Trig_Nature_Spirit_Field_Action_Copy_Func004C() ) then
        call ConditionalTriggerExecute( GetTriggeringTrigger() )
    else
        call IssueImmediateOrderBJ( [B]unit1[/B], "unimmolation" )
        set unit1 = null
    endif
endfunction

Đầu tiên, trigger này do một trigger khác kíck hoạt bằng lệnh "Trigger - Run trigger", trong đó có lưu một giá trị unit trong udg_Nature_Spirit_Field_Unit.
Tiếp theo là gán unit1 = udg_Nature_Spirit_Field_Unit để có thể MUI dc

Nhưng không biết giá trị của unit1 có dc dùng trong các function khác không?

P/S: Ai chỉ em cách hidden nội dung bài viết trong một nút, khi click sẽ bung nội dung ra. Thấy mấy forum khác có cái này, thu lại cho gọn, để thẻ CODE nhìn tùm lum quá
 
Cám ơn anh Tôm,nhân tiện cho em hỏi luôn,tại sao spell của mọi người ở dòng else-action thường để trống,tại sao ko để là do nothing?

Để trống thì nó cũng khác gì Do nothing? Thêm Do nothing vào để nó load lâu hơn và nặng map hơn à? =))

P/s: Trong 4rum này kô có ai tên "Tôm" nhéb-(.
 
Cám ơn anh Tôm,nhân tiện cho em hỏi luôn,tại sao spell của mọi người ở dòng else-action thường để trống,tại sao ko để là do nothing?

Ở dòng đó nếu không có action nào thì trigger sẽ không làm j hết, coi như "Do Nothing". Còn lý do thường để trống thứ nhất là không mất thời gian, thứ hai là giảm dung lượng map (giảm được bao nhiêu hay bấy nhiêu ;;))
 
Cho em hỏi trong 2 trigger có nhiều function, giá trị của biến local có dc sử dụng trong tất cả các function hay chỉ sử dụng được trong function đã giai báo nó?

Mã:
function Trig_Nature_Spirit_Field_Action_Copy_Func002001003 takes nothing returns boolean
    return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_Nature_Spirit_Field_Unit)) == true )
endfunction

function Trig_Nature_Spirit_Field_Action_Copy_Func002A takes nothing returns nothing
    call UnitDamageTargetBJ( [B]unit1[/B], GetEnumUnit(), ( I2R(GetUnitAbilityLevelSwapped('A00H', [B]unit1[/B])) * ( 5.00 * I2R(GetHeroStatBJ(bj_HEROSTAT_STR, unit1, true)) ) ), ATTACK_TYPE_CHAOS, DAMAGE_TYPE_DIVINE )
    call AddSpecialEffectTargetUnitBJ( "origin", GetEnumUnit(), "Units\\NightElf\\Wisp\\WispExplode.mdl" )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
endfunction

function Trig_Nature_Spirit_Field_Action_Copy_Func004C takes nothing returns boolean
    if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, [B]unit1[/B]) >= ( 0.10 * GetUnitStateSwap(UNIT_STATE_MAX_MANA, [B]unit1[/B]) ) ) ) then
        return false
    endif
    return true
endfunction

function Trig_Nature_Spirit_Field_Action_Copy_Actions takes nothing returns nothing
    local integer integer1
    local [B]unit unit1[/B]
    set integer1 = 0
    if (integer1 <= 0) then
        set integer1 = (integer1 + 1)
        set [B]unit1 = udg_Nature_Spirit_Field_Unit[/B]
    else
        call DoNothing(  )
    endif
    call SetUnitManaBJ( [B]unit1[/B], ( GetUnitStateSwap(UNIT_STATE_MANA, unit1) - ( 0.10 * GetUnitStateSwap(UNIT_STATE_MAX_MANA, [B]unit1[/B]) ) ) )
    call ForGroupBJ( GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(unit1), Condition(function Trig_Nature_Spirit_Field_Action_Copy_Func002001003)), function Trig_Nature_Spirit_Field_Action_Copy_Func002A )
    call TriggerSleepAction( 0.50 )
    if ( Trig_Nature_Spirit_Field_Action_Copy_Func004C() ) then
        call ConditionalTriggerExecute( GetTriggeringTrigger() )
    else
        call IssueImmediateOrderBJ( [B]unit1[/B], "unimmolation" )
        set unit1 = null
    endif
endfunction

Đầu tiên, trigger này do một trigger khác kíck hoạt bằng lệnh "Trigger - Run trigger", trong đó có lưu một giá trị unit trong udg_Nature_Spirit_Field.
Tiếp theo là gán unit1 = udg_Nature_Spirit_Field để có thể MUI dc

Nhưng không biết giá trị của unit1 có dc dùng trong các function khác không?

P/S: Ai chỉ em cách hidden nội dung bài viết trong một nút, khi click sẽ bung nội dung ra. Thấy mấy forum khác có cái này, thu lại cho gọn, để thẻ CODE nhìn tùm lum quá

Biến Local là biến "cục bộ", chỉ dùng trong 1 function, sao mà dùng cho các function khác đc? Còn muốn dùng thì có nhiều cách.

Cách 1
Cách 2

Nhưng xem qua đoạn code thì tôi thấy bạn mới bắt đầu học Jass, vì thế tốt nhất nên dùng Cách 1, khi nào thạo cách 1 rồi mới chuyển qua cách 2 ( vì về sau này cách 1 sẽ kô dùng đc nữa, mà hiện giờ nó cũng "quá đát" rồi ).

P/s: Thẻ ẩn nội dung là [spoil]Text[/spoil]
 
P/s: Trong 4rum này kô có ai tên "Tôm" nhé.

Vậy mà hỏi "anh Tôm ơi,làm sao/cho em hỏi..xyz..vv..?"vẫn có 1 người tốt bụng đứng ra trả lời đấy.
Sẵn đây cho em hỏi tiếp là chiêu 3 con Lanya trong dota có đoạn đánh vào 1 đống unit đứng thẳng hàng với nhau thì ăn dam tương đương nhau(giống như cleave attack)thì làm như thế nào ạ,có phải là dùng face angle đúng ko ạ?
 
Sẵn đây cho em hỏi tiếp là chiêu 3 con Lanya trong dota có đoạn đánh vào 1 đống unit đứng thẳng hàng với nhau thì ăn dam tương đương nhau(giống như cleave attack)thì làm như thế nào ạ,có phải là dùng face angle đúng ko ạ?

"nghiên cứu" unit Glaive Thrower của Night Elf
 
YAN[asian];12173671 nói:
Trả lời hộ mình với...
1. Làm 1 trigger : nếu unit di chuyển thì làm mờ unit ấy đi x%, nếu unit dừng lại thì trở lại bt, nếu di chuyển tiếp thì lại mờ....

Thế cái này thì chịu chết ah :( ?
 
Status
Không mở trả lời sau này.
Back
Top