Action Struct (Walking) - What am I doing wrong?

05/06/2012 20:27 Shortpants#1
Fixed.
05/06/2012 20:51 Interest07#2
Not sure what you're doing wrong, but you're definitely mixing up Y and Z.

You should call it _Move_Player(500.0, 0, 500.0, -1.0)

try adding these to yrou actionstruct:

off_player_actStruct_list_move_error1 0x34
off_player_actStruct_list_move_error2 0x3C

Code:
Dim $ACTION_ERROR1_OFFSET[7]
$ACTION_ERROR1_OFFSET[1] = 0x1C
$ACTION_ERROR1_OFFSET[2] = 0x34
$ACTION_ERROR1_OFFSET[3] = 0x1010
$ACTION_ERROR1_OFFSET[4] = 0x30
$ACTION_ERROR1_OFFSET[5] = 0x4
$ACTION_ERROR1_OFFSET[6] = 0x34

Dim $ACTION_ERROR2_OFFSET[7]
$ACTION_ERROR2_OFFSET[1] = 0x1C
$ACTION_ERROR2_OFFSET[2] = 0x34
$ACTION_ERROR2_OFFSET[3] = 0x1010
$ACTION_ERROR2_OFFSET[4] = 0x30
$ACTION_ERROR2_OFFSET[5] = 0x4
$ACTION_ERROR2_OFFSET[6] = 0x3C




	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_ERROR1_OFFSET, 0)
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_ERROR2_OFFSET, 0)
05/06/2012 21:05 Shortpants#3
Fixed.
05/06/2012 22:49 Interest07#4
Quote:
Originally Posted by Shortpants View Post
If you meant it like this,, it didn't work :p
Code:
#RequireAdmin
#include <NomadMemory.au3>
HotKeySet("{END}", "_KillProcess")

Dim $REAL_BASE_ADDRESS = 0x00A521C0

Dim $ACTION_MOVE_ACTION[6]
$ACTION_MOVE_ACTION[1] = 0x1C
$ACTION_MOVE_ACTION[2] = 0x34
$ACTION_MOVE_ACTION[3] = 0x1010
$ACTION_MOVE_ACTION[4] = 0x30
$ACTION_MOVE_ACTION[5] = 0x4

Dim $ACTION_FINISHED_OFFSET[7]
$ACTION_FINISHED_OFFSET[1] = 0x1C
$ACTION_FINISHED_OFFSET[2] = 0x34
$ACTION_FINISHED_OFFSET[3] = 0x1010
$ACTION_FINISHED_OFFSET[4] = 0x30
$ACTION_FINISHED_OFFSET[5] = 0x4
$ACTION_FINISHED_OFFSET[6] = 0x8

Dim $ACTION_START_OFFSET[7]
$ACTION_START_OFFSET[1] = 0x1C
$ACTION_START_OFFSET[2] = 0x34
$ACTION_START_OFFSET[3] = 0x1010
$ACTION_START_OFFSET[4] = 0x30
$ACTION_START_OFFSET[5] = 0x4
$ACTION_START_OFFSET[6] = 0x14

Dim $ACTION_X_OFFSET[7]
$ACTION_X_OFFSET[1] = 0x1C
$ACTION_X_OFFSET[2] = 0x34
$ACTION_X_OFFSET[3] = 0x1010
$ACTION_X_OFFSET[4] = 0x30
$ACTION_X_OFFSET[5] = 0x4
$ACTION_X_OFFSET[6] = 0x20

Dim $ACTION_Y_OFFSET[7]
$ACTION_Y_OFFSET[1] = 0x1C
$ACTION_Y_OFFSET[2] = 0x34
$ACTION_Y_OFFSET[3] = 0x1010
$ACTION_Y_OFFSET[4] = 0x30
$ACTION_Y_OFFSET[5] = 0x4
$ACTION_Y_OFFSET[6] = 0x24

Dim $ACTION_Z_OFFSET[7]
$ACTION_Z_OFFSET[1] = 0x1C
$ACTION_Z_OFFSET[2] = 0x34
$ACTION_Z_OFFSET[3] = 0x1010
$ACTION_Z_OFFSET[4] = 0x30
$ACTION_Z_OFFSET[5] = 0x4
$ACTION_Z_OFFSET[6] = 0x28

Dim $ACTION_HEIGHT_OFFSET[7]
$ACTION_HEIGHT_OFFSET[1] = 0x1C
$ACTION_HEIGHT_OFFSET[2] = 0x34
$ACTION_HEIGHT_OFFSET[3] = 0x1010
$ACTION_HEIGHT_OFFSET[4] = 0x30
$ACTION_HEIGHT_OFFSET[5] = 0x4
$ACTION_HEIGHT_OFFSET[6] = 0x68

Dim $ACTION_UNK1[7]
$ACTION_UNK1[1] = 0x1C
$ACTION_UNK1[2] = 0x34
$ACTION_UNK1[3] = 0x1010
$ACTION_UNK1[4] = 0x30
$ACTION_UNK1[5] = 0x4
$ACTION_UNK1[6] = 0x64

