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

Status
Không mở trả lời sau này.
Variables chỉ đơn giản là biến dùng để lưu lại 1 "thứ gì đó" vào nó như một phép tính dài mà ko muốn phải viết đi viết lại nhiều lần,... Bạn đã từng giải các bài toán? Và bạn chắc cũng hiểu vì sao một số bài phải đặt biến khi giải nó? Các hàm trong WE cũng như vậy. Nói chung là variables rất dễ hiểu, và khi bạn hiểu đc thì việc sử dụng nó cũng không có gì khó khăn.
Tuy nhiên một số trường hợp bắt buộc phải dùng đến variables. Đó là việc sử dụng các hàm có liên quan đến point và group. Phần này bạn xem thêm ở phần Remove Leak của anh Tom
 
Cho mình hỏi cái này, lấy ví dụ cho mọi người dễ hiểu.
Có 8 trigger làm create 8 con Hero và ở mỗi trigger có 1 dòng trigger set Last create unit ( nghĩa là như thế này Set Hero[1] = Last create unit, dành cho player 1 và cứ thế tiếp đến 8 với biến Hero là Unit có array)
Rồi sau đó 1 khoảng thời gian sau khi set 8 Hero đó, giờ có 1 trong 8 Hero đó bị remove khỏi game, mình lấy ví dụ sẽ là Hero[3] có nghĩa là player 3 bị remove con Hero[3] khỏi game - sẽ ko tồn tại biến Hero[3], vậy giờ mình viết 1 trigger cho create ra 1 Hero[3] mới thế vào player 3 đó, mình viết làm sao để set biến Hero[3] mới này chính là biến Hero[3] cũ bị remove khỏi game.
Ai giải thích hộ bài này, please :((
 
^ Không hiểu lời bạn nói lắm, mình remove hero nào thì mình set lại hero đó, đơn giản thôi mà?
 
Chỉnh sửa cuối:
Thật ra là được, bạn cứ open map bạn muốn và trên thanh công cụ có phần Window, trong đó sẽ có tên những map bạn đã open qua, khi chuyển qua map khác không cần save, lại nhanh hơn khi bình thường ta vẫn làm (save rùi mới open map khác) cho đến khi bạn làm xong tất cả thì lúc thoát ra nó sẽ duyệt qua từng map mà bạn đã open và hỏi xem có save lại không...nhớ ok nhé :D

Mình cũng biết cái này. Nhưng save như thế mà dùng jassnewgen thì không an toàn lắm, làm vài lần là CRASH.
Ý mình muốn nói là mở 2 cửa sổ WE cơ.
 
Variables chỉ đơn giản là biến dùng để lưu lại 1 "thứ gì đó" vào nó như một phép tính dài mà ko muốn phải viết đi viết lại nhiều lần,... Bạn đã từng giải các bài toán? Và bạn chắc cũng hiểu vì sao một số bài phải đặt biến khi giải nó? Các hàm trong WE cũng như vậy. Nói chung là variables rất dễ hiểu, và khi bạn hiểu đc thì việc sử dụng nó cũng không có gì khó khăn.
Tuy nhiên một số trường hợp bắt buộc phải dùng đến variables. Đó là việc sử dụng các hàm có liên quan đến point và group. Phần này bạn xem thêm ở phần Remove Leak của anh Tom

KL: giải bài toán = cách lập phương trình. Thực ra variable cũng không phải là quá phức tạp như bạn meomeo nói, nhưng khi tìm hết và biết sử dụng tất cả biến ở nhiều trường hợp thì quả thực khó, đặc biệt là array, với biến đặt integer hay real thì 1 biến như Point, Unit sẽ có array rất phức tạp và dài dòng.
 
au`, mấy anh giải thích quá hay

Thế cho em hỏi . Làm sao để cho 1 hero có 2 kiểu fam như trong DotA,
Vd: Yu mua rìu fam thì nhảy lên nhảy xuống
Tauren thì ịn lên ịn xuống .....
 
^ Không hiểu lời bạn nói lắm, mình remove hero nào thì mình set lại hero đó, đơn giản thôi mà?
Nếu chỉ remove rồi set lại Hero đó thì ai hỏi làm gì. Ý muốn hỏi là như thế này, dùng 1 biến set 8 thằng Hero, trong khoảng thời gian chơi, ví dụ 1 trong 8 thằng bị remove khỏi game và xuất hiện 1 thằng khác vào thằng vừa bị remove - phải đúng thứ tự thằng bị remove.
Như thế này cho dễ hiểu
Set Hero[1] = Last create unit ( cho là thằng tên A)
Set Hero[2] = Last create unit ( B)
Set Hero[3] = Last create unit ( C)
Set Hero[4] = Last create unit ( D)
Set Hero[5] = Last create unit ( E)
Set Hero[6] = Last create unit ( F)
Set Hero[7] = Last create unit ( G)
Set Hero[8] = Last create unit ( H)
8 thằng này đc set rõ khi 8 player chọn Hero. ( 8 trigger cho 8 player chọn)
Sau đó 1 trong số 8 thằng này bị remove khỏi game. Ví dụ: Hero[4] tức là thằng D, có nghĩa là biến Hero[4] thằng D này ko còn là thằng D, đồng nghĩa hĩu là chỉ có từ Hero[1] > [3] và từ [3] >[8], còn Hero[4] giờ chưa đc set. Bây giờ create và thay thằng P vào chỗ biến Hero[4] của thằng D, nhưng phải viết trigger set làm sao cho thay đúng thứ tự như thế này Hero[4] = thằng P. Đây là ví dụ remove thằng Hero[4], giờ nếu nó ngẫu nhiên 8 thằng thì set mới căng @@
 
Chỉnh sửa cuối:
Bạn à, theo mình nghĩ là hero trong game không thể nào bị remove trong quá trình chơi trừ khi bạn dùng lệnh để remove nó đi. Và nếu thế thì bạn tất phải biết set luôn ngay lúc remove ấy nhỉ...
 
mình có thể download cái wings của con doom guard ở đâu vậy?
 
Ai chỉ mình làm 1 cái quest mỗi người chỉ nhận được 1 lần thôi
 
cái đó thì dùng Jass bạn ạ. Bạn down map Kiếm Thế của anh Rex về (v1.1, v1.3) và mở ra xem
 
kiếm một file nhạc đuôi là .mp3, import vào map, sửa đường dẫn thành Sounds\tên file
 
Cho hỏi trong WE có các effect nào mà khi nổ thì để lại ''di tích'' trên mặt đất ý nhỉ?(tất cả các effect nhé)
 
war stomp , thunder clap, flame strike , cái skill 1 của tiny trong dota nữa mà mình quên tên rồi và sau cùng là cái effect lúc trái bomb ulti của techies bị phá.
Biết dc nhiêu đóa
 
war stomp , thunder clap, flame strike , cái skill 1 của tiny trong dota nữa mà mình quên tên rồi và sau cùng là cái effect lúc trái bomb ulti của techies bị phá.
Biết dc nhiêu đóa

Avalanche, burrow, nhà nổ, .....
 
war stomp , thunder clap, flame strike , cái skill 1 của tiny trong dota nữa mà mình quên tên rồi và sau cùng là cái effect lúc trái bomb ulti của techies bị phá.
Biết dc nhiêu đóa

Ý bạn la skill Cluiser Rocket của tinker chứ gì
 
Làm sao đẽ khi active spell Stom Bolt vào target thì nó bay lên trởi rùi rơi xuống đất thì slow ? KO có tun . Thanks nhìu
 
mình có thể download cái wings của con doom guard ở đâu vậy?
http://www.mediafire.com/?muziyfeijmy

Cho hỏi trong WE có các effect nào mà khi nổ thì để lại ''di tích'' trên mặt đất ý nhỉ?(tất cả các effect nhé)
Cái file mình đính kèm ở dưới có tất cả danh sách các upbersplat đó, bạn có thể xem qua nếu cần.

Stork[gm];17853663 nói:
lonewolf: bạn làm giúp mình cái nether strike của bara nhé nhưng mà khi cast xong thì knockback trong 300 AoE các unit xung quanh bị cast.
 

Attachments

cho mình hỏi vấn để sau cái :
Cho mình hỏi trigger này cần thêm hay sửa chỗ nào mà đánh vào creep thì bình thường không sao, nhưng khi đánh vào hero thì đơ lun @@
Mã:
function Trig_FOKS_Action_Conditions takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A03B', GetAttacker()) > 0 ) ) then
        return false
    endif
    return true
endfunction

function FOKS_Damage takes nothing returns nothing
local unit u = GetTriggerUnit()
local unit hero = GetEventDamageSource()
local location point = GetUnitLoc(u)
     call CreateNUnitsAtLoc( 1, 'h001', GetOwningPlayer(hero), point, bj_UNIT_FACING )
     call UnitApplyTimedLifeBJ( 1.00, 'BTLF', GetLastCreatedUnit() )
     call UnitAddAbilityBJ( 'A03C', GetLastCreatedUnit() )
     call SetUnitAbilityLevelSwapped( 'A03C', GetLastCreatedUnit(), GetUnitAbilityLevelSwapped('A03B', hero) )
     call IssueImmediateOrderBJ( GetLastCreatedUnit(), "fanofknives" ) 
call RemoveLocation(point)
set point = null
endfunction

function Trig_FOKS_Action_Actions takes nothing returns nothing
local trigger t = CreateTrigger()
local unit attacker = GetAttacker()
local triggeraction taction = TriggerAddAction(t, function FOKS_Damage)
local integer chance = GetRandomInt(1, 100)
local timer tx = CreateTimer()
    if ( chance <= ( 15 + ( GetUnitAbilityLevelSwapped('A03B', attacker) * 5 ) ) ) then
        call TimerStart(tx,4,false,null)
        call TriggerRegisterUnitEvent(t,GetAttackedUnitBJ(), EVENT_UNIT_DAMAGED)
        loop
            exitwhen (TimerGetRemaining(tx)<=0) or (GetTriggerEvalCount(t) == 1)
            call TriggerSleepAction(1.0)
        endloop
    endif
call DestroyTrigger(t)
call DestroyTimer(tx)
set taction = null
set attacker = null
set t=null
set tx = null
endfunction

//===========================================================================
function InitTrig_FOKS_Action takes nothing returns nothing
    set gg_trg_FOKS_Action = CreateTrigger(  )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_FOKS_Action, Player(PLAYER_NEUTRAL_AGGRESSIVE), EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_FOKS_Action, Player(PLAYER_NEUTRAL_AGGRESSIVE), EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddCondition( gg_trg_FOKS_Action, Condition( function Trig_FOKS_Action_Conditions ) )
    call TriggerAddAction( gg_trg_FOKS_Action, function Trig_FOKS_Action_Actions )
endfunction
 
Status
Không mở trả lời sau này.
Back
Top