Intrebare system!
Deschide din sursa server char.cpp si cauta si inlocuiesti toata functia cu
Deschide packet.h si cauta si inlocuiesti toata structura cu
Acum intri in binary si deschizi Packet.h ,apoi cauti si o inlocuiesti cu
Deschide PythonNetworkStreamPhaseGame.cpp si cauta si inlocuiesti functia booleana cu
Daca am timp si nu rezolvi partea py o sa o scot de la mine din client , momentan nu am timp de asta...
Cod: Selectaţi tot
void CHARACTER::SendEquipment(LPCHARACTER chCod: Selectaţi tot
void CHARACTER::SendEquipment(LPCHARACTER ch)
{
TPacketViewEquip p;
p.header = HEADER_GC_VIEW_EQUIP;
p.vid = GetVID();
int pos[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19, 20, 21, 22, 23 };
for (int i = 0; i < 16; i++)
{
LPITEM item = GetWear(pos[i]);
if (item)
{
p.equips[i].vnum = item->GetVnum();
p.equips[i].count = item->GetCount();
thecore_memcpy(p.equips[i].alSockets, item->GetSockets(), sizeof(p.equips[i].alSockets));
thecore_memcpy(p.equips[i].aAttr, item->GetAttributes(), sizeof(p.equips[i].aAttr));
}
else
{
p.equips[i].vnum = 0;
}
}
ch->GetDesc()->Packet(&p, sizeof(p));
}Cod: Selectaţi tot
typedef struct packet_view_equipCod: Selectaţi tot
typedef struct packet_view_equip
{
BYTE header;
DWORD vid;
struct {
DWORD vnum;
BYTE count;
long alSockets[ITEM_SOCKET_MAX_NUM];
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
} equips[16];
} TPacketViewEquip;Cod: Selectaţi tot
typedef struct packet_view_equipCod: Selectaţi tot
typedef struct packet_view_equip
{
BYTE header;
DWORD dwVID;
TEquipmentItemSet equips[16];
} TPacketGCViewEquip;Cod: Selectaţi tot
bool CPythonNetworkStream::RecvViewEquipPacket()Cod: Selectaţi tot
bool CPythonNetworkStream::RecvViewEquipPacket()
{
TPacketGCViewEquip kViewEquipPacket;
if (!Recv(sizeof(kViewEquipPacket), &kViewEquipPacket))
return false;
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "OpenEquipmentDialog", Py_BuildValue("(i)", kViewEquipPacket.dwVID));
for (int i = 0; i < 16; ++i)
{
TEquipmentItemSet & rItemSet = kViewEquipPacket.equips[i];
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetEquipmentDialogItem", Py_BuildValue("(iiii)", kViewEquipPacket.dwVID, i, rItemSet.vnum, rItemSet.count));
for (int j = 0; j < ITEM_SOCKET_SLOT_MAX_NUM; ++j)
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetEquipmentDialogSocket", Py_BuildValue("(iiii)", kViewEquipPacket.dwVID, i, j, rItemSet.alSockets[j]));
for (int k = 0; k < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++k)
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetEquipmentDialogAttr", Py_BuildValue("(iiiii)", kViewEquipPacket.dwVID, i, k, rItemSet.aAttr[k].bType, rItemSet.aAttr[k].sValue));
}
return true;
}Daca am timp si nu rezolvi partea py o sa o scot de la mine din client , momentan nu am timp de asta...
Da-mi si partea py cu on/off view equipstilledanger scrie:Deschide din sursa server char.cpp si cautasi inlocuiesti toata functia cuCod: Selectaţi tot
void CHARACTER::SendEquipment(LPCHARACTER chDeschide packet.h si cautaCod: Selectaţi tot
void CHARACTER::SendEquipment(LPCHARACTER ch) { TPacketViewEquip p; p.header = HEADER_GC_VIEW_EQUIP; p.vid = GetVID(); int pos[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19, 20, 21, 22, 23 }; for (int i = 0; i < 16; i++) { LPITEM item = GetWear(pos[i]); if (item) { p.equips[i].vnum = item->GetVnum(); p.equips[i].count = item->GetCount(); thecore_memcpy(p.equips[i].alSockets, item->GetSockets(), sizeof(p.equips[i].alSockets)); thecore_memcpy(p.equips[i].aAttr, item->GetAttributes(), sizeof(p.equips[i].aAttr)); } else { p.equips[i].vnum = 0; } } ch->GetDesc()->Packet(&p, sizeof(p)); }si inlocuiesti toata structura cuCod: Selectaţi tot
typedef struct packet_view_equipAcum intri in binary si deschizi Packet.h ,apoi cautiCod: Selectaţi tot
typedef struct packet_view_equip { BYTE header; DWORD vid; struct { DWORD vnum; BYTE count; long alSockets[ITEM_SOCKET_MAX_NUM]; TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM]; } equips[16]; } TPacketViewEquip;si o inlocuiesti cuCod: Selectaţi tot
typedef struct packet_view_equipDeschide PythonNetworkStreamPhaseGame.cpp si cautaCod: Selectaţi tot
typedef struct packet_view_equip { BYTE header; DWORD dwVID; TEquipmentItemSet equips[16]; } TPacketGCViewEquip;si inlocuiesti functia booleana cuCod: Selectaţi tot
bool CPythonNetworkStream::RecvViewEquipPacket()Cod: Selectaţi tot
bool CPythonNetworkStream::RecvViewEquipPacket() { TPacketGCViewEquip kViewEquipPacket; if (!Recv(sizeof(kViewEquipPacket), &kViewEquipPacket)) return false; PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "OpenEquipmentDialog", Py_BuildValue("(i)", kViewEquipPacket.dwVID)); for (int i = 0; i < 16; ++i) { TEquipmentItemSet & rItemSet = kViewEquipPacket.equips[i]; PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetEquipmentDialogItem", Py_BuildValue("(iiii)", kViewEquipPacket.dwVID, i, rItemSet.vnum, rItemSet.count)); for (int j = 0; j < ITEM_SOCKET_SLOT_MAX_NUM; ++j) PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetEquipmentDialogSocket", Py_BuildValue("(iiii)", kViewEquipPacket.dwVID, i, j, rItemSet.alSockets[j])); for (int k = 0; k < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++k) PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetEquipmentDialogAttr", Py_BuildValue("(iiiii)", kViewEquipPacket.dwVID, i, k, rItemSet.aAttr[k].bType, rItemSet.aAttr[k].sValue)); } return true; }
Daca am timp si nu rezolvi partea py o sa o scot de la mine din client , momentan nu am timp de asta...
Subiect Inactiv Arhivat !
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Google [Bot] și 128 vizitatori

