|
You last visited: Today at 00:05
Advertisement
Player Coordinates/HP Pattern
Discussion on Player Coordinates/HP Pattern within the Kal Online forum part of the MMORPGs category.
02/15/2025, 16:14
|
#1
|
elite*gold: 0
Join Date: Feb 2010
Posts: 23
Received Thanks: 4
|
Player Coordinates/HP Pattern
Hi Guys,
does someone have the current patterns for player coordinates and player hp?
Best regards!
|
|
|
02/16/2025, 05:26
|
#2
|
elite*gold: 50
Join Date: May 2014
Posts: 1,910
Received Thanks: 941
|
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
|
#3
|
elite*gold: 0
Join Date: Feb 2010
Posts: 23
Received Thanks: 4
|
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
|
|
|
02/16/2025, 19:19
|
#4
|
elite*gold: 50
Join Date: May 2014
Posts: 1,910
Received Thanks: 941
|
Quote:
Originally Posted by LastKingOfHell
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 
|
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
|
#5
|
elite*gold: 0
Join Date: Feb 2010
Posts: 23
Received Thanks: 4
|
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
|
#6
|
elite*gold: 50
Join Date: May 2014
Posts: 1,910
Received Thanks: 941
|
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????***????xx????xxxxxx??***?x????***"), 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????***????xx????xxxxxx??***?x????***"), 1, true);
|
|
|
02/19/2025, 08:24
|
#7
|
elite*gold: 0
Join Date: Feb 2010
Posts: 23
Received Thanks: 4
|
I am dumb and i got it fixed. Thanks a lot for your help!
|
|
|
 |
Similar Threads
|
Metin2 C++ How do I pull player mob coordinates
08/14/2023 - Metin2 - 2 Replies
Hello, I have not found an answer to this question for a long time, I am writing an internal text2 cheat, but I do not know how to pull the player and mob coordinates.
I also found a soruce and that person pulled GetPixelPosition and GetMainActorPtr from this function, if it is pulled from here, how can I find the addresses from here?
|
Getting player coordinates in Genshin Impact
05/23/2023 - Genshin Impact - 0 Replies
Is there any way to get player current coordinates from game?
|
Metin2Earth - Player vs Metin Stones - Player vs Player
08/02/2018 - Metin2 PServer Advertising - 8 Replies
WEBSITE REGISTER DOWNLOAD
https://metin2earth.com/images/presentation/1.png
https://metin2earth.com/images/presentation/2.png
https://metin2earth.com/images/presentation/3.png
https://metin2earth.com/images/presentation/4.png
https://metin2earth.com/images/presentation/5.png
https://metin2earth.com/images/presentation/6.png
https://metin2earth.com/images/presentation/7.png
|
All times are GMT +1. The time now is 00:06.
|
|