コード例 #1
0
        private static void Obj_AI_Base_OnProcessAutoAttack(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs e)
        {
            //Ignore auto attacks happening too far away
            if (sender == null || !sender.IsValidTarget(4000, true) || sender is Obj_AI_Hero)
            {
                return;
            }

            //Only process for minion targets
            var targetM = e.Target as Obj_AI_Minion;

            if (targetM == null)
            {
                return;
            }


            AutoAttack attack;

            if (sender.IsMelee)
            {
                attack = new MeleeAttack(sender, targetM, 0);
            }

            else
            {
                attack = new RangedAttack(sender, targetM, 0);
            }

            Attacks.AddAttack(attack);
        }
コード例 #2
0
        private void GameObject_OnCreate(GameObject gsender)
        {
            var mc = gsender as MissileClient;

            if (mc == null || !mc.IsValid)
            {
                return;
            }

            var sender = mc.SpellCaster;
            var target = mc.Target;

            var targetBase = target as Obj_AI_Base;

            if (sender == null || targetBase == null || !sender.IsValid || !target.IsValid || target.IsDead ||
                sender.IsDead || sender.IsMe || sender.Distance(ObjectManager.GetLocalPlayer()) > 4000)
            {
                return;
            }


            var attack = new RangedAttack(sender, targetBase, mc, 0);

            Attacks.AddAttack(attack);
        }