public void SendMessage(SRActionMessage action) { NetOutgoingMessage msg = client.CreateMessage(); msg.Write(NetworkSerializer.SerializeObject(action)); client.SendMessage(msg, NetDeliveryMethod.ReliableOrdered); }
public void SetPlayerInfo(PlayerInfo info) { GameState.Instance.SetPlayerInfo(info); ClientHandler.Instance.SetHandler(new IngameMessageHandler()); SRActionMessage msg = new SRActionMessage(ActionType.GetMapData, ServiceType.Map); msg.args[ArgumentName.PlayerId] = info.id; ClientHandler.Instance.SendMessage(msg); }
void SendLogin() { SRActionMessage msg = new SRActionMessage(ActionType.DoLogin, ServiceType.Login); msg.args = new Dictionary <ArgumentName, object>() { { ArgumentName.LoginUsername, "stryfe" }, { ArgumentName.LoginPassword, "123" } }; ClientHandler.Instance.SendMessage(msg); }
public void Run() { // Client initialization config = new NetPeerConfiguration("stryferpg"); client = new NetClient(config); client.Start(); client.Connect("localhost", 1234); handler = new LoginMessageHandler(); // Messages receipt NetIncomingMessage message; while (!stop) { while ((message = client.ReadMessage()) != null) { switch (message.MessageType) { case NetIncomingMessageType.Data: SROrderMessage msg = NetworkSerializer.DeserializeObject <SROrderMessage>(message.ReadBytes(message.LengthBytes)); handler.Handle(msg); break; case NetIncomingMessageType.StatusChanged: switch (message.SenderConnection.Status) { case NetConnectionStatus.Connected: Console.WriteLine("Connected"); Console.WriteLine("Asking for server list..."); SRActionMessage action = new SRActionMessage(ActionType.GetServerList, ServiceType.Login); SendMessage(action); break; } break; case NetIncomingMessageType.DebugMessage: Console.WriteLine(message.ReadString()); break; default: Console.WriteLine("unhandled message with type: " + message.MessageType); break; } } Thread.Sleep(1); } }
void UpdateMapInfo(Dictionary <ArgumentName, object> info) { // Sets players around Stryfe.Instance.ChangeScene(Scene.SceneType.Game); MapManager.Instance.UpdatePlayers(info[ArgumentName.VisiblePlayers] as List <PlayerInfo>); // Updates itself for other players SRActionMessage msg = new SRActionMessage(ActionType.UpdatePosition, ServiceType.Map); msg.args[ArgumentName.PlayerInfo] = GameState.Instance.playerInfo; ClientHandler.Instance.SendMessage(msg); // Sets NPCs around // Sets enemies around }
public void Handle(SRActionMessage msg, NetConnection conn) { switch (msg.type) { case ActionType.GetMapData: SendMapData((int)msg.args[ArgumentName.PlayerId], conn); break; case ActionType.UpdatePosition: UpdatePlayerPosition(msg.args, conn); break; default: break; } }
public void Send(ActionType type, Dictionary <ArgumentName, object> args) { SRActionMessage msg = null; switch (type) { case ActionType.UpdatePosition: msg = new SRActionMessage(type, ServiceType.Map); msg.args = args; break; } if (msg != null) { ClientHandler.Instance.SendMessage(msg); } }
public void Handle(SRActionMessage msg, NetConnection conn) { switch (msg.type) { case ActionType.DoLogin: if (msg.args.ContainsKey(ArgumentName.LoginUsername) && msg.args.ContainsKey(ArgumentName.LoginPassword)) { DoLogin(msg.args[ArgumentName.LoginUsername] as string, msg.args[ArgumentName.LoginPassword] as string, conn); } break; case ActionType.GetServerList: SendServerList(conn); break; default: break; } }
public void Run() { // Server initialization config = new NetPeerConfiguration("stryferpg"); config.Port = 1234; server = new NetServer(config); server.Start(); //TODO: services initialization // Messages receipt bool stop = false; NetIncomingMessage message; while (!stop) { while ((message = server.ReadMessage()) != null) { switch (message.MessageType) { case NetIncomingMessageType.Data: SRActionMessage action = NetworkSerializer.DeserializeObject <SRActionMessage>(message.ReadBytes(message.LengthBytes)); switch (action.serviceType) { case ServiceType.Login: LoginService.Instance.Handle(action, message.SenderConnection); break; case ServiceType.Char: break; case ServiceType.Map: MapService.Instance.Handle(action, message.SenderConnection); break; } break; case NetIncomingMessageType.StatusChanged: Console.WriteLine("StatusChanged"); switch (message.SenderConnection.Status) { case NetConnectionStatus.Connected: Console.WriteLine("Connected"); break; } break; case NetIncomingMessageType.DebugMessage: Console.WriteLine(message.ReadString()); break; default: Console.WriteLine("unhandled message with type: " + message.MessageType); break; } } //stop = Console.ReadKey().Key == ConsoleKey.S; Thread.Sleep(1); } }