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

📄 disarmmine.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : DisarmMine.cpp// Written by  : Elca// Description : //////////////////////////////////////////////////////////////////////////////#include "DisarmMine.h"#include "Assert.h"#include "SkillInfo.h"#include "EffectDarkness.h"#include "item/Mine.h"#include "Gpackets/GCSkillToTileOK1.h"#include "Gpackets/GCSkillToTileOK5.h"#include "Gpackets/GCSkillFailed1.h"#include "Gpackets/GCSkillFailed2.h"#include "Gpackets/GCDeleteEffectFromTile.h"#include "Gpackets/GCDeleteObject.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void DisarmMine::execute( Slayer  * pSlayer, ZoneCoord_t X, ZoneCoord_t Y, SkillSlot* pSkillSlot, CEffectID_t CEffectID)	throw(Error){	__BEGIN_TRY	Assert(pSlayer != NULL);	Assert(pSkillSlot != NULL);	/*	try	{		Player* pPlayer = pSlayer->getPlayer();		Zone* pZone = pSlayer->getZone();	}	catch (Throwable & t)	{	}	*/	__END_CATCH}/*void DisarmMine::execute( Slayer  * pSlayer, ZoneCoord_t X, ZoneCoord_t Y, SkillSlot* pSkillSlot, CEffectID_t CEffectID)	throw(Error){	__BEGIN_TRY	try	{	//Assert( pSkillSlot != NULL );	if (pSkillSlot == NULL)	{		cout << "DisarmMine : 胶懦 浇儿捞 澄涝聪促." << endl;		GCSkillFailed1 _GCSkillFailed1;		pSlayer->getPlayer()->sendPacket( &_GCSkillFailed1);		return;	}	    SkillType_t SkillType = pSkillSlot->getSkillType();    SkillInfo * pSkillInfo = g_pSkillInfoManager->getSkillInfo( SkillType );    SkillLevel_t SkillLevel = pSkillSlot->getExpLevel();	// 疙吝伏.	ToHit_t ToHit = pSlayer->getToHit();    int RemainMP = (int)pSlayer->getMP( ATTR_CURRENT) - (int)pSkillInfo->getConsumeMP();    bool bModifyMP = false;    if( RemainMP >= 0 && verifyRunTime(pSkillSlot) && 		pZone->getZoneLevel(pSlayer->getX(), pSlayer->getY()) != 0)    {        pSlayer->setMP( RemainMP , ATTR_CURRENT );        bModifyMP = true;    }	// Installed mine阑 茫绰促.	Mine* pMine = NULL;	bool bInstallAction = false;	// install or disarm	Item* pItem = pZone->getTile( X, Y).getItem();	if( pItem && pItem->getItemClass() == Item::ITEM_CLASS_MINE)	{		if( pItem->isFlag( Effect::EFFECT_CLASS_INSTALL))		{			if( pSlayer->isFlag( Effect::EFFECT_CLASS_DETECT_MINE)) 	// 泅犁 杭 荐 乐绰惑怕牢瘤 犬牢.			{				bInstallAction = false;// disarm捞村				pMine = dynamic_cast<Mine*>(pItem);			}		}		else		{			bInstallAction = true;			pMine = dynamic_cast<Mine*>(pItem);		}	}	ZoneCoord_t slayerX = pSlayer->getX(), slayerY = pSlayer->getY();    // 扁贱狼 己菩甫 蝶柳促.    if ( pMine && bModifyMP && (ToHit + SkillLevel) > Random(0, 100) ) 	{		Range_t Range = 1; 		GCSkillToTileOK1 _GCSkillToTileOK1;		GCSkillToTileOK5 _GCSkillToTileOK5;			if( bInstallAction)		{			pMine->setDir( calcDirection( slayerX, slayerY, X, Y)); 			pMine->setFlag( Effect::EFFECT_CLASS_INSTALL);			// mine阑 杭 荐 绝霸 等 磊甸俊霸绰 昏力 			addInstalledMine( pZone, pMine, X, Y);		}		else		{				// 昏力茄促.			pZone->deleteItem( pMine, X, Y );			GCDeleteObject gcDeleteObject;			gcDeleteObject.setObjectID( pMine->getObjectID() );			pZone->broadcastPacket( X, Y , &gcDeleteObject );			pMine->destroy();			delete pMine;		}					// EXP up        Exp_t Point = pSkillInfo->getPoint();		shareAttrExp(pSlayer, 100, 1, 8, 1, _GCSkillToTileOK1);		increaseDomainExp(pSlayer, SKILL_DOMAIN_GUN, Point, _GCSkillToTileOK1);		increaseSkillExp(pSlayer, SKILL_DOMAIN_GUN, pSkillSlot, pSkillInfo, _GCSkillToTileOK1);        _GCSkillToTileOK1.addLongData( MODIFY_CURRENT_MP , RemainMP );        _GCSkillToTileOK1.setSkillType( SkillType );        _GCSkillToTileOK1.setCEffectID( CEffectID );        _GCSkillToTileOK1.setX( X );        _GCSkillToTileOK1.setY( Y );        _GCSkillToTileOK1.setDuration( 0 );        _GCSkillToTileOK5.setObjectID( pSlayer->getObjectID());        _GCSkillToTileOK5.setSkillType( SkillType);        _GCSkillToTileOK5.setX( X);        _GCSkillToTileOK5.setY( Y);        _GCSkillToTileOK5.setRange( Range);        _GCSkillToTileOK5.setDuration( 0);		        pPlayer->sendPacket( &_GCSkillToTileOK1 );        pZone->broadcastPacket( slayerX, slayerY, &_GCSkillToTileOK5, pSlayer);//        cout << "Run Skill : " << (int)SkillType << endl;		// Set NextTime		pSkillSlot->setRunTime();	} 	else 	{		GCSkillFailed1 _GCSkillFailed1;		GCSkillFailed2 _GCSkillFailed2;        if( bModifyMP)            _GCSkillFailed1.addLongData( MODIFY_CURRENT_MP, RemainMP);        pPlayer->sendPacket( &_GCSkillFailed1 );	}	} catch( Throwable & t )  {		GCSkillFailed1 _GCSkillFailed1;		pSlayer->getPlayer()->sendPacket( &_GCSkillFailed1);		cout << t.toString() << endl;	}	__END_CATCH}*/DisarmMine g_DisarmMine;

⌨️ 快捷键说明

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