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

📄 wildtyphoon.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : WildTyphoon.cpp// Written by  : elca@ewestsoft.com// Description ://////////////////////////////////////////////////////////////////////////////#include "WildTyphoon.h"#include "SimpleMeleeSkill.h"#include "SimpleTileMissileSkill.h"#include <list>const int dir_advance[8][2] ={	{ -1, 0 },	{ -1, 1 },	{  0, 1 },	{  1, 1 },	{  1, 0 },	{  1,-1 },	{  0,-1 },	{ -1,-1 }};void WildTyphoon::execute(Slayer* pSlayer, ObjectID_t targetObjectID, SkillSlot* pSkillSlot, CEffectID_t CEffectID) throw(Error){	__BEGIN_TRY	Zone* pZone = pSlayer->getZone();	Assert(pZone != NULL);		Creature* pTargetCreature = pZone->getCreature(targetObjectID);	//Assert(pTargetCreature != NULL);	// NoSuch力芭. by sigi. 2002.5.2	if (pTargetCreature==NULL)	{		executeSkillFailException(pSlayer, getSkillType());		return;	}	execute( pSlayer, pTargetCreature->getX(), pTargetCreature->getY(), pSkillSlot, CEffectID );	__END_CATCH}void WildTyphoon::execute(Slayer * pSlayer, ZoneCoord_t X, ZoneCoord_t Y, SkillSlot * pSkillSlot, CEffectID_t CEffectID)	throw(Error){	__BEGIN_TRY//	cout << "(x,y)=" << X << "," << Y << endl;	Zone* pZone = pSlayer->getZone();	Assert(pZone!=NULL);	SkillInput input(pSlayer, pSkillSlot);	SkillOutput output;	computeOutput(input, output);	SIMPLE_SKILL_INPUT param;	param.SkillType     = getSkillType();	param.SkillDamage   = output.Damage;	param.Delay         = output.Delay;	param.ItemClass     = Item::ITEM_CLASS_BLADE;	param.STRMultiplier = 8;	param.DEXMultiplier = 1;	param.INTMultiplier = 1;	param.bMagicHitRoll = false;	param.bMagicDamage  = false;	param.bAdd          = true;	param.bExpForTotalDamage = false;	Dir_t dir = getDirectionToPosition( pSlayer->getX(), pSlayer->getY(), X, Y );	SIMPLE_SKILL_OUTPUT result;	// 格钎困摹+4规氢	param.addMask( 0 + dir_advance[dir][0],  0 + dir_advance[dir][1], 100);	param.addMask(-1 + dir_advance[dir][0], -1 + dir_advance[dir][1], 100);	param.addMask( 0 + dir_advance[dir][0], -1 + dir_advance[dir][1], 100);	param.addMask( 1 + dir_advance[dir][0], -1 + dir_advance[dir][1], 100);	param.addMask(-1 + dir_advance[dir][0],  0 + dir_advance[dir][1], 100);	param.addMask( 1 + dir_advance[dir][0],  0 + dir_advance[dir][1], 100);	param.addMask(-1 + dir_advance[dir][0],  1 + dir_advance[dir][1], 100);	param.addMask( 0 + dir_advance[dir][0],  1 + dir_advance[dir][1], 100);	param.addMask( 1 + dir_advance[dir][0],  1 + dir_advance[dir][1], 100);	g_SimpleTileMissileSkill.execute(pSlayer, X, Y, pSkillSlot, param, result);	list<Creature*>::iterator itr = result.targetCreatures.begin();	list<Creature*>::iterator endItr = result.targetCreatures.end();	for ( ; itr != endItr ; ++itr )	{		Creature* pCreature = *itr;		if (pCreature!=NULL)		{			// 阁胶磐牢 版快父 delay甫 眠啊茄促.			// player甸篮 client俊辑 贸府窍霸 登绢乐促.			int stunRatio = pSlayer->getSTR()/5;			if (pCreature->isMonster() && (rand()%100) < stunRatio)			{				Monster* pMonster = dynamic_cast<Monster*>(pCreature);				// delay汲沥 ( + 2檬 )				if (!pMonster->isMaster()#ifdef __UNDERWORLD__						&& !pMonster->isUnderworld() && pMonster->getMonsterType() != 599#endif				)				{					Timeval delay;					delay.tv_sec  = 2;					delay.tv_usec = 0;//500000;					pMonster->addAccuDelay(delay);				}			}		}	}	__END_CATCH}WildTyphoon g_WildTyphoon;//					if ( param.SkillType == SKILL_WILD_TYPHOON )//					{//						int ratio = pSlayer->getSTR() / 10;//						if ( (rand()%100) < ratio )//						{//							_GCSkillToTileOK2.setSkillType( SKILL_ATTACK_MELEE );//						}//					}//

⌨️ 快捷键说明

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