Jump to content
Maintenance : Final step ×

[C++] Change maximum number of inventory slots and more


Recommended Posts

  • Premium

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);

 

  • Metin2 Dev 1
  • muscle 1


 

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.