Beispiel #1
0
        private static void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
        {
            if (args.Slot == SpellSlot.R && sender.Owner.IsMe && !getCheckBoxItem(rMenu, "preventRCast"))
            {
                var t = args.Target as AIHeroClient;
                if (t != null && t.Health > R.GetDamage(t))
                {
                    if (E.IsReady() && Player.Mana > RMANA + EMANA)
                    {
                        E.CastOnUnit(t);
                        args.Process = false;
                        return;
                    }

                    if (W.IsReady() && Player.Mana > RMANA + WMANA)
                    {
                        W.Cast(t.Position);
                        args.Process = false;
                        return;
                    }

                    if (Q.IsReady() && t.LSIsValidTarget(Q.Range) && Player.Mana > RMANA + QMANA)
                    {
                        Qr.Cast(t);
                        args.Process = false;
                        return;
                    }
                }

                if (R.IsReady() && t.LSIsValidTarget())
                {
                    Rtime = Game.Time;
                }
            }
        }
Beispiel #2
0
        private void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
        {
            if (args.Slot == SpellSlot.R)
            {
                var t = args.Target as AIHeroClient;
                if (t != null && t.Health - OktwCommon.GetIncomingDamage(t) > R.GetDamage(t) * 2.5)
                {
                    if (E.IsReady() && Player.Mana > RMANA + EMANA)
                    {
                        E.CastOnUnit(t);
                        args.Process = false;
                        return;
                    }

                    if (W.IsReady() && Player.Mana > RMANA + WMANA)
                    {
                        W.Cast(t.Position);
                        args.Process = false;
                        return;
                    }

                    if (Q.IsReady() && t.IsValidTarget(Q.Range) && Player.Mana > RMANA + QMANA)
                    {
                        Qr.Cast(t);
                        args.Process = false;
                        return;
                    }
                }
                if (R.IsReady() && t.IsValidTarget())
                {
                    Rtime = Game.Time;
                }
            }
        }
Beispiel #3
0
        private void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
        {
            if (args.Slot == SpellSlot.R)
            {
                var t = TargetSelector.GetTarget(R.Range - 20, TargetSelector.DamageType.Magical);

                if (E.IsReady() && t.IsValidTarget(E.Range) && Player.Mana > RMANA + EMANA)
                {
                    E.CastOnUnit(t);
                    args.Process = false;
                    return;
                }

                if (W.IsReady() && t.IsValidTarget(W.Range) && Player.Mana > RMANA + WMANA)
                {
                    W.Cast(t);
                    args.Process = false;
                    return;
                }

                if (Q.IsReady() && t.IsValidTarget(Q.Range) && Player.Mana > RMANA + QMANA)
                {
                    Qr.Cast(t);
                    args.Process = false;
                    return;
                }

                if (R.IsReady() && t.IsValidTarget())
                {
                    Rtime = Game.Time;
                }
            }
        }
Beispiel #4
0
        private void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
        {
            if (args.Slot == SpellSlot.R)
            {
                var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

                if (E.IsReady() && t.IsValidTarget() && Player.Mana > RMANA + EMANA)
                {
                    E.CastOnUnit(t);
                    args.Process = false;
                    return;
                }

                if (W.IsReady() && t.IsValidTarget() && Player.Mana > RMANA + WMANA)
                {
                    W.Cast(t.ServerPosition);
                    args.Process = false;
                    return;
                }

                if (Q.IsReady() && t.IsValidTarget() && Player.Mana > RMANA + QMANA)
                {
                    Qr.Cast(t);
                    args.Process = false;
                    return;
                }

                if (R.IsReady() && t.IsValidTarget())
                {
                    Utility.DelayAction.Add(50, () => Rtime = Game.Time);
                }
            }
        }
Beispiel #5
0
        private void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
        {
            if ((Player.IsChannelingImportantSpell() || Game.Time - Rtime < 0.5) && Game.Time - Rtime < 2.5)
            {
                OktwCommon.blockMove       = true;
                OktwCommon.blockAttack     = true;
                OktwCommon.blockSpells     = true;
                SebbyLib.Orbwalking.Attack = false;
                SebbyLib.Orbwalking.Move   = false;
                args.Process = false;
                return;
            }

            if (args.Slot == SpellSlot.R)
            {
                var t = TargetSelector.GetTarget(R.Range - 20, TargetSelector.DamageType.Magical);

                if (E.IsReady() && t.IsValidTarget(E.Range) && Player.Mana > RMANA + EMANA)
                {
                    E.CastOnUnit(t);
                    args.Process = false;
                    return;
                }

                if (W.IsReady() && t.IsValidTarget(W.Range) && Player.Mana > RMANA + WMANA)
                {
                    W.Cast(t);
                    args.Process = false;
                    return;
                }

                if (Q.IsReady() && t.IsValidTarget(Q.Range) && Player.Mana > RMANA + QMANA)
                {
                    Qr.Cast(t);
                    args.Process = false;
                    return;
                }

                if (R.IsReady() && t.IsValidTarget())
                {
                    Rtime = Game.Time;
                }
            }
        }