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

📄 combatsys.cpp

📁 DragonRaja Client source version 1.4+ this source allow players join in (Hades Warfield or Monsters
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	{
		// 蜡瘤矫埃捞 粮犁窍绰 付过牢 版快
		if (g_lpMT[nCombat].continue_Time != 0)	
		{
			pCaster->ready_Magic = 3;	// 付过备泅 矫累
		}
		// 茄锅 矫傈俊 茄锅 荤侩 啊瓷茄 付过牢 版快
		if (g_lpMT[nCombat].excute_Type == 1)	
		{
			::EndCastMagic(pCaster);	// 矫傈磊狼 付过 霖厚惑怕甫 檬扁拳
		}
		
		return true;
	}
	
	if (Hero == pCaster)
	{
		OUTPUT(MK_NORMAL, lan->OutputMessage(1, 65));
	}
	
COMBAT_FIAL:
	::EndCastMagic(pCaster);	// 矫傈磊狼 付过 霖厚惑怕甫 檬扁拳
	return false;
}

void CCombatSys::Effect(LPCHARACTER pCaster, LPCHARACTER pTarget)
{
	static int nTemp;
	
	if (pCaster != NULL)
	{
		//const int nCaster = pCaster->nActiveCombat; //Thralas
		
		switch(pCaster->nActiveCombat.GetDecrypted()) //switch (nCaster)
		{
		case LIGHTNING_BOOM:
			{
				::InsertMagic(pCaster, pTarget, 569, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case THUNDER_BLOW:
			{
				::InsertMagic(pCaster, pTarget, 577, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case LIGHTNING_SHOCK:
			{
				::InsertMagic(pCaster, pTarget, 553, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case THUNDER_STRIKE:
			{
				::InsertMagic(pCaster, pTarget, 552, 4, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case GROUND_ATTACK:
			{
				::InsertMagic(pCaster, pTarget, 574, 4, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case BLOOD_WILL:
			{
				::InsertMagic(pCaster, pTarget, 555, 4, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case SWORD_N_ROSES:
			{
				if (++nTemp%3 == 1)
				{
					::InsertMagic(pCaster, pTarget, 572, 9, 0, 0, pTarget->x, pTarget->y);
				}
				
				break;
			}
		case FLEET_MISSILE:
			{
				InsertMagic(pCaster, pTarget, 575, 0, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case CONVERTING_ARMOR:
			{
				::InsertMagic(pCaster, pTarget, 29, 0, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case HORN_OF_ICEBERG:
			{
				::InsertMagic(pCaster, pTarget, 565, 4, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case CHARGING:
		case DOUBLE_ATTACK:
			{
				::InsertMagic(pCaster, pTarget, 567, 4, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case CHERROY_SHADE:
			{
				::InsertMagic(pCaster, pTarget, 570, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case DARK_BLADE:
			{
				::InsertMagic(pCaster, pTarget, 576, 4, 0, 0, pTarget->x, pTarget->y);
				::InsertMagic(pCaster, pTarget, 560, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case CRITICAL_HIDING:
			{
				::InsertMagic(pCaster, pTarget, 179, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case MULTIPLE_FIRE:
		case FIRE_EXTREME:
			{
				::InsertMagic(pCaster, pTarget, 513, 0, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case ICING_BLAST:
		case ICE_EXTREME:
			{
				::InsertMagic(pCaster, pTarget, 514, 0, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case SHARK_MISSILE:
			{
				switch (pCaster->nCurrentAction)
				{
				case ACTION_ATTACK_BOW:
					{
						::InsertMagic(pCaster, pTarget, 38, 0, 0, 0, pTarget->x, pTarget->y);
						break;
					}
				case ACTION_THROW:
					{
						::InsertMagic(pCaster, pTarget, 189, 0, 0, 0, pTarget->x, pTarget->y);
						break;
					}
				}
				
				break;
			}
		case LIGHTNING_EXTREME: 
			{
				::InsertMagic(pCaster, pTarget, 587, 9, 0, 0, pTarget->x, pTarget->y); // 030513 kyo
				break;
			}
		case EARTH_EXTREME:
			{
				::InsertMagic(pCaster, pTarget, 586, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case DARK_EXTREME: 
			{
				::InsertMagic(pCaster, pTarget, 596, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
		case WIND_EXTREME:
			{
				::InsertMagic(pCaster, pCaster, 591, 0, 0, 0, pCaster->x, pCaster->y);
				::InsertMagic(pCaster, pTarget, 590, 9, 0, 0, pTarget->x, pTarget->y);
				break;
			}
    }
  }
  
  if (pTarget != NULL)
  {
	  //const int nActive = pTarget->nActiveCombat; //Thralas
	  
	  switch(pTarget->nActiveCombat.GetDecrypted()) //switch (nActive)
	  {
      case STONE_ARMOR:
		  {
			  ::InsertMagic(pTarget, pTarget, 573, 9, 0, 0, pTarget->x, pTarget->y);
			  break;
		  }
	  }
	  
	  const int nPassive = pTarget->nPassiveCombat;
	  
	  switch (nPassive)
	  {
      case LIGHTNING_SHIELD:
		  {
			  ::InsertMagic(pTarget, pTarget, 580, 9, 0, 0, pTarget->x, pTarget->y);
			  break;
		  }
      case ICE_SHIELD:
		  {
			  ::InsertMagic(pTarget, pTarget, 584, 9, 0, 0, pTarget->x, pTarget->y);
			  break;
		  }
	  }
  }
}

int CCombatSys::GetCastContinue(int nCombat) const
{
	return g_lpMT[nCombat].cast_Continue;
}

bool CCombatSys::IsEnable(int nCombat) const
{
	// 乞拳葛靛 惑怕俊辑绰 傈捧胶懦 荤侩 阂啊
	if (main_interface.data[IF_BATTLE_PEACE] == 0)  
	{ 
		OUTPUT(MK_NORMAL, lan->OutputMessage(1, 55));
		return false;
	}
	// 某腐磐啊 磷绢 乐绰 版快
	if (SCharacterData.nCharacterHP <= 0)	
	{
		OUTPUT(MK_WARNING, lan->OutputMessage(1, 66));
		return false;
	}
	// 某腐磐啊 咯包俊辑 磊绊 乐绰 版快
	if (SCharacterData.sleep != CSC_AWAKE)
	{
		OUTPUT(MK_WARNING, lan->OutputMessage(1, 67));
		return false;
	}
	// 旧酒 乐绰 惑怕俊绰 付过矫傈 阂啊
	if (Hero->nCurrentAction == 17)
	{
		return false;
	}
	// 扒拱 救俊 乐绰 版快
	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 CCombatSys::AddEffect(LPCHARACTER pCaster, LPCHARACTER pTarget, int nCombat, int nX, int nY, bool bFail)
{
	const int nEffect = nCombat + 300;
	const bool bPattern = false;
	
	switch (nCombat)
	{
	case LIGHTNING_SHIELD:
    case BURNING_BLOODY: 	// 030415 kyo
    case ICE_SHIELD:
    case THUNDER_BLOW:
    case LIGHTNING_SHOCK:
    case THUNDER_STRIKE:
    case BLOOD_WILL:
    case STONE_ARMOR:
    case SWORD_N_ROSES:
    case MULTIPLE_FIRE:
    case FLEET_MISSILE:
    case CONVERTING_ARMOR:
    case HORN_OF_ICEBERG:
    case ICING_BLAST:
    case CRITICAL_HIDING:
    case DOUBLE_ATTACK:
    case GUST:
    case TYBERN_GIFT:
	case ACUQUIRE_DARK:	// 030415 kyo
    case CHERROY_SHADE:
    case SHARK_MISSILE:
    case DARK_BLADE:
    case SIMUNIAN_BOSOM:
    case LIGHTNING_EXTREME:
    case EARTH_EXTREME:
    case FIRE_EXTREME:
    case DARK_EXTREME:
    case ICE_EXTREME:
    case WIND_EXTREME:
		{
			::InsertMagic(pCaster, pTarget, nEffect, 0, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
    case LIGHTNING_BOOM:
    case BLOOD_EARTH:
    case GROUND_ATTACK:
    case POISONING_NOVA:
    case WHILWIND:
    case TWISTER:
		{ 
			::InsertMagic(pCaster, pTarget, nEffect, 8, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
    case CHARGING:
		{ 
			::InsertMagic(pCaster, pTarget, nEffect, 2, 0, 0, nX, nY, bPattern, 0, bFail);
			break;
		}
    default:
		{
			return false;				
		}
	}												
	
	return true;
}

⌨️ 快捷键说明

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