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

📄 effectdecayitem.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//----------------------------------------------------------------------//// Filename    : EffectDecayItem.cpp// Written by  : Reiot////----------------------------------------------------------------------// include files#include "Assert.h"#include "EffectDecayItem.h"#include "Gpackets/GCDeleteObject.h"#include "Tile.h"#include "Zone.h"#include "Item.h"#include "Money.h"#include "ItemUtil.h"#include "ZoneUtil.h"#include "UniqueItemManager.h"#include "VariableManager.h"#include <stdio.h>//----------------------------------------------------------------------// constructor//----------------------------------------------------------------------EffectDecayItem::EffectDecayItem (Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Item* pItem , Turn_t delay, bool bDeleteFromDB) 	throw (Error): Effect(pZone,x,y,pItem,delay) {	__BEGIN_TRY	Assert(getZone() != NULL);	Assert(getTarget() != NULL);	//m_ObjectID = pItem->getObjectID();	m_ObjectID = pItem->getObjectID();	m_bDeleteFromDB = bDeleteFromDB;	// 辑滚 傈侩 Effect捞促. by sigi. 2002.11.14	m_bBroadcastingEffect = false;	__END_CATCH}//----------------------------------------------------------------------// destructor//----------------------------------------------------------------------EffectDecayItem::~EffectDecayItem () 	throw (Error){	__BEGIN_TRY	unaffect(m_pZone , m_X , m_Y , m_pTarget);	__END_CATCH}			//----------------------------------------------------------------------// affect to target// 捞 捞棋飘绰 鸥老俊 辆加登瘤 臼栏骨肺, affect()绰 龋免登瘤 臼绰促.// 恐衬窍搁, target篮 积己磊俊辑 瘤沥登哥, 酒公繁 老档 窍瘤 臼扁 锭巩捞促.//----------------------------------------------------------------------void EffectDecayItem::affect (Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Object* pTarget)	throw (Error){	__BEGIN_TRY//	throw UnsupportedError();		__END_CATCH}//----------------------------------------------------------------------// remove effect from target//----------------------------------------------------------------------void EffectDecayItem::unaffect (Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Object* pTarget)	throw (Error){	__BEGIN_TRY	// 棵官弗 谅钎捞绢具 茄促.	Assert(isValidZoneCoord(pZone, x, y));	// TempItem 函荐甫 棱绰促.	Item* pTempItem = NULL;	// 咯扁辑绰 瘤沥 酒捞袍捞 绝阑 荐 乐栏哥, 肚 促弗 酒捞袍捞 初咯 乐阑 荐档 乐促.	// 捞 版快绰 坷府瘤澄 酒捞袍苞 瘤陛 泅犁 官蹿俊 乐绰 酒捞袍阑 厚背窍咯 昏力秦具 茄促.	// 绝阑 版快绰 公矫窍搁 等促.	Tile & tile = pZone->getTile(x, y);	if (tile.hasItem()) {		pTempItem = tile.getItem();		if (pTempItem != NULL) {			// ObjectID啊 鞍促绰 富篮 鞍篮 酒捞袍捞鄂 富捞促.			//if (pTempItem->getObjectID() == m_ObjectID) {			if (pTempItem->getObjectID() == m_ObjectID) {				pZone->deleteItem(pTempItem , x, y);				// 酒捞袍捞 荤扼脸促绰 菩哦阑 朝赴促.				GCDeleteObject gcDeleteObject;				gcDeleteObject.setObjectID(m_ObjectID);				pZone->broadcastPacket(x, y , &gcDeleteObject);				if (m_bDeleteFromDB)				{					//ItemInfo* pItemInfo = g_pItemInfoManager->getItemInfo( pTempItem->getItemClass(), pTempItem->getItemType() );					//Assert(pItemInfo!=NULL);					// 蜡聪农 酒捞袍牢 版快 俺荐甫 临牢促.					if (pTempItem->isUnique())					{						// create茄 酒捞袍捞 酒囱 版快父 瘤况霖促.						if (pTempItem->getCreateType()!=Item::CREATE_TYPE_CREATE)							UniqueItemManager::deleteItem( pTempItem->getItemClass(), pTempItem->getItemType() );						filelog("uniqueItem.txt", "[EffectDecayItem] %s", pTempItem->toString().c_str());					}					// ItemTraceLog 甫 巢变促					if ( pTempItem != NULL && pTempItem->isTraceItem() )					{						char zoneName[15];						sprintf( zoneName, "%4d%3d%3d", pZone->getZoneID(), x, y);						remainTraceLog( pTempItem, zoneName, "GOD", ITEM_LOG_DELETE, DETAIL_TIMEOUT);					}					// 捣 肺弊 巢扁磊					if ( pTempItem->getItemClass() == Item::ITEM_CLASS_MONEY )					{						Money* pMoney = dynamic_cast<Money*>(pTempItem);						if ( pMoney->getAmount() >= g_pVariableManager->getMoneyTraceLogLimit() )						{							char zoneName[15];							sprintf( zoneName, "%4d%3d%3d", pZone->getZoneID(), x, y);							remainMoneyTraceLog( zoneName, "GOD", ITEM_LOG_DELETE, DETAIL_TIMEOUT, pMoney->getAmount() );						}					}					pTempItem->destroy();				}				SAFE_DELETE(pTempItem);			}		}	}	pTarget = NULL;	__END_CATCH}//----------------------------------------------------------------------// unaffect()//----------------------------------------------------------------------void EffectDecayItem::unaffect ()	throw (Error){	__BEGIN_TRY	__END_CATCH}//----------------------------------------------------------------------// unaffect()//----------------------------------------------------------------------void EffectDecayItem::unaffect (Creature* pCreature)	throw (Error){	__BEGIN_TRY	__END_CATCH}//----------------------------------------------------------------------// get debug string//----------------------------------------------------------------------string EffectDecayItem::toString () const 	throw (){	StringStream msg;	msg << "EffectDecayItem("			<< "ZoneID:" << (int)m_pZone->getZoneID()			<< ",X:"     << (int)getX()			<< ",Y:"     << (int)getY();	if (m_pTarget) msg << ",Target:" << m_pTarget->toString();	else           msg << ",Target:NULL";	msg << ",Deadline:" << (int)m_Deadline.tv_sec 			<< "." << (int)m_Deadline.tv_usec;	msg << ")";	return msg.toString();}

⌨️ 快捷键说明

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