Dim $ACTION_UNK2[7]
$ACTION_UNK2[1] = 0x1C
$ACTION_UNK2[2] = 0x34
$ACTION_UNK2[3] = 0x1010
$ACTION_UNK2[4] = 0x30
$ACTION_UNK2[5] = 0x4
$ACTION_UNK2[6] = 0x6C

Dim $ACTION_MOVE_TYPE_OFFSET[7]
$ACTION_MOVE_TYPE_OFFSET[1] = 0x1C
$ACTION_MOVE_TYPE_OFFSET[2] = 0x34
$ACTION_MOVE_TYPE_OFFSET[3] = 0x1010
$ACTION_MOVE_TYPE_OFFSET[4] = 0x30
$ACTION_MOVE_TYPE_OFFSET[5] = 0x4
$ACTION_MOVE_TYPE_OFFSET[6] = 0x2C

Dim $ACTION_NEW_ACTION_TYPE[5]
$ACTION_NEW_ACTION_TYPE[1] = 0x1C
$ACTION_NEW_ACTION_TYPE[2] = 0x34
$ACTION_NEW_ACTION_TYPE[3] = 0x1010
$ACTION_NEW_ACTION_TYPE[4] = 0xC

Dim $ACTION_SET_NEXT_ACTION[5]
$ACTION_SET_NEXT_ACTION[1] = 0x1C
$ACTION_SET_NEXT_ACTION[2] = 0x34
$ACTION_SET_NEXT_ACTION[3] = 0x1010
$ACTION_SET_NEXT_ACTION[4] = 0x18

Dim $ACTION_SET_NEW_ACTION_TYPE[5]
$ACTION_SET_NEW_ACTION_TYPE[1] = 0x1C
$ACTION_SET_NEW_ACTION_TYPE[2] = 0x34
$ACTION_SET_NEW_ACTION_TYPE[3] = 0x1010
$ACTION_SET_NEW_ACTION_TYPE[4] = 0x14

Dim $ACTION_ERROR1_OFFSET[7]
$ACTION_ERROR1_OFFSET[1] = 0x1C
$ACTION_ERROR1_OFFSET[2] = 0x34
$ACTION_ERROR1_OFFSET[3] = 0x1010
$ACTION_ERROR1_OFFSET[4] = 0x30
$ACTION_ERROR1_OFFSET[5] = 0x4
$ACTION_ERROR1_OFFSET[6] = 0x34

Dim $ACTION_ERROR2_OFFSET[7]
$ACTION_ERROR2_OFFSET[1] = 0x1C
$ACTION_ERROR2_OFFSET[2] = 0x34
$ACTION_ERROR2_OFFSET[3] = 0x1010
$ACTION_ERROR2_OFFSET[4] = 0x30
$ACTION_ERROR2_OFFSET[5] = 0x4
$ACTION_ERROR2_OFFSET[6] = 0x3C

Dim $PROCESS_IDENTIFIER = WinGetProcess("Perfect World International")
Dim $MEMORY_HANDLE = _MemoryOpen($PROCESS_IDENTIFIER)


_Move_Player(500.0, 0.0, 500.0, -1.0)
_KillProcess()


Func _Move_Player($DESTINATION_X, $DESTINATION_Y, $DESTINATION_Z, $HEIGHT)
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_ERROR1_OFFSET, 0)
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_ERROR2_OFFSET, 0)

	$MOVE_ACTION = _MemoryPointerRead($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_MOVE_ACTION)

	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_FINISHED_OFFSET, 0)
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_START_OFFSET, 1)

	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_X_OFFSET, $DESTINATION_X, "float")
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_Y_OFFSET, $DESTINATION_Y, "float")
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_Z_OFFSET, $DESTINATION_Z, "float")

	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_HEIGHT_OFFSET, $HEIGHT, "float")

	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_UNK1, 26624)
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_UNK2, 65536)

	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_MOVE_TYPE_OFFSET, 0)

	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_NEW_ACTION_TYPE, $MOVE_ACTION[1])
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_SET_NEXT_ACTION, 1)
	_MemoryPointerWrite($REAL_BASE_ADDRESS, $MEMORY_HANDLE, $ACTION_SET_NEW_ACTION_TYPE, $MOVE_ACTION[1])
EndFunc   ;==>_Move_Player

Func _KillProcess()
	_MemoryClose($PROCESS_IDENTIFIER)
	Exit
EndFunc   ;==>_KillProcess
If this is easier with packets, then that is fine too. ( I have read some of your posts ). But it looked more complicated
yeah, you don't wanna do it with packets. What exactly is going wrong? no movement at all? Try looking in memory what happens when you move normally and what happens when you put these values in.
05/06/2012 22:57 Shortpants#5
Quote:
Originally Posted by Interest07 View Post
yeah, you don't wanna do it with packets. What exactly is going wrong? no movement at all? Try looking in memory what happens when you move normally and what happens when you put these values in.
Doh... Thank you for mentioning that, apparently these where the offsets from Genesis.

Actually.., isn't the Action Start supposed to change to 1 when I walk? Cause it stays on 0.