void _Packet(ScTeamQuit p) { var quitType = (EnumTeamQuitState)p.reason; Logger.LogDetail("guid = {0} Quit team, reason: {1}", p.guid, quitType); if (quitType != EnumTeamQuitState.QuitFailed) { var memberData = members.GetValue <PTeamMemberInfo>(p.guid); if (memberData == null) { Logger.LogError("Team member [{0}] cannot be finded", p.guid); return; } for (int i = 0; i < onlineMembers.Count; i++) { if (onlineMembers[i].roleId == memberData.roleId) { onlineMembers.RemoveAt(i); break; } } Logger.LogInfo("after memember quit , current online member count has {0}", onlineMembers.Count); DispatchModuleEvent(EventQuit, memberData, quitType); } }
void _Packet(ScTeamQuit p) { var frame = FrameData.Create(0, m_teamInputs, FrameAction.MemberQuit, p.reason, p.guid); m_frames.Enqueue(frame); #if AI_LOG frame.createTip = Util.Format("Team member [{0}] quit reason {1} frameCount = {2}", p.guid, (EnumTeamQuitState)p.reason, ++recvFrameMsgCount); #endif }