[Forrás]QuickSlot bug javítása

Indította Feco, 2015-01-18, 23:46:54

2015-01-18, 23:46:54 Utolsó szerkesztés: 2015-01-19, 00:04:20 Szerző: Feco
Sziasztok!

Ahogy az TheSLZ egyik videójában látható, ha a 4inventory bent van a szerverünkön, és az övek utolsó 2 slotján lévő italt gyors gombra tesszük, akkor az ital helyett a táskánk első két helyén lévő tárgy jelenik meg a gyors gombon. Ennek a hibának a javítását írom most le.

char_quickslot.cpp-ben Keressétek ezt:
void CHARACTER::SyncQuickslot(BYTE bType, BYTE bOldPos, BYTE bNewPos)
Cseréljétek le erre:
void CHARACTER::SyncQuickslot(BYTE bType, WORD bOldPos, WORD bNewPos)

Keressétek ezt:
bool CHARACTER::GetQuickslot(BYTE pos, TQuickslot ** ppSlot)
Cseréljétek le erre:
bool CHARACTER::GetQuickslot(WORD pos, TQuickslot ** ppSlot)

Keressétek ezt:
bool CHARACTER::SetQuickslot(BYTE pos, TQuickslot & rSlot)
Cseréljétek le erre:
bool CHARACTER::SetQuickslot(WORD pos, TQuickslot & rSlot)

Keressétek ezt:
bool CHARACTER::DelQuickslot(BYTE pos)
Cseréljétek le erre:
bool CHARACTER::DelQuickslot(WORD pos)

Keressétek ezt:
bool CHARACTER::SwapQuickslot(BYTE a, BYTE b)
Cseréljétek le erre:
bool CHARACTER::SwapQuickslot(WORD a, WORD b)

Keressétek ezt:
void CHARACTER::ChainQuickslotItem(LPITEM pItem, BYTE bType, BYTE bOldPos)
Cseréljétek le erre:
void CHARACTER::ChainQuickslotItem(LPITEM pItem, BYTE bType, WORD bOldPos)

Keressétek ezt:
if (bNewPos == 255)

És cseréljétek le a 255-öt 400-ra.

Keressetek rá erre minden fájlban:
SyncQuickslot(
És mindenhol, ahol találtok 255-t, cseréljétek le 400-ra. Például nekem ez van a char_item.cpp-ben:
SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 255);
És erre kell cserélnem:
SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 400);



char.h-ban keressétek ezt:
void SyncQuickslot(BYTE bType, BYTE bOldPos, BYTE bNewPos);
Cseréljétek le erre:
void SyncQuickslot(BYTE bType, WORD bOldPos, WORD bNewPos);

Keressétek ezt:
bool GetQuickslot(BYTE pos, TQuickslot ** ppSlot);
Cseréljétek le erre:
bool GetQuickslot(WORD pos, TQuickslot ** ppSlot);

Keressétek ezt:
bool SetQuickslot(BYTE pos, TQuickslot & rSlot);
Cseréljétek le erre:
bool SetQuickslot(WORD pos, TQuickslot & rSlot);

Keressétek ezt:
bool DelQuickslot(BYTE pos);
Cseréljétek le erre:
bool DelQuickslot(WORD pos);

Keressétek ezt:
bool SwapQuickslot(BYTE a, BYTE b);
Cseréljétek le erre:
bool SwapQuickslot(WORD a, WORD b);

Keressétek ezt:
void ChainQuickslotItem(LPITEM pItem, BYTE bType, BYTE bOldPos);
Cseréljétek le erre:
void ChainQuickslotItem(LPITEM pItem, BYTE bType, WORD bOldPos);



packet.h-ban keressétek ezt:
typedef struct command_quickslot_add
{
BYTE header;
BYTE pos;
TQuickslot slot;
} TPacketCGQuickslotAdd;

typedef struct command_quickslot_del
{
BYTE header;
BYTE pos;
} TPacketCGQuickslotDel;

