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!
@KurucuPegasus14 Üstad eğer zamanın varsa o kod bloğunun resmini atar mısın altına "Profil" ya da şey yazılı?
@KurucuPegasus14 Çok sağol üstad som bir sorum olucak gm'lerin envanterlerini görebiliyorlar bu durum biraz garip onun için yapabileceğimiz bir şey var mı?
@KurucuPegasus14 Çok sağol üstad som bir sorum olucak gm'lerin envanterlerini görebiliyorlar bu durum biraz garip onun için yapabileceğimiz bir şey var mı?
cmd_general.cpp
ACMD(do_view_equip)
{
Altına
if (!ch->IsGM() && ch->GetMapIndex() == 41)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Gm Nin Profiline Mavi 1.Köyde Bakamazsin.");
return;
}
Eklermisin Yeni Yazdım Test Et
Olmassa Birde Bunu Denermisin
if (tch->IsGM(BLOCK_VIEW_EQUIPMENT))
{
ch->ChatPacket(CHAT_TYPE_INFO, "Gm Nin Profiline Bakamazsin.");
return;
}
if (tch->IsGM(BLOCK_VIEW_EQUIPMENT))
{
ch->ChatPacket(CHAT_TYPE_INFO, "Gm Nin Profiline Bakamazsin.");
return;
}
Game/packet.h Açılır-Aratılır:
Kod bloğu değişilir;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 bloğu değiştirilir;Kod:void CHARACTER::SendEquipment(LPCHARACTER ch)
Kod:void CHARACTER::SendEquipment(LPCHARACTER ch){[/B][/LEFT][/B][/LEFT][/B][/LEFT][/B][/LEFT][/B][/LEFT][/B][/LEFT] [B] [LEFT][B] [LEFT][B] [LEFT][B] [LEFT][B] [LEFT][B] [LEFT]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_equipKod 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:Kod:self.buttonDict[localeInfo.TARGET_BUTTON_EXIT_OBSERVER].SAFE_SetEvent(self.__OnExitObserver)
uitargetin ilk başındaki:Kod:self.buttonDict[localeInfo.TARGET_BUTTON_VIEW_EQUIPMENT].SAFE_SetEvent(self.__OnViewEquipment)
Aralarına ekleyin;Kod:BUTTON_NAME_LIST = (
Aratın: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;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
1008 14:07:21815 :: Unknown packet header: 185, last: 63 99
EIDT. Done , thank you , my bad cause it didnt work
Son düzenleme:
- 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
