ML-Server: Item Names client sided
This commit is contained in:
@@ -4056,6 +4056,26 @@ void CHARACTER::ChatPacket(BYTE type, const char * format, ...)
|
|||||||
sys_log(0, "SEND_COMMAND %s %s", GetName(), chatbuf);
|
sys_log(0, "SEND_COMMAND %s %s", GetName(), chatbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CHARACTER::ItemGetPacket(DWORD dwItemVnum, BYTE bCount, const char* szName, bool bIsDelivery)
|
||||||
|
{
|
||||||
|
LPDESC d = GetDesc();
|
||||||
|
|
||||||
|
if (!d)
|
||||||
|
return;
|
||||||
|
|
||||||
|
TPacketGCItemGet pack;
|
||||||
|
pack.header = HEADER_GC_ITEM_GET;
|
||||||
|
pack.dwItemVnum = dwItemVnum;
|
||||||
|
pack.bCount = bCount;
|
||||||
|
// bArg: 0 = normal, 1 = from party member, 2 = delivered to party member
|
||||||
|
pack.bArg = szName ? (bIsDelivery ? 2 : 1) : 0;
|
||||||
|
memset(pack.szFromName, 0, sizeof(pack.szFromName));
|
||||||
|
if (szName)
|
||||||
|
strlcpy(pack.szFromName, szName, sizeof(pack.szFromName));
|
||||||
|
|
||||||
|
d->Packet(&pack, sizeof(pack));
|
||||||
|
}
|
||||||
|
|
||||||
// MINING
|
// MINING
|
||||||
void CHARACTER::mining_take()
|
void CHARACTER::mining_take()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -739,6 +739,7 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider
|
|||||||
void Motion(BYTE motion, LPCHARACTER victim = NULL);
|
void Motion(BYTE motion, LPCHARACTER victim = NULL);
|
||||||
|
|
||||||
void ChatPacket(BYTE type, const char *format, ...);
|
void ChatPacket(BYTE type, const char *format, ...);
|
||||||
|
void ItemGetPacket(DWORD dwItemVnum, BYTE bCount, const char* szName = NULL, bool bIsDelivery = false);
|
||||||
void MonsterChat(BYTE bMonsterChatType);
|
void MonsterChat(BYTE bMonsterChatType);
|
||||||
void SendGreetMessage();
|
void SendGreetMessage();
|
||||||
|
|
||||||
|
|||||||
@@ -5894,7 +5894,7 @@ bool CHARACTER::PickupItem(DWORD dwVID)
|
|||||||
|
|
||||||
if (bCount == 0)
|
if (bCount == 0)
|
||||||
{
|
{
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s"), item2->GetName());
|
ItemGetPacket(item2->GetVnum(), item2->GetCount());
|
||||||
M2_DESTROY_ITEM(item);
|
M2_DESTROY_ITEM(item);
|
||||||
if (item2->GetType() == ITEM_QUEST)
|
if (item2->GetType() == ITEM_QUEST)
|
||||||
quest::CQuestManager::instance().PickupItem (GetPlayerID(), item2);
|
quest::CQuestManager::instance().PickupItem (GetPlayerID(), item2);
|
||||||
@@ -5936,7 +5936,7 @@ bool CHARACTER::PickupItem(DWORD dwVID)
|
|||||||
char szHint[32+1];
|
char szHint[32+1];
|
||||||
snprintf(szHint, sizeof(szHint), "%s %u %u", item->GetName(), item->GetCount(), item->GetOriginalVnum());
|
snprintf(szHint, sizeof(szHint), "%s %u %u", item->GetName(), item->GetCount(), item->GetOriginalVnum());
|
||||||
LogManager::instance().ItemLog(this, item, "GET", szHint);
|
LogManager::instance().ItemLog(this, item, "GET", szHint);
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s"), item->GetName());
|
ItemGetPacket(item->GetVnum(), item->GetCount());
|
||||||
|
|
||||||
if (item->GetType() == ITEM_QUEST)
|
if (item->GetType() == ITEM_QUEST)
|
||||||
quest::CQuestManager::instance().PickupItem (GetPlayerID(), item);
|
quest::CQuestManager::instance().PickupItem (GetPlayerID(), item);
|
||||||
@@ -5995,11 +5995,11 @@ bool CHARACTER::PickupItem(DWORD dwVID)
|
|||||||
LogManager::instance().ItemLog(owner, item, "GET", szHint);
|
LogManager::instance().ItemLog(owner, item, "GET", szHint);
|
||||||
|
|
||||||
if (owner == this)
|
if (owner == this)
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s"), item->GetName());
|
ItemGetPacket(item->GetVnum(), item->GetCount());
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s 님으로부터 %s"), GetName(), item->GetName());
|
owner->ItemGetPacket(item->GetVnum(), item->GetCount(), GetName());
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 전달: %s 님에게 %s"), owner->GetName(), item->GetName());
|
ItemGetPacket(item->GetVnum(), item->GetCount(), owner->GetName(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item->GetType() == ITEM_QUEST)
|
if (item->GetType() == ITEM_QUEST)
|
||||||
@@ -6621,7 +6621,7 @@ LPITEM CHARACTER::AutoGiveItem(DWORD dwItemVnum, BYTE bCount, int iRarePct, bool
|
|||||||
if (bCount == 0)
|
if (bCount == 0)
|
||||||
{
|
{
|
||||||
if (bMsg)
|
if (bMsg)
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s"), item->GetName());
|
ItemGetPacket(item->GetVnum(), item->GetCount());
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@@ -6673,7 +6673,7 @@ LPITEM CHARACTER::AutoGiveItem(DWORD dwItemVnum, BYTE bCount, int iRarePct, bool
|
|||||||
if (iEmptyCell != -1)
|
if (iEmptyCell != -1)
|
||||||
{
|
{
|
||||||
if (bMsg)
|
if (bMsg)
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s"), item->GetName());
|
ItemGetPacket(item->GetVnum(), item->GetCount());
|
||||||
|
|
||||||
if (item->IsDragonSoul())
|
if (item->IsDragonSoul())
|
||||||
item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell));
|
item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell));
|
||||||
|
|||||||
@@ -279,6 +279,7 @@ enum
|
|||||||
HEADER_GC_DRAGON_SOUL_REFINE = 209,
|
HEADER_GC_DRAGON_SOUL_REFINE = 209,
|
||||||
HEADER_GC_RESPOND_CHANNELSTATUS = 210,
|
HEADER_GC_RESPOND_CHANNELSTATUS = 210,
|
||||||
|
|
||||||
|
HEADER_GC_ITEM_GET = 211,
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@@ -1114,6 +1115,15 @@ typedef struct packet_item_set
|
|||||||
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
|
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
|
||||||
} TPacketGCItemSet;
|
} TPacketGCItemSet;
|
||||||
|
|
||||||
|
typedef struct packet_item_get
|
||||||
|
{
|
||||||
|
uint8_t header;
|
||||||
|
uint32_t dwItemVnum;
|
||||||
|
uint8_t bCount;
|
||||||
|
uint8_t bArg; // 0: normal, 1: from party member (need extra handling)
|
||||||
|
char szFromName[CHARACTER_NAME_MAX_LEN + 1]; // party member name when bArg == 1
|
||||||
|
} TPacketGCItemGet;
|
||||||
|
|
||||||
struct packet_item_use
|
struct packet_item_use
|
||||||
{
|
{
|
||||||
uint8_t header;
|
uint8_t header;
|
||||||
|
|||||||
Reference in New Issue
Block a user