public override void clientClone(ModPlayer clientClone) { TLPlayer clone = (TLPlayer)clientClone; clone.Level = Level; clone.Experience = Experience; }
public override void HandlePacket(BinaryReader reader, int whoAmI) { TLPacketType packetRecieved = (TLPacketType)reader.ReadByte(); switch (packetRecieved) { case TLPacketType.SyncJoiningPlayer: byte playerIndex = reader.ReadByte(); TLPlayer modPlayer = Main.player[playerIndex].GetModPlayer <TLPlayer>(); modPlayer.Level = reader.ReadInt32(); modPlayer.Experience = reader.ReadInt32(); break; case TLPacketType.SyncLevelData: playerIndex = reader.ReadByte(); modPlayer = Main.player[playerIndex].GetModPlayer <TLPlayer>(); modPlayer.Level = reader.ReadInt32(); modPlayer.Experience = reader.ReadInt32(); if (Main.netMode == NetmodeID.Server) { var packet = GetPacket(); packet.Write((byte)TLPacketType.SyncLevelData); packet.Write(playerIndex); packet.Write(modPlayer.Level); packet.Write(modPlayer.Experience); packet.Send(-1, playerIndex); } break; case TLPacketType.SyncProjectileExplosion: if (Main.netMode == NetmodeID.Server) { int projectileIndex = reader.ReadInt32(); ModPacket packet = GetPacket(); packet.Write((byte)TLPacketType.SyncProjectileExplosion); packet.Write(projectileIndex); packet.Send(ignoreClient: whoAmI); } else { int projectileIndex = reader.ReadInt32(); Projectile projectileAtIndex = Main.projectile[projectileIndex]; (projectileAtIndex.modProjectile as TLProjectile).AddExplosiveFlair(projectileAtIndex, true); } break; default: TLLogger.WarnFormat($"Unrecognized packet recieved: {packetRecieved}"); break; } }
public override void SendClientChanges(ModPlayer clientPlayer) { TLPlayer clone = (TLPlayer)clientPlayer; if (clone.Level != Level || clone.Experience != Experience) { var packet = mod.GetPacket(); packet.Write((byte)TLPacketType.SyncLevelData); packet.Write((byte)player.whoAmI); packet.Write(Level); packet.Write(Experience); packet.Send(); } }