typedef struct command_quickslot_swap
{
BYTE header;
BYTE pos;
BYTE change_pos;
} TPacketCGQuickslotSwap;


Cseréljétek le erre:
typedef struct command_quickslot_add
{
BYTE header;
WORD pos;
TQuickslot slot;
} TPacketCGQuickslotAdd;

typedef struct command_quickslot_del
{
BYTE header;
WORD pos;
} TPacketCGQuickslotDel;

typedef struct command_quickslot_swap
{
BYTE header;
WORD pos;
WORD change_pos;
} TPacketCGQuickslotSwap;


Keressétek ezt:
struct packet_quickslot_add
{
BYTE header;
BYTE pos;
TQuickslot slot;
};

struct packet_quickslot_del
{
BYTE header;
BYTE pos;
};

struct packet_quickslot_swap
{
BYTE header;
BYTE pos;
BYTE pos_to;
};


Cseréljétek le erre:
struct packet_quickslot_add
{
BYTE header;
WORD pos;
TQuickslot slot;
};

struct packet_quickslot_del
{
BYTE header;
WORD pos;
};

struct packet_quickslot_swap
{
BYTE header;
WORD pos;
WORD pos_to;
};



common/tables.h-ban:

Keressétek ezt:
typedef struct SQuickslot
{
BYTE type;
BYTE pos;
} TQuickslot;


Cseréljétek le erre:
typedef struct SQuickslot
{
BYTE type;
WORD pos;
} TQuickslot;


Most a kliens forráson belül a UserInterface/packet.h-ban keressétek ezt:
typedef struct command_quickslot_add
{
    BYTE        header;
    BYTE        pos;
TQuickSlot slot;
}TPacketCGQuickSlotAdd;

typedef struct command_quickslot_del
{
    BYTE        header;
    BYTE        pos;
}TPacketCGQuickSlotDel;

typedef struct command_quickslot_swap
{
    BYTE        header;
    BYTE        pos;
    BYTE        change_pos;
}TPacketCGQuickSlotSwap;


Cseréljétek le erre:
typedef struct command_quickslot_add
{
    BYTE        header;
    WORD        pos;
TQuickSlot slot;
}TPacketCGQuickSlotAdd;

typedef struct command_quickslot_del
{
    BYTE        header;
    WORD        pos;
}TPacketCGQuickSlotDel;

typedef struct command_quickslot_swap
{
    BYTE        header;
    WORD        pos;
    WORD        change_pos;
}TPacketCGQuickSlotSwap;


Keressétek ezt:
typedef struct packet_quickslot_add
{
    BYTE        header;
    BYTE        pos;
TQuickSlot slot;
} TPacketGCQuickSlotAdd;

typedef struct packet_quickslot_del
{
    BYTE        header;
    BYTE        pos;
} TPacketGCQuickSlotDel;

typedef struct packet_quickslot_swap
{
    BYTE        header;
    BYTE        pos;
    BYTE        change_pos;
} TPacketGCQuickSlotSwap;


Cseréljétek le erre:
typedef struct packet_quickslot_add
{
    BYTE        header;
    WORD        pos;
TQuickSlot slot;
} TPacketGCQuickSlotAdd;

typedef struct packet_quickslot_del
{
    BYTE        header;
    WORD        pos;
} TPacketGCQuickSlotDel;

typedef struct packet_quickslot_swap
{
    BYTE        header;
    WORD        pos;
    WORD        change_pos;
} TPacketGCQuickSlotSwap;



GameType.h-ban Keressétek ezt:
typedef struct SQuickSlot
{
BYTE Type;
BYTE Position;
} TQuickSlot;


Cseréljétek le erre:
typedef struct SQuickSlot
{
BYTE Type;
WORD Position;
} TQuickSlot;


AbstractPlayer.h-ban Keressétek ezt:
virtual void AddQuickSlot(int QuickslotIndex, char IconType, char IconPosition) = 0;

