http://forums.cameroncole.com/index.php?showtopic=8267&st=0Info_Fish_Rodlocation
-------------------------------------------------------------------------------------------
OR
Edit: (Haven't testet anything I write here though) (Using AC-Tool reading from Memory I also need Namesetter to set The FFXI-Window name to "FFXiApp - Windower Enabled" or it always reads 0
BaseAddress + 3D44D0 = Center / Far (BYTE - (0/1) or (0/2) not sure)
----------------------------------------------------------
(BaseAddress + 3D44E8) = Pointer
Adress where pointer points + 40 (dec) [= 28 hex]) = Left/Right (BYTE - (0/1))
Using DrewIts Memory Thingy:
------------------------------------------------------------------------
Function mem_Fish_RodLocation
Call ItemInit 3D44E8
Call ReadMem Byte, -24
SetConst m_Temp1 = $memResult // Rod Center/Far
Call GetPointer
Call ReadMem Byte, 40
SetConst m_Temp2 = $memResult // Rod Left/Right
If $m_Temp1 = 2 // Rod is in far position
If $m_Temp2 = 0 // Rod is left
SetConst Result = left
Else
SetConst Result = right
End
Else
SetConst Result = center
End
End
---------------------------------------------------------------------------
If you don't have DrewIts Memory Thingy, I guess you'll also need that:
Constants
Energie =
Tempo =
GameCaption = FFXIApp - Windower Enabled // Used for window focus
BaseAddress = 0 // Stores base address of FFXiMain.dll
ItemBase =
Location = // Stores offset of each memloc
BaseInit = 0 // Determines if BaseAddress has been determined yet
ItemInit = // Determines if the offset has been applied to the item yet
MemResult = // Storage of retrieved memory
// Temp Vars
chr =
str =
m_Temp1 =
m_Temp2 =
End
Constructs
DTFile = File
End
//Call FindWindowName
SetConst GameCaption = FFXIApp - Windower Enabled
Setactivewindow $GameCaption
Procedure FindWindowName
SetConst GameCaption = FFXIApp - Windower Enabled
Exit
ExecProgram .\DT FindWindowName.exe
Delay 5 sec
FileOpen DTFile, .\DT WindowName.txt
FileReset DTFile
FileRead DTFile, GameCaption
FileClose DTFile
TimeStamp FFXI Window: $GameCaption
SetActiveWindow $GameCaption
End
Procedure GetPointer Using dOffset
SetActiveWindow $GameCaption
//TimeStamp Pointer Offset: $dOffset
If $dOffset > 0
HexToDec ItemBase = $ItemBase
Compute $ItemBase = $ItemBase + $dOffset
DecToHex ItemBase = $ItemBase
End
//TimeStamp Will Read Pointer at: $ItemBase
ReadMemoryEx ItemBase = $ItemBase, LongInt
DecToHex ItemBase = $ItemBase
//TimeStamp Pointing to $ItemBase
End
Procedure ReadMem Using Type, dOffset
//TimeStamp ReadMem Offset: $dOffset
SetConst Location = $ItemBase
//If $dOffset > 0
HexToDec Location = $Location
Compute Location = $Location + $dOffset
DecToHex Location = $Location
//End
//TimeStamp Will Read: $Location | Type: $Type
SetActiveWindow $GameCaption
If $Type = CString
SetConst str =
While 1=1
ReadMemoryEx memResult = $Location, Byte
//TimeStamp result: $memResult
If $memResult = 0
Break
End
//TimeStamp Loop:{LOOPNO}: $memResult
AsciiChar chr, $memResult
//TimeStamp Char:{LOOPNO}: $chr
SetConst str = $str + $chr
HexToDec Location = $Location
Compute Location = $Location + 1
DecToHex Location = $Location
End
StrTrim $str
SetConst memResult = $str
//TimeStamp Read Memory: Value: '$memResult'
Exit
End
ReadMemoryEx memResult = $Location, $Type
//TimeStamp Read Memory: Value: $memResult
End
Procedure ItemInit Using hOffset
If $BaseAddress = 0
Call FindWindowName
SetActiveWindow $GameCaption
FindModuleBaseAddr BaseAddress = FFXiMain.dll
DecToHex m_temp1 = $BaseAddress
TimeStamp Initialized Base Address to: $BaseAddress - ($m_temp1)
End
HexToDec hOffset = $hOffset
Compute ItemBase = $BaseAddress + $hOffset
DecToHex ItemBase = $ItemBase
//TimeStamp Initialized Item base to Address: $ItemBase
End