Premium TAUMP 927 Posted October 29 Premium Share Posted October 29 It's already posted in one tutorial, but why not make it a separate post 1.1) common/tables.h typedef struct SQuickslot { BYTE type; BYTE pos; } TQuickslot; BYTE pos; // Replace / edit: UINT pos; 1.x) length.h paste MAX_QUICKSLOT = 500 // You can adjust to the UINT limit 1.2) game/char.h BYTE bItemGrid[INVENTORY_AND_EQUIP_SLOT_MAX]; // Replace / edit: UINT bItemGrid[INVENTORY_AND_EQUIP_SLOT_MAX]; void SyncQuickslot(BYTE bType, BYTE bOldPos, BYTE bNewPos); // Replace / edit: void SyncQuickslot(BYTE bType, UINT bOldPos, UINT bNewPos); bool GetQuickslot(BYTE pos, TQuickslot ** ppSlot); // Replace / edit: bool GetQuickslot(UINT pos, TQuickslot ** ppSlot); bool SetQuickslot(BYTE pos, TQuickslot & rSlot); // Replace / edit: bool SetQuickslot(UINT pos, TQuickslot & rSlot); bool DelQuickslot(BYTE pos); // Replace / edit: bool DelQuickslot(UINT pos); bool SwapQuickslot(BYTE a, BYTE b); // Replace / edit: bool SwapQuickslot(UINT a, UINT b); void ChainQuickslotItem(LPITEM pItem, BYTE bType, BYTE bOldPos); // Replace / edit: void ChainQuickslotItem(LPITEM pItem, BYTE bType, UINT bOldPos); void SetWear(BYTE bCell, LPITEM item); // Replace / edit: void SetWear(UINT bCell, LPITEM item); LPITEM GetWear(BYTE bCell) const; // Replace / edit: LPITEM GetWear(UINT bCell) const; bool RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell = -1); // Replace / edit: bool RefineInformation(UINT bCell, BYTE bType, int iAdditionalCell = -1); bool SwapItem(BYTE bCell, BYTE bDestCell); // Replace / edit: bool SwapItem(UINT bCell, UINT bDestCell); 1.3) game/char_battle.cpp SyncQuickslot(QUICKSLOT_TYPE_ITEM, vec_bSlots, 255); // Replace / edit: SyncQuickslot(QUICKSLOT_TYPE_ITEM, vec_bSlots, MAX_QUICKSLOT); SyncQuickslot(QUICKSLOT_TYPE_ITEM, vec_bSlots, 255); // Replace / edit: SyncQuickslot(QUICKSLOT_TYPE_ITEM, vec_bSlots, MAX_QUICKSLOT); SyncQuickslot(QUICKSLOT_TYPE_ITEM, WEAR_UNIQUE1, 255); // Replace / edit: SyncQuickslot(QUICKSLOT_TYPE_ITEM, WEAR_UNIQUE1, MAX_QUICKSLOT); SyncQuickslot(QUICKSLOT_TYPE_ITEM, WEAR_UNIQUE1, 255); // Replace / edit: SyncQuickslot(QUICKSLOT_TYPE_ITEM, WEAR_UNIQUE1, MAX_QUICKSLOT); 1.3) game/char_item.cpp LPITEM CHARACTER::GetWear(BYTE bCell) const // Replace / edit: LPITEM CHARACTER::GetWear(UINT bCell) const void CHARACTER::SetWear(BYTE bCell, LPITEM item) // Replace / edit: void CHARACTER::SetWear(UINT bCell, LPITEM item) SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 255); // Replace / edit: SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, MAX_QUICKSLOT); BYTE bCell = Cell.cell; // Replace / edit: UINT bCell = Cell.cell; if (m_pointsInstant.bItemGrid[bCell] == iExceptionCell) // Replace / edit: if (m_pointsInstant.bItemGrid[bCell] == (UINT)iExceptionCell) if (m_pointsInstant.bItemGrid[bCell] == iExceptionCell) // Replace / edit: if (m_pointsInstant.bItemGrid[bCell] == (UINT)iExceptionCell) BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2); // Replace / edit: UINT bPage = bCell / (INVENTORY_MAX_NUM / 2); BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2); // Replace / edit: UINT bPage = bCell / (INVENTORY_MAX_NUM / 2); BYTE p = bCell + (5 * j); // Replace / edit: UINT p = bCell + (5 * j); BYTE p = bCell + (5 * j); // Replace / edit: UINT p = bCell + (5 * j); BYTE bCell = item->GetCell(); // Replace / edit: UINT bCell = item->GetCell(); BYTE bCell = item->GetCell(); // Replace / edit: UINT bCell = item->GetCell(); BYTE bCell = item->GetCell(); // Replace / edit: UINT bCell = item->GetCell(); bool CHARACTER::RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell) // Replace / edit: bool CHARACTER::RefineInformation(UINT bCell, BYTE bType, int iAdditionalCell) SyncQuickslot(QUICKSLOT_TYPE_ITEM, Cell.cell, 255); // Replace / edit: SyncQuickslot(QUICKSLOT_TYPE_ITEM, Cell.cell, MAX_QUICKSLOT); bool CHARACTER::SwapItem(BYTE bCell, BYTE bDestCell) // Replace / edit: bool CHARACTER::SwapItem(UINT bCell, UINT bDestCell) BYTE bEquipCell = item2->GetCell() - INVENTORY_MAX_NUM; // Replace / edit: UINT bEquipCell = item2->GetCell() - INVENTORY_MAX_NUM; BYTE bInvenCell = item1->GetCell() // Replace / edit: UINT bInvenCell = item1->GetCell(); BYTE bCell1 = item1->GetCell(); // Replace / edit: UINT bCell1 = item1->GetCell(); BYTE bCell2 = item2->GetCell(); // Replace / edit: UINT bCell2 = item2->GetCell(); BYTE bOldCell = item->GetCell(); // Replace / edit: UINT bOldCell = item->GetCell(); 1.4) game/char_quickslot.cpp void CHARACTER::SyncQuickslot(BYTE bType, BYTE bOldPos, BYTE bNewPos) // Replace / edit: void CHARACTER::SyncQuickslot(BYTE bType, UINT bOldPos, UINT bNewPos) if (bNewPos == 255) // Replace / edit: if (bNewPos == MAX_QUICKSLOT) bool CHARACTER::GetQuickslot(BYTE pos, TQuickslot ** ppSlot) // Replace / edit: bool CHARACTER::GetQuickslot(UINT pos, TQuickslot ** ppSlot) bool CHARACTER::SetQuickslot(BYTE pos, TQuickslot & rSlot) // Replace / edit: bool CHARACTER::SetQuickslot(UINT pos, TQuickslot & rSlot) bool CHARACTER::DelQuickslot(BYTE pos) // Replace / edit: bool CHARACTER::DelQuickslot(UINT pos) bool CHARACTER::SwapQuickslot(BYTE a, BYTE b) // Replace / edit: bool CHARACTER::SwapQuickslot(UINT a, UINT b) void CHARACTER::ChainQuickslotItem(LPITEM pItem, BYTE bType, BYTE bOldPos) // Replace / edit: void CHARACTER::ChainQuickslotItem(LPITEM pItem, BYTE bType, UINT bOldPos) 1.5) game/cmd_general.cpp for (BYTE i=0; i<INVENTORY_MAX_NUM; ++i) // Replace / edit: for (UINT i=0; i<INVENTORY_MAX_NUM; ++i) 1.6) game/cmd_gm.cpp ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 255); // Replace / edit: ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, MAX_QUICKSLOT); BYTE cell = 0; // Replace / edit: UINT cell = 0; BYTE cell = 0; // Replace / edit: UINT cell = 0; BYTE cell = 0; // Replace / edit: UINT cell = 0; 1.7) game/exchange.cpp m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255); // Replace / edit: m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), MAX_QUICKSLOT); BYTE bCell = rod->GetCell(); // Replace / edit: UINT bCell = rod->GetCell(); 1.8) game/input_main.cpp case SHOP_SUBHEADER_CG_SELL2: { if (uiBytes < sizeof(BYTE) + sizeof(BYTE)) // Replace / edit: if (uiBytes < sizeof(UINT) + sizeof(BYTE)) BYTE pos = *(c_pData++); // Replace / edit: UINT pos = *reinterpret_cast<const UINT*>(c_pData++); BYTE count = *(c_pData); sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName()); CShopManager::instance().Sell(ch, pos, count); return sizeof(BYTE) + sizeof(BYTE); // Replace / edit: return sizeof(UINT) + sizeof(BYTE); } ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, p->ItemPos.cell, 255); // Replace / edit: ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, p->ItemPos.cell, MAX_QUICKSLOT); 2.0) game/item.cpp pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, wCell, 255); // Replace / edit: pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, wCell, MAX_QUICKSLOT); m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, m_wCell, 255); // Replace / edit: m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, m_wCell, MAX_QUICKSLOT); bool CItem::EquipTo(LPCHARACTER ch, BYTE bWearCell) // Replace / edit: bool CItem::EquipTo(LPCHARACTER ch, UINT bWearCell) 2.1) game/item.h bool EquipTo(LPCHARACTER ch, BYTE bWearCell); // Replace / edit: bool EquipTo(LPCHARACTER ch, UINT bWearCell); 2.2) game/item_manager.cpp o->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255); // Replace / edit: o->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), MAX_QUICKSLOT); 2.3) game/mining.cpp BYTE bCell = rkOldPick.GetCell(); // Replace / edit: UINT bCell = rkOldPick.GetCell(); BYTE bCell = rkOldPick.GetCell(); // Replace / edit: UINT bCell = rkOldPick.GetCell(); 2.4) game/packet.h typedef struct command_quickslot_add { BYTE header; BYTE pos; TQuickslot slot; } TPacketCGQuickslotAdd; // Replace / edit: typedef struct command_quickslot_add { BYTE header; UINT pos; TQuickslot slot; } TPacketCGQuickslotAdd; typedef struct command_quickslot_del { BYTE header; BYTE pos; } TPacketCGQuickslotDel; // Replace / edit: typedef struct command_quickslot_del { BYTE header; UINT pos; } TPacketCGQuickslotDel; typedef struct command_quickslot_swap { BYTE header; BYTE pos; BYTE change_pos; } TPacketCGQuickslotSwap; // Replace / edit: typedef struct command_quickslot_swap { BYTE header; UINT pos; UINT change_pos; } TPacketCGQuickslotSwap; typedef struct packet_item_del { BYTE header; BYTE pos; } TPacketGCItemDel; // Replace / edit: typedef struct packet_item_del { BYTE header; UINT pos; } TPacketGCItemDel; struct packet_quickslot_add { BYTE header; BYTE pos; TQuickslot slot; }; // Replace / edit: struct packet_quickslot_add { BYTE header; UINT pos; TQuickslot slot; }; struct packet_quickslot_del { BYTE header; BYTE pos; }; // Replace / edit: struct packet_quickslot_del { BYTE header; UINT pos; }; struct packet_quickslot_swap { BYTE header; BYTE pos; BYTE pos_to; }; // Replace / edit: struct packet_quickslot_swap { BYTE header; UINT pos; UINT pos_to; }; typedef struct SPacketCGRefine { BYTE header; BYTE pos; BYTE type; } TPacketCGRefine; // Replace / edit: typedef struct SPacketCGRefine { BYTE header; UINT pos; BYTE type; } TPacketCGRefine; typedef struct SPacketCGRequestRefineInfo { BYTE header; BYTE pos; } TPacketCGRequestRefineInfo; // Replace / edit: typedef struct SPacketCGRequestRefineInfo { BYTE header; UINT pos; } TPacketCGRequestRefineInfo; typedef struct SPacketGCRefineInformaion { BYTE header; BYTE type; BYTE pos; DWORD src_vnum; DWORD result_vnum; BYTE material_count; // Replace / edit: typedef struct SPacketGCRefineInformaion { BYTE header; BYTE type; UINT pos; DWORD src_vnum; DWORD result_vnum; BYTE material_count; 2.x) game/fishing.cpp // 2x times BYTE bCell = rod->GetCell(); // Replace / edit: UINT bCell = rod->GetCell(); 2.5) game/questlua_global.cpp BYTE bCell = (BYTE) lua_tonumber(L,-1); // Replace / edit: UINT bCell = lua_tonumber(L, -1); BYTE bCell = (BYTE) lua_tonumber(L,-1); // Replace / edit: UINT bCell = lua_tonumber(L, -1); 2.6) game/questlua_item.cpp BYTE bCell = pItem->GetCell(); // Replace / edit: UINT bCell = pItem->GetCell(); 2.7) game/questlua_pc.cpp BYTE bCell = (BYTE)lua_tonumber(L, 1); // Replace / edit: UINT bCell = lua_tonumber(L, 1); 2.8) game/safebox.cpp LPITEM CSafebox::GetItem(BYTE bCell) // Replace / edit: LPITEM CSafebox::GetItem(UINT bCell) bool CSafebox::MoveItem(BYTE bCell, BYTE bDestCell, BYTE count) // Replace / edit: bool CSafebox::MoveItem(UINT bCell, UINT bDestCell, BYTE count) 2.9) game/safebox.h bool MoveItem(BYTE bCell, BYTE bDestCell, BYTE count); // Replace / edit: bool MoveItem(UINT bCell, UINT bDestCell, BYTE count); LPITEM GetItem(BYTE bCell); // Replace / edit: LPITEM GetItem(UINT bCell); 3.0) game/shop.cpp m_pkPC->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255); // Replace / edit: m_pkPC->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), MAX_QUICKSLOT); 3.1) game/shop_manager.cpp void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount) // Replace / edit: void CShopManager::Sell(LPCHARACTER ch, UINT bCell, BYTE bCount) 3.2) game/shop_manager.h void Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount=0); // Replace / edit: void Sell(LPCHARACTER ch, UINT bCell, BYTE bCount = 0); 3.3) UserInterface/AbstractPlayer.h virtual void AddQuickSlot(int QuickslotIndex, char IconType, char IconPosition) = 0; // Replace / edit: virtual void AddQuickSlot(int QuickslotIndex, char IconType, UINT IconPosition) = 0; 3.4) UserInterface/GameType.h typedef struct SQuickSlot { BYTE Type; BYTE Position; } TQuickSlot; // Replace / edit: typedef struct SQuickSlot { BYTE Type; UINT Position; } TQuickSlot; 3.5) UserInterface/Packet.h typedef struct command_quickslot_add { BYTE header; BYTE pos; TQuickSlot slot; }TPacketCGQuickSlotAdd; // Replace / edit: typedef struct command_quickslot_add { BYTE header; UINT pos; TQuickSlot slot; }TPacketCGQuickSlotAdd; typedef struct command_quickslot_del { BYTE header; BYTE pos; }TPacketCGQuickSlotDel; // Replace / edit: typedef struct command_quickslot_del { BYTE header; UINT pos; }TPacketCGQuickSlotDel; typedef struct command_quickslot_swap { BYTE header; BYTE pos; BYTE change_pos; }TPacketCGQuickSlotSwap; // Replace / edit: typedef struct command_quickslot_swap { BYTE header; UINT pos; UINT change_pos; }TPacketCGQuickSlotSwap; typedef struct SPacketCGRefine { BYTE header; BYTE pos; BYTE type; } TPacketCGRefine; // Replace / edit: typedef struct SPacketCGRefine { BYTE header; UINT pos; BYTE type; } TPacketCGRefine; typedef struct packet_item_del { BYTE header; BYTE pos; } TPacketGCItemDel; // Replace / edit: typedef struct packet_item_del { BYTE header; UINT pos; } TPacketGCItemDel; typedef struct packet_quickslot_add { BYTE header; BYTE pos; TQuickSlot slot; } TPacketGCQuickSlotAdd; // Replace / edit: typedef struct packet_quickslot_add { BYTE header; UINT pos; TQuickSlot slot; } TPacketGCQuickSlotAdd; typedef struct packet_quickslot_del { BYTE header; BYTE pos; } TPacketGCQuickSlotDel; // Replace / edit: typedef struct packet_quickslot_del { BYTE header; UINT pos; } TPacketGCQuickSlotDel; typedef struct packet_quickslot_swap { BYTE header; BYTE pos; BYTE change_pos; } TPacketGCQuickSlotSwap; // Replace / edit: typedef struct packet_quickslot_swap { BYTE header; UINT pos; UINT change_pos; } TPacketGCQuickSlotSwap; typedef struct SPacketGCRefineInformation { BYTE header; BYTE pos; TRefineTable refine_table; } TPacketGCRefineInformation; // Replace / edit: typedef struct SPacketGCRefineInformation { BYTE header; UINT pos; TRefineTable refine_table; } TPacketGCRefineInformation; typedef struct SPacketGCRefineInformationNew { BYTE header; BYTE type; BYTE pos; TRefineTable refine_table; } TPacketGCRefineInformationNew; // Replace / edit: typedef struct SPacketGCRefineInformationNew { BYTE header; BYTE type; UINT pos; TRefineTable refine_table; } TPacketGCRefineInformationNew; 3.6) UserInterface/PythonNetworkStream.h bool SendQuickSlotAddPacket(BYTE wpos, BYTE type, BYTE pos); // Replace / edit: bool SendQuickSlotAddPacket(UINT wpos, BYTE type, UINT pos); bool SendQuickSlotDelPacket(BYTE wpos); // Replace / edit: bool SendQuickSlotDelPacket(UINT wpos); bool SendQuickSlotMovePacket(BYTE wpos, BYTE change_pos); // Replace / edit: bool SendQuickSlotMovePacket(UINT wpos, UINT change_pos); bool SendShopSellPacketNew(BYTE bySlot, BYTE byCount); // Replace / edit: bool SendShopSellPacketNew(UINT bySlot, BYTE byCount); bool SendRefinePacket(BYTE byPos, BYTE byType); // Replace / edit: bool SendRefinePacket(UINT byPos, BYTE byType); 3.7) UserInterface/PythonNetworkStreamPhaseGame.cpp bool CPythonNetworkStream::SendRefinePacket(BYTE byPos, BYTE byType) // Replace / edit: bool CPythonNetworkStream::SendRefinePacket(UINT byPos, BYTE byType) 3.8) UserInterface/PythonNetworkStreamPhaseGameItem.cpp bool CPythonNetworkStream::SendShopSellPacketNew(BYTE bySlot, BYTE byCount) // Replace / edit: bool CPythonNetworkStream::SendShopSellPacketNew(UINT bySlot, BYTE byCount) { if (!__CanActMainInstance()) return true; TPacketCGShop PacketShop; PacketShop.header = HEADER_CG_SHOP; PacketShop.subheader = SHOP_SUBHEADER_CG_SELL2; if (!Send(sizeof(TPacketCGShop), &PacketShop)) { Tracef("SendShopSellPacket Error\n"); return false; } if (!Send(sizeof(UINT), &bySlot)) { Tracef("SendShopAddSellPacket Error\n"); return false; } if (!Send(sizeof(BYTE), &byCount)) { Tracef("SendShopAddSellPacket Error\n"); return false; } Tracef(" SendShopSellPacketNew(bySlot=%d, byCount=%d)\n", bySlot, byCount); return SendSequence(); } bool CPythonNetworkStream::SendQuickSlotAddPacket(BYTE wpos, BYTE type, BYTE pos) // Replace / edit: bool CPythonNetworkStream::SendQuickSlotAddPacket(UINT wpos, BYTE type, UINT pos) bool CPythonNetworkStream::SendQuickSlotDelPacket(BYTE pos) // Replace / edit: bool CPythonNetworkStream::SendQuickSlotDelPacket(UINT pos) bool CPythonNetworkStream::SendQuickSlotMovePacket(BYTE pos, BYTE change_pos) // Replace / edit: bool CPythonNetworkStream::SendQuickSlotMovePacket(UINT pos, UINT change_pos) 3.9) UserInterface/PythonPlayer.cpp for (BYTE i = 0; i < QUICKSLOT_MAX_NUM; ++i) // Replace / edit: for (UINT i = 0; i < QUICKSLOT_MAX_NUM; ++i) rkNetStream.SendQuickSlotMovePacket((BYTE) dwGlobalSrcSlotIndex, (BYTE)dwGlobalDstSlotIndex); // Replace / edit: rkNetStream.SendQuickSlotMovePacket((UINT) dwGlobalSrcSlotIndex, (UINT)dwGlobalDstSlotIndex); rkNetStream.SendQuickSlotAddPacket((BYTE)dwGlobalSlotIndex, (BYTE)dwWndType, (BYTE)dwWndItemPos); // Replace / edit: rkNetStream.SendQuickSlotAddPacket((UINT)dwGlobalSlotIndex, (BYTE)dwWndType, (UINT)dwWndItemPos); rkNetStream.SendQuickSlotDelPacket((BYTE)dwGlobalSlotIndex); // Replace / edit: rkNetStream.SendQuickSlotDelPacket((UINT)dwGlobalSlotIndex); void CPythonPlayer::AddQuickSlot(int QuickSlotIndex, char IconType, char IconPosition) // Replace / edit: void CPythonPlayer::AddQuickSlot(int QuickSlotIndex, char IconType, UINT IconPosition) 4.1) UserInterface/PythonPlayer.h void AddQuickSlot(int QuickslotIndex, char IconType, char IconPosition); // Replace / edit: void AddQuickSlot(int QuickslotIndex, char IconType, UINT IconPosition); 1 1 Link to comment Share on other sites More sharing options...
Recommended Posts