private void Setup(CharacterEntity character, HelicopterEntity vehicle)
 {
     DataStream ds = new DataStream();
     DataWriter dw = new DataWriter(ds);
     dw.WriteLong(character.EID);
     dw.WriteByte(1); // TODO: Enum?
     dw.WriteLong(vehicle.EID);
     dw.Flush();
     Data = ds.ToArray();
     dw.Close();
 }
Exemplo n.º 2
0
 public AddCloudPacketOut(Cloud cloud)
 {
     UsageType = NetUsageType.CLOUDS;
     ID = ServerToClientPacket.ADD_CLOUD;
     DataStream ds = new DataStream();
     DataWriter dw = new DataWriter(ds);
     dw.WriteBytes(cloud.Position.ToDoubleBytes());
     dw.WriteBytes((cloud.Velocity + cloud.TheRegion.Wind).ToDoubleBytes());
     dw.WriteLong(cloud.CID);
     dw.WriteInt(cloud.Points.Count);
     for (int i = 0; i < cloud.Points.Count; i++)
     {
         dw.WriteBytes(cloud.Points[i].ToDoubleBytes());
         dw.WriteFloat((float)cloud.Sizes[i]);
         dw.WriteFloat((float)cloud.EndSizes[i]);
     }
     dw.Flush();
     Data = ds.ToArray();
     dw.Close();
 }
 private void Setup(CharacterEntity character, CarEntity vehicle)
 {
     DataStream ds = new DataStream();
     DataWriter dw = new DataWriter(ds);
     dw.WriteLong(character.EID);
     dw.WriteByte(0); // TODO: Enum?
     dw.WriteInt(vehicle.DrivingMotors.Count);
     dw.WriteInt(vehicle.SteeringMotors.Count);
     for (int i = 0; i < vehicle.DrivingMotors.Count; i++)
     {
         dw.WriteLong(vehicle.DrivingMotors[i].JID);
     }
     for (int i = 0; i < vehicle.SteeringMotors.Count; i++)
     {
         dw.WriteLong(vehicle.SteeringMotors[i].JID);
     }
     dw.Flush();
     Data = ds.ToArray();
     dw.Close();
 }
Exemplo n.º 4
0
 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;
 }