Packages

final case class ProjectileStateMessage(projectile_guid: PlanetSideGUID, shot_pos: Vector3, shot_vel: Vector3, shot_original_orient: Vector3, sequence_num: Int, end: Boolean, hit_target_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable

Dispatched to deliberately control certain projectiles of a weapon on other players' clients.

This packet should be generated by firing specific weapons in specific fire modes. For example, the Phoenix (hunterseeker) discharged in its primary fire mode generates this packet; but, the Phoenix in secondary fire mode does not. The Striker (striker) discharged in its primary fire mode generates this packet; but, the Striker in secondary fire mode does not. The chosen fire mode(s) are not a straight-fire projectile but one that has special control asserted over it. For the Phoenix, it is user operated (camera-guided). For the Striker, it tracks towards a valid target while the weapon's reticle hovers over that target.

This packet will continue to be dispatched by the client for as long as the projectile being tracked is in the air. All projectiles have a maximum lifespan before they will lose control and either despawn and/or explode. This number is tracked in the packet for simplicity.
This control can not be demonstrated until that projectile is physically constructed on the other clients in the same way that a player or a vehicle is constructed. A projectile that exhibits intentional construction behavior is flagged using the property exists_on_remote_client. The model comes with a number of caveats, some that originate from the object construction process itself, but also some from this packet. For example, as indicated by the static shot_original_orient values reported by this packet. a discharged controlled projectile will not normally rotate. A minor loss of lifespan may be levied.

projectile_guid

when dispatched by the client, the client-specific local unique identifier of the projectile; when dispatched by the server, the global unique identifier for the synchronized projectile object

shot_pos

the position of the projectile

shot_vel

the velocity of the projectile

shot_original_orient

the orientation of the projectile when it was discharged

sequence_num

an incrementing index of the packet in this projectile's lifetime; suggests the "time alive" and indicates a place in packet ordering

end

indicates the projectile has reached the end of its lifespan; usually, it should explode

hit_target_guid

the global unique identifier of the object the projwectile collided with; will be 0 if it reached the end of its life naturally, without colliding with anything

Source
ProjectileStateMessage.scala
See also

ProjectileDefinition

RemoteProjectileData

Linear Supertypes
Product, Equals, PlanetSideGamePacket, PlanetSidePacket, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ProjectileStateMessage
  2. Product
  3. Equals
  4. PlanetSideGamePacket
  5. PlanetSidePacket
  6. Serializable
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new ProjectileStateMessage(projectile_guid: PlanetSideGUID, shot_pos: Vector3, shot_vel: Vector3, shot_original_orient: Vector3, sequence_num: Int, end: Boolean, hit_target_guid: PlanetSideGUID)

    projectile_guid

    when dispatched by the client, the client-specific local unique identifier of the projectile; when dispatched by the server, the global unique identifier for the synchronized projectile object

    shot_pos

    the position of the projectile

    shot_vel

    the velocity of the projectile

    shot_original_orient

    the orientation of the projectile when it was discharged

    sequence_num

    an incrementing index of the packet in this projectile's lifetime; suggests the "time alive" and indicates a place in packet ordering

    end

    indicates the projectile has reached the end of its lifespan; usually, it should explode

    hit_target_guid

    the global unique identifier of the object the projwectile collided with; will be 0 if it reached the end of its life naturally, without colliding with anything

Type Members

  1. type Packet = ProjectileStateMessage

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. def encode: Attempt[BitVector]
  7. val end: Boolean
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. val hit_target_guid: PlanetSideGUID
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. def opcode: GamePacketOpcode.Value
  17. def productElementNames: Iterator[String]
    Definition Classes
    Product
  18. val projectile_guid: PlanetSideGUID
  19. val sequence_num: Int
  20. val shot_original_orient: Vector3
  21. val shot_pos: Vector3
  22. val shot_vel: Vector3
  23. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  24. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  25. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  26. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Product

Inherited from Equals

Inherited from PlanetSideGamePacket

Inherited from PlanetSidePacket

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped