public static void sendStateToNetwork(this CarActor carActor, PacketWriter writer) { // read values from carActor and send over network: // position, orientation and velocity writer.Write(carActor.WorldTransform); writer.Write(carActor.LinearVelocity); writer.Write(carActor.AngularVelocity); }
public override void NetWrite(PacketWriter writer) { writer.Write(NetGame.MSG_PARTICLE); writer.Write(Particle.PARTICLE_FOG); writer.Write(Background); writer.Write(NetPacker.BigFloatToShort(Location.X)); writer.Write(NetPacker.BigFloatToShort(Location.Y)); }
/// <summary> /// Send the local gamer's local player count to network. /// </summary> public static void SendToNetwork(this LocalNetworkGamer localGamer) { PacketWriter writer = new PacketWriter(); writer.Write(PacketHeader.LOBBY_DATA); writer.Write(localGamer.GetLocalPlayerCount()); // send in order, since old data must not overwrite the new data. localGamer.SendData(writer, SendDataOptions.InOrder); }
public override void NetWrite(PacketWriter writer) { writer.Write(NetGame.MSG_PARTICLE); writer.Write(Particle.PARTICLE_HIT); writer.Write(Background); writer.Write(NetPacker.BigFloatToShort(Location.X)); writer.Write(NetPacker.BigFloatToShort(Location.Y)); writer.Write(NetPacker.BigFloatToShort(Trajectory.X)); writer.Write(NetPacker.BigFloatToShort(Trajectory.Y)); writer.Write(NetPacker.IntToSbyte(owner)); writer.Write(NetPacker.IntToSbyte(flag)); }
protected override void SendToNetwork(GameTime gameTime) { // write input to all players : // Packets are sent inorder to make sure the world state never goes backwards in time // Packets can still get lost, however. PacketWriter writer = new PacketWriter(); writer.Write(PacketHeader.INGAME_DATA); foreach (CarActor carActor in idTocarActorMap_[localGamer_.Id]) carActor.sendToNetwork(writer); localGamer_.SendData(writer, SendDataOptions.InOrder); }
public override void NetWrite(PacketWriter writer) { writer.Write(NetGame.MSG_PARTICLE); writer.Write(Particle.PARTICLE_MUZZLEFLASH); writer.Write(Background); writer.Write(NetPacker.BigFloatToShort(Location.X)); writer.Write(NetPacker.BigFloatToShort(Location.Y)); writer.Write(NetPacker.BigFloatToShort(Trajectory.X)); writer.Write(NetPacker.BigFloatToShort(Trajectory.Y)); writer.Write(NetPacker.SmallFloatToShort(size)); }
public override void NetWrite(PacketWriter writer) { writer.Write(NetGame.MSG_PARTICLE); writer.Write(Particle.PARTICLE_SHOCKWAVE); writer.Write(Background); writer.Write(NetPacker.BigFloatToShort(Location.X)); writer.Write(NetPacker.BigFloatToShort(Location.Y)); writer.Write(NetPacker.MidFloatToShort(size)); writer.Write(refract); }
public override void NetWrite(PacketWriter writer) { writer.Write(NetGame.MSG_PARTICLE); writer.Write(Particle.PARTICLE_SMOKE); writer.Write(Background); writer.Write(NetPacker.BigFloatToShort(Location.X)); writer.Write(NetPacker.BigFloatToShort(Location.Y)); writer.Write(NetPacker.BigFloatToShort(Trajectory.X)); writer.Write(NetPacker.BigFloatToShort(Trajectory.Y)); writer.Write(NetPacker.TinyFloatToByte(r)); writer.Write(NetPacker.TinyFloatToByte(g)); writer.Write(NetPacker.TinyFloatToByte(b)); writer.Write(NetPacker.TinyFloatToByte(a)); writer.Write(NetPacker.SmallFloatToShort(size)); writer.Write(NetPacker.IntToSbyte(flag)); }
public void ClientWriteNetworkPacket(PacketWriter packetWriter) { packetWriter.Write(PositionInput); packetWriter.Write(RotationInput); }
public void Update() { if (Session != null) { try { Session.Update(); } catch (Exception e) { e.ToString(); } foreach (LocalNetworkGamer gamer in Session.LocalGamers) { #region Send network data //write YOUR player data gamer.Tag = game1.Player; packetWriter.Write((Int16)0); packetWriter.Write(game1.Player.Pos); //write HOST data if (Session.IsHost) { packetWriter.Write((Int16)1); //1 = enemy updates for (int i = 0; i < Game1.MAX_ENEMIES; ++i) { packetWriter.Write(game1.enemy[i].Pos); packetWriter.Write(game1.enemy[i].CurrentAnimation); packetWriter.Write(game1.enemy[i].CurrentFrame); packetWriter.Write((Int16)game1.enemy[i].Flag); } } foreach (NetworkGamer remoteGamer in Session.RemoteGamers) gamer.SendData(packetWriter, SendDataOptions.InOrder, remoteGamer); packetWriter.Flush(); packetWriter = new PacketWriter(); #endregion #region Get network data while (gamer.IsDataAvailable) { NetworkGamer sender; gamer.ReceiveData(packetReader, out sender); if (!sender.IsLocal) { LivingEntity remotePlayer = sender.Tag as LivingEntity; if (remotePlayer == null) { Vector2 Pos = new Vector2(Map.MapSize / 2, Map.MapSize - 8); remotePlayer = new LivingEntity(Pos); } while (packetReader.Position < packetReader.Length) switch (packetReader.ReadInt16()) //get message type { case 0: //remote player pos update { remotePlayer.Pos = packetReader.ReadVector2(); break; } case 1: { for (int i = 0; i < Game1.MAX_ENEMIES; ++i) { game1.enemy[i].Pos = packetReader.ReadVector2(); game1.enemy[i].CurrentAnimation = packetReader.ReadInt16(); game1.enemy[i].CurrentFrame = packetReader.ReadInt16(); game1.enemy[i].Flag = packetReader.ReadInt16(); } break; } case 2: { //receive map! for (int i = 0; i < Map.MapSize; ++i) for (int j = 0; j < Map.MapSize; ++j) game1.GameMap.MapArray[i, j] = packetReader.ReadInt16(); break; } case 3: //only host responds to attacks { if (Session.IsHost) { int e = packetReader.ReadInt16(); remotePlayer.Attack(game1.enemy[e]); if (game1.enemy[e].CurrentHealth < 1) //death { packetWriter.Write((Int16)4); Int16 XPToAdd = (Int16)(game1.enemy[e].Level * (game1.enemy[e].Dexterity + game1.enemy[e].Speed + game1.enemy[e].Strength) / 3); packetWriter.Write((Int16)XPToAdd); game1.Player.XP += XPToAdd; game1.enemy[e].Pos.X = 236 + game1.rand.Next() % 40; game1.enemy[e].Pos.Y = 484 + game1.rand.Next() % 20; } } break; } case 4: //xp additions { game1.Player.XP += packetReader.ReadInt16(); break; } case 5: { if(gamer.Gamertag.GetHashCode() == packetReader.ReadInt32()) game1.Player.CurrentHealth -= packetReader.ReadInt16(); else packetReader.ReadInt16(); break; } case 6: { remotePlayer.Level = packetReader.ReadInt16(); remotePlayer.Dexterity = packetReader.ReadInt16(); remotePlayer.Speed = packetReader.ReadInt16(); remotePlayer.Strength = packetReader.ReadInt16(); remotePlayer.CurrentAnimation = packetReader.ReadInt16(); remotePlayer.CurrentFrame = packetReader.ReadInt16(); remotePlayer.isAttacking = packetReader.ReadBoolean(); if (remotePlayer.isAttacking) { remotePlayer.CurrentAnimationAttack = packetReader.ReadInt16(); remotePlayer.CurrentFrameAttack = packetReader.ReadInt16(); } break; } } sender.Tag = remotePlayer; } } #endregion } } }
/// <summary> /// Writes our local tank state into a network packet. /// </summary> public void WriteNetworkPacket(PacketWriter packetWriter, GameTime gameTime) { // Send our current time. packetWriter.Write((float)gameTime.TotalGameTime.TotalSeconds); // Send the current state of the tank. packetWriter.Write(simulationState.Position); packetWriter.Write(simulationState.Velocity); packetWriter.Write(simulationState.TankRotation); packetWriter.Write(simulationState.TurretRotation); // Also send our current inputs. These can be used to more accurately // predict how the tank is likely to move in the future. packetWriter.Write(tankInput); packetWriter.Write(turretInput); }
/// <summary> /// Serialize the current object to a packet. /// </summary> /// <param name="packetWriter">The packet writer that receives the data.</param> public void Serialize(PacketWriter packetWriter) { // safety-check the parameter, as it must be valid. if (packetWriter == null) { throw new ArgumentNullException("packetWriter"); } packetWriter.Write(ShipColor); packetWriter.Write(ShipVariation); }
public void ServerWriteNetworkPacket(PacketWriter packetWriter) { packetWriter.Write(simulationState.Position); packetWriter.Write(simulationState.Velocity); packetWriter.Write(simulationState.Rotation); packetWriter.Write(PositionInput); packetWriter.Write(RotationInput); }
public virtual void NetWrite(PacketWriter writer) { writer.Write(NetGame.MSG_PARTICLE); writer.Write(PARTICLE_NONE); writer.Write(Background); }
void tbs_TextSubmitted(object sender, EventArgs e) { string sentText = sender.Cast<TextBoxSprite>().RealText; PacketWriter dataSender = new PacketWriter(); dataSender.Write(sentText); session.LocalGamers[0].SendData(dataSender, SendDataOptions.ReliableInOrder); }
/// <summary> /// Serialize the object out to a packet. /// </summary> /// <param name="packetWriter">The packet to write to.</param> public void Serialize(PacketWriter packetWriter) { // safety-check the parameters, as they must be valid if (packetWriter == null) { throw new ArgumentNullException("packetWriter"); } packetWriter.Write((int)World.PacketTypes.ShipInput); packetWriter.Write(LeftStick); packetWriter.Write(RightStick); packetWriter.Write(MineFired); }
//private bool isAlive = true; //public virtual bool IsAlive { get { return isAlive; } set { isAlive = value; } } public void WriteNetworkPacket(PacketWriter packetWriter, GameTime gameTime) { // Send our current time. packetWriter.Write((float)gameTime.TotalGameTime.TotalSeconds); packetWriter.Write(livingState == LivingState.Alive); if (livingState == LivingState.Alive) { // Send the current state of the tank. packetWriter.Write(body.GetPosition().X); packetWriter.Write(body.GetPosition().Y); packetWriter.Write(body.GetLinearVelocity().X); packetWriter.Write(body.GetLinearVelocity().Y); } }
public static void sendInputToNetwork(this CarActor carActor, PacketWriter writer) { // read values from carActor and send over network: // accleration writer.Write(carActor.Acceleration); }
/// <summary> /// Helper method to write the network value to the PacketWriter /// </summary> /// <param name="packetWriter"></param> /// <param name="networkValue"></param> private static void WriteNetworkValue(ref PacketWriter packetWriter, object networkValue) { if (networkValue == null) throw new CoreException("NetworkValue is null"); else { if (networkValue is bool) packetWriter.Write((bool) networkValue); else if (networkValue is byte) packetWriter.Write((byte) networkValue); else if (networkValue is byte[]) { var tempByteArray = (byte[]) networkValue; packetWriter.Write(tempByteArray.Length); packetWriter.Write(tempByteArray); } else if (networkValue is char) packetWriter.Write((char) networkValue); else if (networkValue is char[]) { var tempCharArray = (char[]) networkValue; packetWriter.Write(tempCharArray.Length); packetWriter.Write(tempCharArray); } else if (networkValue is Color) packetWriter.Write((Color) networkValue); else if (networkValue is double) packetWriter.Write((double) networkValue); else if (networkValue is float) packetWriter.Write((float) networkValue); else if (networkValue is int) packetWriter.Write((int) networkValue); else if (networkValue is long) packetWriter.Write((long) networkValue); else if (networkValue is Matrix) packetWriter.Write((Matrix) networkValue); else if (networkValue is Quaternion) packetWriter.Write((Quaternion) networkValue); else if (networkValue is sbyte) packetWriter.Write((sbyte) networkValue); else if (networkValue is short) packetWriter.Write((short) networkValue); else if (networkValue is string) packetWriter.Write((string) networkValue); else if (networkValue is uint) packetWriter.Write((uint) networkValue); else if (networkValue is ulong) packetWriter.Write((ulong) networkValue); else if (networkValue is ushort) packetWriter.Write((ushort) networkValue); else if (networkValue is Vector2) packetWriter.Write((Vector2) networkValue); else if (networkValue is Vector3) packetWriter.Write((Vector3) networkValue); else if (networkValue is Vector4) packetWriter.Write((Vector4) networkValue); else { throw new CoreException("NetworkValue type isn't supported"); } } }
public void WriteToNet(PacketWriter writer) { writer.Write(NetGame.MSG_CHARACTER); writer.Write(NetPacker.IntToSbyte(charDef.DefID)); writer.Write(NetPacker.IntToSbyte(Team)); writer.Write(NetPacker.IntToSbyte(ID)); writer.Write(NetPacker.BigFloatToShort(Loc.X)); writer.Write(NetPacker.BigFloatToShort(Loc.Y)); writer.Write(NetPacker.IntToShort(Anim)); writer.Write(NetPacker.IntToShort(AnimFrame)); writer.Write(NetPacker.MidFloatToShort(frame)); if (State == CharState.Air) writer.Write(true); else writer.Write(false); if (Face == CharDir.Right) writer.Write(true); else writer.Write(false); writer.Write(NetPacker.BigFloatToShort(Trajectory.X)); writer.Write(NetPacker.BigFloatToShort(Trajectory.Y)); writer.Write(KeyRight); writer.Write(KeyLeft); writer.Write(NetPacker.IntToShort(HP)); }