示例#1
0
 public void SetCurValue(int entityID, int v)
 {
     if (m_BloodMap.ContainsKey(entityID))
     {
         UBlood ub = m_BloodMap[entityID];
         ub.SetCurValue(v);
     }
 }
示例#2
0
        /// <summary>
        /// 设置角色属性
        /// </summary>
        /// <param name="objev"></param>
        private void SetProperty(EntityView objev, UBlood blood)
        {
            if (null == objev || null == objev.Property || null == blood)
            {
                return;
            }

            int nHeroID = objev.ID;
            int nMaxHp  = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_HP);
            int nCurHp  = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_HP);
            int nTempHp = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SHIELD);
            int nCurMp  = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MP);
            int nMaxMp  = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_MP);
            int nCamp   = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_CAMP);

            int nLevel = 1;

            if (pkTargetID < 0)  //PKTarget<0,代表当前不在PK状态
            {
                nLevel = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_LEVEL);
            }
            else
            {
                nLevel = GameLogicAPI.getPlayerLevel(nHeroID);
            }
            int    masterID    = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MASTER_UID);
            string sName       = objev.Property.CreatureName;
            bool   bIsMainHero = objev.IsHero;

            if (masterID > 0)
            {
                EntityView masterView = EntityFactory.getEntityViewByID(masterID);
                if (null != masterView && null != masterView.Property)
                {
                    //英雄分身
                    if (blood.BloodType == BloodStyleType.Player)
                    {
                        nMaxHp  = masterView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_HP);
                        nCurHp  = masterView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_HP);
                        nTempHp = masterView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SHIELD);
                        nCurMp  = masterView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MP);
                        nMaxMp  = masterView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_MP);

                        nLevel = 1;
                        if (pkTargetID < 0)  //PKTarget<0,代表当前不在PK状态
                        {
                            nLevel = masterView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_LEVEL);
                        }
                        else
                        {
                            nLevel = GameLogicAPI.getPlayerLevel(masterID);
                        }
                        sName = masterView.Property.CreatureName;
                    }
                }
            }

            if (nHeroID != pkTargetID)
            {
                blood.SetCampType(nCamp);
            }
            blood.SetLevel(nLevel);
            blood.SetMaxValue(nMaxHp);
            blood.SetCurValue(nCurHp);
            blood.SetTempValue(nTempHp);
            blood.SetMpValue(nCurMp);
            blood.SetMpMaxValue(nMaxMp);
            if (!bIsMainHero)
            {
                blood.SetRoleName(sName);
            }
            else
            {
                blood.SetClosed(!actorBloodVisible);
            }
        }