Intrebare system!

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
Şniţi
Utilizator interzis !

Utilizator interzis !
Mesaje: 247
Membru din: 25 Mai 2016, 22:12
Aprecieri: 2  
Mulţumiri: 1  
Medalii

Stie cineva unde pot gasi si eu systemul sa vezi echipamentul adversarului cel cu buton in optiuni joc unde poti bloca si debloca daca vrei sa se vada sau nu, prefer un tutorial din sursa
Avatar utilizator
stilledanger
Mister Just4Metin

Mister Just4Metin
Mesaje: 993
Membru din: 31 Ian 2014, 22:30
Server: somthegame.com
Aprecieri: 5  
Mulţumiri: 100  
 Contact:
Medalii

Deschide din sursa server char.cpp si cauta

Cod: Selectaţi tot

void CHARACTER::SendEquipment(LPCHARACTER ch
si inlocuiesti toata functia cu

Cod: 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));
}
Deschide packet.h si cauta

Cod: Selectaţi tot

typedef struct packet_view_equip
si inlocuiesti toata structura cu

Cod: 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;
Acum intri in binary si deschizi Packet.h ,apoi cauti

Cod: Selectaţi tot

typedef struct packet_view_equip
si o inlocuiesti cu

Cod: Selectaţi tot

typedef struct packet_view_equip
{
	BYTE	header;
	DWORD	dwVID;
	TEquipmentItemSet equips[16];
} TPacketGCViewEquip;
Deschide PythonNetworkStreamPhaseGame.cpp si cauta

Cod: Selectaţi tot

bool CPythonNetworkStream::RecvViewEquipPacket()
si inlocuiesti functia booleana cu

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...
Avatar utilizator
Şniţi
Utilizator interzis !

Utilizator interzis !
Mesaje: 247
Membru din: 25 Mai 2016, 22:12
Aprecieri: 2  
Mulţumiri: 1  
Medalii

stilledanger scrie:Deschide din sursa server char.cpp si cauta

Cod: Selectaţi tot

void CHARACTER::SendEquipment(LPCHARACTER ch
si inlocuiesti toata functia cu

Cod: 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));
}
Deschide packet.h si cauta

Cod: Selectaţi tot

typedef struct packet_view_equip
si inlocuiesti toata structura cu

Cod: 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;
Acum intri in binary si deschizi Packet.h ,apoi cauti

Cod: Selectaţi tot

typedef struct packet_view_equip
si o inlocuiesti cu

Cod: Selectaţi tot

typedef struct packet_view_equip
{
	BYTE	header;
	DWORD	dwVID;
	TEquipmentItemSet equips[16];
} TPacketGCViewEquip;
Deschide PythonNetworkStreamPhaseGame.cpp si cauta

Cod: Selectaţi tot

bool CPythonNetworkStream::RecvViewEquipPacket()
si inlocuiesti functia booleana cu

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 equip
Avatar utilizator
Pongo A.K.A Titan
Utilizator interzis !

Utilizator interzis !
Mesaje: 2028
Membru din: 01 Sep 2016, 16:08
Regat: Jinno
Aprecieri: 35  
Mulţumiri: 261  
 Contact:
Medalii

Subiect Inactiv Arhivat !
 ! Mesaj de la: Pongo A.K.A Titan
Cand credeati ca am sa mor
M-am ridicat ca un invingator
Afișează semnătura
Închis
Răspunsuri
1
Vizualizări
159
Răspunsuri
4
Vizualizări
217
Răspunsuri
3
Vizualizări
341
Răspunsuri
5
Vizualizări
268

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Google [Bot] și 128 vizitatori