| | WoW Memory Editing WoW Memory Editing for learning purposes only.
This section is more advanced than others on MMOwned Read the section specific rules, infractions will be given out if u break them!That is including the expectations! - If you don't meet them then don't post |  | 
07-01-2009
|  | Master Sergeant | | | Join Date: Apr 2009 Location: France
Posts: 97
Reputation: 53 Level up: 17%, 755 Points needed |     | | | Click to Move Problem Hi all
My function Click to Move at a pos xyz dont work Code: CTM_X = &H111812C
CTM_Y = &H1118130
CTM_Z = &H1118134
CTM_DISTANCE = &H11180AC
CTM_PUSH = &H11180BC
Code: Public Shared Sub Move(ByVal X As Single, ByVal Y As Single, ByVal Z As Single)
Config.Memoire.WriteFloat(Adresse.CTM_DISTANCE, 0.5)
Config.Memoire.WriteFloat(Adresse.CTM_X, X)
Config.Memoire.WriteFloat(Adresse.CTM_Y, Y)
Config.Memoire.WriteFloat(Adresse.CTM_Z, Z)
Config.Memoire.WriteInt32(Adresse.CTM_PUSH, 4)
End Sub
I dont find problem.
If one can help me please | Donate to remove ads, get your "DONATOR title, and get access to the MMOwned community's elite Shoutbawx. 
07-01-2009
| | Master Sergeant | | | Join Date: Jul 2008
Posts: 102
Reputation: 22 Level up: 65%, 178 Points needed |   | | You're using VB.NET
'nuff said
But seriously, I think you might be leaving out some required writes. Also, try clicking to move once before you perform these memory writes and see if it works. Also make sure Click to move is turned on in your options. Quote:
Originally Posted by vulcanaoc Check it out: thread title: [3.1.1] Movement with simple memory writes
"Har Har Har" people can do it properly by calling the actual function. Or they can follow the... following if they don't feel like using code injection:
Required Memlocs:
-------------------------------
All text in quotes is a type of what you all call "patterns". The substring before the first "," is a Regex pattern to match before a number of bytes. The substring after the first "," is a pattern to match after a number of bytes. If there is a second ",", the integer after it represents how many bytes in between the two patterns there are. Otherwise, four bytes are assumed.
I also included the results that these patterns would yield in 3.1.3. Code: InterfaceOptionsMouse_Pointer = "75-25-A1,39-50-XX-74" //3.1.3: 0x11D40C0
InterfaceOptionsMouse_ClickToMove_Offset = "75-XX-A1-XX-XX-XX-XX-39-50,74-XX-D9-EE,1" //3.1.3: 0x30
ClickToMoveUnk1 = "D9-5D-XX-57-D9-05,D8-4D-XX-DD-05" //3.1.3: 0x11180A4
ClickToMoveTightness = "75-64-83-F8-04-D9-05,D9-55-XX-75-XX-8B-8E" //3.1.3: 0x11180AC
ClickToMoveX = "8B-06-A3,89-0D-XX-XX-XX-XX-8B-4E" //3.1.3: 0x111812C
ClickToMoveGUID = "8B-06-A3-XX-XX-XX-XX-89-0D,8B-4E-XX-89-0D" //3.1.3: 0x11D3F68
ClickToMoveGoType = "8B-4D-XX-89-0D,E8-XX-XX-XX-XX-8B-13" //3.1.3: 0x11180BC
Required Code: (or similar)
------------------------------- Code: public void DoClickToMove(Location location, ClickToMoveType ctmType)
{
//retrieve required memory locations
//required to enable ctm
int ctmOptionAddr = wow.memlocs.GetMemloc("InterfaceOptionsMouse_Pointer");
int ctmOptionOffset = wow.memlocs.GetMemloc("InterfaceOptionsMouse_ClickToMove_Offset");
ctmOptionAddr = wow.memory.ReadInt(ctmOptionAddr) + ctmOptionOffset;
//required to perform ctm
int ctmXAddr = wow.memlocs.GetMemloc("ClickToMoveX");
int ctmTypeAddr = wow.memlocs.GetMemloc("ClickToMoveGoType");
int ctmGUIDAddr = wow.memlocs.GetMemloc("ClickToMoveGUID");
int ctmUnk1Addr = wow.memlocs.GetMemloc("ClickToMoveUnk1");
int ctmTightnessAddr = wow.memlocs.GetMemloc("ClickToMoveTightness");
//write enable ctm
wow.memory.WriteInt(ctmOptionAddr, 1);
//write location info
wow.memory.WriteFloat(ctmXAddr, location.X);
wow.memory.WriteFloat(ctmXAddr + 0x4, location.Y);
wow.memory.WriteFloat(ctmXAddr + 0x8, location.Z);
//write guid info
wow.memory.WriteLong(ctmGUIDAddr, wow.memory.ReadLong(wow.memlocs.GetMemloc("CurrentTargetGUID")));
//write other required info
wow.memory.WriteFloat(ctmUnk1Addr, 14.0f); //this seems to work...
wow.memory.WriteFloat(ctmUnk1Addr + 0x4, 0.25f); // normal scale turn radius
wow.memory.WriteFloat(ctmTightnessAddr, 0.5f); // set to stop if distance from xyz is 0.5 or less
//write ctm "go" type/bit
wow.memory.WriteInt(ctmTypeAddr, (int)ctmType);
}
| | 
07-02-2009
|  | Master Sergeant | | | Join Date: Apr 2009 Location: France
Posts: 97
Reputation: 53 Level up: 17%, 755 Points needed |     | | | My problem is solved, I had confused X with Y in my creator of Wp ^^
Sorry, my code work | 
07-02-2009
|  | Master Sergeant | | | Join Date: Mar 2008 Location: France
Posts: 83
Reputation: 28 Level up: 26%, 524 Points needed |   | | Code of BH-Tool Code: #region Adress & Offsets
private static uint AdressCTM = 0x11180A0;
enum OffCTM : uint
{
Unknown1 = 0x0,
TurnScale = 0x4,
Unknown2 = 0x8,
InteractDistance = 0xC,
ActionType = 0x1C,
InteractGuid = 0x20,
MoveX = 0x8C,
MoveY = 0x90,
MoveZ = 0x94
}
enum ActionType : uint
{
FaceTarget = 0x1,
Stop = 0x3,
WalkTo = 0x4,
InteractNpc = 0x5,
Loot = 0x6,
InteractObject = 0x7,
Unknown1 = 0x8,
Unknown2 = 0x9,
AttackPos = 0xA,
AttackGuid = 0xB,
WalkAndRotate = 0xC
}
#endregion
#region Base move
public static void MoveTo(Vector3D Pos)
{
if (Process.isLoaded)
{
Process.WowProcess.WriteFloat(AdressCTM + (uint)OffCTM.MoveX, Pos.X);
Process.WowProcess.WriteFloat(AdressCTM + (uint)OffCTM.MoveY, Pos.Y);
Process.WowProcess.WriteFloat(AdressCTM + (uint)OffCTM.MoveZ, Pos.Z);
Process.WowProcess.WriteInt(AdressCTM + (uint)OffCTM.ActionType, (int)ActionType.WalkTo);
}
else throw new Exception("Not loaded");
}
public static void MoveToAndInteract(WowObject Object)
{
if (Process.isLoaded)
{
Vector3D Pos = Object.GetVector();
Process.WowProcess.WriteUInt64(AdressCTM + (uint)OffCTM.InteractGuid, Object.Guid);
Process.WowProcess.WriteFloat(AdressCTM + (uint)OffCTM.MoveX, Pos.X);
Process.WowProcess.WriteFloat(AdressCTM + (uint)OffCTM.MoveY, Pos.Y);
Process.WowProcess.WriteFloat(AdressCTM + (uint)OffCTM.MoveZ, Pos.Z);
Process.WowProcess.WriteInt(AdressCTM + (uint)OffCTM.ActionType,
Object.Type == 3 ? ( Object.IsDead ? (int)ActionType.Loot : (int)ActionType.InteractNpc )
: (int)ActionType.InteractObject);
}
else throw new Exception("Not loaded");
}
#endregion
| 
07-03-2009
| | Master Sergeant | | | Join Date: Mar 2008
Posts: 70
Reputation: 23 Level up: 27%, 369 Points needed |   | | | Just for the record, you don't have to have click to move on and you don't have to initiate it by using click to move manually. | 
07-03-2009
| | Master Sergeant | | | Join Date: Jul 2008
Posts: 102
Reputation: 22 Level up: 65%, 178 Points needed |   | | Quote:
Originally Posted by bigtimt Just for the record, you don't have to have click to move on and you don't have to initiate it by using click to move manually. | Just tested the first part of this claim (seeing as I already know the second to be true). It's true- at least if you do the writes properly. I guess I tested this whole thing incorrectly. |  |
Posting Rules
| You may not post new threads You may not post replies You may not post attachments You may not edit your posts HTML code is Off | | | All times are GMT -4. The time now is 11:07 AM. |