本文整理汇总了C++中Item::GetEquipBindLevel方法的典型用法代码示例。如果您正苦于以下问题:C++ Item::GetEquipBindLevel方法的具体用法?C++ Item::GetEquipBindLevel怎么用?C++ Item::GetEquipBindLevel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Item
的用法示例。
在下文中一共展示了Item::GetEquipBindLevel方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Execute
uint CGExchangeSynchItemIIHandler::Execute( CGExchangeSynchItemII* 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 ) ;
//验证交易状态
EXCHANGE_CERTIFY_EACH_OTHER(pHuman) // 验证交易双方是否掉线合法
EXCHANGE_CERTIFY_ISLOCK(pHuman) // 验证当前人物的交易状态是否已经上锁
ObjID_t DestID = pHuman->m_ExchangBox.m_ObjID;
Obj_Human* pDestHuman = pScene->GetHumanManager()->GetHuman( DestID );
EXCHANGE_CERTIFY_STATUS(pHuman, EXCHANGE_SYNCH_DATA) // 验证当前人物的交易状态是否正确
EXCHANGE_CERTIFY_STATUS(pDestHuman, EXCHANGE_SYNCH_DATA)
//操作
BYTE Opt = pPacket->GetOpt();
BYTE FromType = pPacket->GetFromType();
BYTE ToType = pPacket->GetToType();
BYTE FromIndex = pPacket->GetFromIndex();
BYTE ToIndex = pPacket->GetToIndex();
PET_GUID_t PetGuid = pPacket->GetPetGuid();
_ITEM ItemTemp;
GCExchangeSynchII Msg;
GCExchangeError MsgError;
ItemContainer* pExchangeContainer = &(pHuman->m_ExchangBox.m_Container);
ItemContainer* pExchangePetContainer = &(pHuman->m_ExchangBox.m_PetContainer);
switch(Opt)
{
case OPT_ERROR:
{
}
break;
case OPT_ADDITEM:
{
switch(FromType)
{
case POS_BAG:
{
//验证位置里是否有东西
Item* pItem = HumanItemLogic::GetBagItem(pHuman, FromIndex);
if ( pItem != NULL && pItem->GetItemClass() == ICLASS_EQUIP)
{
if(pItem->GetEquipBindLevel()>0) // 装备绑定
{
MsgError.SetID(ERR_ITEM_LOCKED);
pGamePlayer->SendPacket(&MsgError);
g_pLog->FastSaveLog( LOG_FILE_1, "<交易> [%s] 该物品[%d]已绑定,不可交易", pHuman->GetName(), FromIndex ) ;
return PACKET_EXE_CONTINUE;
}
}
if (pItem == NULL)
{
MsgError.SetID(ERR_ILLEGAL);
pGamePlayer->SendPacket(&MsgError);
g_pLog->FastSaveLog( LOG_FILE_1, "<交易> [%s] 背包位置 [%d] 处不存在物品", pHuman->GetName(), FromIndex ) ;
return PACKET_EXE_CONTINUE;
}
if(pItem->IsEmpty() == FALSE)
{
ItemContainer* pBagContainer = HumanItemLogic::GetBagContainer(pHuman, FromIndex);
if ( pBagContainer == NULL )
{
MsgError.SetID(ERR_ILLEGAL);
pGamePlayer->SendPacket(&MsgError);
g_pLog->FastSaveLog( LOG_FILE_1, "<交易> [%s] 背包不存在", pHuman->GetName() ) ;
return PACKET_EXE_CONTINUE;
}
//先查一遍交易盒中是不是已经有该物品了
for(INT i = 0; i<EXCHANGE_BOX_SIZE; i++)
{
_ITEM_GUID guid = (pBagContainer->GetItem(pBagContainer->BagIndex2ConIndex(FromIndex)))->GetGUID() ;
if(pExchangeContainer->GetItem(i)->GetGUID() == guid)
{//物品已经在交易盒中,丢弃该消息
return PACKET_EXE_CONTINUE ;
}
}
//自动找格
INT result =
//.........这里部分代码省略.........