//----- (0042B1D0) --------------------------------------------------------
void GetDropItem(int Target, int conn, int PosX, int PosY, STRUCT_ITEM* Item)
{
if (ITEMMASTER)
{
if (pMob[Target].UnknowByte_1640 > 0 && pMob[Target].UnknowByte_1636 > 0 && pMob[Target].UnknowByte_1636 < 1000)
{
if (Item->sIndex == 454)
{
int Coin = 0;
Item->stEffect[0].cEffect = 36;
Coin = Item->stEffect[0].cValue << 8;
Item->stEffect[1].cEffect = 37;
Coin = 100 * Item->stEffect[1].cValue + Coin;
pMob[conn].MOB.Coin += Coin;
if (pMob[conn].MOB.Coin >= 2000000000)
pMob[conn].MOB.Coin = 2000000000;
SendCarryCoin(conn);
}
else
{
int ret = 0;
int Random = pMob[conn].MOB.Equip[EQUIP_FAIRY].sIndex;
if (Random == 3914 || Random == 3915)
ret = SendItemCarry(conn, Random, Item);
if (!ret)
ret = SendPutItemCarry(conn, 0, Item);
if (ret == 1)
{
if (BASE_NeedLog(Item, 0))
{
char Code[136];
BASE_GetItemCode(Item, Code);
snprintf(Buffer, 0x80u, "get %s, Item:", Code);
Log(Buffer, pUser[conn].AccountName, pUser[conn].IP);
}
}
else
{
pMob[Target].UnknowByte_1636 = 0;
pMob[Target].UnknowByte_1640 = 0;
}
}
}
}
else if (Item->sIndex == 454)
{
int Coin = 0;
Item ->stEffect[0].cEffect = 36;
Coin = Item->stEffect[0].cValue << 8;
Item->stEffect[1].cEffect = 37;
Coin = 100 * Item->stEffect[1].cValue + Coin;
pMob[conn].MOB.Coin += Coin;
if (pMob[conn].MOB.Coin >= 2000000000)
pMob[conn].MOB.Coin = 2000000000;
SendCarryCoin(conn);
}
else
{
int v11 = 0;
int v10 = pMob[conn].MOB.Equip[EQUIP_FAIRY].sIndex;
if (v10 == 3914 || v10 == 3915)
v11 = SendItemCarry(conn, v10, Item);
if (!v11)
v11 = SendPutItemCarry(conn, 0, Item);
if (v11 == 1 && BASE_NeedLog(Item, 0))
{
char Code[136];
BASE_GetItemCode(Item, Code);
snprintf(Buffer, 0x80u, "get %s", Code);
Log(Buffer, pUser[conn].AccountName, pUser[conn].IP);
}
}
}