sukaraki
Donkey Kong
- 12/5/08
- 356
- 9
Mình thực sự không muốn rời GUI qua jass , vì đã quá quen với việc làm spell nói riêng và map nói chung bằng GUI. Nhưng vì dự án mới đây ,1 map build hero từ basic ra tới 32 hướng đi , thế nên có nhiều trường hợp các bạn build hero cùng hướng đi, giống skill nhau, mà GUI thì rất khó làm MUI - Multi Instancable gì gì đấy - tạm hiểu là spell mà nhiều con cùng cast được. Thế là đành phải bỏ GUI thôi
. Bây giờ vì thời gian gấp rút , mà kiến thức thì nông cạn, nên mình lập topic này để anh em đang học Jass vào cùng nhau thảo luận và chia sẻ Code spell của mình.
Mở hàng : các bạn check leak dùm mình spell mới làm này - mò mãi vẫn ko hiểu bị leak chỗ nào T_T
Spell mega crushing wave hiệu ứng đại hồng thủy cực khủng , cực mượt , bao nhiêu con cast cũng đc :cool: , có điều sau khi cast vài chục phát là máy đơ luôn T_T
test : 10 con phù thủy cùng cast 8 lần thì máy giựt. 10X8 = 80 lần cast.
. Bây giờ vì thời gian gấp rút , mà kiến thức thì nông cạn, nên mình lập topic này để anh em đang học Jass vào cùng nhau thảo luận và chia sẻ Code spell của mình.Mở hàng : các bạn check leak dùm mình spell mới làm này - mò mãi vẫn ko hiểu bị leak chỗ nào T_T
Spell mega crushing wave hiệu ứng đại hồng thủy cực khủng , cực mượt , bao nhiêu con cast cũng đc :cool: , có điều sau khi cast vài chục phát là máy đơ luôn T_T
function Trig_mega_crushing_wave_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'sk07' ) ) then
return false
endif
return true
endfunction
function casmega takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit dum = GHUnit( t, "dummy")
local unit cas = GHUnit( t, "caster")
call SetUnitPositionLocFacingBJ( dum, GetRandomLocInRect(RectFromCenterSizeBJ(GetUnitLoc(cas), 250.00, 250.00)), GetUnitFacing(cas) )
call IssuePointOrderLocBJ( dum, "carrionswarm", PolarProjectionBJ(GetUnitLoc(dum), 256, GetUnitFacing(cas)) )
endfunction
function Trig_mega_crushing_wave_Actions takes nothing returns nothing
local unit dum
local timer t
local unit cas
local location loc
local location casloc = GetUnitLoc(GetSpellAbilityUnit())
set t = CreateTimer()
set cas = GetSpellAbilityUnit()
call SHHandle(t , "caster" , cas )
set loc = GetSpellTargetLoc()
call CreateNUnitsAtLoc( 1, 'hgyr', GetOwningPlayer(cas), GetUnitLoc(cas), DistanceBetweenPoints(GetUnitLoc(cas), loc) )
set dum = GetLastCreatedUnit()
call SHHandle(t , "dummy" , dum )
call UnitAddAbilityBJ( 'ACc3', dum )
call SetUnitVertexColorBJ( dum, 100, 100, 100, 100.00 )
call TimerStart(t , 0.03 , true , function casmega )
call TriggerSleepAction(1.3)
call FHL(t)
set cas = null
set t = null
set casloc = null
set loc = null
call RemoveUnit( dum )
set dum = null
call RemoveLocation( loc )
call RemoveLocation( casloc )
call DestroyTimer( t )
endfunction
//===========================================================================
function InitTrig_mega_crushing_wave takes nothing returns nothing
set gg_trg_mega_crushing_wave = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_mega_crushing_wave, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_mega_crushing_wave, Condition( function Trig_mega_crushing_wave_Conditions ) )
call TriggerAddAction( gg_trg_mega_crushing_wave, function Trig_mega_crushing_wave_Actions )
endfunction
test : 10 con phù thủy cùng cast 8 lần thì máy giựt. 10X8 = 80 lần cast.
. Vậy phải làm sao ? 

( đừng cười nhá) . Skill có 2 phần là Jump và Move
