How to find target info memory.

08/25/2013 22:04 lostDev#1
Long time lurker, first time poster. Hello.

I am an experienced programmer, but a little new to the bot scene. I have developed one bot in the past and though I'd do a small project for Aion. So I am in the middle of my programming and I have not been able to get the memory offset for my target's hp (or any other target info).

I am not sure if these are already out there, but I'd prefer to know how to figure it out so that I can update without waiting for anyone to post offsets.

I use cheat engine and was able to get my health, mana, etc etc. However, I'm not sure how you would determine the target's hp. It seems a little tricky as aion seems to treat NPCs and PCs a little differently in that targeting myself isn't yielding a viable "target".

Any direction would be helpful.

Furthermore, I'm a little curious when some people post the offsets they find, they have several offsets. Are these due to memory pointers?
08/29/2013 03:10 lostDev#2
I am able to find the target pointer's address. However, I am having trouble following the pointer and finding the next offset in order to get to the actual Health value. Any direction where to go once you find the target's pointer, would be helpful. Thanks.
08/29/2013 03:13 ahmadhyajneh#3
halo
08/31/2013 16:23 lostDev#4
Well I found a sure fire way of finding the offset values. Here is a C++ example. You must already have the target pointer, which really is not difficult to find. I used lucid's suggestion here: [Only registered and activated users can see links. Click Here To Register...]

Code:
static void getTargetMemoryOffsets(int baseAddr, int val, HANDLE iHandle, int &offset1, int &offset2)
{
	int base = getMemoryAddressValue(baseAddr, iHandle);
	// find the offsets.
	for(int i = 0;i < 0x1000;i++)
	{
		int offset_1 = getMemoryAddressValue(base + i, iHandle);
		if(offset_1)
		{
			for(int k = 0;k < 0x5000;k++)
			{
				int offset_2 = getMemoryAddressValue(offset_1 + k, iHandle);
				if(offset_2 && offset_2 == val)
				{
					printf("OFFSETS FOUND 0x%0X and 0x%0X\n", i, k);
					offset1 = i;
					offset2 = k;
					return;
				}
			}
		}
	}
};