Name | Type | is_array | initial_value |
AbilityLevel | integer | No | |
ABS_Angle | real | No | |
ABS_Caster | unit | No | |
ABS_Dummy | unit | No | |
ABS_Flot_Text | texttag | No | |
ABS_GainedAbility | integer | No | |
ABS_HashAbilties | hashtable | No | |
ABS_Hashtable | hashtable | No | |
ABS_HideDuration | real | No | |
ABS_if_are_hide | boolean | No | |
ABS_NotAvaible | boolean | Yes | |
ABS_Speed | real | No | |
ABS_Time | real | No | |
ABS_Ult_Abilities | abilcode | Yes | |
ABS_Ult_HeroesList | unitcode | Yes | |
ABS_Units | group | No | |
AddSize_B | boolean | Yes | |
AddSize_BA | boolean | Yes | |
AddSize_BF | boolean | Yes | |
AddSize_C | integer | Yes | |
AddSize_CT | real | Yes | |
AddSize_FA | real | Yes | |
AddSize_IDX | integer | Yes | |
AddSize_L | real | Yes | |
AddSize_Unit | unit | Yes | |
AddSize_VT | real | Yes | |
AddSizeSYS_Limite | real | No | |
AddSizeSYS_Tiempo | real | No | |
AddSizeSYS_Unit | unit | No | |
AddSizeSYS_Velocidad | real | No | |
AddTimedAbility_BoolSobrPoner | boolean | Yes | |
AddTimedAbility_Buff | buffcode | Yes | |
AddTimedAbility_C | integer | Yes | |
AddTimedAbility_IDX | integer | Yes | |
AddTimedAbility_LVL | integer | Yes | |
AddTimedAbility_Skill | abilcode | Yes | |
AddTimedAbility_T | real | Yes | |
AddTimedAbility_Unit | unit | Yes | |
AddTimedAbilitySYS_BoolSobPon | boolean | No | |
AddTimedAbilitySYS_Buff | buffcode | No | |
AddTimedAbilitySYS_Level | integer | No | |
AddTimedAbilitySYS_Skill | abilcode | No | |
AddTimedAbilitySYS_Tiempo | real | No | |
AddTimedAbilitySYS_Unit | unit | No | |
AddTimedEffect_C | integer | Yes | |
AddTimedEffect_IDX | integer | Yes | |
AddTimedEffect_SFX | effect | Yes | |
AddTimedEffect_T | real | Yes | |
AddTimedEffectSYS_AttachPoint | string | No | |
AddTimedEffectSYS_SFX | string | No | |
AddTimedEffectSYS_Tiempo | real | No | |
AddTimedEffectSYS_Unit | unit | No | |
AddTimedLEffect_A | real | Yes | |
AddTimedLEffect_AP | string | Yes | |
AddTimedLEffect_B | boolean | Yes | |
AddTimedLEffect_BC | boolean | Yes | |
AddTimedLEffect_C | integer | Yes | |
AddTimedLEffect_G | group | No | |
AddTimedLEffect_IDX | integer | Yes | |
AddTimedLEffect_P | location | No | |
AddTimedLEffect_SFX | string | Yes | |
AddTimedLEffect_T | real | Yes | |
AddTimedLEffect_TB | real | Yes | |
AddTimedLEffect_TBA | integer | Yes | |
AddTimedLEffect_Unit | unit | Yes | |
AddTimedLEffectSYS_AoE | real | No | |
AddTimedLEffectSYS_AttachPoint | string | No | |
AddTimedLEffectSYS_Bool | boolean | No | |
AddTimedLEffectSYS_SFX | string | No | |
AddTimedLEffectSYS_Tiempo | real | No | |
AddTimedLEffectSYS_TiempoBump | real | No | |
AddTimedLEffectSYS_TipoObjetiv | boolean | No | |
AddTimedLEffectSYS_Unit | unit | No | |
AddTimedPauseInvul_B | boolean | Yes | |
AddTimedPauseInvul_C | integer | Yes | |
AddTimedPauseInvul_IDX | integer | Yes | |
AddTimedPauseInvul_Skill | abilcode | Yes | |
AddTimedPauseInvul_T | real | Yes | |
AddTimedPauseInvul_Unit | unit | Yes | |
AddTimedPauseInvulSYS_Bool | boolean | No | |
AddTimedPauseInvulSYS_Tiempo | real | No | |
AddTimedPauseInvulSYS_Unit | unit | No | |
AfterDamageEvent | real | No | |
Aistance2_Urgus | unitcode | No | |
Aistance3_Urgus | unitcode | No | |
AOE_1 | real | No | |
AOE_2 | real | No | |
AoE_Canales | real | Yes | |
AOEDamageEvent | real | No | |
AR_Caster | unit | No | |
AR_Int | integer | No | |
AR_Target | location | No | |
AR_Timer | timer | No | |
Arthas1_Urgus | unitcode | No | |
Asistance1_UrgusGrupoEntrenado | group | No | |
Asistance1_UrgusGrupoEntrenMUI | group | Yes | |
Asistance2_UrgusGrupoEntrenado | group | No | |
Asistance2_UrgusGrupoEntrenMUI | group | Yes | |
Aumentador30 | real | No | |
Autocast_Morp | unit | No | |
BB | integervar | No | |
BB2 | integervar | No | |
BB_Angle | real | Yes | |
BB_Caster | unit | Yes | |
BB_CastNumber | integer | No | |
BB_Distance | real | Yes | |
BB_Height | real | Yes | |
BB_Missile | unit | Yes | |
BB_Off | boolean | Yes | |
BB_Point | location | Yes | |
BB_Speed | real | Yes | |
BB_Switch | integer | No | |
BB_Up | boolean | Yes | |
BlinkStrike_Hash | hashtable | No | |
BMag_TempPoint | location | No | |
BO_Aoe | real | No | |
BO_PositionCaster | location | No | |
BooleanoSpawn | integer | Yes | |
BS_Caster | unit | Yes | |
BS_IDX | integer | No | |
BS_Target_Units | group | No | |
BSDPS | real | No | |
CargarValor | real | No | |
Cast_BS | unit | No | |
Cast_BS_DummyCreation | unit | No | |
CastBS_DPS_Hero | unit | No | |
Caster | unit | No | |
CASTER_1 | unit | No | |
CASTER_2 | unit | No | |
Caster_Flame_D | unit | No | |
CasterArthas | unit | No | |
CasterArthasFrost | unit | No | |
CasterAud | unit | No | |
CasterHeal | unit | No | |
CasterIdem | unit | No | |
CasterPointBS | location | No | |
CasterSS | unit | No | |
CastingSP | unit | No | |
CastinRoot | unit | No | |
Cater_EF_Ember | unit | No | |
CatingRootMUI | unit | Yes | |
CenterPoint | location | No | |
ChainTemplateAttckDmgType | attacktype | No | |
ChainTemplateDmgType | damagetype | No | |
Chispa_Abilidad | abilcode | Yes | |
Chispa_Caster | unit | Yes | |
Chispa_Target | unit | Yes | |
ClearDamageEvent | trigger | No | |
Contador30m | integer | No | |
CoupGraceBool | boolean | Yes | |
CPS_Angle | real | No | |
CPS_AoE | real | Yes | |
CPS_ArcReal | real | Yes | |
CPS_AttackType | attacktype | Yes | |
CPS_Damage | real | Yes | |
CPS_DamageType | damagetype | Yes | |
CPS_Destroy | boolean | Yes | |
CPS_Dummy | unit | No | |
CPS_DummyType | unitcode | No | |
CPS_HArc | boolean | Yes | |
CPS_HArcLeftRight | boolean | Yes | |
CPS_HArcWidth | real | Yes | |
CPS_Height | real | Yes | |
CPS_Impact | modelfile | Yes | |
CPS_Loop | integervar | No | |
CPS_Missile | unit | Yes | |
CPS_MissileDistance | real | Yes | |
CPS_MUI | integer | No | |
CPS_Off | boolean | No | |
CPS_Point | location | Yes | |
CPS_Source | unit | Yes | |
CPS_SourcePoint | location | Yes | |
CPS_Speed | real | Yes | |
CPS_Target | unit | No | |
CPS_TargetUnit | unit | Yes | |
CPS_TraveledDistance | real | Yes | |
CPS_Tree | destructable | No | |
CPS_Trigger | trigger | Yes | |
CPS_UnitOrPoint | boolean | Yes | |
CPS_VArc | boolean | Yes | |
CPS_VArcHeight | real | Yes | |
DAMAGE_FACTOR_BRACERS | real | No | |
DAMAGE_FACTOR_ELUNES | real | No | |
DAMAGE_FACTOR_ETHEREAL | real | No | |
DamageBlockingAbility | abilcode | No | |
DamageEvent | real | No | |
DamageEventAmount | real | No | |
DamageEventAOE | integer | No | |
DamageEventAOEGroup | group | No | |
DamageEventLevel | integer | No | |
DamageEventOverride | boolean | No | |
DamageEventPrevAmt | real | No | |
DamageEventSource | unit | No | |
DamageEventsWasted | integer | No | |
DamageEventTarget | unit | No | |
DamageEventTrigger | trigger | No | |
DamageEventType | integer | No | |
DamageModifierEvent | real | No | |
DamageOverTime_A | real | Yes | |
DamageOverTime_AC | integer | Yes | |
DamageOverTime_AT | attacktype | Yes | |
DamageOverTime_B | boolean | Yes | |
DamageOverTime_BC | boolean | Yes | |
DamageOverTime_C | integer | Yes | |
DamageOverTime_D | real | Yes | |
DamageOverTime_DT | damagetype | Yes | |
DamageOverTime_G | group | No | |
DamageOverTime_I | real | Yes | |
DamageOverTime_IDX | integer | Yes | |
DamageOverTime_P | location | No | |
DamageOverTime_T | real | Yes | |
DamageOverTime_UnitO | unit | Yes | |
DamageOverTime_UnitT | unit | Yes | |
DamageOverTimeSYS_AoE | real | No | |
DamageOverTimeSYS_AttkType | attacktype | No | |
DamageOverTimeSYS_Bool | boolean | No | |
DamageOverTimeSYS_Damage | real | No | |
DamageOverTimeSYS_DmgType | damagetype | No | |
DamageOverTimeSYS_IntervaloDmg | real | No | |
DamageOverTimeSYS_Tiempo | real | No | |
DamageOverTimeSYS_TipoObjetivo | boolean | No | |
DamageOverTimeSYS_UnitOwner | unit | No | |
DamageOverTimeSYS_UnitTarget | unit | No | |
DamageTypeBlocked | integer | No | |
DamageTypeCriticalStrike | integer | No | |
DamageTypeExplosive | integer | No | |
DamageTypeHeal | integer | No | |
DamageTypeReduced | integer | No | |
Dash_Group | group | Yes | |
Dash_Hit | group | Yes | |
DestAT | destructable | No | |
DmgEvBracers | itemcode | No | |
DmgEvRecursionN | integer | No | |
DmgEvRunning | boolean | No | |
DmgEvStarted | boolean | No | |
DmgEvTimer | timer | No | |
DmgEvTrig | trigger | No | |
DmgType_Generico | damagetype | No | |
DmgType_MisilesSystem | damagetype | No | |
dontcopy_tempPos | location | No | |
dontcopythis | location | No | |
DUMMY_1 | unit | No | |
DUMMY_CASTER_ID | unitcode | No | |
DUMMY_ID | unitcode | No | |
dummy_vortex | unit | No | |
DummyEF | unit | No | |
DummyMQ | unit | Yes | |
DummySlam | unit | Yes | |
DVP_AlliesGroup | group | No | |
DVP_AoE | real | No | |
DVP_Damage | real | No | |
DVP_Healing | real | No | |
DVP_PositionCaster | location | No | |
DYN2_CURRENT_INDEX | integer | No | |
DYN2_EXAMPLE_ANGLE | real | Yes | |
DYN2_EXAMPLE_DISTANCE | real | Yes | |
DYN2_EXAMPLE_LOOP | integervar | No | |
DYN2_EXAMPLE_POINT | location | Yes | |
DYN2_EXAMPLE_UNIT | unit | Yes | |
DYN2_INDEX_CONTAINER | integer | Yes | |
DYN2_INDEX_LISTENER | integer | No | |
DYN2_INDEX_SIZE | integer | No | |
DYN2_RECYCLE_CONTAINER | integer | Yes | |
DYN2_RECYCLE_SIZE | integer | No | |
EF_Hits | integer | Yes | |
EF_Lvl | integer | Yes | |
EF_Sourge | unit | Yes | |
EFatacadoobjetivo | unit | No | |
EFAtaquercaster | unit | No | |
EFuego_Avanico | abilcode | No | |
EFuego_Channeling | abilcode | No | |
EFuego_LVL | integer | No | |
EnhancedDamageTarget | unit | No | |
EP | integer | No | |
EP_Angle | real | Yes | |
EP_Angle1 | real | No | |
EP_Caster | unit | Yes | |
EP_CastNumber | integer | No | |
EP_Integer | integer | No | |
EP_Missile | unit | Yes | |
EP_Off | boolean | Yes | |
EP_Point | location | Yes | |
EP_Speed | real | Yes | |
EXAMPLE_DUR | real | Yes | |
EXAMPLE_GFX | effect | Yes | |
EXAMPLE_Index | integer | Yes | |
EXAMPLE_Index_maxSize | integer | No | |
EXAMPLE_Index_Size | integer | No | |
EXAMPLE_LOC | location | Yes | |
EXAMPLE_LOOP | integervar | No | |
FA_Caster | unit | No | |
FA_Point | location | No | |
FA_Target | unit | No | |
FadeSystemGroup | group | No | |
FadeSystemHash | hashtable | No | |
FadeUnitKey | integer | No | |
FLAME_Angle | real | Yes | |
FLAME_Caster | unit | Yes | |
Flame_Caster | unit | Yes | |
Flame_Caster_Loc | location | Yes | |
Flame_Distance | real | Yes | |
Flame_Dummy | unit | Yes | |
Flame_Dummy_Loc | location | Yes | |
FLAME_Duration | real | Yes | |
FLAME_Group | group | No | |
FLAME_GroupHit | group | Yes | |
FLAME_Hast | hashtable | No | |
Flame_Hit | group | No | |
Flame_Hit_Units | group | Yes | |
Flame_IDX | integer | No | |
FLAME_InitPosition | location | No | |
Flame_Integer | integer | No | |
Flame_Integer_2 | integer | No | |
Flame_Lvl | integer | No | |
Flame_LVL | integer | Yes | |
FLAME_lvl | integer | Yes | |
FLAME_missile | unit | Yes | |
FLAME_MoverTo | location | No | |
FLAME_PickedTarget | unit | No | |
Flame_Point | location | Yes | |
FLAME_Speed | real | Yes | |
FLAME_Target | location | No | |
Flame_Target_Point | location | Yes | |
Flame_Targets | group | Yes | |
FLAME_TempDummy | unit | No | |
FLAME_TempInit | location | No | |
FLAME_TempOwner | player | No | |
Flicker_Posicion | location | No | |
Flicker_RandomPoint | location | No | |
FormaF_Caster | unit | No | |
FSBlue | real | No | |
FSEnd | real | No | |
FSFadeIn | boolean | No | |
FSGreen | real | No | |
FSRed | real | No | |
FSSpeed | real | No | |
FSStart | real | No | |
FSStartOpacity | real | No | |
FSTinted | boolean | No | |
FSUnit | unit | No | |
GRAB_ActualAltura | real | No | |
GRAB_Altura | real | No | |
GRAB_Angle | real | No | |
GRAB_Caster | unit | No | |
GRAB_CasterNewPosition | location | No | |
GRAB_CasterPosition | location | No | |
GRAB_Damage | real | No | |
GRAB_Down | boolean | No | |
GRAB_Duration | real | No | |
GRAB_Group_Target | group | No | |
GRAB_Hash | hashtable | No | |
GRAB_InitTime | real | No | |
GRAB_Pendiente | real | No | |
GRAB_Speed | real | No | |
GRAB_Target | unit | No | |
GRAB_TempLoop_Moveto | location | No | |
GRAB_TempLoop_PositionCaster | location | No | |
GRUPO_1 | group | No | |
GRUPO_2 | group | No | |
Grupo_Canales | group | Yes | |
GrupoAsist_IDX | integer | No | |
GrupoCatingRoot | group | No | |
Grupodejefes | group | No | |
Grupodeminas | group | No | |
GrupoE | group | No | |
GrupoStatic | group | No | |
Hash_SummonArbol | hashtable | No | |
HashtableArbol | hashtable | No | |
HashtableTutoHeal | hashtable | No | |
HashtableTutoKnock | hashtable | No | |
HealOverTime_A | real | Yes | |
HealOverTime_AC | integer | Yes | |
HealOverTime_AM | real | Yes | |
HealOverTime_B | boolean | Yes | |
HealOverTime_BC | boolean | Yes | |
HealOverTime_C | integer | Yes | |
HealOverTime_G | group | No | |
HealOverTime_I | real | Yes | |
HealOverTime_IDX | integer | Yes | |
HealOverTime_P | location | No | |
HealOverTime_T | real | Yes | |
HealOverTime_Unit | unit | Yes | |
HealOverTimeSYS_Amount | real | No | |
HealOverTimeSYS_AoE | real | No | |
HealOverTimeSYS_Bool | boolean | No | |
HealOverTimeSYS_IntervaloHeal | real | No | |
HealOverTimeSYS_Tiempo | real | No | |
HealOverTimeSYS_TipoObjetivo | boolean | No | |
HealOverTimeSYS_Unit | unit | No | |
HealOverTimeUnits | group | No | |
HeroIndex | integer | Yes | |
Heros | unitcode | Yes | |
HerosFiltrado | unitcode | Yes | |
HideDamageFrom | boolean | Yes | |
HITS_AoE | location | Yes | |
HITS_Boolean | boolean | Yes | |
HITS_Caster | unit | Yes | |
HITS_Caster_TW | unit | No | |
HITS_DamagePerHit | real | Yes | |
HITS_Duration | real | Yes | |
HITS_FrecuencyPerSecond | real | Yes | |
HITS_GroupCasters | group | No | |
HITS_Hits_per_second | real | Yes | |
HITS_ID | integer | No | |
HITS_Text | texttag | Yes | |
HYP_Caster | unit | Yes | |
HYP_IDX | integer | No | |
HYP_Punto | location | Yes | |
HYP_Read_IDX | integer | No | |
i | integer | No | |
ID | integer | No | |
Illu_Angle | real | No | |
Illu_Caster | unit | No | |
Illu_Caster_Loc | location | No | |
Illu_Distance | real | No | |
Illu_Dummy | unit | No | |
Illu_Dummy_Loc | location | No | |
Illu_Point | location | No | |
Illu_Target_Point | location | No | |
Illu_Targets | group | No | |
IntegerMUIRoot | integer | No | |
InvoArb_Arbol | unit | No | |
InvoArb_ArbolTipo | unitcode | No | |
InvoArb_Caster | unit | No | |
InvoArbol_Grupo | group | No | |
InvoArbol_Hash | hashtable | No | |
InvoArbol_Summoned | unit | No | |
InvoArbol_Summoner | unit | No | |
InvoArbol_Time | real | No | |
IRA_Caster | unit | Yes | |
IRA_Group | group | No | |
IRA_IDX | integer | No | |
IsDamageSpell | boolean | No | |
Jump2 | abilcode | No | |
Jump3 | abilcode | No | |
Jumpabilitie | abilcode | No | |
KatanaCaster | unit | No | |
KE_ItemIDX | integer | Yes | |
KE_ItemRuna | itemcode | No | |
KE_ItemRuna_IDX | itemcode | Yes | |
KE_ItemSistema_1 | integer | Yes | |
KE_ItemSistema_2 | integer | Yes | |
KE_ItemTiempoLoop | real | No | |
KE_ItemTiempoLoop_IDX | real | Yes | |
KE_ItemTiempoTotal | real | No | |
KE_ItemTiempoTotal_IDX | real | Yes | |
KE_ItemUnidad | unit | No | |
KE_ItemUnidad_IDX | unit | Yes | |
Knock_Angle | real | No | |
Knock_Distance | real | No | |
Knock_Time | real | No | |
Knock_Units | group | No | |
LanzarRoca_Caster | unit | Yes | |
LanzarRoca_Target | unit | Yes | |
LastDamageHP | real | No | |
LastDmgPrevAmount | real | Yes | |
LastDmgPrevType | integer | Yes | |
LastDmgSource | unit | Yes | |
LastDmgTarget | unit | Yes | |
LastDmgValue | real | Yes | |
LastDmgWasSpell | boolean | Yes | |
LateGame_Estructuras | group | No | |
LaVenganza_Bool | boolean | No | |
LaVenganza_decimal | real | Yes | |
LaVenganza_IDX | integer | No | |
LaVenganza_Tamano | real | Yes | 100.00 |
LaVenganza_Unit | unit | Yes | |
LeveldeBN | integer | No | |
LRoc_IDX | integer | No | |
LvlFuerzat | integer | No | |
MA_AoE | group | Yes | |
MA_Caster | unit | Yes | |
MA_Punto | location | Yes | |
MaievhOwner | unit | No | |
Mana | buffcode | No | |
ManaOverTime_A | real | Yes | |
ManaOverTime_AC | integer | Yes | |
ManaOverTime_AM | real | Yes | |
ManaOverTime_B | boolean | Yes | |
ManaOverTime_BC | boolean | Yes | |
ManaOverTime_C | integer | Yes | |
ManaOverTime_G | group | No | |
ManaOverTime_I | real | Yes | |
ManaOverTime_IDX | integer | Yes | |
ManaOverTime_P | location | No | |
ManaOverTime_T | real | Yes | |
ManaOverTime_Unit | unit | Yes | |
ManaOverTimeSYS_AfectaAliados | boolean | No | |
ManaOverTimeSYS_Amount | real | No | |
ManaOverTimeSYS_AoE | real | No | |
ManaOverTimeSYS_Bool | boolean | No | |
ManaOverTimeSYS_IntervaloMana | real | No | |
ManaOverTimeSYS_Tiempo | real | No | |
ManaOverTimeSYS_Unit | unit | No | |
MaxHeros | integer | No | |
MBR_Target | unit | Yes | |
MI_Caster | unit | Yes | |
MI_Dummy | unit | Yes | |
MI_IDX | integer | No | |
MI_LVL | integer | Yes | |
MI_Punto | location | Yes | |
MI_Read_IDX | integer | No | |
MindSt_AoE | real | No | |
MindSt_CurrentDuration | real | Yes | |
MindSt_Duration | real | No | |
MindSt_FloatText | texttag | Yes | |
MindSt_FloatText2 | texttag | Yes | |
MindSt_GroupCasters | group | No | |
MindSt_GroupControlled | group | Yes | |
MindSt_IDCaster | integer | No | |
MindSt_IDControl | integer | No | |
MindSt_OwnerTarget | player | Yes | |
MindSt_Target | unit | Yes | |
MindSt_TargetPosition | location | No | |
Morph_ID | integer | No | |
Morph_Morphling | unit | Yes | |
Morph_UnidadCopiad | unitcode | Yes | |
Morphling | unit | No | |
NextDamageOverride | boolean | No | |
NextDamageType | integer | No | |
NFlash_IDX | integer | No | |
NFlash_Punto | location | Yes | |
NumeroRandom | integer | No | |
ObjBN | unit | No | |
ObjBS | unit | No | |
ObjetivoEF | unit | No | |
ObjetivoPD | unit | No | |
ObjetivoPDarm | unit | No | |
Pacienci_Caster | unit | No | |
Paciencia_Target | unit | No | |
PAG_IDX | integer | No | |
Paginas2 | group | No | |
Paginas3 | group | No | |
Paginas4 | group | No | |
Paginas5 | group | No | |
PagTavern_Punto | location | No | |
Point | location | No | |
PointAT | location | No | |
PointATS | location | No | |
PointWR | location | No | |
PolySuperior_Punto | location | No | |
Position_Spells | location | Yes | |
PowerChainGroup | group | No | |
PowerChainHash | hashtable | No | |
Preload_Index | integer | No | |
Projectile_AoE | real | No | |
Projectile_AttackType | attacktype | No | |
Projectile_Damage | real | No | |
Projectile_DamageType | damagetype | No | |
Projectile_DestroyTree | boolean | No | |
Projectile_HArc | boolean | No | |
Projectile_HArcLeftOrRight | boolean | No | |
Projectile_HArcWidth | real | No | |
Projectile_Height | real | No | |
Projectile_Impact | string | No | |
Projectile_Model | modelfile | No | |
Projectile_Size | real | No | |
Projectile_Source | unit | No | |
Projectile_Speed | real | No | |
Projectile_TargetPoint | location | No | |
Projectile_TargetUnit | unit | No | |
Projectile_Trigger | trigger | No | |
Projectile_UnitOrPoint | boolean | No | |
Projectile_VArc | boolean | No | |
Projectile_VArcHeight | real | No | |
Protectores_GrupoLocust | group | No | |
PUNTO_1 | location | No | |
PUNTO_2 | location | No | |
punto_arbol | location | No | |
Punto_Descarg | location | No | |
Punto_Externo | location | No | |
Punto_L | location | No | |
Punto_Vortex | location | No | |
PuntoAQ | location | No | |
PuntoAreadest | location | No | |
PuntoAT2 | location | No | |
PuntoCH | location | No | |
PuntoE | location | No | |
PuntoM | location | No | |
PuntoOC | location | No | |
PuntoRandom | location | Yes | |
PuntoRandom35 | location | Yes | |
PuntoRandom40 | location | Yes | |
PuntoRandom50r | location | No | |
PuntoRandom60 | location | No | |
PuntoRootRn | location | No | |
PuntoSP | location | No | |
PuntoVent | location | No | |
QJC_Ally | boolean | No | |
QJC_Amount | real | No | |
QJC_AmountReduce | real | No | |
QJC_AoE | boolean | No | |
QJC_AoERadius | real | No | |
QJC_AttackType | attacktype | No | |
QJC_Caster | unit | No | |
QJC_ChainSFX | lightningtype | No | |
QJC_Damage | boolean | No | |
QJC_DamageType | damagetype | No | |
QJC_DummyType | unitcode | No | |
QJC_Enemy | boolean | No | |
QJC_Gold | boolean | No | |
QJC_Heal | boolean | No | |
QJC_Heatlh | boolean | No | |
QJC_JumpCount | integer | No | |
QJC_JumpDelayTime | real | No | |
QJC_JumpRadius | real | No | |
QJC_Leech | boolean | No | |
QJC_Mana | boolean | No | |
QJC_NoTarget | boolean | No | |
QJC_OnePerUnit | boolean | No | |
QJC_Priority | boolean | No | |
QJC_Slow | boolean | No | |
QJC_SlowEffect | abilcode | No | |
QJC_Stun | boolean | No | |
QJC_StunEffect | abilcode | No | |
QJC_TargetPoint | location | No | |
QJC_TargetSFX | string | No | |
QJC_TargetUnit | unit | No | |
QJCS_aGroup | group | Yes | |
QJCS_Ally | boolean | Yes | |
QJCS_Amount | real | Yes | |
QJCS_AmountReduce | real | Yes | |
QJCS_AoE | boolean | Yes | |
QJCS_AoERadius | real | Yes | |
QJCS_AttackType | attacktype | Yes | |
QJCS_baseDummy | unit | Yes | |
QJCS_Caster | unit | Yes | |
QJCS_ChainSFX | lightningtype | Yes | |
QJCS_ChainX | real | Yes | |
QJCS_ChainY | real | Yes | |
QJCS_ChainZ | real | Yes | |
QJCS_currUnit | unit | No | |
QJCS_Damage | boolean | Yes | |
QJCS_DamageType | damagetype | Yes | |
QJCS_dGroup | group | Yes | |
QJCS_dummyGroup | group | No | |
QJCS_Enemy | boolean | Yes | |
QJCS_Gold | boolean | Yes | |
QJCS_Heal | boolean | Yes | |
QJCS_Health | boolean | Yes | |
QJCS_index | integer | Yes | |
QJCS_JumpCount | integer | Yes | |
QJCS_JumpDelayTime | real | Yes | |
QJCS_JumpRadius | real | Yes | |
QJCS_Leech | boolean | Yes | |
QJCS_LightningDPos | unit | Yes | |
QJCS_LightningDur | real | Yes | |
QJCS_LightningIndex | integer | Yes | |
QJCS_LightningPos | location | Yes | |
QJCS_LightningSFX | lightning | Yes | |
QJCS_LightningTarget | unit | Yes | |
QJCS_Locust | abilcode | No | |
QJCS_Mana | boolean | Yes | |
QJCS_OnePerUnit | boolean | Yes | |
QJCS_prevTarget | unit | Yes | |
QJCS_Priority | boolean | Yes | |
QJCS_Slow | boolean | Yes | |
QJCS_SlowEffect | abilcode | Yes | |
QJCS_Stun | boolean | Yes | |
QJCS_StunEffect | abilcode | Yes | |
QJCS_SystemCount | integer | Yes | |
QJCS_SystemTime | real | Yes | |
QJCS_TargetSFX | string | Yes | |
QJCS_TargetUnit | unit | Yes | |
QJCS_tempGroup | group | No | |
QJCS_tempPos | location | Yes | |
QJCS_victimGroup | group | No | |
Real | real | No | |
Real_Externo | real | No | |
Reality_Stone_AngleDirection | real | Yes | |
Reality_Stone_Caster | unit | Yes | |
Reality_Stone_CastPosition | location | No | |
Reality_Stone_CastTargetPoint | location | No | |
Reality_Stone_GroupCasters | group | No | |
Reality_Stone_GroupMisils | group | No | |
Reality_Stone_GroupTranformed | group | Yes | |
Reality_Stone_IDCaster | integer | No | |
Reality_Stone_IDTransformed | integer | No | |
Reality_Stone_Misil_Duration | real | Yes | |
Reality_Stone_Misil_Owner | player | No | |
Reality_Stone_Misil_Speed | real | Yes | |
Reality_Stone_MisilDummy | unit | No | |
Reality_Stone_MisilMoveTo | location | No | |
Reality_Stone_MisilTempPost | location | No | |
Reality_Stone_Targets | unit | No | |
Reality_Stone_TempUnitType | unitcode | No | |
Reality_Stone_TransCurrentDur | real | Yes | |
Reality_Stone_TransDuration | real | No | |
Reality_Stone_TransText | texttag | Yes | |
Reality_Stone_UnitType | unitcode | Yes | |
RealitySt_Damage | real | No | |
RealitySt_HumanID | abilcode | Yes | |
RealitySt_HumanIDX | integer | No | |
RealitySt_NeutralID | abilcode | Yes | |
RealitySt_NeutralIDX | integer | No | |
RealitySt_NightElfIDX | integer | No | |
RealitySt_NigthElfID | abilcode | Yes | |
RealitySt_OrcID | abilcode | Yes | |
RealitySt_OrcIDX | integer | No | |
RealitySt_Race | race | Yes | |
RealitySt_TargetsPositionEffec | location | No | |
RealitySt_TransBackAbility | abilcode | Yes | |
RealitySt_UndeadID | abilcode | Yes | |
RealitySt_UndeadIDX | integer | No | |
Region30m | rect | Yes | |
Region35m | rect | Yes | |
Region40 | rect | Yes | |
ReliquiaS_Abilidad | abilcode | No | |
ReliquiaS_LvLr | integer | No | |
RestoreMana | real | No | |
RH_AltarDummy | unit | Yes | |
RH_Bandera | integer | Yes | |
RH_Bandera_Remover1 | integer | Yes | |
RH_Bandera_Remover2 | integer | Yes | |
RH_Bandera_Remover3 | integer | Yes | |
RH_Contador_OldHer | integer | Yes | |
RH_Contador_RandomHer | integer | Yes | |
RH_Contador_TavernHer | integer | Yes | |
RH_Entrada_Integer | integer | Yes | |
RH_Grupo_Estructuras | group | Yes | |
RH_Integer | integer | No | |
RH_IntegerTabernaPlayers | integer | No | |
RH_LimiteContador_News | integer | Yes | |
RH_Rep | integer | Yes | |
RH_Structura_Owner | player | Yes | |
RH_Structure_Construida | unit | Yes | |
RH_Structure_Contador | integer | Yes | |
RH_TabernaRepNew1 | integer | Yes | |
RH_TabernaRepNew2 | integer | Yes | |
RH_TabernaRepNew3 | integer | Yes | |
RH_TemporaryOwnerNumber | integer | Yes | |
RH_TrainedUnitOld | unit | Yes | |
Ritual_AoE | real | No | |
Ritual_Contador | real | Yes | |
Ritual_Damage | real | No | |
Ritual_DamageGroup | real | Yes | |
Ritual_GroupCasters | group | No | |
Ritual_GroupTargets | group | Yes | |
Ritual_ID_Caster | integer | No | |
Ritual_PickedCaster | unit | No | |
Ritual_PickedTarget | unit | No | |
Ritual_PositionCaster | location | No | |
RN_Point | location | No | |
S_Angle1 | real | No | |
S_Angle2 | real | No | |
S_Caster | unit | No | |
S_Dm1 | unit | No | |
S_Dm2 | unit | No | |
S_Point0 | location | No | |
S_Point1 | location | No | |
S_Point5 | location | No | |
S_Point6 | location | No | |
SC_Hits | integer | Yes | |
SC_Level | integer | Yes | |
SetColorOrAnimSpeed_B | boolean | Yes | |
SetColorOrAnimSpeed_C | integer | Yes | |
SetColorOrAnimSpeed_IDX | integer | Yes | |
SetColorOrAnimSpeed_T | real | Yes | |
SetColorOrAnimSpeed_Unit | unit | Yes | |
SetColorOrAnimSpeedSYS_AnimSp | real | No | |
SetColorOrAnimSpeedSYS_Bool | boolean | No | |
SetColorOrAnimSpeedSYS_ColRGBT | real | Yes | |
SetColorOrAnimSpeedSYS_Tiempo | real | No | |
SetColorOrAnimSpeedSYS_Unit | unit | No | |
SetCustomAura_A | real | Yes | |
SetCustomAura_AA | abilcode | Yes | |
SetCustomAura_AP | abilcode | Yes | |
SetCustomAura_B | boolean | Yes | |
SetCustomAura_G | group | No | |
SetCustomAura_IDX | integer | Yes | |
SetCustomAura_P | location | No | |
SetCustomAura_P1 | location | No | |
SetCustomAura_Unit | unit | Yes | |
SetCustomAuraSYS_Ability | abilcode | No | |
SetCustomAuraSYS_AbilityPass | abilcode | No | |
SetCustomAuraSYS_AoE | real | No | |
SetCustomAuraSYS_Bool | boolean | No | |
SetCustomAuraSYS_Unit | unit | No | |
SetHumanForm | unit | No | |
SetTimedStat_AM | integer | Yes | |
SetTimedStat_B | boolean | Yes | |
SetTimedStat_C | integer | Yes | |
SetTimedStat_IDX | integer | Yes | |
SetTimedStat_S | string | Yes | |
SetTimedStat_T | real | Yes | |
SetTimedStat_Unit | unit | Yes | |
SetTimedStatSYS_Amount | integer | No | |
SetTimedStatSYS_Bool | boolean | No | |
SetTimedStatSYS_Stat | string | No | |
SetTimedStatSYS_Tiempo | real | No | |
SetTimedStatSYS_Unit | unit | No | |
SinRayo | lightningtype | No | |
Skewer_Velocidad | real | No | |
Skewer_Velocidad_MPI | real | Yes | |
SkewerGroup | group | No | |
SkewerGroup_MPI | group | Yes | |
SkewerInteger | integer | No | |
SkewerInteger_MPI | integer | Yes | |
SkewerPoint | location | No | |
SkewerPoint_MPI | location | Yes | |
SkewerReal | real | No | |
SkewerReal_MPI | real | Yes | |
SkewerTempGroup | group | No | |
SkewerTempGroup_MPI | group | Yes | |
SkewerTempInteger | integer | No | |
SkewerTempInteger2 | integer | No | |
SkewerTempInteger2_MPI | integer | Yes | |
SkewerTempInteger_MPI | integer | Yes | |
SkewerTempPoint | location | No | |
SkewerTempPoint2 | location | No | |
SkewerTempPoint2_MPI | location | Yes | |
SkewerTempPoint_MPI | location | Yes | |
SkewerTempString | string | Yes | |
SkewerTempString_MPI | string | Yes | |
SkewerUnit | unit | No | |
SkewerUnit_MPI | unit | Yes | |
SKW_IDX | integer | No | |
Slam_Angle | real | No | |
Slam_AngleS | real | No | |
Slam_Caste_MUI | unit | Yes | |
Slam_Caster | unit | No | |
Slam_CasterS | unit | No | |
Slam_Hit | group | No | |
Slam_HitS | group | No | |
Slam_IDX | integer | No | |
Slam_Integer | integer | No | |
Slam_Level | integer | No | |
Slam_LevelS | integer | No | |
Slam_Misil | unit | No | |
Slam_MisilS | unit | No | |
Slam_Size | integer | No | |
Slam_SizeS | integer | No | |
SNAP_Cantidad | integer | No | |
SNAP_Group | group | No | |
Sonido_Spell | sound | Yes | |
SoulSt_AoE | real | No | |
SoulSt_CasterPosition | location | No | |
SoulSt_CastInitPos | location | No | |
SoulSt_GroupCasters | group | No | |
SoulSt_GroupDeads | group | No | |
SoulSt_GroupMisilesBack | group | Yes | |
SoulSt_GroupMisilesUno | group | Yes | |
SoulSt_GroupResurects | group | Yes | |
SoulSt_HashtableMisiles | hashtable | No | |
SoulSt_HashtableResurects | hashtable | No | |
SoulSt_IDCaster | integer | No | |
SoulSt_IDXCommon | integer | No | |
SoulSt_KeyCaster | handle | No | |
SoulSt_KeyMisilUno | handle | No | |
SoulSt_MaxUnits | integer | No | |
SoulSt_MisilCommonNumber | unit | Yes | |
SoulSt_MisilesMoveTo | location | No | |
SoulSt_MisilPosition | location | No | |
SoulSt_NumberUnitGroupResurect | integer | Yes | |
SoulSt_PickedCaster | unit | No | |
SoulSt_PickedMisil | unit | No | |
SoulSt_PickedResurect | unit | No | |
SoulSt_PointResurect | location | Yes | |
SoulSt_ResurectCommonNumber | unit | Yes | |
SoulSt_SoulSpeed | real | No | |
Sounds_RandomHero | sound | Yes | |
SpaceSt_AoE | real | No | |
SpaceSt_Caster | unit | No | |
SpaceSt_CastInitPost | location | No | |
SpaceSt_GroupCasters | group | No | |
SpaceSt_GroupTeleported | group | Yes | |
SpaceSt_IDCaster | integer | No | |
SpaceSt_PickedCaster | unit | No | |
SpaceSt_PickedTeleported | unit | No | |
SpaceSt_TeleportDelay | real | No | |
SpaceSt_TeleportDelayCurrent | real | Yes | |
SpaceSt_TeleportPointTo | location | Yes | |
SpaceSt_TeleportPointToRandom | location | No | |
SpawnInteger1 | integer | No | |
SpawnInteger2 | integer | No | |
SpawnInteger3 | integer | No | |
SpawnInteger4 | integer | No | |
SpawnInteger5 | integer | No | |
SPELL_ANGLE | real | Yes | |
SPELL_CASTER | unit | Yes | |
SPELL_DUR | real | Yes | |
SPELL_Index | integer | Yes | |
SPELL_Index_maxSize | integer | No | |
SPELL_Index_Size | integer | No | |
SPELL_LOOP | integervar | No | |
SPELL_LOOP_MISIL | integer | No | |
SPELL_MISIL_DISTANCE | real | Yes | |
SPELL_MISSILE | unit | Yes | |
SPELL_SPEED | real | Yes | |
SpellBounceRange | real | No | |
SpellBounceSpeed | real | No | |
SpellDamageAbility | abilcode | No | |
SpellMaximumNumberHits | integer | No | |
SpellNumberBounces | integer | No | |
Spirit_Hash | hashtable | No | |
SPSD_Caster | unit | No | |
SPSD_TargetPoint | location | No | |
SPSD_TargetUnit | unit | No | |
StaticCaster | unit | No | |
StaticLevel | integer | No | |
StaticPoint | location | No | |
STempGroup | group | No | |
STempGroupS | group | No | |
STempLoc | location | No | |
STempLoc2 | location | No | |
STempLoc2S | location | No | |
STempLocS | location | No | |
SumonnedRoot | unit | No | |
SUP_Default_AfectaAereas | boolean | No | |
SUP_Default_AfectaEstructuras | boolean | No | |
SUP_Default_AfectaInmuneAMagia | boolean | No | |
SUP_Default_AfectaInvisibles | boolean | No | |
SUP_Default_Altura_Final | real | No | |
SUP_Default_Altura_Inicial | real | No | |
SUP_Default_AoE | real | No | |
SUP_Default_AoE_Final | real | No | |
SUP_Default_Arco | real | No | |
SUP_Default_CuraAliados | boolean | No | |
SUP_Default_CuracionAoE | real | No | |
SUP_Default_CuracionTarget | real | No | |
SUP_Default_DamageAoE | real | No | |
SUP_Default_DamageTarget | real | No | |
SUP_Default_DamageType | attacktype | No | |
SUP_Default_DaniaAliados | boolean | No | |
SUP_Default_DummyBlue | real | No | |
SUP_Default_DummyGreen | real | No | |
SUP_Default_DummyRed | real | No | |
SUP_Default_DummySize | real | No | |
SUP_Default_DummyTransparency | real | No | |
SUP_Default_IgnorarReduccion | boolean | No | |
SUP_Default_Model | string | No | |
SUP_Default_OnAoEHit_Model | string | No | |
SUP_Default_OnTargetHit_Model | string | No | |
SUP_Default_OrderString | string | No | |
SUP_Default_SetTargetAlChocar | boolean | No | |
SUP_Default_Speed | real | No | |
SUP_Default_TerminarAlChocar | boolean | No | |
SUP_Get_Caster | unit | No | |
SUP_Local_Altura | real | No | |
SUP_Local_Angle | real | No | |
SUP_Local_Angle_Z | real | No | |
SUP_Local_Booleana_Auxiliar | boolean | No | |
SUP_Local_DifAltura | real | No | |
SUP_Local_Distancia | real | No | |
SUP_Local_ForLoop | integervar | No | |
SUP_Local_Group | group | No | |
SUP_Local_Jugador | player | No | |
SUP_Local_Point | location | No | |
SUP_Local_Point2 | location | No | |
SUP_Local_Real_Auxiliar | real | No | |
SUP_Private_AfectaAereas | boolean | Yes | |
SUP_Private_AfectaEstructuras | boolean | Yes | |
SUP_Private_AfectaInmuneAMagia | boolean | Yes | |
SUP_Private_AfectaInvisibles | boolean | Yes | |
SUP_Private_AoE | real | Yes | |
SUP_Private_AoE_Final | real | Yes | |
SUP_Private_Arco | real | Yes | |
SUP_Private_Caster | unit | Yes | |
SUP_Private_CuraAliados | boolean | Yes | |
SUP_Private_CuracionAoE | real | Yes | |
SUP_Private_CuracionTarget | real | Yes | |
SUP_Private_DamageAoE | real | Yes | |
SUP_Private_DamageStyle | damagetype | Yes | |
SUP_Private_DamageTarget | real | Yes | |
SUP_Private_DamageType | attacktype | Yes | |
SUP_Private_DaniaAliados | boolean | Yes | |
SUP_Private_Dummy | unit | Yes | |
SUP_Private_Dummy_Z | real | Yes | |
SUP_Private_DummyAbility | abilcode | Yes | |
SUP_Private_DummyAbilNivel | integer | Yes | |
SUP_Private_Effect | effect | Yes | |
SUP_Private_Enteros | integer | Yes | |
SUP_Private_Group | group | Yes | |
SUP_Private_IsActive | boolean | Yes | |
SUP_Private_OnAoEHit_Model | string | Yes | |
SUP_Private_OnTargetHit_Model | string | Yes | |
SUP_Private_OrderString | string | Yes | |
SUP_Private_SetTargetOnLoop | boolean | Yes | |
SUP_Private_Speed | real | Yes | |
SUP_Private_SpeedZ | real | Yes | |
SUP_Private_Target | unit | Yes | |
SUP_Private_TargetPoint | location | Yes | |
SUP_Private_TerminarAlChocar | boolean | Yes | |
SUP_Private_Time | real | Yes | |
SUP_Private_ZTarget | real | Yes | |
SUP_Set_AfectaAereas | boolean | No | |
SUP_Set_AfectaEstructuras | boolean | No | |
SUP_Set_AfectaInmuneAMagia | boolean | No | |
SUP_Set_AfectaInvisibles | boolean | No | |
SUP_Set_Altura_Final | real | No | |
SUP_Set_Altura_Inicial | real | No | |
SUP_Set_AoE | real | No | |
SUP_Set_AoE_Final | real | No | |
SUP_Set_Arco | real | No | |
SUP_Set_Caster | unit | No | |
SUP_Set_CuraAliados | boolean | No | |
SUP_Set_CuracionAoE | real | No | |
SUP_Set_CuracionTarget | real | No | |
SUP_Set_DamageAoE | real | No | |
SUP_Set_DamageTarget | real | No | |
SUP_Set_DamageType | attacktype | No | |
SUP_Set_DaniaAliados | boolean | No | |
SUP_Set_DummyAbility | abilcode | No | |
SUP_Set_DummyAbilNivel | integer | No | |
SUP_Set_DummyBlue | real | No | |
SUP_Set_DummyGreen | real | No | |
SUP_Set_DummyRed | real | No | |
SUP_Set_DummySize | real | No | |
SUP_Set_DummyTransparency | real | No | |
SUP_Set_IgnorarReduccion | boolean | No | |
SUP_Set_Model | string | No | |
SUP_Set_OnAoEHit_Model | string | No | |
SUP_Set_OnTargetHit_Model | string | No | |
SUP_Set_OrderString | string | No | |
SUP_Set_PuntoInicial | location | No | |
SUP_Set_PuntoObjetivo | location | No | |
SUP_Set_SetTargetAlChocar | boolean | No | |
SUP_Set_Speed | real | No | |
SUP_Set_Target | unit | No | |
SUP_Set_TerminarAlChocar | boolean | No | |
Taberna1 | unit | Yes | |
Taberna2 | unit | Yes | |
Taberna3 | unit | Yes | |
Taberna4 | unit | Yes | |
Target | unit | No | |
Target_BS | unit | No | |
Target_BS_DPS | unit | No | |
Target_Flame | unit | No | |
TargetSS | unit | No | |
Tavern_Grupo | group | No | |
TCS_AbilityCast | abilcode | Yes | |
TCS_AbilityLvlCheck | integer | Yes | |
TCS_AddPassiveBackTransf | abilcode | Yes | |
TCS_AddPassiveFirstTransf | abilcode | Yes | |
TCS_BackAbility_Lvl | integer | No | |
TCS_BackBool | boolean | Yes | |
TCS_Caster | unit | Yes | |
TCS_ConditionCaster | boolean | Yes | |
TCS_Duration | real | Yes | |
TCS_FirstAbility_Lvl | integer | Yes | |
TCS_Group | group | No | |
TCS_Perm_And_Can_Back | boolean | Yes | |
TCS_Perm_CANT_Back | boolean | Yes | |
TCS_TempAbility | abilcode | No | |
TCS_TimmerFloat | texttag | Yes | |
TempBool | boolean | No | |
TempestD_Caster | unit | No | |
TempestDouble | unit | No | |
TempGroup | group | No | |
TempGroup_ZZ | group | No | |
TempInt | integer | No | |
TempLoc2_Misil_MUI | location | No | |
TempLoc2_ZZ | location | No | |
TempLoc_Misil_MUI | location | No | |
TempLoc_ZZ | location | No | |
TempLocNT | location | No | |
TemporaryGroup | group | Yes | |
TemporaryKeySpell | integer | No | |
TemporaryKeyTarget | handle | No | |
TemporaryPoint | location | Yes | |
TemporaryTarget | unit | No | |
TemporayCaster | unit | No | |
TempPoint | location | No | |
TempPointBS | location | No | |
TempPointBS2 | location | No | |
TempUnit | unit | No | |
Textodeoro | dialog | No | |
ThanosHastable | hashtable | No | |
TiendaDummy | unit | Yes | |
TIME_Stone_Bool | boolean | No | |
TIME_Stone_Caster | unit | No | |
TIME_Stone_ClockDummy | unit | Yes | |
TIME_Stone_ClockGroups | group | No | |
TIME_Stone_Damage | real | No | |
TIME_Stone_EffectPosition | location | No | |
TIME_Stone_GroupsTargets | group | Yes | |
TIME_Stone_HP | real | No | |
TIME_Stone_Mana | real | No | |
TIME_Stone_TargetsPosition | location | No | |
TIME_StoneID | integer | No | |
Timer_Protectores | timer | No | |
Timer_ProtectoresWindow | timerdialog | No | |
TimeRestanteHealOverTime | real | No | |
TrainedUnit_RH | unit | Yes | |
Transparency_BS | real | Yes | |
Trigunit | unit | No | |
Trigunit2 | unit | No | |
TSyst_AbilityLearned | abilcode | Yes | |
TSyst_AbilityLevelUp | abilcode | Yes | |
TSyst_DiferenciaNiveles | integer | No | |
TSyst_IDUser | integer | No | |
TSyst_MindStCurrentLvl | integer | Yes | |
TSyst_NivelAntes | integer | Yes | |
TSyst_PowerStCurrentLvl | integer | Yes | |
TSyst_PuntosdeNiveles | integer | Yes | |
TSyst_RealityStCurrentLvl | integer | Yes | |
TSyst_SoulStCurrentLvl | integer | Yes | |
TSyst_SpaceStCurrentLvl | integer | Yes | |
TSyst_ThanosMapa | group | No | |
TSyst_TimeStCurrentLvl | integer | Yes | |
TW_ActiveBool | boolean | No | |
TW_Caster | unit | No | |
UDex | integer | No | |
UDexGen | integer | No | |
UDexNext | integer | Yes | |
UDexPrev | integer | Yes | |
UDexRecycle | integer | No | |
UDexUnits | unit | Yes | |
UDexWasted | integer | No | |
Unidad | unit | Yes | |
unidad_arboleng | unit | No | |
Unidadcopiada | unitcode | No | |
Unit_Arbol_MUI | unit | Yes | |
Unit_DummyTorn_MUI | unit | Yes | |
Unit_Group_1 | group | Yes | |
Unit_Group_Dummies | group | No | |
UnitDamageRegistered | boolean | Yes | |
UnitIndexerEnabled | boolean | No | |
UnitIndexEvent | real | No | |
UnitIndexLock | integer | Yes | |
UnitsafectadasBSDPS | group | No | |
UnitsHash | hashtable | No | |
Urgus | unit | No | |
VenomousGale_Angle | real | No | |
VenomousGale_Caster | unit | No | |
VenomousGale_Gale | unit | No | |
VenomousGale_Hit | group | No | |
VenomousGale_Level | integer | No | |
VenomousGale_Tick | integer | No | |
WORLD_BORDER_MAX_X | real | No | |
WORLD_BORDER_MAX_Y | real | No | |
WORLD_BORDER_MIN_X | real | No | |
WORLD_BORDER_MIN_Y | real | No | |
WORLD_BORDER_WIDTH | real | No | |
X_RandomHero | integer | No | |
X_RH | integer | Yes | |
Z_AOE_Units | group | No | |
Z_Caster | unit | No | |
Z_Punto | location | No | |
ZZ_Caster | unit | Yes | |
ZZ_IDX | integer | No |
//TESH.scrollpos=49
//TESH.alwaysfold=0
//======================================================================================
Dynamic Index
//======================================================================================
I just can recommend using a dynamic index system if you are using GUI for looping stuff.
Because of the following reasons you should use this kind of dynamic indexing:
- It´s faster than the "paladon indexing system" or however you want to call
that indexing (and btw it´s even shorter than the "paladon indexing system")
- I think it´s easy to understand and it just need 3 variables
//--------------------------------------------------------------------------------------
This map is an example map for dynamic indexing. Demo made by Hanky.
Well dynamic indexing is pretty easy but it´ll still save much performance. Basicly it´s
just an integer array which keep all index positions. Just as an example:
//--------------------------------------------------------------------------------------
We got 3 index entries:
- The first entry get the index 1
- The second entry get the index 2
- The third entry get the index 3
Then suddenly index 2 expired and going to be recycled.
- Index[Current Loop Integer] = Index[Last Position Index]
- Index[Last Position Index] = Index[Current Loop Integer]
Basicly this is just an exchange of the last position and the current loop position. That means:
2 [2] = 3 [3]
3 [3] = 2
Another example with 3 indexes which expire in the order of 1,2 and 3:
=> Index 1 get recycled
1 [1] = 3 [3]
3 [3] = 1
=> Index 2 get recycled
2 [2] = 2 [2]
2 [2] = 2
=> Index 3 get recycled
3 [1] = 3 [1]
3 [1] = 3
And a last example with 3 indexes which expire in the order of 2,3 and 1:
=> Index 1 get recycled
2 [2] = 3 [3]
3 [3] = 2
=> Index 2 get recycled
3 [2] = 3 [2]
3 [2] = 3
=> Index 3 get recycled
1 [1] = 1 [1]
1 [1] = 1
//--------------------------------------------------------------------------------------
Hint:
If you are using IntegerA oder IntegerB in the motion loop the whole recycle process have to look
like this:
If you are using IntegerA it should look like this:
-------- RecycleIndex --------
Set EXAMPLE_Index[bj_forLoopAIndex] = EXAMPLE_Index[EXAMPLE_Index_Size]
Set EXAMPLE_Index[EXAMPLE_Index_Size] = TempInt
Custom Script: set bj_forLoopAIndexEnd = (bj_forLoopAIndexEnd - 1)
Custom Script: set bj_forLoopAIndex = (bj_forLoopAIndex - 1)
If you are using IntegerB it should look like this:
-------- RecycleIndex --------
Set EXAMPLE_Index[bj_forLoopBIndex] = EXAMPLE_Index[EXAMPLE_Index_Size]
Set EXAMPLE_Index[EXAMPLE_Index_Size] = TempInt
Custom Script: set bj_forLoopBIndexEnd = (bj_forLoopBIndexEnd - 1)
Custom Script: set bj_forLoopBIndex = (bj_forLoopBIndex - 1)
//--------------------------------------------------------------------------------------
// Last words...
Why did I made this map?
Im sick of all those GUI spell maps using ineffective indexing systems.
Greetings fly out to:
Paladon, Darkt3mpl3r, JonNny, WaRadius, Toadcop, Deuterium, Eccho, Berzeker, xxdingo93xx
Yixx, Dark Dragon ...
Also thanks to D4RK_G4ND4LF for telling me stuff I just forgot to add.
Well I hope that you guys understood what I mean. If not Im free for questions.
//TESH.scrollpos=0
//TESH.alwaysfold=0
//======================================================================================
Dynamic Index 2
//======================================================================================
Why I should use this method?
-----------------------------
Well it's even easier than the first dynamic indexing I showed. Since I it's much better
explainable.
Also this system is pretty much as fast as my first dynamic indexing. But more "user
friendly".
What the variables are for?
---------------------------
Well there are six variables which manage all the indexing. First of there's a integer
array/container which contains all active indexes. The variable is called:
"DYN2_INDEX_CONTAINER"
To get the size of all current active indexes there's the variable called:
"DYN2_INDEX_LISTENER"
Also there's a variable where you can get what's the current size of released indexes,
the variable is called:
"DYN2_INDEX_SIZE"
The most important variable is the recylce container since this variable contain all
dead/inactive indexes. The variable is called:
"DYN2_RECYLCE_CONTAINER"
The helper variable of the recycle container is the recycle index. This variable
contains the current size of the recycle container.
"DYN2_RECYLCE_INDEX"
The last variable isn't an important one. But still useful for GUI users. The variable
contains the current selected index. The name of the variable is:
"DYN2_CURRENT_INDEX"
How the system is working?
--------------------------
First of we are checking if the recycle container got some inactive indexes for us.
But since we are executing the spell the first time a new index gets created. In this
case the index:
Index(0) = 0
So now the first index is active and we create another new one. So the next index gets
created:
Index(1) = 1
And just for fun we create another index:
Index(2) = 2
Now the first index gets added to the recycle container since it's inactive:
Recylce(0) = Index(0)
At the same time the active index container exchanging the position of the last active
index to the position of the first recycled position:
Index(0) = Index(2)
So the index container size is decreased.
Now Index(2) which is at position of Index(0) gets added to the recycle container:
Recycle(1) = Index(0) [Remember that it is Index(2) just with an other position]
Now the last active index gets recycled. So the recycle container looks like this:
Recycle(0) => 0
Recycle(1) => 2
Recycle(2) => 1
So if the spell gets executed now the system will release the last index of the recycle
container.
Index(0) => Recycle(2)
Short Example:
--------------
Spell gets executed. 4 times:
Index(0) => value(0)
Index(1) => value(1)
Index(2) => value(2)
Index(3) => value(3)
Inactive variables get recycled (List of ending indexes: 2,1,3,0):
Recycle(0) => value(2)
Recycle(1) => value(1)
Recycle(2) => value(3)
Recycle(3) => value(0)
Spell gets executed. 3 times:
Index(0) = Recycle(3) => value(0)
Index(1) = Recycle(2) => value(3)
Index(2) = Recycle(1) => value(1)
Inactive variable get recycled (List of ending indexes: 1):
Recycle(1) = Index(1) => value(3)
Spell gets executed. 3 times:
Index(2) = Recycle(1) => value(3)
Index(3) = Recycle(0) => value(2)
Index(4) => value(4)
Inactive variable get recycled (List of ending indexes: 3,2,4,1,0):
Recycle(0) = Index(3) => value(2)
Recycle(1) = Index(2) => value(3)
Recycle(2) = Index(4) => value(4)
Recycle(3) = Index(1) => value(1)
Recycle(4) = Index(0) => value(0)
Why did a made a second version?:
---------------------------------
So you can decide what you like more...
JeffQ's Basic Chain System v2.00f
Created Date: 22 January 2010
Author: JeffQ a.k.a JeffreyQ, SmileyJeff
**Official version will only be destributed by ME (JeffQ, JeffreyQ. SmileyJeff). Anyone else who upload this is edited.
I have been working on my AoS map and decided to create a chain system that can do pretty much anything.
Because my AoS have alot of chain spells that are in GUI.
So here it is. After 3 days of hardworking and understanding indexing. I present you JeffQ's Basic Chain System (MUI/GUI using Indexing).
======================
Change Log
======================
v2.00f, 24 Feb 2010
- Chain should no longer jump to buildings/structures.
- Some demo ability can still target buildings, this is because i didn't limit the target allowed at the ability editor. (Nothing to do with the system)
v2.00e, 31 Jan 2010
- Fix lightning height to match cliff or raised terrain.
- Added a raised terrain and cliff to test out.
v2.00d, 25 Jan 2010
- Rearrange Folder for easier implementing in other maps.
- Updated "How To Use" in the README to give a step by step tutorial on how to implement. Please do give it a read.
v2.00c, 24 Jan 2010
- Chain now gets unit height +25. Meaning that if you target a flying unit, the chain height will change accordingly.
- Added a few flying units to let you try out the dynamic chain height.
- Added Chain Globals Trigger to store Locust.
- Chain should now only jump to units that doesn't have locust (This should remove the limitation of where you need to only base all other ability dummies on my dummy as long as your custom dummies have locust).
v2.00b, 23 Jan 2010
- Lightning effect now won't stick to ground.
v2.00a, 23 Jan 2010
- Fix 2 major bugs that make the chain not MUI for chain effect and Stun effect.
- Due to setting the wrong index. Now it has been fixed and should no longer containt any more bugs! Thanks to my sis for testing out this with me [:
v2.00, 22 Jan 2010
- Revamp the chain effect system.
- Remove dummy type. You still have to copy the dummy to your map though.
- Remove finger of death limitations. Now you can choose your chain effect freely.
- Added a new Chain Effect Trigger.
- This allows the chain to follow the unit if it is moving.
- Polish code.
- Fixed a few bugs in code.
- Added Implementation Details Trigger and tidy up the Example 1-8 Implementations.
- Removed all (SFX) ability as now you can use the QJC_ChainSFX to set your lightning effect.
v1.14, 22 Jan 2010
- Added 2 new abilities chain sheep and chain invisible to show the flexibility of this system and how to play around with stun/slow effect to your advantages.
v1.13a, 22 Jan 2010
- Added a sleep ability in the implementation after Kingz asked me what if he wanted to create a chain sleep. (No additional system code added).
- Fix several bugs.
v1.12, 21 Jan 2010
- Periodic Time change to 0.03seconds. And System Time update + 0.03 from 0.01.
v1.11a, 21 Jan 2010
- Fixed Implementation Example Comment for Chain Effect.
v1.11, 21 Jan 2010
- Initial Release.
======================
Customizable Features
======================
- Damage (Boolean: Only damage enemies nomatter what. If you want to damage ally use health and set ally = true)
- Heal (Boolean: Only heal Allies nomatter what)
- Health (Boolean: Make enemy lose health depending on Amount of Damage Type)
- Mana (Boolean: Make enemy lose mana depending on Amount of Damage Type)
- Gold (Boolean: Make enemy lose gold depending on Amount of Damage Type)
- Leech (Boolean: Only affects Health, Mana, Gold. If true, it will transfer Health/Mana/Gold over to the caster)
- Slow (Boolean: If true, it will slow units depending on slow effect)
- Slow Effect (Ability: The ability of slow effect, BASE ALL SLOW ON HUMAN SORCERESS SLOW!!)
- Stun (Boolean: If true, it will stun units depending on stun effect)
- Stun Effect (Ability: The ability of stun effect, BASE ALL STUN ON STORM BOLT!!)
- AoE (Boolean: If true, it will do AoE damage.)
- AoE Radius (Real: Set the radius of AoE Effect)
- Target Effect (String: Lets you insert your effect path)
- Chain Effect (LightningType: Feel free to choose your lightning effect for the chain)
- Amount of Damage Type (Real: Damage, Heal, Health, Mana, Gold)
- Amount Reduction (Real: Each jump reduce a percentage of amount of damage type)
- Jump Count (Integer: How many units it will jump)
- Jump Radius (Real: The range of how far the chain can jump between units)
- Jump Delay (Real: Supports the chain jump delay seconds. 0.10 is the effect of chain lightning, 0.00 is "ALMOST" instant)
- One Per Unit (Boolean: Chain will only hit the unit once if set to true)
- Priority (Boolean: Hit lowest health 1st)
- Ally (Boolean: Hit Ally if set to true, if enemy is also true, it will hit both)
- Enemy (Boolean: Hit Enemy if set to true, if elly is also true, it will hit both)
- Target Unit (Unit: Target Unit, set to No unit if no target or have a target point)
- Point (Point: Target Point, if has a target unit or no target disable this)
- No Target (Boolean: If true, disable point and set unit to no unit)
- Attack (Attack Type: Customize your own attack type)
- Damage Type (Damage Type: Customize your own damage type)
======================
Rules
======================
They are some rules applied to use this system. Is more of a technical limitation.
I will talk more about this after letting you know how to use.
1. Do not touch anything in Chain Create, Chain Jump and Chain Effect Trigger. Those are the system.
2. For implementation examples. Please look at the 8 examples of how flexible you can change the chain to what you want.
3. This system needs you to know the usage of Unit Editor and Ability/Buff Editor.
4. QJC_VarName, This is the only variables you can set.
5. QJCS_VarName are for system variables. So don't even touch it unless you know what you are doing.
======================
How to Use?
======================
If your map is a New Map without any triggers:
1. Open JeffQ's Basic Chain System map.
2. Open Trigger Editor.
3. File > Export Triggers.
4. Open your map.
5. Open Trigger Editor.
6. File > Import Triggers.
7. Remember to copy the Dummy over too.
If your map has existing triggers:
1. Open JeffQ's Basic Chain System map.
2. Copy JeffQ's Chain System folder by right-clicking it and select Copy.
3. Open your map.
4. File > Preference > Check "Automatically create unknown variables while pasting trigger data".
5. Open Object Editor. Create a Dummy base on anything, name it Dummy and give it locust and remove its model. Or just copy the dummy from my map.
6. Open Trigger Editor.
7. Right click on the Map Name, or any other trigger/category/comments, and select Paste.
8. Create a variable by pressing CTRL+B and name it QJCS_ChainZ of type Real, array size of 1.
9. Go to "Chain Create" Trigger, find any Disabled Actions, enable it by right clicking and check Enable.
10.Go to "Chain Jump" Trigger, find any Disabled Actions, enable it by right clicking and check Enable.
11.Go to "Chain effect" Trigger, find any Disabled Actions, enable it by right clicking and check Enable.
======================
Vars you need to set
======================
QJC_Caster : Triggering Unit
- Your caster.
QJC_TargetUnit : Target unit of ability being cast
- Set this to No unit if your spell is target point or instant cast.
QJC_TargetPoint : Target point of ability being cast
- Disable this if you have a target unit or instant cast.
QJC_NoTarget : True/False
- Set this to true if your spell is instant cast.
- Remember to disable QJC_TargetPoint and set QJC_TargetUnit to No Unit.
QJC_Priority : True/False
- If true, it will find the lowest health unit in range first.
QJC_OnePerUnit : True/False
- If true, it will only hit the target once.
QJC_Damage : True/False
- If true, this chain will do damage to enemy depending on QJC_Amount.
QJC_Heal : True/False
- If true, this chain will heal ally depending on QJC_Amount.
QJC_Health : True/False
- If true, it will make enemy lose health.
- If leech is on, it will transfer health over to the caster.
QJC_Mana : True/False
- If true, it will make enemy lose mana.
- If leech is on, it will transfer mana over to the caster.
QJC_Gold : True/False
- If true, it will make enemy lose gold.
- If leech is on, it will transfer gold over to the caster.
QJC_Leech : True/False
- If true, it will apply leeching effect to Health/Mana/Gold type.
QJC_Ally : True/False
- If true, it will hit ally.
- If enemy is also true, it will hit both.
QJC_Enemy : True/False
- If true, it will hit enemy.
- If ally is also true, it will hit both.
QJC_Amount : Real
- The amount of damage type you want this chain to do.
- Eg: QJCGold = true, QJC_Amount = 100, it will make enemy lose 100gold.
QJC_ChainSFX : Lightning Type
- Feel free to choose the lightning type for your chain.
QJC_TargetSFX : String
- Lets you set the special effect for unit when hit by chain.
QJC_AttackType : Attack Type
- Nothing much to say about this.
QJC_DamageType : Damage Type
- Nothing much to say about this.
QJC_AmountReduce: Real
- This is base on percentage.
- If it is 0.00, each chain jump won't reduce QJC_Amount
- If it is 0.10, each chain jump will decreament QJC_Amount by 10%.
- Least is 0.00, Max is 1.00.
QJC_JumpCount : Integer
- Set the amount of jumps for the chain.
QJC_JumpDelayTime: Real
- This is base on seconds.
- Least is 0.00, Max is 1.00
- Set to 0.10 to get the effect of Blizzard Chain Lightning
QJC_JumpRadius : Real
- How far can the chain jump between points.
QJC_Slow : Boolean
- Set to true to slow enemies.
- You have to set QJC_SlowEffect if you want this to work.
QJC_SlowEffect : Ability
- Disable this if Slow Effect is False.
- Slow effect must base on HUMAN SLOW. NO BUTS!
- For example, go to "Ability Editor > Custom Abilities > Neutral Hostile > Units".
- Slow effect will have a (Slow) behind the name.
QJC_Stun : Boolean
- Set to true to stun enemies.
- You have to set QJC_StunEffect if you want this to work.
QJC_StunEffect : Ability
- Disable this if stun effect is false.
- Stun effect must base on STORM BOLT. NO BUTS!
- For example, go to "Ability Editor > Custom Abilities > Neutral Hostile > Units".
- Stun effect will have a (Stun) behind the name)
QJC_AoE : Boolean
- Set to true to do AoE.
- You have to set QJC_AoERadius to make this work. If not the radius will be 0.00.
QJC_AoERadius : Real
- The AoE range you want.
Trigger - Run Chain Create <gen> (checking conditions)
- This must always be included in the trigger of your spell. If not the system won't run.
- Must check conditions.
======================
Limitations
======================
Q: Why i need to base Chain Effect on Finger of Death?
A: I order the dummy unit to cast fingerofdeath order command. And also finger of death let's you do chain effects while channel can't for some reason.
Q: Why i need to base Slow on Human Sorceress Slow?
A: I order the dummy unit to cast Human Sorceress - Slow when i do this. If you base it on other spells, it just won't work.
Q: Why i need to base Stun on Storm Bolt?
A: I order the dummy unit to cast Human Mountain King - Storm Bolt.
Q: Why must dummy be invulnerable and not Locust? And why must it have no model?
A: Because i order the dummy to finger of death the next dummy. If it is locust, it can't be finger of death for the chain effect. No model makes it unselectable on map and won't display health if you hold down ALT key.
Q: Why not ask the dummy to chain the target? Is so much simpler.
A: No. After 3 days of testing. If the target dies the dummy won't be fast enough to cast the chain, and thus, no chain effect.
Q: So where did you hide that dummy? Where can i find it to copy it to my map?
A: It's at the Object Editor > Unit > Custom Units > Night Elf > Melee > Units. There you can find Dummy. Say hi.
======================
Flexibility
======================
1. If you fully know how to use this system. It is quite flexible as you can set the Slow and Stun effect by changing the buffs of the Abilities.
2. Alot of things stack except for a few limitations. You can set all to true and see what happens [:
3. You can target point, target unit or No Target!
======================
Bug Reports & Feedback
======================
Please send an email to [email protected] if you find a bug. Or post it on the comment at Hive Work Shop.
======================
Credits
======================
Thanks to the below who shed some light on me about indexing and leaks.
- Kingz
- YourNameHere
- baassee
- Adiktuz
- Maker
- TitanHex
- D4RK_G4ND4LF
- And other people if i miss out.
Special Thanks to Kingz who show me his simple lightning system. I learned alot from it and after understanding i made 1 my own to fit my system.
***Enjoy this system [:
//TESH.scrollpos=43
//TESH.alwaysfold=0
<<==>>CUSTOM PROJECTILES SYSTEM<<==>>
<<==>>Ver 1.2c<<==>>
<<==>>Created by LeoNguyen112<<==>>
I. Features:
o Simply create a straight projectile
o Create a projectile with vertical arc (normal missile) or horizontal arc (like
DotA's Wild Axe of Rexxar)
o Create a projectile toward a unit or location
o Can activate following trigger when hit (allow you to create attaching effect)
II. Installation:
1. Import missiledummy.mdx with contained in this map to your map
2. Create a new dummy which uses the model above and have Harvest ability.
3. Copy triggers: CPS Loop, CPS Creating, CPS Init to your map.
4. In trigger CPS Init, Set CPS_Dummy = "Your missile dummy"
III. Variables' Functions:
Projectile_AttackType: attack type of damage
Projectile_Damage: impact damage (real)
Projectile_DamageType: type of impact damage
Projectile_Impact: effect will be created at the impact
Projectile_Model: model of projectile
Projectile_Height: flying height of projectile
Projectile_Size: size (%) of projectile, this value decides both Length, Width, Height.
Projectile_Speed: flying range of projectile every 0.02 second
Projectile_Source: source unit of projectile
Projectile_TargetUnit: target unit of projectile
Projectile_TargetPoint: target point of projectile
Projectile_UnitOrPoint: this value decides target type of projectile
- True: target type of projectile is unit.
- False: target type of projectile is point. When it is false, you need to set the
following variable:
- Projectile_AoE - decide projectile's area of effect.
- Projectile_DestroyTree - allow to destroy trees or not (true/false)
Projectile_Trigger: trigger will be activated at the projectile's impact
Projectile_HArc: true = projectile will move with horizontal arc, false = without arc.
Once this value is true, there are variables you need to set:
- Projectile_HArcWidth: decide arc's width, it also depends on projectile's speed
- Projectile_HArcLeftOrRight: true = left, false = right
Projectile_VArc: true = projectile will move with vertical arc, false = without arc.
Once this value is true, there is a variable you need to set:
- Projectile_VArcHeight: decide arc's height, it also depend on projectile's speed
IV. How to Use:
1. You need 1 trigger to set all (or what neccesary) variables above, then run
CPS Creating by using:
"Custom script: call TriggerExecute( gg_trg_CPS_Creating )"
2. To use a following trigger:
a) You can use directly stored Projectile System's data through those variables:
+ SPSD_Caster
+ SPSD_TargetUnit
+ SPSD_TargetPoint (it's unnecessary to remove leak this variable, because the
system will automatically do it)
b) In my onpinion, you should set those variables above into yours own and then use
it normally:
+ Set ABC_Caster = SPSD_Caster
+ Set ABC_Target = SPSD_TargetUnit
+ Set ABC_Point = SPSD_TargetPoint
(ABC is your spell's name)
3. See "Example Spells" - "Frost Arrow / Immolation Arrow Spell" if you need some
example about how to use following trigger.
V. Special Thanks to:
o redscores for the dummy model.
o Magtheridon96 for useful tips.
o GhostHunter123
o Almia
//TESH.scrollpos=23
//TESH.alwaysfold=0
function SetUnitFacingZ takes unit u, real radians returns nothing
local integer i=R2I(radians*bj_RADTODEG+90.5)
// call SaveReal(WPSS_HASH, GetHandleId(u), StringHash("AngleZ"), radians)
if(i>=180) then
set i=179
elseif(i<0) then
set i=0
endif
call SetUnitAnimationByIndex(u, i)
endfunction
function GetUnitZ takes unit u returns real
local location p = GetUnitLoc(u)
local real r = GetLocationZ(p)+GetUnitFlyHeight(u)
call RemoveLocation(p)
set p = null
return r
endfunction
function SetPointInBorders takes location l returns nothing
local real x = GetLocationX(l)
local real y = GetLocationY(l)
local real nx = x
local real ny = y
if x > udg_WORLD_BORDER_MAX_X then
set nx = udg_WORLD_BORDER_MAX_X
elseif x < udg_WORLD_BORDER_MIN_X then
set nx = udg_WORLD_BORDER_MIN_X
endif
if y > udg_WORLD_BORDER_MAX_Y then
set ny = udg_WORLD_BORDER_MAX_Y
elseif y < udg_WORLD_BORDER_MIN_Y then
set ny = udg_WORLD_BORDER_MIN_Y
endif
call MoveLocation(l,nx,ny)
endfunction
function Trig_Utilidad_SUP_Actions takes nothing returns nothing
//call BJDebugMsg("KILL")
endfunction
function Trig_Utilidad_SUP_Conditions takes nothing returns boolean
if GetUnitTypeId(GetTriggerUnit())==udg_DUMMY_ID then
call Trig_Utilidad_SUP_Actions()
endif
return FALSE
endfunction
function InitTrig_Utilidad_SUP takes nothing returns nothing
local trigger t=CreateTrigger()
//call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
//call TriggerAddCondition( t, Condition( function Trig_Utilidad_SUP_Conditions ) )
set t =null
endfunction
//===========================================================================
// Damage Engine lets you detect, amplify, block or nullify damage. It even
// lets you detect if the damage was physical or from a spell. Just reference
// DamageEventAmount/Source/Target or the boolean IsDamageSpell, to get the
// necessary damage event data.
//
// - Detect damage: use the event "DamageEvent Equal to 1.00"
// - To change damage before it's dealt: use the event "DamageModifierEvent Equal to 1.00"
// - Detect damage after it was applied, use the event "AfterDamageEvent Equal to 1.00"
// - Detect spell damage: use the condition "IsDamageSpell Equal to True"
// - Detect zero-damage: use the event "DamageEvent Equal to 2.00" (an AfterDamageEvent will not fire for this)
//
// You can specify the DamageEventType before dealing triggered damage. To prevent an already-improbable error, I recommend running the trigger "ClearDamageEvent (Checking Conditions)" after dealing triggered damage from within a damage event:
// - Set NextDamageType = DamageTypeWhatever
// - Unit - Cause...
// - Trigger - Run ClearDamageEvent (Checking Conditions)
//
// You can modify the DamageEventAmount and the DamageEventType from a "DamageModifierEvent Equal to 1.00" trigger.
// - If the amount is modified to negative, it will count as a heal.
// - If the amount is set to 0, no damage will be dealt.
//
// If you need to reference the original in-game damage, use the variable "DamageEventPrevAmt".
//
//===========================================================================
// Programming note about "integer i" and "udg_DmgEvRecursionN": integer i
// ranges from -1 upwards. "udg_DmgEvRecursionN" ranges from 0 upwards.
// "integer i" is always 1 less than "udg_DmgEvRecursionN"
//
function DmgEvResetVars takes nothing returns nothing
local integer i = udg_DmgEvRecursionN - 2
set udg_DmgEvRecursionN = i + 1
if i >= 0 then
set udg_DamageEventPrevAmt = udg_LastDmgPrevAmount[i]
set udg_DamageEventAmount = udg_LastDmgValue[i]
set udg_DamageEventSource = udg_LastDmgSource[i]
set udg_DamageEventTarget = udg_LastDmgTarget[i]
set udg_IsDamageSpell = udg_LastDmgWasSpell[i]
set udg_DamageEventType = udg_LastDmgPrevType[i]
endif
endfunction
function CheckDamagedLifeEvent takes boolean clear returns nothing
if clear then
set udg_NextDamageOverride = false
set udg_NextDamageType = 0
endif
if udg_DmgEvTrig != null then
call DestroyTrigger(udg_DmgEvTrig)
set udg_DmgEvTrig = null
if udg_IsDamageSpell then
call SetWidgetLife(udg_DamageEventTarget, RMaxBJ(udg_LastDamageHP, 0.41))
if udg_LastDamageHP <= 0.405 then
if udg_DamageEventType < 0 then
call SetUnitExploded(udg_DamageEventTarget, true)
endif
//Kill the unit
call DisableTrigger(udg_DamageEventTrigger)
call UnitDamageTarget(udg_DamageEventSource, udg_DamageEventTarget, -999, false, false, null, DAMAGE_TYPE_UNIVERSAL, null)
call EnableTrigger(udg_DamageEventTrigger)
endif
elseif GetUnitAbilityLevel(udg_DamageEventTarget, udg_DamageBlockingAbility) > 0 then
call UnitRemoveAbility(udg_DamageEventTarget, udg_DamageBlockingAbility)
call SetWidgetLife(udg_DamageEventTarget, udg_LastDamageHP)
endif
if udg_DamageEventAmount != 0.00 and not udg_HideDamageFrom[GetUnitUserData(udg_DamageEventSource)] then
set udg_AfterDamageEvent = 0.00
set udg_AfterDamageEvent = 1.00
set udg_AfterDamageEvent = 0.00
endif
call DmgEvResetVars()
endif
endfunction
function DmgEvOnAOEEnd takes nothing returns nothing
if udg_DamageEventAOE > 1 then
set udg_AOEDamageEvent = 0.00
set udg_AOEDamageEvent = 1.00
set udg_AOEDamageEvent = 0.00
set udg_DamageEventAOE = 1
endif
set udg_DamageEventLevel = 1
set udg_EnhancedDamageTarget = null
call GroupClear(udg_DamageEventAOEGroup)
endfunction
function DmgEvOnExpire takes nothing returns nothing
set udg_DmgEvStarted = false
call CheckDamagedLifeEvent(true)
//Reset things so they don't perpetuate for AoE/Level target detection
call DmgEvOnAOEEnd()
set udg_DamageEventTarget = null
set udg_DamageEventSource = null
endfunction
function PreCheckDamagedLifeEvent takes nothing returns boolean
call CheckDamagedLifeEvent(true)
return false
endfunction
function OnUnitDamage takes nothing returns boolean
local boolean override = udg_DamageEventOverride
local integer i
local integer e = udg_DamageEventLevel
local integer a = udg_DamageEventAOE
local string s
local real prevAmount
local real life
local real prevLife
local unit u
local unit f
call CheckDamagedLifeEvent(false) //in case the unit state event failed and the 0.00 second timer hasn't yet expired
set i = udg_DmgEvRecursionN - 1 //Had to be moved here due to false recursion tracking
if i < 0 then
//Added 25 July 2017 to detect AOE damage or multiple single-target damage
set u = udg_DamageEventTarget
set f = udg_DamageEventSource
elseif i < 16 then
set udg_LastDmgPrevAmount[i]= udg_DamageEventPrevAmt
set udg_LastDmgValue[i] = udg_DamageEventAmount
set udg_LastDmgSource[i] = udg_DamageEventSource
set udg_LastDmgTarget[i] = udg_DamageEventTarget
set udg_LastDmgWasSpell[i] = udg_IsDamageSpell
set udg_LastDmgPrevType[i] = udg_DamageEventType
else
set s = "WARNING: Recursion error when dealing damage! Make sure when you deal damage from within a DamageEvent trigger, do it like this:\n\n"
set s = s + "Trigger - Turn off (This Trigger)\n"
set s = s + "Unit - Cause...\n"
set s = s + "Trigger - Turn on (This Trigger)"
//Delete the next couple of lines to disable the in-game recursion crash warnings
call ClearTextMessages()
call DisplayTimedTextToPlayer(GetLocalPlayer(), 0.00, 0.00, 999.00, s)
return false
endif
set udg_DmgEvRecursionN = i + 2
set prevAmount = GetEventDamage()
set udg_DamageEventTarget = GetTriggerUnit()
set udg_DamageEventSource = GetEventDamageSource()
set udg_DamageEventAmount = prevAmount
set udg_DamageEventType = udg_NextDamageType
set udg_NextDamageType = 0
set udg_DamageEventOverride = udg_NextDamageOverride
set udg_NextDamageOverride = false
if i < 0 then
//Added 25 July 2017 to detect AOE damage or multiple single-target damage
if udg_DamageEventType == 0 then
if f == udg_DamageEventSource then
//Source has damaged more than once
if IsUnitInGroup(udg_DamageEventTarget, udg_DamageEventAOEGroup) then
//Added 5 August 2017 to improve tracking of enhanced damage against, say, Pulverize
set udg_DamageEventLevel = udg_DamageEventLevel + 1
set udg_EnhancedDamageTarget = udg_DamageEventTarget
else
//Multiple targets hit by this source - flag as AOE
set udg_DamageEventAOE = udg_DamageEventAOE + 1
endif
else
//New damage source - unflag everything
set u = udg_DamageEventSource
set udg_DamageEventSource = f
call DmgEvOnAOEEnd()
set udg_DamageEventSource = u
endif
call GroupAddUnit(udg_DamageEventAOEGroup, udg_DamageEventTarget)
endif
if not udg_DmgEvStarted then
set udg_DmgEvStarted = true
call TimerStart(udg_DmgEvTimer, 0.00, false, function DmgEvOnExpire)
endif
endif
if prevAmount == 0.00 then
if not udg_HideDamageFrom[GetUnitUserData(udg_DamageEventSource)] then
set udg_DamageEventPrevAmt = 0.00
set udg_DamageEvent = 0.00
set udg_DamageEvent = 2.00
set udg_DamageEvent = 0.00
endif
call DmgEvResetVars()
else
set u = udg_DamageEventTarget
set udg_IsDamageSpell = prevAmount < 0.00
if udg_IsDamageSpell then
set prevAmount = -udg_DamageEventAmount
set life = 1.00
if IsUnitType(u, UNIT_TYPE_ETHEREAL) and not IsUnitType(u, UNIT_TYPE_HERO) then
set life = life*udg_DAMAGE_FACTOR_ETHEREAL //1.67
endif
if GetUnitAbilityLevel(u, 'Aegr') > 0 then
set life = life*udg_DAMAGE_FACTOR_ELUNES //0.80
endif
if udg_DmgEvBracers != 0 and IsUnitType(u, UNIT_TYPE_HERO) then
//Inline of UnitHasItemOfTypeBJ without the potential handle ID leak.
set i = 6
loop
set i = i - 1
if GetItemTypeId(UnitItemInSlot(u, i)) == udg_DmgEvBracers then
set life = life*udg_DAMAGE_FACTOR_BRACERS //0.67
exitwhen true
endif
exitwhen i == 0
endloop
endif
set udg_DamageEventAmount = prevAmount*life
endif
set udg_DamageEventPrevAmt = prevAmount
set udg_DamageModifierEvent = 0.00
if not udg_DamageEventOverride then
set udg_DamageModifierEvent = 1.00
if not udg_DamageEventOverride then
set udg_DamageModifierEvent = 2.00
set udg_DamageModifierEvent = 3.00
endif
endif
set udg_DamageEventOverride = override
if udg_DamageEventAmount > 0.00 then
set udg_DamageModifierEvent = 4.00
endif
set udg_DamageModifierEvent = 0.00
if not udg_HideDamageFrom[GetUnitUserData(udg_DamageEventSource)] then
set udg_DamageEvent = 0.00
set udg_DamageEvent = 1.00
set udg_DamageEvent = 0.00
endif
call CheckDamagedLifeEvent(true) //in case the unit state event failed from a recursive damage event
//All events have run and the damage amount is finalized.
set life = GetWidgetLife(u)
set udg_DmgEvTrig = CreateTrigger()
call TriggerAddCondition(udg_DmgEvTrig, Filter(function PreCheckDamagedLifeEvent))
if not udg_IsDamageSpell then
if udg_DamageEventAmount != prevAmount then
set life = life + prevAmount - udg_DamageEventAmount
if GetUnitState(u, UNIT_STATE_MAX_LIFE) < life then
set udg_LastDamageHP = life - prevAmount
call UnitAddAbility(u, udg_DamageBlockingAbility)
endif
call SetWidgetLife(u, RMaxBJ(life, 0.42))
endif
call TriggerRegisterUnitStateEvent(udg_DmgEvTrig, u, UNIT_STATE_LIFE, LESS_THAN, RMaxBJ(0.41, life - prevAmount/2.00))
else
set udg_LastDamageHP = GetUnitState(u, UNIT_STATE_MAX_LIFE)
set prevLife = life
if life + prevAmount*0.75 > udg_LastDamageHP then
set life = RMaxBJ(udg_LastDamageHP - prevAmount/2.00, 1.00)
call SetWidgetLife(u, life)
set life = (life + udg_LastDamageHP)/2.00
else
set life = life + prevAmount*0.50
endif
set udg_LastDamageHP = prevLife - (prevAmount - (prevAmount - udg_DamageEventAmount))
call TriggerRegisterUnitStateEvent(udg_DmgEvTrig, u, UNIT_STATE_LIFE, GREATER_THAN, life)
endif
endif
set u = null
set f = null
return false
endfunction
function CreateDmgEvTrg takes nothing returns nothing
set udg_DamageEventTrigger = CreateTrigger()
call TriggerAddCondition(udg_DamageEventTrigger, Filter(function OnUnitDamage))
endfunction
function SetupDmgEv takes nothing returns boolean
local integer i = udg_UDex
local unit u
if udg_UnitIndexEvent == 1.00 then
set u = udg_UDexUnits[i]
if GetUnitAbilityLevel(u, 'Aloc') == 0 and TriggerEvaluate(gg_trg_Damage_Engine_Config) then
set udg_UnitDamageRegistered[i] = true
call TriggerRegisterUnitEvent(udg_DamageEventTrigger, u, EVENT_UNIT_DAMAGED)
call UnitAddAbility(u, udg_SpellDamageAbility)
call UnitMakeAbilityPermanent(u, true, udg_SpellDamageAbility)
endif
set u = null
else
set udg_HideDamageFrom[i] = false
if udg_UnitDamageRegistered[i] then
set udg_UnitDamageRegistered[i] = false
set udg_DamageEventsWasted = udg_DamageEventsWasted + 1
if udg_DamageEventsWasted == 32 then //After 32 registered units have been removed...
set udg_DamageEventsWasted = 0
//Rebuild the mass EVENT_UNIT_DAMAGED trigger:
call DestroyTrigger(udg_DamageEventTrigger)
call CreateDmgEvTrg()
set i = udg_UDexNext[0]
loop
exitwhen i == 0
if udg_UnitDamageRegistered[i] then
call TriggerRegisterUnitEvent(udg_DamageEventTrigger, udg_UDexUnits[i], EVENT_UNIT_DAMAGED)
endif
set i = udg_UDexNext[i]
endloop
endif
endif
endif
return false
endfunction
//===========================================================================
function InitTrig_Damage_Engine takes nothing returns nothing
local unit u = CreateUnit(Player(bj_PLAYER_NEUTRAL_EXTRA), 'uloc', 0, 0, 0)
local integer i = bj_MAX_PLAYERS //Fixed in 3.8
//Create this trigger with UnitIndexEvents in order add and remove units
//as they are created or removed.
local trigger t = CreateTrigger()
call TriggerRegisterVariableEvent(t, "udg_UnitIndexEvent", EQUAL, 1.00)
call TriggerRegisterVariableEvent(t, "udg_UnitIndexEvent", EQUAL, 2.00)
call TriggerAddCondition(t, Filter(function SetupDmgEv))
set t = null
//Run the configuration trigger to set all configurables:
if gg_trg_Damage_Engine_Config == null then
//It's possible this InitTrig_ function ran first, in which case use ExecuteFunc.
call ExecuteFunc("Trig_Damage_Engine_Config_Actions")
else
call TriggerExecute(gg_trg_Damage_Engine_Config)
endif
//Create trigger for storing all EVENT_UNIT_DAMAGED events.
call CreateDmgEvTrg()
//Create GUI-friendly trigger for cleaning up after UnitDamageTarget.
set udg_ClearDamageEvent = CreateTrigger()
call TriggerAddCondition(udg_ClearDamageEvent, Filter(function PreCheckDamagedLifeEvent))
//Disable SpellDamageAbility for every player.
loop
set i = i - 1
call SetPlayerAbilityAvailable(Player(i), udg_SpellDamageAbility, false)
exitwhen i == 0
endloop
//Preload abilities.
call UnitAddAbility(u, udg_DamageBlockingAbility)
call UnitAddAbility(u, udg_SpellDamageAbility)
call RemoveUnit(u)
set u = null
endfunction