void SetBossInfoPanel()
        {
            var actor     = mTargetMono.BindActor;
            var actorData = GetActorData(actor.ActorId);

            if (actorData == null)
            {
                GameDebug.LogError("actorData == null, ActorID:" + actor.ActorId);
                return;
            }

            int    barCount = actorData.hp_bar_count;
            string iconName = RoleHelp.GetRoleIcon(actor.ActorId);

            if (GlobalConst.IsBanshuVersion)
            {
                mBossLevelText.text = string.Format(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_113"), actor.Level.ToString());
            }
            else
            {
                mBossLevelText.text = string.Format("LV{0}", actor.Level.ToString());
            }
            mBossNameText.text = actor.Name;

            mBossIconImage.sprite = Window.LoadSprite(iconName);

            UpdateRemainHpBarCount();
        }
示例#2
0
        /// <summary>
        /// 设置当前玩家所在地图的标记
        /// </summary>
        public void UpdatePlayerPos()
        {
            int  cur_scene_id = (int)SceneHelp.Instance.CurSceneID;
            uint transferLv   = (uint)xc.TransferHelper.GetTransferLevel();

            if (m_MapId != cur_scene_id || m_playerTransferLv != transferLv)
            {
                m_MapId            = cur_scene_id;
                m_playerTransferLv = transferLv;

                GameObject map_point;
                if (mMapGoDic.TryGetValue(cur_scene_id, out map_point))
                {
                    var refObjPos = GetMapPointRefObjPos(map_point);
                    mLocalPlayerPoint.gameObject.SetActive(true);
                    mLocalPlayerPoint.transform.localPosition = new Vector3(refObjPos.x + 60, refObjPos.y - 45, 0);

                    var head_icon = RoleHelp.GetPlayerIconName(Game.Instance.LocalPlayerVocation, transferLv, false);
                    mLocalPlayerPoint.Find("HeadIcon").GetComponent <Image>().sprite = Window.LoadSprite(head_icon);

                    float y = mMapScroll.viewport.rect.height / 2 - map_point.transform.localPosition.y;
                    float x = mMapScroll.viewport.rect.width / 2 - map_point.transform.localPosition.x;
                    MapTexture.rectTransform.anchoredPosition = new Vector2(x, y);
                }
                else
                {
                    mLocalPlayerPoint.gameObject.SetActive(false);
                }
            }
        }
示例#3
0
    /// <summary>
    /// 获得场景中所有npc
    /// </summary>
    /// <returns></returns>
    public static List <MiniMapPointInfo> GetInstanceAllNpc(uint instance_id)
    {
        List <MiniMapPointInfo> map_point_infos = new List <MiniMapPointInfo>();
        var nep_data = xc.Dungeon.LevelManager.Instance.LoadLevelFileTemporary(SceneHelp.GetFirstStageId(instance_id));

        if (nep_data == null)
        {
            GameDebug.LogError("get nep_data failed,instance id: " + instance_id);
            return(map_point_infos);
        }

        Dictionary <int, Neptune.BaseGenericNode> monstersData = nep_data.GetData <Neptune.NPC>().Data;

        foreach (var item in monstersData)
        {
            if (item.Value is Neptune.NPC)
            {
                Neptune.NPC npc = item.Value as Neptune.NPC;
                //if (npc.SpawnDirectly)
                {
                    MiniMapPointInfo info = new MiniMapPointInfo();
                    info.Id        = npc.Id;
                    info.MapId     = instance_id;
                    info.ActorId   = NpcHelper.GetNpcActorId(npc.ExcelId);
                    info.Name      = RoleHelp.GetActorName(info.ActorId);
                    info.BlackName = info.Name;
                    info.Position  = npc.Position;
                    info.PointType = MiniMapPointType.Npc;
                    map_point_infos.Add(info);
                }
            }
        }
        return(map_point_infos);
    }
 public void Set(uint id, uint num)
 {
     mId = id;
     DBInstance.InstanceInfo info = DBManager.Instance.GetDB <DBInstance>().GetInstanceInfo(id);
     if (id == GameConstHelper.GetUint("GAME_WILD_DUNGEON_PRIMARY_ID"))
     {
         labelName.text = info.mName + string.Format(DBConstText.GetText("PRIMARY_TITLE_SUFFIX"), GameConstHelper.GetUint("GAME_WILD_PRIMARY_BATTLE_POWER"));
     }
     else
     {
         labelName.text = info.mName;
     }
     UIWIldSwitchLine.SetAmount(spriteProgress, num);
     if (WildManager.Instance.mCurrentLineId == id)
     {
         goHead.SetActive(true);
         RoleHelp.GetIconName(Game.GetInstance().LocalPlayerTypeID, texHead);
         goButton.SetActive(false);
     }
     else
     {
         goHead.SetActive(false);
         goButton.SetActive(true);
         if (id == WildManager.Instance.mCurrentWaitingLineId)
         {
             lableButton.text = xc.DBConstText.GetText("IN_QUEUE");
         }
         else
         {
             lableButton.text = xc.DBConstText.GetText("GOTO");
         }
     }
 }
示例#5
0
        public void InsertOneServerRoleHead(GameObject roleHead, ServerRoleInfo serverRoleInfo)
        {
            GameObject item = GameObject.Instantiate(roleHead);

            item.SetActive(true);
            item.name = "ServerRole_" + serverRoleInfo.RoleId;
            Transform itemTrans = item.transform;

            itemTrans.SetParent(roleHead.transform.parent);
            itemTrans.localScale    = Vector3.one;
            itemTrans.localPosition = Vector3.zero;

            // 等级,新角色控制服会发0过来,强制显示成1
            Text levelText = itemTrans.Find("Text").GetComponent <Text>();

            if (serverRoleInfo.Level <= 0)
            {
                levelText.text = "1";
            }
            else
            {
                // 巅峰等级
                Image lvBGImage     = itemTrans.Find("LvBG").GetComponent <Image>();
                Image peakLvBGImage = itemTrans.Find("PeakLvBG").GetComponent <Image>();
                uint  peakLevel     = 0;
                bool  isPeak        = TransferHelper.IsPeak((uint)serverRoleInfo.Level, out peakLevel, serverRoleInfo.TransferLv);
                if (isPeak == true)
                {
                    lvBGImage.gameObject.SetActive(false);
                    peakLvBGImage.gameObject.SetActive(true);
                }
                else
                {
                    lvBGImage.gameObject.SetActive(true);
                    peakLvBGImage.gameObject.SetActive(false);
                }
                levelText.text = peakLevel.ToString();
            }

            // 头像
            Image headImage = itemTrans.Find("HeadImage").GetComponent <Image>();

            headImage.sprite = mRoleHeadSpriteList.LoadSprite(RoleHelp.GetPlayerIconName((uint)serverRoleInfo.IconId, serverRoleInfo.TransferLv, false));
        }
示例#6
0
    /// <summary>
    /// 走到副本的尽头
    /// </summary>
    /// <returns></returns>
    public BehaviourReturnCode ActionWalkToInstanceEndPosition()
    {
        if (RunningProperty.SelfActor.IsWalking())
        {
            return(BehaviourReturnCode.Success);
        }

        Vector3 endPosition = InstanceHelper.GetAutoRunnerTargetLocation();

        if (Vector3.Equals(endPosition, Vector3.zero))
        {
            return(BehaviourReturnCode.Success);
        }

        if (AIHelper.RoughlyEqual(endPosition, RunningProperty.SelfActorPos))
        {
            RunningProperty.AI.Machine.SwitchToState(BehaviourMachine.State.EMPTY);
            return(BehaviourReturnCode.Success);
        }

        endPosition.y = RoleHelp.GetHeightInScene(RunningProperty.SelfActor.ActorId, endPosition.x, endPosition.z);

        //endPosition = InstanceHelper.ClampInWalkableRange(endPosition);

        RunningProperty.AI.PathWalker.WalkTo(endPosition);

        //         uint instanceType = InstanceManager.Instance.InstanceType;
        //
        //         if (instanceType == GameConst.WAR_TYPE_WILD || instanceType == GameConst.WAR_TYPE_HOLE || instanceType == GameConst.WAR_SUBTYPE_WILD_PUB || instanceType == GameConst.WAR_TYPE_MULTI)
        //         {
        //             RunningProperty.AI.PathWalker.WalkTo(endPosition);
        //         }
        //         else
        //         {
        //             RunningProperty.SelfActor.MoveCtrl.TryWalkTo(endPosition);
        //         }

        RunningProperty.AI.Machine.SwitchToState(BehaviourMachine.State.WALK);

        return(BehaviourReturnCode.Success);
    }
示例#7
0
    /// <summary>
    /// 走路到某地-
    /// </summary>
    /// <param name="target"></param>
    public void WalkTo(Vector3 target)
    {
        if (TargetActor != null)
        {
            target.y = RoleHelp.GetHeightInScene(TargetActor.ActorId, target.x, target.z);
            target   = InstanceHelper.ClampInWalkableRange(target, 10);

            if (TargetActor.IsAttacking() == true)
            {
                Skill cur_skill = TargetActor.GetCurSkill();
                if (cur_skill != null)
                {
                    cur_skill.End();
                }
            }
            m_WalkId = TargetActor.MoveCtrl.TryWalkToAlong(target);
        }

        mWalkType  = WalkType.WALK;
        mTargetPos = target;
    }
示例#8
0
                public void UpdateExchangeModel()
                {
                    if (m_need_update_exchange_model == false)
                    {
                        return;
                    }

                    if (m_pkgBossInfo == null)
                    {
                        return;
                    }

                    if (m_pkgBossInfo.state == 1)//世界BOSS处于存活状态,删除墓碑
                    {
                        if (m_uid != null)
                        {
                            InterObjectManager.Instance.DestroyObject(m_uid);
                            m_uid = null;
                        }
                        m_need_update_exchange_model = false;
                    }
                    else//BOSS已经死亡; BOSS播放完死亡动画=>删除BOSS怪物=>创建墓碑
                    {
                        // 查询特殊怪物表
                        var data_mon_attr = DBManager.Instance.GetDB <DBSpecialMon>().GetData(m_pkgBossInfo.id);
                        if (data_mon_attr == null)
                        {
                            GameDebug.LogError("Cannot find special monster info,id:" + m_pkgBossInfo.id);
                            return;
                        }

                        var actor_id = data_mon_attr.ActorId;

                        Dictionary <UnitID, Actor> boss_actor_dict = ActorManager.Instance.GetMonsterSetByActorId(actor_id);
                        bool can_destroy_model = true;
                        foreach (var item in boss_actor_dict)
                        {
                            Actor death_boss_actor = item.Value;
                            if (death_boss_actor != null && death_boss_actor.transform != null)
                            {
                                m_model_Quaternion = death_boss_actor.transform.rotation;
                                Vector3 new_pos = death_boss_actor.transform.position;
                                if (new_pos.y < -500)
                                {
                                    GameDebug.LogError(string.Format("boss_actor pos maybe is error new_pos = {0}, {1}, {2}",
                                                                     new_pos.x, new_pos.y, new_pos.z));
                                }
                                else
                                {
                                    m_pos = death_boss_actor.transform.position;
                                }
                            }

                            if (death_boss_actor != null)
                            {
                                AnimationOptions op = death_boss_actor.GetAnimationOptions(Actor.EAnimation.death);
                                if (op != null && can_destroy_model)
                                {
                                    if (death_boss_actor.IsPlaying())
                                    {
                                        can_destroy_model = false;
                                    }
                                }
                            }
                        }

                        if (has_created_inter_object == false)
                        {
                            has_created_inter_object = true;
                            m_monster_name           = RoleHelp.GetActorName(actor_id);
                            string      prefab = string.Format("Assets/Res/{0}.prefab", RoleHelp.GetPrefabName(actor_id));
                            InterObject create_inter_object = InterObjectManager.Instance.CreateObject <InterObject>(m_uid, prefab, m_pos, m_model_Quaternion, RoleHelp.GetPrefabScale(actor_id));
                            if (create_inter_object != null)
                            {
                                create_inter_object.m_StyleInfo.Offset       = new Vector3(0, 2.8f, 0);
                                create_inter_object.m_StyleInfo.HeadOffset   = new Vector3(0, 2.0f, 0);
                                create_inter_object.m_StyleInfo.ScreenOffset = UI3DText.NameTextScreenOffset;
                                create_inter_object.m_StyleInfo.Scale        = Vector3.one;
                                create_inter_object.m_StyleInfo.IsShowBg     = false;
                                create_inter_object.m_StyleInfo.SpritName    = "";

                                create_inter_object.IsVisible = false;
                                DBWorldBoss.DBWorldBossItem boss_item = DBManager.Instance.GetDB <DBWorldBoss>().GetData(m_pkgBossInfo.id);
                                if (boss_item != null)
                                {
                                    create_inter_object.SetCollider(boss_item.DeathModelCenter, boss_item.DeathModelRadius);
                                }
                            }
                        }

                        if (can_destroy_model)
                        {
                            InterObject create_inter_object = InterObjectManager.Instance.GetObject(m_uid);
                            if (create_inter_object != null)
                            {
                                create_inter_object.IsVisible = true;
                                create_inter_object.SetPosAndQuaternion(m_pos, m_model_Quaternion);
                            }
                            m_need_update_exchange_model = false;
                        }
                    }
                }
示例#9
0
        public void SetInfoPanel()
        {
            if (mTargetMono == null)
            {
                SetHpBarPanelVisible(false);
                return;
            }
            var actor = mTargetMono.BindActor;

            if (actor == null)
            {
                SetHpBarPanelVisible(false);
                return;
            }
            uint   vocation_id = ActorHelper.TypeIdToRoleId(actor.ActorId);
            string iconName    = RoleHelp.GetPlayerIconName(vocation_id, actor.TransferLv, false);

            uint peakLevel = 0;
            bool isPeak    = TransferHelper.IsPeak((uint)actor.Level, out peakLevel, actor.TransferLv);

            if (isPeak == true)
            {
                mLvBgImage.gameObject.SetActive(false);
                mPeakLvBgImage.gameObject.SetActive(true);
            }
            else
            {
                mLvBgImage.gameObject.SetActive(true);
                mPeakLvBgImage.gameObject.SetActive(false);
            }
            mLvText.text = string.Format("{0}", peakLevel.ToString());

            string replaceName = DBInstanceTypeControl.Instance.GetReplaceOtherPlayerName(InstanceManager.Instance.InstanceType, InstanceManager.Instance.InstanceSubType);

            if (replaceName == null || replaceName == "")
            {
                mNameText.text = actor.UserName;
            }
            else
            {
                mNameText.text = replaceName;
            }


            var icon = xc.DBManager.Instance.GetDB <xc.DBHonor>().GetHonorIcon(actor.Honor);

            if (icon == null || icon == "")
            {
                mHonorIcon.gameObject.SetActive(false);
            }
            else
            {
                mHonorIcon.sprite = Window.LoadSprite(icon);
                mHonorIcon.gameObject.SetActive(true);
            }

            mPlayerIconImage.sprite = Window.LoadSprite(iconName);
            SetHpBarPanel();

            AvatarProperty ap = actor.mAvatarCtrl.GetLatestAvatartProperty();

            if (ap == null)
            {
                mPlayerPhotoFrame.Clean();
            }
            else
            {
                mPlayerPhotoFrame.SetModelId(ap.FashionPhotoFrameId);
            }
        }