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

📄 magicsys.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	}
	
	if (Hero_Ability[WSPS] < g_lpMT[nMagic].point_WS)
	{
		OUTPUT(MK_SHORTAGE, lan->OutputMessage(1, 6));	
		return false;
	}

	if (Hero->aStepInfo[CLS_STEP] < g_lpMT[nMagic].nDualStep)
	{
		OUTPUT(MK_SHORTAGE, lan->OutputMessage(1, 6));	
		return false;
	}
	
	// 031110 YGI
	if (Hero->aStepInfo[CLS_STEP] < g_lpMT[nMagic].nDualStep)		
	{// 掂倔窜拌 	// 030415 kyo
		OUTPUT(MK_SHORTAGE, lan->OutputMessage(1, 6));	
		return false;
	}

	if(g_lpMT[nMagic].nDualStep > QuickItemAttr[5].attr[0] ) //soto-031110 
	{
		OUTPUT(MK_SHORTAGE, lan->OutputMessage(1, 6));	
		return false;
	}

	// 琶平苞 付唱樊 八荤
	switch (SCharacterData.nCharacterData[SPELL])
	{
    case WIZARD_SPELL:
		{ // 付过荤扼搁
			if (SCharacterData.SkillId[MAGERY + 88] + 1 < g_lpMT[nMagic].basic_Magery)
			{
				OUTPUT(MK_SHORTAGE, lan->OutputMessage(1, 7));
				return false;				
			}
			
			if (SCharacterData.nCharacterMP < g_lpMT[nMagic].exhaust_MP)
			{
				OUTPUT(MK_SHORTAGE, lan->OutputMessage(1, 9));
				return false;         				
			}
			
			break;
		}
    case PRIEST_SPELL:
		{ // 己流磊扼搁
			if (SCharacterData.SkillId[ORISON + 88] + 1 < g_lpMT[nMagic].basic_Magery)		
			{
				OUTPUT(MK_SHORTAGE, lan->OutputMessage(1, 8));
				return false;				
			}
			
			if (SCharacterData.nCharacterMP < g_lpMT[nMagic].exhaust_MP)
			{
				OUTPUT(MK_SHORTAGE, lan->OutputMessage(1, 10));
				return false; 				
			}
			
			break;
		}
	}
	// 扒拱 救俊 乐绰 版快 雀汗付过 捞寇俊绰 付过 荤侩 阂啊
	if (g_lpMT[nMagic].magic_Type/10 != 1)
	{
		const int nX = (Hero->x>>5);
		const int nY = (Hero->y>>5);
		
		if (TileMap[nX][nY].attr_inside == 1)
		{
			OUTPUT(MK_WARNING, lan->OutputMessage(1, 4));
			return false;
		}
	}
	
	return true;
}

///////////////////////////////////////////////////////////////////////////////
// Protected Method
///////////////////////////////////////////////////////////////////////////////

