I wasn't trying to discourage you from playing with the source, that's what it's there for - just be aware the patches it applies will get you banned (or just kicked?) when warden scans it
I wasn't trying to discourage you from playing with the source, that's what it's there for - just be aware the patches it applies will get you banned (or just kicked?) when warden scans it
Received a couple of pm's, so...
Find this, and anything else that uses the same byte array,
and replace it with,Code:internal static readonly byte[] EndSceneOriginal = new byte[5] { 0x8B, 0xFF, 0x55, 0x8B, 0xEC };
Pulled this from a windows 8 VM, hope its the same for 8.1 or even 10...Code:internal static readonly byte[] EndSceneOriginal = new byte[5] { 0x6A, 0x14, 0xB8, 0x0C, 0x9A };
Or just remove the check since it likely serves no purpose.
LF someone to add something to this, or modify it (or simply re-code me a new peice of software). I'll pay well, PM me for more information
Can someone give an example for a CustomClass to use the grinding feature of the bot?
To be more precise I need the file the bot requests when wanting to start grinding with a class (mage, etc).
Last edited by Silbi; 05-28-2015 at 02:29 PM.
The template is essentially in the source under custom classes but here is an example. Place the files in release/CustomClasses folder
This will not run, it has functions not included in the bot source posted in this thread
Code:using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using BotTemplate.Engines.CustomClass; namespace CCs { public class Rogue : CustomClass { public override byte DesignedForClass { get { return 4;//Class number (1-9) } } public override string Name { get { return "Rogue"; } } public override void Fight() { int Energy = (int)this.playerEnergy; int ComboPoint = this.ComboPoints; Attack(); if (this.TotalAdds >= 2) { if(this.IsReady("Adrenaline Rush")){ this.Cast("Adrenaline Rush", false); } if (this.IsReady("Blood Fury")){ this.Cast("Blood Fury", false); } if(Energy >= 25 && this.IsReady("Blade Flurry")){ this.Cast("Blade Flurry", false); } if (this.IsReady("Evasion")) { this.Cast("Evasion", false); } } if (Energy <= 20) { return; } if (Energy >= 35) { if (this.shouldWeEviscerate() || ComboPoint == 5) { this.Cast("Eviscerate", false); } } if (Energy >= 25) { if ((!this.PlayerHasBuff("Slice and Dice") || this.getSliceAndDiceDuration() <= 2.0) && !this.shouldWeEviscerate() && ComboPoint > 0) { this.Cast("Slice and Dice", false); } else { if (Energy >= 40) { this.Cast("Sinister Strike", false); } } } } public override bool BuffRoutine() { if (ItemCount("Instant Poison V") != 0) //bugged? { if (!this.IsMainHandEnchanted()) { this.ApplyMainhand("Instant Poison V"); System.Threading.Thread.Sleep(4000); return false; } if (!this.IsOffHandEnchanted()) { this.ApplyOffhand("Instant Poison V"); System.Threading.Thread.Sleep(4000); return false; } return true; } return true; } }
But on ejection the game would crash, so you would also need to patch that... Not like thats hard or a bad idea... If they understood what was going on the logical simple fix would be to remove the check, but they dont, so they base their actions off who gives the most information. You know, something simple to start with, like an array to search for, a concept is just to complex They are not ignoring your post out of spite, they just dont understand.
I get
upon attempting to Attach in the output.A first chance exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll
Thanks for the upload though.
On this same particular client i'm using I also would get ERROR_ACCESS_DENIED when I tried to OpenProcess on the client in C++ with (PROCESS_VM_READ|PROCESS_VM_WRITE), but I could open the process with PROCESS_QUERY_INFORMATION. Any ideas on how I can bypass this with either your C# solution or in c++?
It would be awesome if someone would read how I said you can remove that check and you don't need the right values.