Player Coordinates/HP Pattern

02/15/2025 16:14 LastKingOfHell#1
Hi Guys,

does someone have the current patterns for player coordinates and player hp?

Best regards!
02/16/2025 05:26 HighGamer.#2
For 2019 Engine ? or 2025 Engine? i got both

Here is 2019 engine

Code:
	coordinatesBaseAddress = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x8B\x88\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00"), XorStrOld("x????xx????xx????xx????x????xx????xx????xx????xx????xx????"), 7, true);
	if (!coordinatesBaseAddress)
		coordinatesBaseAddress = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x8B\x88\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00"), XorStrOld("x????x????xx????xx????xx????xx????xx????xx????xx????xx????"), 6, true);

	if (coordinatesBaseAddress) {
#ifdef DEBUGMODE
		Log("Detected Coordinates Base = %X\n", coordinatesBaseAddress);
#endif
		coordinatesBaseAddress = mainBaseAddress;
	}

	myPlayerXOffset = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x8B\x88\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00"), XorStrOld("x????xx????xx????xx????x????xx????xx????xx????xx????xx????"), 48, true);
	if (!myPlayerXOffset)
		myPlayerXOffset = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x8B\x88\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00"), XorStrOld("x????x????xx????xx????xx????xx????xx????xx????xx????xx????"), 48, true);

	if (myPlayerXOffset) {
#ifdef DEBUGMODE
		Log("Detected PlayerXOffset = %X\n", myPlayerXOffset);
#endif
	}

	myPlayerYOffset = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x8B\x88\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00"), XorStrOld("x????xx????xx????xx????x????xx????xx????xx????xx????xx????"), 30, true);
	if (!myPlayerYOffset)
		myPlayerYOffset = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x8B\x88\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00"), XorStrOld("x????x????xx????xx????xx????xx????xx????xx????xx????xx????"), 30, true);

	if (myPlayerYOffset) {
#ifdef DEBUGMODE
		Log("Detected PlayerYOffset = %X\n", myPlayerYOffset);
#endif
	}

	myPlayerZOffset = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x8B\x88\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00"), XorStrOld("x????xx????xx????xx????x????xx????xx????xx????xx????xx????"), 13, true);
	if (!myPlayerZOffset)
		myPlayerZOffset = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x8B\x88\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00"), XorStrOld("x????x????xx????xx????xx????xx????xx????xx????xx????xx????"), 12, true);

	if (myPlayerZOffset) {
#ifdef DEBUGMODE
		Log("Detected PlayerZOffset = %X\n", myPlayerZOffset);
#endif
	}

	myPlayerCurrentHealthXorKey1 = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x8B\x0D\x00\x00\x00\x00\x03\x48\x0C\x51\x8B\x15\x00\x00\x00\x00\x33\x15\x00\x00\x00\x00"), XorStrOld("xx????xxxxxx????xx????"), 12, true);
	myPlayerCurrentHealthXorKey2 = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x8B\x0D\x00\x00\x00\x00\x03\x48\x0C\x51\x8B\x15\x00\x00\x00\x00\x33\x15\x00\x00\x00\x00"), XorStrOld("xx????xxxxxx????xx????"), 18, true);
	myPlayerCurrentHealthMax = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x8B\x0D\x00\x00\x00\x00\x03\x48\x0C\x51\x8B\x15\x00\x00\x00\x00\x33\x15\x00\x00\x00\x00"), XorStrOld("xx????xxxxxx????xx????"), 2, true);

	myPlayerCurrentManaMin = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x8B\x15\x00\x00\x00\x00\x03\x51\x10\x52\xA1\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\x68\x04\x01\x00\x00\x8D\x8D\xE0\xFE\xFF\xFF\x51\xE8\x00\x00\x00\x00\x83\xC4\x14"), XorStrOld("xx????xxxxx????xx????xxx??xxxxxxxx????xxx"), 11, true);
	myPlayerCurrentManaMax = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x8B\x15\x00\x00\x00\x00\x03\x51\x10\x52\xA1\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\x68\x04\x01\x00\x00\x8D\x8D\xE0\xFE\xFF\xFF\x51\xE8\x00\x00\x00\x00\x83\xC4\x14"), XorStrOld("xx????xxxxx????xx????xxx??xxxxxxxx????xxx"), 2, true);


