public TaskGuideExtendData(NewGuideConfigData newGuideConfigData) { NewGuideConfigDatas = newGuideConfigData; switch (NewGuideConfigDatas.GuideType) { case GuideConfigType.FindTask: case GuideConfigType.FindEctype: case GuideConfigType.NormalArrow: case GuideConfigType.FindEquipPosition: case GuideConfigType.FindIntellSiren: MappingId = int.Parse(NewGuideConfigDatas.GuideBtnID); break; case GuideConfigType.FindMaterial: var playerDataStruct = (IPlayerDataStruct)PlayerManager.Instance.FindHeroEntityModel().EntityDataStruct; int vocationId = playerDataStruct.GetCommonValue().PLAYER_FIELD_VISIBLE_VOCATION; string[] vocas = NewGuideConfigDatas.GuideBtnID.Split('|'); MappingCategory = TaskBtnManager.Instance.GetUITypeByBtnId(vocas[0]); for (int i = 1; i < vocas.Length; i++) { string[] details = vocas[i].Split('+'); if (details[0] == vocationId.ToString()) { MappingId = int.Parse(details[1]); break; } } break; } }
private void StoryDialogFinish(NewGuideConfigData newGuideConfigData, bool isBreak) { if (m_storyPanel != null) { Destroy(m_storyPanel); m_storyPanel = null; } //send event to joystick of TownUI UIEventManager.Instance.TriggerUIEvent(UIEventType.OnNpcTalkCloseEvent, null); m_storyDialogClickEvent = NGUITools.AddChild(gameObject, StoryDialogMask).GetComponent <UIEventListener>(); BattleManager.Instance.FollowCamera.SmoothMoveTargetOriginal(PlayerManager.Instance.FindHeroEntityModel().Behaviour.transform); m_currnetTalkIndex = 0; GameManager.Instance.PlaySceneMusic(); //32=与剧情人物对话(前端对话) 完成后向服务器发消息,告诉服务器任务完成 if (!isBreak && newGuideConfigData != null && newGuideConfigData.TaskNewConfigData.TaskType == 32) { SMsgInteractCOMMON_CS msgInteract; msgInteract.dwNPCID = 0; msgInteract.byOperateType = 2; msgInteract.dwParam1 = 2; msgInteract.dwParam2 = 0; msgInteract.byIsContext = 0; SMsgInteractCOMMONContext_CS msgContext; msgContext.szContext = new byte[32]; NetServiceManager.Instance.InteractService.SendInteractCOMMON(msgInteract, msgContext); } StartCoroutine(CameraSmoothBackFinish(isBreak)); }
/// <summary> /// 主角转到正确角度后开始剧情对话 /// </summary> /// <param name="npcTransform"></param> /// <param name="playerBehaviour"></param> /// <param name="newGuideConfigData"></param> /// <returns></returns> /// IEnumerator UpdateRotation(PlayerBehaviour playerBehaviour, NewGuideConfigData newGuideConfigData) { var angle = float.Parse(newGuideConfigData.StroyPos.Split('+')[2]); while (true) { yield return(null); Quaternion wantedRotation = Quaternion.Euler(new Vector3(0, angle, 0)); float t = CommonDefineManager.Instance.CommonDefine.TurnRoundSpeed / Quaternion.Angle(playerBehaviour.ThisTransform.rotation, wantedRotation) * Time.deltaTime; playerBehaviour.ThisTransform.rotation = Quaternion.Lerp(playerBehaviour.ThisTransform.rotation, wantedRotation, t); if (t == 1 || float.IsInfinity(t)) { break; } } }
/// <summary> /// 显示剧情对话内容 /// </summary> /// <param name="newGuideConfigData"></param> private void ShowDialog(NewGuideConfigData newGuideConfigData) { if (m_currnetTalkIndex < newGuideConfigData.TalkIdConfigDatas.Length) { var talkIdConfigData = newGuideConfigData.TalkIdConfigDatas[m_currnetTalkIndex]; int index = (int)talkIdConfigData.DialogPrefab - 1; if (m_storyPanel != null) { DestroyImmediate(m_storyPanel); m_storyPanel = null; } m_storyPanel = UI.CreatObjectToNGUI.InstantiateObj(StoryDialogPrefabs[index], npcTalkParent); // NGUITools.AddChild(gameObject, StoryDialogPrefabs[index]); var offsetPosStr = talkIdConfigData.TextPos.Split('+'); var offsetPos = new Vector3(float.Parse(offsetPosStr[0]), float.Parse(offsetPosStr[1]), 0); m_storyPanel.transform.localPosition = offsetPos; var storyPanelBehaviour = m_storyPanel.GetComponent <StoryDialogBehaviour>(); talkIdConfigData.isTaskTalkMark = true; storyPanelBehaviour.Init(talkIdConfigData); storyPanelBehaviour.StoryGuideFinishAct = () => { if (m_storyPanel != null) { Destroy(m_storyPanel); m_storyPanel = null; } SoundManager.Instance.PlaySoundEffect("Sound_Button_TaskStory_Next"); m_currnetTalkIndex++; ShowDialog(newGuideConfigData); }; } else { if (m_skipStoryBtn != null) { m_skipStoryBtn.gameObject.SetActive(false); //Destroy(m_skipStoryBtn.gameObject); } StoryDialogFinish(newGuideConfigData, false); } }