コード例 #1
0
ファイル: WowControl.cs プロジェクト: Bia10/clrn
        public static int GetClosestTarget(Memory.Memory.ObjectInfo[] Objects, String Faction, int IsAlive, int Range, int Type)
        {
            double MinRange           = 10000;
            int    ClosestTargetIndex = 0;

            for (int i = 0; i < Objects.Length; i++)
            {
                if (WowControl.CheckForBad(Objects[i].GUID) == false)
                {
                    if ((Objects[i].Type == Type) & (Objects[i].Faction == Faction) & (Objects[i].Health >= IsAlive) & (Objects[i].Level > 1))
                    {
                        if (CheckPoint(Objects[i].X, Objects[i].Y, Objects[i].Z, Objects[0].X, Objects[0].Y, Objects[0].Z) < MinRange)
                        {
                            ClosestTargetIndex = i;
                            MinRange           = CheckPoint(Objects[i].X, Objects[i].Y, Objects[i].Z, Objects[0].X, Objects[0].Y, Objects[0].Z);
                        }
                    }
                }
            }
            if ((ClosestTargetIndex != 0) & (MinRange < Range))
            {
                return(ClosestTargetIndex);
            }
            else
            {
                return(0);
            }
        }
コード例 #2
0
        public static UInt64 CheckAbilityOptions(int AbilityIndex, Memory.Memory wow, String Type)
        {
            for (int Unit = 0; Unit < wow.Objects.Count; Unit++)
            {
                if (Type != "Bg")
                {
                    if ((WowControl.CheckForBad(wow.Objects[Unit].GUID) == false) & (wow.Objects[Unit].Health > 1))
                    {
                        switch (BindingsList[AbilityIndex].InCombat)
                        {
                        case 0:                                //Always
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;

                        case 1:                                //In combat
                            if (wow.Objects[0].IsInCombat != 1)
                            {
                                break;
                            }
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;

                        case 2:                                //Out of combat
                            if (wow.Objects[0].IsInCombat != 0)
                            {
                                break;
                            }
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;
                        }
                    }
                }
                else
                {
                    if ((WowControl.CheckForBad(wow.Objects[Unit].GUID) == false) & (wow.Objects[Unit].Health > 1) & (wow.Objects[Unit].Type == 4))
                    {
                        switch (BindingsList[AbilityIndex].InCombat)
                        {
                        case 0:                                //Always
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;

                        case 1:                                //In combat
                            if (wow.Objects[0].IsInCombat != 1)
                            {
                                break;
                            }
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;

                        case 2:                                //Out of combat
                            if (wow.Objects[0].IsInCombat != 0)
                            {
                                break;
                            }
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;
                        }
                    }
                }
            }
            return(0);
        }