Pickup Filter
PythonPlayer.cpp
Cod: Selectaţi tot
void CPythonPlayer::SendClickItemPacket(DWORD dwIID)
{
if (IsObserverMode())
return;
const char * c_szOwnerName;
CItemData * pItemData;
if (!CPythonItem::Instance().GetOwnership(dwIID, &c_szOwnerName))
return;
if (strlen(c_szOwnerName) > 0)
if (0 != strcmp(c_szOwnerName, GetName()))
{
if (!CItemManager::Instance().GetItemDataPointer(CPythonItem::Instance().GetVirtualNumberOfGroundItem(dwIID), &pItemData))
{
Tracenf("CPythonPlayer::SendClickItemPacket(dwIID=%d) : Non-exist item.", dwIID);
return;
}
if (!IsPartyMemberByName(c_szOwnerName) || pItemData->IsAntiFlag(CItemData::ITEM_ANTIFLAG_DROP | CItemData::ITEM_ANTIFLAG_GIVE))
{
PyCallClassMemberFunc(m_ppyGameWindow, "OnCannotPickItem", Py_BuildValue("()"));
return;
}
}
if (!CItemManager::Instance().GetItemDataPointer(CPythonItem::Instance().GetVirtualNumberOfGroundItem(dwIID), &pItemData))
{
Tracenf("CPythonPlayer::SendClickItemPacket(dwIID=%d) : Non-exist item.", dwIID);
return;
}
CPythonNetworkStream& rkNetStream = CPythonNetworkStream::Instance();
if (CPythonSystem::Instance().IsPickUpFilterWeapon() &&
!pItemData->IsWearableFlag(CItemData::WEARABLE_WEAPON))
rkNetStream.SendItemPickUpPacket(dwIID);
else if (CPythonSystem::Instance().IsPickUpFilterArmor() &&
!pItemData->IsWearableFlag(CItemData::WEARABLE_BODY))
rkNetStream.SendItemPickUpPacket(dwIID);
else if (CPythonSystem::Instance().IsPickUpFilterEar() &&
!pItemData->IsWearableFlag(CItemData::WEARABLE_EAR))
rkNetStream.SendItemPickUpPacket(dwIID);
else if (CPythonSystem::Instance().IsPickUpFilterNeck() &&
!pItemData->IsWearableFlag(CItemData::WEARABLE_NECK))
rkNetStream.SendItemPickUpPacket(dwIID);
else if (CPythonSystem::Instance().IsPickUpFilterFoots() &&
!pItemData->IsWearableFlag(CItemData::WEARABLE_FOOTS))
rkNetStream.SendItemPickUpPacket(dwIID);
else if (CPythonSystem::Instance().IsPickUpFilterShield() &&
!pItemData->IsWearableFlag(CItemData::WEARABLE_SHIELD))
rkNetStream.SendItemPickUpPacket(dwIID);
else if (CPythonSystem::Instance().IsPickUpFilterStone() &&
!pItemData->GetType() == CItemData::ITEM_TYPE_METIN)
rkNetStream.SendItemPickUpPacket(dwIID);
else if (!CPythonSystem::Instance().IsPickUpFilterWeapon() && !CPythonSystem::Instance().IsPickUpFilterArmor() && !CPythonSystem::Instance().IsPickUpFilterEar()
&& !CPythonSystem::Instance().IsPickUpFilterNeck() && !CPythonSystem::Instance().IsPickUpFilterFoots() &&
!CPythonSystem::Instance().IsPickUpFilterShield() &&
!CPythonSystem::Instance().IsPickUpFilterStone())
rkNetStream.SendItemPickUpPacket(dwIID);
}
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 59 vizitatori

