HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Game/packet.h Açılır-Aratılır:
Kod bloğu değişilir;
Kod bloğu değiştirilir;
Gamesrc bitti
Clientsrc/Userınterface/packet.h aratılır:
Kod:
typedef struct pakcet_view_equip
Kod:
typedef struct pakcet_view_equip
{
BYTE header;
DWORD vid;
struct
{
DWORD vnum;
BYTE count;
long alSockets[ITEM_SOCKET_MAX_NUM];
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
} equips[19];
} TPacketViewEquip;
Char.cpp aratılır:
Kod:
void CHARACTER::SendEquipment(LPCHARACTER ch)
Kod:
void CHARACTER::SendEquipment(LPCHARACTER ch){
TPacketViewEquip p;
p.header = HEADER_GC_VIEW_EQUIP;
p.vid = GetVID();
int pos[19] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19, 20, 21, 22, 23, 24, 25, 26 };
for (int i = 0; i < 19; 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));
}
Gamesrc bitti
Clientsrc/Userınterface/packet.h aratılır:
Kod:
typedef struct pakcet_view_equip
Kod bloğu değiştirilir;
Kod:
typedef struct pakcet_view_equip
{
BYTE header;
DWORD dwVID;
TEquipmentItemSet equips[19];
} TPacketGCViewEquip;
UserInterfacePythonNetworkStreamPhaseGame.cpp aratın:
Değiştirin;
Kod:
bool CPythonNetworkStream::RecvViewEquipPacket()
Kod:
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 < 19; ++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;
}
Clientsrcde bitti
root/uitarget.py aratın:
Altına ekle:
uitargetin ilk başındaki:
Aralarına ekleyin;
Aratın:
root/uitarget.py aratın:
Kod:
self.buttonDict[localeInfo.TARGET_BUTTON_EXIT_OBSERVER].SAFE_SetEvent(self.__OnExitObserver)
Kod:
self.buttonDict[localeInfo.TARGET_BUTTON_VIEW_EQUIPMENT].SAFE_SetEvent(self.__OnViewEquipment)
Kod:
BUTTON_NAME_LIST = (
Kod:
localeInfo.TARGET_BUTTON_VIEW_EQUIPMENT,
Kod:
def __OnExitObserver(self):
net.SendChatPacket("/observer_exit")
Altına ekleyin;
Kod:
def __OnViewEquipment(self):
net.SendChatPacket("/view_equip " + str(self.vid))
Aratın:
Kod:
def ShowDefaultButton(self):
Kod:
def ShowDefaultButton(self):
self.isShowButton = TRUE
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_WHISPER])
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_EXCHANGE])
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_FIGHT])
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_VIEW_EQUIPMENT])
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_EMOTION_ALLOW])
for button in self.showingButtonList:
button.Show()
Bir bug var onuda fixliyelim sürekli açabiliyorsunuz;
root/interfacemodule.py aratın:
Değiştirin;
root/interfacemodule.py aratın:
Kod:
def OpenEquipmentDialog(self, vid):
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Kod:
def OpenEquipmentDialog(self, vid):
if self.equipmentDialogDict.has_key(vid):
self.equipmentDialogDict[vid].Destroy()
self.CloseEquipmentDialog(vid)
dlg = uiEquipmentDialog.EquipmentDialog()
dlg.SetItemToolTip(self.tooltipItem)
dlg.SetCloseEvent(ui.__mem_func__(self.CloseEquipmentDialog))
dlg.Open(vid)
self.equipmentDialogDict[vid] = dlg
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
Sanırım bir eksik var bazı sourcelerde sadece gm ler görebilir.
game/cmd_general.cpp aç
ACMD(do_view_equip) arat
if (ch->GetGMLevel() <= GM_PLAYER)
return;
/*
if (ch->GetGMLevel() <= GM_PLAYER)
return;
*/
olarak değiştir. sorun düzelecektir.
Öğeyi görmek için üye olmalısınız.
Olmassa Birde Bunu Denermisin
if (tch->IsGM(BLOCK_VIEW_EQUIPMENT))
{
ch->ChatPacket(CHAT_TYPE_INFO, "Gm Nin Profiline Bakamazsin.");
return;
}
34k veya 2089 fileslerde sadece gameye diff atılarak ve roota ekleyerek çalışıyordu bunda ek olarak client sourceye eklemekte lazımmış gameye atılan diff clientde de mi geçerli acaba kafamda deli sorular
Deniyorum 10 15dkya kanıt atarım
Deniyorum 10 15dkya kanıt atarımbugün çok möthişizBak bu oldu teşekkürler![]()
hayır aslında cliente fln eklemye gerek yok farkettiysen değiştirin diyorum çünkü normalde envanter görüntüleme var ama onda sadece zırh silah vb gösterir bunda kostüm ringler ve kemeride gösterir34k veya 2089 fileslerde sadece gameye diff atılarak ve roota ekleyerek çalışıyordu bunda ek olarak client sourceye eklemekte lazımmış gameye atılan diff clientde de mi geçerli acaba kafamda deli sorularDeniyorum 10 15dkya kanıt atarım
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 212
- Cevaplar
- 37
- Görüntüleme
- 2K
- Cevaplar
- 33
- Görüntüleme
- 7K
- Cevaplar
- 65
- Görüntüleme
- 12K

