//增加展厅留言 public void MsgAddRoomChat(Player player, ProtocolBase protoBase) { //初始化数值 int start = 0; ProtocolBytes protocol = (ProtocolBytes)protoBase; string protoName = protocol.GetString(start, ref start); string ChatMessage = protocol.GetString(start, ref start);//解码留言 //获取展厅 Room room = player.tempData.room; room.AddChatMessgae(player.id, ChatMessage);//将留言记录增添到数据库 ProtocolBytes protocolRet = new ProtocolBytes(); protocolRet.AddString("AddRoomChat"); //添加协议名 protocolRet.AddString(player.id); //添加留言者 protocolRet.AddString(ChatMessage); //添加留言 room.Broadcast(protocolRet); //广播 }
public void SendGetRoomList() { ProtocolBytes protocol = new ProtocolBytes(); // 协议名 protocol.AddString("GetRoomList"); NetWorkManager.Instance.Send(protocol); }
// 心跳 public ProtocolBase GetHeartBeatProtocol() { //具体的发送内容根据服务端设定改动 ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString(Constant.HeartBeat); return(protocol); }
public void OnMsgSend() { if (chatInput.text == "") { return; } if (NetMgr.srvConn.status != Connection.Status.Connected) { Debug.Log("网络出问题了"); return; } ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("SendChat"); protocol.AddString(chatInput.text); Debug.Log("发送" + protocol.GetDesc()); NetMgr.srvConn.Send(protocol, OnMsgBack); }
public void SendShoot(string id, int isPlayer, int forward, Vector3 pos, int addforce) { ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("Shoot"); protocol.AddString(id); protocol.AddInt(isPlayer); protocol.AddInt(forward); protocol.AddFloat(pos.x); protocol.AddFloat(pos.y); protocol.AddFloat(pos.z); protocol.AddInt(addforce); Send(protocol); }
/// <summary> /// 同步调用其他玩家客户端中此GameObject中此脚本中的此方法 /// </summary> /// <param name="_this">此脚本类的object,统一用this</param> /// <param name="methodName">函数名字</param> /// <param name="args">函数的参数,可动态扩充长度</param> /// <returns></returns> public void RPC(object _this, string methodName, params object[] args) { if (!GameMgr.instance)//GameMgr.instance没被初始化,则此时是离线状态 { return; } ProtocolBytes proto = new ProtocolBytes(); proto.AddString("RPC"); proto.AddString(sync_id + "RPC"); // componentName proto.AddString(_this.GetType().ToString()); proto.AddString(methodName); // 问题1, 发送obj数组 proto.AddObjects(args); NetMgr.srvConn.Send(proto); }
//获取分数 //协议参数 //返回协议:int分数 public void MsgGetScore(Player player, ProtocolBase protoBase) { ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("GetScore"); protocol.AddInt(player.data.score); player.Send(protocol); Console.WriteLine("MsgGetScore " + player.id + " " + player.data.score); }
/// <summary> /// 向指定玩家发送 该场景中的角色列表 /// </summary> /// <param name="player">玩家</param> public void SendPlayerList(Player player) { int count = list.Count; ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("GetList"); protocol.AddInt(count); for (int i = 0; i < count; i++) { ScenePlayer p = list[i]; protocol.AddString(p.Id); protocol.AddFloat(p.X); protocol.AddFloat(p.Y); protocol.AddFloat(p.Z); protocol.AddInt(p.Score); } player.Send(protocol); }
private void OnJoinClick(string name) { ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("EnterRoom"); protocol.AddInt(int.Parse(name)); NetMgr.srvConn.Send(protocol, OnJoinClickBack); Debug.Log("请求进入房间:" + name); }
private void Serialize() { p.Clear(); p.AddString(currentType.Name); p.Serialize(startPrcedureTemplate); File.WriteAllBytes(savePath + currentType.Name, p.Encode()); }
public void OnRegClick() { if (idInput.text == "" || pwInput.text == "") { Debug.Log("用户名密码不能为空"); return; } if (NetMgr.srvConn.status == Connection.Status.None) { NetMgr.srvConn.Connect(); } ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("Register"); protocol.AddString(idInput.text); protocol.AddString(pwInput.text); NetMgr.srvConn.Send(protocol, OnRegBack); }
//获取图片、视频、模型的信息 //协议参数: //返回协议:byte数组 public void MsgGetResoure(Player player, ProtocolBase protoBase) { ProtocolBytes protocolRet = new ProtocolBytes(); protocolRet.AddString("GetResoure"); Room room = player.tempData.room; protocolRet.AddInt(room.resouredata.Count); foreach (string resoure in room.resouredata.Keys) { protocolRet.AddString(room.resouredata[resoure].resourename); protocolRet.AddString(room.resouredata[resoure].resoureins); protocolRet.AddString(room.resouredata[resoure].resouresort); protocolRet.AddString(room.resouredata[resoure].resoureadress); } player.Send(protocolRet); Console.WriteLine("MsgGetResoure " + player.id); }
public void SetMyBattleCardList() { ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("SetMyBattleCardList"); Debug.Log("发送 " + protocol.GetDesc()); protocol.AddIntList(MyPlayer.Instance.data.BattleCardList); NetMgr.srvConn.Send(protocol, OnSetMyBattleCardListBack); }
//登录 //协议参数:str用户名,str密码 //返回协议:-1表示失败 0表示成功 public void MsgLogin(Conn conn, ProtocolBase protoBase) { //获取数值 int start = 0; ProtocolBytes protocol = (ProtocolBytes)protoBase; string protoName = protocol.GetString(start, ref start); string id = protocol.GetString(start, ref start); string pw = protocol.GetString(start, ref start); string strFormat = "[收到登录协议]" + conn.GetAddress(); WbeService.instance.WriteLine(strFormat + " 用户名:" + id + " 密码:" + pw); //构建返回协议 ProtocolBytes protocolRet = new ProtocolBytes(); protocolRet.AddString("Login"); //验证 if (!DataMgr.instance.CheckPassword(id, pw)) { protocolRet.AddInt(-1); Console.WriteLine("-1"); conn.Send(protocolRet); return; } //是否已经登录 ProtocolBytes protocolLogout = new ProtocolBytes(); protocolLogout.AddString("Logout"); if (!Player.KickOff(id, protocolLogout)) { protocolRet.AddInt(-1); conn.Send(protocolRet); return; } //获取玩家数据 PlayerData playerData = DataMgr.instance.GetPlayerData(id); //Console.WriteLine(playerData.name); if (playerData == null) { protocolRet.AddInt(-1); Console.WriteLine("-2"); conn.Send(protocolRet); return; } conn.player = new Player(id, conn); conn.player.data = playerData; //事件触发 ServiceNet.instance.handlePlayerEvent.OnLogin(conn.player); //返回 protocolRet.AddInt(0); Console.WriteLine("0"); conn.Send(protocolRet); return; }
public void OnScoreClick() { //PanelMgr.instance.OpenPanel<ScoreTips>(""); ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("GetScore"); Debug.Log("发送:" + protocol.GetDesc()); NetMgr.srvConn.Send(protocol, OnScoreBack); }
// 排行榜绑定事件 public void OnLeaderBoardClick() { // 发送协议 ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("LeaderBoard"); Debug.Log("发送 " + protocol.GetDesc()); NetMgr.srvConn.Send(protocol, OnLeaderBoardBack); }
/// <summary> /// 根据用户名和密码构造登录协议 /// </summary> /// <param name=""></param> public void SendLogin(string userName, string password) { if (connection == null) { Connect(); } ProtocolBytes protocolBytes = new ProtocolBytes(); // 协议名 protocolBytes.AddString("LoginConn"); // 协议参数 protocolBytes.AddString(userName); protocolBytes.AddString(password); connection.Send(protocolBytes); }
//死亡,并且同步信息到其他玩家实体上 public void Die() { ProtocolBytes proto = new ProtocolBytes(); proto.AddString("SyncPlayerDie"); NetMgr.srvConn.Send(proto); RecvDie(); }
//通用 public void SendStartScene(int index) { ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("StartScene"); protocol.AddInt(index); Send(protocol); }
/// <summary> /// 获取玩家战绩查询 /// </summary> /// <param name="player"></param> /// <param name="protoBase"></param> public void MsgGetAchieve(Player player, ProtocolBase protoBase) { ProtocolBytes protocolRet = new ProtocolBytes(); protocolRet.AddString("GetAchieve"); protocolRet.AddInt(player.data.win); protocolRet.AddInt(player.data.fail); player.Send(protocolRet); }
public override void OnShowing() { base.OnShowing(); Transform skinTrans = skin.transform; //组件 for (int i = 0; i < 6; i++) { string name = "PlayerPrefab" + i.ToString(); Transform prefab = skinTrans.Find(name); prefabs.Add(prefab); } closeBtn = skinTrans.Find("CloseBtn").GetComponent <Button> (); startBtn = skinTrans.Find("StartBtn").GetComponent <Button> (); closeBtn.onClick.AddListener(OnCloseClick); startBtn.onClick.AddListener(OnStartClick); NetMgr.srvConn.msgDist.AddListener("GetRoomInfo", RecvGetRoomInfo); NetMgr.srvConn.msgDist.AddListener("Fight", RecvFight); ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("GetRoomInfo"); NetMgr.srvConn.Send(protocol); ProtocolBytes a = new ProtocolBytes(); a.AddString("GetRoomInfo"); a.AddInt(2); a.AddString("Killer"); a.AddInt(1); a.AddInt(15); a.AddInt(18); a.AddInt(0); a.AddString("FireGod"); a.AddInt(2); a.AddInt(3); a.AddInt(8); a.AddInt(1); RecvGetRoomInfo(a); }
public void MsgSerachEnemy(Player player, ProtocolBase protoBase) { int start = 0; ProtocolBytes protocol = (ProtocolBytes)protoBase; string protoName = protocol.GetString(start, ref start); ProtocolBytes protocolRet = new ProtocolBytes(); protocolRet.AddString("SerachEnemy"); protocolRet.AddString("Test"); List <int> EnemyBattleCardList = new List <int>() { 5, 6, 7, 8, 9, 10 }; protocolRet.AddIntList(EnemyBattleCardList); player.conn.Send(protocolRet); }
public void OnSignupClick() { if (usernameInput.text == "" || passwordInput.text == "") { Debug.Log("用户名密码不能为空!"); return; } if (passwordInput.text != passwordInput2.text) { Debug.Log("两次密码不相同,请重新输入"); return; } ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("Register"); protocol.AddString(usernameInput.text); protocol.AddString(passwordInput.text); NetMgr.srvConn.Send(protocol, OnSignupBack); }
//房间信息 public ProtocolBytes GetRoomInfo() { ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("GetRoomInfo"); //房间信息 protocol.AddInt(list.Count); //每个玩家信息 foreach (Player p in list.Values) { protocol.AddString(p.id); protocol.AddInt(p.tempData.team); protocol.AddInt(p.data.win); protocol.AddInt(p.data.fail); int isOwner = p.tempData.isOwner? 1: 0; protocol.AddInt(isOwner); } return(protocol); }
/// <summary> /// 删除玩家 /// </summary> /// <param name="id">角色ID</param> public void DelPlayer(string id) { lock (list) { ScenePlayer p = GetScenePlayer(id); if (p != null) { list.Remove(p); } } //广播通知 其他玩家 该角色离开 //发送 PlayerLeave ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("PlayerLeave"); protocol.AddString(id); //广播 ServNet.instance.Broadcast(protocol); }
public void StartFight() { //协议 ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("StartFight"); NetMgr.srvConn.Send(protocol); //监听 NetMgr.srvConn.msgDist.AddListener("StartFight", RecvStartFight); }
//获取玩家信息 public void MsgGetAchieve(Player player, ProtocolBase protoBase) { ProtocolBytes protocolRet = new ProtocolBytes(); protocolRet.AddString("GetAchieve"); protocolRet.AddInt(player.data.win); protocolRet.AddInt(player.data.fail); player.Send(protocolRet); Console.WriteLine("MsgGetScore " + player.id + player.data.win); }
public void SendRoomNum(Conn conn) { ProtocolBytes proto = new ProtocolBytes(); proto.AddString("RoomNum"); int num = rooms[conn.roomid].num; proto.AddInt(num); rooms[conn.roomid].Broadcast(proto); }
public void OnConfirmClick() { if (nameInput.text == "") { Debug.Log("姓名不能为空!"); return; } if (NetMgr.srvConn.status != Connection.Status.Connected) { Debug.Log("网络出问题了"); return; } ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("EditName"); protocol.AddString(nameInput.text); Debug.Log("发送" + protocol.GetDesc()); NetMgr.srvConn.Send(protocol, OnConfirmBack); }
//按下准备按钮 public void OnReadyClick() { if (!isReady) { ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("ReadyFight"); Debug.Log("发送:" + protocol.GetDesc()); NetMgr.srvConn.Send(protocol, OnReadyBack); } }