Jump to content

[Python] How to get PID from VID


Recommended Posts

  • 4 weeks later...
  • Forum Moderator

I don't know why you need it, but have fun.

How-To-Use:

# General:
chrmgr.GetPlayerID(vid)

# Example: uiTarget.py
import chat, chrmgr

def SetTargetVID(self, vid):
	self.vid = vid
	chat.AppendChat(chat.CHAT_TYPE_INFO, 'SetTargetVID - vid({:d}), pid({:d})'.format(self.vid, chrmgr.GetPlayerID(self.vid)))

95c8af78d699536eea4cd1104a1f2801.gif

 

  • Src/Client/UserInterface/InstanceBase.h
//1.1) Search for:
	public:
		const TPixelPosition&	NEW_GetDstPixelPositionRef();
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	public:
		void SetPlayerID(const DWORD dwPID)
		{
			m_dwPlayerID = dwPID;
		}
		const DWORD GetPlayerID()
		{
			return m_dwPlayerID;
		}
	protected:
		DWORD m_dwPlayerID;
#endif
  • Src/Client/UserInterface/InstanceBase.cpp
//1.1) Search for:
	SetVirtualID(c_rkCreateData.m_dwVID);
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	if (IsPC())
		SetPlayerID(c_rkCreateData.m_dwPlayerID);
#endif

//2.1) Search for:
	m_dwEmoticonTime = 0;
//2.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	m_dwPlayerID = 0;
#endif
  • Src/Client/UserInterface/PythonCharacterManagerModule.cpp
//1.1) Search for:
		{ "RegisterTitleColor",			chrmgrRegisterTitleColor,				METH_VARARGS },
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
		{ "GetPlayerID",				chrmgGetPID,							METH_VARARGS },
#endif

//2.1) Search for:
		{ "RegisterTitleColor",			chrmgrRegisterTitleColor,				METH_VARARGS },
//2.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
PyObject * chrmgGetPID(PyObject* poSelf, PyObject* poArgs)
{
	int nVID;
	if (!PyTuple_GetInteger(poArgs, 0, &nVID))
		return Py_BadArgument();
	
	CPythonCharacterManager & rkChrMgr = CPythonCharacterManager::Instance();
	CInstanceBase * pkInstBase = rkChrMgr.GetInstancePtr(nVID);
	if (!pkInstBase)
		return Py_BuildValue("i", 0); 
	
	return Py_BuildValue("i", (pkInstBase->IsPC()) ? pkInstBase->GetPlayerID() : 0);
}
#endif
  • Src/Client/UserInterface/NetworkActorManager.cpp
//1.1) Search for:
	CInstanceBase::SCreateData kCreateData;
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	kCreateData.m_dwPlayerID=rkNetActorData.m_dwPlayerID;
#endif

//2.1) Search in SNetworkActorData::SNetworkActorData() for:
	m_dwVID=0;
//2.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	m_dwPlayerID = 0;
#endif

//3.1) Search in void SNetworkActorData::__copy__(const SNetworkActorData& src) for:
	m_dwVID = src.m_dwVID;
//3.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	m_dwPlayerID = src.m_dwPlayerID;
#endif
  • Src/Client/UserInterface/NetworkActorManager.h
//1.1) Search for:
	DWORD	m_dwVID;
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	DWORD	m_dwPlayerID;
#endif
  • Src/Client/UserInterface/PythonNetworkStreamPhaseGameActor.cpp
//1.1) Search for:
		kNetActorData.m_stName = chrInfoPacket.name;
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
		kNetActorData.m_dwPlayerID = chrInfoPacket.dwPlayerID;
#endif
  • Src/Client/UserInterface/Packet.h
//1.1) Search in packet_char_additional_info for:
	DWORD   dwVID;
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	DWORD	dwPlayerID;
#endif

Src/Client/UserInterface/Locale_inc.h

#define ENABLE_PID_TO_CLIENT

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

  • Src/Server/game/src/char.cpp
//1.1) Search for:
		addPacket.bEmpire = m_bEmpire;
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
		addPacket.dwPlayerID = IsPC() ? GetPlayerID() : 0;
#endif
  • Src/Server/game/src/packet.h
//1.1) Search in packet_char_additional_info for:
	DWORD   dwVID;
//1.2) Add after:
#ifdef ENABLE_PID_TO_CLIENT
	DWORD	dwPlayerID;
#endif
  • Src/Server/common/service.h
#define ENABLE_PID_TO_CLIENT

 

Edited by Metin2 Dev
Core X - External 2 Internal
  • Love 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.