unsigned int GetPlayerCoordinateX() {
	__try {
		if (*(DWORD*)coordinatesBaseAddress != 0)
			return (*(DWORD*)((*(DWORD*)(coordinatesBaseAddress)) + myPlayerXOffset));
	}
	__except (EXCEPTION_EXECUTE_HANDLER)
	{
		return 0;
	}
	return 0;
}

unsigned int GetPlayerCoordinateY() {
	__try {
		if (*(DWORD*)coordinatesBaseAddress != 0)
			return (*(DWORD*)((*(DWORD*)(coordinatesBaseAddress)) + myPlayerYOffset));
	}
	__except (EXCEPTION_EXECUTE_HANDLER)
	{
		return 0;
	}
}

unsigned int GetPlayerCoordinateZ() {
	__try {
		if (*(DWORD*)coordinatesBaseAddress != 0)
			return (*(DWORD*)((*(DWORD*)(coordinatesBaseAddress)) + myPlayerZOffset));
	}
	__except (EXCEPTION_EXECUTE_HANDLER)
	{
		return 0;
	}
}

unsigned int GetPlayerMinHP()
{
	__try {
		if (*(DWORD*)myPlayerCurrentHealthXorKey1 != 0 && *(DWORD*)myPlayerCurrentHealthXorKey2 != 0) {
			unsigned int CurrentHPXor1 = *(DWORD*)(myPlayerCurrentHealthXorKey1);
			unsigned int CurrentHPXor2 = *(DWORD*)(myPlayerCurrentHealthXorKey2);
			return (CurrentHPXor1 ^ CurrentHPXor2);
		}
	}
	__except (EXCEPTION_EXECUTE_HANDLER)
	{
		return 0;
	}
	return 0;
}

unsigned int GetPlayerMaxHP()
{
	__try {
		if (*(DWORD*)myPlayerCurrentHealthMax != 0)
			return *(DWORD*)(myPlayerCurrentHealthMax);
	}
	__except (EXCEPTION_EXECUTE_HANDLER)
	{
		return 0;
	}
	return 0;
}

unsigned int GetPlayerMinMP()
{
	__try {
		if (*(DWORD*)myPlayerCurrentManaMin != 0)
			return *(DWORD*)(myPlayerCurrentManaMin);
	}
	__except (EXCEPTION_EXECUTE_HANDLER)
	{
		return 0;
	}
	return 0;
}