bool CMagicSys::AddEffect(LPCHARACTER pCaster, LPCHARACTER pTarget, int nMagic, int nX, int nY, bool bFail)
{
	const bool bPattern = false;
	
	switch (nMagic)
	{
		//// 付过荤
	case LIFE_UP: // 眉仿 雀汗
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			}
			else	
			{ // 矫傈磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}
	case PROTECTION: // 焊龋
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			}
			else	
			{ // 矫傈磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			}				
			
			break;
		}
	case SHIELD: // 焊龋阜
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}		
	case DECIPHER: // 秦刀付过
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case HEAL_DISEASE: // 龙捍 摹丰
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 8, pTarget->x, pTarget->y, 0, 0, bPattern, 0, bFail);
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}
	case GREAT_HEAL: // 措眉仿雀汗
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 8, pTarget->x, pTarget->y, 0, 0, bPattern, 0, bFail);	//辑宏逞滚 8牢 版快 矫傈磊 矫悼->措惑眉 吝埃/辆富
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}			
	case SLOW: // 加档历窍
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}		
	case CONFUSION: // 去鄂		
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}		
	case INTOXICATION: // 吝刀
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}		
	case STONELY: // 籍拳
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
	case ABSOLUTE_PARALYSIS: // 例措付厚
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
	case TOXIC_CLOUD: // 刀备抚
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case DISEASE_INDUCE: // 龙捍蜡惯
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
	case VAMPIRE_TOUCH: // 轨颇捞绢狼 颊辨
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}	
	case SPIDER_WEB: // 芭固临
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}		
	case MAGICAL_TRAP: // 付过飘乏
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case ENCHANT_WEAPON: // 牢眉飘 傀迄
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 8, pTarget->x, pTarget->y, 0, 0, bPattern, 0, bFail);	//辑宏逞滚 8牢 版快 矫傈磊 矫悼->措惑眉 吝埃/辆富
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}
	case TRANSPARENCY: // 捧疙林巩
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
	case NULLITY_MAGIC: // 付过公瓤拳
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, pTarget->x, pTarget->y, bPattern, 0, bFail);	//辑宏逞滚 8牢 版快 矫傈磊 矫悼->措惑眉 吝埃/辆富
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}
	case MINOR_AMPLIFY: // 家刘气
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
		
    case MAGIC_AMPLIFY: // 付过刘气
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}    
	case FIRE_RESIST:
    case ICE_RESIST:
    case ELECT_RESIST:
		{
			::InsertMagic(pCaster, pTarget, nMagic, -1, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}	
	case FIRE_ARROW: // 阂拳混
		{
			pCaster->bow_Type = 1;
			break;
		}
	case FIRE_BALL: // 拳堪备
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 1, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}	
	case SCORCHER: // 拳堪焙
		{
			ClearCrash();
			
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 1, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}
	case CIRCLE_FLAME: // 规荤拳堪
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case FIRE_WALL: // 拳堪寒
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case FLAME_WAVE: // 框流捞绰 拳堪厘寒
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);	//辑宏逞滚 8牢 版快 矫傈磊 矫悼->措惑眉 吝埃/辆富
			break;
		}		
	case APOCALYPSE: // 瘤苛狼 阂
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case ICE_ARROW: // 倔澜 拳混
		{
			pCaster->bow_Type = 2;
			break;
		}			
	case ICE_BALL: // 倔澜备
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 1, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}	
	case FREEZE_5TILE_RADIUS: // 馆版5鸥老 倔覆
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0,  nX, nY, bPattern, 0, bFail);
			break;
		}
	case ICE_WALL: // 倔澜寒
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case CIRCLE_ICE: // 盔屈 倔澜傍拜
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case FREEZE_9TILE_RADIUS: // 馆版 9鸥老 倔覆
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0,  nX, nY, bPattern, 0, bFail);
			break;
		}
	case LIGHT: // 蝴
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}		
	case LIGHTNING_BOLT:
		{
			::InsertMagic(pCaster, pTarget, nMagic, 99, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
    case GREAT_THUNDER_BOLT:
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case CHAIN_LIGHTNING: // 蜡档 傈拜傍拜
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 1, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}
	case CIRCLE_LIGHTNING: // 盔屈 傈拜傍拜
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
	case LIGHTNING: // 流急 傈拜傍拜
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case TWINKLE_STAR: // 荐龋己
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
	case LIGHTNING_5TILE_RADIUS: // 馆版5鸥老 傈拜傍拜
		{
			::InsertMagic(pCaster, pTarget, nMagic, 99, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case LOW_MONSTER_RECALL: // 历鞭 阁胶磐 家券
		{
			::InsertMagic(pCaster, pCaster, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case MIDDLE_MONSTER_RECALL: // 吝鞭 阁胶磐 家券	
		{
			::InsertMagic(pCaster, pCaster, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case PHASING: // 厘家捞悼	
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case MEMORIZING_LOCATION: // 捞悼厘家扁撅
		{
			::InsertMagic(pCaster, pCaster, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case TELEPORT: // 鉴埃捞悼
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}		
	case MULTI_PORT: // 汗荐瞒盔捞悼
		{
			::InsertMagic(pCaster, pCaster, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}		
	case TOWN_PORTAL: // 瞒盔捞悼
		{
			::InsertMagic(pCaster, pCaster, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
	case MAGIC_DETECT: // 付过沤瘤
		{
			::InsertMagic(pCaster, pCaster, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}		
	case REMOVE_CURSE: // 历林秦力
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}		
	case PROTECT_RANGE_WEAPON: // 厘芭府公扁肺何磐 焊龋
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}	
	case LOST_SIGHT: // 矫仿惑角
		{
			::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
	case SPEED_UP: // 加档刘啊
		{
			if (pCaster != pTarget)
			{	// 措惑磊俊霸 付过 矫青
				::InsertMagic(pCaster, pTarget, nMagic, 8, 0, 0, 0, 0, bPattern, 0, bFail);	//辑宏逞滚 8牢 版快 矫傈磊 矫悼->措惑眉 吝埃/辆富
			}
			else
			{ // 矫傈磊俊霸 付过 矫青				
				::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			}
			
			break;
		}
	case DRAGON_SCALE: // 靛贰帮厚疵
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, 0, 0, bPattern, 0, bFail);
			break;
		}
    case PHEONIX: // 阂货
		{
			::InsertMagic(pCaster, pTarget, nMagic, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}		
	case METEOR_STRIKE: // 蜡己	

⌨️ 快捷键说明

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