Name | Type | is_array | initial_value |
AngleVar04 | real | No | |
AngleVar05 | real | No | |
Aqua_Burst_Ability_Level | integer | No | |
Aqua_Burst_Area_of_Effect | real | No | |
Aqua_Burst_Base_Damage | real | No | |
Aqua_Burst_Caster | unit | No | |
Aqua_Burst_Damage_Group | group | No | |
Aqua_Burst_Location | location | No | |
Aqua_Burst_Total_Damage | real | No | |
Arcane_Disruption_Base_Mana | real | No | |
Arcane_Disruption_Bonus_Mana | real | No | |
Arcane_Disruption_Caster | unit | No | |
Arcane_Disruption_Damage | real | No | |
Arcane_Disruption_Level | integer | No | |
Arcane_Disruption_Target | unit | No | |
Arcane_Disruption_Total_Mana | real | No | |
Arrow | unit | Yes | |
Arrow_Ability | abilcode | No | |
Arrow_Ability_Stun | abilcode | No | |
Arrow_Angle | real | Yes | |
Arrow_AoE | real | No | |
Arrow_CastingUnit | unit | Yes | |
Arrow_Damage | real | Yes | |
Arrow_Damage_Mechanicals | boolean | No | |
Arrow_Damage_Structures | boolean | No | |
Arrow_Default_Point | location | Yes | |
Arrow_Distance | real | Yes | |
Arrow_Dummy_Unit | unit | Yes | |
Arrow_Group | group | Yes | |
Arrow_Level | integer | Yes | |
Arrow_Maximum_Distance | real | No | |
Arrow_MUI | boolean | No | |
Arrow_MUI_2 | integer | No | |
Arrow_Offset | real | No | |
Arrow_Pass_Allies | boolean | No | |
Arrow_Pass_Mechanicals | boolean | No | |
Arrow_Pass_Structures | boolean | No | |
Arrow_Point | location | Yes | |
Arrow_Speed | real | No | |
Arrow_Target_Point | location | No | |
Arrow_Unit | unit | Yes | |
Arrow_Unit_Dummy | unitcode | No | |
Arrow_Unit_Projectile | unitcode | No | |
Beast_Attack_Ability_Level | integer | No | |
Beast_Attack_Atribute | integer | No | |
Beast_Attack_Atribute_Damage | real | No | |
Beast_Attack_Caster | unit | No | |
Beast_Attack_Damage_Splitter | integer | No | |
Beast_Attack_Life_Damage | real | No | |
Beast_Attack_Location | location | No | |
Beast_Attack_Location2 | location | No | |
Beast_Attack_Max_Life | real | No | |
Beast_Attack_Target | unit | No | |
Beast_Attack_Total_Damage | real | No | |
CK | integer | Yes | |
CreateNewUnit | boolean | No | |
CREEP_DENIES | integer | Yes | |
CREEP_KILLS | integer | Yes | |
currentAbilityLevel | integer | No | |
currentCastingPlayer | player | No | |
currentCastingUnit | unit | No | |
currentHeroAbility | abilcode | No | |
currentHeroAbilityLevel | integer | No | |
CurrentHeroExperience | integer | No | |
currentHeroLevel | integer | No | |
currentLearnedAbility | abilcode | No | |
currentShiftUnit | unit | No | |
CurrentSpecialNumber | integer | No | |
CurrentUnitHPMP | real | No | |
Death_Loc | location | No | |
DeathMatch | integer | Yes | |
Desecration_Ability_Level | integer | No | |
Desecration_Area_of_Effect | real | No | |
Desecration_Base_Damage | real | No | |
Desecration_Base_Heal | real | No | |
Desecration_Caster | unit | No | |
Desecration_Corpse_Counter | integer | No | |
Desecration_Corpse_Group | group | No | |
Desecration_Damage_Group | group | No | |
Desecration_Explosion_Location | location | No | |
Desecration_Level_Damage | real | No | |
Desecration_Level_Heal | real | No | |
Desecration_Location | location | No | |
Desecration_Total_Damage | real | No | |
Desecration_Total_Heal | real | No | |
EA_Angle | real | Yes | |
EA_bPoint | location | Yes | |
EA_cPoint | location | Yes | |
EA_cUnit | unit | Yes | |
EA_Distance | real | Yes | |
EA_Dummy | unit | Yes | |
EA_HitUnit | unit | No | |
EA_Level | integer | Yes | |
EA_mPoint | location | Yes | |
EA_Targets | group | Yes | |
EA_Timer | real | Yes | |
EA_tPoint | location | No | |
Earth_Fury_Ability_Level | integer | No | |
Earth_Fury_AoE_Bouns | real | No | |
Earth_Fury_Base_Area_of_Effect | real | No | |
Earth_Fury_Base_Damage | real | No | |
Earth_Fury_Bonus_Damage | real | No | |
Earth_Fury_Caster | unit | No | |
Earth_Fury_Chance | real | No | |
Earth_Fury_Damage_Group | group | No | |
Earth_Fury_Dummy_Ability | abilcode | No | |
Earth_Fury_Dummy_Ability_2 | abilcode | No | |
Earth_Fury_Location | location | No | |
Earth_Fury_Owner | player | No | |
Earth_Fury_Total_Area_of_Effec | real | No | |
Earth_Fury_Total_Damage | real | No | |
FB_Blast | unit | Yes | |
FB_Caster | unit | Yes | |
FB_Dummy | unit | Yes | |
FB_Explosion | integervar | Yes | |
FB_Indexsize | integer | No | |
FB_Integer | integer | Yes | |
FB_Loop | integervar | No | |
FB_Maxindexsize | integer | No | |
FB_Point | location | Yes | |
FB_Real | real | Yes | |
FB_Temp | integer | No | |
FFN_Int | integervar | No | |
Fire_Wall_Ability_Level | integer | No | |
Fire_Wall_Caster | unit | No | |
Fire_Wall_Distance | real | No | |
Fire_Wall_Dummy_Ability | abilcode | No | |
Fire_Wall_Duration | real | No | |
Fire_Wall_Location | location | No | |
Fire_Wall_Loop_Location | location | No | |
Fire_Wall_Loop_Location_2 | location | No | |
Fire_Wall_Owner | player | No | |
FloatingTextVar | texttag | Yes | |
FN_Effect_Loc | location | No | |
FN_Int | integervar | No | |
ForceFour | force | No | |
ForceOne | force | No | |
ForceThree | force | No | |
ForceTwo | force | No | |
FoV_Ability_Level | integer | No | |
FoV_Base_AoE | real | No | |
FoV_Base_Damage | real | No | |
FoV_Bonus_AoE | real | No | |
FoV_Caster | unit | No | |
FoV_Damage_Group | group | No | |
FoV_Location | location | No | |
FoV_Total_AoE | real | No | |
FoV_Total_Damage | real | No | |
Game_Minutes | integer | No | |
Game_Seconds | integer | No | |
Game_Time | timer | No | |
GameMode | integer | No | |
GameValue | integer | No | |
GroupVar10 | group | No | |
GroupVar7 | group | No | |
HERO_KILLS | integer | Yes | |
Heroes_All | unitcode | Yes | |
HK | integer | Yes | |
Impale_Angle | real | No | |
Impale_Caster | unit | No | |
Impale_Caster_Loc | location | No | |
Impale_Dummy_AbilityI | abilcode | No | |
Impale_Dummy_AbilityII | abilcode | No | |
Impale_Dummy_Face | real | No | |
Impale_Facing_Angle | real | No | |
Impale_Level | integer | No | |
Impale_LocI | location | No | |
Impale_LocII | location | No | |
Impale_LocIII | location | No | |
Impale_Owner | player | No | |
Impale_Target_Loc | location | No | |
Invisibility_Level | integer | No | |
Invisibility_Unit | unit | No | |
Ion_Canon_Ability_Level | integer | No | |
Ion_Canon_AoE | real | No | |
Ion_Canon_Base_Damage | real | No | |
Ion_Canon_Base_Mana_Burn | real | No | |
Ion_Canon_Caster | unit | No | |
Ion_Canon_Damage_Group | group | No | |
Ion_Canon_Distance | real | No | |
Ion_Canon_Location | location | No | |
Ion_Canon_Loop_Location | location | No | |
Ion_Canon_Loop_Number | integer | No | |
Ion_Canon_Total_Damage | real | No | |
Ion_Canon_Total_Mana_Burn | real | No | |
isAbility | boolean | No | |
KB_Angle | real | Yes | |
kb_angle | real | Yes | |
kb_bolean | boolean | Yes | |
kb_caster | unit | Yes | |
KB_Casters | unit | Yes | |
KB_CountBuffs | integer | No | |
KB_DestroyTrees | boolean | Yes | |
kb_distance | real | Yes | |
KB_Effects_1 | string | Yes | |
KB_Effects_2 | string | Yes | |
KB_GeneralIntegers | integervar | Yes | |
KB_KnockbackedUnits | group | No | |
KB_Levels | integer | Yes | |
kb_lighting | lightning | Yes | |
KB_MaxDistance | real | Yes | |
KB_ReachedDistance | real | Yes | |
KB_ReducedReal | real | No | |
KB_ReduceSpeedReal | real | Yes | |
KB_SpecificSpeed | real | Yes | |
KB_StartPositions | location | Yes | |
KB_TempPoint | location | Yes | |
KB_TempReal | real | No | |
KB_TotalKnockUnits | integer | No | |
KB_Units | unit | Yes | |
KBA_Caster | unit | No | |
KBA_DestroyTrees | boolean | No | |
KBA_DistancePerLevel | real | No | |
KBA_Level | integer | No | |
KBA_SpecialEffects | string | Yes | |
KBA_Speed | real | No | |
KBA_StartingPosition | location | No | |
KBA_TargetUnit | unit | No | |
KillsHero | real | Yes | |
KillsUnit | real | Yes | |
KillTotals | integer | Yes | |
Knockback_Loc1 | location | No | |
Knockback_Loc2 | location | No | |
Knockback_Target | unit | No | |
KnockbackAngle | real | No | |
KnockbackDistance | real | No | |
KnockbackSpeed | real | No | |
KnockbackTable | hashtable | No | |
KnockbackUnits | group | No | |
LastHeroStanding | force | No | |
LeaderBoard | leaderboard | No | |
LeaderboardScourge | leaderboard | No | |
LeaderboardSentinel | leaderboard | No | |
Leap_Ability | abilcode | No | |
Leap_Ability_Buff | abilcode | No | |
Leap_Angle | real | Yes | |
Leap_Caster | unit | No | |
Leap_CasterLoc | location | No | |
Leap_CastPoint | location | Yes | |
Leap_Counts | integer | No | |
Leap_CustomValue | integer | No | |
Leap_Distance | real | Yes | |
Leap_DistanceTravel | real | Yes | |
Leap_Dummy_Unit | unit | Yes | |
Leap_Factor | integer | Yes | |
Leap_Level | integer | Yes | |
Leap_Maximum_Distance | real | Yes | |
Leap_MoveGroup | group | No | |
Leap_Movement | location | No | |
Leap_MUI | integer | No | |
Leap_MUI_2 | integer | No | |
Leap_Offset | real | Yes | |
Leap_Point | location | Yes | |
Leap_Unit | unit | Yes | |
Leap_Unit_Dummy | unitcode | No | |
Leap_UnitGroup | group | No | |
LS_Dummy | unit | No | |
LS_GeneralInteger | integervar | No | |
LS_Groups | group | Yes | |
LS_TempPoint | location | Yes | |
M_row | integer | Yes | |
MH_Angle | real | Yes | |
MH_Attack | boolean | Yes | |
MH_Caster | unit | Yes | |
MH_Damage | real | Yes | |
MH_Distance | real | Yes | |
MH_Group | group | Yes | |
MH_Hook | unit | Yes | |
MH_Hooks | group | Yes | |
MH_Index | integervar | Yes | |
MH_Life | real | Yes | |
MH_Move | real | Yes | |
MH_NearHook | group | Yes | |
MH_Point | location | Yes | |
MH_Shmat | unit | Yes | |
MH_Spell | abilcode | Yes | |
MH_Target | unit | Yes | |
MH_Time | real | Yes | |
MODE_AllRandom_AllPick | integer | No | |
MODE_Normal | integer | No | |
MODE_Reverse | integer | No | |
MoonlightShadow_Caster | unit | Yes | |
MoonlightShadow_Counts | integer | No | |
MoonlightShadow_CustomValue | integer | No | |
MoonlightShadow_Duration | real | Yes | |
MoonlightShadow_InvisibleGroup | group | No | |
MoonlightShadow_PickedUnit | unit | No | |
MoonlightShadow_Point | location | Yes | |
MoonlightShadow_TimeGroup | group | No | |
MoonlightShadow_UnitGroup | group | No | |
MS_Ability | abilcode | No | |
MS_Ability_Buff | abilcode | No | |
MS_Casting_Group | group | No | |
MS_Duration | real | No | |
MS_Group | group | Yes | |
MS_Hashtable | hashtable | No | |
MS_MUI | integer | No | |
MS_MUI_2 | integer | No | |
MSEffectPath | string | No | |
MUI1 | integer | No | |
MUI2 | integer | No | |
MUI3 | integervar | No | |
Multi_Shot_Ability_Level | integer | No | |
Multi_Shot_Base_Arrow_Count | integer | No | |
Multi_Shot_Caster | unit | No | |
Multi_Shot_Dummy_Ability | abilcode | No | |
Multi_Shot_Facing | real | No | |
Multi_Shot_Location | location | No | |
Multi_Shot_Location_2 | location | No | |
Multi_Shot_Loop_Location | location | No | |
Multi_Shot_Loop_Location2 | location | No | |
Multi_Shot_Owner | player | No | |
Multi_Shot_Total_Arrow_Count | integer | No | |
Multiboard_Clock | integer | No | |
Multiboard_ShowDeaths | boolean | No | |
Multiboard_Spots | integer | Yes | |
NameFarbe | string | Yes | |
NamePlayer | string | Yes | |
Napalm_Strike_Ability_Level | integer | No | |
Napalm_Strike_Area_of_Effect | real | No | |
Napalm_Strike_Base_Damage | real | No | |
Napalm_Strike_Caster | unit | No | |
Napalm_Strike_Damage_Group | group | No | |
Napalm_Strike_Dummy_Ability | abilcode | No | |
Napalm_Strike_Location | location | No | |
Napalm_Strike_Owner | player | No | |
Napalm_Strike_Total_Damage | real | No | |
NovaLoc | location | No | |
NUM_HEROES | integer | No | 20 |
Odd_Man_Out | force | No | |
Player | player | No | |
Player_Already_Picked | integer | Yes | |
Player_group | force | No | |
PLAYER_ID | integer | No | |
PlayerNames | string | Yes | |
Players | force | No | |
PlayersCount | integer | No | |
PlayersScourge | force | No | |
PlayersScourgeCount | integer | No | |
PlayersScourgeReverse | force | No | |
PlayersSentinel | force | No | |
PlayersSentinelCount | integer | No | |
PlayersSentinelReverse | force | No | |
pocSkillPointCount | integer | No | |
Point | location | No | |
Power_Slam_Ability_Level | integer | No | |
Power_Slam_Base_Chance | real | No | |
Power_Slam_Caster | unit | No | |
Power_Slam_Damage | real | No | |
Power_Slam_Damage_Multiplier | real | No | |
Power_Slam_Dummy_Ability | abilcode | No | |
Power_Slam_Location | location | No | |
Power_Slam_Owner | player | No | |
Power_Slam_Strength | integer | No | |
Power_Slam_Target | unit | No | |
Power_Slam_Total_Chance | real | No | |
powerOfChaosLvl2 | boolean | No | |
PR_Ability_Level | integer | No | |
PR_Atribute | integer | No | |
PR_Caster | unit | No | |
PR_Caster_Loc | location | No | |
PR_Damage | real | No | |
PR_Damage_Factor | real | No | |
PR_Dummy_Ability | abilcode | No | |
PR_Target | unit | No | |
PR_Target_Loc | location | No | |
PR_Target_Mana | real | No | |
Preload_Point | location | No | |
Random_Hero | integer | No | |
RANDOM_HERO_ARRAY | unitcode | Yes | |
RandomAllHeroes | hashtable | No | |
RandomData_All | integer | Yes | |
RandomTotal_All | integer | No | |
randomType | unitcode | No | |
Razor_Edge_Ability_Level | integer | No | |
Razor_Edge_Area_of_Effect | real | No | |
Razor_Edge_Base_Damage | real | No | |
Razor_Edge_Caster | unit | No | |
Razor_Edge_Damage_Group | group | No | |
Razor_Edge_Location | location | No | |
Razor_Edge_Location2 | location | No | |
Razor_Edge_Total_Damage | real | No | |
RE_Knock_Angle | real | No | |
RE_Knock_Distance | real | No | |
RE_Knock_Group | group | No | |
RE_Knock_Loc1 | location | No | |
RE_Knock_Loc2 | location | No | |
RE_Knock_Speed | real | No | |
RE_Knocktable | hashtable | No | |
RepickAllHeroes | hashtable | No | |
RevivableHeroes | group | No | |
ReviveTimers | timer | Yes | |
Score_Deaths | integer | Yes | |
Score_Kills | integer | Yes | |
Scream_Ability_Level | integer | No | |
Scream_Area_of_Effect | real | No | |
Scream_Base_Area_of_Effect | real | No | |
Scream_Base_Damage | real | No | |
Scream_Bounus_Area_of_Effect | real | No | |
Scream_Caster | unit | No | |
Scream_Damage_Group | group | No | |
Scream_Dummy_Ability | abilcode | No | |
Scream_Location | location | No | |
Scream_Owner | player | No | |
Scream_Sound | sound | No | |
Scream_Sound_Volume | real | No | |
Scream_Total_Damage | real | No | |
Sfx | effect | Yes | |
shadowShifterAbilityEarthLevel | integer | Yes | |
shadowShifterAbilitySeaLevel | integer | Yes | |
shadowShifterAbilityStarLevel | integer | Yes | |
shadowShifterInUltimate | boolean | Yes | |
shadowShifterLevelsUp | integer | Yes | |
Shadowstep_Ability_Level | integer | No | |
Shadowstep_Base_Damage | real | No | |
Shadowstep_Calculation | real | No | |
Shadowstep_Caster | unit | No | |
Shadowstep_Damage_Multiplier | real | No | |
Shadowstep_Location | location | No | |
Shadowstep_Location_2 | location | No | |
Shadowstep_Loop_Location | location | No | |
Shadowstep_Loop_Number | integer | No | |
Shadowstep_Target | unit | No | |
Shadowstep_Total_Damage | real | No | |
ShortMode_On | boolean | No | |
Sinister_Strike_Ability_Level | integer | No | |
Sinister_Strike_Atribute | integer | No | |
Sinister_Strike_Base_Chance | real | No | |
Sinister_Strike_Bonus_Armor | integer | No | |
Sinister_Strike_Caster | unit | No | |
Sinister_Strike_Damage_Factor | real | No | |
Sinister_Strike_Dummy_Ability | abilcode | No | |
Sinister_Strike_Dummy_Ability2 | abilcode | No | |
Sinister_Strike_Location | location | No | |
Sinister_Strike_Normal_Armor | integer | No | |
Sinister_Strike_Owner | player | No | |
Sinister_Strike_Target | unit | No | |
Sinister_Strike_Total_Chance | real | No | |
Sinister_Strike_Total_Damage | real | No | |
Sort_Board_By_Kills | boolean | No | |
SpecialEffect2 | effect | Yes | |
Starfall_Ability | abilcode | No | |
Starfall_AoE | real | No | |
Starfall_AoE_Randomed | real | No | |
Starfall_CastingUnit | unit | Yes | |
Starfall_Damage | real | Yes | |
Starfall_Damage_Mechanicals | boolean | No | |
Starfall_Damage_Structures | boolean | No | |
Starfall_Damaging_Group | group | No | |
Starfall_Effect_Path | string | No | |
Starfall_Group | group | Yes | |
Starfall_Hashtable | hashtable | No | |
Starfall_Level | integer | Yes | |
Starfall_MUI | integer | No | |
Starfall_MUI_2 | integer | No | |
Starfall_Point | location | Yes | |
Starfall_Randomed_Group | group | Yes | |
Starfall_Randomed_Unit | unit | Yes | |
Starfall_Unit_Effect | unitcode | No | |
STRUCT_KILLS | integer | Yes | |
Super_Creeps_On | boolean | No | |
TargetLoc | location | No | |
TargetType | unitcode | No | |
Temp_Group | group | No | |
Temp_Integer | integervar | No | |
Temp_integer | integer | No | |
Temp_Point | location | No | |
Temp_UnitGroup | group | No | |
TempCaster | unit | No | |
TempGroup | group | No | |
TempInteger | integer | No | |
TempLevel | integer | No | |
TempLoc | location | No | |
TempLoc12 | location | No | |
TempLoc13 | location | No | |
TempLoc15 | location | No | |
TempLoc28 | location | No | |
TempLoc29 | location | No | |
TempLoc33 | location | No | |
TempLoc36 | location | No | |
TempLoc37 | location | No | |
TempLoc38 | location | No | |
TempLoc39 | location | No | |
TempLoc40 | location | No | |
TempLoc41 | location | No | |
TempLoc42 | location | No | |
TempLoc43 | location | No | |
TempLoc44 | location | No | |
TempLoc45 | location | No | |
TempLoc50 | location | No | |
TempLoc51 | location | No | |
TempLoc52 | location | No | |
TempLoc53 | location | No | |
TempLoc54 | location | No | |
TempLoc7 | location | No | |
TempPoint | location | No | |
TempPoint2 | location | No | |
TempReal | real | No | |
TempValue | integer | No | |
Termal_Eruption_Ability_Level | integer | No | |
Termal_Eruption_Area_of_Effect | real | No | |
Termal_Eruption_Base_Damage | real | No | |
Termal_Eruption_Caster | unit | No | |
Termal_Eruption_Damage_Group | group | No | |
Termal_Eruption_Dummy_Ability | abilcode | No | |
Termal_Eruption_DummyAbility2 | abilcode | No | |
Termal_Eruption_Location | location | No | |
Termal_Eruption_Loop_Location | location | No | |
Termal_Eruption_Loop_Number | integer | No | |
Termal_Eruption_Owner | player | No | |
Termal_Eruption_Total_Damage | real | No | |
Thunder_Rage_Ability_Level | integer | No | |
Thunder_Rage_Area_of_Effect | real | No | |
Thunder_Rage_Base_Mini_Damage | real | No | |
Thunder_Rage_Base_Unit_HP | real | No | |
Thunder_Rage_Caster | unit | No | |
Thunder_Rage_Damage_Factor | real | No | |
Thunder_Rage_Damage_Group | group | No | |
Thunder_Rage_Location | location | No | |
Thunder_Rage_Location2 | location | No | |
Thunder_Rage_Loop_Location | location | No | |
Thunder_Rage_Mini_AoE | real | No | |
Thunder_Rage_Mini_Damage_Group | group | No | |
Thunder_Rage_Owner | player | No | |
Thunder_Rage_Total_Damage | real | No | |
Thunder_Rage_Total_Mini_Damage | real | No | |
Thunder_Rage_Unit_HP | real | No | |
UberMode_On | boolean | No | |
UltraShortMode_On | boolean | No | |
UnitTarget | unit | No | |
UnitVarAttacked | unit | No | |
UnitVarAttacker | unit | No | |
UnitVarCaster10 | unit | No | |
UnitVarCaster3 | unit | No | |
UnitVarCaster4 | unit | No | |
UnitVarCaster7 | unit | No | |
UnitVarCaster8 | unit | No | |
UnitVarCaster9 | unit | No | |
UnitVarLast01 | unit | Yes | |
UnitVarLastUnit | unit | Yes | |
UnitVarPicked | unit | No | |
UnitVarTarget3 | unit | No | |
UnitVarTarget6 | unit | No | |
UnitVarTarget7 | unit | No | |
UnitVarTarget8 | unit | No | |
Y_Map_Point | location | Yes | |
Y_Map_Region | rect | Yes | |
Y_Map_Tip | string | Yes |
//TESH.scrollpos=0
//TESH.alwaysfold=0
//*************************************************************
//TEST THE SPELL FIRST TO CONFIGURE ANYTHING BELOW THIS
//*************************************************************
function FS_Ability takes nothing returns integer
return 'A000'
//Raw code of the ability
endfunction
function FS_Animation takes nothing returns integer
return 2
//Animation index
endfunction
function FS_ChargeTime takes nothing returns real
return 0.2
//Time to charge the attack
endfunction
function FS_DistanceM takes nothing returns real
return 150.
//Distance after the attack
endfunction
function FS_Effect1 takes nothing returns string
return "Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl"
//Weapon effect
endfunction
function FS_Effect1AP takes nothing returns string
return "weapon"
//Weapon attach point
endfunction
function FS_Effect2 takes nothing returns string
return "Abilities\\Spells\\Undead\\OrbOfDeath\\OrbOfDeathMissile.mdl"
//Movement effect
endfunction
function FS_Effect3 takes nothing returns string
return "Objects\\Spawnmodels\\Undead\\UndeadBlood\\UndeadBloodNecromancer.mdl"
//Blood effect
endfunction
function FS_Velocity takes nothing returns real
return 1600.
//Movement speed
endfunction
function FS_Range takes nothing returns real
return 125.
//Attack range
endfunction
function FS_AttackType takes nothing returns attacktype
return ATTACK_TYPE_NORMAL
//Attack type
endfunction
function FS_DamageType takes nothing returns damagetype
return DAMAGE_TYPE_NORMAL
//Damage type
endfunction
function FS_WeaponType takes nothing returns weapontype
return WEAPON_TYPE_METAL_MEDIUM_SLICE
//Weapon type
endfunction
function FS_Damage takes integer level returns real
return 175. * level
//Damage per level
endfunction
function FS_RechargeEnergy takes nothing returns real
return 2.
//Time to recharge the energy
endfunction
function FS_TimerInterval takes nothing returns real
return 0.025
//FPS || Default = 0.025 (1 / 0.025 = 40 FPS)
endfunction
//*************************************************************
//TOUCH ANYTHING BELOW THIS ONLY IF YOU KNOW JASS
//*************************************************************
function FS_Distance takes unit c, unit tar returns real
return SquareRoot((GetUnitX(tar) - GetUnitX(c)) * (GetUnitX(tar) - GetUnitX(c)) + (GetUnitY(tar) - GetUnitY(c)) * (GetUnitY(tar) - GetUnitY(c)))
endfunction
function FS_Loop takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer i = GetHandleId(t)
local unit c = LoadUnitHandle(udg_FS_HashTable, i, 0)
local unit tar = LoadUnitHandle(udg_FS_HashTable, i, 1)
local integer level = LoadInteger(udg_FS_HashTable, i, 2)
local real ready = LoadReal(udg_FS_HashTable, i, 3)
local real distance = LoadReal(udg_FS_HashTable, i, 4)
local real angle = LoadReal(udg_FS_HashTable, i, 5)
local boolean finish = LoadBoolean(udg_FS_HashTable, i, 6)
local boolean attack = LoadBoolean(udg_FS_HashTable, i, 7)
local real interval = LoadReal(udg_FS_HashTable, i, 9)
local real wait = LoadReal(udg_FS_HashTable, i, 10)
local real x
local real y
local real int = FS_TimerInterval()
if distance < FS_DistanceM() and not IsTerrainPathable(GetUnitX(c), GetUnitY(c), PATHING_TYPE_WALKABILITY) == true then
if ready > int and not finish and not IsUnitType(c, UNIT_TYPE_DEAD) then
call SaveReal(udg_FS_HashTable, i, 3, ready - int)
else
call SaveBoolean(udg_FS_HashTable, i, 6, true)
endif
if finish then
set x = GetUnitX(c) + FS_Velocity() * int * Cos(angle * bj_DEGTORAD)
set y = GetUnitY(c) + FS_Velocity() * int * Sin(angle * bj_DEGTORAD)
call DestroyEffect(AddSpecialEffect(FS_Effect2(), x, y))
if distance > (0. - 10.) and not attack then
if FS_Distance(c, tar) <= FS_Range() then
call DestroyEffect(LoadEffectHandle(udg_FS_HashTable, i, 8))
call UnitDamageTarget(c, tar, FS_Damage(level), true, false, FS_AttackType(), FS_DamageType(), FS_WeaponType())
call SetUnitTimeScale(c, 0)
call SaveBoolean(udg_FS_HashTable, i, 7, true)
else
call LoadEffectHandle(udg_FS_HashTable, i, 8)
call SaveBoolean(udg_FS_HashTable, i, 7, true)
endif
endif
if attack then
call DestroyEffect(AddSpecialEffectTarget(FS_Effect3(), tar, "chest"))
call DestroyEffect(AddSpecialEffectTarget(FS_Effect3(), c, "weapon"))
endif
call SetUnitX(c, x)
call SetUnitY(c, y)
call SaveReal(udg_FS_HashTable, i, 4, distance + FS_Velocity() * int)
endif
else
if wait > int and attack then
call SaveReal(udg_FS_HashTable, i, 10, wait - int)
else
call SetUnitPathing(c, true)
call SetUnitTimeScale(c, 1)
call SetUnitAnimation(c, "stand")
call PauseUnit(c, false)
call PauseTimer(t)
call FlushChildHashtable(udg_FS_HashTable, i)
call DestroyTimer(t)
endif
endif
set c = null
set tar = null
set t = null
endfunction
function FS_Actions takes nothing returns boolean
local unit c
local unit tar
local integer level
local timer t
local integer i
local real int = FS_TimerInterval()
if GetSpellAbilityId() == FS_Ability() then
set c = GetTriggerUnit()
set tar = GetSpellTargetUnit()
set level = GetUnitAbilityLevel(c, FS_Ability())
set t = CreateTimer()
set i = GetHandleId(t)
call SaveAgentHandle(udg_FS_HashTable, i, 0, c)
call SaveAgentHandle(udg_FS_HashTable, i, 1, tar)
call SaveInteger(udg_FS_HashTable, i, 2, level)
call SaveReal(udg_FS_HashTable, i, 3, FS_ChargeTime())
call SaveReal(udg_FS_HashTable, i, 4, 0 - FS_Distance(c, tar))
call SaveReal(udg_FS_HashTable, i, 5, bj_RADTODEG * Atan2(GetUnitY(tar) - GetUnitY(c), GetUnitX(tar) - GetUnitX(c)))
call SaveBoolean(udg_FS_HashTable, i, 6, false)
call SaveBoolean(udg_FS_HashTable, i, 7, false)
call SaveAgentHandle(udg_FS_HashTable, i, 8, AddSpecialEffectTarget(FS_Effect1(), c, FS_Effect1AP()))
call SaveReal(udg_FS_HashTable, i, 9, 0)
call SaveReal(udg_FS_HashTable, i, 10, FS_RechargeEnergy())
call TimerStart(t, int, true, function FS_Loop)
call PauseUnit(c, true)
call SetUnitPathing(c, false)
call SetUnitAnimation(c, "stand")
call SetUnitAnimationByIndex(c, FS_Animation())
set c = null
set tar = null
set t = null
endif
return false
endfunction
function InitTrig_FS takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(t, Condition(function FS_Actions))
set udg_FS_HashTable = InitHashtable()
set t = null
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
struct Score extends array
static multiboard MB
static multiboarditem MB_ITEM
static integer MB_COLUM_COUNT = 5 //Player Name | H Kills | C Kills | C Denies | Struct
static integer MB_ROW_COUNT = 1 //We will edit this value in method below, it's value will be equal to number of playing players + 1 for info
static string MB_TITLE = "Scoreboard" //Multiboard Name
static integer array PLAYER_ROW
static integer array PLAYER_ID
static boolean array B
static method editField takes integer row, integer col, string s returns nothing
set MB_ITEM = MultiboardGetItem(MB, row, col)
call MultiboardSetItemValue(MB_ITEM, s)
call MultiboardReleaseItem(MB_ITEM)
set MB_ITEM = null
endmethod
private static method runSetup takes nothing returns nothing
/* Basic Scripting DO NOT EDIT if you don't understand */
local integer i = 0
loop
exitwhen i>11
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
set PLAYER_ID[i] = GetPlayerId(Player(i))
set PLAYER_ROW[PLAYER_ID[i]] = MB_ROW_COUNT
set MB_ROW_COUNT = MB_ROW_COUNT + 1
set B[i] = true
endif
set i=i+1
endloop
set MB = CreateMultiboard()
call MultiboardSetRowCount(MB, MB_ROW_COUNT)
call MultiboardSetColumnCount(MB, MB_COLUM_COUNT)
call MultiboardSetTitleText(MB, MB_TITLE)
call MultiboardSetItemsStyle(MB, true, false)
/* End Basic Scripting DO NOT EDIT if you don't understand */
/* Column Dimenisions */
set i = 0
loop
exitwhen i>MB_ROW_COUNT
call MultiboardSetItemWidth(MultiboardGetItem(MB, i, 0), 0.07)
call MultiboardSetItemWidth(MultiboardGetItem(MB, i, 1), 0.05)
call MultiboardSetItemWidth(MultiboardGetItem(MB, i, 2), 0.05)
call MultiboardSetItemWidth(MultiboardGetItem(MB, i, 3), 0.05)
call MultiboardSetItemWidth(MultiboardGetItem(MB, i, 4), 0.05)
set i=i+1
endloop
/* End Column Dimenisions */
/* 1st Column Options */
call MultiboardSetItemStyle(MultiboardGetItem(MB, 0, 0), true, true)
call MultiboardSetItemIcon(MultiboardGetItem(MB, 0, 0), "ReplaceableTextures\\PassiveButtons\\PASBTNStatUp.blp")
call thistype.editField(0, 0, "|c00FEBA0EPlayer:")
/* End 1st Column Options */
/* 2nd Column Options */
call MultiboardSetItemStyle(MultiboardGetItem(MB, 0, 1), true, true)
call MultiboardSetItemIcon(MultiboardGetItem(MB, 0, 1), "ReplaceableTextures\\PassiveButtons\\PASBTNIncinerate.blp")
call thistype.editField(0, 1, "|c00FEBA0EH Kills:")
/* End 2nd Column Options */
/* 3rd Column Options */
call MultiboardSetItemStyle(MultiboardGetItem(MB, 0, 2), true, true)
call MultiboardSetItemIcon(MultiboardGetItem(MB, 0, 2), "ReplaceableTextures\\PassiveButtons\\PASBTNGnollCommandAura.blp")
call thistype.editField(0, 2, "|c00FEBA0EC Kills:")
/* End 3rd Column Options */
/* 4th Column Options */
call MultiboardSetItemStyle(MultiboardGetItem(MB, 0, 3), true, true)
call MultiboardSetItemIcon(MultiboardGetItem(MB, 0, 3), "ReplaceableTextures\\PassiveButtons\\PASBTNReincarnation.blp")
call thistype.editField(0, 3, "|c00FEBA0EC Denies:")
/* End 4th Column Options */
/* 5th Column Options */
call MultiboardSetItemStyle(MultiboardGetItem(MB, 0, 4), true, true)
call MultiboardSetItemIcon(MultiboardGetItem(MB, 0, 4), "ReplaceableTextures\\PassiveButtons\\PASBTNDemolish.blp")
call thistype.editField(0, 4, "|c00FEBA0EStructs:")
/* End 4th Column Options */
/* Field Starting Values */
set i = 0
loop
exitwhen i>11
if B[i] then
if PLAYER_ID[i] == 0 then // We set player RED name with color as well
call thistype.editField(PLAYER_ROW[PLAYER_ID[i]], 0, "|c00FF0303" + GetPlayerName(Player(i)))
elseif PLAYER_ID[i] == 6 then // We set player GREEN name with color as well
call thistype.editField(PLAYER_ROW[PLAYER_ID[i]], 0, "|c0020C000" + GetPlayerName(Player(i)))
else
call thistype.editField(PLAYER_ROW[PLAYER_ID[i]], 0, GetPlayerName(Player(i)))
endif
call thistype.editField(PLAYER_ROW[PLAYER_ID[i]], 1, I2S(0))
call thistype.editField(PLAYER_ROW[PLAYER_ID[i]], 2, I2S(0))
if PLAYER_ID[i] != 0 and PLAYER_ID[i] != 6 then // We ignore denies for RED and GREEN players
call thistype.editField(PLAYER_ROW[PLAYER_ID[i]], 3, I2S(0))
endif
call thistype.editField(PLAYER_ROW[PLAYER_ID[i]], 4, I2S(0))
endif
set i=i+1
endloop
/* End Field Starting Values */
call MultiboardDisplay(MB, true)
endmethod
private static method onInit takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterTimerEvent(t, 0., false)
call TriggerAddAction( t, function thistype.runSetup )
endmethod
endstruct
function Trig_Power_of_Chaos_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00O' ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func017C takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'o00C')) >= 2 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func019C takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'o00C')) >= 3 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func021C takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'o00C')) >= 4 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func023C takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'o00B')) == 1 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func025001 takes nothing returns boolean
return ( IsUnitSelected(GetTriggerUnit(), GetOwningPlayer(GetTriggerUnit())) == true )
endfunction
function Trig_Power_of_Chaos_Func028C takes nothing returns boolean
if ( not ( udg_powerOfChaosLvl2 == true ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func030Func001C takes nothing returns boolean
if ( not ( IsUnitDeadBJ(GetEnumUnit()) == true ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func030A takes nothing returns nothing
if ( Trig_Power_of_Chaos_Func030Func001C() ) then
call ReviveHeroLoc( GetEnumUnit(), GetRectCenter(GetPlayableMapRect()), false )
else
call DoNothing( )
endif
call ShowUnitHide( GetEnumUnit() )
call SetUnitOwner( GetEnumUnit(), Player(PLAYER_NEUTRAL_PASSIVE), false )
endfunction
function Trig_Power_of_Chaos_Func031Func001C takes nothing returns boolean
if ( not ( IsUnitDeadBJ(GetEnumUnit()) == true ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func031A takes nothing returns nothing
if ( Trig_Power_of_Chaos_Func031Func001C() ) then
call ReviveHeroLoc( GetEnumUnit(), GetRectCenter(GetPlayableMapRect()), false )
else
call DoNothing( )
endif
call ShowUnitHide( GetEnumUnit() )
call SetUnitOwner( GetEnumUnit(), Player(PLAYER_NEUTRAL_PASSIVE), false )
endfunction
function Trig_Power_of_Chaos_Func032Func001C takes nothing returns boolean
if ( not ( IsUnitDeadBJ(GetEnumUnit()) == true ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func032A takes nothing returns nothing
if ( Trig_Power_of_Chaos_Func032Func001C() ) then
call ReviveHeroLoc( GetEnumUnit(), GetRectCenter(GetPlayableMapRect()), false )
else
call DoNothing( )
endif
call ShowUnitHide( GetEnumUnit() )
call SetUnitOwner( GetEnumUnit(), Player(PLAYER_NEUTRAL_PASSIVE), false )
endfunction
function Trig_Power_of_Chaos_Func039C takes nothing returns boolean
if ( not ( udg_shadowShifterAbilityStarLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func042C takes nothing returns boolean
if ( not ( udg_shadowShifterAbilityEarthLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func045C takes nothing returns boolean
if ( not ( udg_shadowShifterAbilitySeaLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Actions takes nothing returns nothing
local integer udg_pocSkillPointCount
local integer udg_currentAbilityLevel
local integer udg_currentHeroLevel
local unit udg_currentShiftUnit
set udg_powerOfChaosLvl2 = false
set udg_currentShiftUnit = GetTriggerUnit()
set udg_currentHeroLevel = GetHeroLevel(GetTriggerUnit())
set udg_shadowShifterInUltimate[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = true
set udg_pocSkillPointCount = GetHeroSkillPoints(GetTriggerUnit())
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_SET, 0 )
// Disable Shapeshifting
call UnitRemoveAbilityBJ( 'A00S', GetTriggerUnit() )
call UnitRemoveAbilityBJ( 'A00T', GetTriggerUnit() )
call UnitRemoveAbilityBJ( 'A00P', GetTriggerUnit() )
call ConditionalTriggerExecute( gg_trg_TriggerToVariable )
// Unhide or Create Earth Form
if ( Trig_Power_of_Chaos_Func017C() ) then
set udg_TargetType = 'N010'
call TriggerExecute( gg_trg_CreateOrUnhide )
else
endif
// Unhide or Create Sea Form
if ( Trig_Power_of_Chaos_Func019C() ) then
set udg_TargetType = 'H00K'
call TriggerExecute( gg_trg_CreateOrUnhide )
else
endif
// Unhide or Create Star Form
if ( Trig_Power_of_Chaos_Func021C() ) then
set udg_TargetType = 'U008'
call TriggerExecute( gg_trg_CreateOrUnhide )
else
endif
// Check for Power of Chaos (lvl2)
if ( Trig_Power_of_Chaos_Func023C() ) then
set udg_powerOfChaosLvl2 = true
else
endif
// Reselect the units
if ( Trig_Power_of_Chaos_Func025001() ) then
call SelectUnitForPlayerSingle( GetEnumUnit(), GetOwningPlayer(GetTriggerUnit()) )
else
call DoNothing( )
endif
call TriggerSleepAction( 31.00 )
// If level 2, then wait longer.
if ( Trig_Power_of_Chaos_Func028C() ) then
call PolledWait( 29.00 )
else
call DoNothing( )
endif
// Remove Units
call ForGroupBJ( GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'U008'), function Trig_Power_of_Chaos_Func030A )
call ForGroupBJ( GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'H00K'), function Trig_Power_of_Chaos_Func031A )
call ForGroupBJ( GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'N010'), function Trig_Power_of_Chaos_Func032A )
// This is done to allow level-ups during the Ultimate
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_SET, udg_pocSkillPointCount )
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_ADD, udg_shadowShifterLevelsUp[GetConvertedPlayerId(udg_currentCastingPlayer)] )
set udg_shadowShifterLevelsUp[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 0
// Re-enable Shapeshifting
set udg_currentAbilityLevel = udg_shadowShifterAbilityStarLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]
if ( Trig_Power_of_Chaos_Func039C() ) then
call UnitAddAbilityBJ( 'A00P', GetTriggerUnit() )
set udg_shadowShifterAbilityStarLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 1
else
call DoNothing( )
endif
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = ( udg_currentAbilityLevel - 1 )
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_ADD, 1 )
call SelectHeroSkill(GetTriggerUnit(), 'A00P' )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set udg_currentAbilityLevel = udg_shadowShifterAbilityEarthLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]
if ( Trig_Power_of_Chaos_Func042C() ) then
call UnitAddAbilityBJ( 'A00S', GetTriggerUnit() )
set udg_shadowShifterAbilityEarthLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 1
else
call DoNothing( )
endif
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = ( udg_currentAbilityLevel - 1 )
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_ADD, 1 )
call SelectHeroSkill( GetTriggerUnit(), 'A00S' )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set udg_currentAbilityLevel = udg_shadowShifterAbilitySeaLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]
if ( Trig_Power_of_Chaos_Func045C() ) then
call UnitAddAbilityBJ( 'A00T', GetTriggerUnit() )
set udg_shadowShifterAbilitySeaLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 1
else
call DoNothing( )
endif
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = ( udg_currentAbilityLevel - 1 )
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_ADD, 1 )
call SelectHeroSkill(GetTriggerUnit(), 'A00T' )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set udg_shadowShifterInUltimate[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = false
endfunction
//===========================================================================
function InitTrig_Power_of_Chaos takes nothing returns nothing
set gg_trg_Power_of_Chaos = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Power_of_Chaos, EVENT_PLAYER_UNIT_SPELL_FINISH )
call TriggerAddCondition( gg_trg_Power_of_Chaos, Condition( function Trig_Power_of_Chaos_Conditions ) )
call TriggerAddAction( gg_trg_Power_of_Chaos, function Trig_Power_of_Chaos_Actions )
endfunction