Party System - Extended Info Members
Afiseaza informatii extinse la membrii din grupa.
*Poze / Video:
*Link download / Code:
Adaugam in common/service.h:
Code:
#define EXTENDED_PARTY_INFOCode:
bool CHARACTER::BuildUpdatePartyPacket(TPacketGCPartyUpdate & out)
out.role = GetParty()->GetRole(GetPlayerID());Mai jos avem
Code:
void CHARACTER::PointChange(BYTE type, int amount, bool bAmount, bool bBroadcast
val = GetExp();
}Deschidem packet.h si cautam:
Code:
typedef struct packet_party_update
{
BYTE header;
DWORD pid;
BYTE role;
BYTE percent_hp;Deschidem party.cpp si cautam:
Code:
void CParty::SendPartyInfoOneToAll(DWORD pid)
{
auto it = m_memberMap.find(pid);
if (it == m_memberMap.end())
return;
if (it->second.pCharacter)
{
SendPartyInfoOneToAll(it->second.pCharacter);
return;
}
// Data Building
TPacketGCPartyUpdate p;
memset(&p, 0, sizeof(p));
p.header = HEADER_GC_PARTY_UPDATE;
p.pid = pid;
p.percent_hp = 255;
p.role = it->second.bRole;Cautam:
Code:
void CParty::SendPartyInfoAllToOne(LPCHARACTER ch)
{
TPacketGCPartyUpdate p;
for (auto it = m_memberMap.begin(); it != m_memberMap.end(); ++it)
{
if (!it->second.pCharacter)
{
DWORD pid = it->first;
memset(&p, 0, sizeof(p));
p.header = HEADER_GC_PARTY_UPDATE;
p.pid = pid;
p.percent_hp = 255;
p.role = it->second.bRole;Acum, in sursa binary deschidem Packet.h si cautam:
Code:
typedef struct packet_party_update
{
BYTE header;
DWORD pid;
BYTE state;
BYTE percent_hp;Deschidem PythonApplicationModule.cpp si adaugam:
Deschidem PythonNetworkStreamPhaseGame.cpp si cautam:
Code:
CPythonPlayer::Instance().UpdatePartyMemberInfo(kPartyUpdatePacket.pid, kPartyUpdatePacket.state, kPartyUpdatePacket.percent_hp);Deschidem PythonPlayer.cpp si cautam:
Code:
void CPythonPlayer::UpdatePartyMemberInfo(DWORD dwPID, BYTE byState, BYTE byHPPercentage)Cautam mai jos:
Code:
pPartyMemberInfo->byState = byState;
pPartyMemberInfo->byHPPercentage = byHPPercentage;Deschidem acum PythonPlayer.h si cautam:
Code:
typedef struct SPartyMemberInfo
{
SPartyMemberInfo(DWORD _dwPID, const char * c_szName) : dwPID(_dwPID), strName(c_szName), dwVID(0) {}
DWORD dwVID;
DWORD dwPID;
std::string strName;
BYTE byState;
BYTE byHPPercentage;Mai jos gasim:
Code:
void UpdatePartyMemberInfo(DWORD dwPID, BYTE byState, BYTE byHPPercentage);Deschidem PythonPlayerModule.cpp si cautam:
Code:
PyObject * playerGetPartyMemberHPPercentage(PyObject* poSelf, PyObject* poArgs)
{
int iPID;
if (!PyTuple_GetInteger(poArgs, 0, &iPID))
return Py_BuildException();
CPythonPlayer::TPartyMemberInfo * pPartyMemberInfo;
if (!CPythonPlayer::Instance().GetPartyMemberPtr(iPID, &pPartyMemberInfo))
return Py_BuildValue("i", FALSE);
return Py_BuildValue("i", pPartyMemberInfo->byHPPercentage);
}Mai jos gasim:
Code:
{ "GetPartyMemberHPPercentage", playerGetPartyMemberHPPercentage, METH_VARARGS },Nu uitati sa adaugati in locale_inc.h:
Code:
#define EXTENDED_PARTY_INFOCode:
EXTENDED_PARTY_INFOuiparty.py:
ui.py:
uiscript/partymemberinfoboard.py:
Adaugati in etc\ymir work\ui\pattern\ asta:


la acest mesaj și conținutul se va afișa automat.

