好冷光环。。取名真的很麻烦的说。。
永恒的灌水帝吧
全部回复
仅看楼主
level 15
najizhimo 楼主
◆技能名称: 好冷光环
◆技能介绍: 使250范围的一切单位处在好冷光环的作用之下,降低其50%的移动速度和转身速率,且在5秒内会冻结碎裂。单位在离开光环范围时将缓慢恢复温度,当温度恢复时,移动速度和转身速率才会恢复。(无视无敌、魔免)
◆技能预览: 看视频
◆技能来源: 填坑属性
◆UI版本: 1.24以上随意


地图在这里:wow8.org/bbs/viewthread.php?tid=176926&extra=
2012年03月14日 02点03分 1
level 1
叼爆了...膜拜中。。。
2012年03月14日 03点03分 2
level 15
najizhimo 楼主
library tsunami initializer tsunamiT
globals
hashtable HT=null
group Gadd
endglobals
function GroupAddAction takes nothing returns nothing
call GroupAddUnit(Gadd,GetEnumUnit())
endfunction
function GroupAdd takes group g,group G returns nothing
set Gadd=G
call ForGroup(g,function GroupAddAction)
set Gadd=null
endfunction
private function tsunamiA3 takes nothing returns nothing
local timer t=GetExpiredTimer()
local integer pk=GetHandleId(t)
local integer i
local real r=0
local unit u
local unit u2
local real x=GetUnitX(LoadUnitHandle(HT,pk,1))
local real y=GetUnitY(LoadUnitHandle(HT,pk,1))
local group g=CreateGroup()
local group G=LoadGroupHandle(HT,pk,3)
if IsUnitType(LoadUnitHandle(HT,pk,1),UNIT_TYPE_DEAD) then
set r=0
loop
set r=r+1
call SetUnitX(LoadUnitHandle(HT,pk,R2I(100+r)),GetRectMaxX(GetWorldBounds()))
call SetUnitY(LoadUnitHandle(HT,pk,R2I(100+r)),GetRectMaxY(GetWorldBounds()))
call SetUnitX(LoadUnitHandle(HT,pk,R2I(200+r)),GetRectMaxX(GetWorldBounds()))
call SetUnitY(LoadUnitHandle(HT,pk,R2I(200+r)),GetRectMaxY(GetWorldBounds()))
exitwhen r==12
endloop
else
call GroupEnumUnitsInRange(g,x,y,250,null)
call GroupRemoveUnit(g,LoadUnitHandle(HT,pk,1))
loop
set u=FirstOfGroup(g)
exitwhen u==null
call GroupRemoveUnit(g,u)
if IsUnitType(u,UNIT_TYPE_DEAD)==false then
call SaveBoolean(HT,GetHandleId(u),65536,true)
if IsUnitInGroup(u,G)==false then
call GroupAddUnit(G,u)
if UnitAddAbility(u,'A000') then
call SetUnitTurnSpeed(u,GetUnitTurnSpeed(u)/2)
call SaveInteger(HT,GetHandleId(u),65535,250)
endif
endif
set i=LoadInteger(HT,GetHandleId(u),65535)
set i=i-5
if i<=0 then
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Undead\\FreezingBreath\\FreezingBreathMissile.mdl",GetUnitX(u),GetUnitY(u)))
call DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\FrostWyrmMissile\\FrostWyrmMissile.mdl",GetUnitX(u),GetUnitY(u)))
set u2=CreateUnit(GetOwningPlayer(u),'u001',GetUnitX(u),GetUnitY(u),0)
call UnitApplyTimedLife(u2,'BTLF',3)
call SetUnitTimeScale(u2,0.7)
call GroupRemoveUnit(G,u)
call SaveInteger(HT,GetHandleId(u),65535,0)
call SetUnitVertexColor(u,255,255,255,255)
call UnitRemoveAbility(u,'A000')
call SetUnitTurnSpeed(u,GetUnitDefaultTurnSpeed(u))

