protected override void HandleReceivedMessage(object sender, ServerLinkMessageEvent message) { switch (message.MessageType) { case MessageType.MsgPlayerServerUpdate: { MsgPlayerServerUpdatePacket packet = (MsgPlayerServerUpdatePacket)message.MessageData; // we are only interested if it is an update about this remote player if (packet.Slot != Slot) break; // save our old stuff oldPosition = Position; oldRotation = Rotation; // and set our new location newPosition = packet.Position; newRotation = packet.Rotation; // and set our last update lastMsgUpdate = message.Time.TotalGameTime; break; } default: break; } base.HandleReceivedMessage(sender, message); }
protected virtual void HandleReceivedMessage(object sender, ServerLinkMessageEvent message) { return; }
private void HandleReceivedMessage(object sender, ServerLinkMessageEvent message) { switch (message.MessageType) { case MessageType.MsgWorld: Console.WriteLine("Loading map..."); MsgWorldPacket worldPacket = (MsgWorldPacket)message.MessageData; LoadMap(worldPacket.Map); Console.WriteLine(String.Format("Map \"{0}\" loaded.", WorldName)); break; case MessageType.MsgDeath: MsgDeathPacket deathPacket = (MsgDeathPacket)message.MessageData; Player killee = PlayerManager.GetPlayerBySlot(deathPacket.Slot); Player killer = PlayerManager.GetPlayerBySlot(deathPacket.Killer); if (killee == null || killer == null) return; ConsoleMessageLine consoleMessage; if (killer == PlayerManager.LocalPlayer) { consoleMessage = new ConsoleMessageLine( "You killed ", Color.White, killee.Callsign, ProtocolHelpers.TeamTypeToColor(killer.Team)); } else { consoleMessage = new ConsoleMessageLine( killee.Callsign, ProtocolHelpers.TeamTypeToColor(killee.Team), " was killed by ", Color.White, killer.Callsign, ProtocolHelpers.TeamTypeToColor(killer.Team)); } Console.WriteLine(consoleMessage); break; default: break; } }
private void FireMessageEvent(GameTime gameTime, MsgBasePacket msgData) { EventHandler<ServerLinkMessageEvent> handler = MessageReceivedEvent; // prevent race condition if (handler != null) { // notify delegates attached to event ServerLinkMessageEvent e = new ServerLinkMessageEvent(msgData.MsgType, msgData, ServerLinkStatus, gameTime); handler(this, e); } }
protected virtual void HandleReceivedMessage(object sender, ServerLinkMessageEvent message) { switch (message.MessageType) { case MessageType.MsgSpawn: { MsgSpawnPacket packet = (MsgSpawnPacket)message.MessageData; // only interested in it if it's us that is spawning if (packet.Slot == this.Slot) { Spawn(packet.Position, packet.Rotation); } break; } case MessageType.MsgDeath: { MsgDeathPacket packet = (MsgDeathPacket)message.MessageData; // only interested in it if it's us that was killed if (packet.Slot == this.Slot) { Die(World.PlayerManager.GetPlayerBySlot(packet.Killer)); } break; } case MessageType.MsgScore: { MsgScorePacket packet = (MsgScorePacket)message.MessageData; // only interested in it if it's our new score if (packet.Slot == this.Slot) { this.Score = packet.Score; } break; } case MessageType.MsgEndShot: { MsgEndShotPacket packet = (MsgEndShotPacket)message.MessageData; // only interested if it's a shot by this player that's ending if (packet.Slot == this.Slot) { try { Shots[packet.ShotSlot].End(packet.Explode); } catch (KeyNotFoundException e) { Log.Warn(e.Message); Log.Warn(e.StackTrace); } } break; } default: break; } return; }
private void HandleReceivedMessage(object sender, ServerLinkMessageEvent message) { switch (message.MessageType) { case MessageType.MsgAddPlayer: { MsgAddPlayerPacket packet = (MsgAddPlayerPacket)message.MessageData; if (message.ServerLinkStatus == NetServerLinkStatus.Connected) world.Console.WriteLine(String.Format("{0} has joined the {1}", packet.Player.Callsign, packet.Player.Team)); else if (message.ServerLinkStatus == NetServerLinkStatus.GettingState) world.Console.WriteLine(String.Format("{0} is on the {1}", packet.Player.Callsign, packet.Player.Team)); if (!packet.AddMyself) AddPlayer(packet.Player); else localPlayer = new LocalPlayer(world, packet.Player); break; } case MessageType.MsgRemovePlayer: { MsgRemovePlayerPacket packet = (MsgRemovePlayerPacket)message.MessageData; world.Console.WriteLine(String.Format("{0} has left the server ({1})", GetPlayerBySlot(packet.Slot).Callsign, packet.Reason)); RemovePlayer(packet.Slot); break; } default: break; } }
protected override void HandleReceivedMessage(object sender, ServerLinkMessageEvent message) { base.HandleReceivedMessage(sender, message); }
private void HandleReceivedMessage(object sender, ServerLinkMessageEvent message) { switch (message.MessageType) { case MessageType.MsgWorld: console.WriteLine("Loading map..."); MsgWorldPacket msgWorldData = (MsgWorldPacket)message.MessageData; LoadMap(msgWorldData.Map); console.WriteLine(String.Format("Map \"{0}\" loaded.", WorldName)); break; default: break; } }