static void Main(string[] args) { Console.WriteLine($"My id is {int.Parse(args[1])}"); CSharpClient client = new CSharpClient(); client.OnReceive += delegate() { IMsg msg = client.Take(); MessageToOneClient mm = msg.Content as MessageToOneClient; Console.WriteLine($"Message type::{msg.PacketType}"); Console.WriteLine(mm); }; Console.WriteLine("Connecting......"); if (client.Connect("127.0.0.1", 7777)) { Console.WriteLine("成功连接Agent."); } else { Console.WriteLine("连接Agent失败."); } MessageToServer mm = new MessageToServer(); mm.PlayerID = int.Parse(args[1]); mm.TeamID = int.Parse(args[0]); mm.JobType = Communication.Proto.JobType.Job1; client.SendMessage(mm); Console.ReadLine(); client.Stop(); client.Dispose(); }
private void recieveMessage() { while (true) { try { int bufferLength = socket.Receive(recieveBuffer); byte[] realBuffer = new Byte[bufferLength]; Array.Copy(recieveBuffer, 0, realBuffer, 0, bufferLength); string str = Encoding.Default.GetString(realBuffer); Console.WriteLine("{0} : {1}.", socket.RemoteEndPoint, str); string[] message = str.Split(messageSpiltSeperation); UInt32 id_t = Convert.ToUInt32(message[0]); // if (id_t != id) // continue; byte type = Convert.ToByte(message[1]); if (type < 0 || type >= (byte)COMMAND_TYPE.SIZE) { continue; } byte param1 = Convert.ToByte(message[2]); byte param2 = Convert.ToByte(message[3]); MessageToServer msgToSvr = new MessageToServer(id, (COMMAND_TYPE)type, param1, param2); Program.messageQueue.Enqueue(msgToSvr); } catch (Exception e) { Console.WriteLine(e); break; } } }
protected void OnRecieve(Object communication, EventArgs e) { Console.Write("Recieved;"); //CommunicationImpl communicationImpl = communication as CommunicationImpl; MessageToServer msg2svr = (MessageToServer)((MessageEventArgs)e).message.Message; Tuple <int, int> playerCommunitionID = new Tuple <int, int>(((MessageEventArgs)e).message.Agent, ((MessageEventArgs)e).message.Client); if (msg2svr.IsSetTalent) { while (!Program.PlayerList.ContainsKey(playerCommunitionID)) { Thread.Sleep(20); } if (msg2svr.Talent < Talent.None || msg2svr.Talent >= Talent.Size) { msg2svr.Talent = Talent.None; } Program.PlayerList[playerCommunitionID].Talent = msg2svr.Talent; Server.ServerDebug("Player " + playerCommunitionID.Item1 + "." + playerCommunitionID.Item2 + " has chose talent " + Program.PlayerList[playerCommunitionID].Talent); return; } //Server.ServerDebug("GameTime : " + Time.GameTime().TotalSeconds.ToString("F3") + "s"); Program.PlayerList[playerCommunitionID].ExecuteMessage(msg2svr); }
public void OnReciveShort(MessageToOneClient msg) //连接是否成功 { if (msg.MessageType == MessageType.ValidPlayer) { } else { MessageBox.Show("Invalid Player"); Starting starting = new Starting(); Application.Run(starting); MessageToServer msg1 = new MessageToServer(); msg1.MessageType = MessageType.AddPlayer; Program.watch = starting.watch; Program.teamID = Program.watch?1911:starting.teamid; Program.playerID = Program.watch ? 1911 : starting.playerid; Program.jobType = starting.job; Program.clientCommunicator.Stop(); msg1.TeamID = Program.teamID; msg1.PlayerID = Program.playerID; msg1.JobType = starting.job; if (Program.clientCommunicator.Connect("127.0.0.1", starting.port)) { Program.clientCommunicator.SendMessage(msg1); } else { MessageBox.Show("连接Agent失败"); return; } } }
public void run() { Program.initTime = DateTime.Now; while (true) { if (Program.messageQueue.Count == 0) { continue; } Program.gameTime = DateTime.Now - Program.initTime; Console.WriteLine("Time : " + Program.gameTime.TotalSeconds.ToString() + "s"); MessageToServer msgToSvr = Program.messageQueue.Dequeue(); if (msgToSvr.commandType < 0 || msgToSvr.commandType >= COMMAND_TYPE.SIZE) { continue; } if (msgToSvr.commandType == COMMAND_TYPE.MOVE && msgToSvr.parameter1 >= 0 && msgToSvr.parameter1 < (byte)DIRECTION.SIZE) { players[msgToSvr.senderID].move((DIRECTION)msgToSvr.parameter1); } } }
public bool Registration(string username, string password) { MessageToServer message = new MessageToServer { Command = CommandToServer.ASK_REGISTRATION, Username = username, Password = password }; byte[] bytes = message.EncodeMessage(); _sender.Send(bytes); bytes = new byte[3072]; _sender.Receive(bytes); MessageFromServer received = MessageFromServer.DecodeMessage(bytes); if (received.Command == CommandFromServer.ACCEPTED) { UserInfo.Id = received.Id; UserInfo.Name = received.Name; UserInfo.Username = username; return(true); } else { return(false); } }
private void SendAddPlayerResponse(MessageToServer msgRecv, bool isValid) //作为对 AddPlayer 消息的响应,给客户端发送信息 { if (msgRecv.PlayerID == 1911 && msgRecv.TeamID == 1911) // 观战 { Console.WriteLine("A new spectator comes to watch this game."); return; } MessageToOneClient msg2Send = new MessageToOneClient(); msg2Send.PlayerID = msgRecv.PlayerID; msg2Send.TeamID = msgRecv.TeamID; msg2Send.MessageType = isValid ? MessageType.ValidPlayer : MessageType.InvalidPlayer; serverCommunicator.SendMessage(msg2Send); if (isValid) { Console.WriteLine("A new player with teamID {0} and playerID {1} joined the game.", msgRecv.TeamID, msgRecv.PlayerID); } else { Console.WriteLine("The request of a player declaring to have teamID {0} and playerID {1} to join the game has been rejected.", msgRecv.TeamID, msgRecv.PlayerID); } lock (addPlayerLock) { CheckStart(); //检查是否该开始游戏了 } }
private void Form1_KeyPress(object sender, KeyPressEventArgs e) //键盘进行特殊操作 { switch (e.KeyChar) { case 'q': case 'Q': int y = this.PointToClient(Control.MousePosition).X; int x = this.PointToClient(Control.MousePosition).Y; MessageToServer msg1 = new MessageToServer(); msg1.PlayerID = playerid; msg1.TeamID = teamid; msg1.MessageType = MessageType.Attack; msg1.Angle = Math.Atan2(y - PlayerLabelSet[selfguid].label.Location.X, x - PlayerLabelSet[selfguid].label.Location.Y);//目前为弧度 msg1.TimeInMilliseconds = (int)(1000.0 * Math.Sqrt(Math.Pow((double)(y - PlayerLabelSet[selfguid].label.Location.X - 5), 2) + Math.Pow((double)(x - PlayerLabelSet[selfguid].label.Location.Y - 5), 2)) * Program.cell / MapcellHeight / bulletspeed + 0.5); Program.clientCommunicator.SendMessage(msg1); break; case 'w': case 'W': MessageToServer msg2 = new MessageToServer(); msg2.MessageType = MessageType.Use; msg2.PlayerID = playerid; msg2.TeamID = teamid; //TO DO:发消息 Program.clientCommunicator.SendMessage(msg2); break; case 'e': case 'E': MessageToServer msg3 = new MessageToServer(); msg3.MessageType = MessageType.Pick; msg3.PlayerID = playerid; msg3.TeamID = teamid; //TO DO:发消息 for (int i = 1; i < 11; i++) { msg3.PropType = (PropType)i; Program.clientCommunicator.SendMessage(msg3); } break; case 'r': case 'R': MessageToServer msg4 = new MessageToServer(); msg4.MessageType = MessageType.Throw; msg4.PlayerID = playerid; msg4.TeamID = teamid; //TO DO:发消息 Program.clientCommunicator.SendMessage(msg4); break; case 'a': case 'A': Application.Exit(); break; default: break; } }
internal void SendMessage(MessageToServer receivedMessage, Socket handler) { if (_database.SelectContact(receivedMessage.Id, receivedMessage.TargetId) == null) { _database.Insert(new Contact(receivedMessage.Id, receivedMessage.TargetId)); } _database.Insert(new Message(receivedMessage.Id, receivedMessage.TargetId, receivedMessage.NewMessage)); }
public void SendMessage(MessageToServer msg) { Message message = new Message(); message.Content = msg; message.PacketType = PacketType.MessageToServer; byte[] bytes; message.WriteTo(out bytes); Send(bytes); }
internal void GetContacts(MessageToServer receivedMessage, Socket handler) { MessageFromServer message = new MessageFromServer { Users = _database.SelectContacts(receivedMessage.Id) }; handler.Send(message.EncodeMessage()); }
internal void SearchContacts(MessageToServer receivedMessage, Socket handler) { MessageFromServer message = new MessageFromServer { Users = _database.SearchUsers(receivedMessage.Name) }; handler.Send(message.EncodeMessage()); }
internal void LoadMessages(MessageToServer receivedMessage, Socket handler) { MessageFromServer message = new MessageFromServer { Messages = _database.SelectMessages(receivedMessage.Id, receivedMessage.TargetId) }; handler.Send(message.EncodeMessage()); }
public async void StartReceiving(Socket handler) { await Task.Run(() => { try { while (true) { try { byte[] bytes = new Byte[3072]; int bytesRec = handler.Receive(bytes); MessageToServer receivedMessage = MessageToServer.DecodeMessage(bytes); switch (receivedMessage.Command) { case CommandToServer.ASK_AUTHORIZATION: _commands.Authorize(receivedMessage, handler); break; case CommandToServer.ASK_REGISTRATION: _commands.Register(receivedMessage, handler); break; case CommandToServer.SEND_MESSAGE: _commands.SendMessage(receivedMessage, handler); break; case CommandToServer.GET_CONTACTS: _commands.GetContacts(receivedMessage, handler); break; case CommandToServer.SEARCH_CONTACTS: _commands.SearchContacts(receivedMessage, handler); break; case CommandToServer.GET_MESSAGES: _commands.LoadMessages(receivedMessage, handler); break; default: break; } } catch (Exception) { } } } catch (Exception) { // user disconnected? } }); }
internal void SendMessage(string text, int id) { MessageToServer message = new MessageToServer { Command = CommandToServer.SEND_MESSAGE, Id = UserInfo.Id, TargetId = id, NewMessage = text, }; byte[] bytes = message.EncodeMessage(); _sender.Send(bytes); }
protected override void OnReceive(MessageToServer msg) { #if DEBUG Console.WriteLine($"Recieve message: from teamID {msg.TeamID}, playerID {msg.PlayerID}: {msg.MessageType}"); #endif switch (msg.MessageType) { case MessageType.AddPlayer: SendAddPlayerResponse(msg, AddPlayer(msg)); break; case MessageType.Move: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.MovePlayer(communicationToGameID[msg.TeamID, msg.PlayerID], msg.TimeInMilliseconds, msg.Angle); } break; case MessageType.Attack: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.Attack(communicationToGameID[msg.TeamID, msg.PlayerID], msg.TimeInMilliseconds, msg.Angle); } break; case MessageType.Pick: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.Pick(communicationToGameID[msg.TeamID, msg.PlayerID], ConvertTool.ToGamePropType(msg.PropType)); } break; case MessageType.Use: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.Use(communicationToGameID[msg.TeamID, msg.PlayerID]); } break; case MessageType.Throw: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.Throw(communicationToGameID[msg.TeamID, msg.PlayerID], msg.TimeInMilliseconds, msg.Angle); } break; case MessageType.Send: SendMessageToTeammate(msg); break; } }
public void sendMessage(MessageToServer msgToSvr) { try { byte[] sendByte = Encoding.Default.GetBytes(msgToSvr.ToString()); socket.Send(sendByte, sendByte.Length, 0); } catch (Exception ex) { Console.WriteLine("发送失败。"); Console.WriteLine(ex); throw; } }
private void SendAddPlayerResponse(MessageToServer msgRecv, bool isValid) //作为对 AddPlayer 消息的响应,给客户端发送信息 { MessageToOneClient msg2Send = new MessageToOneClient(); msg2Send.PlayerID = msgRecv.PlayerID; msg2Send.TeamID = msgRecv.TeamID; msg2Send.MessageType = isValid ? MessageType.ValidPlayer : MessageType.InvalidPlayer; serverCommunicator.SendMessage(msg2Send); lock (addPlayerLock) { CheckStart(); //检查是否该开始游戏了 } }
private void OnReceive(MessageToServer msg) { switch (msg.MessageType) { case MessageType.AddPlayer: SendAddPlayerResponse(msg, AddPlayer(msg)); break; case MessageType.Move: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.MovePlayer(communicationToGameID[msg.TeamID, msg.PlayerID], msg.TimeInMilliseconds, msg.Angle); } break; case MessageType.Attack: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.Attack(communicationToGameID[msg.TeamID, msg.PlayerID], msg.TimeInMilliseconds, msg.Angle); } break; case MessageType.Pick: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.Pick(communicationToGameID[msg.TeamID, msg.PlayerID], ConvertTool.ToGamePropType(msg.PropType)); } break; case MessageType.Use: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.Use(communicationToGameID[msg.TeamID, msg.PlayerID]); } break; case MessageType.Throw: if (ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) { game.Throw(communicationToGameID[msg.TeamID, msg.PlayerID], msg.TimeInMilliseconds, msg.Angle); } break; case MessageType.Send: SendMessageToTeammate(msg); break; } }
public List <Contact> Contacts(int id) { MessageToServer message = new MessageToServer { Command = CommandToServer.GET_CONTACTS, Id = id }; byte[] bytes = message.EncodeMessage(); _sender.Send(bytes); bytes = new byte[3072]; _sender.Receive(bytes); MessageFromServer received = MessageFromServer.DecodeMessage(bytes); return(received.Users); }
public List <Contact> SearchContacts(string search) { MessageToServer message = new MessageToServer { Command = CommandToServer.SEARCH_CONTACTS, Name = search }; byte[] bytes = message.EncodeMessage(); _sender.Send(bytes); bytes = new byte[3072]; _sender.Receive(bytes); MessageFromServer received = MessageFromServer.DecodeMessage(bytes); return(received.Users); }
private bool AddPlayer(MessageToServer msg) { if (game.GameMap.Timer.IsGaming) //如果正在游戏,不能加入角色 { return(false); } if (!ValidTeamIDAndPlayerID(msg.TeamID, msg.PlayerID)) //PlayerID或TeamID不正确 { return(false); } lock (addPlayerLock) { if (communicationToGameID[msg.TeamID, msg.PlayerID] != GameObject.invalidID) //已经有这个玩家了,不能再添加了 { return(false); } Game.PlayerInitInfo playerInitInfo = new Game.PlayerInitInfo(GetBirthPointIdx(msg.TeamID, msg.PlayerID), ConvertTool.ToGameJobType(msg.JobType), msg.TeamID); if (playerInitInfo.jobType == THUnity2D.JobType.InvalidJobType) { return(false); //非法职业 } bool legalJob = false; foreach (var enumMem in typeof(THUnity2D.JobType).GetFields()) { if (playerInitInfo.jobType.ToString() == enumMem.Name) { legalJob = true; break; } } if (!legalJob) { return(false); //非法职业,职业数值超出枚举范围 } long newPlayerID = game.AddPlayer(playerInitInfo); if (newPlayerID == GameObject.invalidID) { return(false); } communicationToGameID[msg.TeamID, msg.PlayerID] = newPlayerID; return(true); } }
internal List <Message> GetMessages(int id) { MessageToServer message = new MessageToServer { Command = CommandToServer.GET_MESSAGES, Id = UserInfo.Id, TargetId = id }; byte[] bytes = message.EncodeMessage(); _sender.Send(bytes); bytes = new byte[3072]; _sender.Receive(bytes); MessageFromServer received = MessageFromServer.DecodeMessage(bytes); return(received.Messages); }
public void OnReciveShort(MessageToOneClient msg) //连接是否成功 { if (msg.MessageType == MessageType.ValidPlayer) { } else { MessageBox.Show("Invalid Player"); Starting starting = new Starting(); Application.Run(new Starting()); MessageToServer msg1 = new MessageToServer(); msg1.MessageType = MessageType.AddPlayer; msg1.TeamID = starting.teamid; msg1.PlayerID = starting.playerid; msg1.JobType = starting.job; Program.clientCommunicator.SendMessage(msg1); } }
private void SendMessageToTeammate(MessageToServer msgRecv) { if (!ValidTeamIDAndPlayerID(msgRecv.TeamID, msgRecv.PlayerID) || !ValidTeamIDAndPlayerID(msgRecv.TeamID, msgRecv.ToPlayerID)) { return; } if (msgRecv.Message.Length > 64) { return; } MessageToOneClient msg = new MessageToOneClient(); msg.PlayerID = msgRecv.ToPlayerID; msg.TeamID = msgRecv.TeamID; msg.Message = msgRecv.Message; msg.MessageType = MessageType.Send; serverCommunicator.SendMessage(msg); game.SendMessage(communicationToGameID[msgRecv.TeamID, msgRecv.PlayerID], communicationToGameID[msg.TeamID, msg.PlayerID], msgRecv.Message); }
internal void Authorize(MessageToServer receivedMessage, Socket handler) { User user = _database.SelectOneUser(receivedMessage.Username); if (user != null) { if (user.Password == receivedMessage.Password) { _connectedUsers.Add(receivedMessage.Username, handler); MessageFromServer message = new MessageFromServer() { Command = CommandFromServer.ACCEPTED, Id = user.Id, Name = user.Name }; handler.Send(message.EncodeMessage()); return; } } Reject(handler); }
internal static void Main() { ws = new WebSocket("ws://localhost:8080"); ws.OnError += (sender, args) => { //Console.WriteLine(args.Exception.ToString()); }; ws.OnOpen += (o, args) => { var join = new Join { Name = Prompt("name: "), Password = Prompt("pass: "******"room: ") }; ws.Send(join.ToByteArray()); }; ws.OnMessage += HandleJoinResponse; ws.Connect(); while (true) { var chat = new MessageToServer() { ChatToServer = new MessageToServer.Types.Chat { Text = Console.ReadLine(), }, Time = 0, }; ws.Send(chat.ToByteArray()); foreach (var b in chat.ToByteArray()) { Console.Write(b.ToString() + ", "); } Console.WriteLine(); } }
internal void Register(MessageToServer receivedMessage, Socket handler) { User user = _database.SelectOneUser(receivedMessage.Username); if (user != null) { Reject(handler); } else { _connectedUsers.Add(receivedMessage.Username, handler); user = new User(receivedMessage.Username, receivedMessage.Password, receivedMessage.Username); _database.Insert(user); user = _database.SelectOneUser(user.Username); MessageFromServer message = new MessageFromServer() { Command = CommandFromServer.ACCEPTED, Id = user.Id, Name = user.Name }; handler.Send(message.EncodeMessage()); } }
private void LabelClick(object sender, EventArgs e) //标签单击事件处理 { MouseEventArgs mouseEventArgs = (MouseEventArgs)e; Label label = sender as Label; if (mouseEventArgs.Button == MouseButtons.Left) { int x = label.Location.X + mouseEventArgs.X; int y = label.Location.Y + mouseEventArgs.Y; if (x < Interval || x > Interval + 50 * MapcellWidth) { return; } if (y < Interval || y > Interval + 50 * MapcellHeight) { return; } int xnum = (x - Interval) / MapcellWidth; int ynum = (y - Interval) / MapcellHeight; int colorstate = ColorState[xnum, ynum]; switch (colorstate) { case -2: //出生点:深灰色+边框 MapInfoPic.BorderStyle = (BorderStyle)FormBorderStyle.FixedSingle; MapInfoPic.BackColor = Color.DarkGray; MapInfoWord.Text = "这是出生点"; break; case -1: //墙体:黑色+边框 MapInfoPic.BorderStyle = (BorderStyle)FormBorderStyle.FixedSingle; MapInfoPic.BackColor = Color.Brown; MapInfoWord.Text = "这是墙体"; break; case 0: //未染色区域:淡灰 MapInfoPic.BackColor = Color.LightGray; MapInfoPic.BorderStyle = (BorderStyle)FormBorderStyle.None; MapInfoWord.Text = "这是未染色区域"; break; case 1: //队伍1:淡钢青色 MapInfoPic.BackColor = Color.LightSteelBlue; MapInfoPic.BorderStyle = (BorderStyle)FormBorderStyle.None; MapInfoWord.Text = "这是队伍1染色区域"; break; case 2: //队伍2:淡绿色 MapInfoPic.BackColor = Color.LightGreen; MapInfoPic.BorderStyle = (BorderStyle)FormBorderStyle.None; MapInfoWord.Text = "这是队伍2染色区域"; break; case 3: //队伍3:淡蓝色 MapInfoPic.BackColor = Color.LightBlue; MapInfoPic.BorderStyle = (BorderStyle)FormBorderStyle.None; MapInfoWord.Text = "这是队伍3染色区域"; break; case 4: //队伍4:淡粉色 MapInfoPic.BackColor = Color.LightPink; MapInfoPic.BorderStyle = (BorderStyle)FormBorderStyle.None; MapInfoWord.Text = "这是队伍4染色区域"; break; } } else if (mouseEventArgs.Button == MouseButtons.Right && !watch) { if (PlayerLabelSet.ContainsKey(selfguid)) { int y = this.PointToClient(Control.MousePosition).X; int x = this.PointToClient(Control.MousePosition).Y; MessageToServer msg = new MessageToServer(); msg.PlayerID = playerid; msg.TeamID = teamid; msg.MessageType = MessageType.Move; msg.Angle = Math.Atan2(y - PlayerLabelSet[selfguid].label.Location.X - 7, x - PlayerLabelSet[selfguid].label.Location.Y - 6);//目前为弧度 msg.TimeInMilliseconds = (int)(1000.0 * Math.Sqrt(Math.Pow((double)(y - PlayerLabelSet[selfguid].label.Location.X - 7), 2) + Math.Pow((double)(x - PlayerLabelSet[selfguid].label.Location.Y - 6), 2)) * Program.cell / MapcellHeight / movespeed + 0.5); //TO DO:向server发移动指令消息 Program.clientCommunicator.SendMessage(msg); } } }
void Start() { Debug.Log("开始初始化参数"); propManager = GetComponent <PropManager>(); heroManager = GetComponent <HeroManager>(); bulletManager = GetComponent <BulletManager>(); Debug.Log(Application.dataPath); string str = File.ReadAllText(Application.streamingAssetsPath + "/JobTest.txt"); /*TextAsset txt = Resources.Load("JobTest") as TextAsset; * string[] s = txt.text.Split(' ');*/ string[] s = str.Split(' '); port = (ushort)float.Parse(s[0]); teamId = (int)float.Parse(s[1]); playerId = (int)float.Parse(s[2]); jobN = (int)float.Parse(s[3]); // TO DO:初始化通信 messageToServer = new MessageToServer(); csharpClient = new CSharpClient(); csharpClient.OnReceive += delegate() { //Debug.Log("Message Received."); if (csharpClient.TryTake(out IMsg iMsg)) { switch (iMsg.PacketType) { case PacketType.MessageToClient: { MessageToClient msg = iMsg.Content as MessageToClient; //Debug.Log("msg received"); switch (msg.MessageType) { case MessageType.StartGame: GameStart(msg); break; case MessageType.Gaming: Refresh(msg); break; case MessageType.EndGame: GameOver(); break; default: break; } break; } case PacketType.MessageToOneClient: { MessageToOneClient msg = iMsg.Content as MessageToOneClient; //Debug.Log("msg received"); switch (msg.MessageType) { case MessageType.ValidPlayer: Debug.Log("Info Valid"); break; case MessageType.InvalidPlayer: Debug.Log("Info Invalid"); break; case MessageType.Send: Debug.Log("Info Send"); break; default: break; } break; } default: break; } } else { Debug.Log("Failed to pop a message"); } }; if (csharpClient.Connect("127.0.0.1", port)) { Debug.Log("成功连接Agent."); } else { Debug.Log("连接Agent失败."); Application.Quit(); } messageToServer.MessageType = MessageType.AddPlayer; messageToServer.TeamID = teamId; messageToServer.PlayerID = playerId; switch (jobN) { case 0: messageToServer.JobType = JobType.Job0; break; case 1: messageToServer.JobType = JobType.Job1; break; case 2: messageToServer.JobType = JobType.Job2; break; case 3: messageToServer.JobType = JobType.Job3; break; case 4: messageToServer.JobType = JobType.Job4; break; case 5: messageToServer.JobType = JobType.Job5; break; case 6: messageToServer.JobType = JobType.Job6; break; } csharpClient.SendMessage(messageToServer); //WebClient heros = new ConcurrentDictionary <long, HeroScript>(); props = new ConcurrentDictionary <long, PropScript>(); bullets = new ConcurrentDictionary <long, BulletScript>(); isCharactersExisted = new ConcurrentDictionary <long, bool>(); isPropsExisted = new ConcurrentDictionary <long, bool>(); isBulletsExisted = new ConcurrentDictionary <long, bool>(); laidList = new ConcurrentDictionary <long, bool>(); TaskQueue = new ConcurrentQueue <KeyValuePair <long, GameObjInfo> >(); LaidQueue = new ConcurrentQueue <GameObjInfo>(); isReady = false; myAngle = 0; isNewMessageToServer = false; for (int i = 0; i < 50; i++) { for (int j = 0; j < 50; j++) { mapColor[i, j] = 0; cellColor[i, j] = 0; } } Debug.Log("参数初始化完成"); }