public void InitProperty() { mPlayerName.text = MainGameSys.instance.mCurrentRole.playerName; mRoleLv.text = MainGameSys.instance.mCurrentRole.lv.ToString(); mExp.text = MainGameSys.instance.mCurrentRole.currentExp.ToString() + "/" + MainGameSys.instance.mCurrentRole.exp.ToString(); mTired.text = MainGameSys.instance.mCurrentRole.currentTired + "/" + MainGameSys.instance.mCurrentRole.tired.ToString(); switch (MainGameSys.instance.mCurrentRole.profession) { case DarkGodAgreement.Profession.Null: break; case DarkGodAgreement.Profession.暗影刺客: mProfIcon.sprite = ResSvc.intance.LoadSprite(GameConstant.AssassinHead); break; } mAttackNum.text = MainGameSys.instance.mCurrentRole.attackNum.ToString(); mExpMask.fillAmount = (float)MainGameSys.instance.mCurrentRole.currentExp / (float)MainGameSys.instance.mCurrentRole.exp; //设置自动寻路图标 Debug.Log(MainGameSys.instance.mCurrentRole.guideID); CurrentGuideCfg = ResSvc.intance.GetAutoGuidCfg(MainGameSys.instance.mCurrentRole.guideID); if (CurrentGuideCfg == null) { Debug.Log("CurrentGuideCfg为空"); SetGuideIcon(-1); } else { Debug.Log("CurrentGuideCfg不为空"); SetGuideIcon(CurrentGuideCfg.npcID); } }
protected override void InitWin() { index = 1; mAutoGuideCfg = MainGameSys.instance.GetAutoGuideCfg(); strArry = mAutoGuideCfg.dilogArr.Split('#'); SetTalk(); }
public void RunTask(AutoGuideCfg guideCfg) { if (guideCfg != null) { currentTask = guideCfg; } //解析任务数据 nav.enabled = true; //进来就先设置,避免角色在目的地无法调用isStopped方法 if (currentTask.npcID != -1) { //这个npcID是表格里面定义好的一一对应的NPCID float distance = Vector3.Distance(playerCtrl.transform.position, npcTransPos[currentTask.npcID].position); if (distance < 0.5f) { StopNavTask(); } else { nav.enabled = true; nav.speed = Constants.playerMoveSpeed; nav.SetDestination(npcTransPos[currentTask.npcID].position); //导航不会自动播放动画,也不会相机跟随 playerCtrl.SetBlend(Constants.blendRun); isNavGuide = true; } } else { nav.enabled = false; OpenGuideWnd(); } }
public void RunTask(AutoGuideCfg AutoGuideCfg) { if (AutoGuideCfg != null) { curAutoGuideCfg = AutoGuideCfg; } agent.enabled = true; if (AutoGuideCfg.npcID != -1) { //寻路后打开对话界面 //设置寻路目标 Transform aimTrans = npcTrans[AutoGuideCfg.npcID]; float distance = Vector3.Distance(aimTrans.position, characterTrans.position); if (distance > 0.5f) { StartGuide(); } else { characterTrans.position = npcTrans[curAutoGuideCfg.npcID].position; } } else { //直接打开对话界面 OpenDialogueWindow(); } }
public void RunTask(AutoGuideCfg agc) { if (agc != null) { curtTaskData = agc; } nav.enabled = true; if (curtTaskData.npcID != -1) { float dis = Vector3.Distance(playerCtl.transform.position, npcPosTrans[agc.npcID].position); if (dis < 0.5f) { isNavGuide = false; nav.isStopped = true; playerCtl.SetBlend(Constants.BlendIdle); nav.enabled = false; OpenGuideWnd(); } else { isNavGuide = true; nav.enabled = true; nav.speed = Constants.PlayerMoveSpeed; nav.SetDestination(npcPosTrans[agc.npcID].position); playerCtl.SetBlend(Constants.BlendWalk); } } else { OpenGuideWnd(); } }
/// <summary> /// 跑任务重点逻辑处 /// </summary> /// <param name="taskData"></param> public void RunTask(AutoGuideCfg taskData) { if (taskData != null) { curTaskData = taskData; } navMeshAgent.enabled = true; //解析任务数据 if (curTaskData.npcID != -1) { //计算当前角色与任务点npc的距离 float distance = Vector3.Distance(playerController.transform.position, npcPositionTrans[taskData.npcID].position); if (distance < 0.5f) { ClosedNavigationTask(); } else { bIsNavMeshAgent = true; //距离大于0.5 启动自动导航 navMeshAgent.enabled = true; //设置导航的速度 navMeshAgent.speed = Constants.cNPCMoveSpeed; //导航的目标位置设置为相关npc的位置 navMeshAgent.SetDestination(npcPositionTrans[taskData.npcID].position); playerController.SetBlend(Constants.cBlendRun); } } else { OpenAutoGuideWnd(); } }
//执行引导任务 public void RunTask(AutoGuideCfg cfg) { if (cfg != null) { curtTaskData = cfg; } navAgent.enabled = true; //解析任务 if (curtTaskData.npcID != -1) { //寻路 float dis = Vector3.Distance(playerCtrl.transform.position, npcPosTrans[cfg.npcID].position); if (dis < 0.5f) { IsArriveNavPos(); } else { playerCtrl.ctl.enabled = false; isNav = true; navAgent.speed = Constants.PlayerModeSpeed; navAgent.SetDestination(npcPosTrans[cfg.npcID].position); playerCtrl.SetBlend(Constants.BlendWalk); } } else { OpenGuideWnd(); } }
/// <summary> /// 执行任务 /// </summary> /// <param name="agc"></param> public void RunTask(AutoGuideCfg agc) { if (agc != null) { curtTaskData = agc; } //解析任务数据 nav.enabled = true; if (curtTaskData.npcID != -1) { float dis = Vector3.Distance(playerCtrl.transform.position, npcPosTrans[agc.npcID].position); // 当前主角和目标 npc 的距离 if (dis < 0.5f) // 已找到目标 npc ,停止导航 { isNavGuide = false; nav.isStopped = true; playerCtrl.SetBlend(Constants.BlendIdle); //动画 nav.enabled = false; OpenGuideWnd(); } else { isNavGuide = true; nav.enabled = true; nav.speed = Constants.PlayerMoveSpeed; nav.SetDestination(npcPosTrans[agc.npcID].position); // 目标 npc 的位置 playerCtrl.SetBlend(Constants.BlendMove); // 动画 } } else { OpenGuideWnd(); } }
private void RunTask(AutoGuideCfg agc) { if (agc != null) { m_CurtTaskData = agc; } //解析任务数据 m_Nav.enabled = true; if (m_CurtTaskData.npcID != -1) { float dis = Vector3.Distance(m_PlayerCtrl.transform.position, m_NpcPosTrans[agc.npcID].position); if (dis < 0.5f) { isNavGuide = false; m_Nav.isStopped = true; m_PlayerCtrl.SetBlend(Constants.BlendIdle); m_Nav.enabled = false; OpenGuideWnd(); } else { isNavGuide = true; m_Nav.enabled = true; m_Nav.speed = Constants.PlayerMoveSpeed; m_Nav.SetDestination(m_NpcPosTrans[agc.npcID].position); m_PlayerCtrl.SetBlend(Constants.BlendMove); } } else { OpenGuideWnd(); } }
private bool isGuide = false; //是否在自动任务寻路 /// <summary> /// 运行自动寻路 /// </summary> /// <param name="guideeCfg"></param> public void RunTask(AutoGuideCfg guideeCfg) { if (guideeCfg != null) { mCurrentAutoGuideCfg = guideeCfg; } if (mCurrentAutoGuideCfg.npcID != -1) { float dis = Vector3.Distance(mPlayerCont.transform.position, NpcTransformArry[mCurrentAutoGuideCfg.npcID].position); if (dis < 0.5f) { isGuide = false; //mNav.isStopped = true; mPlayerCont.SetBlend(0); mNav.enabled = false; OpenSpeakWin(); } else { isGuide = true; mNav.enabled = true; mNav.speed = 5; mNav.SetDestination(NpcTransformArry[mCurrentAutoGuideCfg.npcID].position); mPlayerCont.SetBlend(1); } } else { GameRoot.ShowHint("没有更多任务了,敬请关注后续更新"); } }
public void RunTask(AutoGuideCfg task) { if (task != null) { curTaskData = task; } // 解析任务系统数据 nav.enabled = true; if (curTaskData.npcID != -1) { float dis = Vector3.Distance(playerCtrl.transform.position, npcPosTrans[task.npcID].position); if (dis < 0.5f) { isNavGuide = false; nav.isStopped = true; playerCtrl.SetBlend(Constants.BlendIdle); nav.enabled = false; OpenGuideWnd(); } else { nav.enabled = true; isNavGuide = true; nav.speed = Constants.PlayerMoveSpeed; nav.SetDestination(npcPosTrans[task.npcID].position); playerCtrl.SetBlend(Constants.BlendMove); } } else { OpenGuideWnd(); } }
public void RefreshUI(object sender, GameEventArgs e) { OnRefreshUIFormEventArgs ne = e as OnRefreshUIFormEventArgs; if ((System.Object)sender != this && ne.formId != UIFormId.MainCityForm) { return; } PlayerData pd = PECommon.PlayerData; SetText(txtFight, PECommon.GetFightByProps(pd)); SetText(txtPower, "体力:" + pd.Power + "/" + PECommon.GetPowerLimit(pd.Lv)); imgPowerPrg.fillAmount = pd.Power * 1.0f / PECommon.GetPowerLimit(pd.Lv); SetText(txtLevel, pd.Lv); SetText(txtName, pd.Name); #region Expprg int expPrgVal = (int)(pd.Exp * 1.0f / PECommon.GetExpUpValByLv(pd.Lv) * 100); SetText(txtExpPrg, expPrgVal + "%"); int index = expPrgVal / 10; GridLayoutGroup grid = expPrgTrans.GetComponent <GridLayoutGroup>(); float globalRate = 1.0F * Constants.ScreenStandardHeight / Screen.height; float screenWidth = Screen.width * globalRate; float width = (screenWidth - 180) / 10; grid.cellSize = new Vector2(width, 7); for (int i = 0; i < expPrgTrans.childCount; i++) { Image img = expPrgTrans.GetChild(i).GetComponent <Image>(); if (i < index) { img.fillAmount = 1; } else if (i == index) { img.fillAmount = expPrgVal % 10 * 1.0f / 10; } else { img.fillAmount = 0; } } #endregion //设置自动任务图标 curtTaskData = GameEntry.Res.GetAutoGuideCfg(pd.Guideid); if (curtTaskData != null) { SetGuideBtnIcon(curtTaskData.npcID); } else { SetGuideBtnIcon(-1); } }
private void InitGuideCfg(string path) { TextAsset xml = Resources.Load <TextAsset>(path); if (!xml) { Debug.LogError("xml file " + path + "not exist"); } else { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.text); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); AutoGuideCfg agc = new AutoGuideCfg() { id = ID }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "npcID": agc.npcID = int.Parse(e.InnerText); break; case "dilogArr": agc.dilogArr = e.InnerText; break; case "actID": agc.actID = int.Parse(e.InnerText); break; case "coin": agc.coin = int.Parse(e.InnerText); break; case "exp": agc.exp = int.Parse(e.InnerText); break; } } guideTaskDic.Add(ID, agc); } } }
public void RefreshUI() { #region UI显示 PlayerData playerData = GameRoot.instance.PlayerData; SetText(txFight, PECommon.GetFightByProps(playerData)); SetText(txPower, "体力:" + playerData.power + "/150"); impPowerPrg.fillAmount = playerData.power * 1.0f / 150; SetText(txLevel, playerData.lv); SetText(txName, playerData.name); #endregion //expprg #region Expprg自适应 int expPrgVal = (int)((playerData.exp * 1.0f) / PECommon.GetExpUpVaByLv(playerData.lv) * 100); SetText(txExpPrg, expPrgVal + "%"); int index = expPrgVal / 10; for (int i = 0; i < expPrgTrans.childCount; i++) { Image img = expPrgTrans.GetChild(i).GetComponent <Image>(); if (i < index) { img.fillAmount = 1; } else if (i == index) { img.fillAmount = expPrgVal % 10 * 1.0f / 10; } else { img.fillAmount = 0; } } GridLayoutGroup grid = expPrgTrans.GetComponent <GridLayoutGroup>(); float gloablRate = 1.0f * Constants.ScreenStandardHeight / Screen.height; float real_width = Screen.width * gloablRate; float width = (real_width - 180) / 10; grid.cellSize = new Vector2(width, 7); #endregion #region 任务图标 curtTaskData = ResSvc.instance.GetGuideCfg(playerData.guideid); if (curtTaskData != null) { SetGuideImage(curtTaskData.npcID); } else { SetGuideImage(-1); } #endregion }
public AutoGuideCfg GetAutoGuideCfg(int id) { AutoGuideCfg agc = null; guideTaskDic.TryGetValue(id, out agc); return(agc); }
public void SetPlayerDataByGuide(AutoGuideCfg data) { playerData.coin += data.coin; playerData.guideid++; GetExp(data.exp); //playerData.exp = data.exp; //playerData.lv = data.lv; }
public AutoGuideCfg GetGuideCfg(int id) { AutoGuideCfg cfg = null; autoGuideCfgDic.TryGetValue(id, out cfg); return(cfg); }
private void InitGuideCfg(string assetName, object asset, float duration, object userData) { TextAsset xml = asset as TextAsset; if (!xml) { PECommon.Log("xml file:" + assetName + " not exist", LogType.Error); } else { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.text); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); AutoGuideCfg mc = new AutoGuideCfg { ID = ID }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "npcID": mc.npcID = int.Parse(e.InnerText); break; case "dilogArr": mc.dilogArr = e.InnerText; break; case "actID": mc.actID = int.Parse(e.InnerText); break; case "coin": mc.coin = int.Parse(e.InnerText); break; case "exp": mc.exp = int.Parse(e.InnerText); break; } } guideTaskDic.Add(ID, mc); } } GameEntry.Resource.UnloadAsset(asset); }
private void InitGuideCfg(string path) { TextAsset xml = Resources.Load <TextAsset>(path); if (!xml) { PECommon.Log("xml file:" + path + "not exist", LogType.Error); } else { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.text); XmlNodeList nodeList = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodeList.Count; i++) { XmlElement ele = nodeList[i] as XmlElement; if (string.IsNullOrEmpty(ele.GetAttributeNode("ID").InnerText)) { continue; } int id = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); AutoGuideCfg guideCfg = new AutoGuideCfg { ID = id }; foreach (XmlElement e in nodeList[i].ChildNodes) { switch (e.Name) { case "npcID": guideCfg.npcID = int.Parse(e.InnerText); break; case "dilogArr": guideCfg.dilogArr = e.InnerText; break; case "actID": guideCfg.actID = int.Parse(e.InnerText); break; case "coin": guideCfg.coin = int.Parse(e.InnerText); break; case "exp": guideCfg.exp = int.Parse(e.InnerText); break; } } guideTaskDic.Add(id, guideCfg); } } }
protected override void InitWnd() { base.InitWnd(); pd = GameRoot.Instance.PPlayerData; curtTaskData = MainCitySys.Instance.CurtTaskData; dialogArr = curtTaskData.dilogArr.Split('#'); index = 1; SetTalk(); }
protected override void InitWindow() { base.InitWindow(); index = 1; curAutoGuideCfg = MainCitySys.Instance.GetCurAutoGuideCfg(); SetDialogue(); nextBtn.onClick.AddListener(OnNextBtnClick); }
private void InitGuideCfg() { TextAsset xml = Resources.Load <TextAsset>(PathDefine.AutoGuideCfg); if (!xml) { PECommon.Log("xml file:" + PathDefine.AutoGuideCfg + " not exist"); } else { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.text); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; //如果ID不存在 读下一条 if (ele.GetAttributeNode("ID") == null) { continue; } int id = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); AutoGuideCfg mc = new AutoGuideCfg { ID = id }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "npcID": mc.npcID = int.Parse(e.InnerText); break; case "actID": mc.actID = int.Parse(e.InnerText); break; case "coin": mc.coin = int.Parse(e.InnerText); break; case "exp": mc.exp = int.Parse(e.InnerText); break; case "dilogArr": mc.dilogArr = e.InnerText; break; } } autoGuideCfgDic.Add(id, mc); } } }
public AutoGuideCfg GetTaskCfg(int id) { AutoGuideCfg autoGuideCfg = null; if (autoGuideCfgDicts.TryGetValue(id, out autoGuideCfg)) { return(autoGuideCfg); } return(null); }
protected override void InitWind() { base.InitWind(); btnNext.onClick.AddListener(OnClickNextGuide); m_currTaskData = MainCitySys.instance.GetTaskData(); m_pd = GameRoot.instance.playerData; m_dialogArr = m_currTaskData.dilogArr.Split('#'); m_index = 1; SetTalk(); }
public AutoGuideCfg GetAutoGuideCfg(int ID) { AutoGuideCfg autoGuideCfg = null; if (autoGuideCfgDic.TryGetValue(ID, out autoGuideCfg)) { return(autoGuideCfg); } return(null); }
protected override void InitWnd() { base.InitWnd(); currentTaskData = MainCitySys.Instance.GetGuideData(); pd = GameRoot.instance.Playerdata; dialogArr = currentTaskData.dilogArr.Split('#'); index = 1; SetTalk(); }
public AutoGuideCfg GetAutoGuideData(int id) { AutoGuideCfg agc = null; if (guideTaskDic.TryGetValue(id, out agc)) { return(agc); } return(null); }
/// <summary> /// 回应任务完成请求 /// </summary> public void ReqTask(PackMsg pack) { ReqTask data = pack.msg.reqTask; ServerSession session = pack.session; GameMsg msg = new GameMsg { cmd = (int)CMD.RspTask }; PlayerData playerData = cacheSvc.GetPlayerDataCache(pack.session); AutoGuideCfg AutoGuideCfg = cfgSvc.GetAutoGuideCfg(data.taskID); //更新任务ID if (playerData.taskid == data.taskID) { PshTaskProgs pshTaskProgs = null; //更新任务智者点拨进度 if (playerData.taskid == 1001) { pshTaskProgs = TaskSys.Instance.CalcTaskProgs(playerData, 1); } playerData.taskid++; //更新玩家数据 playerData.coin += AutoGuideCfg.coin; PECommon.UpdateExp(playerData, AutoGuideCfg.exp); if (!cacheSvc.UpdatePlayerData(playerData.id, playerData)) { msg.err = (int)ErrorCode.UpdateDBError; } else { RspTask rspTask = new RspTask { taskID = playerData.taskid, coin = playerData.coin, exp = playerData.exp, lv = playerData.lv, hp = playerData.hp, }; //发送回客户端 msg.rspTask = rspTask; if (pshTaskProgs != null) { msg.pshTaskProgs = pshTaskProgs; } } } else { msg.err = (int)ErrorCode.ServerDataError; } pack.session.SendMsg(msg); }
public AutoGuideCfg GetAutoGuidCfg(int id) { AutoGuideCfg guide = null; Debug.Log(id); if (!AutoGuideCfgDic.TryGetValue(id, out guide)) { return(null); } return(guide); }
protected override void InitWnd() { base.InitWnd(); btnNext.onClick.AddListener(ClickNextBtn); playerData = GameRoot.Instance.PlayerData; curTaskData = MainCitySys.Instance.GetAutoGuideCfg(); dialogArr = curTaskData.dialogArr.Split('#'); dialogIndex = 1; SetTalk(); }