Had a look in the EO source and its used to combine 2 sets of items together, so its triggered in an attempt to combine 2 sets of arrows togeather. But it is
not archer specific.
Code:
bool CUser::CombineItem (OBJID idItem, OBJID idOther)
{
CItemPtr pItem = GetItem(idItem);
CItemPtr pOther = GetItem(idOther);
if(!pItem || !pOther || !pItem->IsPileEnable() || pItem->GetInt(ITEMDATA_TYPE) != pOther->GetInt(ITEMDATA_TYPE))
return false;
int nNewNum = pItem->GetInt(ITEMDATA_AMOUNT) + pOther->GetInt(ITEMDATA_AMOUNT);
if(nNewNum > pItem->GetInt(ITEMDATA_AMOUNTLIMIT))
{
pOther->SetInt(ITEMDATA_AMOUNT, nNewNum - pItem->GetInt(ITEMDATA_AMOUNTLIMIT));
{
CMsgItem msg;
IF_OK(msg.Create(pOther->GetID(), ITEMACT_SYNCHRO_AMOUNT, pOther->GetInt(ITEMDATA_AMOUNT)))
SendMsg(&msg);
}
pItem->SetInt(ITEMDATA_AMOUNT, pItem->GetInt(ITEMDATA_AMOUNTLIMIT));
{
CMsgItem msg;
IF_OK(msg.Create(pItem->GetID(), ITEMACT_SYNCHRO_AMOUNT, pItem->GetInt(ITEMDATA_AMOUNT)))
SendMsg(&msg);
}
}
else
{
EraseItem(idOther, SYNCHRO_TRUE);
pItem->SetInt(ITEMDATA_AMOUNT, nNewNum);
{
CMsgItem msg;
IF_OK(msg.Create(pItem->GetID(), ITEMACT_SYNCHRO_AMOUNT, pItem->GetInt(ITEMDATA_AMOUNT)))
SendMsg(&msg);
}
}
return true;
}