public bool IfCast(GameObject go) { if (go.HasBuff(this.ID)) { this.SendCast(); return true; } return false; }
public static void PrintStorageDescriptors(GameObject go) { Console.WriteLine("//////".PadRight(paddistance/2) + "Storage Printing START" +"//////".PadLeft(paddistance/2)); try { Console.WriteLine("ObjectStorage: ".PadRight(paddistance) + String.Format("0x{0:X}", go.DescriptorArrayAddress) ); } catch { Console.WriteLine("//////".PadRight(paddistance / 2) + "Storage Printing ERROR" + "//////".PadLeft(paddistance / 2)); } foreach (Constants.Const.descriptors enumValue in Enum.GetValues(typeof(Constants.Const.descriptors))) { try { if (enumValue.ToString().Contains("64")) { Console.WriteLine(enumValue.ToString().PadRight(paddistance) + string.Format("0x{0:X}", Program.wow.ReadUInt64(go.DescriptorArrayAddress + (uint)enumValue))); } else if (enumValue.ToString().Contains("8")){ byte asd = Program.wow.ReadByte(go.DescriptorArrayAddress + (uint)enumValue); Console.WriteLine(enumValue.ToString().PadRight(paddistance) + ((int)asd).ToString().PadRight(paddistance) + "0x{0:X}",(go.DescriptorArrayAddress + (uint)enumValue)); } else { Console.WriteLine(enumValue.ToString().PadRight(paddistance) + string.Format("{0}", Program.wow.ReadUInt(go.DescriptorArrayAddress + (uint)enumValue))); } } catch { Console.WriteLine("//////".PadRight(paddistance / 2) + "Storage Printing ERROR" + "//////".PadLeft(paddistance / 2)); } } Console.WriteLine("//////".PadRight(paddistance / 2) + "Storage Printing END" + "//////".PadLeft(paddistance / 2)); }
public override bool ReCast(GameObject go) { if (!go.HasBuff(cot) && !go.HasBuff(cote) && !go.HasBuff(cow) && !go.HasBuff(coe)) { this.SendCast(); return true; } else { return false; } }
public virtual bool ReCast(GameObject go) { uint SpellPending = Program.wow.ReadUInt((uint)Program.wow.MainModule.BaseAddress + (uint)Constants.Const.Globals.SpellIsPending); if (!go.HasBuff(this.ID) && SpellPending==0) { this.SendCast(); return true; } else { return false; } }
static void Main(string[] args) { //Open the proccess wow = new BlackMagic(); wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle(PROCESS_WINDOW_TITLE)); //Setup Object Manager and First object base address ObjMgrAddr = wow.ReadUInt(wow.ReadUInt((uint)wow.MainModule.BaseAddress + (uint)Constants.Const.ObjectManager.CurMgrPointer) + (uint)Constants.Const.ObjectManager.CurMgrOffset); FirstObject = new GameObject(wow.ReadUInt(ObjMgrAddr + (uint)Constants.Const.ObjectManager.FirstObject)); //Read TargetGUID from globals and find in the Object Manager //UInt64 CurrTargetGUID = wow.ReadUInt64((uint)wow.MainModule.BaseAddress + (uint)Const.Globals.CurrentTargetGUID); UInt64 CurrTargetGUID = wow.ReadUInt64((uint)wow.MainModule.BaseAddress + (uint)Constants.Const.Globals.CurrentTargetGUID); PlayerObject = new GameObject(wow.ReadUInt64((uint)wow.MainModule.BaseAddress + (uint)Constants.Const.Globals.PlayerGUID)); TargetObject = new GameObject(CurrTargetGUID); PlayerObject.Wowclass = wow.ReadByte(PlayerObject.DescriptorArrayAddress + (uint)Const.descriptors.Class8); System.Timers.Timer aTimer = new System.Timers.Timer(); aTimer.Interval = 100; if (PlayerObject.Wowclass == 9) { Console.WriteLine("Initiate Affliction Warlock DPS BOT v1.0"); aTimer.Elapsed += WarlockDPS.DpsEvent; } else if (PlayerObject.Wowclass == 11) { Console.WriteLine("Initiate Feral Druid DPS BOT v0.1"); aTimer.Elapsed += DruidDPS.DpsEvent; } aTimer.AutoReset = true; aTimer.Enabled = true; while (true) { switch (Console.ReadLine()) { case "stop": Console.WriteLine("STOP"); aTimer.Elapsed -= DruidDPS.DpsEvent; aTimer.Elapsed -= WarlockDPS.DpsEvent; aTimer.Elapsed -= PrinterEvent; break; case "printer": aTimer.Elapsed += PrinterEvent; break; case "start": if (PlayerObject.Wowclass == 9) { Console.WriteLine("Initiate Affliction Warlock DPS BOT v1.0"); aTimer.Elapsed += WarlockDPS.DpsEvent; } else if (PlayerObject.Wowclass == 11) { Console.WriteLine("Initiate Feral Druid DPS BOT v0.1"); aTimer.Elapsed += DruidDPS.DpsEvent; } break; } } }
public static void PrintGameObjectData(GameObject go) { Console.WriteLine("//////".PadRight(paddistance / 2) + "OBJECT Printing START" + "//////".PadLeft(paddistance / 2)); try { Console.WriteLine("BaseAddress: ".PadRight(paddistance) + String.Format("0x{0:X}", go.BaseAddress)); Console.WriteLine("StorageAddress: ".PadRight(paddistance) + String.Format("0x{0:X}", go.DescriptorArrayAddress)); Console.WriteLine("BuffAddress: ".PadRight(paddistance) + String.Format("0x{0:X}", go.BuffArrayAddress)); Console.WriteLine("BuffOffsetAddress: ".PadRight(paddistance) + String.Format("0x{0:X}", go.BuffOffsetArrayAddress)); Console.WriteLine("GUID: ".PadRight(paddistance) + String.Format("0x{0:X}", go.Guid)); } catch { Console.WriteLine("//////".PadRight(paddistance / 2) + "OBJECT Printing ERROR" + "//////".PadLeft(paddistance / 2)); } Console.WriteLine("//////".PadRight(paddistance / 2) + "OBJECT Printing END" + "//////".PadLeft(paddistance / 2)); }
public GameObject(UInt64 gid) { //Constructor from GUID this.Guid = gid; if (gid == 0) { //If GUID zero, return blank Object this.BaseAddress = 0; this.DescriptorArrayAddress = 0; this.BuffArrayAddress = 0; this.BuffOffsetArrayAddress = 0; this.MovementArrayAddress = 0; this.BuffIDs = new List<uint>(); return; } else { //Iterate through the objects (linked list) from first object till the GUID matches GameObject TempObject = new GameObject(); TempObject.BaseAddress = Program.FirstObject.BaseAddress; try { while (TempObject.BaseAddress != 0) { TempObject.Guid = Program.wow.ReadUInt64(TempObject.BaseAddress + (uint)Constants.Const.ObjectManager.LocalGUID); if (TempObject.Guid == this.guid) { this.BaseAddress = TempObject.BaseAddress; this.DescriptorArrayAddress = Program.wow.ReadUInt(this.BaseAddress + 0xC) + 0x10; this.BuffArrayAddress = Program.wow.ReadUInt(this.baseAddress + 0xe9c) + 0x4; this.BuffOffsetArrayAddress = this.BaseAddress + 0xe98; this.MovementArrayAddress = Program.wow.ReadUInt(this.BaseAddress + (uint)Const.Movement.Pointer)+(uint)Const.Movement.Offset; this.BuffIDs = new List<uint>(); return; } else { TempObject.BaseAddress = Program.wow.ReadUInt(TempObject.BaseAddress + (uint)Constants.Const.ObjectManager.NextObject); } } } catch { this.BaseAddress = 0; this.DescriptorArrayAddress = 0; this.buffArrayAddress = 0; this.BuffIDs = new List<uint>(); return; } } }
//private static void DpsEvent(Object source, System.Timers.ElapsedEventArgs e) { // UInt64 CurrTargetGUID = Program.wow.ReadUInt64((uint)wow.MainModule.BaseAddress + (uint)Constants.Const.Globals.CurrentTargetGUID); // PlayerObject.Refresh(); // if(PlayerObject.Healthpercent>=80 && PlayerObject.Manapercent <= 50) { // WarlockDPS.LifeTap.SendCast(); // } // if (CurrTargetGUID != 0) { // TargetObject = new GameObject(CurrTargetGUID); // TargetObject.RefreshBuffIDs(); // if (!WarlockDPS.Corruption.ReCast(TargetObject) && !WarlockDPS.BaneofAgony.ReCast(TargetObject) && !WarlockDPS.ShadowTrance.IfCast(PlayerObject)) { // if (!PlayerObject.IsMoving) { // if (!WarlockDPS.UnstableAffliction.ReCast(TargetObject) && !WarlockDPS.Haunt.ReCast(TargetObject)) { // WarlockDPS.DrainLife.ReCast(TargetObject); // } // } // else { // if (!WarlockDPS.CurseoftheElements.ReCast(TargetObject)) { // WarlockDPS.FellFlame.SendCast(); // } // } // } // } //} private static void PrinterEvent(Object source, System.Timers.ElapsedEventArgs e) { UInt64 CurrTargetGUID = Program.wow.ReadUInt64((uint)wow.MainModule.BaseAddress + (uint)Constants.Const.Globals.CurrentTargetGUID); if (CurrTargetGUID != 0) { TargetObject = new GameObject(CurrTargetGUID); TargetObject.RefreshBuffIDs(); Extractor.PrintBuffs(TargetObject); if (TargetObject.IsMoving) { Console.WriteLine("MOVING"); } } else { Console.WriteLine("No target"); } }
public static void PrintPointersStorage(GameObject go) { uint temp = 0; Console.WriteLine("Storage"); for (int i = 0; i < 10000; i++) { temp = Program.wow.ReadUInt(go.DescriptorArrayAddress + (uint)(i)); if (temp > 0x1c000000 && temp < 0x1d000000) { Console.WriteLine(String.Format("0x{0:X}", i) + " " + String.Format("0x{0:X}", temp)); } } }
public static void TopKek2(GameObject go1, GameObject go2) { uint temp1, temp2; for (int i = 0; i < 10000; i++) { temp1 = Program.wow.ReadUInt(go1.DescriptorArrayAddress + (uint)(i)); temp2 = Program.wow.ReadUInt(go2.DescriptorArrayAddress + (uint)(i)); if (go1.BuffArrayAddress - temp1 == go2.BuffArrayAddress - temp2) { Console.WriteLine(String.Format("Pointer: 0x{0:X}", i).PadRight(30) + String.Format("Offset: 0x{0:X}", go1.BuffArrayAddress - temp1)); } } }
public static void PrintPointers(GameObject go) { Console.Clear(); Console.WriteLine("0x{0:X}",go.BaseAddress); uint goal = 0x27050128; uint temp = 0; for (int i = 0; i < 10000; i++) { temp = Program.wow.ReadUInt(go.BaseAddress + (uint)(i)); if (temp > goal - 0x1000 && temp < goal) { Console.WriteLine(String.Format("0x{0:X}", i) + " " + String.Format("0x{0:X}", temp)); } //if (temp != 0) { // Console.WriteLine(String.Format("0x{0:X}", i) + " " + String.Format("0x{0:X}", temp)); //} } }
public static void PrintBuffs(GameObject go) { Console.WriteLine("TOP KEK"); foreach (uint s in go.BuffIDs) { Console.WriteLine(s + " " + s); } }