private void HandleMapCheck(PacketReceivedEventArgs args) { var mapName = args.Message.ReadString(); var mapVersion = args.Message.ReadInt32(); var mapExistence = File.Exists(Constants.FILEPATH_CACHE + "Maps/" + mapName + ".map"); var mapVersionMatch = false; if (mapExistence == true) { this.Map = new World.Map(); this.Map.LoadCache(mapName); mapVersionMatch = (this.Map.Version == mapVersion); } var net = ServiceLocator.NetManager; var packet = new Packet(PacketType.MapCheckPacket); packet.Message.Write(mapExistence & mapVersionMatch); net.SendMessage(packet.Message, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD); }
private void SendMovement(int x, int y, Directions direction) { var packet = new Packet(PacketType.PlayerMovementPacket); packet.Message.Write(x); packet.Message.Write(y); packet.Message.Write((byte)this.Direction); ServiceLocator.NetManager.SendMessage(packet.Message, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD); }
public void TryDropInventoryItem(int mouseX, int mouseY) { var slotNum = this.MouseCordToSlotNum(mouseX, mouseY); if (this.GetInventoryItem(slotNum) == null) return; var dropItemPacket = new Packet(PacketType.DropItemPacket); dropItemPacket.Message.Write(slotNum); ServiceLocator.NetManager.SendMessage(dropItemPacket.Message, NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD); }
private void buttonSendRegistartion_LeftMouseClickedCallback(object sender, CallbackArgs e) { ServiceLocator.NetManager.Connect(); var registrationPacket = new Packet(PacketType.RegistrationPacket); registrationPacket.Message.Write(this.GUI.Get<EditBox>("textUser").Text); registrationPacket.Message.Write(this.GUI.Get<EditBox>("textPassword").Text); ServiceLocator.NetManager.SendMessage(registrationPacket.Message, NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD); }
private void buttonSendLogin_LeftMouseClickedCallback(object sender, CallbackArgs e) { this.GUI.Get<Label>("labelStatus").Text = "Connecting to the server..."; this.GUI.Get<Label>("labelStatus").Position = new Vector2f((Window.Size.X / 2) - (this.GUI.Get<Label>("labelStatus").Size.X / 2), 50); ServiceLocator.NetManager.Connect(); this.GUI.Get<Label>("labelStatus").Text = "Connected! Sending login information..."; this.GUI.Get<Label>("labelStatus").Position = new Vector2f((Window.Size.X / 2) - (this.GUI.Get<Label>("labelStatus").Size.X / 2), 50); var loginPacket = new Packet(PacketType.LoginPacket); loginPacket.Message.Write(this.GUI.Get<EditBox>("textUser").Text); loginPacket.Message.Write(this.GUI.Get<EditBox>("textPassword").Text); ServiceLocator.NetManager.SendMessage(loginPacket.Message, NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD); }
public void TryPickupItem() { var playerManager = ServiceLocator.WorldManager.PlayerManager; var x = playerManager.GetPlayer(playerManager.ClientID).Position.X * 32; var y = playerManager.GetPlayer(playerManager.ClientID).Position.Y * 32; var mapItem = this.FindMapItem(new Vector2f(x, y)); if (mapItem == null) return; var packet = new Packet(PacketType.PickupItemPacket); packet.Message.Write(x); packet.Message.Write(y); ServiceLocator.NetManager.SendMessage(packet.Message, NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD); }
private void textMyChat_ReturnKeyPressedCallback(object sender, CallbackArgs e) { var textMyChat = this.GUI.Get<EditBox>("textMyChat"); var chatMessagePacket = new Packet(PacketType.ChatMessagePacket); chatMessagePacket.Message.Write(textMyChat.Text); ServiceLocator.NetManager.SendMessage(chatMessagePacket.Message, NetDeliveryMethod.Unreliable, ChannelTypes.CHAT); textMyChat.Text = ""; }
private void HandleMapData(PacketReceivedEventArgs args) { var map = new Map { Name = args.Message.ReadString(), Version = args.Message.ReadInt32() }; map.ResizeMap(args.Message.ReadInt32(), args.Message.ReadInt32()); for (int x = 0; x < map.Width; x++) { for (int y = 0; y < map.Height; y++) { map.SetTile(x, y, new Map.Tile()); map.GetTile(x, y).Blocked = args.Message.ReadBoolean(); foreach (Map.Layers layer in Enum.GetValues(typeof(Map.Layers))) { if (!args.Message.ReadBoolean()) continue; var textureNumber = args.Message.ReadInt32(); var left = args.Message.ReadInt32(); var top = args.Message.ReadInt32(); var width = args.Message.ReadInt32(); var height = args.Message.ReadInt32(); var textureRect = new IntRect(left, top, width, height); var tileSprite = new Sprite(ServiceLocator.ScreenManager.ActiveScreen.TextureManager.GetTexture("tileset" + textureNumber.ToString())) { TextureRect = textureRect }; map.GetTile(x, y).SetLayer(layer, new Map.Tile.Layer(tileSprite, x, y)); } } } var mapNpcCount = args.Message.ReadInt32(); for (int i = 0; i < mapNpcCount; i++) { var npc = new Npc() { Name = args.Message.ReadString(), Level = args.Message.ReadInt32(), Sprite = new Sprite(ServiceLocator.ScreenManager.ActiveScreen.TextureManager.GetTexture("npc" + args.Message.ReadInt32())), }; var position = args.Message.ReadVector(); npc.Position = new SFML.System.Vector2i(position.X, position.Y); } map.CacheMap(); this.Map = map; // Notify the server that we're now in the game. var net = ServiceLocator.NetManager; var packet = new Packet(PacketType.MapCheckPacket); packet.Message.Write(true); net.SendMessage(packet.Message, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD); }