Exemplo n.º 1
0
void NormalCloseInAttackAI::AI()
{
    //CPlayer *pPlayer = GetGame()->GetMainPlayer();
    if(!m_pSkill)
        return;
    CMoveShape* pMoveshape = dynamic_cast<CMoveShape*>(GetGame()->GetRegion()->FindChildObject(m_pSkill->GetSourType(), m_pSkill->GetSourID()));
    // 开始阶段可能有吟唱动作
    if(pMoveshape && m_pSkill && m_pSkill->GetCurStep() != CSkillXml::STEP_START && m_pSkill->GetRunStepActExQueue())
    {
        /***********************************************************************/
        /* zhaohang fix */
        /***********************************************************************/
        // 非光环类技能
        CSkillListXml::tagSkill *pSkill = CSkillListXml::GetProperty(m_pSkill->GetSkillID());
        if (pSkill && (pSkill->bLockSkill || pSkill->dwSkillState == 0))
            //tagSkillIni* pSkill = SkillAttrIniSetup::GetSkillIni(m_pSkill->GetSkillID());
            //if( pSkill && pSkill->GetSkillBaseAttr() &&
            //	 pSkill->GetSkillBaseAttr()->IsLockSkill() )
        {
            // 释放阶段无后续动作
            if(m_pSkill->GetRunStepActExQueue()->empty())
            {
                if(pMoveshape->GetAction() == ACT_STAND || pMoveshape->GetAction() == ACT_IDLE)
                    StepEndAI();
            }
        }
    }
}
Exemplo n.º 2
0
void CFixSummonAI::AI()
{
	if(GetRemainedTime() == 0)
	{
		StepEndAI();
		return;
	}
	else
	{
		if(FindEffect(m_vecSummonEffect[0]) == NULL)
		{
			CClientRegion *pRegion = GetGame()->GetRegion();
			float x = GetPosX();
			float y = GetPosY();
			float h = pRegion->GetCellHeight(x, y);
			AddEffect(m_vecSummonEffect[0], x, y, h, true);

			char strFile[MAX_PATH];
			sprintf(strFile, "sounds/skills/%d.wav", m_vecSummonSound[0]);
			GetGame()->GetAudioList()->Play(strFile, x, y, h);
		}
	}
}