Hello all, I decided I'd share something I put together to verify that I have the object manager reading correctly.
For those of you who are scared of the wall of text, here's the short version: scroll down to see picture of radar, if interested, download project, marry it with Seifer's BlackRain, done. The rest get to keep reading.
I am intending this for programmers who are new to C# (and therefore Visual Studio) and/or memory reading. It is not a finished product, rather, it should be a good starting point for those who want to modify it to fit their needs. Hopefully the way it is coded makes that easy.
Admittedly, after writing the steps, a non-programmer should be able to get it working even though I still hold to writing this for programmers who are new to C# (but NOT new to programming), the IDE (Visual C#) and/or memory reading to give them a start. As a reminder, be sure you know the Memory Editing Section Rules before posting.
The steps to get this working are as follows:
1. Download and install Microsoft Visual C# 2010 Express
2. You will need an SVN client, if you don't already have a favorite, then I would suggest using TortoiseSVN for this example.
3. Download and unzip the file in your project folder of choice.
4. Get the BlackRain codebase .
right-click in your project folder (that you created in step 3) and choose SVN Checkout. In the window that pops up, put in the "URL of repository" (found on the BlackRain Google Code web site), change the Checkout directory to be the root of your project folder (see pic) and hit OK.
You'll get a requestor asking if you are sure, and it will complain that the folder is not empty (pic again), hit Yes.
Afterwards, you'll get pretty green and blue icons on your regular icons (see 3rd pic)
You also need a ZIP file from the same google code site that contains the needed dll files, BlackMagic and fasmdll_managed (BlackRain 1.3.0.1 RC1.zip at time of writing). Unzip these 2 files into the BlackRain folder that was created. Now your BlackRain directory should look like the following (pic):
At this point, double click on the .sln file and open up the project in Visual C# 2010. If Visual C# doesn't come up as administrator (look at the title bar, it will have "WindowsFormsApplication1 - Microsoft Visual C# 2010 (Administrator)" in it. If it doesn't then you might have to open up Visual C# by itself first by right clicking on the launching icon and choosing "Run as Administrator" and then open up the project from File -> Open Project and navigating to the .sln file manually.
On the right side in the Solution Explorer you should see the 2 projects (BlackRain and WindowsFormsApplication1).
Go to BlackRain and right-click on references and choose Add Reference then Browse and find BlackMagic.dll, select it and hit ok. Do the same for fasmdll_managed.dll. You might also have to do the same for WindowsFormsApplication1.
4a. Update any offsets.
Open up Offsets.cs in the BlackMagic project and double click on it. This is where all the offsets are.
At this point you should be able to find a post that should detail out some offsets for you to play around with, replace old ones, or add new ones to your liking. Typically posts that contain offsets are labeled as "Info Dump Thread". The post is also generally either a sticky or it is a recent post. The current version of BlackRain (at least at time of writing) doesn't have the correct offsets for the current version of WoW so you have to swap them out with current ones. Current version right now is 4.0.3.13329.
The one group of offsets that might give you the biggest problem is "public enum ObjectManager" because of the differences in names (as shown in comments below) so I'll provide it.
replace all the offsets you can find in Offsets.cs with the ones in the current postCode:// 4.0.3.13329 public enum ObjectManager { Tls = 0x8B3F78, // clientConnection CurMgr = 0x462C, // objectManager LocalGuid = 0xB8, FirstObject = 0xB4, NextObject = 0x3C, }
After you are through with all your offsets, hit F6 (builds it) and it will show you any errors. I'm going to assume you can take it from here. I had to comment out Guild in WowCorpse and then there was another error that just disappeared.
5. start up your WoW client and log in
6. start up your newly created project (F5 or Ctrl+F5 will start it - look at the Debug menu for those commands)
7. watch in wonder at the pretty triangles that move without your intervention
full screenshot
As you can see from the screenshot, the final product is a little large for those of you still stuck on small screens, and I am being liberal with space at the bottom there. That was because I was putting in extra stuff that I was playing around with like only showing other players vs. NPCs (via a checkbox/toggle), etc. I'm leaving it and not resizing it because everybody's monitors are different sizes and configurations (multiple monitors).
Other stuff:
I have been a programmer for a while, I just haven't ever programmed in C# before this so if there are veterans that code in C# for a living and want to point out anything that looks really bad, I'm all ears and would re-upload the code with changes depending on the fix.
I also want to point out the WowXXXUtils classes, I know, its a bit weird. This is because I like objects to describe themselves but I wanted to keep Seifer's BlackRain codebase untouched (except for offsets) so I settled for a sort of inheritance.
Credits go to:
Seifer - for BlackRain
Shynd - for BlackMagic
jbrauman - his radar example
Hope you enjoy!