Exemple #1
0
        bool PartyHeal(WowForPartyMemberHealerCD obj)
        {
            int ID = GetPlayerObjID(obj);

            if (obj.hp > 0)
            {
                if (threat)
                {
                    if (obj.hp <= obj.max_hp * 0.95 && obj.hp > obj.max_hp * 0.33 && obj.HoT == 0)
                    {
                        obj.SetHoT();
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D3);    // SendKeys.Send("+{3}");
                        sk.SendKey(KeyChoice(ID + 3));              //SendKeys.Send(Convert.ToString(ID + 3));
                        sk.SendKey(Keys.D2);                        //SendKeys.Send("2");
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D2);    //SendKeys.Send("+{2}");
                        return true;
                    }

                    if (obj.hp <= obj.max_hp * 0.33 && self.NaturesSwiftness == 0)
                    {
                        sk.SendKey(Keys.D4);
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D3);    // SendKeys.Send("+{3}");
                        sk.SendKey(KeyChoice(ID + 3));
                        sk.SendKey(Keys.D1);
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D2);    // SendKeys.Send("+{2}");

                        self.SetRegrowth();
                        self.SetNaturesSwiftness();
                        self.SetGCD(1500,true);
                        return true;
                    }

                    if ((obj.hp <= obj.max_hp * 0.85) && obj.Regrowth == 0)
                    {
                        obj.SetRegrowth();
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D3);    // SendKeys.Send("+{3}");
                        sk.SendKey(KeyChoice(ID + 3));              // SendKeys.Send(Convert.ToString(ID + 3));
                        sk.SendKey(Keys.D1);                        // SendKeys.Send("1");
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D2);    //SendKeys.Send("+{2}");
                        return true;
                    }

                    if (obj.name=="Йогсоттот" && (obj.hp <= obj.max_hp * 0.90) && obj.Lifebloom < 1000)
                    {
                        obj.SetLifebloom();
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D3);
                        sk.SendKey(Keys.D3);
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D2);
                        sk.SendKey(Keys.D6);
                        return true;
                    }

                    if ((obj.hp <= obj.max_hp * 0.66) && self.SwiftMend == 0 && (obj.Regrowth > 0 || obj.HoT > 0))
                    {
                        if (obj.HoT > obj.Regrowth)
                            obj.HoT = 0;
                        else
                            obj.Regrowth = 0;

                        self.SetSwiftMend();

                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D3);    // SendKeys.Send("+{3}");
                        sk.SendKey(KeyChoice(ID + 3));              // SendKeys.Send(Convert.ToString(ID + 3));
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D2);
                        sk.SendKey(Keys.D3);
                        return true;
                    }

                    if (obj.hp <= obj.max_hp * 0.83)
                    {
                        self.SetHeal();
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D3);    //  SendKeys.Send("+{3}");
                        sk.SendKey(KeyChoice(ID + 3));              //SendKeys.Send(Convert.ToString(ID + 3));
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D2);    // SendKeys.Send("+{2}");
                        sk.SendKey(Keys.D2);                        //SendKeys.Send("2");
                        return true;
                    }
                }
                else
                {
                    if (obj.hp <= obj.max_hp * 0.95 && obj.HoT == 0)
                    {
                        obj.SetHoT();
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D3);    // SendKeys.Send("+{3}");
                        sk.SendKey(KeyChoice(ID + 3));              //SendKeys.Send(Convert.ToString(ID + 3));
                        sk.SendKey(Keys.D2);                        // SendKeys.Send("2");
                        sk.SendTwoKeys(Keys.LShiftKey, Keys.D2);    //SendKeys.Send("+{2}");
                        return true;
                    }
                }
            }
            return false;
        }
Exemple #2
0
 int GetPlayerObjID(WowForPartyMemberHealerCD obj)
 {
     for (int i = 0; i < PartyToHeal.Players.Length; i++)
         if (PartyToHeal.Players[i] == obj.name)
             return i;
     return -1;
 }
Exemple #3
0
        bool GetMinHpPlayer(out WowForPartyMemberHealerCD player_data)
        {
            int min_percent_hp=100;
            WowForPartyMemberHealerCD min_percent_hp_player_data= null;
            WowForPartyMemberHealerCD tmp = null;
            bool has_player = false;
            int tmp_percent_hp=0;

            foreach (string item in PartyToHeal.Players)
            {
                if (party_data.TryGetValue(item, out tmp) && tmp.max_hp!=0)
                {
                    tmp_percent_hp = (int)(tmp.hp * 100 / tmp.max_hp);

                    if (tmp_percent_hp < min_percent_hp)
                    {
                        min_percent_hp = tmp_percent_hp;
                        min_percent_hp_player_data = tmp;
                    }
                }
                else
                    continue;
            }

            if(min_percent_hp<100)
                has_player = true;

            player_data = min_percent_hp_player_data;

            return has_player;
        }
Exemple #4
0
 void CopyData(WoWLivingObj inp, WowForPartyMemberHealerCD outpt)
 {
     outpt.buff_arr = inp.buff_arr;
     outpt.name = inp.name;
     outpt.mp = inp.mp;
     outpt.max_mp = inp.max_mp;
     outpt.hp = inp.hp;
     outpt.max_hp = inp.max_hp;
     outpt.under_attack = inp.under_attack;
     outpt.type = inp.type;
     outpt.GUID = inp.GUID;
 }
Exemple #5
0
        bool CopyData(WoWLivingObj inp, WowForPartyMemberHealerCD outpt)
        {
            if (inp == null || inp.name == null)
                return false;

            outpt.name = inp.name;
            outpt.buff_arr = inp.buff_arr;
            outpt.mp = inp.mp;
            outpt.max_mp = inp.max_mp;
            outpt.hp = inp.hp;
            outpt.max_hp = inp.max_hp;
            outpt.under_attack = inp.under_attack;
            outpt.type = inp.type;
            outpt.GUID = inp.GUID;
            return true;
        }
Exemple #6
0
        void ConnectionHandler()
        {
            WowForPartyMemberHealerCD obj = new WowForPartyMemberHealerCD();
            bool end_of_transmition = false;

            while (!CopyData(Converter.RecieveAndDecode<WoWLivingObj>(handle, ref end_of_transmition, ref bad_packets, client_packet_size), obj)) ;

            lock (party_data)
            {
                party_data.Add(obj.name, obj);
            }
            PlayerName = obj.name;

            while (working.value)
            {
                CopyData(Converter.RecieveAndDecode<WoWLivingObj>(handle, ref end_of_transmition, ref bad_packets, client_packet_size), obj);

                if (end_of_transmition)
                {
                    lock (party_data)
                    {
                        party_data.Remove(PlayerName);
                    }
                    break;
                }
            }

            handle.Close();
            thread_flags[thread_num].perem = 0;
        }