|
发表于 2008-3-17 23:49:57
|
显示全部楼层
function UnknowAbility takes nothing returns nothing
local unit tu=GetTriggerUnit()
local unit u=GetSpellTargetUnit()
local real ablv = I2R(GetUnitAbilityLevel(tu,GetSpellAbilityId()) )*0.1//每级提高10%伤害(生命恢复量)想提高更大的数值就把0.1改为更大的数
local real oldlife = GetUnitState(u,UNIT_STATE_LIFE)
local real newlife = GetUnitState(u,UNIT_STATE_MAX_LIFE)*GetRandomReal(0.20+ablv,0.5+ablv)//最小恢复20%基础+技能等级X10%~最大50%基础+技能等级X10%
local real nowlife = newlife
if(oldlife>newlife)then
set nowlife=GetUnitState(u,UNIT_STATE_MAX_LIFE)-oldlife
endif
call SetUnitState(u,UNIT_STATE_LIFE,oldlife+nowlife)
call TriggerSleepAction(0.00)
loop
exitwhen GetUnitAbilityLevel(u,'BNso')<=0
call TriggerSleepAction(0.20)//精度自己拿捏
endloop
call UnitDamageTarget(tu,u,nowlife, true, false, ATTACK_TYPE_MELEE, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)//能获取伤害来源和凶手单位
//call SetUnitState(u,UNIT_STATE_LIFE,GetUnitState(u,UNIT_STATE_LIFE)-nowlife)//不能获取伤害来源和凶手单位,自己选择
set tu =null
set u =null
endfunction
修改了下,现在对满血的单位不再是秒杀了,而是恢复了目标多少生命,就让他损失多少生命,生命量随着技能等级提升而提升,具体改哪儿看注释
持续时间由你技能的持续时间决定,说具体一点是目标的BUFF消失后,才会对之进行伤害.
如果目标BUFF被驱散掉(如分身和驱散魔法),那就会随后扣除生命,如果技能CD短于BUFF持续时间,目标就一直不会扣除生命(因为一直有BUFF),直到BUFF消失,一但BUFF消失,你给他上了多少次该魔法,就会扣除多少次的伤害......太恐怖了,而且还是百分比扣 |
|