├── README.md ├── clinkz.lua ├── disabler.lua ├── dodge.lua ├── ember.lua ├── lc.lua ├── lycan.lua ├── purge.lua ├── roshan.lua └── terror.lua /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | Don't forget set Key in settings. 4 | 5 | Dodge.lua 6 | [No Key] 7 | Just simple Dodge for some disables. 8 | Juggernaut, Lifestealer, Bkb, Gyro, BM, Satanic, Pugna, Morph. 9 | 10 | Disabler.lua 11 | [No Key] 12 | Simple disabler for initiators. 13 | Hex(Lion,Item,Shaman), Silence(Bloodthorn,Sky,Ns, Orchid,drow), Stun(abyssal, gyro,lone,dk), Hurricane 14 | 15 | LC.lua 16 | [Key] combo 17 | LC combo, added nullifier. Delete some not useful code. 18 | 19 | Lycan.lua 20 | [Key] Turn on/off 21 | Press key, all units will attack closest hero to your cursor, use abilities. 22 | Necro and satyr wait modifier for purge. 23 | 24 | Purge.lua 25 | [No Key] 26 | Simple purge with nullifier, necro, doom satyr, satyr. 27 | 28 | Roshan.lua 29 | [No Key] 30 | Roshan alert + timer. 31 | 32 | Terror.lua 33 | [No Key] 34 | Use sunder when low hp. 35 | 36 | Clinkz.lua 37 | [No Key] 38 | Use items when u attack enemy. 39 | 40 | Ember.lua 41 | [No Key] 42 | Auto chains when use fist and close to enemy. 43 | 44 | Subscribe to github for seen updates. 45 | -------------------------------------------------------------------------------- /clinkz.lua: -------------------------------------------------------------------------------- 1 | 2 | local clinkz = {} 3 | 4 | function clinkz.OnProjectile(projectile) 5 | if not projectile.isAttack or not projectile.target or not Entity.IsHero(projectile.target) then return end 6 | local myHero = Heroes.GetLocal() 7 | if not myHero then return end 8 | if projectile.source ~= myHero then return end 9 | if NPC.GetUnitName(myHero) ~= "npc_dota_hero_clinkz" then return end 10 | source = projectile.source 11 | target = projectile.target 12 | 13 | clinkz.Combo(myHero, source, target) 14 | end 15 | 16 | function clinkz.Combo(myHero, source, target) 17 | if NPC.HasModifier(source, "modifier_clinkz_wind_walk") then return end 18 | local myMana = NPC.GetMana(myHero) 19 | 20 | local Medallion = NPC.GetItem(myHero, "item_medallion_of_courage", true) 21 | local SolarCrest = NPC.GetItem(myHero, "item_solar_crest", true) 22 | local Orchid = NPC.GetItem(myHero, "item_orchid", true) 23 | local BloodThorn = NPC.GetItem(myHero, "item_bloodthorn", true) 24 | local RoA = NPC.GetItem( myHero, "item_rod_of_atos", true) 25 | local Hex = NPC.GetItem(myHero, "item_sheepstick", true) 26 | local ForceStaff = NPC.GetItem(myHero, "item_force_staff", true) 27 | local hurrican = NPC.GetItem(myHero,"item_hurricane_pike") 28 | local Halberd = NPC.GetItem(myHero, "item_heavens_halberd", true) 29 | local Diffus = NPC.GetItem(myHero, "item_diffusal_blade", true) 30 | local nullif = NPC.GetItem(myHero, "item_nullifier", true) 31 | 32 | if NPC.IsEntityInRange(target, myHero, 700) and not NPC.HasModifier(target, "modifier_item_lotus_orb") and not NPC.HasState(target, Enum.ModifierState.MODIFIER_STATE_MAGIC_IMMUNE) then 33 | if Medallion and Ability.IsCastable(Medallion, 0) then Ability.CastTarget(Medallion,target) end 34 | if SolarCrest and Ability.IsCastable(SolarCrest, 0) then Ability.CastTarget(SolarCrest,target) end 35 | if NPC.IsLinkensProtected(target) then 36 | if Diffus and Ability.IsCastable(Diffus, myMana) then Ability.CastTarget(Diffus, target); end 37 | if RoA and Ability.IsCastable(RoA, myMana) then Ability.CastTarget(RoA, target); end 38 | if Halberd and Ability.IsCastable(Halberd, myMana) then Ability.CastTarget(Halberd, target); end 39 | if hurrican and Ability.IsCastable(hurrican, myMana) then Ability.CastTarget(hurrican, target); end 40 | if ForceStaff and Ability.IsCastable(ForceStaff, myMana) then Ability.CastTarget(ForceStaff, target); end 41 | if Hex and Ability.IsCastable(Hex, myMana - 100) and Orchid and Ability.IsCastable(Orchid, myMana) then Ability.CastTarget(Orchid,target) end 42 | if Hex and Ability.IsCastable(Hex, myMana - 100) and BloodThorn and Ability.IsCastable(BloodThorn, myMana) then Ability.CastTarget(BloodThorn,target) end 43 | end 44 | if not NPC.IsLinkensProtected(target) then 45 | if Hex and Ability.IsCastable(Hex, myMana) then Ability.CastTarget(Hex, target); end 46 | if Orchid and Ability.IsCastable(Orchid, myMana) then Ability.CastTarget(Orchid,target) end 47 | if BloodThorn and Ability.IsCastable(BloodThorn, myMana) then Ability.CastTarget(BloodThorn,target) end 48 | if nullif and Ability.IsCastable(nullif, myMana) then Ability.CastTarget(nullif, target); end 49 | if RoA and Ability.IsCastable(RoA, myMana) then Ability.CastTarget(RoA, target); end 50 | end 51 | end 52 | end 53 | 54 | return clinkz -------------------------------------------------------------------------------- /disabler.lua: -------------------------------------------------------------------------------- 1 | local disabler= {} 2 | 3 | local time = 0 4 | local delay = 0 5 | 6 | function disabler.OnUpdate() 7 | local myHero = Heroes.GetLocal() 8 | if not myHero then return end 9 | time = os.clock() 10 | local myTeam = Entity.GetTeamNum(myHero) 11 | for i= 1, Heroes.Count() do 12 | local enemy = Heroes.Get(i) 13 | local sameTeam = Entity.GetTeamNum(enemy) == myTeam 14 | if not sameTeam and not NPC.IsDormant(enemy) and Entity.GetHealth(enemy) > 0 then 15 | local dagger = NPC.GetItem(enemy,"item_blink") 16 | if dagger and NPC.IsEntityInRange(myHero, enemy, 700) and Ability.GetCooldownLength(dagger) > 4 and Ability.SecondsSinceLastUse(dagger)<=1 and Ability.SecondsSinceLastUse(dagger)>0 then 17 | disabler.Disable(myHero, enemy) 18 | end 19 | local ck = NPC.GetAbility(enemy, "chaos_knight_reality_rift") 20 | if ck and NPC.IsEntityInRange(myHero, enemy, 700) and Ability.GetCooldownLength(ck) > 4 and Ability.SecondsSinceLastUse(ck)<=1 and Ability.SecondsSinceLastUse(ck)>0 then 21 | disabler.Disable(myHero, enemy) 22 | end 23 | local void = NPC.GetAbility(enemy, "faceless_void_time_walk") 24 | if void and NPC.IsEntityInRange(myHero, enemy, 700) and Ability.GetCooldownLength(void) > 4 and Ability.SecondsSinceLastUse(void)<=1 and Ability.SecondsSinceLastUse(void)>0 then 25 | disabler.Disable(myHero, enemy) 26 | end 27 | local pa = NPC.GetAbility(enemy, "phantom_assassin_phantom_strike") 28 | if pa and NPC.IsEntityInRange(myHero, enemy, 700) and Ability.GetCooldownLength(pa) > 4 and Ability.SecondsSinceLastUse(pa)<=1 and Ability.SecondsSinceLastUse(pa)>0 then 29 | disabler.Disable(myHero, enemy) 30 | end 31 | local slark = NPC.GetAbility(enemy, "slark_pounce") 32 | if slark and NPC.IsEntityInRange(myHero, enemy, 700) and Ability.GetCooldownLength(slark) > 4 and Ability.SecondsSinceLastUse(slark)<=1 and Ability.SecondsSinceLastUse(slark)>0 then 33 | disabler.Disable(myHero, enemy) 34 | end 35 | local qop = NPC.GetAbility(enemy, "queenofpain_blink") 36 | if qop and NPC.IsEntityInRange(myHero, enemy, 700) and Ability.GetCooldownLength(qop) > 4 and Ability.SecondsSinceLastUse(qop)<=1 and Ability.SecondsSinceLastUse(qop)>0 then 37 | disabler.Disable(myHero, enemy) 38 | end 39 | 40 | end 41 | end 42 | end 43 | 44 | function disabler.Disable(myHero, enemy) 45 | if time < delay then return end 46 | if NPC.IsLinkensProtected(enemy) or NPC.HasModifier(enemy, "modifier_item_lotus_orb") or NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_MAGIC_IMMUNE) or disabler.IsDisabled(enemy) then return end 47 | local hurrican = NPC.GetItem(myHero,"item_hurricane_pike") 48 | local bloodthorn = NPC.GetItem(myHero,"item_bloodthorn") 49 | local orchid = NPC.GetItem(myHero,"item_orchid") 50 | local sheepstick = NPC.GetItem(myHero,"item_sheepstick") 51 | local abyssal_blade = NPC.GetItem(myHero," item_abyssal_blade") 52 | local lion = NPC.GetAbility(myHero, "lion_voodoo") 53 | local shaman = NPC.GetAbility(myHero, "shadow_shaman_voodoo") 54 | local sky = NPC.GetAbility(myHero, "skywrath_mage_ancient_seal") 55 | local ns = NPC.GetAbility(myHero, "night_stalker_crippling_fear") 56 | local gyro = NPC.GetAbility(myHero, "gyrocopter_homing_missile") 57 | local dk = NPC.GetAbility(myHero, "dragon_knight_dragon_tail") 58 | local drow = NPC.GetAbility(myHero, "drow_ranger_wave_of_silence") 59 | local lone = NPC.GetAbility(myHero, "lone_druid_savage_roar") 60 | local razor = NPC.GetAbility(myHero, "razor_static_link") 61 | local storm = NPC.GetAbility(myHero, "storm_spirit_electric_vortex") 62 | if storm and Ability.IsReady(storm) then 63 | Ability.CastTarget(storm, enemy) 64 | delay = os.clock() + 2 return 65 | end 66 | if sheepstick and Ability.IsReady(sheepstick) then 67 | Ability.CastTarget(sheepstick, enemy) 68 | delay = os.clock() + 2 return 69 | end 70 | if lion and Ability.IsReady(lion) then 71 | Ability.CastTarget(lion, enemy) 72 | delay = os.clock() + 2 return 73 | end 74 | if hurrican and Ability.IsReady(hurrican) then 75 | Ability.CastTarget(hurrican, enemy) 76 | delay = os.clock() + 2 return 77 | end 78 | if shaman and Ability.IsReady(shaman) then 79 | Ability.CastTarget(shaman, enemy) 80 | delay = os.clock() + 2 return 81 | end 82 | if razor and Ability.IsReady(razor) then 83 | Ability.CastTarget(razor, enemy) 84 | delay = os.clock() + 2 return 85 | end 86 | if hurrican and Ability.IsReady(hurrican) and NPC.IsEntityInRange(myHero, enemy, 350) then 87 | Ability.CastTarget(hurrican, enemy) 88 | return 89 | end 90 | if gyro and Ability.IsReady(gyro) then 91 | Ability.CastTarget(gyro, enemy) 92 | delay = os.clock() + 2 return 93 | end 94 | if NPC.GetUnitName(enemy) == "npc_dota_hero_slark" then return end 95 | if abyssal_blade and Ability.IsReady(abyssal_blade) then 96 | Ability.CastTarget(abyssal_blade, enemy) 97 | delay = os.clock() + 2 return 98 | end 99 | if dk and Ability.IsReady(dk) and NPC.IsEntityInRange(myHero, enemy, 150) then 100 | Ability.CastTarget(dk, enemy) 101 | delay = os.clock() + 2 return 102 | end 103 | if bloodthorn and Ability.IsReady(bloodthorn) then 104 | Ability.CastTarget(bloodthorn, enemy) 105 | delay = os.clock() + 2 return 106 | end 107 | if orchid and Ability.IsReady(orchid) then 108 | Ability.CastTarget(orchid, enemy) 109 | delay = os.clock() + 2 return 110 | end 111 | if sky and Ability.IsReady(sky) then 112 | Ability.CastTarget(sky, enemy) 113 | delay = os.clock() + 2 return 114 | end 115 | if ns and Ability.IsReady(ns) and NPC.IsEntityInRange(myHero, enemy, 350) then 116 | Ability.CastTarget(ns, enemy) 117 | delay = os.clock() + 2 return 118 | end 119 | if drow and Ability.IsReady(drow)then 120 | Ability.CastPosition(drow, Entity.GetAbsOrigin(enemy)) 121 | delay = os.clock() + 2 return 122 | end 123 | if lone and Ability.IsReady(lone) and NPC.IsEntityInRange(myHero, enemy, 325) then 124 | Ability.CastNoTarget(lone) 125 | delay = os.clock() + 2 return 126 | end 127 | 128 | end 129 | 130 | function disabler.IsDisabled(enemy) 131 | if not Entity.IsAlive(enemy) then return true end 132 | if NPC.IsStunned(enemy) then return true end 133 | if NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_HEXED) then return true end 134 | if NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_SILENCED) then return true end 135 | return false 136 | end 137 | 138 | 139 | return disabler -------------------------------------------------------------------------------- /dodge.lua: -------------------------------------------------------------------------------- 1 | local Dodge = {} 2 | 3 | local msg_queue = {} 4 | local time = 0 5 | local delay = 0 6 | 7 | function Dodge.OnProjectile(projectile) 8 | if not projectile or not projectile.target then return end 9 | if projectile.isAttack then return end 10 | 11 | local myHero = Heroes.GetLocal() 12 | if not myHero then return end 13 | 14 | if projectile.target ~= myHero then return end 15 | if Entity.IsSameTeam(projectile.source, projectile.target) then return end 16 | local projectileName = tostring(projectile.name) 17 | if 18 | projectileName == "skeletonking_hellfireblast" or 19 | projectileName == "alchemist_unstable_concoction_projectile" or 20 | projectileName == "vengeful_magic_missle" or 21 | projectileName == "sniper_assassinate" or 22 | projectileName == "windrunner_shackleshot" or 23 | projectileName == "chaos_knight_chaos_bolt" or 24 | projectileName == "sven_spell_storm_bolt" then 25 | Dodge.Update({source = projectile.source}) 26 | end 27 | 28 | end 29 | 30 | function Dodge.OnUpdate() 31 | local myHero = Heroes.GetLocal() 32 | if not myHero then return end 33 | time = os.clock() 34 | 35 | Dodge.TaskManagement(myHero) 36 | 37 | for i = 1, Heroes.Count() do 38 | local enemy = Heroes.Get(i) 39 | if enemy and not NPC.IsIllusion(enemy) 40 | and not Entity.IsSameTeam(myHero, enemy) 41 | and not Entity.IsDormant(enemy) 42 | and Entity.IsAlive(enemy) then 43 | 44 | -- axe's call 45 | local axe_call = NPC.GetAbility(enemy, "axe_berserkers_call") 46 | local call_range = 300 47 | if axe_call and Ability.IsInAbilityPhase(axe_call) 48 | and NPC.IsEntityInRange(myHero, enemy, call_range) then 49 | Dodge.Update({desc = axe_call}) 50 | end 51 | local puck = NPC.GetAbility(enemy, "puck_waning_rift") 52 | local puck_range = 300 53 | if puck and Ability.IsInAbilityPhase(puck) 54 | and NPC.IsEntityInRange(myHero, enemy, puck_range) then 55 | Dodge.Update({desc = puck}) 56 | end 57 | local polarity = NPC.GetAbility(enemy, "magnataur_reverse_polarity") 58 | local polarity_range = 410 59 | if polarity and Ability.IsInAbilityPhase(polarity) 60 | and NPC.IsEntityInRange(myHero, enemy, polarity_range) then 61 | Dodge.Update({desc = polarity}) 62 | end 63 | 64 | local lasso = NPC.GetAbility(enemy, "batrider_flaming_lasso") 65 | local lasso_range = 200 66 | if lasso and Ability.IsInAbilityPhase(lasso) 67 | and NPC.IsEntityInRange(myHero, enemy, lasso_range) then 68 | Dodge.Update({desc = lasso}) 69 | end 70 | 71 | local duel = NPC.GetAbility(enemy, "legion_commander_duel") 72 | local duel_range = 150 73 | if duel and Ability.IsInAbilityPhase(duel) 74 | and NPC.IsEntityInRange(myHero, enemy, duel_range) then 75 | Dodge.Update({desc = duel}) 76 | end 77 | 78 | local crush = NPC.GetAbility(enemy, "slardar_slithereen_crush") 79 | local crush_range = 350 80 | if crush and Ability.IsInAbilityPhase(crush) 81 | and NPC.IsEntityInRange(myHero, enemy, crush_range) then 82 | Dodge.Update({desc = crush}) 83 | end 84 | end 85 | end 86 | 87 | end 88 | 89 | function Dodge.TaskManagement(myHero) 90 | if not msg_queue or #msg_queue <= 0 then return end 91 | 92 | local info = table.remove(msg_queue, 1) 93 | 94 | Dodge.Defend(myHero, info.desc) 95 | end 96 | 97 | function Dodge.Update(info) 98 | if not info then return end 99 | 100 | local myHero = Heroes.GetLocal() 101 | if not myHero then return end 102 | 103 | table.insert(msg_queue, info) 104 | end 105 | 106 | function Dodge.Defend(myHero, desc) 107 | if not myHero then return end 108 | local myMana = NPC.GetMana(myHero) 109 | if time < delay then return end 110 | 111 | if not NPC.IsSilenced(myHero) then 112 | 113 | if NPC.GetUnitName(myHero) == "npc_dota_hero_life_stealer" then 114 | local rage = NPC.GetAbilityByIndex(myHero, 0) 115 | if rage and Ability.IsCastable(rage, myMana) then 116 | Ability.CastNoTarget(rage) 117 | delay = os.clock() + 2 118 | return 119 | end 120 | end 121 | 122 | if NPC.GetUnitName(myHero) == "npc_dota_hero_juggernaut" then 123 | local spin = NPC.GetAbilityByIndex(myHero, 0) 124 | if spin and Ability.IsCastable(spin, myMana) then 125 | Ability.CastNoTarget(spin) 126 | delay = os.clock() + 2 127 | return 128 | end 129 | end 130 | 131 | if NPC.GetUnitName(myHero) == "npc_dota_hero_pugna" then 132 | local dicri = NPC.GetAbilityByIndex(myHero, 1) 133 | if desc and (Ability.GetName(desc) == "magnataur_reverse_polarity" or Ability.GetName(desc) == "axe_berserkers_call") and dicri and Ability.IsCastable(dicri, myMana) then 134 | Ability.CastTarget(dicri, myHero) 135 | delay = os.clock() + 2 136 | return 137 | end 138 | end 139 | 140 | if NPC.GetUnitName(myHero) == "npc_dota_hero_morphling" then 141 | local morph2 = NPC.GetAbilityByIndex(myHero, 4) 142 | if morph2 and not Ability.GetToggleState(morph2) then 143 | Ability.Toggle(morph2, true) 144 | delay = os.clock() + 0.1 145 | return 146 | end 147 | end 148 | 149 | if NPC.GetUnitName(myHero) == "npc_dota_hero_gyrocopter" then 150 | local flak = NPC.GetAbilityByIndex(myHero, 2) 151 | if desc and (Ability.GetName(desc) == "legion_commander_duel" or Ability.GetName(desc) == "axe_berserkers_call") and flak and Ability.IsCastable(flak, myMana) then 152 | Ability.CastNoTarget(flak) 153 | return 154 | end 155 | end 156 | 157 | end 158 | 159 | local sata = NPC.GetItem(myHero, "item_satanic", true) 160 | if desc and sata and (Ability.GetName(desc) == "legion_commander_duel" or Ability.GetName(desc) == "axe_berserkers_call") and Ability.IsCastable(sata, NPC.GetMana(myHero)) then 161 | Ability.CastNoTarget(sata) 162 | return 163 | end 164 | 165 | local bkb = NPC.GetItem(myHero, "item_black_king_bar", true) 166 | local aegis = NPC.GetItem(myHero, "item_aegis", true) 167 | if not aegis and bkb and Ability.IsCastable(bkb, NPC.GetMana(myHero)) then 168 | if desc and Ability.GetName(desc) == "puck_waning_rift" then return end 169 | Ability.CastNoTarget(bkb) 170 | delay = os.clock() + 2 171 | return 172 | end 173 | 174 | local item = NPC.GetItem(myHero, "item_blade_mail", true) 175 | if item and Ability.IsCastable(item, NPC.GetMana(myHero)) then 176 | Ability.CastNoTarget(item) 177 | delay = os.clock() + 2 178 | return 179 | end 180 | end 181 | 182 | return Dodge -------------------------------------------------------------------------------- /ember.lua: -------------------------------------------------------------------------------- 1 | local Ember = {} 2 | 3 | function Ember.OnUpdate() 4 | local myHero = Heroes.GetLocal() 5 | if not myHero then return end 6 | if NPC.GetUnitName(myHero) ~= "npc_dota_hero_ember_spirit" then return end 7 | local enemy = Input.GetNearestHeroToCursor(Entity.GetTeamNum(myHero), Enum.TeamType.TEAM_ENEMY) 8 | local Chains = NPC.GetAbilityByIndex(myHero, 0) 9 | if NPC.HasModifier(myHero, "modifier_ember_spirit_sleight_of_fist_caster") and Chains and Ability.IsReady(Chains) and not NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_MAGIC_IMMUNE) then 10 | if NPC.IsEntityInRange(myHero, enemy, 50) then 11 | Ability.CastNoTarget(Chains) 12 | end 13 | end 14 | end 15 | 16 | return Ember -------------------------------------------------------------------------------- /lc.lua: -------------------------------------------------------------------------------- 1 | 2 | local LegionCommander = {} 3 | 4 | LegionCommander.optionKey = Menu.AddKeyOption({"Hero Specific","Legion Commander","Legion Annihilation"},"Combo Key",Enum.ButtonCode.KEY_NONE) 5 | LegionCommander.optionLinkensBreakerAbyssal = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Linkens Breaker"},"Abyssal Blade","Enable Or Disable") 6 | LegionCommander.optionLinkensBreakerOrchid = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Linkens Breaker"},"Orchid Malevolence","Enable Or Disable") 7 | LegionCommander.optionLinkensBreakerBlood = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Linkens Breaker"},"BloodThorn","Enable Or Disable") 8 | LegionCommander.optionLinkensBreakerEuls = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Linkens Breaker"},"Eul's Scepter","Enable Or Disable") 9 | LegionCommander.optionLinkensBreakerRoA = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Linkens Breaker"},"Rod of Atos","Enable Or Disable") 10 | LegionCommander.optionLinkensBreakerHex = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Linkens Breaker"},"Scythe of Vyse","Enable Or Disable") 11 | LegionCommander.optionLinkensBreakerForceStaff = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Linkens Breaker"},"Force Staff","Enable Or Disable") 12 | LegionCommander.optionLinkensBreakerHalberd = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Linkens Breaker"},"Heaven's Halberd","Enable Or Disable") 13 | LegionCommander.optionBKB = Menu.AddOption({"Hero Specific","Legion Commander","Legion Annihilation","Items"},"Black King Bar","Enable Or Disable") 14 | 15 | function LegionCommander.OnUpdate() 16 | if Menu.IsKeyDown(LegionCommander.optionKey)then 17 | LegionCommander.Combo() 18 | end 19 | end 20 | 21 | function LegionCommander.Combo() 22 | if not Menu.IsKeyDown(LegionCommander.optionKey) then return end 23 | 24 | local myHero = Heroes.GetLocal() 25 | if NPC.GetUnitName(myHero) ~= "npc_dota_hero_legion_commander" then return end 26 | 27 | local hero = Input.GetNearestHeroToCursor(Entity.GetTeamNum(myHero), Enum.TeamType.TEAM_ENEMY) 28 | local heroPos = Entity.GetAbsOrigin(hero) 29 | local myMana = NPC.GetMana(myHero) 30 | 31 | if not hero then return end 32 | --Skills 33 | local PressTheAttack = NPC.GetAbility(myHero, "legion_commander_press_the_attack") 34 | local Duel = NPC.GetAbility(myHero, "legion_commander_duel") 35 | --Items 36 | local Dagger = NPC.GetItem(myHero, "item_blink", true) 37 | local ShadowBlade = NPC.GetItem(myHero, "item_invis_sword", true) 38 | local SilverEdge = NPC.GetItem(myHero, "item_silver_edge", true) 39 | local BladeMail = NPC.GetItem(myHero, "item_blade_mail", true) 40 | local LotusOrb = NPC.GetItem(myHero, "item_lotus_orb", true) 41 | local Mjollnir = NPC.GetItem(myHero, "item_mjollnir", true) 42 | local BKB = NPC.GetItem(myHero, "item_black_king_bar", true) 43 | local Medallion = NPC.GetItem(myHero, "item_medallion_of_courage", true) 44 | local SolarCrest = NPC.GetItem(myHero, "item_solar_crest", true) 45 | local Orchid = NPC.GetItem(myHero, "item_orchid", true) 46 | local BloodThorn = NPC.GetItem(myHero, "item_bloodthorn", true) 47 | local Abyssal = NPC.GetItem(myHero, "item_abyssal_blade", true) 48 | local Armlet = NPC.GetItem(myHero, "item_armlet", true) 49 | local Euls = NPC.GetItem( myHero, "item_cyclone", true) 50 | local RoA = NPC.GetItem( myHero, "item_rod_of_atos", true) 51 | local Hex = NPC.GetItem(myHero, "item_sheepstick", true) 52 | local ForceStaff = NPC.GetItem(myHero, "item_force_staff", true) 53 | local Halberd = NPC.GetItem(myHero, "item_heavens_halberd", true) 54 | local nullif = NPC.GetItem(myHero, "item_nullifier", true) 55 | 56 | if Duel and Ability.IsCastable(Duel, myMana) then 57 | if Dagger and Ability.IsCastable(Dagger, 0) and NPC.IsEntityInRange(hero, myHero, 1200 + NPC.GetCastRangeBonus(myHero)) then 58 | if Mjollnir and Ability.IsCastable(Mjollnir, myMana) then Ability.CastTarget(Mjollnir, myHero) return end 59 | if PressTheAttack and Ability.IsCastable(PressTheAttack, myMana) then Ability.CastTarget(PressTheAttack, myHero) return end 60 | if LotusOrb and Ability.IsCastable(LotusOrb, myMana) then Ability.CastTarget(LotusOrb, myHero) return end 61 | if BladeMail and Ability.IsCastable(BladeMail, myMana) then Ability.CastNoTarget(BladeMail) return end 62 | if Dagger and Ability.IsCastable(Dagger, 0) then Ability.CastPosition(Dagger, heroPos) return end 63 | end 64 | 65 | if NPC.IsEntityInRange(hero, myHero, 200) then 66 | 67 | if NPC.IsLinkensProtected(hero)then 68 | if Menu.IsEnabled(LegionCommander.optionLinkensBreakerAbyssal) 69 | and Abyssal and Ability.IsCastable(Abyssal, myMana) then Ability.CastTarget(Abyssal, hero); return end 70 | if Menu.IsEnabled(LegionCommander.optionLinkensBreakerOrchid) 71 | and Orchid and Ability.IsCastable(Orchid, myMana) then Ability.CastTarget(Orchid, hero); return end 72 | if Menu.IsEnabled(LegionCommander.optionLinkensBreakerBlood) 73 | and BloodThorn and Ability.IsCastable(BloodThorn, myMana) then Ability.CastTarget(BloodThorn, hero); return end 74 | if Menu.IsEnabled(LegionCommander.optionLinkensBreakerEuls) 75 | and Euls and Ability.IsCastable(Euls, myMana) then Ability.CastTarget(Euls, hero); return end 76 | if Menu.IsEnabled(LegionCommander.optionLinkensBreakerRoA) 77 | and RoA and Ability.IsCastable(RoA, myMana) then Ability.CastTarget(RoA, hero); return end 78 | if Menu.IsEnabled(LegionCommander.optionLinkensBreakerHex) 79 | and Hex and Ability.IsCastable(Hex, myMana) then Ability.CastTarget(Hex, hero); return end 80 | if Menu.IsEnabled(LegionCommander.optionLinkensBreakerForceStaff) 81 | and ForceStaff and Ability.IsCastable(ForceStaff, myMana) then Ability.CastTarget(ForceStaff, hero); return end 82 | if Menu.IsEnabled(LegionCommander.optionLinkensBreakerHalberd) 83 | and Halberd and Ability.IsCastable(Halberd, myMana) then Ability.CastTarget(Halberd, hero); return end 84 | end 85 | if not NPC.IsLinkensProtected(hero) then 86 | if Mjollnir and Ability.IsCastable(Mjollnir, myMana) then Ability.CastTarget(Mjollnir, myHero) return end 87 | if PressTheAttack and Ability.IsCastable(PressTheAttack, myMana) then Ability.CastTarget(PressTheAttack, myHero) return end 88 | if LotusOrb and Ability.IsCastable(LotusOrb, myMana) then Ability.CastTarget(LotusOrb, myHero) return end 89 | if BladeMail and Ability.IsCastable(BladeMail, myMana) then Ability.CastNoTarget(BladeMail) return end 90 | if Medallion and Ability.IsCastable(Medallion, 0) then Ability.CastTarget(Medallion,hero) return end 91 | if SolarCrest and Ability.IsCastable(SolarCrest, 0) then Ability.CastTarget(SolarCrest,hero) return end 92 | if Orchid and Ability.IsCastable(Orchid, myMana) then Ability.CastTarget(Orchid,hero) return end 93 | if BloodThorn and Ability.IsCastable(BloodThorn, myMana) then Ability.CastTarget(BloodThorn,hero)return end 94 | if Armlet and not Ability.GetToggleState(Armlet) then Ability.Toggle(Armlet, true) end 95 | if Menu.IsEnabled(LegionCommander.optionBKB) 96 | and BKB and Ability.IsCastable(BKB, 0) then Ability.CastNoTarget(BKB) return end 97 | if nullif and Ability.IsCastable(nullif, myMana) then Ability.CastTarget(nullif, hero); return end 98 | if Duel and Ability.IsCastable(Duel, myMana) then Ability.CastTarget(Duel,hero) return end 99 | end 100 | end 101 | end 102 | end 103 | 104 | return LegionCommander -------------------------------------------------------------------------------- /lycan.lua: -------------------------------------------------------------------------------- 1 | local lycan = {} 2 | 3 | lycan.ComboKey = Menu.AddKeyOption({"Hero Specific", "lycan"}, "Combo Key", Enum.ButtonCode.KEY_NONE) 4 | lycan.Font = Renderer.LoadFont("Tahoma", 24, Enum.FontWeight.EXTRABOLD) 5 | lycan.Attacking = false 6 | lycan.AttackingTarget = nil 7 | time = 0 8 | delay = 0 9 | delayq = 0 10 | 11 | function lycan.OnUpdate() 12 | local myHero = Heroes.GetLocal() 13 | if not myHero then return end 14 | time = os.clock() 15 | if NPC.GetUnitName(myHero) == "npc_dota_hero_lycan" then 16 | if Menu.IsKeyDownOnce(lycan.ComboKey) then 17 | if not lycan.Attacking then 18 | lycan.Attacking = true 19 | lycan.AttackingTarget = Input.GetNearestHeroToCursor(Entity.GetTeamNum(myHero), Enum.TeamType.TEAM_ENEMY) 20 | else 21 | lycan.Attacking = not lycan.Attacking 22 | if not lycan.Attacking then 23 | lycan.AttackingTarget = nil 24 | end 25 | end 26 | end 27 | 28 | if lycan.AttackingTarget then 29 | if lycan.AttackingTarget then 30 | if not Entity.IsAlive(lycan.AttackingTarget) or Entity.IsDormant(lycan.AttackingTarget) then 31 | lycan.AttackingTarget = Input.GetNearestHeroToCursor(Entity.GetTeamNum(myHero), Enum.TeamType.TEAM_ENEMY) 32 | end 33 | end 34 | end 35 | 36 | if time > delayq then 37 | lycan.AutoRaiseDead() 38 | delayq = os.clock() + 0.2 39 | end 40 | if lycan.Attacking and time > delay then 41 | lycan.AttackTarget(lycan.AttackingTarget) 42 | delay = os.clock() + 0.5 43 | end 44 | end 45 | end 46 | 47 | function lycan.AttackTarget(enemy) 48 | if not enemy then return end 49 | local myHero = Heroes.GetLocal() 50 | for _, npc in ipairs(NPC.GetUnitsInRadius(myHero, 99999, Enum.TeamType.TEAM_FRIEND)) do 51 | if Entity.IsAlive(npc) and not Entity.IsDormant(npc) and Entity.GetHealth(npc) and (Entity.GetOwner(myHero) == Entity.GetOwner(npc) or Entity.OwnedBy(npc, myHero)) then 52 | for _, ability in ipairs(lycan.Abilities) do 53 | if NPC.HasAbility(npc, ability) and Ability.IsCastable(NPC.GetAbility(npc, ability), NPC.GetMana(npc)) and Ability.IsReady(NPC.GetAbility(npc, ability)) and not Ability.IsInAbilityPhase(NPC.GetAbility(npc, ability)) and not NPC.IsLinkensProtected(enemy) and not NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_MAGIC_IMMUNE) then 54 | if Ability.GetCastRange(NPC.GetAbility(npc, ability)) > 0 then 55 | if ability == "satyr_hellcaller_shockwave" then 56 | if NPC.HasAbility(npc, ability) and Ability.IsCastable(NPC.GetAbility(npc, ability), NPC.GetMana(npc)) and Ability.IsReady(NPC.GetAbility(npc, ability)) and not Ability.IsInAbilityPhase(NPC.GetAbility(npc, ability)) and NPC.IsEntityInRange(npc, enemy, 900) then 57 | Ability.CastTarget(NPC.GetAbility(npc, ability), enemy) 58 | end 59 | return 60 | end 61 | if ability == "spawnlord_master_freeze" or ability == "dark_troll_warlord_ensnare" or ability == "mud_golem_hurl_boulder" then 62 | if NPC.IsEntityInRange(npc, enemy, Ability.GetCastRange(NPC.GetAbility(npc, ability)) + NPC.GetCastRangeBonus(npc)) then 63 | Ability.CastTarget(NPC.GetAbility(npc, ability), enemy) 64 | return 65 | end 66 | end 67 | if ability == "necronomicon_archer_purge" then 68 | if (NPC.HasModifier(enemy, "modifier_ghost_state") or 69 | NPC.HasModifier(enemy, "modifier_eul_cyclone") or 70 | NPC.HasModifier(enemy, "modifier_item_ethereal_blade_ethereal") or 71 | NPC.HasModifier(enemy, "modifier_necrolyte_sadist_active")or 72 | NPC.HasModifier(enemy, "modifier_omninight_guardian_angel") or 73 | NPC.HasModifier(enemy, "modifier_windrunner_windrun")or 74 | NPC.HasModifier(enemy, "modifier_windrunner_windrun_invis") or 75 | NPC.HasModifier(enemy, "modifier_item_aeon_disk_buff") or 76 | NPC.HasModifier(enemy, "modifier_sven_warcry")or 77 | NPC.HasModifier(enemy, "modifier_lich_frost_armor") or 78 | NPC.HasModifier(enemy, "modifier_item_solar_crest_armor_addition")or 79 | NPC.HasModifier(enemy, "modifier_ogre_magi_frost_armor") or 80 | NPC.HasModifier(enemy, "modifier_item_glimmer_cape_fade")) 81 | and not NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_MAGIC_IMMUNE) 82 | and not NPC.IsLinkensProtected(enemy) then 83 | Ability.CastTarget(NPC.GetAbility(npc, ability), enemy) 84 | return 85 | end 86 | end 87 | if ability == "satyr_trickster_purge" then 88 | if (NPC.HasModifier(enemy, "modifier_ghost_state") or 89 | NPC.HasModifier(enemy, "modifier_eul_cyclone") or 90 | NPC.HasModifier(enemy, "modifier_item_ethereal_blade_ethereal") or 91 | NPC.HasModifier(enemy, "modifier_necrolyte_sadist_active")or 92 | NPC.HasModifier(enemy, "modifier_omninight_guardian_angel") or 93 | NPC.HasModifier(enemy, "modifier_windrunner_windrun")or 94 | NPC.HasModifier(enemy, "modifier_windrunner_windrun_invis") or 95 | NPC.HasModifier(enemy, "modifier_item_aeon_disk_buff") or 96 | NPC.HasModifier(enemy, "modifier_sven_warcry")or 97 | NPC.HasModifier(enemy, "modifier_lich_frost_armor") or 98 | NPC.HasModifier(enemy, "modifier_item_solar_crest_armor_addition")or 99 | NPC.HasModifier(enemy, "modifier_ogre_magi_frost_armor") or 100 | NPC.HasModifier(enemy, "modifier_item_glimmer_cape_fade")) 101 | and not NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_MAGIC_IMMUNE) 102 | and not NPC.IsLinkensProtected(enemy) then 103 | Ability.CastTarget(NPC.GetAbility(npc, ability), enemy) 104 | return 105 | else 106 | Player.PrepareUnitOrders(Players.GetLocal(), Enum.UnitOrder.DOTA_UNIT_ORDER_MOVE_TO_POSITION, nil, Entity.GetAbsOrigin(enemy), nil, Enum.PlayerOrderIssuer.DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY, npc) 107 | end 108 | end 109 | end 110 | end 111 | end 112 | if NPC.HasAbility(npc, "centaur_khan_war_stomp") then 113 | local clap = NPC.GetAbility(npc, "centaur_khan_war_stomp") 114 | if NPC.IsEntityInRange(npc, enemy, 150) and Ability.IsReady(clap) then 115 | Ability.CastNoTarget(clap) 116 | return 117 | end 118 | end 119 | if NPC.HasAbility(npc, "polar_furbolg_ursa_warrior_thunder_clap") then 120 | local clap = NPC.GetAbility(npc, "polar_furbolg_ursa_warrior_thunder_clap") 121 | if NPC.IsEntityInRange(npc, enemy, 200) and Ability.IsReady(clap) then 122 | Ability.CastNoTarget(clap) 123 | return 124 | end 125 | end 126 | if enemy then 127 | if not NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_ATTACK_IMMUNE) then 128 | for i = 1, NPCs.Count() do 129 | local npc = NPCs.Get(i) 130 | if Entity.GetHealth(npc) > 0 and Entity.IsSameTeam(myHero, npc) and (Entity.GetOwner(myHero) == Entity.GetOwner(npc) or Entity.OwnedBy(npc, myHero)) and npc ~= myHero and NPC.GetUnitName(npc) ~= "npc_dota_courier" then 131 | Player.PrepareUnitOrders(Players.GetLocal(), Enum.UnitOrder.DOTA_UNIT_ORDER_ATTACK_TARGET, enemy, Vector(0, 0, 0), nil, Enum.PlayerOrderIssuer.DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY, npc) 132 | end 133 | end 134 | else 135 | for i = 1, NPCs.Count() do 136 | local npc = NPCs.Get(i) 137 | if Entity.GetHealth(npc) > 0 and Entity.IsSameTeam(myHero, npc) and (Entity.GetOwner(myHero) == Entity.GetOwner(npc) or Entity.OwnedBy(npc, myHero)) and npc ~= myHero and NPC.GetUnitName(npc) ~= "npc_dota_courier" then 138 | Player.PrepareUnitOrders(Players.GetLocal(), Enum.UnitOrder.DOTA_UNIT_ORDER_MOVE_TO_POSITION, nil, Entity.GetAbsOrigin(enemy), nil, Enum.PlayerOrderIssuer.DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY, npc) 139 | end 140 | end 141 | end 142 | end 143 | end 144 | end 145 | end 146 | 147 | 148 | function lycan.OnDraw() 149 | local myHero = Heroes.GetLocal() 150 | if not myHero then return end 151 | 152 | if NPC.GetUnitName(myHero) == "npc_dota_hero_lycan" then 153 | local w, h = Renderer.GetScreenSize() 154 | local c = math.floor(w / 2.2) 155 | if lycan.Attacking then 156 | Renderer.SetDrawColor(255, 255, 255, 255) 157 | Renderer.DrawText(lycan.Font, c, 40, "ON", 1) 158 | else 159 | Renderer.SetDrawColor(255, 255, 255, 255) 160 | Renderer.DrawText(lycan.Font, c, 40, "OFF", 1) 161 | end 162 | end 163 | end 164 | 165 | function lycan.AutoRaiseDead() 166 | local myHero = Heroes.GetLocal() 167 | for i = 1, NPCs.Count() do 168 | local npc = NPCs.Get(i) 169 | if Entity.GetOwner(myHero) == Entity.GetOwner(npc) or Entity.OwnedBy(npc, myHero) then 170 | if NPC.HasAbility(npc, "dark_troll_warlord_raise_dead") and Entity.IsAlive(npc) then 171 | local RaiseDead = NPC.GetAbility(npc, "dark_troll_warlord_raise_dead") 172 | local npcMana = NPC.GetMana(npc) 173 | local npcLocation = NPC.GetAbsOrigin(npc) 174 | if Ability.IsReady(RaiseDead) and Ability.IsCastable(RaiseDead, npcMana) and not Ability.IsInAbilityPhase(RaiseDead) and Ability.GetCooldownTimeLeft(RaiseDead) == 0.0 then 175 | for i = 1, NPCs.Count() do 176 | local npc = NPCs.Get(i) 177 | if Entity.GetHealth(npc) <= 0 and not Entity.IsDormant(npc) and (NPC.GetAbsOrigin(npc)-npcLocation):Length2D() < 500 then -- change to 550 if no problems? 178 | Ability.CastNoTarget(RaiseDead) 179 | break 180 | end 181 | end 182 | end 183 | end 184 | end 185 | end 186 | end 187 | 188 | lycan.Abilities = { 189 | "forest_troll_high_priest_heal", 190 | "harpy_storm_chain_lightning", 191 | "centaur_khan_war_stomp", 192 | "satyr_trickster_purge", 193 | "satyr_soulstealer_mana_burn", 194 | "ogre_magi_frost_armor", 195 | "mud_golem_hurl_boulder", 196 | "satyr_hellcaller_shockwave", 197 | "polar_furbolg_ursa_warrior_thunder_clap", 198 | "enraged_wildkin_tornado", 199 | "dark_troll_warlord_ensnare", 200 | "dark_troll_warlord_raise_dead", 201 | "black_dragon_fireball", 202 | "big_thunder_lizard_slam", 203 | "big_thunder_lizard_frenzy", 204 | "spawnlord_master_stomp", 205 | "spawnlord_master_freeze", 206 | "necronomicon_archer_purge" 207 | } 208 | 209 | return lycan -------------------------------------------------------------------------------- /purge.lua: -------------------------------------------------------------------------------- 1 | local AutoPurge = {} 2 | time = 0 3 | delay = 0 4 | 5 | function AutoPurge.OnUpdate() 6 | time = os.clock() 7 | local myHero = Heroes.GetLocal() 8 | if not myHero then return end 9 | local enemy = Input.GetNearestHeroToCursor(Entity.GetTeamNum(myHero), Enum.TeamType.TEAM_ENEMY) 10 | if not enemy then return end 11 | AutoPurge.Combo(myHero, enemy) 12 | end 13 | 14 | function AutoPurge.Combo(myHero, enemy) 15 | local myMana = NPC.GetMana(myHero) 16 | 17 | local nullifier = NPC.GetItem(myHero, "item_nullifier", true) 18 | local satyrpurge = NPC.GetAbility(myHero, "satyr_trickster_purge") 19 | 20 | if not enemy then return end 21 | 22 | if (NPC.HasModifier(enemy, "modifier_ghost_state") or 23 | NPC.HasModifier(enemy, "modifier_eul_cyclone") or 24 | NPC.HasModifier(enemy, "modifier_item_ethereal_blade_ethereal") or 25 | NPC.HasModifier(enemy, "modifier_necrolyte_sadist_active")or 26 | NPC.HasModifier(enemy, "modifier_omninight_guardian_angel") or 27 | NPC.HasModifier(enemy, "modifier_item_aeon_disk_buff") or 28 | NPC.HasModifier(enemy, "modifier_item_glimmer_cape_fade")) 29 | then 30 | if NPC.IsLinkensProtected(enemy) or NPC.HasModifier(enemy, "modifier_item_lotus_orb") or NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_MAGIC_IMMUNE) then return end 31 | if nullifier and Ability.IsReady(nullifier) and NPC.IsEntityInRange(enemy, myHero, Ability.GetCastRange(nullifier)) then 32 | Ability.CastTarget(nullifier, enemy) 33 | delay = os.clock() + 2 34 | return 35 | elseif satyrpurge and Ability.IsReady(satyrpurge) and NPC.IsEntityInRange(enemy, myHero, Ability.GetCastRange(satyrpurge)) then 36 | Ability.CastTarget(satyrpurge, enemy) 37 | delay = os.clock() + 2 38 | return 39 | end 40 | end 41 | if delay > time then return end 42 | AutoPurge.Units(myHero, enemy) 43 | end 44 | 45 | function AutoPurge.Units(myHero, enemy) 46 | if not enemy then return end 47 | for _, npc in ipairs(NPC.GetUnitsInRadius(myHero, 99999, Enum.TeamType.TEAM_FRIEND)) do 48 | if Entity.IsAlive(npc) and not Entity.IsDormant(npc) and Entity.GetHealth(npc) and (Entity.GetOwner(myHero) == Entity.GetOwner(npc) or Entity.OwnedBy(npc, myHero)) then 49 | if NPC.IsLinkensProtected(enemy) or NPC.HasModifier(enemy, "modifier_item_lotus_orb") or NPC.HasState(enemy, Enum.ModifierState.MODIFIER_STATE_MAGIC_IMMUNE) then return end 50 | if NPC.HasAbility(npc, "necronomicon_archer_purge") and NPC.IsEntityInRange(npc, enemy, 600) then 51 | if (NPC.HasModifier(enemy, "modifier_ghost_state") or 52 | NPC.HasModifier(enemy, "modifier_eul_cyclone") or 53 | NPC.HasModifier(enemy, "modifier_item_ethereal_blade_ethereal") or 54 | NPC.HasModifier(enemy, "modifier_necrolyte_sadist_active")or 55 | NPC.HasModifier(enemy, "modifier_omninight_guardian_angel") or 56 | NPC.HasModifier(enemy, "modifier_windrunner_windrun")or 57 | NPC.HasModifier(enemy, "modifier_windrunner_windrun_invis") or 58 | NPC.HasModifier(enemy, "modifier_sven_warcry")or 59 | NPC.HasModifier(enemy, "modifier_item_aeon_disk_buff") or 60 | NPC.HasModifier(enemy, "modifier_lich_frost_armor") or 61 | NPC.HasModifier(enemy, "modifier_item_solar_crest_armor_addition")or 62 | NPC.HasModifier(enemy, "modifier_ogre_magi_frost_armor") or 63 | NPC.HasModifier(enemy, "modifier_item_glimmer_cape_fade")) then 64 | local necropurge = NPC.GetAbility(npc, "necronomicon_archer_purge") 65 | if necropurge and Ability.IsReady(necropurge) then 66 | Ability.CastTarget(necropurge, enemy) 67 | return 68 | end 69 | end 70 | end 71 | if NPC.HasAbility(npc, "satyr_trickster_purge") and NPC.IsEntityInRange(npc, enemy, 350) then 72 | if (NPC.HasModifier(enemy, "modifier_ghost_state") or 73 | NPC.HasModifier(enemy, "modifier_eul_cyclone") or 74 | NPC.HasModifier(enemy, "modifier_item_ethereal_blade_ethereal") or 75 | NPC.HasModifier(enemy, "modifier_necrolyte_sadist_active")or 76 | NPC.HasModifier(enemy, "modifier_omninight_guardian_angel") or 77 | NPC.HasModifier(enemy, "modifier_windrunner_windrun")or 78 | NPC.HasModifier(enemy, "modifier_windrunner_windrun_invis") or 79 | NPC.HasModifier(enemy, "modifier_sven_warcry")or 80 | NPC.HasModifier(enemy, "modifier_item_aeon_disk_buff") or 81 | NPC.HasModifier(enemy, "modifier_lich_frost_armor") or 82 | NPC.HasModifier(enemy, "modifier_item_solar_crest_armor_addition")or 83 | NPC.HasModifier(enemy, "modifier_ogre_magi_frost_armor") or 84 | NPC.HasModifier(enemy, "modifier_item_glimmer_cape_fade")) then 85 | local satyrNpcpurge = NPC.GetAbility(npc, "satyr_trickster_purge") 86 | if satyrNpcpurge and Ability.IsReady(satyrNpcpurge) then 87 | Ability.CastTarget(satyrNpcpurge, enemy) 88 | return 89 | end 90 | end 91 | end 92 | end 93 | end 94 | delay = os.clock() + 0.1 95 | end 96 | 97 | return AutoPurge -------------------------------------------------------------------------------- /roshan.lua: -------------------------------------------------------------------------------- 1 | local Roshan = {} 2 | Roshan.Font = Renderer.LoadFont("Arial", 15, Enum.FontWeight.BOLD) 3 | Roshan.NotifierText = "" 4 | Roshan.AegisTime = 0 5 | Roshan.NextTime = 0 6 | time = 0 7 | timedraw = 0 8 | 9 | function Roshan.OnUpdate() 10 | time = os.clock() 11 | if time > timedraw then 12 | timedraw = 0 13 | end 14 | end 15 | 16 | function Roshan.OnUnitAnimation(animation) 17 | if not animation then return end 18 | local sqname = tostring(animation.sequenceName) 19 | 20 | if sqname == "roshan_attack" or sqname == "roshan_attack2" then 21 | timedraw = os.clock() + 5 22 | end 23 | end 24 | 25 | function Roshan.OnChatEvent(chatEvent) 26 | if not Engine.IsInGame then return end 27 | if chatEvent.type ~= 9 then return end 28 | if chatEvent.value ~= 150 then return end 29 | local time = ( GameRules.GetGameTime() - GameRules.GetGameStartTime() ) 30 | Roshan.AegisTime = time + 300 31 | Roshan.NotifierText = math.floor(time / 60) .. ":" .. math.floor(time % 60) 32 | end 33 | 34 | function Roshan.OnDraw() 35 | if Heroes.GetLocal() == nil then 36 | Roshan.NotifierText = "" 37 | Roshan.AegisTime = 0 38 | return end 39 | if timedraw ~= 0 then 40 | local w, h = Renderer.GetScreenSize() 41 | local c = math.floor(w / 2) 42 | local size = 60 43 | Renderer.SetDrawColor(29, 32, 39, 100) 44 | Renderer.DrawFilledRect(c - (size / 2), math.floor(h * 0.00), size, 24) 45 | Renderer.SetDrawColor(0, 0, 0, 200) 46 | Renderer.DrawFilledRect(c - ((size / 2) - 2), math.floor(h * 0.065) + 2, size - 4, 20) 47 | Renderer.SetDrawColor(255, 255, 255, 255) 48 | Renderer.DrawTextCentered(Roshan.Font, c, math.floor(h * 0.065) + 11, "ROSHAN", 1) 49 | Renderer.SetDrawColor(255, 0, 0, 150) 50 | Renderer.DrawFilledRect(c - ((size / 2) - 2), math.floor(h * 0.065) + 22, size - 4, 2) 51 | end 52 | if Roshan.NotifierText == "" then return end 53 | 54 | local w, h = Renderer.GetScreenSize() 55 | local c = math.floor(w / 2) 56 | local size = 60 57 | local drawText = Roshan.NotifierText 58 | 59 | if Roshan.AegisTime ~= 0 60 | then 61 | local time = ( GameRules.GetGameTime() - GameRules.GetGameStartTime() ) 62 | local dif = Roshan.AegisTime - time 63 | if dif <= 0 then Roshan.AegisTime = 0 return end 64 | size = 80 65 | local sec = math.floor(dif % 60) 66 | if sec < 10 then sec = "0" .. sec end 67 | drawText = drawText .. " [" .. math.floor(dif / 60) .. ":" .. sec .. "]" 68 | end 69 | 70 | Renderer.SetDrawColor(29, 32, 39, 100) 71 | Renderer.DrawFilledRect(c - (size / 2), math.floor(h * 0.04), size, 24) 72 | 73 | Renderer.SetDrawColor(0, 0, 0, 200) 74 | Renderer.DrawFilledRect(c - ((size / 2) - 2), math.floor(h * 0.04) + 2, size - 4, 20) 75 | 76 | Renderer.SetDrawColor(255, 255, 255, 255) 77 | Renderer.DrawTextCentered(Roshan.Font, c, math.floor(h * 0.04) + 11, drawText, 1) 78 | Renderer.SetDrawColor(255, 0, 0, 150) 79 | Renderer.DrawFilledRect(c - ((size / 2) - 2), math.floor(h * 0.04) + 22, size - 4, 2) 80 | end 81 | 82 | return Roshan -------------------------------------------------------------------------------- /terror.lua: -------------------------------------------------------------------------------- 1 | local Terror = {} 2 | 3 | function Terror.OnUpdate() 4 | local myHero = Heroes.GetLocal() 5 | if not myHero then return end 6 | if NPC.GetUnitName(myHero) ~= "npc_dota_hero_terrorblade" then return end 7 | local hero = Input.GetNearestHeroToCursor(Entity.GetTeamNum(myHero), Enum.TeamType.TEAM_ENEMY) 8 | 9 | if not hero then return end 10 | if NPC.IsLinkensProtected(hero) or NPC.IsIllusion(hero) or NPC.HasModifier(hero, "modifier_item_lotus_orb") then return end 11 | local sunder = NPC.GetAbility(myHero, "terrorblade_sunder") 12 | local myHealth = Entity.GetHealth(myHero) 13 | local enemyHealth = Entity.GetHealth(hero) 14 | if myHealth <= Entity.GetMaxHealth(myHero) * 0.25 then 15 | if enemyHealth > Entity.GetMaxHealth(hero) * 0.75 then 16 | if Ability.IsReady(sunder) and NPC.IsEntityInRange(hero, myHero, Ability.GetCastRange(sunder)) then 17 | Ability.CastTarget(sunder, hero) 18 | end 19 | end 20 | end 21 | end 22 | 23 | return Terror --------------------------------------------------------------------------------