Ejemplo n.º 1
0
        /// <summary>
        /// 创建头顶信息实例
        /// </summary>
        /// <param name="objev"></param>
        /// <param name="entityID"></param>
        /// <param name="host"></param>
        /// <param name="ptr"></param>
        /// <param name="nLen"></param>
        /// <returns></returns>
        public UTopName CreateTopName(EntityView objev, IntPtr ptr, int nLen)
        {
            if (!bInit)
            {
                Trace.LogError("UTopNameManager必须初始化!");
                return(null);
            }
            if (EntityView.isNullOrEmpty(objev))
            {
                Trace.LogWarning("TopName--实体视图无效!");
                return(null);
            }
            int entityID = objev.ID;

            //如果表里面已含,则更新信息并返回
            if (m_TopNameMap.ContainsKey(entityID))
            {
                Trace.LogWarning(entityID + "已经有TopName,返回已有的实例");
                UTopName ut = m_TopNameMap[entityID];
                //接受逻辑层信息并更新
                SetNameInfo(ptr, nLen, ut);
                return(ut);
            }
            //分配一个节点
            TopNameNode bcn = new TopNameNode();
            UTopName    utn = GetTopName(ref bcn);

            if (null == utn)
            {
                return(null);
            }
            utn.CreatBillBoard();
            utn.ChangeCanvasNode(bcn);
            utn.Init(objev);

            m_TopNameMap.Add(entityID, utn);

            SetNameInfo(ptr, nLen, utn);

            if (objev.Property)
            {
                int nMatchType = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MATCHTYPE);
                int nRankScore = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_RANKSCORE);
                int nRankGrade = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_RANKGRADE);
                int nRankIcon  = GameLogicAPI.getRankIconIDByGrade(nMatchType, nRankGrade);
                if (nRankIcon > 0)
                {
                    utn.SetRankLv(nRankIcon);
                }
                int nSex = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SEX);
                utn.SetSex(nSex);
            }

            return(utn);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 数值属性回调
        /// </summary>
        /// <param name="e"></param>
        private void ResponseEntityNumPropEvent(EntityNumPropEventArgs e)
        {
            switch (e.data.nPropID)
            {
            case (int)ENTITY_PROPERTY.PROPERTY_RANKGRADE:
            {
                if (EntityView.isNullOrEmpty(e.objev) || null == e.objev.Property)
                {
                    return;
                }

                UTopName ut = FindTopName(e.data.nEntityID);
                if (ut != null)
                {
                    int nMatchType = e.objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MATCHTYPE);
                    int nRankGrade = e.data.nValue;
                    int nRankIcon  = GameLogicAPI.getRankIconIDByGrade(nMatchType, nRankGrade);
                    if (nRankIcon > 0)
                    {
                        ut.SetRankLv(nRankIcon);
                    }
                }
            }
            break;

            case (int)ENTITY_PROPERTY.PROPERTY_RANKSCORE:
            {
                if (EntityView.isNullOrEmpty(e.objev) || null == e.objev.Property)
                {
                    return;
                }

                UTopName ut = FindTopName(e.data.nEntityID);
                if (ut != null)
                {
                    int nMatchType = e.objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MATCHTYPE);
                    int nRankScore = e.objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_RANKGRADE);
                    int nRankIcon  = GameLogicAPI.getRankIconIDByGrade(nMatchType, nRankScore);
                    if (nRankIcon > 0)
                    {
                        ut.SetRankLv(nRankIcon);
                    }
                }
            }
            break;

            case (int)ENTITY_PROPERTY.PROPERTY_SEX:
            {
                if (EntityView.isNullOrEmpty(e.objev) || null == e.objev.Property)
                {
                    return;
                }

                UTopName ut = FindTopName(e.data.nEntityID);
                if (ut != null)
                {
                    ut.SetSex(e.data.nValue);
                }
            }
            break;

            default:
                break;
            }
        }