コード例 #1
0
ファイル: TLPlayer.cs プロジェクト: MutantWafflez/TerraLands
        public override void clientClone(ModPlayer clientClone)
        {
            TLPlayer clone = (TLPlayer)clientClone;

            clone.Level      = Level;
            clone.Experience = Experience;
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
ファイル: TLPlayer.cs プロジェクト: MutantWafflez/TerraLands
        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();
            }
        }