unsigned int GetPlayerMaxMP()
{
	__try {
		if (*(DWORD*)myPlayerCurrentManaMax != 0)
			return *(DWORD*)(myPlayerCurrentManaMax);
	}
	__except (EXCEPTION_EXECUTE_HANDLER)
	{
		return 0;
	}
	return 0;
}
02/16/2025 10:52 LastKingOfHell#3
Thank you! I was thinking for current engine for int server, so 2025 i guess. I got my old stuff still functioning, i am just lacking the pattern for coordinates for it to run properly again :D
02/16/2025 19:19 HighGamer.#4
Quote:
Originally Posted by LastKingOfHell View Post
Thank you! I was thinking for current engine for int server, so 2025 i guess. I got my old stuff still functioning, i am just lacking the pattern for coordinates for it to run properly again :D
Code:
	//FIXED 2024
	if (!coordinatesBaseAddress)
		coordinatesBaseAddress = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\xB9\x04\x00\x00\x00\xC1\xE1\x00\x8B\x15\x00\x00\x00\x00\x8B\x84\x0A\x28\x47\x00\x00\x50\x68\x00\x00\x00\x00\xB9\x04\x00\x00\x00\xD1\xE1\x8B\x15\x00\x00\x00\x00\x8B\x84\x0A\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\xB9\x04\x00\x00\x00\x6B\xD1\x00\xA1\x00\x00\x00\x00\x8B\x8C\x10\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8D"), XorStrOld("x????xxxxxxxxxx????xxx??xxxx????xxxxxxxxx????xxx??xxxx????xxxxxxxxx????xxx??xxxx????x"), 15, true);

	//FIXED 2025
	if (!coordinatesBaseAddress)
		coordinatesBaseAddress = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\xBA\x04\x00\x00\x00\xC1\xE2\x00\xA1\x00\x00\x00\x00\x8B\x8C\x10\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\xBA\x04\x00\x00\x00\xD1\xE2\xA1\x00\x00\x00\x00\x8B\x8C\x10\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\xBA\x04\x00\x00\x00\x6B\xC2\x00\x8B\x0D\x00\x00\x00\x00\x8B\x94\x01\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00\x8D"), XorStrOld("x????xxxxxxxxx????xxx????xx????xxxxxxxx????xxx????xx????xxxxxxxxxx????xxx????xx????x"), 14, true);

        //FIXED 2024
	if (!myPlayerXOffset)
		myPlayerXOffset =        PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\xB9\x04\x00\x00\x00\xC1\xE1\x00\x8B\x15\x00\x00\x00\x00\x8B\x84\x0A\x28\x47\x00\x00\x50\x68\x00\x00\x00\x00\xB9\x04\x00\x00\x00\xD1\xE1\x8B\x15\x00\x00\x00\x00\x8B\x84\x0A\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\xB9\x04\x00\x00\x00\x6B\xD1\x00\xA1\x00\x00\x00\x00\x8B\x8C\x10\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\x8D"), XorStrOld("x????xxxxxxxxxx????xxx??xxxx????xxxxxxxxx????xxx??xxxx????xxxxxxxxx????xxx??xxxx????x"), 22, true);

	//FIXED 2025
	if (!myPlayerXOffset)
		myPlayerXOffset = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x68\x00\x00\x00\x00\xBA\x04\x00\x00\x00\xC1\xE2\x00\xA1\x00\x00\x00\x00\x8B\x8C\x10\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\xBA\x04\x00\x00\x00\xD1\xE2\xA1\x00\x00\x00\x00\x8B\x8C\x10\x00\x00\x00\x00\x51\x68\x00\x00\x00\x00\xBA\x04\x00\x00\x00\x6B\xC2\x00\x8B\x0D\x00\x00\x00\x00\x8B\x94\x01\x00\x00\x00\x00\x52\x68\x00\x00\x00\x00\x8D"), XorStrOld("x????xxxxxxxxx????xxx????xx????xxxxxxxx????xxx????xx????xxxxxxxxxx????xxx????xx????x"), 21, true);

	if (!myPlayerYOffset && myPlayerXOffset)
		myPlayerYOffset = myPlayerXOffset + 8;

	if (!myPlayerZOffset && myPlayerXOffset)
		myPlayerZOffset = myPlayerXOffset + 4;
02/17/2025 12:01 LastKingOfHell#5
Thanks a lot, this works great, do you have the ones for player hp as well so that i can automatize my potting without having to pay for the doggebie meds?
02/17/2025 21:59 HighGamer.#6
Code:
	//2025
	myPlayerCurrentHealthXorKey1 = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x8B\x15\x00\x00\x00\x00\x52\xA1\x00\x00\x00\x00\x33\x05\x00\x00\x00\x00\x50"), XorStrOld("xx????xx????xx????x"), 8, true);
	myPlayerCurrentHealthXorKey2 = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x8B\x15\x00\x00\x00\x00\x52\xA1\x00\x00\x00\x00\x33\x05\x00\x00\x00\x00\x50"), XorStrOld("xx????xx????xx????x"), 14, true);
	myPlayerCurrentHealthMax = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\x8B\x15\x00\x00\x00\x00\x52\xA1\x00\x00\x00\x00\x33\x05\x00\x00\x00\x00\x50"), XorStrOld("xx????xx????xx????x"), 2, true);

	//2025
	myPlayerCurrentManaMin = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\xA1\x0C\x35\x92\x00\x50\x8B\x0D\x04\x35\x92\x00\x51\x68\x00\x00\x00\x00\x68\x04\x01\x00\x00\x8D\x00\x00\xFE\xFF\xFF\x00\xE8\x00\x00\x00\x00\x83\xC4\x14"), XorStrOld("x????xxx????xx????xxxxxx??xxx?x????xxx"), 8, true);
	myPlayerCurrentManaMax = PointerFindPattern(BaseAddressStart, BaseAddressEnd, (PBYTE)XorStrOld("\xA1\x0C\x35\x92\x00\x50\x8B\x0D\x04\x35\x92\x00\x51\x68\x00\x00\x00\x00\x68\x04\x01\x00\x00\x8D\x00\x00\xFE\xFF\xFF\x00\xE8\x00\x00\x00\x00\x83\xC4\x14"), XorStrOld("x????xxx????xx????xxxxxx??xxx?x????xxx"), 1, true);
02/19/2025 08:24 LastKingOfHell#7
I am dumb and i got it fixed. Thanks a lot for your help!