Disclaimer: Search for memory locations at your own risk, no one in this forum is responsible for any problems, damages, explosions, melting computer parts, banned acounts, or other unwanted events that may occur to you while using this guide and/or searching for memory locations.
There are two tools that you will use, that most people here use. They are ArtMoney, and the FFXI Offset Maker.
Note: You need a windower to do this.
You can find the FFXI Offset Maker at the FFACT home page, here: http://www.ffact.botanybay.net/ You can find ArtMoney here: http://www.artmoney.ru/ Note: ArtMoney Pro is not required, the free version works fine.
Now, install ArtMoney, Extract the Offset Maker, and run Artmoney. Artmoney has a great guide in the help file for finding values, it explains it very well. The basics are, search for a value using one of the search methods, then change that value(e.g. Casting a spell to lower current MP), and then filter it searching for the new value. Change it again, filter, rinse and repeat until you have 1-2 addresses left. Slimming down between these is something I'm not yet good at, I'm still learning too. Normally I find they both work. Now, once you have a value, it will be in hex, like 2B1F8AE. Open up the FFXI Offset Maker, type the memory address into the memory field, hit calculate, and the Offset is your final value.
Note: You must do this all without quitting FFXI past the logon screen. Also, the first search tends to fill up about 170-200 megs of ram for me, and will occasionally disconnect me from FFXI. To change this, in ArtMoney, Go to Options, Searching Tab, and move the slider to normal priority, this will allow you to stay connected while searching for values.
When you have the Offset, you can try to check it by restarting your computer, starting up FFXI, Loading the Offset Maker, press the radio button next to "Offset" and then enter the memory offset there, press calculate, and the memory location, once inputted into ArtMoney, should give you that value in game.
If you find that your memory offsets are not working when you quit and come back, try searching for a pointer, an explaination of how to do that is in the post below this. I beleive you must find the original memory location again when searching for a pointer, instead of using the offset.
When you have a verified, working offset, post it in this forum, in the following format: Topic Title: Offset Name (e.g. MP Max, HP Max) Topic Description: Current Date Post Details: Memory Offset, Has it been tested?
Please do not post a memory offset that has been already posted by someone else, unless that one has been found wrong. Try and look for memory locations that have not been found yet. As of now, December 14th, Most of the basic values have been found, check the Request threads that have been stickied by StarHawk for values that need to be found.
If you have more problems, first read the ArtMoney Help file and see if your question is answered there. If not, send me a PM, do not bog this forum down with help requests, it is supposed to be for posting memory locations only, any thread that is off topic or not posting a memory offset will be moved or locked.
A little guide to pointers:
"A Pointer is like the index in a book. If you look up birds, it will direct you to the page for birds. Even if the page for birds changes, it will always point the the right page." -StarHawk
This was StarHawk's best explanation when he talked with me. So what it means is, some memory locations you find will change almost every time, however, there will always be a pointer that you can rely on to find the value for you. I'm going to explain as StarHawk explained to me how you can find a pointer.
First, you find your memory location for something. You must not convert this into an offset, just keep it as a memory location. Take this memory location, convert it to decimal, take 100 away from it. Next, in ArtMoney, search for a "Range of Values", With "Pointer" as the selected type. In the first box, put in your memloc - 100 in decimal form that you calculated above, and then put your memloc in decimal form as the second value, the higher end of the range. Hit search, and you should get some pointers as a result. Now, if you do not find any pointers in this range, widen the range until you do find a pointer. If your range gets very large, say more than 2000, you can stop looking because there probably isn't a pointer for the value, it just stays constant in that offset.
Now, the results that this will give you will be all pointers that point to a memory address in that range. If you find a pointer that points strait to the memloc you originally found, then bingo that is good. If you find a pointer that points to a location before the memory location, you'll need to post it as a pointer + a constant(more on this later). Once you have a pointer, you convert this to an offset and you are good.
Now, a pointer + a constant will happen if you find a pointer that points to a location before the location you are looking for. You have the pointer, to find the constant you must take the memory location you want, and subtract from it the memory location the pointer gives you. This will give you the constant representing the difference between these two values. Post the offset of the pointer and the constant of difference, if there is one, and we'll be good!
I hope this explains pointers to those wondering, I didn't get it at first and I'm still not sure. And if you have problems with this, PM me, do not fill this forum with threads not containing memory locations, they will be moved or locked. _________________ -Thecandyman "It's not "proven". It's circumstantially compared under certain conditions. It's like saying a machine gun is better than a grenade launcher. Sure, it's great against soft targets like puppies, kittens, and orphans, but you can't take a tank out with it." <a href='http://superdiesel.asperix.net' target='_blank'>Super Diesel</a> |