public void StartTeamLevel(ScTeamStartLoading p) { if (moduleTeam.state < 0) { Logger.LogError("PVE::StartTeamLevel: We are not in team mode!"); return; } Logger.LogInfo("PVE::StartTeamLevel: Start new team stage [{0}], mode [{1}]", moduleTeam.stage, moduleTeam.mode); OnPVEStart(moduleTeam.stage, moduleTeam.mode == TeamMode.Awake ? PVEReOpenPanel.ChasePanel : PVEReOpenPanel.None, true); isFirstEnterStage = false; if (p.members != null) { foreach (var item in p.members) { //第一次进入关卡只跟队长有关 if (item.teamLeader > 0) { isFirstEnterStage = item.isFirst > 0; break; } } } enterForFirstTime = false; RefreshRebornData(p.rebornTime, p.rebornItem); }
void _Packet(ScTeamStartLoading p) { EventManager.RemoveEventListener(Events.SCENE_LOAD_PROGRESS, OnLoadingProgress); EventManager.AddEventListener(Events.SCENE_LOAD_PROGRESS, OnLoadingProgress); Logger.LogInfo("Team room start loading! Stage: [{0}]", p.stage); if (p.members.Length == 1) { FightRecordManager.EndRecord(false, false); } FightRecordManager.Set(p); loading = true; m_loadingType = EnumPVELoadingType.Initialize; m_progress = 0; m_lastProgress = 0; mode = (TeamMode)p.type; stage = p.stage; timeLimit = p.timeLimit; allowQuit = p.allowQuit; p.members.CopyTo(ref m_members); onlineMembers.Clear(); onlineMembers.AddRange(m_members); FightRecordManager.RecordLog <LogInt>(log => { log.tag = (byte)TagType.onlineMembersCount; log.value = onlineMembers?.Count ?? 0; }); m_playerIndex = m_members.FindIndex(mi => mi.roleId == modulePlayer.id_); Logger.LogDetail("Player roomIndex: {0}", m_playerIndex); DispatchModuleEvent(EventLoadingStart); modulePVE.StartTeamLevel(p); loading = true; }