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(); }
/// <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); } } }
/// <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"); } } }
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)); }
/// <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); }
/// <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; }
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; } } }
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); } }