本文整理汇总了C++中ItemContainer::IsEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ ItemContainer::IsEmpty方法的具体用法?C++ ItemContainer::IsEmpty怎么用?C++ ItemContainer::IsEmpty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ItemContainer
的用法示例。
在下文中一共展示了ItemContainer::IsEmpty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
uint CGPackage_SwapItemHandler :: Execute( CGPackage_SwapItem* pPacket, Player* pPlayer )
{
__ENTER_FUNCTION
GamePlayer* pGamePlayer = (GamePlayer*)pPlayer ;
Assert( pGamePlayer ) ;
Obj_Human* pHuman = pGamePlayer->GetHuman() ;
Assert( pHuman ) ;
Scene* pScene = pHuman->getScene() ;
if( pScene==NULL )
{
Assert(FALSE) ;
return PACKET_EXE_ERROR;
}
//检查线程执行资源是否正确
Assert( MyGetCurrentThreadID()==pScene->m_ThreadID ) ;
//得到所要交换的两个索引
INT index1 = pPacket->GetPackageIndex1();
INT index2 = pPacket->GetPackageIndex2();
INT bSucc = -1;
GCPackage_SwapItem msg;
//扩展包互换 禁止
if ((index1>=EXTRA_CONTAINER_OFFSET)&&(index2>=EXTRA_CONTAINER_OFFSET))
{
msg.SetResult(SWITCHITEM_EXTRBAG_EXCHANGE_FAIL);
pGamePlayer->SendPacket(&msg);
g_pLog->FastSaveLog( LOG_FILE_1, "CGPackage_SwapItem: index1=%d, index2=%d extrabag fail",
index1, index2) ;
return PACKET_EXE_CONTINUE;
}
if (index1>=EXTRA_CONTAINER_OFFSET)
{
ItemContainer* pExtraBagContainer = HumanItemLogic::GetBagByExtraContainPos(pHuman, index1);
//位置无效
if (pExtraBagContainer == NULL)
{
g_pLog->FastSaveLog( LOG_FILE_1, "CGPackage_SwapItem: index1=%d, is invalid", index1) ;
return PACKET_EXE_ERROR;
}
//扩展包不存在
if (!pExtraBagContainer->IsValid())
{
msg.SetResult(SWITCHITEM_SOURCEEXTRBAG_NOALIVE);
pGamePlayer->SendPacket(&msg);
g_pLog->FastSaveLog( LOG_FILE_1, "CGPackage_SwapItem: index1=%d, extrabag is not alive", index1) ;
return PACKET_EXE_CONTINUE;
}
//非空扩展包不许移动
if (!pExtraBagContainer->IsEmpty())
{
msg.SetResult(SWITCHITEM_SOURCEEXTRBAG_ITEM_FAIL);
pGamePlayer->SendPacket(&msg);
g_pLog->FastSaveLog( LOG_FILE_1, "CGPackage_SwapItem: index1=%d, extrabag has items", index1) ;
return PACKET_EXE_CONTINUE;
}
ItemContainer* pExtraContainer = pHuman->GetExtraContain();
INT index_container1 = pExtraContainer->BagIndex2ConIndex(index1);
ItemContainer* pBagContainer = HumanItemLogic::GetBagContainer(pHuman, index2);
INT index_container2 = pBagContainer->BagIndex2ConIndex(index2);
if (pExtraBagContainer->IsInContainer(index2))
{
return PACKET_EXE_CONTINUE;
}
Item* pItem2 = pBagContainer->GetItem(index_container2);
//不能将扩展包移动到有物品位置
if (!pItem2->IsEmpty())
{
msg.SetResult(SWITCHITEM_SOURCEEXTRBAG_ITEM_FAIL);
pGamePlayer->SendPacket(&msg);
g_pLog->FastSaveLog( LOG_FILE_1, "CGPackage_SwapItem: index1=%d, extrabag has items", index1) ;
return PACKET_EXE_CONTINUE;
}
bSucc = g_ItemOperator.MoveItem(pExtraContainer, index_container1, pBagContainer, index_container2);
if (bSucc>=0)
{
pHuman->ReInitExtraBag();
msg.SetResult(SWITCHITEM_SUCCESS);
msg.SetPackageIndex1(index1);
msg.SetPackageIndex2(index2);
pGamePlayer->SendPacket(&msg);
g_pLog->FastSaveLog( LOG_FILE_1, "CGPackage_SwapItem: index1=%d, index2=%d Success",
index1, index2 ) ;
return PACKET_EXE_CONTINUE;
}
}
if ((index2>=EXTRA_CONTAINER_OFFSET)&&(index2<BASE_BAG_POS))
{
ItemContainer* pBagContainer = HumanItemLogic::GetBagContainer(pHuman, index1);
Item* pItem1 = pBagContainer->GetItem(pBagContainer->BagIndex2ConIndex(index1));
if (pItem1->IsEmpty())
//.........这里部分代码省略.........