WoW Memory EditingWoW Memory Editing for learning purposes only.
This section is more advanced than others on MMOwnedRead 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
Anyone would be so kind to provide description for CTM function ? i remember there was discussion but coudn't find it anymore. What are parameters to that call (4 parameters).
thanks
Donate to remove ads, get your "DONATOR title, and get access to the MMOwned community's elite Shoutbawx.
Unkowned has a full Documentation if you want to go to his wiki.
But the above is correct.
Basic Use ( Psuedo - Code )
SET X FLOAT
SET Y FLOAT
[[Optional]]
SET Z FLOAT --Only for Flying Mounts
Set Dist (How close to the location) FLOAT << Mess around with this for interaction (there is a Dist that lets you interact w/o moving)
Set TurnScale (How fast you turn only applys if over 180 deg) FLOAT
[[/Optional]]
appreciate it everyone. hmm... wasn't there something related to GUID as well (or i just dont remember it ) ? like in case of ctmInteractObject/Npc...
What is url for Unkowned's wiki ?
appreciate it everyone. hmm... wasn't there something related to GUID as well (or i just dont remember it ) ? like in case of ctmInteractObject/Npc...
What is url for Unkowned's wiki ?
Yeah you write the guid to private const uint ctmTarget = ctmBase + 0x20; and then call interact
Wow you guys are funny. You do realize that the CTM stuff is stored as a struct in memory right? And that struct's layout hasn't changed since as long as I can remember...
Code:
[StructLayout(LayoutKind.Sequential)]
public struct ClickToMoveInfoStruct
{
public float Unknown1F;
public float TurnScale;
public float Unknown2F;
/// <summary>
/// This can be left alone. There is no need to write to it!!
/// </summary>
public float InteractionDistance;
public float Unknown3F;
public float Unknown4F;
public uint Unknown5U;
/// <summary>
/// As per the ClickToMoveAction enum members.
/// </summary>
public uint ActionType;
public ulong InteractGuid;
/// <summary>
/// Check == 2 (This might be some sort of flag?)
/// Always 2 when using some form of CTM action. 0 otherwise.
/// </summary>
public uint IsClickToMoving;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)]
public uint[] Unknown6U;
/// <summary>
/// This will change in memory as WoW figures out where exactly we're going to stop. (Also the actual end location)
/// </summary>
public Point Dest;
/// <summary>
/// This is wherever we actually 'clicked' in game.
/// </summary>
public Point Click;
/// <summary>
/// Returns the fully qualified type name of this instance.
/// </summary>
/// <returns>
/// A <see cref="T:System.String"/> containing a fully qualified type name.
/// </returns>
/// <filterpriority>2</filterpriority>
public override string ToString()
{
string tmp = "";
for (int i = 0; i < Unknown6U.Length; i++)
{
tmp += "Unknown6U_" + i + ": " + Unknown6U[i].ToString("X") + ", ";
}
return
string.Format(
"TurnScale: {0}, InteractionDistance: {1}, ActionType: {2}, InteractGuid: {3}, IsClickToMoving: {4}, ClickX: {5}, ClickY: {6}, ClickZ: {7}, DestX: {8}, DestY: {9}, DestZ: {10}, Unk4f: {12}, UNK: {11}",
TurnScale, InteractionDistance, (ClickToMoveType) ActionType, InteractGuid.ToString("X"),
IsClickToMoving == 2, Click.X, Click.Y, Click.Z, Dest.X, Dest.Y, Dest.Z, tmp, Unknown4F);
}
}
__________________
[Only registered and activated users can see links. ]
Well, i dont think so. everywhere in wow (well, where i saw operations with ctm "structure") wow operates on absolute addresses, not "structure offsets". i assume it is global variables in source code.
thanks for info anyway as little contribution (useless one though : ) )
Unknown2F will hold "interact" distance returned from here
0069E8E3 call myf_ctmGetInteractDistanceOfAction
myf_ctmGetInteractDistanceOfAction takes action as parameter and returns appropriate distance or displays error like "too far" etc...
later square root of that distance will be used as InteractionDistance in CGPlayer_C__ClickToMove, code: