public bool GotoGuildFire(params object[] args) { if (!SysConfigManager.GetInstance().CheckSysHasOpened(GameConst.SYS_OPEN_GUILD_FIRE, true)) { return(false); } if (!ActivityHelper.IsActivityOpen(GameConst.SYS_OPEN_GUILD_FIRE, true)) { return(false); } if (!CheckSysDownloaded(GameConst.SYS_OPEN_GUILD_FIRE)) { return(false); } if (LocalPlayerManager.Instance.GuildID > 0) { InstanceHelper.EnterGuildManor(); } else { UIManager.GetInstance().ShowSysWindow("UIGuildWindow"); } return(true); }
/// <summary> /// 检查包括活动在内所有系统的开启 /// </summary> private void CheckSysOpenCondition() { bool all_inited = true; foreach (var recv in mWaitNetMsg.Values) { if (recv == false) { all_inited = false; break; } } if (all_inited) { var db_sys_config = DBManager.GetInstance().GetDB <DBSysConfig>(); foreach (var sys_id in mRawOpenSysIds) { //GameDebug.LogRed("初始系统:id=" + sys_id); var sys_config = db_sys_config.GetConfigById(sys_id); if (sys_config != null) { // 活动类型的系统需要检查活动是否开启 if (sys_config.IsActivity) { bool is_open = ActivityHelper.IsActivityOpen(sys_config.Id); if (is_open) { mOpenSysList.Add(sys_config); mOpenSysDic[sys_config.Id] = sys_config; } else { GameDebug.LogRed(string.Format("系统: id= {0} 对应的活动未开启", sys_id)); } } else { mOpenSysList.Add(sys_config); mOpenSysDic[sys_config.Id] = sys_config; } } else { GameDebug.LogWarning(string.Format("[MSG_PLAYER_SYS_OPEN_INFO] 找不到对应的系统:{0}", sys_id)); } } mOpenSysList.Sort(); ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_SYS_CONFIG_INIT, null); } }
public bool GotoDeadSpace(params object[] args) { if (!SysConfigManager.GetInstance().CheckSysHasOpened(GameConst.SYS_OPEN_DEAD_SPACE, true)) { return(false); } if (!ActivityHelper.IsActivityOpen(GameConst.SYS_OPEN_DEAD_SPACE, true)) { return(false); } if (!CheckSysDownloaded(GameConst.SYS_OPEN_DEAD_SPACE)) { return(false); } UIManager.GetInstance().ShowSysWindow("UIDeadSpaceEnterWindow"); return(true); }
public bool GotoWorshipMeeting(params object[] args) { if (!SysConfigManager.GetInstance().CheckSysHasOpened(GameConst.SYS_OPEN_WORSHIP_MEETING, true)) { return(false); } if (!ActivityHelper.IsActivityOpen(GameConst.SYS_OPEN_WORSHIP_MEETING, true)) { return(false); } if (!CheckSysDownloaded(GameConst.SYS_OPEN_WORSHIP_MEETING)) { return(false); } UIManager.GetInstance().ShowSysWindow("UIWorshipMeetingEnterWindow"); return(true); }
public bool GotoArena(params object[] args) { if (!SysConfigManager.GetInstance().CheckSysHasOpened(GameConst.SYS_OPEN_ARENA, true)) { return(false); } if (!CheckSysDownloaded(GameConst.SYS_OPEN_ARENA)) { return(false); } if (!ActivityHelper.IsActivityOpen(GameConst.SYS_OPEN_ARENA, true)) { return(false); } UIManager.GetInstance().ShowSysWindow("UIArenaMainWindow"); return(true); }
/// <summary> /// 响应网络消息 /// </summary> /// <param name="protocol"></param> /// <param name="data"></param> private void HandleServerData(ushort protocol, byte[] data) { switch (protocol) { case NetMsg.MSG_PLAYER_SYS_OPEN_INFO: // 系统开放列表的消息 { var pack = S2CPackBase.DeserializePack <S2CPlayerSysOpenInfo>(data); mRawOpenSysIds = pack.sys_ids; //送审 的时候过滤系统 AuditManager.Instance.FilterSystemWhenAudit(pack.sys_ids); if (mWaitNetMsg[NetMsg.MSG_PLAYER_SYS_OPEN_INFO] == false) { mWaitNetMsg[NetMsg.MSG_PLAYER_SYS_OPEN_INFO] = true; CheckSysOpenCondition(); } } break; case NetMsg.MSG_PLAYER_NOTIFY_SYS_CLOSE: // 系统关闭 { var pack = S2CPackBase.DeserializePack <S2CPlayerNotifySysClose>(data); for (int i = 0; i < pack.sys_ids.Count; i++) { HandleNotifySysClose(pack.sys_ids[i]); } } break; case NetMsg.MSG_PLAYER_NOTIFY_SYS_OPEN: // 系统开启 { var pack = S2CPackBase.DeserializePack <S2CPlayerNotifySysOpen>(data); var db_sys_config = DBManager.GetInstance().GetDB <DBSysConfig>(); //送审 的时候过滤系统 AuditManager.Instance.FilterSystemWhenAudit(pack.sys_ids); bool fire = mWaitingSysList.Count == 0 ?true:false; for (int i = 0; i < pack.sys_ids.Count; i++) { var sys_id = pack.sys_ids[i]; var sys_config = db_sys_config.GetConfigById(sys_id); if (sys_config == null) { continue; } bool is_open = true; if (sys_config.IsActivity) // 活动类型的系统需要检查活动是否开启 { is_open = ActivityHelper.IsActivityOpen(sys_config.Id); } if (is_open) { HandleNotifySysOpen(sys_id); } else // 如果活动未开启,也需要加入到系统开启列表中 { if (!mRawOpenSysIds.Contains(sys_id)) { mRawOpenSysIds.Add(sys_id); } } // 获取需要关闭的系统按钮列表 var sysIdList = db_sys_config.GetRelationSysById(sys_id); if (sysIdList != null) { foreach (var id in sysIdList) { CloseSys(id); } } } mWaitingSysList.Sort(); if (fire && mWaitingSysList.Count > 0) { if (SceneHelp.Instance.IsInWildInstance()) { TargetPathManager.Instance.StopPlayerAndReset(); //有系统开启停止寻路 ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_NEW_WAITING_SYS, new CEventBaseArgs()); } else { ClientEventMgr.GetInstance().PostEvent((int)ClientEvent.CE_NEW_WAITING_SYS, new CEventBaseArgs()); } } } break; } }