2012年03月14日 03点03分 3
level 15
najizhimo 楼主
call SetUnitExploded(u,true)
call KillUnit(u)
else
call SetUnitVertexColor(u,i,i,255,255)
call SaveInteger(HT,GetHandleId(u),65535,i)
endif
endif
endloop
loop
set r=r+1
call SetUnitX(LoadUnitHandle(HT,pk,R2I(100+r)),x)
call SetUnitY(LoadUnitHandle(HT,pk,R2I(100+r)),y)
call SetUnitFlyHeight(LoadUnitHandle(HT,pk,R2I(100+r)),GetUnitFlyHeight(LoadUnitHandle(HT,pk,1)),0)
call SetUnitX(LoadUnitHandle(HT,pk,R2I(200+r)),x)
call SetUnitY(LoadUnitHandle(HT,pk,R2I(200+r)),y)
call SetUnitFlyHeight(LoadUnitHandle(HT,pk,R2I(200+r)),GetUnitFlyHeight(LoadUnitHandle(HT,pk,1)),0)
exitwhen r==12
endloop
set u2=null
endif
call GroupAdd(G,g)
loop
set u=FirstOfGroup(g)
exitwhen u==null
call GroupRemoveUnit(g,u)
if IsUnitType(u,UNIT_TYPE_DEAD) then
call GroupRemoveUnit(G,u)
call SetUnitVertexColor(u,255,255,255,255)
call UnitRemoveAbility(u,'A000')
call SetUnitTurnSpeed(u,GetUnitDefaultTurnSpeed(u))
else
if LoadBoolean(HT,GetHandleId(u),65536)==false then
set i=LoadInteger(HT,GetHandleId(u),65535)
set i=i+5
if i>=250 then
call SaveInteger(HT,GetHandleId(u),65535,255)
call SetUnitVertexColor(u,255,255,255,255)
call UnitRemoveAbility(u,'A000')
call UnitRemoveAbility(u,'B000')
call SetUnitTurnSpeed(u,GetUnitDefaultTurnSpeed(u))
call GroupRemoveUnit(G,u)
else
call SetUnitVertexColor(u,i,i,255,255)
call SaveInteger(HT,GetHandleId(u),65535,i)
endif
endif
endif
call SaveBoolean(HT,GetHandleId(u),65536,false)
endloop
call DestroyGroup(g)
set t=null
set g=null
set G=null
endfunction
private function tsunamiA2 takes nothing returns nothing
local timer t=GetExpiredTimer()
local timer t2
local integer pk=GetHandleId(t)
local integer pk2
local unit u=LoadUnitHandle(HT,pk,1)
local real i=LoadReal(HT,pk,2)
local real r=0
local real x
local real y
local unit u2
set i=i+1
if LoadTimerHandle(HT,pk,2)==null then
set t2=CreateTimer()
set pk2=GetHandleId(t2)
call SaveUnitHandle(HT,pk2,1,u)
call SaveTimerHandle(HT,pk2,2,t2)
call SaveGroupHandle(HT,pk2,3,CreateGroup())
call TimerStart(t2,0.1,true,function tsunamiA3)
else
set t2=LoadTimerHandle(HT,pk,2)
set pk2=GetHandleId(t2)
endif
loop
set r=r+30
set x=GetUnitX(u)+Cos(r*bj_DEGTORAD)*50
set y=GetUnitY(u)+Sin(r*bj_DEGTORAD)*50
set u2=CreateUnit(GetOwningPlayer(u),'u000',GetUnitX(u),GetUnitY(u),r)
call SetUnitVertexColor(u2,255,255,255,0)
call SaveUnitHandle(HT,pk2,R2I(i*100+r/30),u2)
exitwhen r==360
endloop
if i>=2 then
call FlushChildHashtable(HT,pk)
call DestroyTimer(t)
else
call SaveReal(HT,pk,2,i)
endif
set u=null
set u2=null
set t=null
set t2=null
endfunction
private function tsunamiA takes nothing returns nothing
local timer t
local integer pk
if GetLearnedSkill()=='A001' then
set t=CreateTimer()
set pk=GetHandleId(t)
call SaveUnitHandle(HT,pk,1,GetTriggerUnit())
call TimerStart(t,0.5,true,function tsunamiA2)
set t=null
endif
endfunction
private function tsunamiT takes nothing returns nothing
local trigger t=CreateTrigger()
call TriggerRegisterPlayerUnitEvent(t,Player(0),EVENT_PLAYER_HERO_SKILL,null)
call TriggerAddCondition(t,Condition(function tsunamiA))
set t=null
call FlushParentHashtable(HT)
set HT=InitHashtable()
endfunction
endlibrary
2012年03月14日 03点03分 4
level 11
哇噻
2012年03月14日 04点03分 6
level 15
najizhimo 楼主
回复5楼:去掉杂杂的百行不到吧。
2012年03月14日 08点03分 7
level 14
哇顶一个以示支持(虽然本来就是第三贴...)
2012年03月14日 12点03分 8
level 11
感觉进入光环2至3秒后就没机会出去了,而且是直接杀死,有点狠
2012年03月21日 23点03分 9
level 15
najizhimo 楼主
回复9楼:这个演示设定的时间是5秒冻裂,可以自调
2012年03月21日 23点03分 10
level 14
我拿你这光环出去招摇撞骗了 忽悠别人去WE吧 招到人是不是给点奖励啊[揉脸]
2012年05月10日 13点05分 11
level 15
najizhimo 楼主
回复11楼:就一个技能意义不大
2012年05月11日 00点05分 12
level 4
支持驱散吗
2012年05月11日 02点05分 13
level 15
najizhimo 楼主
回复13楼:减速效果不会被驱散。
2012年05月11日 03点05分 14
level 1
怎么改秒?
2013年08月06日 08点08分 16
不会J的就不要移植。
2013年08月06日 08点08分
@najizhimo 帮个忙
2013年08月06日 08点08分
JASS太复杂,没太多时间研究,又希望有新技能,所以没办法
2013年08月06日 08点08分
回复 Aabbccdef159 :那你自己试着用T做一个出来呗,正好锻炼
2013年08月06日 09点08分
1