Help - Search - Members - Calendar
Full Version: Fishing - Rod Position
AC Tools Everything Macro > AC Tool Macros > Final Fantasy XI Online
Deadlymice
Ok to start off with I have a resonable idea of what I'f doing, least I would hope I do when I'm doing programming at university basically this is what I'm wondering:
Is there a way to get the position of the fishing rod when fishing as in right, left or center. Probably some easy way I missed but I just can't seem to figure it out >.<"
Anyway thanks in advance.

--------------------- EDIT---------------------------
Just went through the forums once again incase I missed something and I think i did.
I found the FFXI_info.dat and from what I can see it has a Rod position in it, if I'm wrong I'll find out soon =D
courath
Yeah, there are locations in memory for them. Ive searched for them before, but ive never actually found them.
Deadlymice
Yeah, I hate finding memery locations, mainly cause I'm such a noob at it ^.^'
Rocko
http://forums.cameroncole.com/index.php?showtopic=8267&st=0

Info_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
sean1976
And if you are interested in finding the memloc manually then I would suggest looking at the mem structures(easily viewable by examining ffxi_info) and checking for what values that might be easier to find using a memsearch proggy(artmoney, tsearch, etc..) are nearby to the memloc your looking for in the structure.
Deadlymice
Alot of help cheers, yeah I am rather tempted to look it up myself cause how else will I learn =D
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.