コード例 #1
0
ファイル: Teemo.cs プロジェクト: q51251/Tc_SDKexAIO
        private static void OnAction(object sender, OrbwalkingActionArgs args)
        {
            try
            {
                var ComboQ  = Menu["Q"]["ComboQ"].GetValue <MenuBool>();
                var HarassQ = Menu["Q"]["HarassQ"].GetValue <MenuBool>();
                var ADQ     = Menu["Q"]["ADQ"].GetValue <MenuBool>();
                var CheckQA = Menu["Q"]["CheckAA"].GetValue <MenuBool>();

                if (args.Type == OrbwalkingType.AfterAttack)
                {
                    var QTarget = GetTarget(680, Q.DamageType);

                    var Attack = GetAttackRange(QTarget);

                    if (QTarget != null && Combo && ComboQ)
                    {
                        if (CheckQA)
                        {
                            if (ADQ && Marksman.Contains(QTarget.CharData.BaseSkinName) && Q.IsReady() && Q.IsInRange(QTarget, -170))
                            {
                                Q.Cast(QTarget);
                            }
                            else if (Q.IsReady() && Q.IsInRange(QTarget, -100))
                            {
                                Q.Cast(QTarget);
                            }
                        }
                        else if (ADQ && Marksman.Contains(QTarget.CharData.BaseSkinName) && Q.IsReady() && Q.IsInRange(QTarget))
                        {
                            Q.Cast(QTarget);
                        }
                        else if (ADQ && Q.IsReady() && Q.IsInRange(QTarget))
                        {
                            Q.Cast(QTarget);
                        }
                    }
                    if (QTarget != null && Harass && HarassQ)
                    {
                        if (CheckQA)
                        {
                            if (Q.IsReady() && Q.IsInRange(QTarget, -70))
                            {
                                Q.Cast(QTarget);
                            }
                        }
                        else if (Q.IsReady() && Q.IsReady() && Q.IsInRange(QTarget))
                        {
                            Q.Cast(QTarget);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error In OnAction" + ex);
            }
        }
コード例 #2
0
        public override bool OnEquip(Mobile from)
        {
            if (from is Player)
            {
                Marksman mm = Perk.GetByType <Marksman>((Player)from);

                if (mm != null && mm.LongShot() == true)
                {
                    this.MaxRange  += 3;
                    mm.BowConverted = true;
                }
            }

            return(base.OnEquip(from));
        }
コード例 #3
0
ファイル: Tristana.cs プロジェクト: Deprive/Private
        public override void Orbwalking_BeforeAttack(Marksman.Utils.Orbwalking.BeforeAttackEventArgs args)
        {
            if (GetValue<bool>("Misc.UseQ.Inhibitor") && args.Target is Obj_BarracksDampener && Q.IsReady())
            {
                if (((Obj_BarracksDampener) args.Target).Health >= Player.TotalAttackDamage*3)
                {
                    Q.Cast();
                }
            }

            if (GetValue<bool>("Misc.UseQ.Nexus") && args.Target is Obj_HQ && Q.IsReady())
            {
                Q.Cast();
            }

            var unit = args.Target as Obj_AI_Turret;
            if (unit != null)
            {
                if (GetValue<bool>("UseEM") && E.IsReady())
                {
                    if (((Obj_AI_Turret) args.Target).Health >= Player.TotalAttackDamage*3)
                    {
                        E.CastOnUnit(unit);
                    }
                }

                if (GetValue<bool>("Misc.UseQ.Turret") && Q.IsReady())
                {
                    if (((Obj_AI_Turret) args.Target).Health >= Player.TotalAttackDamage*3)
                    {
                        Q.Cast();
                    }
                }
            }
            if (args.Target is Obj_AI_Hero)
            {
                var t = args.Target as Obj_AI_Hero;
                if (t.IsValidTarget(Marksman.Utils.Orbwalking.GetRealAutoAttackRange(null)) && ComboActive)
                {
                    var useQ = Q.IsReady() && GetValue<bool>("UseQC");
                    if (useQ)
                        Q.CastOnUnit(Player);
                }
            }
        }
コード例 #4
0
        public override void OnRemoved(IEntity parent)
        {
            if (parent is Player)
            {
                Marksman mm = Perk.GetByType <Marksman>((Player)parent);

                if (mm != null && mm.LongShot() == true)
                {
                    if (mm.BowConverted)
                    {
                        this.MaxRange  -= 3;
                        mm.BowConverted = false;
                    }
                }
            }

            base.OnRemoved(parent);
        }
コード例 #5
0
        public override void OnHit(Mobile attacker, Mobile defender, double damageBonus)
        {
            if (attacker.Player && !defender.Player && (defender.Body.IsAnimal || defender.Body.IsMonster) && 0.4 >= Utility.RandomDouble())
            {
                defender.AddToBackpack(Ammo);
            }

            if (attacker.Player)
            {
                Marksman mm = Perk.GetByType <Marksman>((Player)attacker);
                if (mm != null)
                {
                    mm.WoundingShot(attacker, defender);
                }
            }

            base.OnHit(attacker, defender, damageBonus);
        }
コード例 #6
0
        private static void OnAction(object sender, OrbwalkingActionArgs args)
        {
            if (args.Type == OrbwalkingType.AfterAttack)
            {
                var Target = GetTarget(Q.Range, Q.DamageType);

                if (Variables.Orbwalker.ActiveMode == OrbwalkingMode.Combo)
                {
                    if (Target != null && Menu["R"]["RAD"].GetValue <MenuBool>())
                    {
                        if (Marksman.Contains(Target.CharData.BaseSkinName) && Q.IsReady() && R.IsReady() && R.IsInRange(Target))
                        {
                            R.Cast(Target);
                            Q.Cast(Target);
                        }
                    }
                }
            }
        }
コード例 #7
0
        public static Obj_AI_Base GetCondemnTarget(Vector3 fromPosition)
        {
            switch (MenuExtensions.GetItemValue <StringList>("dz191.vhr.misc.condemn.condemnmethod").SelectedIndex)
            {
            case 0:
                //VH Revolution
                return(VHRevolution.GetTarget(fromPosition));

            case 1:
                //VH Reborn
                return(VHReborn.GetTarget(fromPosition));

            case 2:
                //Marksman / Gosu
                return(Marksman.GetTarget(fromPosition));

            case 3:
                //Shine#
                return(Shine.GetTarget(fromPosition));
            }
            return(null);
        }
コード例 #8
0
ファイル: Sivir.cs プロジェクト: Deprive/Private
        public override void Orbwalking_BeforeAttack(Marksman.Utils.Orbwalking.BeforeAttackEventArgs args)
        {
            if (!W.IsReady())
            {
                return;
            }

            if (GetValue<bool>("Misc.UseW.Inhibitor") && args.Target is Obj_BarracksDampener)
            {
                W.Cast();
            }

            if (GetValue<bool>("Misc.UseW.Nexus") && args.Target is Obj_HQ)
            {
                W.Cast();
            }

            if (GetValue<bool>("Misc.UseW.Turret") && args.Target is Obj_AI_Turret)
            {
                W.Cast();
            }
        }
コード例 #9
0
ファイル: CondemnLogic.cs プロジェクト: lightduy94/PortAIO-2
        public static Obj_AI_Base GetCondemnTarget(Vector3 fromPosition)
        {
            switch (MenuGenerator.miscMenu["dz191.vhr.misc.condemn.condemnmethod"].Cast <ComboBox>().CurrentValue)
            {
            case 0:
                //VH Revolution
                return(VHRevolution.GetTarget(fromPosition));

            case 1:
                //VH Reborn
                return(VHReborn.GetTarget(fromPosition));

            case 2:
                //Marksman / Gosu
                return(Marksman.GetTarget(fromPosition));

            case 3:
                //Shine#
                return(Shine.GetTarget(fromPosition));
            }
            return(null);
        }
コード例 #10
0
        public override TimeSpan OnSwing(Mobile attacker, Mobile defender)
        {
            WeaponAbility a = WeaponAbility.GetCurrentAbility(attacker);

            if (this.Parent is Player)
            {
                Marksman mm = Perk.GetByType <Marksman>((Player)this.Parent);

                if (mm != null && mm.RunAndGun())
                {
                    bool canSwing = true;

                    if (Core.AOS)
                    {
                        canSwing = (!attacker.Paralyzed && !attacker.Frozen);

                        if (canSwing)
                        {
                            Spell sp = attacker.Spell as Spell;

                            canSwing = (sp == null || !sp.IsCasting || !sp.BlocksMovement);
                        }
                    }

                    if (canSwing && attacker.HarmfulCheck(defender))
                    {
                        attacker.DisruptiveAction();
                        attacker.Send(new Swing(0, attacker, defender));

                        Item weapon = this as BaseRanged;

                        if (weapon != null)
                        {
                            if (((Player)this.Parent).Stam < (int)(((weapon.Weight + 2) / 2) + 3))
                            {
                                canSwing = false;
                                ((Player)this.Parent).SendMessage("You do not have the stamina to draw your bow.");
                            }
                            else
                            {
                                ((Player)this.Parent).Stam -= (int)(((weapon.Weight + 2) / 2) + 3);
                            }
                        }

                        if (OnFired(attacker, defender))
                        {
                            if (CheckHit(attacker, defender))
                            {
                                OnHit(attacker, defender);
                            }
                            else
                            {
                                OnMiss(attacker, defender);
                            }
                        }
                    }

                    attacker.RevealingAction();

                    return(GetDelay(attacker));
                }
            }

            // Make sure we've been standing still for .25/.5/1 second depending on Era
            if (DateTime.Now > (attacker.LastMoveTime + TimeSpan.FromSeconds(Core.SE ? 0.25 : (Core.AOS ? 0.5 : 1.0))) || (Core.AOS && WeaponAbility.GetCurrentAbility(attacker) is MovingShot))
            {
                bool canSwing = true;

                if (Core.AOS)
                {
                    canSwing = (!attacker.Paralyzed && !attacker.Frozen);

                    if (canSwing)
                    {
                        Spell sp = attacker.Spell as Spell;

                        canSwing = (sp == null || !sp.IsCasting || !sp.BlocksMovement);
                    }
                }

                if (canSwing && attacker.HarmfulCheck(defender))
                {
                    attacker.DisruptiveAction();
                    attacker.Send(new Swing(0, attacker, defender));

                    Item weapon = this as BaseRanged;


                    if (Parent is Player)
                    {
                        if (weapon != null)
                        {
                            if (((Player)this.Parent).Stam < (int)(((weapon.Weight + 2) / 2) + 3))
                            {
                                canSwing = false;
                                ((Player)this.Parent).SendMessage("You do not have the stamina to draw your bow.");
                            }
                            else
                            {
                                ((Player)this.Parent).Stam -= (int)(((weapon.Weight + 2) / 2) + 3);
                            }
                        }
                    }

                    if (OnFired(attacker, defender))
                    {
                        if (CheckHit(attacker, defender))
                        {
                            OnHit(attacker, defender);
                        }
                        else
                        {
                            OnMiss(attacker, defender);
                        }
                    }
                }

                attacker.RevealingAction();

                return(GetDelay(attacker));
            }
            else
            {
                attacker.RevealingAction();

                return(TimeSpan.FromSeconds(0.25));
            }
        }
コード例 #11
0
ファイル: Varus.cs プロジェクト: Deprive/Private
 public override void Orbwalking_BeforeAttack(Marksman.Utils.Orbwalking.BeforeAttackEventArgs args)
 {
     args.Process = !Q.IsCharging;
 }
コード例 #12
0
ファイル: Kindred.cs プロジェクト: Deprive/Private
 public override void Orbwalking_BeforeAttack(Marksman.Utils.Orbwalking.BeforeAttackEventArgs args)
 {
     foreach (
         var target in
             HeroManager.Enemies.Where(
                 e =>
                     e.IsValid && e.Distance(ObjectManager.Player) < Marksman.Utils.Orbwalking.GetRealAutoAttackRange(null) + 65 &&
                     e.IsVisible).Where(target => target.HasBuff("kindredcharge")))
     {
         Orbwalker.ForceTarget(target);
     }
 }