public void ShowChooseServerUIFormCreateChr(bool isConnectSuccess = true) { ShowChooseServerUI(isConnectSuccess); m_onChooseServerUIBackBtnUp = () => { if (!m_isConnectSuccess) { MogoMessageBox.Info("Please select a server."); return; } MogoWorld.LoadCharacterScene(); }; m_onChooseServerGridUp = (index) => { if (index != 0 && m_isConnectSuccess && SystemConfig.SelectedServerIndex == index) { MogoWorld.LoadCharacterScene(); return; } //Debug.Log(index); SystemConfig.SelectedServerIndex = index; var server = SystemConfig.GetServerInfoByIndex(index); Debug.Log("server.id: " + server.id); if (server != null) { SystemConfig.Instance.SelectedServer = server.id; } SystemConfig.SaveConfig(); MogoWorld.Login(); //EventDispatcher.TriggerEvent<int>(Events.UIAccountEvent.OnChangeServer, id); }; }
public void StarBelong(uint _playerId, int _starId) { UnitStar _star = GetUnitStarById(_starId); _star.BelongTo = MogoWorld.GetEntityById(_playerId); _star.SetGroup(GetGroupByPalyerId(_playerId));//设置阵营信息 }
private void FindServerSucc(string ip) { UIManager.I.CloseUI <WaitingUIMgr>(); MsgBoxInfo info = new MsgBoxInfo(); if (string.IsNullOrEmpty(ip)) { info.Content = LanguageData.GetContent(6); info.BtnOkText = LanguageData.GetContent(5); info.okAction = () => { UIManager.I.CloseUI <MsgBoxUILogic>(); UIManager.I.ShowUI <WaitingUIMgr>(); EventDispatcher.TriggerEvent(FindServerEvent.FindServerStart); }; info.cancelAction = () => { UIManager.I.CloseUI <MsgBoxUILogic>(); }; } else { info.Content = LanguageData.GetContent(7, ip); info.BtnOkText = LanguageData.GetContent(3); info.okAction = () => { Close(); MogoWorld.ConnectServer(ip, 43998); MogoWorld.Login(); }; info.cancelAction = () => { UIManager.I.CloseUI <MsgBoxUILogic>(); }; } UIManager.I.ShowUI <MsgBoxUILogic>(info); MogoWorld.ServerIP = ip; }
IEnumerator AfterInit(Action <int> process) { process(40); yield return(null); //加载游戏配置数据 Action onGameDataReady = () => { lock (MogoWorld.GameDataLocker) { MogoWorld.IsGameDataReady = true; if (MogoWorld.OnGameDataReady != null) { Driver.Invoke(MogoWorld.OnGameDataReady); } } }; GameDataControler.Init(null, onGameDataReady); process(45); yield return(null); //初始化网络模块 ServerProxy.Instance.Init(); ServerProxy.Instance.BackToChooseServer = MogoWorld.BackToChooseCharacter; process(50); yield return(null); //启动游戏逻辑 MogoWorld.Init(); SoundManager.Init(); MogoWorld.Start(); NPCManager.Init(); }
/// <summary> /// 显示攻击者 攻击建筑时的表示 /// </summary> public void showAttackBuildingEffect(Vector3 _position) { EntityParent _gethitEntity = BelongTo; EntityParent _attackEntity; Dictionary <int, UnitSoldier> _dicSoldier; foreach (var _key in SoldierDic.Keys) { _attackEntity = MogoWorld.GetEntityById(_key); if (_attackEntity.TeamId == _gethitEntity.TeamId)//同阵营 { continue; } _dicSoldier = SoldierDic[_key]; foreach (var _soldierItem in _dicSoldier.Values) { if (_soldierItem.BaseSoldierData.attack_object.Contains(1))//可以攻击建筑 { _soldierItem.OnAttack(_position); } } } }
private void OnLoginDoneSSJJ() { SetupInfoSSJJ(); MogoGlobleUIManager.Instance.ShowGlobleStaticText(false, "Login..."); //IsLoginDone = true; MogoWorld.Login(); //IsLoginDone = false; }
//处理新手时不先加主城 private void RealSwitchScene(ushort orgId, ushort newId) { if ((baseflag % 2) == 1) {//新手不进主城 return; } MogoWorld.SwitchScene(orgId, newId); }
private void OnLoginDoneUnion() { SetupInfoUnion(); MogoGlobleUIManager.Instance.ShowGlobleStaticText(false, "Login..."); //IsLoginDone = true; //MogoMsgBox.Instance.ShowFloatingText("username:"******",sessionId" + sessionId + ",suid:" + suid); MogoWorld.Login(); //IsLoginDone = false; }
private void OnBtnJoin(MogoUIBtn btn) { if (CheckNameError()) { return; } MogoWorld.ConnectServer(m_inputServerIP.text, 43998); MogoWorld.Login(); MogoWorld.ServerIP = m_inputServerIP.text; }
private void OnCloseUI(MogoUIBtn btn) { MogoWorld.CloseUI(); //MogoWorld.StartGame(); //MogoWorld.m_sceneManager.LoadLoginScene(); //MogoWorld.m_uiManager.LoadMainUI(); //MogoWorld.DisConnectServer(); MogoWorld.OnMainUILoaded(); MogoWorld.m_sceneManager.LoadLoginScene(); MogoWorld.Quit(); }
private void OnBtnCreate(MogoUIBtn btn) { if (CheckNameError()) { return; } string serverIp = MogoWorld.CreateServer(); MogoWorld.IsSingleMatch = true; MogoWorld.ConnectServer(serverIp, 43998); MogoWorld.Login(); MogoWorld.ServerIP = serverIp; }
/// <summary> /// 对星球增加士兵 /// </summary> /// <param name="_starID"></param> /// <param name="_buildingTime"></param> public void addSoldierToStar(uint _playerId, int _starID, int _soldierType, int _Energy, int _isSelfProduce, bool _isMoveAnimation = true) { UnitStar _star = GetUnitStarById(_starID); UnitSoldier _Soldier = _star.GetSoldierById(_playerId, _soldierType); if (_star.BelongTo != null && _star.BelongTo.ID == MogoWorld.thePlayer.ID && _starID == CurStarID) { EventDispatcher.TriggerEvent(Events.StarUIEvent.AddSoldierEvent);//发送我方当前星球添加兵力的消息 } if (_Soldier != null) { _Soldier.AddSoldier(_Energy, _isSelfProduce); _star.CulAllSoldierAttack(); if (_isMoveAnimation && (_Soldier.GetGatherSoldierNum() > 0)) { m_starDataManager.StarTogether(_star); } m_starDataManager.StarOrEndStartFighting(_star); return; } _Soldier = GetUnitSoldierFromPool(); SoldierIndex++; _Soldier.UnitId = SoldierIndex; _Soldier.BelongTo = MogoWorld.GetEntityById(_playerId); _Soldier.BaseSoldierData = SoldierData.dataMap.Get(_soldierType); Vector2 _pos = _star.GetSoliderPositionById(_soldierType); //LoggerHelper.Error("_pos.x:" + _pos.x + "_pos.y:" + _pos.y); _Soldier.PositionX = _pos.x; _Soldier.PositionY = _pos.y; _Soldier.UnitParent = SoldierLyaer; _Soldier.AddSoldier(_Energy, _isSelfProduce); _Soldier.BelongToStar = _star; _Soldier.IsMoveAnimation = _isMoveAnimation; _Soldier.InitUnit(); _Soldier.SetGroup(GetGroupByPalyerId(_playerId));//设置阵营信息 _star.AddSoldier(_playerId, _soldierType, _Soldier); _star.CulAllSoldierAttack(); m_starDataManager.StarOrEndStartFighting(_star); if (_isMoveAnimation && (_Soldier.GetGatherSoldierNum() > 0)) { m_starDataManager.StarTogether(_star); //_Soldier.CallBack = SoldierCallback; } IsAttackStar(_star); }
void Update() { TimerHeap.Tick(); FrameTimerHeap.Tick(); if (hasInitFinish) { MogoWorld.Process(); if (MogoWorld.thePlayer != null && MogoWorld.thePlayer.ViewTransform != null) { transform.localPosition = MogoWorld.thePlayer.ViewTransform.localPosition; } } }
public void LoadMainUI() { AssetCacheMgr.GetUIInstance("MogoMainUI.prefab", (prefab, guid, go) => { var mainUI = go as GameObject; mainUI.transform.localPosition = new Vector3(5000, 5000, 0); MogoMainUIPanel = mainUI.transform.FindChild("Camera/Anchor/MogoMainUIPanel"); UICamera = mainUI.transform.FindChild("Camera").GetComponent <Camera>(); BillBoardCamera = mainUI.transform.FindChild("BillboardCamera").GetComponent <Camera>(); billboardList = mainUI.transform.FindChild("Camera/Anchor/MogoMainUIPanel/BillboardList"); BattleUI = MogoMainUIPanel.FindChild("BattleUI"); MogoWorld.OnMainUILoaded(); }); }
public static void SetGameProgress(ProcType procType, params Object[] args) { if (!GameProcData.ProcData.ContainsKey(procType)) { return; } var targetParas = args.PackArray().ToLower(); //Debug.LogError("targetParas: " + targetParas); if (GameProcData.ProcData[procType].ContainsKey(targetParas)) { var progress = GameProcData.ProcData[procType][targetParas].Progress; MogoWorld.SetGameProgress(progress); } }
/// <summary> /// 士兵攻击星球 /// </summary> /// <param name="_starID"></param> /// <param name="_buildingTime"></param> public void ShowSoldierIntrusionStar(uint _playerId, int _starID, int _soldierType, int _Energy, float _PositionX, float _PositionY) { UnitStar _star = GetUnitStarById(_starID); UnitSoldier _Soldier = GetUnitSoldierFromPool(); SoldierIndex++; _Soldier.UnitId = SoldierIndex; _Soldier.BelongTo = MogoWorld.GetEntityById(_playerId); _Soldier.BaseSoldierData = SoldierData.dataMap.Get(_soldierType); _Soldier.PositionX = _PositionX; _Soldier.PositionY = _PositionY; _Soldier.UnitParent = SoldierLyaer; _Soldier.AddSoldier(_Energy, 1); _Soldier.BelongToStar = _star; _Soldier.IsMoveAnimation = false; _Soldier.IsShowSoldierIntrusionStar = true; _Soldier.InitUnit(); _Soldier.SetGroup(GetGroupByPalyerId(_playerId));//设置阵营信息 }
/// <summary> /// 通过玩家id获得阵营信息 /// </summary> /// <param name="playerId"></param> /// <returns></returns> public GroupData GetGroupByPalyerId(uint playerId) { //Debug.Log("playerId:" + playerId); EntityParent _entiy = MogoWorld.GetEntityById(playerId); if (_entiy == null) { return(null); } //LoggerHelper.Error("playerId:" + playerId + "TeamId:" + _entiy.TeamId); if (GroupDic.ContainsKey(_entiy.TeamId)) { return(GroupDic[_entiy.TeamId]); } GroupDic[_entiy.TeamId] = GroupData.dataMap[(int)_entiy.TeamId + 1];//初始化阵营 return(GroupDic[_entiy.TeamId]); }
/// <summary> /// 摆阵 /// </summary> public void ArrayedSoldier() { int _indexX = 0; int _MyindexX = 0; int _indexY = -3; Dictionary <int, UnitSoldier> dic; EntityParent _entity; foreach (var _soldiers in SoldierDic) { _entity = MogoWorld.GetEntityById(_soldiers.Key); dic = _soldiers.Value; if (_entity.TeamId == MogoWorld.thePlayer.TeamId) { _MyindexX++; _indexY = -3; foreach (var _soldierItem in dic.Values) { var x = PositionX - 100 * _MyindexX; var y = PositionY - _indexY * 30; _soldierItem.Move(x, y, 0.1f); //_soldierItem.OnAttack(new Vector3(x + 200, y, 0)); _indexY++; } } else { _indexX++; _indexY = -3; foreach (var _soldierItem in dic.Values) { var x = PositionX + 100 * _indexX; var y = PositionY - _indexY * 30; _soldierItem.Move(x, y, 0.1f); //_soldierItem.OnAttack(new Vector3(x - 200, y, 0)); _indexY++; } } } }
public void ShowChooseServerUIFormLogin() { ShowChooseServerUI(false); m_onChooseServerUIBackBtnUp = () => { MogoWorld.LoadLoginScene(); }; m_onChooseServerGridUp = (index) => { SystemConfig.SelectedServerIndex = index; var server = SystemConfig.GetServerInfoByIndex(index); Debug.Log("server.id: " + server.id); if (server != null) { SystemConfig.Instance.SelectedServer = server.id; } SystemConfig.SaveConfig(); MogoWorld.LoadLoginScene(); //EventDispatcher.TriggerEvent<int>(Events.UIAccountEvent.OnChangeServer, id); }; }
/// <summary> /// 显示攻击者 攻击士兵时的表现 /// </summary> public void showAttackSoldierEffect(uint gethitPlayer, Vector3 _position) { ///士兵 EntityParent _gethitEntity = MogoWorld.GetEntityById(gethitPlayer); EntityParent _attackEntity; Dictionary <int, UnitSoldier> _dicSoldier; foreach (var _key in SoldierDic.Keys) { _attackEntity = MogoWorld.GetEntityById(_key); if (_attackEntity.TeamId == _gethitEntity.TeamId)//同阵营 { continue; } _dicSoldier = SoldierDic[_key]; foreach (var _soldierItem in _dicSoldier.Values) { if (_soldierItem.BaseSoldierData.attack_object.Contains(2))//可以攻击士兵 { _soldierItem.OnAttack(_position); } } } ///建筑 if ((BelongTo != null) && (BelongTo.TeamId != _gethitEntity.TeamId)) { foreach (var _buildingItem in BuildingDic.Values) { if (_buildingItem.BaseBuildingData.attack > 0) { _buildingItem.OnAttack(_position); } } } }
void Start() { goDiver = gameObject; Application.targetFrameRate = 30; Screen.sleepTimeout = (int)SleepTimeout.NeverSleep; gameObject.AddComponent <LoadResources>(); var gameData = GameDataControler.Instance; if (Application.platform == RuntimePlatform.Android) { gameObject.AddComponent <PlatformMessageReceiver>(); } SystemConfig.Init((flag) => { serverIp = SystemConfig.GetCfgInfoUrl("serverlist"); gameData.Init(null, () => { MogoWorld.Init(MogoWorld.StartGame); hasInitFinish = true; }, null); }); }
void OnLoginUILoginUp() { //ServerProxy.Instance.Login(LoginUIViewManager.Instance.GetUserName(), // LoginUIViewManager.Instance.GetPassword(), "20"); string passport = LoginUIViewManager.Instance.GetUserName(); string password = LoginUIViewManager.Instance.GetPassword(); MogoWorld.passport = passport; MogoWorld.password = password; MogoWorld.Login(); //SystemConfig.Instance.IsAutoLogin = LoginUILogicManager.Instance.IsAutoLogin; //SystemConfig.Instance.IsSavePassport = LoginUILogicManager.Instance.IsSaveUserName; //if (SystemConfig.Instance.IsSavePassport) //{ SystemConfig.Instance.Passport = passport; //if (SystemConfig.Instance.IsAutoLogin) SystemConfig.Instance.Password = password; //else // SystemConfig.Instance.Password = "******"; //} //else //{ // SystemConfig.Instance.Passport = " "; // SystemConfig.Instance.Password = "******"; //} SystemConfig.SaveConfig(); //MogoUIManager.Instance.ShowMogoChooseCharacterUI(); //EventDispatcher.TriggerEvent<string, string>(Events.UIAccountEvent.OnLogin, passport, password); //Debug.Log("LoginUp"); }
void Quit() { MogoWorld.Logout(0); ServerProxy.Instance.Process(); }
void OnCreateCharacterUIBackBtnUp() { MogoWorld.LoadCharacterScene(); }
void OnGUI() { if (GUI.Button(new Rect(0, 0, 10, 10), "")) { m_switch = !m_switch; } if (!m_switch) { return; } if (GUI.Button(new Rect(10, 0, 90, 100), "touch")) { foreach (var item in MogoWorld.m_dataMapManager.ReachStarList) { foreach (var soliders in item.SoldierDic.Values) { foreach (var solider in soliders.Values) { solider.OnHit(); } } } //MogoWorld.thePlayer.controllerInput.SetStickType(StickType.Touch); } serverIp = GUI.TextArea(new Rect(0, 100, 150, 50), serverIp); if (GUI.Button(new Rect(100, 0, 100, 100), "CreateServer")) { serverIp = MogoWorld.CreateServer(); } if (GUI.Button(new Rect(200, 0, 100, 100), "login")) { MogoWorld.ServerIP = serverIp; MogoWorld.ConnectServer(serverIp, 43998); MogoWorld.TmpPlayerName = UtilsEx.GetRandomName(); MogoWorld.Login(); } if (GUI.Button(new Rect(300, 0, 100, 100), "createAvatar")) { MogoWorld.thePlayer.RpcCall("CreateAvatarReq"); } if (GUI.Button(new Rect(400, 0, 100, 100), "vrWidth+")) { MogoWorld.MainCamera.SetVRWidth(true); } if (GUI.Button(new Rect(500, 0, 100, 100), "vrWidth-")) { MogoWorld.MainCamera.SetVRWidth(false); } if (GUI.Button(new Rect(600, 0, 100, 100), "vrRot+")) { MogoWorld.MainCamera.SetVRRotation(true); } if (GUI.Button(new Rect(700, 0, 100, 100), "vrRot-")) { MogoWorld.MainCamera.SetVRRotation(false); } if (GUI.Button(new Rect(800, 0, 100, 100), "vr")) { MogoWorld.MainCamera.SwitchVR(); } if (GUI.Button(new Rect(0, 100, 100, 100), "into main")) { MogoWorld.EnterMainEufloria(1); } if (GUI.Button(new Rect(100, 100, 100, 100), "init map")) { UIManager.I.GetUILogic <MapUIMgr>().InitStarMap(1); } if (GUI.Button(new Rect(200, 100, 100, 100), "remove soldier")) { MogoWorld.thePlayer.RpcCall("RemoveSoldier", MogoWorld.thePlayer.ID, 0, 1, 100, 1); } if (GUI.Button(new Rect(300, 100, 100, 100), "ShowSoldierIntrusionStar")) { //MogoWorld.m_dataMapManager.addSoldierToStar(MogoWorld.thePlayer.ID, 1, 1); //MogoWorld.thePlayer.RpcCall("ArrayedSoldier", 1, 1); // MogoWorld.m_dataMapManager.ShowSoldierIntrusionStar(MogoWorld.thePlayer.ID, 1, 1, 150); } if (GUI.Button(new Rect(400, 100, 100, 100), "stop game")) { //MogoWorld.m_dataMapManager.addSoldierToStar(MogoWorld.thePlayer.ID, 1, 1); //MogoWorld.thePlayer.RpcCall("ArrayedSoldier",1, 2); //UIManager.I.GetUILogic<MapUIMgr>().EraserTexture(); //MogoWorld.IsInGame = false; MogoWorld.thePlayer.RpcCall("GameOver", 1); } if (GUI.Button(new Rect(500, 100, 100, 100), "OpenRangleCheck")) { //MogoWorld.m_dataMapManager.addSoldierToStar(MogoWorld.thePlayer.ID, 1, 1); //MogoWorld.thePlayer.RpcCall("ArrayedSoldier",1, 2); //UIManager.I.GetUILogic<MapUIMgr>().EraserTexture(); UIManager.I.GetUILogic <StarInfoUIMgr>().IsOpenRangleCheck = !UIManager.I.GetUILogic <StarInfoUIMgr>().IsOpenRangleCheck; } }
void OnTriggerEnter(Collider other) { if (triggleEnable) { if (other.gameObject.layer == 9)//Terrain { MogoMainCamera.Instance.Shake(5, 0.1f); sfxHandler.HandleFx(500102); sfxHandler.RemoveFXs(6011); List <List <uint> > entities = MogoUtils.GetEntitiesInRange(transform, radius); if (entities.Count != 4) { return; } List <uint> dummyList = entities[0]; List <uint> playerList = entities[2]; if (canAttackDummy) { foreach (uint id in dummyList) { EventDispatcher.TriggerEvent(Events.GearEvent.Damage, id, 9003, (int)2, CalcDamage(MogoWorld.GetEntity(id) as EntityParent)); } } foreach (uint id in playerList) { if (id == MogoWorld.thePlayer.ID) { EventDispatcher.TriggerEvent(Events.GearEvent.Damage, id, 9003, (int)2, CalcDamage(MogoWorld.thePlayer as EntityParent)); break; } } if (timerID == uint.MaxValue) { timerID = TimerHeap.AddTimer(5000, 0, BombDestroy); } vx = 0; vy = 0; triggleEnable = false; } } }
void OnApplicationQuit() { LoggerHelper.Release(); MogoWorld.Quit(); }
private void SetDamage(List <List <uint> > entities) { if (entities.Count != 4) { return; } List <uint> dummyList = entities[0]; List <uint> playerList = entities[2]; if (canAttackDummy) { foreach (uint id in dummyList) { EventDispatcher.TriggerEvent(Events.GearEvent.Damage, id, 9003, (int)2, CalcDamage(MogoWorld.GetEntity(id) as EntityParent)); } } foreach (uint id in playerList) { if (id == MogoWorld.thePlayer.ID) { EventDispatcher.TriggerEvent(Events.GearEvent.Damage, id, 9003, (int)2, CalcDamage(MogoWorld.thePlayer as EntityParent)); break; } } }
public void StartMatch(int teamCount, int clientCount) { LoggerHelper.Debug(teamCount + " " + clientCount); MogoWorld.EnterMainEufloria(MapId); }
/// <summary> /// 私有的函数执行过程 /// </summary> /// <param name="commands"></param> private void executeCommand(string[] commands) { LoggerHelper.Warning("executeCommand :" + commands.PackArray()); switch (commands[0]) { case "CreateModel": { var list1 = commands[5].Split(new char[] { ',' }); Vector3 vec = new Vector3(float.Parse(list1[0]), float.Parse(list1[1]), float.Parse(list1[2])); if (commands.Length > 6 && commands[6].Equals("false")) { CreateModel(Int32.Parse(commands[1]), Int32.Parse(commands[2]), Int32.Parse(commands[3]), Int32.Parse(commands[4]), vec, false); } else { CreateModel(Int32.Parse(commands[1]), Int32.Parse(commands[2]), Int32.Parse(commands[3]), Int32.Parse(commands[4]), vec); } break; } case "DestroyModel": { int id = Int32.Parse(commands[1]); AssetCacheMgr.ReleaseInstance(m_entityList[id].GameObject); BillboardLogicManager.Instance.RemoveBillboard(m_entityList[Int32.Parse(commands[1])].ID); EventDispatcher.RemoveEventListener <GameObject, Vector3>(MogoMotor.ON_MOVE_TO, m_entityList[Int32.Parse(commands[1])].OnMoveTo); m_entityList.Remove(id); break; } case "PlayAction": { int id = Int32.Parse(commands[1]); PlayAction(id, Int32.Parse(commands[2])); break; } case "PlayOneAction": { int id = Int32.Parse(commands[1]); PlayAction(id, Int32.Parse(commands[2])); m_entityList[id].AddCallbackInFrames <EntityParent>((ent) => { ent.SetAction(0); }, m_entityList[id]); break; } case "StopAction": { int id = Int32.Parse(commands[1]); m_entityList[id].AddCallbackInFrames <EntityParent>((ent) => { ent.SetAction(0); }, m_entityList[id]); break; } case "PlaySfx": { if (commands.Length > 3) { var list1 = commands[4].Split(new char[] { ',' }); Vector3 vec = new Vector3(float.Parse(list1[0]), float.Parse(list1[1]), float.Parse(list1[2])); PlaySfx(Int32.Parse(commands[1]), Int32.Parse(commands[2]), Int32.Parse(commands[3]), vec); } else { PlaySfx(Int32.Parse(commands[1]), Int32.Parse(commands[2])); } break; } case "StopSfx": if (commands.Length > 2) { StopSfx(Int32.Parse(commands[1]), Int32.Parse(commands[2])); } else { StopSfx(Int32.Parse(commands[1])); } break; case "MoveCamera": if (commands.Length == 5) { var list1 = commands[2].Split(new char[] { ',' }); var list2 = commands[3].Split(new char[] { ',' }); MoveCamera(Int32.Parse(commands[1]), float.Parse(list1[0]), float.Parse(list2[0]), float.Parse(list1[1]), float.Parse(list2[1]), float.Parse(list1[2]), float.Parse(list2[2]), float.Parse(list1[3]), float.Parse(list2[3]), float.Parse(commands[4])); } else if (commands.Length == 6) { var list1 = commands[2].Split(new char[] { ',' }); var list2 = commands[3].Split(new char[] { ',' }); var list3 = commands[5].Split(new char[] { ',' }); Vector3 vec = new Vector3(float.Parse(list3[0]), float.Parse(list3[1]), float.Parse(list3[2])); MoveCamera(Int32.Parse(commands[1]), float.Parse(list1[0]), float.Parse(list2[0]), float.Parse(list1[1]), float.Parse(list2[1]), float.Parse(list1[2]), float.Parse(list2[2]), float.Parse(list1[3]), float.Parse(list2[3]), float.Parse(commands[4]), vec); } else { MogoMainCamera.Instance.PlayCGAnim(commands[1]); } break; case "SetPosition": { int id = Int32.Parse(commands[1]); if (!m_entityList.ContainsKey(id)) { LoggerHelper.Debug("id not exist in list"); } else { var list1 = commands[2].Split(new char[] { ',' }); m_entityList[id].SetPositon(float.Parse(list1[0]), float.Parse(list1[1]), float.Parse(list1[2])); } break; } case "SetRotation": { int id = Int32.Parse(commands[1]); if (!m_entityList.ContainsKey(id)) { LoggerHelper.Debug("id not exist in list"); } else { var list1 = commands[2].Split(new char[] { ',' }); m_entityList[id].SetRotation(float.Parse(list1[0]), float.Parse(list1[1]), float.Parse(list1[2])); } break; } case "ShakeCamera": if (commands.Length > 3) { var list1 = commands[1].Split(new char[] { ',' }); var vec = new Vector3(float.Parse(list1[0]), float.Parse(list1[1]), float.Parse(list1[2])); var list2 = commands[2].Split(new char[] { ',' }); ShakeCamera(vec, Int32.Parse(list2[0]), Int32.Parse(list2[1]), Int32.Parse(list2[2]), float.Parse(commands[3]) / 1000); } else { ShakeCamera(Int32.Parse(commands[1]), float.Parse(commands[2]) / 1000); } break; case "WhiteCamera": { var list1 = commands[1].Split(new char[] { ',' }); Vector2 vec = new Vector2(float.Parse(list1[0]), float.Parse(list1[1])); MogoMainCamera.Instance.FadeToAllWhite(vec, float.Parse(commands[2]) / 1000); break; } case "NormalCamera": { var list1 = commands[1].Split(new char[] { ',' }); Vector2 vec = new Vector2(float.Parse(list1[0]), float.Parse(list1[1])); MogoMainCamera.Instance.FadeToNoneWhite(vec, float.Parse(commands[2]) / 1000); break; } case "MoveTo": { int id = Int32.Parse(commands[1]); var list1 = commands[2].Split(new char[] { ',' }); m_entityList[id].MoveTo(float.Parse(list1[0]), float.Parse(list1[1]), float.Parse(list1[2])); break; } case "ShowDialog": { var list1 = (from x in commands[1].Split(new char[] { ',' }) select LanguageData.GetContent(Int32.Parse(x)).Replace("{0}", MogoWorld.thePlayer.name)).ToArray(); var list2 = (from x in commands[2].Replace("{0}", IconData.GetPortraitByVocation(MogoWorld.thePlayer.vocation)).Split(new char[] { ',' }) select IconData.dataMap.Get(Int32.Parse(x)).path).ToArray(); var list3 = (from x in commands[3].Split(new char[] { ',' }) select FormatTaskText(LanguageData.GetContent(Int32.Parse(x)))).ToArray(); GuideSystem.Instance.IsGuideDialog = true; if (m_currentStoryID != 0) { //CG MogoUIManager.Instance.ShowMogoTaskUI(TaskUILogicManager.Instance.SetTaskInfo, list1, list2, list3, MogoUIManager.Instance.m_MainUI); } else { MogoUIManager.Instance.ShowGuideTaskUI(DialogUILogicManager.Instance.SetDialogInfo, list1, list2, list3); } break; } case "Subtitle": { MogoUIManager.Instance.ShowSubtitle(LanguageData.GetContent(Int32.Parse(commands[1])), float.Parse(commands[2]), float.Parse(commands[3])); break; } case "ZoomCamera": { int id = Int32.Parse(commands[1]); var list = commands[3].Split(new char[] { ',' }); MogoMainCamera.Instance.CloseToTarget(m_entityList[id].Transform, float.Parse(commands[2]), float.Parse(list[1]), float.Parse(list[0]), float.Parse(commands[4]) / 1000, float.Parse(commands[5]) / 1000); break; } case "LockSight": { MogoMainCamera.Instance.LockSight(); break; } case "SetFocus": { if (commands.Length > 4) { TeachUILogicManager.Instance.SetTeachUIFocus(Int32.Parse(commands[1]), LanguageData.GetContent(Int32.Parse(commands[2])), false, Int32.Parse(commands[3]), MogoUIManager.Instance.m_MainUI); //TeachUILogicManager.Instance.ShowFingerAnim(true); } else { TeachUILogicManager.Instance.SetTeachUIFocus(Int32.Parse(commands[1]), LanguageData.GetContent(Int32.Parse(commands[2])), false, Int32.Parse(commands[3])); //TeachUILogicManager.Instance.ShowFingerAnim(true); } break; } case "SetItemFocus": { var itemIDs = commands[1].Split(new char[] { ',' }).Select(x => Int32.Parse(x)); foreach (var item in itemIDs) { if (InventoryManager.Instance.GetItemNumById(item) > 0) { LoggerHelper.Warning("SetItemFocus" + item); TeachUILogicManager.Instance.SetItemFocus(item, LanguageData.GetContent(Int32.Parse(commands[2])), Int32.Parse(commands[3])); break; } } //TeachUILogicManager.Instance.ShowFingerAnim(true); break; } case "SetNonFocus": { if (commands.Length > 4) { TeachUILogicManager.Instance.SetTeachUIFocus(Int32.Parse(commands[1]), LanguageData.GetContent(Int32.Parse(commands[2])), true, Int32.Parse(commands[3]), MogoUIManager.Instance.m_MainUI); TeachUILogicManager.Instance.ShowFingerAnim(true); } else { TeachUILogicManager.Instance.SetTeachUIFocus(Int32.Parse(commands[1]), LanguageData.GetContent(Int32.Parse(commands[2])), true, Int32.Parse(commands[3])); TeachUILogicManager.Instance.ShowFingerAnim(true); } break; } case "OpenBillboard": { MogoUIManager.Instance.ShowBillboardList(true); break; } case "CloseBillboard": { MogoUIManager.Instance.ShowBillboardList(false); break; } case "OpenUI": { if (commands.Length == 2) { var type = typeof(MainUIViewManager); var method = type.GetMethod("Show" + commands[1]); method.Invoke(MainUIViewManager.Instance, new object[] { true }); } else if (commands.Length == 3) { var type = typeof(MainUIViewManager); var method = type.GetMethod("Show" + commands[1]); method.Invoke(MainUIViewManager.Instance, new object[] { true, Int32.Parse(commands[2]) }); } else { MogoUIManager.Instance.ShowUI(true); } break; } case "CloseUI": { if (commands.Length == 2) { var type = typeof(MainUIViewManager); var method = type.GetMethod("Show" + commands[1]); method.Invoke(MainUIViewManager.Instance, new object[] { false }); } else if (commands.Length == 3) { var type = typeof(MainUIViewManager); var method = type.GetMethod("Show" + commands[1]); method.Invoke(MainUIViewManager.Instance, new object[] { false, Int32.Parse(commands[2]) }); } else { MogoUIManager.Instance.ShowUI(false); MogoUIManager.Instance.ShowBillboardList(false); } break; } case "AddPointer": { LoggerHelper.Debug("AddPointerToTarget"); Vector3 point = new Vector3(); MogoUtils.GetPointInTerrain(float.Parse(commands[1]), float.Parse(commands[2]), out point); MogoFXManager.Instance.AddPointerToTarget(MogoWorld.thePlayer.Transform.gameObject, MogoWorld.thePlayer.ID, point); break; } case "Sleep": { TimerHeap.AddTimer(UInt32.Parse(commands[1]), 0, () => { EventDispatcher.TriggerEvent <SignalEvents>(Events.CommandEvent.CommandEnd, SignalEvents.Sleep); }); break; } case "End": { //结束CG FinishCG(); break; } case "UnlockQueue": { MogoUIQueue.Instance.IsLocking = false; MogoUIQueue.Instance.Locked = false; MogoUIQueue.Instance.CheckQueue(); Debug.Log("Unlocking by StoryManager..................................."); break; } case "StartGuideUI": { Mogo.Util.LoggerHelper.Debug("Start GuideUI @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); TeachUIViewManager.Instance.PrepareShowTeachUI(); break; } case "ResetControlStick": { if (ControlStick.instance != null) { MogoWorld.thePlayer.Idle(); MogoWorld.thePlayer.motor.StopNav(); ControlStick.instance.Reset(); } else { MogoWorld.thePlayer.Idle(); MogoWorld.thePlayer.motor.StopNav(); } break; } case "Gear": { ClientEventData.TriggerGearEvent(Int32.Parse(commands[1])); break; } case "RemoveEntities": { MogoWorld.RemoveEntitiesPos(); break; } case "ResetEntities": { MogoWorld.ResetEntitiesPos(); break; } default: break; } }