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; }
int GetPlayerObjID(WowForPartyMemberHealerCD obj) { for (int i = 0; i < PartyToHeal.Players.Length; i++) if (PartyToHeal.Players[i] == obj.name) return i; return -1; }
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; }
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; }
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; }
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; }