internal void DismissGroup(GroupInfo group) { if (null == group) { return; } UserInfo leader = LobbyServer.Instance.DataProcessScheduler.GetUserInfo(group.CreatorGuid); TeamOperateResult result = TeamOperateResult.OR_Dismiss; foreach (GroupMemberInfo m in group.Members) { UserInfo user = LobbyServer.Instance.DataProcessScheduler.GetUserInfo(m.Guid); if (null != user) { JsonMessageWithGuid msg = new JsonMessageWithGuid(JsonMessageID.SyncLeaveGroup); msg.m_Guid = m.Guid; ArkCrossEngineMessage.Msg_LC_SyncLeaveGroup protoData = new ArkCrossEngineMessage.Msg_LC_SyncLeaveGroup(); if (null != leader) { protoData.m_GroupNick = leader.Nickname; } protoData.m_Result = (int)result; msg.m_ProtoData = protoData; JsonMessageDispatcher.SendDcoreMessage(leader.NodeName, msg); user.Group = null; } } m_Groups.Remove(group.CreatorGuid); if (null != group.Members) { group.Members.Clear(); } recycles.Enqueue(group); }
private void HandleConfirmJoinGroupResult(JsonMessage lobbyMsg) { JsonData jsonData = lobbyMsg.m_JsonData; ArkCrossEngineMessage.Msg_LC_ConfirmJoinGroupResult protoData = lobbyMsg.m_ProtoData as ArkCrossEngineMessage.Msg_LC_ConfirmJoinGroupResult; if (null != protoData) { string nick = protoData.m_Nick; TeamOperateResult result = (TeamOperateResult)protoData.m_Result; GfxSystem.PublishGfxEvent("ge_confirm_join_group_result", "group", nick, result); //Note:加入队伍,通知RC RoleInfo role_info = LobbyClient.Instance.CurrentRole; if (result == TeamOperateResult.OR_Succeed && role_info != null) { if (role_info.Guid == role_info.Group.CreatorGuid) { GfxSystem.PublishGfxEvent("ge_joinABandWithBandId", "gt", role_info.Group.CreatorGuid.ToString()); } else { GfxSystem.PublishGfxEvent("ge_joinABandWithBandId", "gt", role_info.Group.CreatorGuid.ToString()); } } } }
/*s申请加入结果*/ void RequestJoinResult(string name, TeamOperateResult result) { RoleInfo role = LobbyClient.Instance.CurrentRole; switch (result) { case TeamOperateResult.OR_Succeed: if (role.Guid == role.Group.CreatorGuid) { } break; case TeamOperateResult.OR_Busyness: SendScreeTipCenter(564); break; case TeamOperateResult.OR_Exists: SendScreeTipCenter(576); break; case TeamOperateResult.OR_Overflow: SendScreeTipCenter(567); break; case TeamOperateResult.OR_Unknown: SendScreeTipCenter(568); break; case TeamOperateResult.OR_HasTeam: SendScreeTipCenter(569); break; } }
/*离开队伍结果*/ void LeaveTeamResult(string name, TeamOperateResult result) { RoleInfo role = LobbyClient.Instance.CurrentRole; switch (result) { case TeamOperateResult.OR_Succeed: SendScreeTipCenter(571); role.Group.Reset(); LogicSystem.EventChannelForGfx.Publish("ge_updata_member_info", "team"); ClearItem(); UIManager.Instance.HideWindowByName("Team"); break; case TeamOperateResult.OR_Kickout: SendScreeTipCenter(572); role.Group.Reset(); LogicSystem.EventChannelForGfx.Publish("ge_updata_member_info", "team"); ClearItem(); UIManager.Instance.HideWindowByName("Team"); break; case TeamOperateResult.OR_Dismiss: SendScreeTipCenter(578); role.Group.Reset(); ClearItem(); LogicSystem.EventChannelForGfx.Publish("ge_updata_member_info", "team"); UIManager.Instance.HideWindowByName("Team"); break; case TeamOperateResult.OR_Notice: SendScreeTipCenter(580, name); break; } }
private void HandleRequestJoinGroupResult(JsonMessage lobbyMsg) { JsonData jsonData = lobbyMsg.m_JsonData; ArkCrossEngineMessage.Msg_LC_RequestJoinGroupResult protoData = lobbyMsg.m_ProtoData as ArkCrossEngineMessage.Msg_LC_RequestJoinGroupResult; if (null != protoData) { string nick = protoData.m_Nick; TeamOperateResult result = (TeamOperateResult)protoData.m_Result; GfxSystem.PublishGfxEvent("ge_request_join_group_result", "group", nick, result); } }
/*离开队伍结果*/ void LeaveTeamResult(string name, TeamOperateResult result) { RoleInfo role = LobbyClient.Instance.CurrentRole; switch (result) { case TeamOperateResult.OR_Notice: SendScreeTipCenter(580, name); SetMemberShow(); break; } }
internal TeamOperateResult RequestJoinGroup(ulong guid, ulong groupid) { TeamOperateResult result = TeamOperateResult.OR_Busyness; if (guid == groupid) { return(result); } DataProcessScheduler dataProcess = LobbyServer.Instance.DataProcessScheduler; UserInfo intrant = dataProcess.GetUserInfo(guid); if (null != intrant && UserState.Online == intrant.CurrentState) { GroupInfo ginfo; if (m_Groups.TryGetValue(groupid, out ginfo)) { if (null != ginfo.Confirms && ginfo.Confirms.Count < GroupInfo.c_ConfirmNumMax) { bool ishave = false; foreach (GroupMemberInfo info in ginfo.Confirms) { if (info.Guid == guid) { ishave = true; result = TeamOperateResult.OR_Exists; break; } } if (!ishave) { GroupMemberInfo member = new GroupMemberInfo(); member.Guid = guid; member.HeroId = intrant.HeroId; member.Nick = intrant.Nickname; member.Level = intrant.Level; member.FightingScore = intrant.FightingScore; member.Status = intrant.CurrentState; ginfo.Confirms.Add(member); result = TeamOperateResult.OR_Succeed; } } else { result = TeamOperateResult.OR_Overflow; } } } return(result); }
/*确认加入结果*/ void ConfirmJoinResult(string name, TeamOperateResult result) { RoleInfo role = LobbyClient.Instance.CurrentRole; switch (result) { case TeamOperateResult.OR_Succeed: if (role.Guid == role.Group.CreatorGuid) { SendScreeTipCenter(570, name); } else { SendScreeTipCenter(565, name); } break; case TeamOperateResult.OR_Busyness: SendScreeTipCenter(564); break; case TeamOperateResult.OR_Exists: SendScreeTipCenter(583); break; case TeamOperateResult.OR_Overflow: SendScreeTipCenter(567); break; case TeamOperateResult.OR_Unknown: SendScreeTipCenter(568); break; case TeamOperateResult.OR_Notice: SendScreeTipCenter(581, name); break; case TeamOperateResult.OR_OutDate: SendScreeTipCenter(582); break; case TeamOperateResult.OR_HasTeam: SendScreeTipCenter(569); break; } }
private void HandleSyncLeaveGroup(JsonMessage lobbyMsg) { RoleInfo role_info = LobbyClient.Instance.CurrentRole; if (null == role_info) { return; } GroupInfo group = role_info.Group; if (null == group) { return; } JsonData jsonData = lobbyMsg.m_JsonData; ArkCrossEngineMessage.Msg_LC_SyncLeaveGroup protoData = lobbyMsg.m_ProtoData as ArkCrossEngineMessage.Msg_LC_SyncLeaveGroup; if (null != protoData) { string group_nick = protoData.m_GroupNick; TeamOperateResult result = (TeamOperateResult)protoData.m_Result; if (TeamOperateResult.OR_Succeed == result) { group.Reset(); } GfxSystem.PublishGfxEvent("ge_leave_group_result", "group", group_nick, result); switch (result) { case TeamOperateResult.OR_Succeed: GfxSystem.PublishGfxEvent("ge_quitFromABandUserJoined", "gt"); break; case TeamOperateResult.OR_Kickout: GfxSystem.PublishGfxEvent("ge_quitFromABandUserJoined", "gt"); break; case TeamOperateResult.OR_Dismiss: GfxSystem.PublishGfxEvent("ge_breakBandUserJoined", "gt"); break; } } }
internal TeamOperateResult JoinGroup(ulong guid, ulong groupid, int count) { if (guid == groupid) { return(TeamOperateResult.OR_Unknown); } DataProcessScheduler dataProcess = LobbyServer.Instance.DataProcessScheduler; TeamOperateResult result = TeamOperateResult.OR_OutDate; GroupInfo info; if (m_Groups.TryGetValue(groupid, out info)) { if (info.Count > info.Members.Count) { UserInfo player = dataProcess.GetUserInfo(guid); if (null != player && player.CurrentState == UserState.Online) { GroupMemberInfo member = new GroupMemberInfo(); member.Guid = guid; member.HeroId = player.HeroId; member.Nick = player.Nickname; member.Level = player.Level; member.FightingScore = player.FightingScore; member.Status = player.CurrentState; bool isExist = false; foreach (GroupMemberInfo atom in info.Members) { if (atom.Guid == guid) { isExist = true; result = TeamOperateResult.OR_Exists; break; } } if (!isExist) { info.Members.Add(member); player.Group = info; result = TeamOperateResult.OR_Succeed; } } } else { result = TeamOperateResult.OR_Overflow; } } else { UserInfo creator = dataProcess.GetUserInfo(groupid); UserInfo intrant = dataProcess.GetUserInfo(guid); if (null != creator && creator.CurrentState == UserState.Online && null != intrant && intrant.CurrentState == UserState.Online) { GroupInfo group = NewGroupInfo(); group.CreatorGuid = groupid; group.Count = count; List <GroupMemberInfo> members = new List <GroupMemberInfo>(); GroupMemberInfo leader = new GroupMemberInfo(); leader.Guid = groupid; leader.HeroId = creator.HeroId; leader.Nick = creator.Nickname; leader.Level = creator.Level; leader.FightingScore = creator.FightingScore; leader.Status = creator.CurrentState; members.Add(leader); GroupMemberInfo member = new GroupMemberInfo(); member.Guid = guid; member.HeroId = intrant.HeroId; member.Nick = intrant.Nickname; member.Level = intrant.Level; member.FightingScore = intrant.FightingScore; member.Status = intrant.CurrentState; members.Add(member); group.Members = members; m_Groups.Add(groupid, group); /// creator.Group = group; intrant.Group = group; result = TeamOperateResult.OR_Succeed; } else { result = TeamOperateResult.OR_OutDate; } } return(result); }