本文整理汇总了C#中Hero.IsMagicImmune方法的典型用法代码示例。如果您正苦于以下问题:C# Hero.IsMagicImmune方法的具体用法?C# Hero.IsMagicImmune怎么用?C# Hero.IsMagicImmune使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hero
的用法示例。
在下文中一共展示了Hero.IsMagicImmune方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
/// <summary>
/// The execute.
/// </summary>
/// <param name="hero">
/// The hero.
/// </param>
/// <returns>
/// The <see cref="bool" />.
/// </returns>
public bool Execute(Hero hero)
{
if ((Variables.Instance.Techies.EnabledHeroes.ContainsKey(hero.ClassID)
&& !Variables.Instance.Techies.EnabledHeroes[hero.ClassID]) || hero.IsInvul() || hero.IsMagicImmune()
|| hero.HasModifiers(
new[]
{
"modifier_juggernaut_blade_fury",
"modifier_ember_spirit_sleight_of_fist_caster_invulnerability"
},
false) || !hero.CanDie())
{
return false;
}
if (!Utils.SleepCheck(hero.ClassID + "Techies.AutoDetonate"))
{
return false;
}
var tempDamage = hero.GetStackDamage();
if (!(tempDamage.Item1 >= hero.Health))
{
return false;
}
if (tempDamage.Item3 != null && tempDamage.Item3.AutoDetonate)
{
Detonate(tempDamage.Item2);
Utils.Sleep(500, hero.ClassID + "Techies.AutoDetonate");
return true;
}
if (tempDamage.Item3 == null || tempDamage.Item3.AutoDetonate
|| !Variables.Menu.DrawingsMenu.Item("Techies.ShowNotification").GetValue<bool>())
{
return false;
}
if (!Utils.SleepCheck("Techies.Notification." + hero.StoredName()))
{
return false;
}
Utils.Sleep(15000, "Techies.Notification." + hero.StoredName());
if (this.notification == null)
{
this.notification = new Notification(
5000,
new Vector2(HUDInfo.ScreenSizeX(), (float)(HUDInfo.ScreenSizeY() / 2.3)),
new Vector2(HUDInfo.ScreenSizeX() / 8, HUDInfo.ScreenSizeX() / 30));
}
this.notification.RemoteMines = tempDamage.Item2;
this.notification.PopUp(hero);
return false;
}
示例2: OnlyRktCountDmg
static int OnlyRktCountDmg(Hero en)
{
if (!en.IsMagicImmune() && !en.IsInvul())
{
return ((int)(en.Health/onerocketdamage()+1)*onerocketdamage());
}
else
return 999;
}
示例3: RktCount
static int RktCount(Hero en)
{
if (!en.IsMagicImmune() && !en.IsInvul())
{
if (((int)((en.Health - procastdamage)/onerocketdamage()))<=0)
return 0;
else
return ((int)((en.Health - procastdamage)/onerocketdamage()));
}
else
return 999;
}
示例4: ProcastCounter
static int ProcastCounter(Hero en)
{
var maxprocastdmgstatic = (en.DamageTaken(averagedamage()*100/75, DamageType.Magical, me, false, 0, 0, 0));
var cleardmg = me.BonusDamage + me.DamageAverage;
var hitDmg = en.DamageTaken(cleardmg, DamageType.Physical, me);
if (!en.IsMagicImmune() && !en.IsInvul())
{
if (IsPhysDamageImune(en))
return (int)Math.Ceiling(en.Health / maxprocastdmgstatic);
else
return (int)Math.Ceiling(en.Health / maxprocastdmgstatic - hitDmg/en.Health );
}
else
return 999;
}
示例5: Player_OnExecuteAction
//.........这里部分代码省略.........
if (!Game.IsKeyDown(Menu.Item("Combo Key").GetValue<KeyBind>().Key))
target = null;
if ((Game.IsKeyDown(Menu.Item("Combo Key").GetValue<KeyBind>().Key)) && (!Menu.Item("Chase").GetValue<KeyBind>().Active) && !Game.IsChatOpen)
{
//target = me.ClosestToMouseTarget(2000);
var targetLock =
Menu.Item("TargetLock").GetValue<StringList>().SelectedIndex;
if (Utils.SleepCheck("UpdateTarget")
&& (target == null || !target.IsValid || !target.IsAlive || !target.IsVisible || (target.IsVisible && targetLock == 0)))
{
target = TargetSelector.ClosestToMouse(me, 2000);
Utils.Sleep(250, "UpdateTarget");
}
if (target != null && target.IsAlive && !target.IsIllusion && !me.IsChanneling() && !me.Spellbook.Spells.Any(x => x.IsInAbilityPhase))
{
FindItems();
if (Utils.SleepCheck("FASTCOMBO"))
{
uint elsecount = 0;
bool EzkillCheck = EZkill(target);
bool magicimune = (!target.IsMagicImmune() && !target.Modifiers.Any(x => x.Name == "modifier_eul_cyclone"));
// soulring -> glimmer -> sheep -> veil-> ghost -> -> -> ethereal -> dagon -> laser -> rocket -> shivas
if (soulring != null && soulring.CanBeCasted()
&& target.NetworkPosition.Distance2D(me) <= 2500
&& Menu.Item("Items: ").GetValue<AbilityToggler>().IsEnabled(soulring.Name) )
{
soulring.UseAbility();
}
else
elsecount += 1;
if (glimmer != null && glimmer.CanBeCasted() && Menu.Item("Items: ").GetValue<AbilityToggler>().IsEnabled(glimmer.Name) )
{
glimmer.UseAbility(me);
}
else
elsecount += 1;
/*
if (blink != null && blink.CanBeCasted() && Menu.Item("Items: ").GetValue<AbilityToggler>().IsEnabled(blink.Name) && !me.IsChanneling())
{
blink.UseAbility(Game.MousePosition);
}*/
if (blink != null && blink.CanBeCasted() && Menu.Item("Items: ").GetValue<AbilityToggler>().IsEnabled(blink.Name)
&& !me.IsChanneling() && !me.Spellbook.Spells.Any(x => x.IsInAbilityPhase)
&& (me.Distance2D(Game.MousePosition) > 650+aetherrange + ensage_error)
&& (!me.Modifiers.Any(y => y.Name == "modifier_bloodseeker_rupture") || (me.Distance2D(Game.MousePosition)>1325 && aetherrange!=0))
&& (target.NetworkPosition.Distance2D(me) <= 1200 + 650 + ensage_error*2 +aetherrange*2)
&& Utils.SleepCheck("Blinks")
// && Utils.SleepCheck("Rearms"))
示例6: Game_OnUpdate
public static void Game_OnUpdate(EventArgs args)
{
me = ObjectMgr.LocalHero;
if (me == null || !Game.IsInGame || Game.IsWatchingGame)
return;
if (me.ClassID != ClassID.CDOTA_Unit_Hero_Tinker)
return;
// Ability init
Laser = me.Spellbook.Spell1;
Rocket = me.Spellbook.Spell2;
Refresh = me.Spellbook.Spell4;
// Item init
Blink = me.FindItem("item_blink");
Dagon = me.GetDagon();
Hex = me.FindItem("item_sheepstick");
Soulring = me.FindItem("item_soul_ring");
Ethereal = me.FindItem("item_ethereal_blade");
Veil = me.FindItem("item_veil_of_discord");
Orchid = me.FindItem("item_orchid");
Shiva = me.FindItem("item_shiva");
// Manacost calculations
var manaForCombo = Laser.ManaCost + Rocket.ManaCost;
if (Dagon != null && Dagon.CanBeCasted())
manaForCombo += 180;
if (Hex != null && Hex.CanBeCasted())
manaForCombo += 100;
if (Ethereal != null && Ethereal.CanBeCasted())
manaForCombo += 150;
if (Veil != null && Veil.CanBeCasted())
manaForCombo += 50;
// Main combo
if (active && toggle)
{
target = me.ClosestToMouseTarget(1000);
if (target != null && target.IsAlive && !target.IsIllusion && !target.IsMagicImmune() && Utils.SleepCheck("refresh") && !Refresh.IsChanneling)
{
if (Soulring != null && me.Mana < manaForCombo && Soulring.CanBeCasted() && me.Health > 400 && Utils.SleepCheck("soulring"))
{
Soulring.UseAbility();
Utils.Sleep(150 + Game.Ping, "soulring");
}
// Blink
else if (Blink != null && Blink.CanBeCasted() && Utils.SleepCheck("blink"))
{
Utils.Sleep(300 + Game.Ping, "blink");
Utils.ChainStun(me, me.GetTurnTime(target) * 1000 + Game.Ping, null, false);
Blink.UseAbility(target.Position);
}
// Items
else if (Veil != null && Veil.CanBeCasted() && Utils.SleepCheck("veil"))
{
Veil.UseAbility(target.Position);
Utils.Sleep(150 + Game.Ping, "veil");
Utils.Sleep(300 + Game.Ping, "ve");
Utils.ChainStun(me, 170 + Game.Ping, null, false);
}
else if (Hex != null && Hex.CanBeCasted() && Utils.SleepCheck("hex"))
{
Hex.UseAbility(target);
Utils.Sleep(150 + Game.Ping, "hex");
Utils.Sleep(300 + Game.Ping, "h");
Utils.ChainStun(me, 170 + Game.Ping, null, false);
}
else if (Ethereal != null && Ethereal.CanBeCasted() && Utils.SleepCheck("ethereal"))
{
Ethereal.UseAbility(target);
Utils.Sleep(270 + Game.Ping, "ethereal");
Utils.ChainStun(me, 200 + Game.Ping, null, false);
}
else if (Dagon != null && Dagon.CanBeCasted() && Utils.SleepCheck("ethereal") && Utils.SleepCheck("h") && Utils.SleepCheck("dagon") && Utils.SleepCheck("veil"))
{
Dagon.UseAbility(target);
Utils.Sleep(270 + Game.Ping, "dagon");
Utils.ChainStun(me, 200 + Game.Ping, null, false);
}
// Skills
else if (Rocket != null && Rocket.CanBeCasted() && Utils.SleepCheck("rocket") && Utils.SleepCheck("ethereal") && Utils.SleepCheck("veil"))
{
Rocket.UseAbility();
Utils.Sleep(150 + Game.Ping, "rocket");
Utils.ChainStun(me, 150 + Game.Ping, null, false);
}
else if (Laser != null && Laser.CanBeCasted() && Utils.SleepCheck("laser") && Utils.SleepCheck("ethereal") && Utils.SleepCheck("rocket"))
{
Laser.UseAbility(target);
Utils.Sleep(150 + Game.Ping, "laser");
Utils.ChainStun(me, 150 + Game.Ping, null, false);
//.........这里部分代码省略.........
示例7: Game_OnUpdate
public static void Game_OnUpdate(EventArgs args)
{
me = ObjectMgr.LocalHero;
if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame)
return;
if (me.ClassID != ClassID.CDOTA_Unit_Hero_Legion_Commander)
return;
if (me == null)
return;
if (Duel == null)
Duel = me.Spellbook.Spell4;
if (Heal == null)
Heal = me.Spellbook.Spell2;
if (Odds == null)
Odds = me.Spellbook.Spell1;
if (Blink == null)
Blink = me.FindItem("item_blink");
if (armlet == null)
armlet = me.FindItem("item_armlet");
if (mjollnir == null)
mjollnir = me.FindItem("item_mjollnir");
if (medallion == null)
medallion = me.FindItem("item_medallion_of_courage");
if (solar == null)
solar = me.FindItem("item_solar_crest");
if (soulRing == null)
soulRing = me.FindItem("item_soul_ring");
if (bkb == null)
bkb = me.FindItem("item_black_king_bar");
if (abyssal == null)
abyssal = me.FindItem("item_abyssal_blade");
if (dust == null)
dust = me.FindItem("item_dust");
if (bladeMail == null)
bladeMail = me.FindItem("item_blade_mail");
var duelManacost = Heal.ManaCost + Duel.ManaCost;
// Main combo
if (active && toggle)
{
target = me.ClosestToMouseTarget(1000);
if (target != null && target.IsAlive && !target.IsInvul() && !target.IsIllusion)
{
if (me.CanAttack() && me.CanCast()) {
var linkens = target.Modifiers.Any(x => x.Name == "modifier_item_spheretarget") || target.Inventory.Items.Any(x => x.Name == "item_sphere");
// here allied skills & items
if (soulRing != null && soulRing.CanBeCasted() && me.Mana < duelManacost && me.Health > 300 && Utils.SleepCheck("soulring"))
{
soulRing.UseAbility();
Utils.Sleep(150 + Game.Ping, "soulring");
}
if (bladeMail != null && bladeMail.CanBeCasted() && Utils.SleepCheck("blademail"))
{
bladeMail.UseAbility();
Utils.Sleep(150 + Game.Ping, "blademail");
}
if (armlet != null && armlet.CanBeCasted() && Utils.SleepCheck("armlet1") && !armlet.IsToggled)
{
armlet.ToggleAbility();
Utils.Sleep(150 + Game.Ping, "armlet1");
}
if (mjollnir != null && mjollnir.CanBeCasted() && Utils.SleepCheck("mjollnir"))
{
mjollnir.UseAbility(me);
Utils.Sleep(150 + Game.Ping, "mjollnir");
}
if (Heal.CanBeCasted() && Utils.SleepCheck("heal") && (!bkb.CanBeCasted() || !me.IsMagicImmune()))
{
Heal.UseAbility(me);
Utils.Sleep(150 + Game.Ping, "heal");
}
Utils.ChainStun(me, 100, null, false);
if (bkb != null && bkb.CanBeCasted() && Utils.SleepCheck("bkb") && bkbToggle)
{
bkb.UseAbility();
Utils.Sleep(150 + Game.Ping, "bkb");
}
Utils.ChainStun(me, 200, null, false);
// Blink
if (Blink != null && Blink.CanBeCasted() && me.Distance2D(target) > 300 && Utils.SleepCheck("blink1"))
{
Blink.UseAbility(target.Position);
//.........这里部分代码省略.........
示例8: Game_OnUpdate
//.........这里部分代码省略.........
&& meepos[i].Handle != f.Handle
&& meepos[i].Distance2D(f) >= 700
&& e == null
&& meepos[i].Distance2D(fount.First().Position) >= 1500
&& Utils.SleepCheck(meepos[i].Handle + "W"))
{
w[i].UseAbility(f);
Utils.Sleep(1000, meepos[i].Handle + "W");
}
else if (
travel != null
&& travel.CanBeCasted()
&& meepos[i].Health <= meepos[i].MaximumHealth
/ 100 * Menu.Item("healh").GetValue<Slider>().Value
&& (!w[i].CanBeCasted()
|| meepos[i].Position.Distance2D(f) >= 1000
|| (w[i].CanBeCasted()
&& f.Distance2D(fount.First()) >= 1500))
|| (meepos[i].IsSilenced()
|| meepos[i].MovementSpeed <= 280)
&& meepos[i].Distance2D(fount.First().Position) >= 1500
&& e == null
&& Utils.SleepCheck(meepos[i].Handle + "travel"))
{
travel.UseAbility(fount.First().Position);
Utils.Sleep(1000, meepos[i].Handle + "travel");
}
if (e != null
&& q[i] != null
&& meepos[i].Health <= meepos[i].MaximumHealth
/ 100 * Menu.Item("healh").GetValue<Slider>().Value
&& q[i].CanBeCasted()
&& e.Modifiers.Any(y => y.Name != "modifier_meepo_earthbind")
&& !e.IsMagicImmune()
&& meepos[i].Distance2D(e) <= q[i].CastRange - 50
&& Utils.SleepCheck(meepos[i].Handle + "_net_casting"))
{
q[i].CastSkillShot(e);
Utils.Sleep(q[i].GetCastDelay(meepos[i], e, true) + 500, meepos[i].Handle + "_net_casting");
}
else if (!q[i].CanBeCasted() && meepos[i].Health <= meepos[i].MaximumHealth / 100 * Menu.Item("healh").GetValue<Slider>().Value)
{
for (var j = 0; j < meepos.Count(); j++)
{
if (e != null
&& q[j] != null
&& meepos[i].Handle != meepos[j].Handle
&& meepos[j].Position.Distance2D(e) < q[i].CastRange
&& e.Modifiers.Any(y => y.Name != "modifier_meepo_earthbind")
&& meepos[j].Position.Distance2D(meepos[i]) < q[j].CastRange
&& !e.IsMagicImmune()
&& Utils.SleepCheck(meepos[i].Handle + "_net_casting"))
{
q[j].CastSkillShot(e);
Utils.Sleep(q[j].GetCastDelay(meepos[j], e, true) + 1500, meepos[i].Handle + "_net_casting");
break;
}
}
}
if (e != null
&& w[i] != null
&& w[i].CanBeCasted()
&& meepos[i].Health <= meepos[i].MaximumHealth
/ 100 * Menu.Item("healh").GetValue<Slider>().Value
&& meepos[i].Handle != f.Handle && meepos[i].Distance2D(f) >= 700
&& (meepos[i].Distance2D(e) >= (e.AttackRange + 60)
示例9: Game_OnUpdate
public static void Game_OnUpdate(EventArgs args)
{
me = ObjectMgr.LocalHero;
if (me == null || !Game.IsInGame)
{
return;
}
// Ability init
Laser = me.Spellbook.Spell1;
Rocket = me.Spellbook.Spell2;
ReArm = me.Spellbook.Spell4;
// Item init
Blink = me.FindItem("item_blink");
Dagon = me.Inventory.Items.FirstOrDefault(x => x.Name.Contains("item_dagon"));
Hex = me.FindItem("item_sheepstick");
Soulring = me.FindItem("item_soul_ring");
Ethereal = me.FindItem("item_ethereal_blade");
Veil = me.FindItem("item_veil_of_discord");
Orchid = me.FindItem("item_orchid");
Shiva = me.FindItem("item_shivas_guard");
Glimmer = me.FindItem("item_glimmer_cape");
// Glimmer Use on Boots of Travel
if (Glimmer !=null && me.IsChanneling() && Glimmer.CanBeCasted() && Utils.SleepCheck("Glimmer") && !ReArm.IsChanneling && (SubMenu.Item("safeglimmer").GetValue<bool>()))
{
Glimmer.UseAbility(me);
Utils.Sleep(100 + Game.Ping, "Glimmer");
}
// Smart Blink
if (Blink !=null && !me.IsChanneling() && Blink.CanBeCasted() && Utils.SleepCheck("Blink") && (Menu.Item("smartblink").GetValue<KeyBind>().Active))
{
Blink.UseAbility(Game.MousePosition);
Utils.Sleep(750 + Game.Ping, "Blink");
}
// KS Section
if (SubMenu.Item("autoks").GetValue<bool>() && !active)
{
var enemy = ObjectMgr.GetEntities<Hero>()
.Where(x => x.Team != me.Team && x.IsAlive && x.IsVisible && !x.IsIllusion && !x.UnitState.HasFlag(UnitState.MagicImmune))
.ToList();
foreach (var i in enemy)
{
var linken = i.Inventory.Items.FirstOrDefault(x => x.Name == "item_sphere");
var sphere = i.Modifiers.Any(x => x.Name == "modifier_item_sphere_target");
var ta = i.Modifiers.Any(x => x.Name == "modifier_templar_assassin_refraction_damage");
var dazzle = i.Modifiers.Any(x => x.Name == "modifier_dazzle_shallow_grave");
var abaddon = i.Modifiers.Any(x => x.Name == "modifier_abaddon_borrowed_time");
var pipe = i.Modifiers.Any(x => x.Name == "modifier_item_pipe_barrier");
if (Dagon.CanBeCasted() && Utils.SleepCheck("dagon") && Utils.SleepCheck("rearm") && !ReArm.IsChanneling)
{
if ((linken != null && linken.Cooldown == 0) || (sphere || ta || dazzle || abaddon || pipe))
return;
var range = DagonRange[Dagon.Level - 1];
var damage = Math.Floor(DagonDamage[Dagon.Level - 1] * (1 - i.MagicDamageResist));
if (me.Distance2D(i) < range && i.Health < damage)
Dagon.UseAbility(i);
Utils.Sleep(500 + Game.Ping, "dagon");
}
if (Laser.CanBeCasted() && Utils.SleepCheck("laser") && Utils.SleepCheck("rearm") && !ReArm.IsChanneling)
{
if ((linken != null && linken.Cooldown == 0) || (sphere || ta || dazzle || abaddon))
return;
var damage = Math.Floor(LaserDamage[Laser.Level - 1] - (1 - i.MagicDamageResist));
if (me.Distance2D(i) < 650 && i.Health < damage)
Laser.UseAbility(i);
Utils.Sleep(500 + Game.Ping, "laser");
}
if (Rocket.CanBeCasted() && Utils.SleepCheck("rocket") && Utils.SleepCheck("rearm") && !ReArm.IsChanneling)
{
if (ta || dazzle || abaddon)
return;
var damage = Math.Floor(RocketDamage[Rocket.Level - 1] * (1 - i.MagicDamageResist));
if (me.Distance2D(i) < 2500 && i.Health < damage)
Rocket.UseAbility();
Utils.Sleep(500 + Game.Ping, "rocket");
}
}
}
// Conrol Rearm
if (ReArm !=null && !ReArm.IsChanneling && ReArm.CanBeCasted() && Utils.SleepCheck("rearm") && (Menu.Item("gorearm").GetValue<KeyBind>().Active))
{
ReArm.UseAbility();
Utils.ChainStun(me, (ReArm.ChannelTime * 1000) + Game.Ping + 400, null, false);
Utils.Sleep(700 + Game.Ping, "rearm");
}
// Main combo
if (active)
{
target = me.ClosestToMouseTarget(1000);
if ((target == null || !target.IsVisible) && !me.IsChanneling() && (me.Distance2D(Game.MousePosition) < 3000) && Utils.SleepCheck("rearm"))
{
me.Move(Game.MousePosition);
}
if (target != null && target.IsAlive && !target.IsIllusion && !target.IsMagicImmune() && Utils.SleepCheck("rearm") && !me.IsChanneling() && (me.Distance2D(target) < 3000))
{
if (Soulring != null && Soulring.CanBeCasted() && me.Health > 300 && Utils.SleepCheck("soulring") && Utils.SleepCheck("rearm"))
{
Soulring.UseAbility();
Utils.Sleep(150 + Game.Ping, "soulring");
}
//.........这里部分代码省略.........
示例10: ComboInAction
private static void ComboInAction(Hero me, Hero target)
{
if (!Utils.SleepCheck("nextAction")) return;
var duel = me.Spellbook.Spell4;
if (duel==null) return;
if (!duel.CanBeCasted(target)) return;
//var steal = me.Spellbook.Spell1;
var heal = me.Spellbook.Spell2;
var dagger = me.FindItem("item_blink");
var neededMana = me.Mana-duel.ManaCost;
var allitems = me.Inventory.Items.Where(x => x.CanBeCasted() && x.ManaCost <= neededMana);
var dpActivated =
target.Modifiers.Any(
x => x.Name == "modifier_slark_dark_pact" || x.Name == "modifier_slark_dark_pact_pulses");
var enumerable = allitems as Item[] ?? allitems.ToArray();
var itemOnTarget =
enumerable.FirstOrDefault(
x =>
x.Name == "item_abyssal_blade" || x.Name == "item_orchid" ||
x.Name == "item_heavens_halberd" || x.Name == "item_sheepstick" ||
x.Name == "item_urn_of_shadows" || x.Name == "item_medallion_of_courage" ||
x.Name == "item_solar_crest");
var itemWithOutTarget = enumerable.FirstOrDefault(
x =>
x.Name == "item_soul_ring" || (x.Name == "item_armlet" && !x.IsToggled) ||
x.Name == "item_mask_of_madness" || x.Name == "item_satanic" ||
x.Name == "item_blade_mail");
var itemOnMySelf = enumerable.FirstOrDefault(
x =>
x.Name == "item_mjollnir");
Item bkb = null;
if (_shoulUseBkb)
{
bkb = me.FindItem("item_black_king_bar");
}
var distance = me.Distance2D(target);
if (distance >= 1150)
{
me.Move(target.Position);
Utils.Sleep(200, "nextAction");
return;
}
if (itemOnMySelf != null && _buffme)
{
itemOnMySelf.UseAbility(me);
Utils.Sleep(50, "nextAction");
return;
}
if (itemWithOutTarget != null && _buffme)
{
if (itemWithOutTarget.Name == "item_armlet")
{
itemWithOutTarget.ToggleAbility();
Utils.Sleep(50, "nextAction");
return;
}
itemWithOutTarget.UseAbility();
Utils.Sleep(50, "nextAction");
return;
}
if (dagger != null && dagger.CanBeCasted())
{
if (!me.IsMagicImmune() && heal.CanBeCasted() && heal.ManaCost <= neededMana && _shoulUseHeal)
{
heal.UseAbility(me);
Utils.Sleep(500, "nextAction");
return;
}
var point = new Vector3(
(float)(target.Position.X - 60 * Math.Cos(me.FindAngleBetween(target.Position, true))),
(float)(target.Position.Y - 60 * Math.Sin(me.FindAngleBetween(target.Position, true))),
target.Position.Z);
dagger.UseAbility(point);
Utils.Sleep(50, "nextAction");
return;
}
if (distance>duel.CastRange)
{
me.Move(target.Position);
Utils.Sleep(200, "nextAction");
return;
}
if (itemOnTarget != null && !dpActivated && _debuffenemy)
{
itemOnTarget.UseAbility(target);
Utils.Sleep(50, "nextAction");
return;
}
if (_shoulUseBkb && bkb != null && bkb.CanBeCasted())
{
bkb.UseAbility();
}
duel.UseAbility(target);
Utils.Sleep(300, "nextAction");
}
示例11: Game_OnUpdate
public static void Game_OnUpdate(EventArgs args)
{
me = ObjectMgr.LocalHero;
if (me == null || !Game.IsInGame || me.ClassID != ClassID.CDOTA_Unit_Hero_Tinker)
{
return;
}
// Ability init
Laser = me.Spellbook.Spell1;
Rocket = me.Spellbook.Spell2;
ReArm = me.Spellbook.Spell4;
// Item init
Blink = me.FindItem("item_blink");
Dagon = me.Inventory.Items.FirstOrDefault(item => item.Name.Contains("item_dagon"));
Hex = me.FindItem("item_sheepstick");
Soulring = me.FindItem("item_soul_ring");
Ethereal = me.FindItem("item_ethereal_blade");
Veil = me.FindItem("item_veil_of_discord");
Orchid = me.FindItem("item_orchid");
Shiva = me.FindItem("item_shivas_guard");
Glimmer = me.FindItem("item_glimmer_cape");
// Manacost calculations
var manaForCombo = Laser.ManaCost + Rocket.ManaCost;
if (Dagon != null && Dagon.CanBeCasted())
manaForCombo += 180;
if (Hex != null && Hex.CanBeCasted())
manaForCombo += 100;
if (Ethereal != null && Ethereal.CanBeCasted())
manaForCombo += 150;
if (Veil != null && Veil.CanBeCasted())
manaForCombo += 50;
if (Shiva != null && Shiva.CanBeCasted())
manaForCombo += 100;
if (Glimmer != null && Glimmer.CanBeCasted())
manaForCombo += 110;
// Glimmer Use on Boots of Travel
if (Glimmer !=null && me.IsChanneling() && Glimmer.CanBeCasted() && Utils.SleepCheck("Glimmer") && !ReArm.IsChanneling && (SubMenu.Item("safeglimmer").GetValue<bool>()))
{
Glimmer.UseAbility(me);
Utils.Sleep(100 + Game.Ping, "Glimmer");
}
// Blink Use to Hide After Travel
if (Blink !=null && !me.IsChanneling() && Blink.CanBeCasted() && Utils.SleepCheck("Blink") && (Menu.Item("safeblink").GetValue<KeyBind>().Active))
{
Blink.UseAbility(Game.MousePosition);
Utils.Sleep(1000 + Game.Ping, "Blink");
}
// Main combo
if (active && toggle)
{
target = me.ClosestToMouseTarget(1000);
if ((target == null || !target.IsVisible) && !me.IsChanneling())
{
me.Move(Game.MousePosition);
}
if (target != null && target.IsAlive && !target.IsIllusion && !target.IsMagicImmune() && Utils.SleepCheck("ReArm") && !me.IsChanneling() && (me.Distance2D(target) < 3000))
{
if (Soulring != null && Soulring.CanBeCasted() && me.Health > 300 && Utils.SleepCheck("soulring"))
{
Soulring.UseAbility();
Utils.Sleep(150 + Game.Ping, "soulring");
}
// Blink
if (Blink != null && Blink.CanBeCasted() && (me.Distance2D(target) > 500) && Utils.SleepCheck("Blink") && blinkToggle)
{
Blink.UseAbility(target.Position);
Utils.Sleep(1000 + Game.Ping, "Blink");
}
// Items
else if (Shiva != null && Shiva.CanBeCasted() && Utils.SleepCheck("shiva"))
{
Shiva.UseAbility();
Utils.Sleep(100 + Game.Ping, "shiva");
Utils.ChainStun(me, 200 + Game.Ping, null, false);
}
else if (Veil != null && Veil.CanBeCasted() && Utils.SleepCheck("veil"))
{
Veil.UseAbility(target.Position);
Utils.Sleep(150 + Game.Ping, "veil");
Utils.Sleep(300 + Game.Ping, "ve");
Utils.ChainStun(me, 170 + Game.Ping, null, false);
}
else if (Hex != null && Hex.CanBeCasted() && Utils.SleepCheck("hex"))
{
Hex.UseAbility(target);
Utils.Sleep(150 + Game.Ping, "hex");
Utils.Sleep(300 + Game.Ping, "h");
Utils.ChainStun(me, 170 + Game.Ping, null, false);
}
else if (Ethereal != null && Ethereal.CanBeCasted() && Utils.SleepCheck("ethereal"))
{
Ethereal.UseAbility(target);
Utils.Sleep(270 + Game.Ping, "ethereal");
Utils.ChainStun(me, 200 + Game.Ping, null, false);
}
else if (Dagon != null && Dagon.CanBeCasted() && Utils.SleepCheck("ethereal") && Utils.SleepCheck("h") && Utils.SleepCheck("dagon") && Utils.SleepCheck("veil"))
{
Dagon.UseAbility(target);
Utils.Sleep(270 + Game.Ping, "dagon");
Utils.ChainStun(me, 200 + Game.Ping, null, false);
//.........这里部分代码省略.........
示例12: Execute
public static bool Execute(
Hero target,
Hero[] enemyHeroes,
float ping,
bool onlyDamage,
bool onlyDisable,
Hero me,
float mana)
{
var toggler = MainMenu.ComboKeysMenu.Item("comboAbilitiesToggler").GetValue<AbilityToggler>();
if (Utils.SleepCheck("UpdateCombo"))
{
MyAbilities.Combo =
MyAbilities.OffensiveAbilities.Where(
x => x.Value.IsValid && x.Value.Owner.Equals(me) && toggler.IsEnabled(NameManager.Name(x.Value)))
.OrderBy(x => ComboOrder.GetComboOrder(x.Value, onlyDisable));
Utils.Sleep(500, "UpdateCombo");
}
if (Utils.SleepCheck("casting") && MyAbilities.Combo != null)
{
if (target != null)
{
if (Dictionaries.HitDamageDictionary.ContainsKey(target.Handle)
&& Dictionaries.HitDamageDictionary[target.Handle] * 1.5 >= target.Health
&& target.Distance2D(MyHeroInfo.Position) <= me.GetAttackRange() + 150)
{
return false;
}
if (!Utils.SleepCheck(target.Handle + "KeyCombo"))
{
return false;
}
if (AbilityMain.Me.ClassID == ClassID.CDOTA_Unit_Hero_TemplarAssassin)
{
var r = MyAbilities.Combo.FirstOrDefault(x => x.Key == "templar_assassin_psionic_trapslow");
var modifier = target.FindModifier("modifier_templar_assassin_trap_slow");
if (modifier == null || modifier.RemainingTime < r.Value.GetHitDelay(target))
{
Slow.TemplarAssasinUseTrap(target);
}
}
if (me.ClassID == ClassID.CDOTA_Unit_Hero_Tinker && toggler.IsEnabled("tinker_rearm")
&& MyAbilities.TinkerRearm.CanBeCasted() && Utils.SleepCheck("Ability.TinkerRearm")
&& !MyAbilities.Combo.Any(
x =>
x.Value.CanBeCasted()
|| (x.Value.CanBeCasted(SoulRing.ManaGained) && SoulRing.Check(x.Value))))
{
MyAbilities.TinkerRearm.UseAbility();
Utils.Sleep(
MyAbilities.TinkerRearm.FindCastPoint() * 1000 + Game.Ping
+ MyAbilities.TinkerRearm.GetChannelTime(MyAbilities.TinkerRearm.Level - 1) * 1000 + 500,
"Ability.TinkerRearm");
Utils.Sleep(
MyAbilities.TinkerRearm.FindCastPoint() * 1000 + Game.Ping
+ MyAbilities.TinkerRearm.GetChannelTime(MyAbilities.TinkerRearm.Level - 1) * 1000,
"GlobalCasting");
Utils.Sleep(
MyAbilities.TinkerRearm.FindCastPoint() * 1000 + Game.Ping
+ MyAbilities.TinkerRearm.GetChannelTime(MyAbilities.TinkerRearm.Level - 1) * 1000,
"casting");
Utils.Sleep(
MyAbilities.TinkerRearm.FindCastPoint() * 1000 + Game.Ping
+ MyAbilities.TinkerRearm.GetChannelTime(MyAbilities.TinkerRearm.Level - 1) * 1000,
"cancelorder");
return true;
}
foreach (var data in
MyAbilities.Combo.Where(
x =>
x.Value.IsValid
&& (x.Value.CanBeCasted()
|| (x.Value.CanBeCasted(SoulRing.ManaGained) && SoulRing.Check(x.Value)))
&& !x.Value.IsAbilityBehavior(AbilityBehavior.Hidden)
&& ((x.Value is Item && me.CanUseItems()) || (!(x.Value is Item) && me.CanCast()))
&& (Utils.SleepCheck(x.Value.Handle.ToString())
|| (!x.Value.IsInAbilityPhase && x.Value.FindCastPoint() > 0))))
{
var ability = data.Value;
var name = NameManager.Name(ability);
var category = (name == "lion_impale") ? "disable" : data.Key.Substring(name.Length);
// if (category == "special" || category == "buff")
// {
// continue;
// }
// if (onlyDamage && (category == "disable" || category == "slow" || category == "silence"))
// {
// continue;
// }
// if (onlyDisable && (category == "nuke" || category == "harras"))
// {
// continue;
// }
if (category != "buff" && target.IsMagicImmune() && ability.ImmunityType != (ImmunityType)3)
//.........这里部分代码省略.........
示例13: Working
public static void Working(EventArgs args)
{
if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame)
return;
me = ObjectMgr.LocalHero;
if (me == null || me.ClassID != ClassID.CDOTA_Unit_Hero_Legion_Commander)
return;
if (Game.IsKeyDown(Menu.Item("Black King Bar Toggle").GetValue<KeyBind>().Key) && !Game.IsChatOpen && Utils.SleepCheck("BKBTOGGLE"))
{
defensive_items["item_black_king_bar"] = !Menu.Item("Defensive Items").GetValue<AbilityToggler>().IsEnabled("item_black_king_bar");
Utils.Sleep(750, "BKBTOGGLE");
}
if (Game.IsKeyDown(Menu.Item("DUEL!").GetValue<KeyBind>().Key) && !Game.IsChatOpen)
{
FindItems();
target = me.ClosestToMouseTarget(1000);
if (target != null && target.IsAlive && !target.IsIllusion && !target.IsInvul() && (blink != null ? me.Distance2D(target) <= 1300 : me.Distance2D(target) <= 600))
{
if (me.CanAttack() && me.CanCast())
{
if (CanInvisCrit(me))
me.Attack(target);
else
{
manacheck();
if (target.IsLinkensProtected())
{
if ((cyclone.CanBeCasted() || force.CanBeCasted() || halberd.CanBeCasted() || vyse.CanBeCasted() || abyssal.CanBeCasted()) && Utils.SleepCheck("Combo2"))
{
if (blademail != null && blademail.Cooldown <= 0 && Menu.Item("Defensive Items").GetValue<AbilityToggler>().IsEnabled(blademail.Name) && me.Mana - blademail.ManaCost >= 75)
blademail.UseAbility();
if (satanic != null && satanic.Cooldown <= 0 && me.Health <= me.MaximumHealth * 0.5 && Menu.Item("Defensive Items").GetValue<AbilityToggler>().IsEnabled(satanic.Name))
satanic.UseAbility();
if (crimson != null && crimson.Cooldown <= 0 && Menu.Item("Consume Items").GetValue<AbilityToggler>().IsEnabled(crimson.Name))
crimson.UseAbility();
if (buckler != null && buckler.Cooldown <= 0 && Menu.Item("Consume Items").GetValue<AbilityToggler>().IsEnabled(buckler.Name) && me.Mana - buckler.ManaCost >= 75)
buckler.UseAbility();
if (lotusorb != null && lotusorb.Cooldown <= 0 && Menu.Item("Defensive Items").GetValue<AbilityToggler>().IsEnabled(lotusorb.Name) && me.Mana - lotusorb.ManaCost >= 75)
lotusorb.UseAbility(me);
if (mjollnir != null && mjollnir.Cooldown <= 0 && Menu.Item("Ofensive Items").GetValue<AbilityToggler>().IsEnabled(mjollnir.Name) && me.Mana - mjollnir.ManaCost >= 75)
mjollnir.UseAbility(me);
if (armlet != null && !armlet.IsToggled && Menu.Item("Ofensive Items").GetValue<AbilityToggler>().IsEnabled(armlet.Name) && Utils.SleepCheck("armlet"))
{
armlet.ToggleAbility();
Utils.Sleep(300, "armlet");
}
if (madness != null && madness.Cooldown <= 0 && Menu.Item("Ofensive Items").GetValue<AbilityToggler>().IsEnabled(madness.Name) && me.Mana - madness.ManaCost >= 75)
madness.UseAbility();
if (Heal != null && Heal.Level > 0 && Heal.Cooldown <= 0 && Menu.Item("Skills").GetValue<AbilityToggler>().IsEnabled(Heal.Name) && !me.IsMagicImmune() && me.Mana - Heal.ManaCost >= 75)
Heal.UseAbility(me);
if (bkb != null && bkb.Cooldown <= 0 && Menu.Item("Defensive Items").GetValue<AbilityToggler>().IsEnabled(bkb.Name) && (!Heal.CanBeCasted() || Heal == null))
bkb.UseAbility();
if (blink != null && blink.Cooldown <= 0 && me.Distance2D(target) <= 1300 && me.Distance2D(target) >= 200 && Menu.Item("Ofensive Items").GetValue<AbilityToggler>().IsEnabled(blink.Name))
blink.UseAbility(target.Position);
if (urn != null && urn.CurrentCharges > 0 && Menu.Item("Ofensive Items").GetValue<AbilityToggler>().IsEnabled(urn.Name))
urn.UseAbility(target);
if (solar != null && solar.CanBeCasted() && Menu.Item("Ofensive Items").GetValue<AbilityToggler>().IsEnabled(solar.Name))
solar.UseAbility(target);
if (medallion != null && medallion.CanBeCasted() && Menu.Item("Ofensive Items").GetValue<AbilityToggler>().IsEnabled(medallion.Name))
medallion.UseAbility(target);
if (cyclone != null && cyclone.CanBeCasted() && Utils.SleepCheck("CycloneRemoveLinkens") && Menu.Item("Remove Linkens Items").GetValue<AbilityToggler>().IsEnabled(cyclone.Name) && me.Mana - cyclone.ManaCost >= 75)
{
cyclone.UseAbility(target);
Utils.Sleep(100, "CycloneRemoveLinkens");
}
else if (force != null && force.CanBeCasted() && Utils.SleepCheck("ForceRemoveLinkens") && Menu.Item("Remove Linkens Items").GetValue<AbilityToggler>().IsEnabled(force.Name) && me.Mana - force.ManaCost >= 75)
{
force.UseAbility(target);
Utils.Sleep(100, "ForceRemoveLinkens");
}
else if (halberd != null && halberd.CanBeCasted() && Utils.SleepCheck("halberdLinkens") && Menu.Item("Remove Linkens Items").GetValue<AbilityToggler>().IsEnabled(halberd.Name) && me.Mana - halberd.ManaCost >= 75)
{
halberd.UseAbility(target);
Utils.Sleep(100, "halberdLinkens");
}
else if (vyse != null && vyse.CanBeCasted() && Utils.SleepCheck("vyseLinkens") && Menu.Item("Remove Linkens Items").GetValue<AbilityToggler>().IsEnabled(vyse.Name) && me.Mana - vyse.ManaCost >= 75)
{
vyse.UseAbility(target);
Utils.Sleep(100, "vyseLinkens");
}
else if (abyssal != null && abyssal.CanBeCasted() && Utils.SleepCheck("abyssal") && Menu.Item("Ofensive Items").GetValue<AbilityToggler>().IsEnabled(abyssal.Name) && me.Mana - abyssal.ManaCost >= 75)
{
abyssal.UseAbility(target);
Utils.Sleep(100, "abyssal");
}
Utils.Sleep(200, "Combo2");
}
}
else
{
if (UsedInvis(target))
{
if (me.Distance2D(target) <= 500)
{
if (dust != null && dust.CanBeCasted() && Utils.SleepCheck("dust") && dust != null && Menu.Item("Consume Items").GetValue<AbilityToggler>().IsEnabled(dust.Name))
{
dust.UseAbility();
Utils.Sleep(100, "dust");
}
else if (sentry != null && sentry.CanBeCasted() && Utils.SleepCheck("sentry") && sentry != null && Menu.Item("Consume Items").GetValue<AbilityToggler>().IsEnabled(sentry.Name))
//.........这里部分代码省略.........
示例14: ComboInAction
private static void ComboInAction(Hero me, Hero target)
{
if (!Utils.SleepCheck("nextAction")) return;
var duel = me.Spellbook.Spell4;
if (duel==null) return;
if (!duel.CanBeCasted()) return;
var haras = me.Spellbook.Spell1;
var heal = me.Spellbook.Spell2;
var dagger = me.FindItem("item_blink");
var neededMana = me.Mana-duel.ManaCost;
var allitems = me.Inventory.Items.Where(x => x.CanBeCasted() && x.ManaCost <= neededMana);
var dpActivated =
target.Modifiers.Any(
x => x.Name == "modifier_slark_dark_pact" || x.Name == "modifier_slark_dark_pact_pulses");
var enumerable = allitems as Item[] ?? allitems.ToArray();
var isInvise = me.IsInvisible();
var itemOnTarget =
enumerable.FirstOrDefault(
x =>
x.Name == "item_abyssal_blade" || x.Name == "item_orchid" ||
x.Name == "item_heavens_halberd" || x.Name == "item_sheepstick" ||
x.Name == "item_urn_of_shadows" || x.Name == "item_medallion_of_courage" ||
x.Name == "item_solar_crest");
var itemWithOutTarget = enumerable.FirstOrDefault(
x =>
x.Name == "item_soul_ring" || (x.Name == "item_armlet" && !x.IsToggled) ||
x.Name == "item_mask_of_madness" || x.Name == "item_satanic" ||
x.Name == "item_blade_mail" || x.Name == "item_silver_edge" || x.Name == "item_invis_sword");
var itemOnMySelf = enumerable.FirstOrDefault(
x =>
x.Name == "item_mjollnir");
Item bkb = null;
if (Menu.Item("enabledAbilities").GetValue<AbilityToggler>().IsEnabled("item_black_king_bar"))
{
bkb = me.FindItem("item_black_king_bar");
}
var distance = me.Distance2D(target);
if (distance >= 1150)
{
me.Move(target.Position);
Utils.Sleep(200 + Game.Ping, "nextAction");
return;
}
if (Menu.Item("enabledAbilities").GetValue<AbilityToggler>().IsEnabled("legion_commander_overwhelming_odds") && haras != null && haras.CanBeCasted() && distance <= haras.CastRange)
{
haras.UseAbility(target.Position);
Utils.Sleep(300 + Game.Ping, "nextAction");
return;
}
if (!me.IsMagicImmune() && heal.CanBeCasted() && heal.ManaCost <= neededMana && Menu.Item("enabledAbilities").GetValue<AbilityToggler>().IsEnabled("legion_commander_press_the_attack"))
{
heal.UseAbility(me);
Utils.Sleep(200 + Game.Ping, "nextAction");
return;
}
if (itemOnMySelf != null && Menu.Item("buff").GetValue<bool>())
{
itemOnMySelf.UseAbility(me);
Utils.Sleep(50 + Game.Ping, "nextAction");
return;
}
if (itemWithOutTarget != null && Menu.Item("buff").GetValue<bool>())
{
if (itemWithOutTarget.Name == "item_armlet")
{
itemWithOutTarget.ToggleAbility();
Utils.Sleep(50 + Game.Ping, "nextAction");
return;
}
itemWithOutTarget.UseAbility();
Utils.Sleep(100 + Game.Ping, "nextAction");
return;
}
if (dagger != null && dagger.CanBeCasted() && !isInvise && Utils.SleepCheck("dagger"))
{
var point = new Vector3(
(float)(target.Position.X - 20 * Math.Cos(me.FindAngleBetween(target.Position, true))),
(float)(target.Position.Y - 20 * Math.Sin(me.FindAngleBetween(target.Position, true))),
target.Position.Z);
dagger.UseAbility(point);
Utils.Sleep(200 + Game.Ping, "dagger");
return;
}
if (distance > duel.CastRange + 100 && Utils.SleepCheck("moving"))
{
if (isInvise)
me.Attack(target);
else
me.Move(target.Position);
Utils.Sleep(150 + Game.Ping, "moving");
return;
}
if (itemOnTarget != null && !dpActivated && Menu.Item("debuff").GetValue<bool>() && !isInvise)
{
itemOnTarget.UseAbility(target);
//.........这里部分代码省略.........
示例15: AD
//.........这里部分代码省略.........
}
//break TP
if (!me.IsChanneling()
&& me.Distance2D(e) <= 800 + aetherrange + ensage_error
&& e.Modifiers.Any(y => y.Name == "modifier_teleporting")
//&& e.IsChanneling()
&& !e.IsHexed()
&& !e.Modifiers.Any(y => y.Name == "modifier_eul_cyclone")
&& !e.IsLinkensProtected()
&& Utils.SleepCheck("tplink1")
)
{
if (sheep != null && sheep.CanBeCasted())
sheep.UseAbility(e);
else if (cyclone != null && cyclone.CanBeCasted())
cyclone.UseAbility(e);
Utils.Sleep(150, "tplink1");
}
//break channel by Hex
if (!me.IsChanneling()
&& sheep != null && sheep.CanBeCasted()
&& me.Distance2D(e) <= 800 + aetherrange + ensage_error
&& !e.Modifiers.Any(y => y.Name == "modifier_eul_cyclone")
&& !e.IsSilenced()
&& !e.IsMagicImmune()
&& !e.IsLinkensProtected()
&& !e.Modifiers.Any(y => y.Name == "modifier_teleporting")
&& Utils.SleepCheck(e.Handle.ToString())
&& (e.IsChanneling()
|| (e.FindItem("item_blink") != null && IsCasted(e.FindItem("item_blink")))
//break escape spells (1 hex, 2 seal) no need cyclone
|| e.ClassID == ClassID.CDOTA_Unit_Hero_QueenOfPain && e.FindSpell("queenofpain_blink").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_AntiMage && e.FindSpell("antimage_blink").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_StormSpirit && e.FindSpell("storm_spirit_ball_lightning").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Shredder && e.FindSpell("shredder_timber_chain").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Weaver && e.FindSpell("weaver_time_lapse").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_FacelessVoid && e.FindSpell("faceless_void_time_walk").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Phoenix && e.FindSpell("phoenix_icarus_dive").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Magnataur && e.FindSpell("magnataur_skewer").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Morphling && e.FindSpell("morphling_waveform").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_PhantomAssassin && e.FindSpell("phantom_assassin_phantom_strike").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Riki && e.FindSpell("riki_blink_strike").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Spectre && e.FindSpell("spectre_haunt").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Furion && e.FindSpell("furion_sprout").IsInAbilityPhase
|| e.ClassID == ClassID.CDOTA_Unit_Hero_PhantomLancer && e.FindSpell("phantom_lancer_doppelwalk").IsInAbilityPhase
//break special (1 hex, 2 cyclone)
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Riki && me.Modifiers.Any(y => y.Name == "modifier_riki_smoke_screen")
|| e.ClassID == ClassID.CDOTA_Unit_Hero_SpiritBreaker && e.Modifiers.Any(y => y.Name == "modifier_spirit_breaker_charge_of_darkness")
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Phoenix && e.Modifiers.Any(y => y.Name == "modifier_phoenix_icarus_dive")
|| e.ClassID == ClassID.CDOTA_Unit_Hero_Magnataur && e.Modifiers.Any(y => y.Name == "modifier_magnataur_skewer_movement")