private void UpdateEffectTargetPos(SImpactEffect pImpactEffect)
 {
     if (pImpactEffect == null)
     {
         return;
     }
     if (pImpactEffect.IsLineEffect())
     {
         uint uEffect = pImpactEffect.GetEffect();
         if (uEffect != 0 && m_Character.GetRenderInterface() != null && pImpactEffect.GetCreatorID() != MacroDefine.INVALID_ID)
         {
             CObject_Character pCreator = (CObject_Character)(CObjectManager.Instance.FindServerObject((int)pImpactEffect.GetCreatorID()));
             if (pCreator != null)
             {
                 Vector3 fvPos = Vector3.zero;
                 if (pCreator.GetRenderInterface() != null && pImpactEffect.GetCreatorLocator().Length > 0)
                 {
                     pCreator.GetRenderInterface().GetLocator(pImpactEffect.GetCreatorLocator(), ref fvPos);
                 }
                 else
                 {
                     fvPos = pCreator.GetPosition();
                 }
                 m_Character.GetRenderInterface().SetEffectExtraTransformInfos(uEffect, ref fvPos);
             }
         }
     }
 }
    private void RemoveImpact(uint idImpact)
    {
        SImpactEffect pImpactEffect = new SImpactEffect();

        if (m_mapImpactEffect.ContainsKey(idImpact))
        {
            pImpactEffect = m_mapImpactEffect[idImpact];
            pImpactEffect.DecRefCount();
            if (pImpactEffect.GetRefCount() == 0)
            {
                uint uEffect = pImpactEffect.GetEffect();
                if (uEffect != 0 && m_Character.GetRenderInterface() != null)
                {
                    m_Character.GetRenderInterface().DelEffect(uEffect);
                }

                m_mapImpactEffect.Remove(idImpact);
                pImpactEffect = null;
            }
        }
    }