item_set and item_del packets normalized to server
This commit is contained in:
@@ -606,7 +606,8 @@ const char * GetRecvHeaderName(BYTE header)
|
|||||||
stringList[17] = "HEADER_GC_PLAYER_POINT_CHANGE";
|
stringList[17] = "HEADER_GC_PLAYER_POINT_CHANGE";
|
||||||
stringList[18] = "HEADER_GC_CHANGE_SPEED";
|
stringList[18] = "HEADER_GC_CHANGE_SPEED";
|
||||||
stringList[19] = "HEADER_GC_CHARACTER_UPDATE";
|
stringList[19] = "HEADER_GC_CHARACTER_UPDATE";
|
||||||
stringList[20] = "HEADER_GC_ITEM_SET";
|
stringList[20] = "HEADER_GC_ITEM_DEL";
|
||||||
|
stringList[21] = "HEADER_GC_ITEM_SET";
|
||||||
stringList[22] = "HEADER_GC_ITEM_USE";
|
stringList[22] = "HEADER_GC_ITEM_USE";
|
||||||
stringList[23] = "HEADER_GC_ITEM_DROP";
|
stringList[23] = "HEADER_GC_ITEM_DROP";
|
||||||
stringList[25] = "HEADER_GC_ITEM_UPDATE";
|
stringList[25] = "HEADER_GC_ITEM_UPDATE";
|
||||||
|
|||||||
@@ -31,9 +31,6 @@ class IAbstractPlayer : public TAbstractSingleton<IAbstractPlayer>
|
|||||||
virtual void SetItemCount(TItemPos itemPos, BYTE byCount) = 0;
|
virtual void SetItemCount(TItemPos itemPos, BYTE byCount) = 0;
|
||||||
virtual void SetItemMetinSocket(TItemPos itemPos, DWORD dwMetinSocketIndex, DWORD dwMetinNumber) = 0;
|
virtual void SetItemMetinSocket(TItemPos itemPos, DWORD dwMetinSocketIndex, DWORD dwMetinNumber) = 0;
|
||||||
virtual void SetItemAttribute(TItemPos itemPos, DWORD dwAttrIndex, BYTE byType, short sValue) = 0;
|
virtual void SetItemAttribute(TItemPos itemPos, DWORD dwAttrIndex, BYTE byType, short sValue) = 0;
|
||||||
#if defined(GAIDEN)
|
|
||||||
virtual void SetItemUnbindTime(DWORD dwItemSlotIndex, DWORD dwUnbindSecondsLeft) = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
virtual DWORD GetItemIndex(TItemPos itemPos) = 0;
|
virtual DWORD GetItemIndex(TItemPos itemPos) = 0;
|
||||||
virtual DWORD GetItemFlags(TItemPos itemPos) = 0;
|
virtual DWORD GetItemFlags(TItemPos itemPos) = 0;
|
||||||
|
|||||||
@@ -1,18 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#pragma pack(push) //기존 alignment 저장
|
|
||||||
#pragma pack(8)
|
|
||||||
|
|
||||||
#define ANTICPX_TRANS_BUFFER_MAX 400
|
|
||||||
|
|
||||||
typedef struct _AHNHS_TRANS_BUFFER
|
|
||||||
{
|
|
||||||
unsigned char byBuffer[ANTICPX_TRANS_BUFFER_MAX/* 송수신 패킷의 최대 크기 */];
|
|
||||||
uint16_t nLength;
|
|
||||||
} AHNHS_TRANS_BUFFER, *PAHNHS_TRANS_BUFFER;
|
|
||||||
|
|
||||||
#pragma pack(pop) // 기존 alignment 복구.
|
|
||||||
|
|
||||||
#include "Gamelib/RaceData.h"
|
#include "Gamelib/RaceData.h"
|
||||||
|
|
||||||
typedef uint8_t TPacketHeader;
|
typedef uint8_t TPacketHeader;
|
||||||
@@ -179,16 +165,13 @@ enum
|
|||||||
HEADER_GC_PLAYER_POINT_CHANGE = 17,
|
HEADER_GC_PLAYER_POINT_CHANGE = 17,
|
||||||
HEADER_GC_CHANGE_SPEED = 18,
|
HEADER_GC_CHANGE_SPEED = 18,
|
||||||
HEADER_GC_CHARACTER_UPDATE = 19,
|
HEADER_GC_CHARACTER_UPDATE = 19,
|
||||||
#if defined(GAIDEN)
|
|
||||||
HEADER_GC_ITEM_DEL = 20, // 아이템 창에 추가
|
HEADER_GC_ITEM_DEL = 20, // 아이템 창에 추가
|
||||||
HEADER_GC_ITEM_SET = 21, // 아이템 창에 추가
|
HEADER_GC_ITEM_SET = 21, // 아이템 창에 추가
|
||||||
#else
|
|
||||||
HEADER_GC_ITEM_SET = 20, // 아이템 창에 추가
|
|
||||||
HEADER_GC_ITEM_SET2 = 21, // 아이템 창에 추가
|
|
||||||
#endif
|
|
||||||
HEADER_GC_ITEM_USE = 22, // 아이템 사용 (주위 사람들에게 보여주기 위해)
|
HEADER_GC_ITEM_USE = 22, // 아이템 사용 (주위 사람들에게 보여주기 위해)
|
||||||
HEADER_GC_ITEM_DROP = 23, // 아이템 버리기
|
HEADER_GC_ITEM_DROP = 23, // 아이템 버리기
|
||||||
HEADER_GC_ITEM_UPDATE = 25, // 아이템 수치 업데이트
|
HEADER_GC_ITEM_UPDATE = 25, // 아이템 수치 업데이트
|
||||||
|
|
||||||
HEADER_GC_ITEM_GROUND_ADD = 26, // 바닥에 아이템 추가
|
HEADER_GC_ITEM_GROUND_ADD = 26, // 바닥에 아이템 추가
|
||||||
HEADER_GC_ITEM_GROUND_DEL = 27, // 바닥에서 아이템 삭제
|
HEADER_GC_ITEM_GROUND_DEL = 27, // 바닥에서 아이템 삭제
|
||||||
HEADER_GC_QUICKSLOT_ADD = 28,
|
HEADER_GC_QUICKSLOT_ADD = 28,
|
||||||
@@ -271,15 +254,9 @@ enum
|
|||||||
HEADER_GC_WALK_MODE = 111,
|
HEADER_GC_WALK_MODE = 111,
|
||||||
HEADER_GC_CHANGE_SKILL_GROUP = 112,
|
HEADER_GC_CHANGE_SKILL_GROUP = 112,
|
||||||
|
|
||||||
#if defined(GAIDEN)
|
|
||||||
HEADER_GC_MAIN_CHARACTER = 113,
|
|
||||||
HEADER_GC_MAIN_CHARACTER3_BGM = 137,
|
|
||||||
HEADER_GC_MAIN_CHARACTER4_BGM_VOL = 138,
|
|
||||||
#else
|
|
||||||
// SUPPORT_BGM
|
// SUPPORT_BGM
|
||||||
HEADER_GC_MAIN_CHARACTER2_EMPIRE = 113,
|
HEADER_GC_MAIN_CHARACTER2_EMPIRE = 113,
|
||||||
// END_OF_SUPPORT_BGM
|
// END_OF_SUPPORT_BGM
|
||||||
#endif
|
|
||||||
|
|
||||||
HEADER_GC_SEPCIAL_EFFECT = 114,
|
HEADER_GC_SEPCIAL_EFFECT = 114,
|
||||||
HEADER_GC_NPC_POSITION = 115,
|
HEADER_GC_NPC_POSITION = 115,
|
||||||
@@ -326,15 +303,6 @@ enum
|
|||||||
HEADER_GC_RUNUP_MATRIX_QUIZ = 201,
|
HEADER_GC_RUNUP_MATRIX_QUIZ = 201,
|
||||||
HEADER_GC_NEWCIBN_PASSPOD_REQUEST = 202,
|
HEADER_GC_NEWCIBN_PASSPOD_REQUEST = 202,
|
||||||
HEADER_GC_NEWCIBN_PASSPOD_FAILURE = 203,
|
HEADER_GC_NEWCIBN_PASSPOD_FAILURE = 203,
|
||||||
#if defined(GAIDEN)
|
|
||||||
HEADER_GC_ONTIME = 204,
|
|
||||||
HEADER_GC_RESET_ONTIME = 205,
|
|
||||||
|
|
||||||
// AUTOBAN
|
|
||||||
HEADER_GC_AUTOBAN_QUIZ = 206,
|
|
||||||
// END_OF_AUTOBAN
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __AUCTION__
|
#ifdef __AUCTION__
|
||||||
HEADER_GC_AUCTOIN_ITEM_LIST = 206,
|
HEADER_GC_AUCTOIN_ITEM_LIST = 206,
|
||||||
@@ -1676,74 +1644,25 @@ typedef struct packet_motion
|
|||||||
uint16_t motion;
|
uint16_t motion;
|
||||||
} TPacketGCMotion;
|
} TPacketGCMotion;
|
||||||
|
|
||||||
#if defined(GAIDEN)
|
typedef struct packet_del_item
|
||||||
struct TPacketGCItemDelDeprecate
|
|
||||||
{
|
{
|
||||||
TPacketGCItemDelDeprecate() :
|
uint8_t header;
|
||||||
header(HEADER_GC_ITEM_DEL),
|
TItemPos pos;
|
||||||
pos(0),
|
} TPacketGCItemDel;
|
||||||
vnum(0),
|
|
||||||
count(0)
|
|
||||||
{
|
|
||||||
memset(&alSockets, 0, sizeof(alSockets));
|
|
||||||
memset(&aAttr, 0, sizeof(aAttr));
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t header;
|
|
||||||
uint8_t pos;
|
|
||||||
uint32_t vnum;
|
|
||||||
uint8_t count;
|
|
||||||
int32_t alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
|
|
||||||
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct packet_set_item
|
typedef struct packet_set_item
|
||||||
{
|
{
|
||||||
uint8_t header;
|
uint8_t header;
|
||||||
uint8_t pos;
|
TItemPos pos;
|
||||||
uint32_t vnum;
|
uint32_t vnum;
|
||||||
uint8_t count;
|
uint8_t count;
|
||||||
uint32_t flags; // 플래그 추가
|
uint32_t flags; // 플래그 추가
|
||||||
int32_t alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
|
uint32_t anti_flags; // 플래그 추가
|
||||||
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
|
uint8_t highlight;
|
||||||
|
int32_t alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
|
||||||
|
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
|
||||||
} TPacketGCItemSet;
|
} TPacketGCItemSet;
|
||||||
|
|
||||||
typedef struct packet_item_del
|
|
||||||
{
|
|
||||||
uint8_t header;
|
|
||||||
uint8_t pos;
|
|
||||||
} TPacketGCItemDel;
|
|
||||||
#else
|
|
||||||
typedef struct packet_set_item
|
|
||||||
{
|
|
||||||
uint8_t header;
|
|
||||||
TItemPos Cell;
|
|
||||||
uint32_t vnum;
|
|
||||||
uint8_t count;
|
|
||||||
int32_t alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
|
|
||||||
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
|
|
||||||
} TPacketGCItemSet;
|
|
||||||
|
|
||||||
typedef struct packet_set_item2
|
|
||||||
{
|
|
||||||
uint8_t header;
|
|
||||||
TItemPos Cell;
|
|
||||||
uint32_t vnum;
|
|
||||||
uint8_t count;
|
|
||||||
uint32_t flags; // 플래그 추가
|
|
||||||
uint32_t anti_flags; // 플래그 추가
|
|
||||||
bool highlight;
|
|
||||||
int32_t alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
|
|
||||||
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
|
|
||||||
} TPacketGCItemSet2;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct packet_item_del
|
|
||||||
{
|
|
||||||
uint8_t header;
|
|
||||||
uint8_t pos;
|
|
||||||
} TPacketGCItemDel;
|
|
||||||
|
|
||||||
typedef struct packet_use_item
|
typedef struct packet_use_item
|
||||||
{
|
{
|
||||||
uint8_t header;
|
uint8_t header;
|
||||||
|
|||||||
@@ -69,8 +69,8 @@ class CMainPacketHeaderMap : public CNetworkPacketHeaderMap
|
|||||||
Set(HEADER_GC_PLAYER_POINTS, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCPoints), STATIC_SIZE_PACKET));
|
Set(HEADER_GC_PLAYER_POINTS, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCPoints), STATIC_SIZE_PACKET));
|
||||||
Set(HEADER_GC_PLAYER_POINT_CHANGE, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCPointChange), STATIC_SIZE_PACKET));
|
Set(HEADER_GC_PLAYER_POINT_CHANGE, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCPointChange), STATIC_SIZE_PACKET));
|
||||||
|
|
||||||
|
Set(HEADER_GC_ITEM_DEL, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCItemDel), STATIC_SIZE_PACKET));
|
||||||
Set(HEADER_GC_ITEM_SET, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCItemSet), STATIC_SIZE_PACKET));
|
Set(HEADER_GC_ITEM_SET, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCItemSet), STATIC_SIZE_PACKET));
|
||||||
Set(HEADER_GC_ITEM_SET2, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCItemSet2), STATIC_SIZE_PACKET));
|
|
||||||
|
|
||||||
Set(HEADER_GC_ITEM_USE, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCItemUse), STATIC_SIZE_PACKET));
|
Set(HEADER_GC_ITEM_USE, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCItemUse), STATIC_SIZE_PACKET));
|
||||||
Set(HEADER_GC_ITEM_UPDATE, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCItemUpdate), STATIC_SIZE_PACKET));
|
Set(HEADER_GC_ITEM_UPDATE, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCItemUpdate), STATIC_SIZE_PACKET));
|
||||||
|
|||||||
@@ -451,8 +451,8 @@ class CPythonNetworkStream : public CNetworkStream, public CSingleton<CPythonNet
|
|||||||
bool RecvDeadPacket();
|
bool RecvDeadPacket();
|
||||||
bool RecvCharacterMovePacket();
|
bool RecvCharacterMovePacket();
|
||||||
|
|
||||||
|
bool RecvItemDelPacket(); // Alarm to python
|
||||||
bool RecvItemSetPacket(); // Alarm to python
|
bool RecvItemSetPacket(); // Alarm to python
|
||||||
bool RecvItemSetPacket2(); // Alarm to python
|
|
||||||
bool RecvItemUsePacket(); // Alarm to python
|
bool RecvItemUsePacket(); // Alarm to python
|
||||||
bool RecvItemUpdatePacket(); // Alarm to python
|
bool RecvItemUpdatePacket(); // Alarm to python
|
||||||
bool RecvItemGroundAddPacket();
|
bool RecvItemGroundAddPacket();
|
||||||
|
|||||||
@@ -313,12 +313,12 @@ void CPythonNetworkStream::GamePhase()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
// item packet.
|
// item packet.
|
||||||
case HEADER_GC_ITEM_SET:
|
case HEADER_GC_ITEM_DEL:
|
||||||
ret = RecvItemSetPacket();
|
ret = RecvItemDelPacket();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HEADER_GC_ITEM_SET2:
|
case HEADER_GC_ITEM_SET:
|
||||||
ret = RecvItemSetPacket2();
|
ret = RecvItemSetPacket();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HEADER_GC_ITEM_USE:
|
case HEADER_GC_ITEM_USE:
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ bool CPythonNetworkStream::SendSafeBoxItemMovePacket(BYTE bySourcePos, BYTE byTa
|
|||||||
|
|
||||||
bool CPythonNetworkStream::RecvSafeBoxSetPacket()
|
bool CPythonNetworkStream::RecvSafeBoxSetPacket()
|
||||||
{
|
{
|
||||||
TPacketGCItemSet2 kItemSet;
|
TPacketGCItemSet kItemSet;
|
||||||
if (!Recv(sizeof(kItemSet), &kItemSet))
|
if (!Recv(sizeof(kItemSet), &kItemSet))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ bool CPythonNetworkStream::RecvSafeBoxSetPacket()
|
|||||||
for (int iattr=0; iattr<ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++iattr)
|
for (int iattr=0; iattr<ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++iattr)
|
||||||
kItemData.aAttr[iattr] = kItemSet.aAttr[iattr];
|
kItemData.aAttr[iattr] = kItemSet.aAttr[iattr];
|
||||||
|
|
||||||
CPythonSafeBox::Instance().SetItemData(kItemSet.Cell.cell, kItemData);
|
CPythonSafeBox::Instance().SetItemData(kItemSet.pos.cell, kItemData);
|
||||||
|
|
||||||
__RefreshSafeboxWindow();
|
__RefreshSafeboxWindow();
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ bool CPythonNetworkStream::RecvSafeBoxDelPacket()
|
|||||||
if (!Recv(sizeof(kItemDel), &kItemDel))
|
if (!Recv(sizeof(kItemDel), &kItemDel))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
CPythonSafeBox::Instance().DelItemData(kItemDel.pos);
|
CPythonSafeBox::Instance().DelItemData(kItemDel.pos.cell);
|
||||||
|
|
||||||
__RefreshSafeboxWindow();
|
__RefreshSafeboxWindow();
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ bool CPythonNetworkStream::RecvMallOpenPacket()
|
|||||||
}
|
}
|
||||||
bool CPythonNetworkStream::RecvMallItemSetPacket()
|
bool CPythonNetworkStream::RecvMallItemSetPacket()
|
||||||
{
|
{
|
||||||
TPacketGCItemSet2 kItemSet;
|
TPacketGCItemSet kItemSet;
|
||||||
if (!Recv(sizeof(kItemSet), &kItemSet))
|
if (!Recv(sizeof(kItemSet), &kItemSet))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -187,7 +187,7 @@ bool CPythonNetworkStream::RecvMallItemSetPacket()
|
|||||||
for (int iattr=0; iattr<ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++iattr)
|
for (int iattr=0; iattr<ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++iattr)
|
||||||
kItemData.aAttr[iattr] = kItemSet.aAttr[iattr];
|
kItemData.aAttr[iattr] = kItemSet.aAttr[iattr];
|
||||||
|
|
||||||
CPythonSafeBox::Instance().SetMallItemData(kItemSet.Cell.cell, kItemData);
|
CPythonSafeBox::Instance().SetMallItemData(kItemSet.pos.cell, kItemData);
|
||||||
|
|
||||||
__RefreshMallWindow();
|
__RefreshMallWindow();
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ bool CPythonNetworkStream::RecvMallItemDelPacket()
|
|||||||
if (!Recv(sizeof(kItemDel), &kItemDel))
|
if (!Recv(sizeof(kItemDel), &kItemDel))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
CPythonSafeBox::Instance().DelMallItemData(kItemDel.pos);
|
CPythonSafeBox::Instance().DelMallItemData(kItemDel.pos.cell);
|
||||||
|
|
||||||
__RefreshMallWindow();
|
__RefreshMallWindow();
|
||||||
Tracef(" >> CPythonNetworkStream::RecvMallItemDelPacket\n");
|
Tracef(" >> CPythonNetworkStream::RecvMallItemDelPacket\n");
|
||||||
@@ -211,35 +211,26 @@ bool CPythonNetworkStream::RecvMallItemDelPacket()
|
|||||||
|
|
||||||
// Item
|
// Item
|
||||||
// Recieve
|
// Recieve
|
||||||
bool CPythonNetworkStream::RecvItemSetPacket()
|
bool CPythonNetworkStream::RecvItemDelPacket()
|
||||||
{
|
{
|
||||||
TPacketGCItemSet packet_item_set;
|
TPacketGCItemDel packet_item_set;
|
||||||
|
if (!Recv(sizeof(TPacketGCItemDel), &packet_item_set))
|
||||||
if (!Recv(sizeof(TPacketGCItemSet), &packet_item_set))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
TItemData kItemData;
|
TItemData kItemData;
|
||||||
kItemData.vnum = packet_item_set.vnum;
|
memset(&kItemData, 0, sizeof(TItemData));
|
||||||
kItemData.count = packet_item_set.count;
|
|
||||||
kItemData.flags = 0;
|
|
||||||
for (int i=0; i<ITEM_SOCKET_SLOT_MAX_NUM; ++i)
|
|
||||||
kItemData.alSockets[i]=packet_item_set.alSockets[i];
|
|
||||||
for (int j=0; j<ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++j)
|
|
||||||
kItemData.aAttr[j]=packet_item_set.aAttr[j];
|
|
||||||
|
|
||||||
IAbstractPlayer& rkPlayer=IAbstractPlayer::GetSingleton();
|
IAbstractPlayer& rkPlayer=IAbstractPlayer::GetSingleton();
|
||||||
|
rkPlayer.SetItemData(packet_item_set.pos, kItemData);
|
||||||
rkPlayer.SetItemData(packet_item_set.Cell, kItemData);
|
|
||||||
|
|
||||||
__RefreshInventoryWindow();
|
__RefreshInventoryWindow();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CPythonNetworkStream::RecvItemSetPacket2()
|
bool CPythonNetworkStream::RecvItemSetPacket()
|
||||||
{
|
{
|
||||||
TPacketGCItemSet2 packet_item_set;
|
TPacketGCItemSet packet_item_set;
|
||||||
|
if (!Recv(sizeof(TPacketGCItemSet), &packet_item_set))
|
||||||
if (!Recv(sizeof(TPacketGCItemSet2), &packet_item_set))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
TItemData kItemData;
|
TItemData kItemData;
|
||||||
@@ -254,10 +245,10 @@ bool CPythonNetworkStream::RecvItemSetPacket2()
|
|||||||
kItemData.aAttr[j]=packet_item_set.aAttr[j];
|
kItemData.aAttr[j]=packet_item_set.aAttr[j];
|
||||||
|
|
||||||
IAbstractPlayer& rkPlayer=IAbstractPlayer::GetSingleton();
|
IAbstractPlayer& rkPlayer=IAbstractPlayer::GetSingleton();
|
||||||
rkPlayer.SetItemData(packet_item_set.Cell, kItemData);
|
rkPlayer.SetItemData(packet_item_set.pos, kItemData);
|
||||||
|
|
||||||
if (packet_item_set.highlight)
|
if (packet_item_set.highlight)
|
||||||
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_Highlight_Item", Py_BuildValue("(ii)", packet_item_set.Cell.window_type, packet_item_set.Cell.cell));
|
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_Highlight_Item", Py_BuildValue("(ii)", packet_item_set.pos.window_type, packet_item_set.pos.cell));
|
||||||
|
|
||||||
__RefreshInventoryWindow();
|
__RefreshInventoryWindow();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ void CPythonNetworkStream::LoadingPhase()
|
|||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HEADER_GC_ITEM_SET:
|
case HEADER_GC_ITEM_DEL:
|
||||||
if (RecvItemSetPacket())
|
if (RecvItemSetPacket())
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1408,17 +1408,6 @@ PyObject * playerGetItemGrade(PyObject* poSelf, PyObject* poArgs)
|
|||||||
return Py_BuildValue("i", GetItemGrade(pItemData->GetName()));
|
return Py_BuildValue("i", GetItemGrade(pItemData->GetName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(GAIDEN)
|
|
||||||
PyObject * playerGetItemUnbindTime(PyObject* poSelf, PyObject* poArgs)
|
|
||||||
{
|
|
||||||
int iSlotIndex;
|
|
||||||
if (!PyTuple_GetInteger(poArgs, 0, &iSlotIndex))
|
|
||||||
return Py_BuildException();
|
|
||||||
|
|
||||||
return Py_BuildValue("i", (int) CPythonPlayer::instance().GetItemUnbindTime(iSlotIndex));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
REFINE_SCROLL_TYPE_MAKE_SOCKET = 1,
|
REFINE_SCROLL_TYPE_MAKE_SOCKET = 1,
|
||||||
@@ -2230,9 +2219,6 @@ void initPlayer()
|
|||||||
{ "GetItemCountByVnum", playerGetItemCountByVnum, METH_VARARGS },
|
{ "GetItemCountByVnum", playerGetItemCountByVnum, METH_VARARGS },
|
||||||
{ "GetItemMetinSocket", playerGetItemMetinSocket, METH_VARARGS },
|
{ "GetItemMetinSocket", playerGetItemMetinSocket, METH_VARARGS },
|
||||||
{ "GetItemAttribute", playerGetItemAttribute, METH_VARARGS },
|
{ "GetItemAttribute", playerGetItemAttribute, METH_VARARGS },
|
||||||
#if defined(GAIDEN)
|
|
||||||
{ "GetItemUnbindTime", playerGetItemUnbindTime, METH_VARARGS },
|
|
||||||
#endif
|
|
||||||
{ "GetISellItemPrice", playerGetISellItemPrice, METH_VARARGS },
|
{ "GetISellItemPrice", playerGetISellItemPrice, METH_VARARGS },
|
||||||
{ "MoveItem", playerMoveItem, METH_VARARGS },
|
{ "MoveItem", playerMoveItem, METH_VARARGS },
|
||||||
{ "SendClickItemPacket", playerSendClickItemPacket, METH_VARARGS },
|
{ "SendClickItemPacket", playerSendClickItemPacket, METH_VARARGS },
|
||||||
|
|||||||
Reference in New Issue
Block a user