public string               BuffImpact_GetIconNameByIndex(int nIndex)
    {
        _BUFF_IMPACT_INFO pBuffImpactInfo = BuffImpact_GetByIndex(nIndex);

        if (pBuffImpactInfo != null)
        {
            _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU(pBuffImpactInfo.m_nBuffID);
            if (pBuffImpact != null)
            {
                return(pBuffImpact.m_szIconName);
            }
        }
        return("");
    }
    public string                           BuffImpact_GetToolTips(int nSN)
    {
        _BUFF_IMPACT_INFO pBuffImpactInfo = BuffImpact_Get(nSN);

        if (pBuffImpactInfo != null)
        {
            _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU(pBuffImpactInfo.m_nBuffID);
            if (pBuffImpact != null)
            {
                return(pBuffImpact.m_pszInfo);
            }
        }
        return("");
    }
    public void ShowTooltip(float x, float y, short BuffID)
    {
        if (bufferID_ != BuffID)
        {
            bufferID_ = BuffID;
            _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU((int)bufferID_);

            if (pBuffImpact != null)
            {
                bufferDesc_ = pBuffImpact.m_pszInfo;
            }
            else
            {
                bufferDesc_ = "无描述";
            }
        }
        bufferDesc.Text = bufferDesc_;
        gameObject.transform.position = new Vector3(x, y - 160, UIZDepthManager.TooltipZ);
        gameObject.SetActiveRecursively(true);
    }
 public void UpdateBuffEffect()
 {
     if (m_Character.GetRenderInterface() != null)
     {
         foreach (KeyValuePair <uint, SImpactEffect> subItem in m_mapImpactEffect)
         {
             uint             uImpactID     = subItem.Key;
             SImpactEffect    pImpactEffect = subItem.Value;
             _DBC_BUFF_IMPACT pBuffImpact   = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU((int)uImpactID);
             object           objTemp       = (object)pBuffImpact;
             if (objTemp == null)
             {
                 continue;
             }
             if (pBuffImpact.m_lpszEffect_Continuous.Length > 0 &&
                 m_Character.GetRenderInterface() != null)
             {
                 uint uEffect = m_Character.GetRenderInterface().AddEffect(pBuffImpact.m_lpszEffect_Continuous, pBuffImpact.m_lpszBind_Continuous);
                 pImpactEffect.SetEffect(uEffect);
             }
         }
     }
 }
    ////public Dictionary<uint, SImpactEffect> GetImpactEffectMap()
    ////{
    ////    return m_mapImpactEffect;
    ////}

    private bool InsertImpact(uint idImpact, uint uCreatorID, bool bShowEnableEffect)
    {
        SImpactEffect pImpactEffect;

        if (!m_mapImpactEffect.ContainsKey(idImpact))
        {
            pImpactEffect = new SImpactEffect();
            pImpactEffect.SetImpactID(idImpact);
            pImpactEffect.SetCreatorID(uCreatorID);
            m_mapImpactEffect[idImpact] = pImpactEffect;

            _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU((int)idImpact);
            object           objTemp     = (object)pBuffImpact;
            if (objTemp != null)
            {
                bool   bLineEffect       = pBuffImpact.m_bLineEffect;
                string strCreatorLocator = pBuffImpact.m_pszCreatorLocator;

                pImpactEffect.SetLineEffect(bLineEffect);
                pImpactEffect.SetCreatorLocator(strCreatorLocator);

                if (bShowEnableEffect)
                {
                    // 效果触发的特效(RenderInterface自动会删除)
                    if (pBuffImpact.m_lpszEffect_Active.Length > 0 && m_Character.GetRenderInterface() != null)
                    {
                        m_Character.GetRenderInterface().AddEffect(pBuffImpact.m_lpszEffect_Active, pBuffImpact.m_lpszBind_Active);
                    }

                    if (pBuffImpact.m_lpszSound_Active.Length > 0)
                    {
                        //Vector3 fvPos = m_Character.getPosition();
                        ////sunyu此接口是提供给fairy调用的音效接口,所以传入坐标必须是gfx坐标
                        //Vector3 fvGame;
                        //if (!GameProcedure.s_pGfxSystem.Axis_Trans(CRenderSystem.AX_GAME, fvPos,
                        //    CRenderSystem.AX_GFX, fvGame))
                        //{
                        //    return false;
                        //}
                        //CSoundSystemFMod._PlaySoundFunc(pBuffImpact.m_lpszSound_Active, &fvGame.x, false);
                    }
                }
                //需要我们控制的特效
                if (pBuffImpact.m_lpszBind_Continuous.Length > 0 && pBuffImpact.m_lpszEffect_Continuous.Length > 0 && m_Character.GetRenderInterface() != null)
                {
                    uint uEffect = m_Character.GetRenderInterface().AddEffect(pBuffImpact.m_lpszEffect_Continuous, pBuffImpact.m_lpszBind_Continuous);
                    pImpactEffect.SetEffect(uEffect);
                    UpdateEffectTargetPos(pImpactEffect);
                }
            }
        }
        else
        {
            pImpactEffect = m_mapImpactEffect[idImpact];
        }

        pImpactEffect.AddRefCount();

        //更新宠物Frame
        //UpdatePetFrame();

        return(true);
    }
Example #6
0
    public void UpdateTime()
    {
        //CObject_Character pChar = null;
        switch (type_)
        {
        case ENUM_BUFFER_TYPE.AVATAR:
        {
            _BUFF_IMPACT_INFO buff = CDataPool.Instance.BuffImpact_GetByIndex(index_);
            if (buff != null)
            {
                if (buff.m_nBuffID != bufferID_)
                {
                    _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU(buff.m_nBuffID);
                    string           iconName    = "";
                    if (pBuffImpact != null)
                    {
                        iconName = pBuffImpact.m_szIconName;
                    }
                    bufferID_ = buff.m_nBuffID;
                    Texture2D tex = IconManager.Instance.GetIcon(iconName);
                    SetTexture(tex);
                }
                timeStamp_ = GameProcedure.s_pTimeSystem.GetTimeNow();
                Hide(false);
                this.Text = string.Format("{0:F1}", buff.m_nTimer / 1000.0f) + "s";
            }
            else
            {
                Hide(true);
                bufferID_ = 0;
            }
        }
        break;

        case ENUM_BUFFER_TYPE.TARGET:
        {
            bool needHide = true;
            if (CObjectManager.Instance.GetMainTarget() != null)
            {
                CObject_Character obj = CObjectManager.Instance.GetMainTarget() as CObject_Character;
                if (obj != null)
                {
                    SImpactEffect impactEffect = obj.Impact.BuffImpact_GetByIndex(index_);
                    if (impactEffect != null)
                    {
                        if ((short)impactEffect.GetImpactID() != bufferID_)
                        {
                            _DBC_BUFF_IMPACT pBuffImpact = CDataBaseSystem.Instance.GetDataBase <_DBC_BUFF_IMPACT>((int)DataBaseStruct.DBC_BUFF_IMPACT).Search_Index_EQU((int)impactEffect.GetImpactID());
                            string           iconName    = "";
                            if (pBuffImpact != null)
                            {
                                iconName = pBuffImpact.m_szIconName;
                            }
                            bufferID_ = (short)impactEffect.GetImpactID();
                            Texture2D tex = IconManager.Instance.GetIcon(iconName);
                            SetTexture(tex);
                        }
                        needHide = false;
                    }
                }
            }
            if (needHide)
            {
                bufferID_ = 0;
            }
            Hide(needHide);
            this.Text = "";
        }
        break;

        case ENUM_BUFFER_TYPE.TEAM:
            break;
        }
    }