I have the Spell from Carnerox and want to add global variables, but I don't have that much experience with Jass. I want to write the healed value in global variables but I have no idea how. Can anyone help me?
It is about the following variables:
set udg_MB_Healed[0] = ( udg_MB_Healed[0] + d );
set udg_MB_HealedTotal[0] = ( udg_MB_HealedTotal[0] + d );
set udg_MB_Healed[GetConvertedPlayerId(GetOwningPlayer(u))] = ( udg_MB_Healed[GetConvertedPlayerId(GetOwningPlayer(u))] + d );
set udg_MB_HealedTotal[GetConvertedPlayerId(GetOwningPlayer(u))] = ( udg_MB_HealedTotal[GetConvertedPlayerId(GetOwningPlayer(u))] + d );
The way I have tried it does not work.
It is about the following variables:
set udg_MB_Healed[0] = ( udg_MB_Healed[0] + d );
set udg_MB_HealedTotal[0] = ( udg_MB_HealedTotal[0] + d );
set udg_MB_Healed[GetConvertedPlayerId(GetOwningPlayer(u))] = ( udg_MB_Healed[GetConvertedPlayerId(GetOwningPlayer(u))] + d );
set udg_MB_HealedTotal[GetConvertedPlayerId(GetOwningPlayer(u))] = ( udg_MB_HealedTotal[GetConvertedPlayerId(GetOwningPlayer(u))] + d );
The way I have tried it does not work.
JASS:
//! zinc
library HealingWave requires ChainSys{
function onCondition()->boolean{
return GetSpellAbilityId()=='A0DG';
}
function onHeal()->boolean{
unit u=udg_HeroShadowhunter;
real d=Chain_LastDamage;
set udg_MB_Healed[0] = ( udg_MB_Healed[0] + d );
set udg_MB_HealedTotal[0] = ( udg_MB_HealedTotal[0] + d );
set udg_MB_Healed[GetConvertedPlayerId(GetOwningPlayer(u))] = ( udg_MB_Healed[GetConvertedPlayerId(GetOwningPlayer(u))] + d );
set udg_MB_HealedTotal[GetConvertedPlayerId(GetOwningPlayer(u))] = ( udg_MB_HealedTotal[GetConvertedPlayerId(GetOwningPlayer(u))] + d );
//BJDebugMsg(GetUnitName(u)+" was healed for "+R2S(d)+"!");
return false;
}
function onFilter()->boolean{
return !IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE);
}
function onAction(){
unit u = GetTriggerUnit(),
t = GetSpellTargetUnit();
integer l=GetUnitAbilityLevel(u,'A0DG');
real F = udg_SpHealingWaveFlatt;
real FF = udg_SpHealingWaveFlattF;
real P = udg_SpHealingWavePercent;
real PF = udg_SpHealingWavePercentF;
real S = I2R(GetHeroStatBJ(bj_HEROSTAT_INT, u, true));
real a = ( ( ( F * l ) + FF ) + ( S * ( ( l * P ) + PF ) ) );
boolexpr b=Filter(function onFilter);
Chain_HealingWave(u, //Caster
t, //Target
a, //Heal
((1.0*l)-10.0)*0.01, //Heal Reduction
500.0, //Radius
(1*l)+2, //Max Bounces
0.33, //Bounce Intervals
false, //Doesn't Hit Caster
b, //Target Filter
function onHeal); //Triggered Impact
ClearTextMessages();
}
function onInit(){
trigger t=CreateTrigger();
TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_EFFECT);
TriggerAddCondition(t,Condition(function onCondition));
TriggerAddAction(t,function onAction);
t=null;
}
}
//! endzinc
Last edited: