private void OnMemberReborn(FrameData d) { if (d.parameters == null || d.parameters.Length == 0) { Logger.LogError("call frame action [PlayerReborn] ,but the parameters is null,please check out"); return; } int guid = d.parameters.GetValue <int>(0); if (moduleTeam.members == null) { Logger.LogError("moduleTeam.members is null,please check out"); return; } var memberData = moduleTeam.members.GetValue <PTeamMemberInfo>(guid); if (memberData == null) { Logger.LogError("Team member [{0}] cannot be finded", guid); return; } OnMemberReborn(memberData); moduleTeam.DispatchReborn(memberData); }
private void OnMemberQuitEarlySettlement(FrameData d) { if (moduleTeam.members == null) { return; } var reason = (EnumTeamQuitState)d.parameters.GetValue <int>(0); if (reason != EnumTeamQuitState.EarlySettlement) { return; } var member = moduleTeam.members.GetValue <PTeamMemberInfo>(d.parameters.GetValue <int>(1)); if (member == null) { return; } FightRecordManager.RecordLog <LogTeamQuit>(log => { log.tag = (byte)TagType.TeamQuit; log.roleId = member.roleId; log.reason = (sbyte)reason; }); var c = m_teamMembers.Find(o => o.roleId == member.roleId); if (!c) { return; } //掉线,角色直接死亡 bool alive = c && c.health > 0; if (reason == EnumTeamQuitState.EarlySettlement && !isEndingState && !m_isPVEFinish && !m_recvOverMsg && alive) { c?.Kill(); } //切换队长 if (member.teamLeader > 0) { foreach (var item in moduleTeam.members) { item.teamLeader = (byte)(item.roleId == member.roleId ? 0 : 1); } if (c) { var temp = m_normalMember; m_normalMember = c; m_teamLeader = temp; Logger.LogInfo("OnMemberQuit... team leader change to {0}", m_teamLeader ? m_teamLeader.uiName : "null"); } } }
private void OnTransportSceneOver(FrameData d) { //组队的时候,一旦开始处理切换场景完毕,就统一开启逻辑帧 OnLogicTransportFinish(); m_allMemberTransportOver = true; moduleTeam.TransportOver(); #if AI_LOG Module_AI.LogBattleMsg(player, "[set m_allMemberTransportOver as true.....]"); #endif }
private void OnStoryStepChange(FrameData d) { int storyId = d.parameters.GetValue <int>(0); int storyIndex = d.parameters.GetValue <int>(1); EnumContextStep step = (EnumContextStep)d.parameters.GetValue <int>(2); BaseStory story = moduleStory.GetCurrentValidStory(); if (!story) { Logger.LogWarning("there is no active story...please check out data is [id = {0},index = {1} step = {2}]"); return; } story.RecvFrameData(storyId, storyIndex, step); }
protected void StartTransportScene(FrameData d) { HandleTransportScene(m_tempTransportSceneBehaviour); moduleTeam.HandleStartTransportFrameEvent(); }