Суть в том, чтобы уравнить процентные соотношения хп кастера и цели на их среднее значение. Что-то до меня долго доходит, вот код:
unit u = GetTriggerUnit();
unit t = GetSpellTargetUnit();
real hpp1 = GetPercHP(u); //return maxhp / hp
real hpp2 = GetPercHP(t);
real val = (hpp1 + hpp2) * 0.5;
SetPercHP(u,val); //hp = maxhp * (val * 0.01);
SetPercHP(t,val);

Принятый ответ

%хп это 100*hp/maxhp а не maxhp/hp
`
ОЖИДАНИЕ РЕКЛАМЫ...