⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mouseitemposition.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
///////////////////////////////////////////////////////////////////// MouseItemPosition 努贰胶 备泅///////////////////////////////////////////////////////////////////#include "Assert.h"#include "PlayerCreature.h"#include "Player.h"#include "PCFinder.h"#include "Item.h"#include "Zone.h"#include "ZoneGroup.h"#include "Effect.h"#include "Utility.h"#include "ZoneUtil.h"#include "RelicUtil.h"#include "CreatureUtil.h"#include "MouseItemPosition.h"#include "Gpackets/GCDeleteInventoryItem.h"#include "Gpackets/GCAddEffect.h"Item* MouseItemPosition::popItem( bool bLock )	throw(Error){	__BEGIN_TRY	if ( bLock ) return popItem_UNLOCKED();	return popItem_LOCKED();	__END_CATCH}Item* MouseItemPosition::popItem_UNLOCKED( )	throw(Error){	__BEGIN_TRY	Creature* pTargetCreature = findCreature();	Zone* pZone = getZoneByCreature( pTargetCreature );	//Assert( pZone != NULL );	if (pZone==NULL) return NULL;		Item* pItem = NULL;	__ENTER_CRITICAL_SECTION( (*pZone) )	PlayerCreature* pPC = dynamic_cast<PlayerCreature*>( pTargetCreature );	Assert( pPC != NULL );	pItem = popItem_CORE( pPC );    __LEAVE_CRITICAL_SECTION((*pZone))	return pItem;	__END_CATCH}Item* MouseItemPosition::popItem_LOCKED()	throw(Error){	__BEGIN_TRY	Creature* pTargetCreature = findCreature();	Zone* pZone = getZoneByCreature( pTargetCreature );	Assert( pZone != NULL );	PlayerCreature* pPC = dynamic_cast<PlayerCreature*>( pTargetCreature );	Assert( pPC != NULL );	return popItem_CORE( pPC );	__END_CATCH}Zone* MouseItemPosition::getZone()	throw(Error){	__BEGIN_TRY	// 备秦初篮霸 乐栏搁 弊吧肺 府畔茄促.	if ( m_bSetZone ) return m_pZone;	// 备秦初篮霸 绝栏搁 货肺 备茄促.	Creature* pTargetCreature = findCreature();	return getZoneByCreature( pTargetCreature );	__END_CATCH}Item* MouseItemPosition::popItem_CORE( PlayerCreature* pPC )	throw(Error){	__BEGIN_TRY	Item* pItem;	if ( pPC->getExtraInventorySlotItem() == NULL) 	{		filelog( "ItemError.log", "InventoryItemPosition:getItem() : 秦寸窍绰 困摹俊 酒捞袍捞 绝嚼聪促." );		return NULL;	}	pItem = pPC->getExtraInventorySlotItem();	pPC->deleteItemFromExtraInventorySlot();	GCDeleteInventoryItem gcDeleteInventoryItem;	gcDeleteInventoryItem.setObjectID( pItem->getObjectID() );	pPC->getPlayer()->sendPacket( &gcDeleteInventoryItem );	if ( pItem->getItemClass() == Item::ITEM_CLASS_BLOOD_BIBLE		|| pItem->getItemClass() == Item::ITEM_CLASS_CASTLE_SYMBOL )	{		sendBloodBibleEffect( pPC, Effect::EFFECT_CLASS_WARP_BLOOD_BIBLE_FROM_ME );		deleteRelicEffect( pPC, pItem );	}	if ( pItem->isFlagItem() )	{		Effect* pFlagEffect = pPC->findEffect( Effect::EFFECT_CLASS_HAS_FLAG );		if ( pFlagEffect != NULL ) pFlagEffect->setDeadline(0);	}	if ( pItem->isSweeper() )	{		Effect* pEffect = pPC->findEffect( Effect::EFFECT_CLASS_HAS_SWEEPER );		if ( pEffect != NULL )		{			pEffect->setDeadline(0);		}		}	return pItem;	__END_CATCH}Creature* MouseItemPosition::findCreature()	throw(Error){	__BEGIN_TRY	Creature* pTargetCreature = NULL;    __ENTER_CRITICAL_SECTION((*g_pPCFinder))    pTargetCreature = g_pPCFinder->getCreature_LOCKED(m_OwnerName);    if (pTargetCreature==NULL)    {		filelog( "ItemError.log", "InventoryItemPosition:getItem() : 秦寸窍绰 Creature啊 绝嚼聪促." );        g_pPCFinder->unlock();        return NULL;    }    __LEAVE_CRITICAL_SECTION((*g_pPCFinder))	return pTargetCreature;	__END_CATCH}Zone* MouseItemPosition::getZoneByCreature( Creature* pCreature ) 	throw (Error){	if (pCreature==NULL) return NULL;    Assert(pCreature->isPC());	Zone* pZone = pCreature->getZone();	Assert( pZone != NULL );		m_bSetZone = true;	m_pZone = pZone;	return pZone;}string  MouseItemPosition::toString() const 	throw(Error){	return "MouseItemPosition";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -