public int ExitRoom(WebPlayer webPlayer) { var ret = -1; var rpv = webPlayer.GetIBehaviour <TeamPlayerBv>(); if (rpv == null) { return(ret); } if (rpv.TeamId != string.Empty) { var tr = this.GetTeam(rpv.TeamId); if (tr == null) { return(ret); } if (webPlayer == tr.TeamLeader) //队长退出则解散 { tr.DisBand(); return(ret); } ret = tr.ExitTeam(webPlayer); rpv.TeamId = string.Empty; if (0 == tr.Dict_Rp.Count)// { tr.CloseTeam(); } } return(ret); }
protected override void Run(WebPlayer webpy, JObject message) { var enterTeam_Res = new EnterTeam_Res(); var enterTeam_Req = message.ToObject <EnterTeam_Req>(); var tpbv = webpy.GetIBehaviour <TeamPlayerBv>(); if (tpbv == null) { //Log.Debug("没有加入房间"); tpbv = new TeamPlayerBv(); tpbv.TeamPlayer_Data = enterTeam_Req.TeamPlayer_Data; webpy.AddIBehaviour(tpbv); } else { tpbv.TeamPlayer_Data = enterTeam_Req.TeamPlayer_Data; } enterTeam_Res.Res = GameMainEntry.Instance.TeamModule.EnterTeam(webpy); if (enterTeam_Res.Res > 0) { var tr = GameMainEntry.Instance.TeamModule.GetTeam(tpbv.TeamId); enterTeam_Res.Ls_TeamPlayer_Data = tr.GetTeamPlayer_Data(); enterTeam_Res.TeamId = tr.TeamId; } webpy.SendAsync(Msg_Json.Create_Msg_Json(NetOpCode.EnterTeam_Res, enterTeam_Res)); }
public int ExitRoom(WebPlayer webPlayer) { var ret = -1; var rpv = webPlayer.GetIBehaviour <RoomPlayerBv>(); if (rpv == null) { return(ret); } if (rpv.RoomId != string.Empty) { var tr = this.GetTableRoom(rpv.RoomId); if (tr == null) { return(ret); } ret = tr.ExitRoom(webPlayer); rpv.RoomId = string.Empty; if (0 == tr.Dict_Rp.Count) // { tr.CloseRoom(); } } return(ret); }
/// <summary> /// -1房间不够 /// -2必须先创建房间 /// </summary> /// <param name="webPlayer"></param> /// <returns></returns> public int EnterRoom(WebPlayer webPlayer) { var ret = -1; var rpv = webPlayer.GetIBehaviour <RoomPlayerBv>(); if (rpv == null) { return(ret); } TableRoom tr = null; if (rpv.RoomId != string.Empty) { tr = this.GetTableRoom(rpv.RoomId); if (tr.IsAvailable)//没人必须创建房间 { ret = -2; return(ret); } ret = tr.EnterRoom(webPlayer); return(ret); } if (rpv.RoomPlayer_Data.RoomId == string.Empty)//创建房间 { ///////////////////////////这部分用于测试,自动匹配有人的房间 tr = this.GetCanJoinTableRoom(); if (tr != null) { ret = tr.EnterRoom(webPlayer); return(ret); } ///////////////////////////////////////////////// //创建新房间 tr = this.GetAvailableTableRoom(); if (null == tr) { return(ret); } tr.OpenRoom();// ret = tr.EnterRoom(webPlayer); rpv.RoomId = tr.RoomId; } else//加入别的房间 { tr = this.GetTableRoom(rpv.RoomPlayer_Data.RoomId); if (tr.IsAvailable)//没人必须创建房间 { ret = -2; return(ret); } ret = tr.EnterRoom(webPlayer); rpv.RoomId = tr.RoomId; } return(ret); }
public int EnterRoom(WebPlayer webPlayer) { var ret = -1; var py = this.GetPlayer(webPlayer.Id); if (py != null) { ret = 2;//已经在房间中 return(ret); } //广播加入 var rpd = webPlayer.GetIBehaviour <RoomPlayerBv>(); rpd.RoomId = this.RoomId; rpd.RoomPlayer_Data.RoomId = this.RoomId; SendToAllPlayer(Msg_Json.Create_Msg_Json(NetOpCode.RoomPlayerJoin_Msg, new RoomPlayerJoin_Msg { RoomPlayer_Data = rpd.RoomPlayer_Data })); Dict_Rp.Add(webPlayer.Id, webPlayer); Log.Debug($"{webPlayer.Id}加入房间:{RoomId}"); ret = 1; return(ret); }
public int ExitRoom(WebPlayer webPlayer) { var ret = -1; var py = this.GetPlayer(webPlayer.Id); if (py == null) { return(ret); } ret = 1; RemovePlayer(webPlayer.Id); Log.Debug($"{webPlayer.Id}退出房间:{RoomId}"); var rpd = webPlayer.GetIBehaviour <RoomPlayerBv>(); SendToAllPlayer(Msg_Json.Create_Msg_Json(NetOpCode.RoomPlayerLeave_Msg, new RoomPlayerLeave_Msg { RoomPlayer_Data = rpd.RoomPlayer_Data })); { //广播消息 //SendToAllPlayer() } return(ret); }
public int EnterTeam(WebPlayer webPlayer) { var ret = -1; var py = this.GetPlayer(webPlayer.Id); if (py != null) { ret = 2;//已经在房间中 return(ret); } //广播加入 var tpb = webPlayer.GetIBehaviour <TeamPlayerBv>(); tpb.TeamId = this.TeamId; tpb.TeamPlayer_Data.TeamId = this.TeamId; SendToAllPlayer(Msg_Json.Create_Msg_Json(NetOpCode.TeamPlayerJoin_Msg, new TeamPlayerJoin_Msg { TeamPlayer_Data = tpb.TeamPlayer_Data })); Dict_Rp.Add(webPlayer.Id, webPlayer); Log.Debug($"{webPlayer.Id}加入队伍:{TeamId}"); ret = 1; return(ret); }
/// <summary> /// -1房间不够 /// -2必须先创建房间 /// </summary> /// <param name="webPlayer"></param> /// <returns></returns> public int EnterTeam(WebPlayer webPlayer) { var ret = -1; var tpbv = webPlayer.GetIBehaviour <TeamPlayerBv>(); if (tpbv == null) { return(ret); } Team tr = null; if (tpbv.TeamId != string.Empty) { tr = this.GetTeam(tpbv.TeamId); if (tr.IsAvailable)//没人必须创建房间 { ret = -2; return(ret); } ret = tr.EnterTeam(webPlayer); return(ret); } if (tpbv.TeamPlayer_Data.TeamId == string.Empty)//创建房间 { ///////////////////////////////////////////////// //创建新房间 tr = this.GetAvailableTeam(); if (null == tr) { return(ret); } tr.OpenTeam();// tr.TeamLeader = webPlayer; ret = tr.EnterTeam(webPlayer); tpbv.TeamId = tr.TeamId; } else//加入别的房间 { tr = this.GetTeam(tpbv.TeamPlayer_Data.TeamId); if (tr.IsAvailable)//没人必须创建房间 { ret = -2; return(ret); } ret = tr.EnterTeam(webPlayer); tpbv.TeamId = tr.TeamId; } return(ret); }
protected override void Run(WebPlayer webpy, JObject message) { var rpbv = webpy.GetIBehaviour <RoomPlayerBv>(); if (rpbv == null) { webpy.SendAsync(Msg_Json.Create_Msg_Json(NetOpCode.NeedEnterRoom_Msg, new NeedEnterRoom_Msg())); return; } var tr = GameMainEntry.Instance.RoomModule.GetTableRoom(rpbv.RoomId); if (tr == null) { Log.Debug("没有房间"); webpy.SendAsync(Msg_Json.Create_Msg_Json(NetOpCode.NeedEnterRoom_Msg, new NeedEnterRoom_Msg())); return; } this.Run(webpy, rpbv, tr, message); }
public int ExitTeam(WebPlayer webPlayer) { var ret = -1; var py = this.GetPlayer(webPlayer.Id); if (py == null) { return(ret); } ret = 1; RemovePlayer(webPlayer.Id); Log.Debug($"{webPlayer.Id}退出队伍:{TeamId}"); var tpb = webPlayer.GetIBehaviour <TeamPlayerBv>(); SendToAllPlayer(Msg_Json.Create_Msg_Json(NetOpCode.TeamPlayerLeave_Msg, new TeamPlayerLeave_Msg { TeamPlayer_Data = tpb.TeamPlayer_Data })); return(ret); }
protected override void Run(WebPlayer webpy, JObject message) { var tpbv = webpy.GetIBehaviour <TeamPlayerBv>(); if (tpbv == null) { webpy.SendAsync(Msg_Json.Create_Msg_Json(NetOpCode.NeedTeam_Msg, new NeedEnterRoom_Msg())); return; } var team = GameMainEntry.Instance.TeamModule.GetTeam(tpbv.TeamId); if (team == null) { webpy.SendAsync(Msg_Json.Create_Msg_Json(NetOpCode.NeedTeam_Msg, new NeedEnterRoom_Msg())); return; } var matchStart_Res = new MatchStart_Res() { Res = -1 }; var matchStart_Req = message.ToObject <MatchStart_Req>(); if (matchStart_Req.MatchingType == (int)EMatchingType.Matching_Friend)//好友对战 { if (team.Dict_Rp.Count == GameConstant.FriendsBattlePlayerNub) { var tr = GameMainEntry.Instance.RoomModule.GetAvailableTableRoom(); if (tr != null) { foreach (var vk in team.Dict_Rp) { var rpbv2 = vk.Value.GetIBehaviour <RoomPlayerBv>(); var tpbv2 = vk.Value.GetIBehaviour <TeamPlayerBv>(); tr.EnterRoom(vk.Value); } } } webpy.SendAsync(Msg_Json.Create_Msg_Json(NetOpCode.MatchStart_Res, matchStart_Res)); return; } }