void OnRespRoomList(Message msg) { ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false); msgRespRoomList resp = msgRespRoomList.deserialize(msg); // Room.Room.roomList.Clear(); //首先清空 for (int i = 0; i < resp.roomList.Count; i++) { Room.RoomData rd; rd.isFull = resp.roomList[i].isFull; rd.roomDes = resp.roomList[i].roomDes; rd.roomId = resp.roomList[i].roomId; rd.roomName = resp.roomList[i].roomName; rd.roomPersonCnt = resp.roomList[i].roomPersonCnt; rd.roomPwd = resp.roomList[i].roomPwd; rd.rule = resp.roomList [i].rule; Room.Room.roomList.Add(rd); } //刷新界面,如果正在显示。一般这条消息是显示房间列表的时候再请求的,所以一般会正在显示。请求的时候加loading onEventShowRoomList(null); }
public async void Play(double from, double to, ViewManagerEvent <LottieAnimationView, Dictionary <string, bool> > completion) { if (!LottiePlayer.IsAnimatedVisualLoaded) { var d = Window.Current.Dispatcher; _ = Task.Delay(100).ContinueWith(t => { _ = d.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { Play(from, to, completion); }); }); return; } _playback = LottiePlayer.PlayAsync(from, to, Loop).AsTask(); await _playback; if (completion != null && _playback.IsCompleted) { completion.Invoke(this, new Dictionary <string, bool> { { "isCancelled", _playback.IsCanceled || _playback.IsFaulted } }); } }
void OnRespOpenTalentslot(Message msg) { ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false); msgRespOpenTalentslot resp = msgRespOpenTalentslot.deserialize(msg); if (resp.result == msgRespOpenTalentslot.eOpenTalentslotResultType.OPEN_SUCCESS) { //开槽成功 //refresh ui //CommonUtil.Util.showDialog ("温馨提示","开槽成功,当前槽数为:"+resp.currentOpenedCnt); Account.setUserGold(resp.currentGold); Account.setUserDiamond(resp.currentDiamond); LobbyEvent.s_C2V_UpdateTalentForOpenSlot utfos; utfos.gold = resp.currentGold; utfos.diamond = resp.currentDiamond; utfos.ret = CommonDefine.eRespResultType.SUCCESS; utfos.currentTalentNum = resp.currentOpenedCnt; LobbyEvent.EM().InvokeEvent(LobbyEvent.EVENT.RESP_OPEN_TALENTSLOT, (object)utfos); } else if (resp.result == msgRespOpenTalentslot.eOpenTalentslotResultType.OPEN_FAIL_LESS_DIAMOND) { CommonUtil.Util.showDialog("温馨提示", "开槽失败,您的晶核不足,请充值"); } else if (resp.result == msgRespOpenTalentslot.eOpenTalentslotResultType.OPEN_FAIL_LESS_GOLG) { CommonUtil.Util.showDialog("温馨提示", "开槽失败,您的金币不足,请充值"); } else if (resp.result == msgRespOpenTalentslot.eOpenTalentslotResultType.OPEN_FAIL_MAX_SLOT) { CommonUtil.Util.showDialog("温馨提示", "您的天赋槽已全部打开!"); } }
//以下消息类似 void OnRespRankList(Message msg) { ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false); // msgRespRankList rankList = msgRespRankList.deserialize(msg); //此条有较大问题,后续优化 Lobby.Lobby.rankList.Clear(); for (int i = 0; i < rankList.rankList.Count; i++) { LobbyEvent.Rank rk; rk.headUrl = rankList.rankList[i].headUrl; rk.exp = rankList.rankList[i].exp; rk.name = rankList.rankList[i].name; rk.score = rankList.rankList[i].score; rk.userID = rankList.rankList[i].userID; rk.charm = rankList.rankList [i].charm; rk.diamond = rankList.rankList [i].diamond; rk.gold = rankList.rankList [i].gold; rk.win_rate = rankList.rankList [i].win_rate; rk.rst.scope = (LobbyEvent.RankScopeType.RANK_SCOPE_TYPE)rankList.scope; rk.rst.type = (LobbyEvent.RankScopeType.RANK_TYPE)rankList.type; Lobby.Lobby.rankList.Add(rk); } //由于这个消息的特殊性,可以不在此处刷新,需要的展示界面的时候再请求,刷新 LobbyEvent.RankScopeType rst; rst.scope = LobbyEvent.RankScopeType.RANK_SCOPE_TYPE.RANK_AREA; rst.type = LobbyEvent.RankScopeType.RANK_TYPE.RANK_GOLD; onEventShowRank((object)(rst)); //此为默认显示的榜单 }
//服务器列表,以此显示服务器列表,供用户选择服务器 void OnConnect(bool canLogin, Message msg) { if (!canLogin) { msgRespServerList resp = msgRespServerList.deserialize(msg); //选择服务器后需要调用,然后再去请求登陆到游戏(和自动选择模式相同) //ProtocolManager.getInstance().SelectServer(host,port); } else { //后续 自动登录 //第一次需要点击登录按钮 if (_autoLogin) { _autoLogin = false; //重新登陆 NowAccount nc = Account.getNowAccount(); loginServer(nc.userID, nc.openid, nc.pwd, nc.lastLoginType, nc.area); } else { ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false); } } }
void OnRespCreateRoom(Message msg) { ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false); msgRespCreateRoom resp = msgRespCreateRoom.deserialize(msg); if (resp.flag == 0) { CommonUtil.RoomRule roomRule = CommonUtil.RoomRule.deserialize(resp.rule); RoomEvent.sV2C_JoinRoom data; data.playerNum = roomRule.playerNum; data.gridLevel = roomRule.gridLevel; data.plazaID = 0; data.pwd = resp.roomPassword; data.roomId = resp.roomId; data.plazaName = ""; data.tagId = -1; onEventJoinRoom((object)data); } else { CommonUtil.Util.showDialog("系统提示", "创建房间失败,参数有误或不满足开房条件"); } }
//三方登陆响应 public void onThirdPartyLoginResult(object data) { AccountEvent.ThirdPartyLoginResult ret = (AccountEvent.ThirdPartyLoginResult)data; //设置nowaccount的 third Account.thirdOpenID = ret.openId; Account.thirdToken = ret.token; //登陆 msgLogin msg = new msgLogin(); msg.userID = 0; msg.area = 1; //用户所选服务器 msg.appVersion = CommonUtil.Util.getAppVer(); msg.channelID = CommonUtil.Util.getChanelId(); msg.deviceID = SystemInfo.deviceUniqueIdentifier; msg.ipAddr = 1111; msg.loginType = (msgLogin.eLoginType)_loginType; msg.netWorkType = 1; msg.osVersion = 10000; msg.password = "******"; // msg.openID = ret.openId; msg.token = ret.token; msg.nickName = ret.name; msg.head = ret.head; msg.sex = ret.sex; msg.expireTime = ret.expireTime; //.. etc. ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_LOGIN, msg, OnLoginSuccess); //显示加载,禁止点击 ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
public static ViewManagerEvent EM() { if (_instance == null) { _instance = new ViewManagerEvent(); } return(_instance); }
void OnGameStart(Message msg) { // ViewManagerEvent.sShowView data; data.fromView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW; data.toView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)data); }
// Use this for initialization void Start() { //启动动画结束后,切换到帐号登陆界面 ViewManagerEvent.sShowView data; data.fromView = ViewManagerEvent.VIEW_TYPE.START_VIEW; data.toView = ViewManagerEvent.VIEW_TYPE.ACCOUNT_VIEW; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)data); }
/// <summary> /// Sends a command to another service /// </summary> /// <param name="command"></param> /// <param name="info"></param> /// <param name="source"></param> /// <param name="target"></param> public void RaiseUICommand( string command, string info, string source, string target) { var newUIargs = new StateMachineEventArgs( command, info, StateMachineEventType.Command, source, target); ViewManagerEvent?.Invoke(this, newUIargs); }
public void onConnectServer(object data) { bool selectServer = (bool)data; ProtocolManager.getInstance().Start(selectServer, OnError, OnDisconnect, OnConnect); //此处只能调用一次,位置是在登陆界面显示的时候首次连接服务器 ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
/// <summary> /// Method to raise a view manager event for logging, etc /// </summary> /// <param name="name"></param> /// <param name="info"></param> /// <param name="eventType"></param> private void RaiseViewManagerEvent(string name, string info, StateMachineEventType eventType = StateMachineEventType.System) { var newVMargs = new StateMachineEventArgs(name, $"View manager event: {info}", eventType, "View Manager"); // Raise event only, if there are subscribers! ViewManagerEvent?.Invoke(this, newVMargs); }
public void onEventReqUpdateEmail(object data) { LobbyEvent.sV2C_ReqUpdateEmail re = (LobbyEvent.sV2C_ReqUpdateEmail)data; msgReqUpdateEmail msg = new msgReqUpdateEmail(); msg.type = re.type; msg.awardEmailId = re.id; ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_UPDATE_EMAIL, msg, OnRespUpdateEmail); ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
public void onEventReqFeedback(object data) { LobbyEvent.sV2C_Feedback fb = (LobbyEvent.sV2C_Feedback)data; msgReqFeedback msg = new msgReqFeedback(); msg.type = fb.type; msg.content = fb.content; ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_FEEDBACK, msg, OnRespFeedback); ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
public static void showDialog(string title, string content) { ViewManagerEvent.s_ShowDialog d; d.callBack = null; d.hasCancel = false; d.hasClose = true; d.hasOk = false; d.tip = title; d.tip = content; d.type = CommonDefine.eDialogEventType.SIMPLE; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, (object)d); }
void onError(object data) { ViewManagerEvent.s_ShowDialog d; d.callBack = onClickDialogBtn; d.hasCancel = true; d.hasClose = false; d.hasOk = true; d.tip = "系统提示"; d.tip = "您的网络存在异常,请检查网络设置~"; d.type = CommonDefine.eDialogEventType.NETWORK_ERROR; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, (object)d); }
public void onEventReqOpenTalentslot(object data) { LobbyEvent.sV2C_OpenTalentslot ot = (LobbyEvent.sV2C_OpenTalentslot)data; //需要判断是否有足够的金币或者钻石开槽,避免多余的网络请求 msgReqOpenTalentslot msg = new msgReqOpenTalentslot(); msg.game = GameType.GAME_LIANQI; msg.openBy = ot.type; ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_OPENTALENTSLOT, msg, OnRespOpenTalentslot); ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
void OnRespLeaveRoom(Message msg) { msgRespLeaveRoom resp = msgRespLeaveRoom.deserialize(msg); if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_CANT_LEAVE) { //不能离开,目前是游戏不能离开,此消息在游戏中的时候离开会收到 } else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_ESCAPE) { //逃跑,目前不支持 } else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_KICK) { //被t了,目前不支持 } else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_NORMAL) { //正常离开,切到大厅界面 if (Room.Room.roomType == CommonDefine.eCreateRoomType.ROOM_PLAZA || Room.Room.roomType == CommonDefine.eCreateRoomType.ROOM_CLASSIC_PLAZA) { ViewManagerEvent.sShowView s; s.fromView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW; s.toView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)s); } else { //此处为离开队伍或者离开房间,对于自己而言,这就是解散同样的处理 RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.UPDATE_DISSOLVE_ROOM, null); } } else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_NOT_IN_ROOM) { //不在房间中,直接切到大厅界面 ViewManagerEvent.sShowView s; s.fromView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW; s.toView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)s); } else if (resp.type == msgRespLeaveRoom.LEAVE_TYPE.LEAVE_DISSOLVE) { // 房间解散 //切换面板 RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.UPDATE_DISSOLVE_ROOM, null); } Room.Room.reset(); }
void onDisconnect(object data) { ViewManagerEvent.s_ShowDialog d; d.callBack = onClickDialogBtn; d.hasCancel = true; d.hasClose = false; d.hasOk = true; d.tip = "系统提示"; d.tip = "您已经与服务器断开连接,是否重连?"; d.type = CommonDefine.eDialogEventType.NETWORK_DISCONNECT; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, (object)d); // 自动重连模式 }
void OnRespFeedback(Message msg) { ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false); msgReqFeedback resp = msgReqFeedback.deserialize(msg); if (resp.type == CommonDefine.eFeedbackType.DANMU) { //显示弹幕 } else { CommonUtil.Util.showDialog("温馨提示", resp.content); } }
void onEventGetRoomList(object data) { SelfData self = Account.getSelfData(); RoomEvent.sV2C_GetRoomList getRoom = (RoomEvent.sV2C_GetRoomList)data; msgReqRoomList rl = new msgReqRoomList(); rl.areaID = self.area; //原则上来说,以后这两个数据需要传过来 rl.begin = getRoom.currentPage * getRoom.perCnt; rl.reqCnt = getRoom.perCnt; //所有 rl.game = GameType.GAME_LIANQI; ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REQ_ROOMLIST, rl, OnRespRoomList); ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
//------------------------------------以下是界面消息-------------------------------------------- void onEventCreateRoom(object data) { RoomEvent.sV2C_CreateRoom roomData = (RoomEvent.sV2C_CreateRoom)data; msgReqCreateRoom cr = new msgReqCreateRoom(); cr.game = GameType.GAME_LIANQI; cr.roomType = roomData.roomType; cr.baseScore = roomData.baseScore; cr.minScore = roomData.minScore; cr.maxScore = roomData.maxScore; cr.roomName = Account.getSelfData().name; cr.roomPassword = roomData.roomPassword; cr.rule = roomData.rule; ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REQ_CREATEROOM, cr, OnRespCreateRoom); ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
// Use this for initialization void Start() { ViewManagerEvent.EM().AddEvent(ViewManagerEvent.EVENT.SHOW_VIEW, onShowView); ViewManagerEvent.EM().AddEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, onShowDialog); ViewManagerEvent.EM().AddEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, onShowLoadingAni); ViewManagerEvent.EM().AddEvent(ViewManagerEvent.EVENT.SHOW_SCENE, onShowScene); initViewMap(); hideAllView(); if (!_isChangeScene) { showViewFromTo(ViewManagerEvent.VIEW_TYPE.NONE_VIEW, ViewManagerEvent.VIEW_TYPE.START_VIEW); } else { _isChangeScene = false; showViewFromTo(ViewManagerEvent.VIEW_TYPE.ACCOUNT_VIEW, ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW); } }
void onEventLeaveRoom(object data) { bool mustLeave = (bool)data; if (mustLeave) { Room.Room.reset(); ViewManagerEvent.sShowView s; s.fromView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW; s.toView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)s); RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.UPDATE_DISSOLVE_ROOM, null); } else { msgReqLeaveRoom lr = new msgReqLeaveRoom(); lr.game = GameType.GAME_LIANQI; ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REQ_LEAVEROOM, lr, OnRespLeaveRoom); } }
void onEventJoinRoom(object data) { RoomEvent.sV2C_JoinRoom roomData = (RoomEvent.sV2C_JoinRoom)data; msgReqJoinRoom jr = new msgReqJoinRoom(); jr.game = GameType.GAME_LIANQI; jr.playerNum = roomData.playerNum; jr.gridLevel = roomData.gridLevel; jr.pwd = roomData.pwd; //非用户创建无密码 jr.plazaID = roomData.plazaID; //根据plazalist得到,界面也是根据plazalisy生成 jr.roomId = roomData.roomId; //非用户创建房间填0,即通过各种模式直接进入游戏的 //如果plazaid和roomid同时为0 则认为是经典快速开始模式 if (roomData.plazaID == 0 && roomData.roomId == 0) { //需要从plazalist查找plazaid for (int i = 0; i < Lobby.Lobby.plazaList.Count; i++) { CommonUtil.RoomRule roomRule = CommonUtil.RoomRule.deserialize(Lobby.Lobby.plazaList[i].rule); if (Lobby.Lobby.plazaList[i].roomType == (int)CommonDefine.eCreateRoomType.ROOM_CLASSIC_PLAZA && roomRule.playerNum == roomData.playerNum && roomRule.gridLevel == roomData.gridLevel) { jr.plazaID = Lobby.Lobby.plazaList[i].plazaid; jr.roomId = 0; } } } //保存下如果是场模式的信息 Room.Room.setPlazaData(roomData.plazaName, roomData.tagId); ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REQ_JOINROOM, jr, OnRespJoinRoom); ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
private void loginServer(int userId, string openId, string pwd, NowAccount.eLoginType loginType, int area) { msgLogin msg = new msgLogin(); msg.userID = userId; msg.area = area; //用户所选服务器 msg.appVersion = CommonUtil.Util.getAppVer(); msg.channelID = CommonUtil.Util.getChanelId(); msg.deviceID = SystemInfo.deviceUniqueIdentifier; msg.ipAddr = 1111; msg.loginType = (msgLogin.eLoginType)loginType; msg.netWorkType = 1; msg.osVersion = 10000; msg.password = pwd; // msg.openID = openId; //.. etc. ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_LOGIN, msg, OnLoginSuccess); //显示加载,禁止点击 ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); }
public void onEventShowRank(object data) { LobbyEvent.RankScopeType rst = (LobbyEvent.RankScopeType)data; rst.scope = LobbyEvent.RankScopeType.RANK_SCOPE_TYPE.RANK_AREA; rst.type = LobbyEvent.RankScopeType.RANK_TYPE.RANK_GOLD; List <LobbyEvent.Rank> rankList = new List <LobbyEvent.Rank>(); for (int i = 0; i < Lobby.Lobby.rankList.Count; i++) { if (rst.type == Lobby.Lobby.rankList [i].rst.type && rst.scope == Lobby.Lobby.rankList [i].rst.scope) { rankList.Add(Lobby.Lobby.rankList [i]); } } if (rankList.Count == 0) { //说明还没有请求过,刷新一次 msgReqRankList rank = new msgReqRankList(); rank.game = GameType.GAME_LIANQI; rank.areaID = Account.getSelfData().area; rank.rankNum = 50; // 只取前50 rank.scope = msgReqRankList.RANK_SCOPE_TYPE.RANK_AREA; //区排行 rank.type = msgReqRankList.RANK_TYPE.RANK_GOLD; //财富排行 ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_RANK_LIST, rank, OnRespRankList); ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true); } else { LobbyEvent.EM().InvokeEvent(LobbyEvent.EVENT.UPDATE_RANK, (object)(rankList)); } }
public void onShowUpdateEmailResult(object data) { LobbyEvent.sV2C_ReqUpdateEmail re = (LobbyEvent.sV2C_ReqUpdateEmail)data; int index = -1; for (int i = 0; i < _emailList.Count; i++) { if (_emailList [i].getEmailID() == re.id) { index = i; break; } } if (index == -1) { return; } if (re.type == CommonDefine.eUpdateEmailType.READ) { //设置已读 _emailList [index].updateHasRead(); } else if (re.type == CommonDefine.eUpdateEmailType.DEL) { //删除 Destroy(_emailList [index].gameObject); _emailList.RemoveAt(index); //需要刷新整个界面 //将默认选择移动到第一个,设置当前选择 updateDefaultSelect(); } else if (re.type == CommonDefine.eUpdateEmailType.GET_AWARD) { //恭喜获得xx 提示 ViewManagerEvent.s_ShowDialog d; d.callBack = onClickDialogBtn; d.hasCancel = false; d.hasClose = true; d.hasOk = false; d.tip = "温馨提示"; CommonUtil.EmailContent content = _emailList [index].getContent(); if (content.type == CommonUtil.EmailContent.AWARD_TYPE.GOLD) { d.tip = "恭喜获得" + content.awardCnt + "积分!祝您游戏愉快~"; } else if (_emailList [index].getContent().type == CommonUtil.EmailContent.AWARD_TYPE.PROP) { d.tip = "恭喜获得永久皮肤" + "吃遍天下" + "!祝您游戏愉快~"; } d.type = CommonDefine.eDialogEventType.LOBBY_EMAIL_GET_AWARD_RESULT; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_DIALOG, (object)d); _emailList [index].getContent().hasGottenAward = true; //更新 _awardBtn.interactable = false; Text txt = _awardBtn.GetComponentInChildren <Text> (); txt.text = "已领取"; //all btn Invoke("checkIsGettingAllAward", 0.001f); } updateReadUnRead(); }
void OnRespJoinRoom(Message msg) { ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, false); msgRespJoinRoom resp = msgRespJoinRoom.deserialize(msg); //此处需要根据各种响应值,来给出友好提示 string tip = "加入房间失败"; //RESP_JOINROOM_FLAG if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_SUCCESS || resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINGROOM_ALREADY_IN_ROOM) { //规则应该一定不会为空的 if (resp.rule == null || resp.rule.Length == 0) { // return; } if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINGROOM_ALREADY_IN_ROOM) { //原则上此处可以直接进入房间,也可以是弹窗提示用户是否重新进入房间 // } // 设置相关数据 Room.Room.setRoomData(resp.roomId, resp.levelId, resp.plazaid, resp.roomType, resp.owner, resp.rule, resp.baseScore); Room.Room.isRelink = resp.isRelink; //这里需要判断是哪种类型的房间 if (Room.Room.roomType == CommonDefine.eCreateRoomType.ROOM_ROOM) { msgNotifyEnterRoomFinish efmsg = new msgNotifyEnterRoomFinish(); efmsg.isRelink = Room.Room.isRelink; ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_ENTER_ROOM_FINISH, efmsg); if (!Room.Room.isRelink) { //刷新房间规则显示 RoomEvent.sC2V_RoomRule rr; rr.playerNum = Room.Room.roomRule.playerNum; rr.gameTime = Room.Room.roomRule.gameTime; rr.gridLevel = Room.Room.roomRule.gridLevel; rr.rule = Room.Room.roomRule.rule; rr.lmtRound = Room.Room.roomRule.lmtRound; rr.lmtTurnTime = Room.Room.roomRule.lmtTurnTime; rr.roomLevel = resp.levelId; rr.roomID = resp.roomId; rr.plazaName = Room.Room.plazaName; if (Room.Room.plazaid != 0) { LobbyEvent.Plaza plaza = getPlazaById(Room.Room.plazaid); rr.star = plaza.star; } else { rr.star = 0; } rr.tag = Room.Room.tagId; rr.type = Room.Room.roomType; RoomEvent.EM().InvokeEvent(RoomEvent.EVENT.UPDATE_ROOMRULE, (object)rr); } else { ////// ViewManagerEvent.sShowView data; data.fromView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW; data.toView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)data); } } else if (Room.Room.roomType == CommonDefine.eCreateRoomType.ROOM_TEAM) { } else { //另外需要显示房间规则相关的信息在房间某个位置 //进入房间成功,切换到游戏场景,这里应为主动操作,不需要事件通知请访问GameController来切换 //或者这里直接切换也行 //也可以事件通知,为了统一起见 ViewManagerEvent.sShowView data; data.fromView = ViewManagerEvent.VIEW_TYPE.LOBBY_VIEW; data.toView = ViewManagerEvent.VIEW_TYPE.GAME_VIEW; ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_VIEW, (object)data); } //结束处理 return; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINGROOM_FAIL_ROOM_NOT_EXIST) { tip = "房间不存在,请重试"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_ACCOUNT_ERR) { tip = "加入失败,用户异常"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_FAIL_NO_FREE_ROOM) { tip = "加入失败,没有可用的房间"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_FIAL_SYSERR) { tip = "加入失败,系统错误"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_GOLD_LESS) { tip = "加入失败,您的积分不足,请充值"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_GOLD_MORE) { tip = "加入失败,您太有钱了,请到其他模式游戏"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_LEVEL_LESS) { tip = "加入失败,您的级别太高了"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_LEVEL_MORE) { tip = "加入失败,您的级别太低了"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_PLAZA_ERR) { tip = "加入失败,参数错误"; } else if (resp.flag == msgRespJoinRoom.RESP_JOINROOM_FLAG.JOINROOM_PWD_ERR) { tip = "加入失败,密码错误"; } CommonUtil.Util.showDialog("系统提示", tip); }