How to find SendClickItemPacket

05/03/2021 07:05 ozuromo#1
So the server that I play Metin2 removed the function player.SendClickItemPacket from the library and I want to know if still possible to find it using Cheat Engine. Now, if it is possible, can someone give any tips or references on how to find it?
05/03/2021 09:57 ones-and-zer0es.mpeg#2
its net not player
05/03/2021 21:15 ozuromo#3
Quote:
Originally Posted by ones-and-zer0es.mpeg View Post
its net not player
I found that message by searching strings in Cheat Engine:
CPythonPlayer::SendClickItemPacket(dwIID=%d) : Non-exist item.
05/03/2021 21:20 ones-and-zer0es.mpeg#4
Quote:
Originally Posted by ozuromo View Post
I found that message by searching strings in Cheat Engine:
CPythonPlayer::SendClickItemPacket(dwIID=%d) : Non-exist item.
its inside the CPythonPlayer in c++ yes, but you wanted to call it through python or not?
05/03/2021 21:24 ozuromo#5
Quote:
Originally Posted by ones-and-zer0es.mpeg View Post
its inside the CPythonPlayer in c++ yes, but you wanted to call it through python or not?
When I inject python code into the client, and try to use player.SendClickItemPacket(item), I get the following message into syserr file:
AttributeError 'module' object has no attribute 'SendClickItemPacket'
05/03/2021 21:38 Benhero#6
Did you also try net.SendClickItemPacket(item)?
as recomennted in the post from ones-and-zer0es.mpeg
05/03/2021 21:41 ozuromo#7
Quote:
Originally Posted by Benhero View Post
Did you also try net.SendClickItemPacket(item)?
as recomennted in the post from ones-and-zer0es.mpeg
0503 16:41:26500 :: net.SendClickItemPacket(item)
0503 16:41:26500 :: AttributeError
0503 16:41:26500 :: :
0503 16:41:26500 :: 'module' object has no attribute 'SendClickItemPacket'

My uderstanding is that there is some functions that are in the client, but that i can't call through python so I need to find their addresses and call using C++. The thing is, i'm not really good in that and wanted some help...
05/04/2021 10:30 Aeryas#8
If you want to call it from python files you get loaded and it can't find the module base, it means that it has been renamed for the sole purpose of public stuff to not work. You can use a dumper like DragoDumper or whatever was it called here on the forums and it will find everything for you, including the renamed module names. You can get their refference base module name by following the top header in the specific section where you find your desired function you wish to call.

For a c++ call of that function you'll need a pointer to the network instance, the start address of the function and ofc a bit of knowledge to put things together. There are plenty of examples on the forum on these subjects.