// do1 - shield do2 - dispell do3 - abolish do4 - flash heal do5 - shadowform public void Do(ThreadSubscribersForThreat sbscr, bool under_attack, bool to_dispell, bool to_abolish_disease, bool assist) { toAssaultBotMsg msg = new toAssaultBotMsg(); if (GCD == 0) { for (int i = 0; i < Party.Players.Length; i++) { if (party_data.TryGetValue(Party.Players[i], out member)) { if (to_dispell && toPurify(MagicToDispellArray, member.buff_arr)) { msg.to_do_code = Request.do3; msg.player_id = i; SetGCD(); sw.WriteLine("Dispell "+Convert.ToString(i)); break; } if (to_abolish_disease && toPurify(DiseaseToDispellArray, member.buff_arr) && member.AbolishDisease == 0) { msg.to_do_code = Request.do2; msg.player_id = i; member.SetAbolishDisease(); SetGCD(); sw.WriteLine("AbolishDisease " + Convert.ToString(i)); break; } if (under_attack && assist) { if (i == 0 && member.hp > member.max_hp * 0.66) to_heal = false; if (i == 0 && member.hp < member.max_hp * 0.33) { to_heal = true; tmp_to_heal = true; } if (to_heal == false && tmp_to_heal == true) { msg.to_do_code = Request.do5; tmp_to_heal = false; SetGCD(); break; } if (member.hp < member.max_hp * 0.40 && ShieldCD == 0 && member.Shield == 0 && member.hp > 0) { msg.to_do_code = Request.do1; msg.player_id = i; member.SetShield(); SetGCD(); ShieldCD = 4000 + delay; break; } if (to_heal) { msg.to_do_code = Request.do4; msg.player_id = 0; SetGCD(); break; } } } } } foreach (string item in Party.Players) { WowForPartyMemberHealerCD player_data; if(party_data.TryGetValue(item,out player_data)) { if (player_data.Shield < 0) player_data.Shield = 0; else player_data.Shield -= delay; if (player_data.AbolishDisease < 0) player_data.AbolishDisease = 0; else player_data.AbolishDisease -= delay; } } CDdec(); msg.under_attack = under_attack; sbscr.Send(msg); }
// do1 - dispell curse public void Do(ThreadSubscribersForThreat sbscr, bool under_attack, bool to_dispell_curse) { WowForPartyMemberHealerCD member; toAssaultBotMsg msg = new toAssaultBotMsg(); if (GCD == 0) { for (int i = 0; i < Party.Players.Length; i++) { if (party_data.TryGetValue(Party.Players[i], out member)) { if (to_dispell_curse && toPurify(CurseToDispellArray, member.buff_arr)) { msg.to_do_code = Request.do1; msg.player_id = i; SetGCD(); sw.WriteLine("Curse " + Convert.ToString(i)); break; } } } } CDdec(); msg.under_attack = under_attack; sbscr.Send(msg); }
public void Send(toAssaultBotMsg msg) { bool conn=false; Converter.CodeAndSend<toAssaultBotMsg>(handle, msg,ref conn, client_packet_size); }
void Publish() { toAssaultBotMsg default_msg = new toAssaultBotMsg(); while (working.value) { default_msg.under_attack = false; foreach (WoWLivingObj item in party_data.Values) { if (item.under_attack) { default_msg.under_attack = true; break; } } for (int i = 0; i < subs_arr.Length; i++) { if (subs_arr[i] != null && subs_arr[i].IsAlive()) { if (subs_arr[i].name == "Lichinkin") priest.Do(subs_arr[i], default_msg.under_attack, DispellMagic.value, AbolishDisease.value, PriestHealAssist.value); else if (subs_arr[i].name == "Format") mage.Do(subs_arr[i], default_msg.under_attack, DispellCurse.value); else subs_arr[i].Send(default_msg); } } Thread.Sleep(delay); } }
void Recieve() { bool conn=false; int bad_packets=0; toAssaultBotMsg msg = new toAssaultBotMsg(); while (working) { try { msg = Converter.RecieveAndDecode<toAssaultBotMsg>(Socket_reciever,ref conn,ref bad_packets,packet_size); threat = msg.under_attack; if (msg.to_do_code != Request.DoNothing) { to_do.player_id = msg.player_id; to_do.to_do_code = msg.to_do_code; } } catch { } } }