public IEnumerator ApplyPointRankingData(Coroutine coroutine, ActivityCharacterProxy _this, ApplyPointRankingDataInMessage msg) { MieShiManager.GetPointRankingData(SceneExtension.GetServerLogicId(msg.Request.ServerId), msg.Request.ActivityId, _this.CharacterId, msg.Response); msg.Reply(); yield break; }
private void TransitionToMainMenu() { if (!SceneExtension.IsThisSceneActive(SceneExtension.MenuUiSceneName)) { StartCoroutine(SceneExtension.ForceMenuSceneSequence(true)); } }
//开始创建副本 public IEnumerator NotifyCreateChangeSceneCoroutine(Coroutine co, ObjPlayer Character, int scneneId, int x, int y, AsyncReturnValue <ErrorCodes> error) { //GM命令切换场景,根据合服ID进行 var serverLogicId = SceneExtension.GetServerLogicId(Character.ServerId); var sceneInfo = new ChangeSceneInfo { SceneId = scneneId, ServerId = serverLogicId, SceneGuid = 0, Type = (int)eScnenChangeType.Position }; sceneInfo.Guids.Add(Character.ObjId); sceneInfo.Pos = new SceneParam(); sceneInfo.Pos.Param.Add(x); sceneInfo.Pos.Param.Add(y); Character.BeginChangeScene(); var msgChgScene = SceneServer.Instance.SceneAgent.SBChangeSceneByTeam(Character.ObjId, sceneInfo); yield return(msgChgScene.SendAndWaitUntilDone(co, TimeSpan.FromSeconds(30))); }
public void CheckAvgLevelBuff(SceneManager _this, ObjPlayer objPlayer) { objPlayer.DeleteBuff(319, eCleanBuffType.TimeOver); var serverId = SceneExtension.GetServerLogicId(objPlayer.ServerId); var avgLevel = _this.GetAvgLevel(serverId); if (avgLevel <= 150) { return; } var playerLevel = objPlayer.GetLevel(); if (playerLevel < _this.minLevel) { return; } if (playerLevel + _this.minDev > avgLevel) { return; } var a = (_this.maxExpMul - 2.0f) / (_this.maxDev - _this.minDev); var b = _this.maxExpMul - a * _this.maxDev; var buffLevel = ((avgLevel - playerLevel) * a + b); if (buffLevel > _this.maxExpMul) { buffLevel = _this.maxExpMul; } objPlayer.AddBuff(319, (int)buffLevel * 100, objPlayer); }
public IEnumerator ApplyMieshiHeroLogData(Coroutine coroutine, ActivityCharacterProxy _this, ApplyMieshiHeroLogDataInMessage msg) { MieShiManager.ApplyMieshiHeroLogData(SceneExtension.GetServerLogicId(msg.Request.ServerId), msg.Response); msg.Reply(); //var temp = DateTime.FromBinary((long)msg.Response.Datas[0].actiTime); yield break; }
public void ButtonPressed(bool multiScene = false) { if (!SceneExtension.IsThisSceneActive(SceneExtension.MenuUiSceneName)) { return; } StartCoroutine(multiScene ? SceneExtension.LoadMultiSceneSequence(levelName, true) : SceneExtension.LoadSingleSceneSequence(levelName, true)); }
public static void ReturnToMenu(MenuPageType pageToLoad) { //Debug.Log("[GM]: ReturnToMenu"); SceneExtension.TrySwitchToScene(SceneExtension.MenuUiSceneName); SceneExtension.UnloadAllScenesExcept(SceneExtension.MenuUiSceneName); FindObjectOfType <MenuManager>().Reset(); var controller = FindObjectOfType <MenuPageController>(); controller.TurnMenuPageOff(controller.GetCurrentMenuPageType(), pageToLoad); }
private void Initialize() { Log("Initialize"); #if UNITY_EDITOR AudioController.Instance.PlayAudio(AudioType.St01, true, 1f); #else AudioController.Instance.PlayAudio(AudioType.St01); StartCoroutine(SceneExtension.ForceMenuSceneSequence()); #endif }
public void OnResume() { if (!SceneExtension.TrySwitchToScene(lastSceneBuildIndex)) { return; } _inputController.OnCancelEvent -= OnCancelEventCalled; _controller.TurnMenuPageOff(_controller.GetCurrentMenuPageType()); _isPaused = false; }
public IEnumerator ApplyActivityState(Coroutine co, ActivityCharacterProxy _this, ApplyActivityStateInMessage msg) { var state = WorldBossManager.GetState(SceneExtension.GetServerLogicId(msg.Request.ServerId)); msg.Response.Data.Add((int)eActivity.WorldBoss, (int)state); msg.Reply(); yield break; }
public IEnumerator ApplyPortraitData(Coroutine coroutine, ActivityCharacterProxy _this, ApplyPortraitDataInMessage msg) { PlayerInfoMsg data = new PlayerInfoMsg(); ErrorCodes result = MieShiManager.ApplyPortraitData(SceneExtension.GetServerLogicId(msg.Request.ServerId), ref data); msg.Response = data; msg.Reply((int)result); yield break; }
private void Start() { ControllerSetup(); _menuUiCamera = GetComponentInChildren <Camera>(); isMainMenuActive = SceneExtension.IsThisSceneActive(SceneExtension.MenuUiSceneName); SceneExtension.FinishSceneLoadEvent += OnFinishLoadScene; SceneExtension.StartSceneLoadEvent += OnStartLoadScene; ApplyIniSettings(); _isPaused = false; }
public void ReturnToMenu() { if (isMainMenuActive) { return; } GameManager.HardReset(); StartCoroutine(SceneExtension.ForceMenuSceneSequence( true, true, true, lastSceneBuildIndex)); isMainMenuActive = true; }
public void OnPause() { lastSceneBuildIndex = SceneExtension.GetCurrentSceneBuildIndex(); if (!SceneExtension.TrySwitchToScene(SceneExtension.MenuUiSceneName)) { return; } _inputController.OnCancelEvent += OnCancelEventCalled; BackToPreviousPage(); _isPaused = true; }
//开始创建副本 public IEnumerator AskEnterDungeonByTeamCoroutine(Coroutine co, List <ulong> characters, int serverId, FubenRecord tbFuben, ulong sceneGuid) { PlayerLog.WriteLog((int)LogType.QueueMessage, "NotifyCreateChangeSceneCoroutine Team={0}", characters.GetDataString()); //先把进入副本应扣除的材料,扣除掉 var co1 = CoroutineFactory.NewSubroutine(DeleteDungeonMaterialCoroutine, co, characters, tbFuben); if (co1.MoveNext()) { yield return(co1); } //组队进入副本时,根据合服ID进行 var serverLogicId = SceneExtension.GetServerLogicId(serverId); var sceneInfo = new ChangeSceneInfo { SceneId = tbFuben.SceneId, ServerId = serverLogicId, SceneGuid = sceneGuid, Type = (int)eScnenChangeType.EnterDungeon }; sceneInfo.Guids.AddRange(characters); if (sceneInfo.Pos == null) { var param = new SceneParam(); sceneInfo.Pos = param; if (tbFuben.OpenTime[0] != -1) { int hour; int min; if (Utils.GetDungeonOpenTime(tbFuben, out hour, out min)) { param.Param.Add(hour); param.Param.Add(min); } else { Logger.Warn("NotifyCreateChangeSceneCoroutine can't enter scene {0}", tbFuben.SceneId); yield break; } } } var msgChgScene = TeamServer.Instance.SceneAgent.SBChangeSceneByTeam(characters[0], sceneInfo); yield return(msgChgScene.SendAndWaitUntilDone(co, TimeSpan.FromSeconds(30))); }
//战斗结束 public ErrorCodes BattleOver(int serverId, int occupantId) { serverId = SceneExtension.GetServerLogicId(serverId); AllianceWar war; if (!AllianceWarManager.WarDatas.TryGetValue(serverId, out war)) { return(ErrorCodes.ServerID); } war.BattleOver(occupantId); return(ErrorCodes.OK); }
/// <summary> /// 团购物品发出去后,给各个服务器发送通知 /// 对于最高档的物品,通知会发给所有服务器的所有人,否则,就只发给中奖者所在的服务器的所有人 /// </summary> /// <param name="co"></param> /// <param name="_this"></param> /// <returns></returns> private IEnumerator SendChatNotify(Coroutine co, GroupShopOne _this) { var strs = new List <string> { _this.mDbData.LuckyName, _this.mDbData.LuckyCount.ToString(), Utils.AddItemId(_this.mDbData.ItemData.ItemId) }; var exData = new List <int>(_this.mDbData.ItemData.Exdata); var content = Utils.WrapDictionaryId(300409, strs, exData); var chatAgent = TeamServer.Instance.ChatAgent; if (GroupShop.TopItems.Contains(_this.mDbData.GroupShopId)) { //最高档的奖励,发所有服务器的所有人 //缓存一下这条消息 var notifys = GroupShop.DbData.Notifys.Items; if (notifys.Count > 20) { notifys.RemoveAt(0); } notifys.Add(content); //发送给所有服务器的所有人 var serverIds = new List <int>(); Table.ForeachServerName(r => { var serverId = r.LogicID; if (!serverIds.Contains(serverId)) { serverIds.Add(serverId); } return(true); }); foreach (var id in serverIds) { chatAgent.BroadcastWorldMessage((uint)id, (int)eChatChannel.WishingGroup, 0, string.Empty, new ChatMessageContent { Content = content }); yield return(TeamServerControl.Instance.Wait(co, TimeSpan.FromSeconds(3))); } } else { //只发本服务器的人 var serverId = SceneExtension.GetServerLogicId(_this.mDbData.LuckyServerId); chatAgent.BroadcastWorldMessage((uint)serverId, (int)eChatChannel.WishingGroup, 0, string.Empty, new ChatMessageContent { Content = content }); } }
public int ApplyStoreInfo(int serverId, List <StoneItem> info) { var logicId = SceneExtension.GetServerLogicId(serverId); var mgr = GetBlackStoreManager(logicId); if (mgr == null) { return((int)ErrorCodes.Unknow); } var result = mgr.ApplyStoreInfo(ref info); return(result); }
public int GetStoreItemCount(int serverId, int storeId, ref int itemCount) { var logicId = SceneExtension.GetServerLogicId(serverId); var mgr = GetBlackStoreManager(logicId); if (mgr == null) { return((int)ErrorCodes.Unknow); } var result = mgr.GetStoreItemCount(storeId, ref itemCount); return(result); }
public void PlayerLeave(ulong characterId) { var alliance = ServerAllianceManager.GetAllianceByCharacterId(characterId); if (alliance == null) { Logger.Error("In PlayerEnterSuccess(). alliance == null! characterId = {0}", characterId); return; } var serverId = alliance.ServerId; serverId = SceneExtension.GetServerLogicId(serverId); var war = AllianceWarManager.WarDatas[serverId]; war.PlayerLeave(characterId, alliance.AllianceId); }
public void OnMouseDrag() { if (state.CurrentState == State.DISABLED || state.CurrentState == State.READY) { return; } if (Input.touchCount > 1) { return; } if (SceneExtension.IsAnyTouchOverUI()) { return; // Ignore if touch is over any UI element } //Debug.Log("DRAG " + gameObject.name + " inputPos: " + Input.mousePosition + "st: " + state.CurrentState.ToString()); if (state.CurrentState == State.WAITING_TO_DRAG || state.CurrentState == State.DRAGGING) { Vector3 vpStart = Camera.main.ScreenToViewportPoint(inputStartPosition); Vector3 vpNow = Camera.main.ScreenToViewportPoint(Input.mousePosition); if ((vpNow - vpStart).magnitude > MOVE_DIST) { movingStartLocalPos = transform.localPosition; movingVelocity = Vector3.zero; if (VERTICAL_MOVEMENT_ENABLED && Mathf.Abs(vpNow.x - vpStart.x) < VERTICAL_MOVEMENT_WIDTH_TOLERANCE) { state.SetState(State.MOVING_VERTICAL); } else { state.SetState(State.MOVING_IN_PLANE); } } } if (state.CurrentState == State.MOVING_IN_PLANE) { // Raycast and set new position UpdateMoveInPlane(); } else if (state.CurrentState == State.MOVING_VERTICAL) { // Raycast and set new position UpdateMoveInVertical(); } }
public int ConsumeStoreItem(int serverId, int storeId, int consumeCount) { var logicId = SceneExtension.GetServerLogicId(serverId); var mgr = GetBlackStoreManager(logicId); if (mgr == null) { return((int)ErrorCodes.Unknow); } var result = mgr.ConsumeStoreItem(storeId, consumeCount); if (result == (int)ErrorCodes.OK) { CoroutineFactory.NewCoroutine(mgr.FlushAll).MoveNext(); } return(result); }
private void OnFinishLoadScene(bool b1, bool b2) { isMainMenuActive = SceneExtension.IsThisSceneActive(SceneExtension.MenuUiSceneName); if (isMainMenuActive) { BackToPreviousPage(); _eventSystem.SetSelectedGameObject(mainPanelSelectedObj.gameObject); mainPanelSelectedObj.OnSelect(null); } else { _eventSystem.SetSelectedGameObject(pausePanelSelectedObj.gameObject); pausePanelSelectedObj.OnSelect(null); } _menuUiCamera.gameObject.SetActive(isMainMenuActive); isSceneTransitioning = false; }
public void OnMouseUp() { if (state.CurrentState == State.DISABLED || state.CurrentState == State.READY) { return; } if (state.CurrentState >= State.TWO_FINGERS) { return; } if (SceneExtension.IsAnyTouchOverUI()) { return; // Ignore if touch is over any UI element } Debug.Log("furniture UP " + gameObject.name + " st:" + state.ToString()); if (state.CurrentState == State.WAITING_TO_DRAG) { // TAPPED if (wasSelectedBefore) { // unselect if (worldObjects != null) { worldObjects.SelectedObject = null; } } else { // keep it selected } } else if (state.CurrentState == State.MOVING_IN_PLANE) { // was moving in plane } else if (state.CurrentState == State.MOVING_VERTICAL) { // was moving in vertical } // Stop tapping/moving state.SetState(State.READY); }
public void OnMouseDown() { //Debug.Log("DOWN PRE First finger " + gameObject.name); if (state.CurrentState == State.DISABLED) { return; } if (Input.touchCount > 1) { return; } if (SceneExtension.IsAnyTouchOverUI()) { return; // Ignore if touch is over any UI element } Debug.Log("DOWN First finger " + gameObject.name); if (state.CurrentState == State.READY) { // FIRST FINGER if (worldObjects != null) { wasSelectedBefore = (worldObjects.SelectedObject == gameObject); // Select it worldObjects.SelectedObject = gameObject; } else { wasSelectedBefore = true; } state.SetState(State.WAITING_TO_DRAG); inputStartTime = Time.time; inputStartPosition = Input.mousePosition; firstFingerId = -1; Debug.Log("furniture DOWN touches:" + Input.touchCount); if (Input.touchCount > 0) { Touch touch = Input.touches[0]; Debug.Log("furniture DOWN touch id:" + touch.fingerId); firstFingerId = touch.fingerId; } } }
public ErrorCodes AllianceWarBid(ulong guid, int value) { var alliance = ServerAllianceManager.GetAllianceByCharacterId(guid); if (alliance == null) { return(ErrorCodes.Error_CharacterNoAlliance); } var allianceId = alliance.AllianceId; var serverId = alliance.ServerId; var logicServerId = SceneExtension.GetServerLogicId(serverId); var allianceManager = ServerAllianceManager.GetAllianceByServer(logicServerId); if (allianceManager == null) { return(ErrorCodes.Error_AllianceState); } var dbAlliance = allianceManager.GetServerData(serverId); if (dbAlliance == null) { return(ErrorCodes.Error_AllianceState); } var dbAllianceNew = allianceManager.GetServerData(logicServerId); if (dbAllianceNew == null) { return(ErrorCodes.Error_AllianceState); } if (allianceId == dbAllianceNew.Occupant) { return(ErrorCodes.Error_OccupantNoNeedBid); } var bidDatas = dbAlliance.BidDatas; int price; bidDatas.TryGetValue(allianceId, out price); price += value; bidDatas[allianceId] = price; return(ErrorCodes.OK); }
private void TryModifyServerScenes(int serverId, int sceneId) { serverId = SceneExtension.GetServerLogicId(serverId); Dictionary <int, int> scenes; if (!SpeMonsterManager.ServerValidScenes.TryGetValue(serverId, out scenes)) { scenes = new Dictionary <int, int>(); SpeMonsterManager.ServerValidScenes.Add(serverId, scenes); } if (scenes.ContainsKey(sceneId)) { return; } scenes.Add(sceneId, 0); if (SpeMonsterManager.SaveTrigger == null) { SpeMonsterManager.SaveTrigger = ActivityServerControl.Timer.CreateTrigger(DateTime.Now.AddMinutes(1), Save); } }
//开始创建副本 private static IEnumerator NotifyCreateChangeSceneCoroutine(Coroutine co, FightQueueScene _this, List <ulong> characters, int serverId) { //排队创建场景时,根据合服ID进行 var serverLogicId = SceneExtension.GetServerLogicId(serverId); PlayerLog.WriteLog((int)LogType.QueueMessage, "NotifyCreateChangeSceneCoroutine Team={0}", characters.GetDataString()); var sceneInfo = new ChangeSceneInfo { SceneId = -1, ServerId = serverLogicId, SceneGuid = _this.mSceneGuid, Type = (int)eScnenChangeType.EnterDungeon }; sceneInfo.Guids.AddRange(characters); var msgChgScene = TeamServer.Instance.SceneAgent.SBChangeSceneByTeam(characters[0], sceneInfo); yield return(msgChgScene.SendAndWaitUntilDone(co)); if (msgChgScene.State != MessageState.Reply) { yield break; } if (msgChgScene.Response == 0) { foreach (var characterGuid in characters) { PlayerLog.WriteLog((int)LogType.BattleLog, "SSCharacterEnterBattle Faild c={0},s={1}", characterGuid, _this.mSceneGuid); QueueTeamManager.LeaveScene(characterGuid); QueueSceneManager.LeaveScene(characterGuid, _this.mSceneGuid); } } }
// public void BidOver(AllianceWar _this) { var am = ServerAllianceManager.GetAllianceByServer(_this.ServerId); if (am == null) { Logger.Error("StartActivity not find GetAllianceByServer!server={0},", _this.ServerId); return; } DBServerAllianceData data; if (!am.mDBData.TryGetValue(_this.ServerId, out data)) { Logger.Error("In BidOver() can't find data!"); return; } am.BidOver(); var msgData = new AllianceWarChallengerData(); foreach (var id in data.Challengers) { var allliance = ServerAllianceManager.GetAllianceById(id); if (allliance == null) { Logger.Error("In BidOver(). alliance == null!! id = {0}", id); continue; } msgData.ChallengerId.Add(id); msgData.ChallengerName.Add(allliance.Name); } _this.SetStatus((int)eAllianceWarState.WaitEnter); var sId = SceneExtension.GetServerLogicId(_this.ServerId); TeamServer.Instance.TeamAgent.NotifyAllianceWarChallengerData((uint)sId, msgData); PlayerLog.WriteLog((ulong)LogType.AllianceWar, "BidOver(), ServerId = {0}, Challengers = {1}", _this.ServerId, data.Challengers.GetDataString()); }
private IEnumerator Transition() { if (sceneToLoad < 0) { yield break; } DontDestroyOnLoad(gameObject); var buildIndex = SceneExtension.GetCurrentSceneBuildIndex(); //FindObjectOfType<PlayerController>().enabled = false; yield return(SceneExtension.LoadMultiSceneWithBuildIndexSequence(sceneToLoad, true)); //var player = FindObjectOfType<PlayerController>(); //var cam = FindObjectOfType<PixelPerfectCamera>(); //player.enabled = false; var otherPortal = GetOtherScenePortal(buildIndex); //UpdatePlayerSpawnPosition(otherPortal, player.gameObject, cam.gameObject); //player.enabled = true; Destroy(gameObject); }