public byte[] GetCharacterNetData() { DataStream ds = new DataStream(); DataWriter dr = new DataWriter(ds); dr.WriteBytes(GetPosition().ToDoubleBytes()); Quaternion quat = GetOrientation(); dr.WriteFloat((float)quat.X); dr.WriteFloat((float)quat.Y); dr.WriteFloat((float)quat.Z); dr.WriteFloat((float)quat.W); dr.WriteFloat((float)GetMass()); dr.WriteFloat((float)CBAirForce); dr.WriteFloat((float)CBAirSpeed); dr.WriteFloat((float)CBCrouchSpeed); dr.WriteFloat((float)CBDownStepHeight); dr.WriteFloat((float)CBGlueForce); dr.WriteFloat((float)CBHHeight); dr.WriteFloat((float)CBJumpSpeed); dr.WriteFloat((float)CBMargin); dr.WriteFloat((float)CBMaxSupportSlope); dr.WriteFloat((float)CBMaxTractionSlope); dr.WriteFloat((float)CBProneSpeed); dr.WriteFloat((float)CBRadius); dr.WriteFloat((float)CBSlideForce); dr.WriteFloat((float)CBSlideJumpSpeed); dr.WriteFloat((float)CBSlideSpeed); dr.WriteFloat((float)CBStandSpeed); dr.WriteFloat((float)CBStepHeight); dr.WriteFloat((float)CBTractionForce); dr.WriteFloat((float)mod_xrot); dr.WriteFloat((float)mod_yrot); dr.WriteFloat((float)mod_zrot); dr.WriteFloat((float)mod_scale); dr.WriteInt(mod_color.ToArgb()); byte dtx = 0; if (Visible) { dtx |= 1; } if (CGroup == CollisionUtil.Solid) { dtx |= 2; } else if (CGroup == CollisionUtil.NonSolid) { dtx |= 4; } else if (CGroup == CollisionUtil.Item) { dtx |= 2 | 4; } else if (CGroup == CollisionUtil.Player) { dtx |= 8; } else if (CGroup == CollisionUtil.Water) { dtx |= 2 | 8; } else if (CGroup == CollisionUtil.WorldSolid) { dtx |= 2 | 4 | 8; } else if (CGroup == CollisionUtil.Character) { dtx |= 16; } dr.Write(dtx); dr.WriteInt(TheServer.Networking.Strings.IndexForString(model)); dr.Flush(); byte[] Data = ds.ToArray(); dr.Close(); return Data; }