> Your paralyzing shot's anti hp regeneration is quite impossible.
No, actually HP/MP regeneration can be disabled but requires adding some additional code to every healing spell (which aren't that many so I doubt it would be a problem).
globals
private constant real AntiRegenDuration = 3.00
private constant integer Tick = R2I(AntiRegenDuration / 0.03125) + 1
endglobals
struct AntiRegen
unit Target
real HP
integer ticks
private method periodic takes nothing returns nothing
local AntiRegen ar = this
if ar.ticks < Tick then
if GetWidgetLife(ar.Target) > ar.HP then
call SetUnitState(ar.Target, UNIT_STATE_LIFE, ar.HP)
else
set ar.HP = GetWidgetLife(ar.Target)
endif
set ar.ticks = ar.ticks + 1
else
call ar.stopPeriodic()
call ar.destroy()
endif
endmethod
implement T32x
static method BEGIN takes unit u returns nothing
local AntiRegen ar = AntiRegen.allocate()
set ar.Target = u
set ar.HP = GetWidgetLife(ar.Target)
set ar.ticks = 1
call ar.startPeriodic()
endmethod
method onDestroy takes nothing returns nothing
set .Target = null
endmethod
endstruct