1. vb suxx
2. im pretty sure you can access dlls with vb :P
1. vb suxx
2. im pretty sure you can access dlls with vb :P
yeah umm.... what? lol
---------- Post added at 02:26 AM ---------- Previous post was at 12:56 AM ----------
ok guys, ive taken the time to find the addresses of X, Y, Z using cheat engine:
- X Pos = 277FF9D4
- Y Pos = 277FF9D0
- Z Pos = 277FF9D8
---------- Post added at 03:11 AM ---------- Previous post was at 02:26 AM ----------
also, for those of you who are on 3.3.3a
here is a simple program that has up-to-date xyz coord locations and name and realm locations:
Code:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Magic; using Microsoft.VisualBasic; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { timer1.Start(); } private void textBox1_TextChanged(object sender, EventArgs e) { BlackMagic wow = new BlackMagic(); wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //This Opens "World of Warcraft" window wow.WriteASCIIString(0xBB4428, textBox1.Text); } private void textBox2_TextChanged(object sender, EventArgs e) { BlackMagic wow = new BlackMagic(); wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //This Opens "World of Warcraft" window wow.WriteASCIIString(0x00BB44AE, textBox2.Text); } private void textBox3_TextChanged(object sender, EventArgs e) { BlackMagic wow = new BlackMagic(); wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //This Opens "World of Warcraft" window wow.WriteFloat(0x277FF9D4, float.Parse(textBox3.Text)); } private void textBox5_TextChanged(object sender, EventArgs e) { BlackMagic wow = new BlackMagic(); wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //This Opens "World of Warcraft" window wow.WriteFloat(0x277FF9D8, float.Parse(textBox5.Text)); } private void textBox4_TextChanged(object sender, EventArgs e) { BlackMagic wow = new BlackMagic(); wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //This Opens "World of Warcraft" window wow.WriteFloat(0x277FF9D0, float.Parse(textBox4.Text)); } private void timer1_Tick(object sender, EventArgs e) { BlackMagic wow = new BlackMagic(); //Create new function to open wow process wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //This Opens "World of Warcraft" window string playername = wow.ReadASCIIString(0xBB4428, 12); //reads player name string realm = wow.ReadASCIIString(0x00BB42AE, 30); //Reads Realm float playerx = wow.ReadFloat(0x277FF9D4); float playery = wow.ReadFloat(0x277FF9D0); float playerz = wow.ReadFloat(0x277FF9D8); textBox1.Text = playername; //writes to console to tell player name textBox2.Text = realm; label6.Text = Convert.ToString(playerx); label7.Text = Convert.ToString(playery); label8.Text = Convert.ToString(playerz); } } }
Check your offset...
Tip: I never accessed the localplayer by the more or less static address, but I think PlayerPointer in DrakeFish's dump will do the job for you.
that are the offsets.Code:PlayerPointer = 0xB366D0 X = 0x798, Y = 0x79C, Z = 0x7A0
Hey guys I am pretty new to memory edit, I have tried many times to find out the value to playerpos Can anyone help me please?
//Air0x
What's really funny about the post above is that it would appear the answer is directly above his request.
Hi, I know how to find playerbase and some simple values, like account name and character name, but I have problem finding numbers, such as player hp and level. I don't know what you have to add to playerbase to get these values and I get an error on every ReadUInt (example: uint Level = wow.ReadUInt(wow.ReadUInt(playerbase + 0x+ (0x35 * 4)); ). Adding those values doesn't return correct level - it just causes error. Also using addresses found on Cheat Engine cause error.
Is there some basic level guide somewhere about this? I know you all have been in the same situation at some point when you first started to do this stuff. I have tried to search for stuff but it has kinda failed.
it would help if you would give some error message. just saying it didn't work won't give us a chance to give you hints.
@dididii Your example should be uint Level = wow.ReadUInt(wow.ReadUInt(playerbase + 0x+ (0x36 * 4)); where the 0x36 value is from eUnitFields.UNIT_FIELD_LEVEL value given in http://www.mmowned.com/forums/world-...mp-thread.html Likewise, HP would be obtained by using the eUnitFields.UNIT_FIELD_HEALTH value (0x1
, etc.
Code:// Memory Editing Tutorial from http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/276015-tutorial-starting-wow-memory-reading-writing.html // Updated for 3.3.5.12340 // // NOTE 1: Click to Move must be enabled in the WoW user interface. // NOTE 2: Player must use Click to Move at least once before running this program otherwise toon will simply run without stopping. // using System; using System.Collections.Generic; using System.Linq; using System.Text; using Magic; namespace Memory_Editing_Tutorial__Console_App { class Program { // From eUnitFields on page http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/300463-wow-3-3-5-12340-info-dump-thread.html public enum UnitFields { Level = 0x36, Health = 0x18, Energy = 0x19, MaxHealth = 0x20, SummonedBy = 0xE, MaxEnergy = 0x21 } // From ClickToMove on page http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/300463-wow-3-3-5-12340-info-dump-thread.html public enum ClickToMove { CTM_Base = 0x00CA11D8, CTM_X = CTM_Base + 0x8C, CTM_Y = CTM_Base + 0x90, CTM_Z = CTM_Base + 0x94, CTM_Action = CTM_Base + 0x1C } // Form http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/298310-3-3-5-offsets-2.html const UInt32 STATIC_PLAYER = 0xCD87A8; // PlayerBaseStatic, Playerbase, etc. const UInt32 PlayerBaseOffset1 = 0x34; // const UInt32 PlayerBaseOffset2 = 0x24; // const UInt32 XOffset = 0x798; // PlayerX const UInt32 YOffset = 0x79c; // PlayerY const UInt32 ZOffset = 0x7a0; // PlayerZ // const UInt32 RotationOffset = 0x7ab; // ROffset // From http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/298984-3-3-5a-12340-offsets.html const UInt32 STATIC_NAME = 0xC79D18; static void Main(string[] args) { BlackMagic wow = new BlackMagic(); //Create new function to open wow process wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //This Opens "World of Warcraft" window uint playerbase = wow.ReadUInt(wow.ReadUInt(wow.ReadUInt(STATIC_PLAYER) + PlayerBaseOffset1) + PlayerBaseOffset2); //this is the player base string playername = wow.ReadASCIIString(STATIC_NAME, 30); //reads player name uint Level = wow.ReadUInt(wow.ReadUInt(playerbase + 0x8) + ((uint)UnitFields.Level * 4)); // Reads players level uint Health = wow.ReadUInt(wow.ReadUInt(playerbase + 0x8) + ((uint)UnitFields.Health * 4)); // Reads players health Console.WriteLine("Player Name is: " + playername); //writes to console to tell player name Console.WriteLine("Player level is:" + Level); //writes to console to tell player level Console.WriteLine("Player health is:" + Health); //writes to console to tell player health float playerx = wow.ReadFloat(playerbase + XOffset); // Read players xlocation float playery = wow.ReadFloat(playerbase + YOffset); // Read players ylocation float playerz = wow.ReadFloat(playerbase + ZOffset); // Read players zlocation Console.WriteLine("Player X cord is:" + playerx); //writes to console to tell players x cordinate Console.WriteLine("Player Y cord is:" + playery); //writes to console to tell players y cordinate Console.WriteLine("Player Z cord is:" + playerz); //writes to console to tell players z cordinate // ClickToMove CTM_... float MoveToX = playerx + 10; // Position to move to (add offset from current location). float MoveToY = playery + 5; wow.WriteFloat((uint)ClickToMove.CTM_X, MoveToX); // x destination pos wow.WriteFloat((uint)ClickToMove.CTM_Y, MoveToY); // y destination pos wow.WriteInt((uint)ClickToMove.CTM_Action, 4); // Makes character walk. !!! MUST HAVE CTM ENABLED IN USER INTERFACE !!!. } } }
Last edited by Kz0z; 10-11-2010 at 09:21 AM.
Is there any chance that this will be updated?
Code:// Memory Editing Tutorial from http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/276015-tutorial-starting-wow-memory-reading-writing.html // Updated for 4.0.1.13164 // // NOTE 1: Click to Move must be enabled in the WoW user interface. // NOTE 2: Player must use Click to Move at least once before running this program otherwise toon will simply run without stopping. // // For a MUCH more detailed and useable example please consider one of the following: // http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/290817-c-source-blackrain-simple-object-manager-library.html // http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/307988-example-c-bot-base-4-0-1-a.html using System; using System.Collections.Generic; using System.Linq; using System.Text; using Magic; using System.Diagnostics; namespace Memory_Editing_Tutorial__Console_App { class Program { #region WoW 4.0.1 Constants public enum WoW401 { CurMgrPointer = 0x008A5C20, // ObjectManager.CurMgrPointer CurMgrOffset = 0x4618, // ObjectManager.CurMgrOffset NextObject = 0x3C, // ObjectManager.NextObject FirstObject = 0xB4, // ObjectManager.FirstObject LocalGUID = 0xC8, // ObjectManager.LocalGUID STATIC_PLAYERNAME = 0x8A5C58, OBJECT_FIELD_GUID = 0x00, // WowObjectFields.OBJECT_FIELD_GUID X = 0x880, // WowObject.X Y = 0x884, // WowObject.Y Z = 0x888, // WowObject.Z UNIT_FIELD_HEALTH = 0x08 + 0x12, // WowUnitFields.UNIT_FIELD_HEALTH UNIT_FIELD_LEVEL = 0x08 + 0x40, // WowUnitFields.UNIT_FIELD_LEVEL CTM_Base = 0x8BD7D8, // ClickToMove CTM_Distance = 0x0c, CTM_Action = CTM_Base + 0x1c, CTM_X = CTM_Base + 0xa0, CTM_Y = CTM_Base + 0xa4, CTM_Z = CTM_Base + 0xa8 } #endregion #region Global Variables static BlackMagic wow = null; static IntPtr BaseAddress = IntPtr.Zero; static uint CurrentManager = 0; #endregion static void Main(string[] args) { //////////////////////////////////////////////////////// // Initialize memory access. var proc = Process.GetProcessesByName("Wow"); if (proc[0] == null) { Console.WriteLine("World of Warcraft process could not be found."); return; } wow = new BlackMagic(proc[0].Id); BaseAddress = proc[0].MainModule.BaseAddress; CurrentManager = wow.ReadUInt(wow.ReadUInt((uint)BaseAddress + (uint)WoW401.CurMgrPointer) + (uint)WoW401.CurMgrOffset); ulong PlayerGUID = wow.ReadUInt64(CurrentManager + (uint)WoW401.LocalGUID); //////////////////////////////////////////////////////// // Display some simple player static data. string PlayerName = wow.ReadASCIIString((uint)BaseAddress + (uint)WoW401.STATIC_PLAYERNAME, 60); Console.WriteLine("Player Name is: " + PlayerName); //////////////////////////////////////////////////////// // Display some simple player data from the palyer GUID. // Find the object for the local player. uint PlayerPtr = FindObjectPtr(PlayerGUID); if (PlayerPtr == 0) return; uint Level = wow.ReadUInt(wow.ReadUInt(PlayerPtr + 0x8) + ((uint)WoW401.UNIT_FIELD_LEVEL * 4)); // Reads players level uint Health = wow.ReadUInt(wow.ReadUInt(PlayerPtr + 0x8) + ((uint)WoW401.UNIT_FIELD_HEALTH * 4)); // Reads players health Console.WriteLine("Player level is:" + Level); //writes to console to tell player level Console.WriteLine("Player health is:" + Health); //writes to console to tell player health float playerx = wow.ReadFloat(PlayerPtr + (uint)WoW401.X); // Read players xlocation float playery = wow.ReadFloat(PlayerPtr + (uint)WoW401.Y); // Read players ylocation float playerz = wow.ReadFloat(PlayerPtr + (uint)WoW401.Z); // Read players zlocation Console.WriteLine("Player X cord is:" + playerx); //writes to console to tell players x cordinate Console.WriteLine("Player Y cord is:" + playery); //writes to console to tell players y cordinate Console.WriteLine("Player Z cord is:" + playerz); //writes to console to tell players z cordinate //////////////////////////////////////////////////////// // ClickToMove CTM_... float MoveToX = playerx + 10; // Position to move to (add offset from current location). float MoveToY = playery + 5; wow.WriteFloat((uint)BaseAddress + (uint)WoW401.CTM_X, MoveToX); // x destination pos wow.WriteFloat((uint)BaseAddress + (uint)WoW401.CTM_Y, MoveToY); // y destination pos wow.WriteInt((uint)BaseAddress + (uint)WoW401.CTM_Action, 4); // Makes character walk. !!! MUST HAVE CTM ENABLED IN USER INTERFACE !!!. } #region Support Functions /// <summary> /// Step through all objects to find the object with the specificed GUID. /// </summary> /// <param name="GUID"></param> /// <returns></returns> static uint FindObjectPtr(ulong GUID) { uint ObjectPtr = 0; uint CurrentObjectPtr = wow.ReadUInt(CurrentManager + (uint)WoW401.FirstObject); while (CurrentObjectPtr != 0 && (CurrentObjectPtr & 1) == 0) { ulong ObjGUID = wow.ReadUInt64(wow.ReadUInt(CurrentObjectPtr + 0x8) + (uint)WoW401.OBJECT_FIELD_GUID * 4); if (ObjGUID == GUID) { ObjectPtr = CurrentObjectPtr; break; } CurrentObjectPtr = wow.ReadUInt(CurrentObjectPtr + (uint)WoW401.NextObject); } if (ObjectPtr == 0) Console.WriteLine("Error: GUID could not be found."); return ObjectPtr; } #endregion } }
Last edited by Kz0z; 10-18-2010 at 05:36 AM. Reason: Minor change to dispaly player name.
thx Kz0z the updated versions are rlly nive =) +rep for you!
I use the adresses and offests for 3.3.5a.
All works fine.
But I dont know wich offsets/adress I need to make the charekter work.
And is the offset correct for the xyz reading part ?
Code:Const $PlayerBase = 0x00CD87A8 Const $PlayerBaseOffset1 = 0x34 Const $PlayerBaseOffset2 = 0x24 Const $UnitX = 0x798 Const $UnitY = $UnitX + 0x04 ;3.3.5a Const $UnitZ = $UnitY + 0x04 ;3.3.5a Const $CGPlayer_C__ClickToMove = 0x00727400 Const $CTM_Activate_Pointer = 0xBD08F4 Const $CTM_Activate_Offset = 0x30 Const $CTM_Base = 0x00CA11D8 Const $CTM_X = 0x8C Const $CTM_Y = 0x90 Const $CTM_Z = 0x94 Const $CTM_TurnSpeed = 0x4 Const $CTM_Distance = 0xC Const $CTM_Action = 0x1C Const $CTM_GUID = 0x20
Code:static void Main(string[] args) { BlackMagic wow = new BlackMagic(); //Create new function to open wow process wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft")); //This Opens "World of Warcraft" window uint playerbase = wow.ReadUInt(wow.ReadUInt(wow.ReadUInt(0x00CD87A8) + 0x34) + 0x24); //this is the player base string playername = wow.ReadASCIIString(0x00C79D18, 12); //reads player name uint Level = wow.ReadUInt(wow.ReadUInt(playerbase + 0x8) + (0x36 * 4)); // Reads players level uint CurrHp = wow.ReadUInt(wow.ReadUInt(playerbase + 0x8) + (0x20 * 4)); float playerx = wow.ReadFloat(playerbase + 0x798); // Read players xlocation float playery = wow.ReadFloat(playerbase + 0x04); // Read players ylocation float playerz = wow.ReadFloat(playerbase + 0x04); // Read players zlocation Console.WriteLine("Player Name is: " + playername); //writes to console to tell player name Console.WriteLine("Player level is: " + Level); //writes to console to tell player level Console.WriteLine("Player X cord is: " + playerx); //writes to console to tell players x cordinate Console.WriteLine("Player Y cord is: " + playery); //writes to console to tell players y cordinate Console.WriteLine("Player Z cord is: " + playerz); Console.WriteLine("Player max Health: " + CurrHp); wow.WriteFloat(0xBD08F4, 900); // x pos from prompt wow.WriteFloat(0xBD08F4, 900); // y pos from prompt wow.WriteInt(0x00CB97A4, 4);//makes character walk Console.Read(); }
Last edited by Syltex; 11-17-2010 at 11:26 AM. Reason: pic