Cseréljétek le erre:
virtual void AddQuickSlot(int QuickslotIndex, char IconType, WORD IconPosition) = 0;


PythonNetworkStream.h-ban Keressétek ezt:
bool SendQuickSlotAddPacket(BYTE wpos, BYTE type, BYTE pos);
bool SendQuickSlotDelPacket(BYTE wpos);
bool SendQuickSlotMovePacket(BYTE wpos, BYTE change_pos);

      
Cseréljétek le erre:
bool SendQuickSlotAddPacket(WORD wpos, BYTE type, WORD pos);
bool SendQuickSlotDelPacket(WORD wpos);
bool SendQuickSlotMovePacket(WORD wpos, WORD change_pos);



PythonNetworkStreamPhaseGameItem.cpp-ben Keressétek ezt:
bool CPythonNetworkStream::SendQuickSlotAddPacket(BYTE wpos, BYTE type, BYTE pos)

Cseréljétek le erre:
bool CPythonNetworkStream::SendQuickSlotAddPacket(WORD wpos, BYTE type, WORD pos)

Keressétek ezt:
bool CPythonNetworkStream::SendQuickSlotDelPacket(BYTE pos)
Cseréljétek le erre:
bool CPythonNetworkStream::SendQuickSlotDelPacket(WORD pos)

Keressétek ezt:
bool CPythonNetworkStream::SendQuickSlotMovePacket(BYTE pos, BYTE change_pos)
Cseréljétek le erre:
bool CPythonNetworkStream::SendQuickSlotMovePacket(WORD pos, WORD change_pos)

PythonPlayer.cpp-ben Keressétek ezt:
for (BYTE i = 0; i < QUICKSLOT_MAX_NUM; ++i)
Cseréljétek le erre:
for (WORD i = 0; i < QUICKSLOT_MAX_NUM; ++i)
   
Keressétek ezt:
rkNetStream.SendQuickSlotMovePacket((BYTE) dwGlobalSrcSlotIndex, (BYTE)dwGlobalDstSlotIndex);
Cseréljétek le erre:
rkNetStream.SendQuickSlotMovePacket((WORD) dwGlobalSrcSlotIndex, (WORD)dwGlobalDstSlotIndex);
   
Keressétek ezt:
rkNetStream.SendQuickSlotAddPacket((BYTE)dwGlobalSlotIndex, (BYTE)dwWndType, (BYTE)dwWndItemPos);

Cseréljétek le erre:
rkNetStream.SendQuickSlotAddPacket((WORD)dwGlobalSlotIndex, (BYTE)dwWndType, (WORD)dwWndItemPos);
   
Keressétek ezt:
            rkNetStream.SendQuickSlotAddPacket((BYTE)dwGlobalQuickSlotIndex, (BYTE)dwWndType, (BYTE)dwWndItemPos);
Cseréljétek le erre:
            rkNetStream.SendQuickSlotAddPacket((WORD)dwGlobalQuickSlotIndex, (BYTE)dwWndType, (WORD)dwWndItemPos);

Keressétek ezt:
rkNetStream.SendQuickSlotDelPacket((BYTE)dwGlobalSlotIndex);
Cseréljétek le erre:
rkNetStream.SendQuickSlotDelPacket((WORD)dwGlobalSlotIndex);

Keressétek ezt:
void CPythonPlayer::AddQuickSlot(int QuickSlotIndex, char IconType, char IconPosition)
Cseréljétek le erre:
void CPythonPlayer::AddQuickSlot(int QuickSlotIndex, char IconType, WORD IconPosition)

PythonPlayer.h-ban Keressétek ezt:
void AddQuickSlot(int QuickslotIndex, char IconType, char IconPosition);
Cseréljétek le erre:
void AddQuickSlot(int QuickslotIndex, char IconType, WORD IconPosition);

Ha valakinek nem sikerülne, akkor itt kérhet segítséget.