Common preparation for interfacing with a vehicle.
Common preparation for interfacing with a vehicle. Join a vehicle-specific group for shared updates. Construct every object in the vehicle's inventory fpr shared manipulation updates.
the vehicle
The player learned a new certification.
The player learned a new certification. Update the deployables user interface elements if it was an "Engineering" certification. The certification "Advanced Hacking" also relates to an element.
the certification that was added
all applicable certifications
Distribute information that a deployable has been destroyed.
Distribute information that a deployable has been destroyed.
The deployable may not have yet been eliminated from the game world (client or server),
but its health is zero and it has entered the conditions where it is nearly irrelevant.
The typical use case of this function involves destruction via weapon fire, attributed to a particular player.
Contrast this to simply destroying a deployable by being the deployable's owner and using the map icon controls.
This function eventually invokes the same routine
but mainly goes into effect when the deployable has been destroyed
and may still leave a physical component in the game world to be cleaned up later.
That is the task EliminateDeployable
performs.
Additionally, since the player who destroyed the deployable isn't necessarily the owner,
and the real owner will still be aware of the existence of the deployable,
that player must be informed of the loss of the deployable directly.
the deployable that is destroyed
length of time that the deployable is allowed to exist in the game world;
None
indicates the normal un-owned existence time (180 seconds)
DeconstructDeployable
LocalResponse.EliminateDeployable
Vitality.DamageResolution
DeployableRemover
Restore, at most, a specific amount of personal armor points on a player.
Restore, at most, a specific amount of personal armor points on a player. Send messages to connected client and to events system.
the player
the amount to repair; 10 by default
whether the player can be repaired for any more armor points
A part of the process of spawning the player into the game world.
A part of the process of spawning the player into the game world.
The function should work regardless of whether the player is alive or dead - it will make them alive.
It adds the WSA
-current Player
to the current zone and sends out the expected packets.
If that player is the driver of a vehicle, it will construct the vehicle.
If that player is the occupant of a vehicle, it will place them inside that vehicle.
These two previous statements operate through similar though distinct mechanisms and actually imply different conditions.
The vehicle will not be created unless the player is a living driver;
but, the second statement will always trigger so long as the player is in a vehicle.
The first produces a version of the player more suitable to be "another player in the game," and not "the avatar."
The second would write over the product of the first to produce "the avatar."
The vehicle should only be constructed once as, if it created a second time, that distinction will become lost.
TransportVehicleChannelName
ReloadVehicleAccessPermissions
Player.Spawn
LoadZoneTransferPassengerMessages
GetKnownVehicleAndSeat
AvatarCreateInVehicle
CargoMountBehaviorForOthers
BeginZoningMessage
Create an avatar character as if that avatar's player is mounted in a vehicle object's seat.
This is a very specific configuration of the player character that is not visited very often.
Create an avatar character as if that avatar's player is mounted in a vehicle object's seat.
This is a very specific configuration of the player character that is not visited very often.
The value of player.VehicleSeated
should be set to accommodate Packet.DetailedConstructorData
and,
though not explicitly checked,
should be the same as the globally unique identifier that is assigned to the vehicle
parameter for the current zone.
The priority of this function is consider "initial" so it introduces the avatar to the game world in this state
and is permitted to introduce the avatar to the vehicle's internal settings in a similar way.
the player avatar seated in the vehicle's seat
the vehicle the player is driving
the seat index
UpdateWeaponAtSeatPosition
AccessContents
Gives a target player positive battle experience points only.
Gives a target player positive battle experience points only. If the player has access to more implant slots as a result of changing battle experience points, unlock those slots.
the player
the change in experience points, positive by assertion
the player's current battle experience points
Before a vehicle is removed from the game world, the following actions must be performed.
Before a vehicle is removed from the game world, the following actions must be performed.
the vehicle
Common reporting behavior when a Deployment
object fails to properly transition between states.
Common reporting behavior when a Deployment
object fails to properly transition between states.
the game object that could not
the DriveState
that could not be promoted
a string explaining why the state can not or will not change
Cease all current interactions with proximity-based units.
Cease all current interactions with proximity-based units.
Pair with PlayerActionsToCancel
, except when logging out (stopping).
This operations may invoke callback messages.
postStop
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet to everyone.
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet to everyone.
the ferrying vehicle
the ferried vehicle
the point on the ferryoing vehicle where the ferried vehicle is attached
a tuple composed of an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
ObjectAttachMessage
CargoMountPointStatusMessage
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet to all other clients, not this one.
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet to all other clients, not this one.
the ferrying vehicle
the ferried vehicle
the point on the ferryoing vehicle where the ferried vehicle is attached
a tuple composed of an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
ObjectAttachMessage
CargoMountPointStatusMessage
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet only to this client.
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet only to this client.
the ferrying vehicle
the ferried vehicle
the point on the ferryoing vehicle where the ferried vehicle is attached
a tuple composed of an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
ObjectAttachMessage
CargoMountPointStatusMessage
Produce an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
that will set up a realized parent-child association between a ferrying vehicle and a ferried vehicle.
Produce an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
that will set up a realized parent-child association between a ferrying vehicle and a ferried vehicle.
the point on the ferryoing vehicle where the ferried vehicle is attached
a tuple composed of an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
ObjectAttachMessage
CargoMountPointStatusMessage
Produce an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
that will set up a realized parent-child association between a ferrying vehicle and a ferried vehicle.
Produce an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
that will set up a realized parent-child association between a ferrying vehicle and a ferried vehicle.
the ferrying vehicle
the ferried vehicle
the point on the ferryoing vehicle where the ferried vehicle is attached; also known as a "cargo hold"
a tuple composed of an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet
ObjectAttachMessage
CargoOrientation
CargoMountPointStatusMessage
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet to all other clients, not this one.
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet to all other clients, not this one.
an ObjectAttachMessage
packet suitable for initializing cargo operations
a CargoMountPointStatusMessage
packet suitable for initializing cargo operations
ObjectAttachMessage
CargoMountPointStatusMessage
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet only to this client.
Dispatch an ObjectAttachMessage
packet and a CargoMountPointStatusMessage
packet only to this client.
an ObjectAttachMessage
packet suitable for initializing cargo operations
a CargoMountPointStatusMessage
packet suitable for initializing cargo operations
ObjectAttachMessage
CargoMountPointStatusMessage
The orientation of a cargo vehicle as it is being loaded into and contained by a carrier vehicle.
The orientation of a cargo vehicle as it is being loaded into and contained by a carrier vehicle. The type of carrier is not an important consideration in determining the orientation, oddly enough.
the cargo vehicle
the orientation as an Integer
value;
0
for almost all cases
Destroy a ConstructionItem
object that can be found in the indexed slot.
Destroy a ConstructionItem
object that can be found in the indexed slot.
the ConstructionItem
object currently in the slot (checked)
the slot index
Player.Find
Compare sets of certifications to determine if
the requested Engineering
-like certification requirements of the one group can be found in a another group.
Compare sets of certifications to determine if
the requested Engineering
-like certification requirements of the one group can be found in a another group.
the certifications to be compared against
the desired certifications
true
, if the desired certification requirements are met; false
, otherwise
CertificationType
The counting function for an item of AmmoBox
.
The counting function for an item of AmmoBox
.
Counts the Capacity
of the ammunition.
the Equipment
object
the quantity
The counting function for an item of Tool
where the item is also a grenade.
The counting function for an item of Tool
where the item is also a grenade.
Counts the number of grenades.
the Equipment
object
the quantity
GlobalDefinitions.isGrenade
Given an origin and a destination, determine how long the process of traveling should take in reconstruction time.
Given an origin and a destination, determine how long the process of traveling should take in reconstruction time. For most destinations, the unit of receiving ("spawn point") determines the reconstruction time. In a special consideration, travel to any sanctuary or sanctuary-special zone should be as immediate as zone loading.
the zone where the target is headed
the unit the target is using as a destination
the zone where the target current is located
how long in seconds the spawning process will take
Create the mechanism that serves as one endpoint of the linked router teleportation system.
Technically, the mechanism - an InternalTelepad
object - is always made to exist
due to how the Router vehicle object is encoded into an ObjectCreateMessage
packet.
Create the mechanism that serves as one endpoint of the linked router teleportation system.
Technically, the mechanism - an InternalTelepad
object - is always made to exist
due to how the Router vehicle object is encoded into an ObjectCreateMessage
packet.
Regardless, that internal mechanism is created anew each time the system links a new remote telepad.
the vehicle that houses one end of the teleportation system (the internalTelepad
)
the endpoint of the teleportation system housed by the router
Common behavior for deconstructing deployables in the game environment.
Common behavior for deconstructing deployables in the game environment.
the deployable
the globally unique identifier for the deployable
the previous position of the deployable
the previous orientation of the deployable
the value passed to ObjectDeleteMessage
concerning the deconstruction animation
Common behavior for deconstructing expended explosive deployables in the game environment.
Common behavior for deconstructing expended explosive deployables in the game environment.
the deployable
the globally unique identifier for the deployable
the previous position of the deployable
The default counting function for an item.
The default counting function for an item. Counts the number of item(s).
the Equipment
object
the quantity; always one
Common actions related to constructing a new Deployable
object in the game environment.
Besides the standard ObjectCreateMessage
packet that produces the model and game object on the client,
two messages are dispatched in accordance with enforced deployable limits.
Common actions related to constructing a new Deployable
object in the game environment.
Besides the standard ObjectCreateMessage
packet that produces the model and game object on the client,
two messages are dispatched in accordance with enforced deployable limits.
The first limit of note is the actual number of a specific type of deployable can be placed.
The second limit of note is the actual number of a specific group (category) of deployables that can be placed.
For example, the player can place 25 mines but that count adds up all types of mines;
specific mines have individual limits such as 25 and 5 and only that many of that type can be placed at once.
Depending on which limit is encountered, an "oldest entry" is struck from the list to make space.
This generates the first message - "@*OldestDestroyed."
The other message is generated if the number of that specific type of deployable
or the number of deployables available in its category
matches against the maximum count allowed.
This generates the second message - "@*LimitReached."
These messages are mutually exclusive, with "@*OldestDestroyed" taking priority over "@*LimitReached."
The map icon for the deployable just introduced is also created on the clients of all faction-affiliated players.
This icon is important as, short of destroying it,
the owner has no other means of controlling the created object that it is associated with.
the Deployable
object to be built
Perform specific operations depending on the target of deployment.
Perform specific operations depending on the target of deployment.
the object that has had its deployment state changed
the new deployment state
Perform specific operations depending on the target of deployment.
Perform specific operations depending on the target of deployment.
the object that has had its deployment state changed
Properly format a DestroyDisplayMessage
packet
given sufficient information about a target (victim) and an actor (killer).
Properly format a DestroyDisplayMessage
packet
given sufficient information about a target (victim) and an actor (killer).
For the packet, the *_charId
field is most important to determining distinction between players.
The "char id" is not a currently supported field for different players so a name hash is used instead.
The virtually negligent chance of a name hash collision is covered.
the killer's entry
the victim's entry
the manner of death
na;
defaults to 121, the object id of avatar
a DestroyDisplayMessage
packet that is properly formatted
Common activities/procedure when a player dismounts a valid object.
Common activities/procedure when a player dismounts a valid object.
the player
the mountable object
the seat out of which which the player is disembarking
na
na
na
na
na
na
na
Vehicle cleanup that is specific to log out behavior.
Collect all deployables previously owned by the player, dissociate the avatar's globally unique identifier to remove turnover ownership, and, on top of performing the above manipulations, dispose of any boomers discovered.
Collect all deployables previously owned by the player,
dissociate the avatar's globally unique identifier to remove turnover ownership,
and, on top of performing the above manipulations, dispose of any boomers discovered.
(BoomerTrigger
objects, the companions of the boomers, should be handled by an external implementation
if they had not already been handled by the time this function is executed.)
all previously-owned deployables after they have been processed; boomers are listed before all other deployable types
Disassociate a player from a vehicle that he owns.
Disassociate a player from a vehicle that he owns. The vehicle must exist in the game world on the current continent. This is similar but unrelated to the natural exchange of ownership when someone else sits in the vehicle's driver seat. This is the player side of vehicle ownership removal.
the player
Disassociate this client's player (oneself) from a vehicle that he owns.
Do not draw any icon for this deployable object.
When a client first joins a zone, all deployables are drawn on the continent map once.
Do not draw any icon for this deployable object.
When a client first joins a zone, all deployables are drawn on the continent map once.
Should the player place any deployables, those deployables belong to that player.
Ownership causes icon to be drawn in yellow to the player (as opposed to a white icon)
and that signifies a certain level of control over the deployable, at least the ability to quietly deconstruct it.
Under normal death/respawn cycles while the player is in a given zone,
the map icons for owned deployables remain manipulable by that given user.
They do not have to be redrawn to stay accurate.
Upon leaving a zone, where the icons are erased, and returning back to the zone, where they are drawn again,
the deployables that a player owned should be restored in terms of their map icon visibility.
This control can not be recovered, however, until they are updated with the player's globally unique identifier.
Since the player does not need to redraw his own deployable icons each time he respawns,
but will not possess a valid GUID for that zone until he spawns in it at least once,
this function swaps out with another after the first spawn in any given zone.
It stays swapped in until the player changes zones.
a Deployable
object
SetCurrentAvatar
RedrawDeployableIcons
In the background, a list of advanced mobile spawn vehicles that are deployed in the zone is being updated constantly.
In the background, a list of advanced mobile spawn vehicles that are deployed in the zone is being updated constantly. Select, from this list, the AMS that is closest to the player's current or last position and draw its spawn selection icon onto the deployment map.
DeadState.Release
BindPlayerMessage
Place the current vehicle under the control of the driver's commands, but leave it in a cancellable auto-drive.
Place the current vehicle under the control of the driver's commands, but leave it in a cancellable auto-drive.
the vehicle
how fast the vehicle is moving forward
whether the vehicle is ascending or not, if the vehicle is an applicable type
A predicate used to determine if an InventoryItem
object contains Equipment
that should be dropped.
A predicate used to determine if an InventoryItem
object contains Equipment
that should be dropped.
Used to filter through lists of object data before it is placed into a player's inventory.
Drop the item if:
- the item is cavern equipment
- the item is a BoomerTrigger
type object
- the item is a router_telepad
type object
- the item is another faction's exclusive equipment
the player
true if the item is to be dropped; false, otherwise
For a certain weapon that can load ammunition, enforce that its magazine is empty.
For a certain weapon that can load ammunition, enforce that its magazine is empty. Punctuate that emptiness with a ceasation of weapons fire and a dry fire sound effect.
the weapon (GUID)
the weapon (object)
For a certain weapon that cna load ammunition, enforce that its magazine is empty.
For a certain weapon that cna load ammunition, enforce that its magazine is empty.
the weapon
Flag an AmmoBox
object that matches for the given ammunition type.
Flag an AmmoBox
object that matches for the given ammunition type.
the type of Ammo
to check
the Equipment
object
true
, if the object is an AmmoBox
of the correct ammunition type; false
, otherwise
Check two locations for a controlled piece of equipment that is associated with the player
.
The first location is dependent on whether the avatar is in a vehicle.
Check two locations for a controlled piece of equipment that is associated with the player
.
The first location is dependent on whether the avatar is in a vehicle.
Some vehicle seats may have a "controlled weapon" which counts as the first location to be checked.
The second location is dependent on whether the avatar has a raised hand.
That is only possible if the player has something in their hand at the moment, hence the second location.
Players do have a concept called a "last drawn slot" (hand) but that former location is not eligible.
Along with any discovered item, a containing object such that the statement:
container.Find(object) = Some(slot)
... will return a proper result.
For a seat controlled weapon, the vehicle is returned.
For the player's hand, the player is returned.
a Tuple
of the returned values;
the first value is a Container
object;
the second value is an Equipment
object in the former
Check two locations for a controlled piece of equipment that is associated with the player
.
Check two locations for a controlled piece of equipment that is associated with the player
.
Filter for discovered Tool
-type Equipment
.
a Tuple
of the returned values;
the first value is a Container
object;
the second value is an Tool
object in the former
Runs FindContainedEquipment
but ignores the Container
object output.
Runs FindContainedEquipment
but ignores the Container
object output.
an Equipment
object
Within a specified Container
, find the smallest number of Equipment
objects of a certain qualifying type
whose sum count is greater than, or equal to, a desiredAmount
based on an accumulator method.
In an occupied List
of returned Inventory
entries, all but the last entry is typically considered "emptied."
For objects with contained quantities, the last entry may require having that quantity be set to a non-zero number.
Within a specified Container
, find the smallest number of Equipment
objects of a certain qualifying type
whose sum count is greater than, or equal to, a desiredAmount
based on an accumulator method.
In an occupied List
of returned Inventory
entries, all but the last entry is typically considered "emptied."
For objects with contained quantities, the last entry may require having that quantity be set to a non-zero number.
the Container
to search
test used to determine inclusivity of Equipment
collection
how much is requested
test used to determine value of found Equipment
;
defaults to one per entry
a List
of all discovered entries totaling approximately the amount requested
A simple object searching algorithm that is limited to containers currently known and accessible by the player.
A simple object searching algorithm that is limited to containers currently known and accessible by the player. If all relatively local containers are checked and the object is not found, the game environment (items on the ground) will be checked too. If the target object is discovered, it is removed from its current location and is completely destroyed.
the target object's globally unique identifier; it is not expected that the object will be unregistered, but it is also not gauranteed
the target object
true
, if the target object was discovered and removed;
false
, otherwise
RequestDestroyMessage
Zone.ItemIs.Where
Given an object globally unique identifier, search in a given location for it.
Given an object globally unique identifier, search in a given location for it.
the object
a Container
object wherein to search
an optional tuple that contains two values; the first value is the container that matched correctly with the object's GUID; the second value is the slot position of the object
Get the current Vehicle
object that the player is riding/driving.
Get the current Vehicle
object that the player is riding/driving.
The vehicle must be found solely through use of player.VehicleSeated
.
the vehicle
Given a globally unique identifier in the 40100 to 40124 range (with an optional 25 as buffer), find a projectile.
Given a globally unique identifier in the 40100 to 40124 range (with an optional 25 as buffer), find a projectile.
the projectile's GUID
the discovered projectile
na
na
na
na
Find a ConstructionItem
object in player's inventory
that is the same type as a target ConstructionItem
object and
transfer it into the designated slot index, usually a holster.
Find a ConstructionItem
object in player's inventory
that is the same type as a target ConstructionItem
object and
transfer it into the designated slot index, usually a holster.
Draw that holster.
After being transferred, the replacement should be reconfigured to match the fire mode of the original.
The primary use of this operation is following the successful manifestation of a deployable in the game world.
As this function should be used in response to some other action such as actually placing a deployable,
do not instigate bundling from within the function's scope.
the ConstructionItem
object to match
where to put the discovered replacement
WorldSessionActor.FinalizeDeployable
FindEquipmentStock
Flag a Tool
object that matches for loading the given ammunition type.
Flag a Tool
object that matches for loading the given ammunition type.
the type of Ammo
to check
the Equipment
object
true
, if the object is a Tool
that loads the correct ammunition type; false
, otherwise
Runs FindContainedWeapon
but ignores the Container
object output.
Runs FindContainedWeapon
but ignores the Container
object output.
a Tool
object
After a weapon has finished shooting, determine if it needs to be sorted in a special way.
After a weapon has finished shooting, determine if it needs to be sorted in a special way.
a weapon
na
Remove items from a deceased player that are not expected to be found on a corpse.
Remove items from a deceased player that are not expected to be found on a corpse. Most all players have their melee slot knife (which can not be un-equipped normally) removed. MAX's have their primary weapon in the designated slot removed.
the player to be turned into a corpse
If the player is seated in a vehicle, find that vehicle and get the seat index number at which the player is sat.
For special purposes involved in zone transfers,
where the vehicle may or may not exist in either of the zones (yet),
the value of interstellarFerry
is also polled.
If the player is seated in a vehicle, find that vehicle and get the seat index number at which the player is sat.
For special purposes involved in zone transfers,
where the vehicle may or may not exist in either of the zones (yet),
the value of interstellarFerry
is also polled.
Making certain this field is blanked after the transfer is completed is important
to avoid inspecting the wrong vehicle and failing simple vehicle checks where this function may be employed.
a tuple consisting of a vehicle reference and a seat index
if and only if the vehicle is known to this client and the WorldSessioNActor
-global player
occupies it;
(None, None)
, otherwise (even if the vehicle can be determined)
interstellarFerry
If the player is seated in a vehicle, find that vehicle and get the seat index number at which the player is sat.
If the player is seated in a vehicle, find that vehicle and get the seat index number at which the player is sat.
a tuple consisting of a vehicle reference and a seat index
if and only if the vehicle is known to this client and the WorldSessioNActor
-global player
occupies it;
(None, None)
, otherwise (even if the vehicle can be determined)
Make this client display the deployment map, and all its available destination spawn points.
Make this client display the deployment map, and all its available destination spawn points.
Player.Release
DeadState.Release
AvatarDeadStateMessage
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
the vehicle being ferried as cargo
the vehicle being ferried as cargo
the ferrying carrier vehicle
the ferrying carrier vehicle
the cargo hold to which the cargo vehicle is stowed
number of times a proper mounting for this combination has been queried
na
na
the vehicle being ferried as cargo
the ferrying carrier vehicle
the cargo hold to which the cargo vehicle is stowed
number of times a proper mounting for this combination has been queried
Calculate the amount of damage to be dealt to an active target
using the information reconstructed from a Resolvedprojectile
and affect the target
in a synchronized manner.
Calculate the amount of damage to be dealt to an active target
using the information reconstructed from a Resolvedprojectile
and affect the target
in a synchronized manner.
The active target
and the target of the ResolvedProjectile
do not have be the same.
a valid game object that is known to the server
a projectile that will affect the target
DamageResistanceModel
Vitality
na
na
the target player
the globally unique number for the vehicle being ferried
the vehicle being ferried
the globally unique number for the vehicle doing the ferrying
the vehicle doing the ferrying
the ferried vehicle is bailing from the cargo hold
the ferried vehicle is being politely disembarked from the cargo hold
the ferried vehicle is being kicked out of the cargo hold
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
na
Restore, at most, a specific amount of health points on a player.
Restore, at most, a specific amount of health points on a player. Send messages to connected client and to events system.
the player
the amount to heal; 10 by default
whether the player can be repaired for any more health points
When standing on the platform of a(n advanced) medical terminal, resotre the player's health and armor points (when they need their health and armor points restored).
When standing on the platform of a(n advanced) medical terminal, resotre the player's health and armor points (when they need their health and armor points restored). If the player is both fully healed and fully repaired, stop using the terminal.
the medical terminal
the player being healed
Initialize the deployables backend information.
Initialize the deployables backend information.
the player's core
Initialize the UI elements for deployables.
Initialize the UI elements for deployables.
the player's core
The player has lost all his vitality and must be killed.
Shift directly into a state of being dead on the client by setting health to zero points,
whereupon the player will perform a dramatic death animation.
The player has lost all his vitality and must be killed.
Shift directly into a state of being dead on the client by setting health to zero points,
whereupon the player will perform a dramatic death animation.
Stamina is also set to zero points.
If the player was in a vehicle at the time of demise, special conditions apply and
the model must be manipulated so it behaves correctly.
Do not move or completely destroy the Player
object as its coordinates of death will be important.
A maximum revive waiting timer is started.
When this timer reaches zero, the avatar will attempt to spawn back on its faction-specific sanctuary continent.
the player to be killed
na
na
na
Link the router teleport system using the provided terminal information.
Link the router teleport system using the provided terminal information. The internal telepad is made known of the remote telepad, creating the link.
the vehicle that houses one end of the teleportation system (the internalTelepad
)
the endpoint of the teleportation system housed by the router
the endpoint of the teleportation system that exists in the environment
Deal with a target player as free-standing infantry in the course of a redeployment action to a target continent
whether that action is the result of a deconstruction (reconstruction), a death (respawning),
or other position shifting action handled directly by the server.
The two important vectors are still whether the zone being transported to is the same or is different
and whether the target player is alive or released (note: not just "dead" ...).
Deal with a target player as free-standing infantry in the course of a redeployment action to a target continent
whether that action is the result of a deconstruction (reconstruction), a death (respawning),
or other position shifting action handled directly by the server.
The two important vectors are still whether the zone being transported to is the same or is different
and whether the target player is alive or released (note: not just "dead" ...).
the target player being moved around;
not necessarily the same player as the WorldSessionActor
-global player
the zone in which the player will be placed
a tuple composed of an ActorRef
destination and a message to send to that destination
TaskBeforeZoneChange
RegisterAvatar
Player.isBackpack
PlayerLoaded
GUIDTask.UnregisterLocker
GUIDTask.UnregisterAvatar
LoadZoneCommonTransferActivity
Common behavior when transferring between zones encompassing actions that disassociate the player with entities they left (will leave) in the previous zone.
Common behavior when transferring between zones encompassing actions that disassociate the player with entities they left (will leave) in the previous zone. It also sets up actions for the new zone loading process.
Deal with a target player as a vehicle occupant in the course of a redeployment action to a target continent
whether that action is the result of a deconstruction (reconstruction)
or other position shifting action handled directly by the server.
The original target player must be alive and the only consideration is in what position the player is mounted in the vehicle.
Deal with a target player as a vehicle occupant in the course of a redeployment action to a target continent
whether that action is the result of a deconstruction (reconstruction)
or other position shifting action handled directly by the server.
The original target player must be alive and the only consideration is in what position the player is mounted in the vehicle.
Any seated position that isn't the driver is a passenger.
The most important role performed in this function is to declare a reference to the vehicle itsself
since no other connection from the player to the vehicle is guaranteed to persist in a meaningful way during the transfer.
the target vehicle being moved around;
WILL necessarily be the same vehicles as is controlled by the WorldSessionActor
-global player
the game world coordinates where the vehicle will be positioned
the direction in which the vehicle will be oriented
the zone in which the vehicle and driver will be placed, or in which the vehicle has already been placed
a tuple composed of an ActorRef destination and a message to send to that destination
Vehicle.PassengerInSeat
LoadZoneInVehicleAsPassenger
LoadZoneInVehicleAsDriver
interstellarFerry
Deal with a target player as a vehicle driver in the course of a redeployment action to a target continent
whether that action is the result of a deconstruction (reconstruction)
or other position shifting action handled directly by the server.
During a vehicle transfer, whether to the same zone or to a different zone,
the driver has the important task of ensuring the certain safety of his passengers during transport.
Deal with a target player as a vehicle driver in the course of a redeployment action to a target continent
whether that action is the result of a deconstruction (reconstruction)
or other position shifting action handled directly by the server.
During a vehicle transfer, whether to the same zone or to a different zone,
the driver has the important task of ensuring the certain safety of his passengers during transport.
The driver must modify the conditions of the vehicle's passengers common communication channel
originally determined entirely by the vehicle's soon-to-be blanked internal Actor
object.
Any cargo vehicles under the control of the target vehicle must also be made aware of the current state of the process.
In the case of a series of ferrying vehicles and cargo vehicles,
the vehicle to be deleted might not be the one immediately mounted.
A reference to the top-level ferrying vehicle's former globally unique identifier has been retained for this purpose.
This vehicle can be deleted for everyone if no more work can be detected.
the target vehicle being moved around;
WILL necessarily be the same vehicles as is controlled by the WorldSessionActor
-global player
the zone in which the vehicle and driver will be placed, or in which the vehicle has already been placed
a tuple composed of an ActorRef destination and a message to send to that destination
UnregisterDrivenVehicle
UnAccessContents
TaskBeforeZoneChange
PlayerLoaded
LoadZoneCommonTransferActivity
interstellarFerryTopLevelGUID
Deal with a target player as a vehicle passenger in the course of a redeployment action to a target continent
whether that action is the result of a deconstruction (reconstruction)
or other position shifting action handled directly by the server.
The way a vehicle is handled in reference to being a passenger
is very similar to how an infantry player is handled in the same process.
Deal with a target player as a vehicle passenger in the course of a redeployment action to a target continent
whether that action is the result of a deconstruction (reconstruction)
or other position shifting action handled directly by the server.
The way a vehicle is handled in reference to being a passenger
is very similar to how an infantry player is handled in the same process.
If this player is the last person who requires a zone change
which is the concluding zone transfer of what might have been a long chain of vehicle and passengers
then that player is responsible for deleting the vehicle for other players of the previous zone.
In the case of a series of ferrying vehicles and cargo vehicles,
the vehicle to be deleted might not be the one immediately mounted.
A reference to the top-level ferrying vehicle's former globally unique identifier has been retained for this purpose.
This vehicle can be deleted for everyone if no more work can be detected.
the target vehicle being moved around
the zone in which the vehicle and driver will be placed
a tuple composed of an ActorRef destination and a message to send to that destination
UnAccessContents
TaskBeforeZoneChange
PlayerLoaded
NoVehicleOccupantsInZone
LoadZoneCommonTransferActivity
GUIDTask.UnregisterAvatar
The starting point of behavior for a player who: is dead and is respawning; is deconstructing at a spawn tube and is respawning; is using a warp gate; or, any or none of the previous conditions, but the final result involves changing what zone the player occupies.
The starting point of behavior for a player who:
is dead and is respawning;
is deconstructing at a spawn tube and is respawning;
is using a warp gate; or,
any or none of the previous conditions, but the final result involves changing what zone the player occupies.
This route is not taken when first spawning in the game world, unless special conditions need to be satisfied.
The visible result will be apparent by the respawn timer being displayed to the client over the deployment map.
Two choices must be independently made to complete this part of the process.
The first choice ivolves the state of the player who is spawning
as the known entry state involve either being alive or being dead.
A dead player (technically, a "corpse" that can no longer be revived) is embodied
in a completely new player with a new globally unique identifier and a whole new inventory.
A player who is transferring continents also satisfies the requirements
for obtaining a completely new globally unique identifier,
though the new identifier belongs to the new zone rather than the previous (still current) one.
The second choice is satisfied by respawning in the same zone while still in a state of still being alive.
In this singular case, the player retains his previous globally unique identifier.
In all other cases, as indicated, a new globally unique identifier is selected.
If the player is alive and mounted in a vehicle, a different can of worms is produced.
The ramifications of these conditions are not fully satisfied until the player loads into the new zone.
Even then, the conclusion becomes delayed while a slightly lagged mechanism hoists players between zones.
the zone in which the player will be placed
the game world coordinates where the player will be positioned
the direction in which the player will be oriented
the character downtime spent respawning, as clocked on the redeployment screen; does not factor in any time required for loading zone or game objects
LoadZoneInVehicle
LoadZoneAsPlayer
interstellarFerry
AvatarDeadStateMessage
Dispatch messages to all target players in immediate passenger and gunner seats and to the driver of all vehicles in cargo holds that their current ferrying vehicle is being transported from one zone to the next and that they should follow after it.
Dispatch messages to all target players in immediate passenger and gunner seats
and to the driver of all vehicles in cargo holds
that their current ferrying vehicle is being transported from one zone to the next
and that they should follow after it.
The messages address the avatar of their recipient WorldSessionActor
objects.
the driver of the target vehicle
the zone where the target vehicle will be moved
the vehicle-specific channel with which all passengers are coordinated to the vehicle
the vehicle (object)
the vehicle as it was identified in the zone that it is being moved from
na
na
custom text for these messages in the log
an optional the target object
the expected globally unique identifier of the target object
Common activities/procedure when a player mounts a valid object.
Common activities/procedure when a player mounts a valid object.
the player
the mountable object
the seat into which the player is mounting
Register an Equipment
item and then drop it on the ground.
Register an Equipment
item and then drop it on the ground.
a Container
object that represents where the item will be dropped;
curried for callback
the continent in which the item is being dropped; curried for callback
a reference to the event system that announces that the item has been dropped on the ground; "AvatarService"; curried for callback
the item
NormalItemDrop
The custom behavior responding to the message ChangeFireModeMessage
for ConstructionItem
game objects.
The custom behavior responding to the message ChangeFireModeMessage
for ConstructionItem
game objects.
Each fire mode has sub-modes corresponding to a type of "deployable" as ammunition
and each of these sub-modes have certification requirements that must be met before they can be used.
Additional effort is exerted to ensure that the requirements for the given mode and given sub-mode are satisfied.
If no satisfactory combination is achieved, the original state will be restored.
the ConstructionItem
object
the starting point fire mode index
the changed fire mode
PerformConstructionItemAmmoChange
FireModeSwitch.NextFireMode
A recursive test that explores all the seats of a target vehicle
and all the seats of any discovered cargo vehicles
and then the same criteria in those cargo vehicles
to determine if any of their combined passenger roster remains in a given zone.
While it should be possible to recursively explore up a parent-child relationship -
testing the ferrying vehicle to which of the current tested vehicle in consider a cargo vehicle -
the relationship expressed is one of globally unique refertences and not one of object references -
that suggested super-ferrying vehicle may not exist in the zone unless special considerations are imposed.
A recursive test that explores all the seats of a target vehicle
and all the seats of any discovered cargo vehicles
and then the same criteria in those cargo vehicles
to determine if any of their combined passenger roster remains in a given zone.
While it should be possible to recursively explore up a parent-child relationship -
testing the ferrying vehicle to which of the current tested vehicle in consider a cargo vehicle -
the relationship expressed is one of globally unique refertences and not one of object references -
that suggested super-ferrying vehicle may not exist in the zone unless special considerations are imposed.
For the purpose of these special considerations,
implemented by enforcing a strictly downwards order of vehicular zone transportation,
where drivers move vehicles and call passengers and immediate cargo vehicle drivers,
it becomes unnecessary to test any vehicle that might be ferrying the target vehicle.
the target vehicle being moved around
true
, if all passengers of the vehicle, and its cargo vehicles, etc., have reported being moved from the zone;
false
, otherwise
ZoneAware
Drop an Equipment
item onto the ground.
Drop an Equipment
item onto the ground.
Specifically, instruct the item where it will appear,
add it to the list of items that are visible to multiple users,
and then inform others that the item has been dropped.
a Container
object that represents where the item will be dropped;
curried for callback
the continent in which the item is being dropped; curried for callback
a reference to the event system that announces that the item has been dropped on the ground; "AvatarService"; curried for callback
the item
na
na
na
na
na
na
na
na
na
na
The custom behavior responding to the message ChangeAmmoMessage
for ConstructionItem
game objects.
The custom behavior responding to the message ChangeAmmoMessage
for ConstructionItem
game objects.
Iterate through sub-modes corresponding to a type of "deployable" as ammunition for this fire mode
and check each of these sub-modes for their certification requirements to be met before they can be used.
Additional effort is exerted to ensure that the requirements for the given ammunition are satisfied.
If no satisfactory combination is achieved, the original state will be restored.
the ConstructionItem
object
na
na
na
na
na
na
na
na
true
, if the object is allowed to contain the type of equipment object
An event has occurred that would cause the player character to stop certain stateful activities.
An event has occurred that would cause the player character to stop certain stateful activities.
These activities include shooting, the weapon being drawn, hacking, accessing (a container), flying, and running.
Other players in the same zone must be made aware that the player has stopped as well.
Things whose configuration should not be changed:
- if the player is seated
- if the player is anchored
This is not a complete list but, for the purpose of enforcement, some pointers will be documented here.
Primary functionality for tranferring a piece of equipment from the ground in a player's hands or his inventory.
Primary functionality for tranferring a piece of equipment from the ground in a player's hands or his inventory. The final destination of the item in terms of slot position is not determined until the attempt is made. If it can not be placed in a slot correctly, the item will be returned to the ground in the same place.
the Equipment
object on the ground
true
, if the object was properly picked up;
false
if it was returned to the ground
Player.Fit
Primary functionality for tranferring a piece of equipment from a player's hands or his inventory to the ground.
Primary functionality for tranferring a piece of equipment from a player's hands or his inventory to the ground. Items are always dropped at player's feet because for simplicity's sake because, by virtue of already standing there, the stability of the surface has been proven. The only exception to this is dropping items while falling.
the Equipment
object in the player's hand
the game world coordinates where the object will be dropped
a suggested orientation in which the object will settle when on the ground; as indicated, the simulation is only concerned with certain angles
Player.Find
ObjectDetachMessage
Draw the icon for this deployable object.
When a client first joins a zone, all deployables are drawn on the continent map once.
Draw the icon for this deployable object.
When a client first joins a zone, all deployables are drawn on the continent map once.
Should the player place any deployables, those deployables belong to that player.
Ownership causes icon to be drawn in yellow to the player (as opposed to a white icon)
and that signifies a certain level of control over the deployable, at least the ability to quietly deconstruct it.
Under normal death/respawn cycles while the player is in a given zone,
the map icons for owned deployables ramin manipulable to that given user.
They do not havwe to be redrawn to stay accurate.
Upon leaving a zone, where the icons are erased, and returning back to the zone, where they are drawn again,
the deployables that a player owned should be restored in terms of their map icon visibility.
This control can not be recovered, however, until they are updated with the player's globally unique identifier.
Since the player does not need to redraw his own deployable icons each time he respawns,
but will not possess a valid GUID for that zone until he spawns in it at least once,
this function is swapped with another after the first spawn in any given zone.
This function is restored upon transferring zones.
a Deployable
object
SetCurrentAvatar
DontRedrawIcons
Construct tasking that adds a completed and registered vehicle into the scene.
Construct tasking that adds a completed and registered vehicle into the scene.
The major difference between RegisterVehicle
and RegisterNewVehicle
is the assumption that this vehicle lacks an internal Actor
.
Before being finished, that vehicle is supplied an Actor
such that it may function properly.
This function wraps around RegisterVehicle
and is used in case, prior to this event,
the vehicle is being brought into existence from scratch and was never a member of any Zone
.
the Vehicle
object
a TaskResolver.GiveTask
message
RegisterVehicle
Construct tasking that adds a completed and registered vehicle into the scene.
Construct tasking that adds a completed and registered vehicle into the scene. Use this function to renew the globally unique identifiers on a vehicle that has already been added to the scene once.
the Vehicle
object
a TaskResolver.GiveTask
message
RegisterNewVehicle
Temporary function that iterates over vehicle permissions and turns them into PlanetsideAttributeMessage
packets.
2 November 2017:
Unexpected behavior causes seat mount points to become blocked when a new driver claims the vehicle.
Temporary function that iterates over vehicle permissions and turns them into PlanetsideAttributeMessage
packets.
2 November 2017:
Unexpected behavior causes seat mount points to become blocked when a new driver claims the vehicle.
For the purposes of ensuring that other players are always aware of the proper permission state of the trunk and seats,
packets are intentionally dispatched to the current client to update the states.
Perform this action just after any instance where the client would initially gain awareness of the vehicle.
The most important examples include either the player or the vehicle itself spawning in for the first time.
20 February 2018:
Occasionally, during deployment, local(?) vehicle seat access permissions may change.
This results in players being locked into their own vehicle.
Reloading vehicle permissions supposedly ensures the seats will be properly available.
This is considered a client issue; but, somehow, it also impacts server operation somehow.
22 June 2018:
I think vehicle ownership works properly now.
the Vehicle
Search through the player's holsters and their inventory space
and remove all BoomerTrigger
objects, both functionally and visually.
Search through the player's holsters and their inventory space
and remove all BoomerTrigger
objects, both functionally and visually.
all discovered BoomTrigger
objects
The player forgot a certification he previously knew.
The player forgot a certification he previously knew. Update the deployables user interface elements if it was an "Engineering" certification. The certification "Advanced Hacking" also relates to an element.
the certification that was added
all applicable certifications
Attempt to tranfer to the player's faction-specific sanctuary continent.
Attempt to tranfer to the player's faction-specific sanctuary continent. If the server thinks the player is already on his sanctuary continent, and dead, it will disconnect the player under the assumption that an error has occurred. Eventually, this functionality should support better error-handling before it jumps to the conclusion: "Disconnecting the client is the safest option."
the player
the current zone number
Zones.SanctuaryZoneNumber
Find a projectile with the given globally unique identifier and mark it as a resolved shot.
Find a projectile with the given globally unique identifier and mark it as a resolved shot.
A Resolved
shot has either encountered an obstacle or is being cleaned up for not finding an obstacle.
The internal copy of the projectile is retained as merely Resolved
while the observed projectile is promoted to the suggested resolution status.
the projectile object
where the projectile was found
the resolution status to promote the projectile
a copy of the projectile
Find a projectile with the given globally unique identifier and mark it as a resolved shot.
Find a projectile with the given globally unique identifier and mark it as a resolved shot.
A Resolved
shot has either encountered an obstacle or is being cleaned up for not finding an obstacle.
the projectile GUID
the resolution status to promote the projectile
the projectile
Produce a clone of the player that is equipped with the default infantry loadout.
Produce a clone of the player that is equipped with the default infantry loadout. The loadout is hardcoded. The player is expected to be in a Standard Exo-Suit.
the original player
the duplication of the player, in Standard Exo-Suit and with default equipment loadout
Find the target ConstructionTool
object, either at the suggested slot or wherever it is on the player
,
and remove it from the game world visually.
Not finding the target object at its intended slot is an entirely recoverable situation
as long as the target object is discovered to be somewhere else in the player's holsters or inventory space.
Find the target ConstructionTool
object, either at the suggested slot or wherever it is on the player
,
and remove it from the game world visually.
Not finding the target object at its intended slot is an entirely recoverable situation
as long as the target object is discovered to be somewhere else in the player's holsters or inventory space.
If found after a more thorough search, merely log the discrepancy as a warning.
If the discrepancy becomes common, the developer messed up the function call
or he should not be using this function.
the ConstructionItem
object currently in the slot (checked)
the slot index
what kind of designation to give any log entires originating from this function; defaults to its own function name
true
, if the target object was found and removed;
false
, otherwise
Determine which functionality to pursue by a generic proximity-functional unit given the target for its activity.
Determine which functionality to pursue by a generic proximity-functional unit given the target for its activity.
the proximity-based unit
the object being affected by the unit
VehicleService:receive, ProximityUnit.Action
Lock all applicable controls of the current vehicle.
Lock all applicable controls of the current vehicle. This includes forward motion, turning, and, if applicable, strafing.
the vehicle being controlled
This function is applied to vehicles that are leaving a cargo vehicle's cargo hold to auto reverse them out Lock all applicable controls of the current vehicle Set the vehicle to move in reverse
This function is applied to vehicles that are leaving a cargo vehicle's cargo hold to strafe left out of the cargo hold for vehicles that are mounted sideways e.g.
This function is applied to vehicles that are leaving a cargo vehicle's cargo hold to strafe left out of the cargo hold for vehicles that are mounted sideways e.g. router/BFR Lock all applicable controls of the current vehicle Set the vehicle to strafe left
This function is applied to vehicles that are leaving a cargo vehicle's cargo hold to strafe right out of the cargo hold for vehicles that are mounted sideways e.g.
This function is applied to vehicles that are leaving a cargo vehicle's cargo hold to strafe right out of the cargo hold for vehicles that are mounted sideways e.g. router/BFR Lock all applicable controls of the current vehicle Set the vehicle to strafe right
Place the current vehicle under the control of the server's commands.
Place the current vehicle under the control of the server's commands.
the vehicle
how fast the vehicle is moving forward
whether the vehicle is ascending or not, if the vehicle is an applicable type
If a vehicle is owned by a character, disassociate the vehicle, then schedule it for deconstruction.
If a vehicle is owned by a character, disassociate the vehicle, then schedule it for deconstruction.
the vehicle previously owned, if any
DisownVehicle()
Start packet bundling by assigning the appropriate function.
Start packet bundling by assigning the appropriate function.
sendResponse(PlanetSidePacket) : Unit
Queue a proximity-base service.
Queue a proximity-base service.
the proximity-based unit
the entity that is being considered for terminal operation
Stop packet bundling by assigning the appropriate function.
Stop packet bundling by assigning the appropriate function. If any bundles are in the collector's buffer, push that bundle out towards the network.
sendResponse(PlanetSidePacket) : Unit
Stop using a proximity-base service.
Stop using a proximity-base service. Special note is warranted when determining the identity of the proximity terminal. Medical terminals of both varieties can be cancelled by movement. Other sorts of proximity-based units are put on a timer.
the proximity-based unit
Announce that an already-registered AmmoBox
object exists in a given position in some Container
object's inventory.
Announce that an already-registered AmmoBox
object exists in a given position in some Container
object's inventory.
the Container
object
an index in obj
's inventory
an AmmoBox
ChangeAmmoMessage
StowEquipmentInVehicles
Announce that an already-registered AmmoBox
object exists in a given position in some vehicle's inventory.
Announce that an already-registered AmmoBox
object exists in a given position in some vehicle's inventory.
the Vehicle
object
an index in obj
's inventory
an AmmoBox
ChangeAmmoMessage
StowEquipment
Prepare tasking that registers an AmmoBox
object
and announces that it exists in a given position in some Container
object's inventory.
Prepare tasking that registers an AmmoBox
object
and announces that it exists in a given position in some Container
object's inventory.
PutEquipmentInSlot
is the fastest way to achieve these goals.
the Container
object
an index in obj
's inventory
the Equipment
item
a TaskResolver.GiveTask
chain that executes the action
ChangeAmmoMessage
StowNewEquipmentInVehicle
Prepare tasking that registers an AmmoBox
object
and announces that it exists in a given position in some vehicle's inventory.
Prepare tasking that registers an AmmoBox
object
and announces that it exists in a given position in some vehicle's inventory.
PutEquipmentInSlot
is the fastest way to achieve these goals.
the Container
object
an index in obj
's inventory
the Equipment
item
a TaskResolver.GiveTask
chain that executes the action
ChangeAmmoMessage
StowNewEquipment
The player has lost the will to live and must be killed.
The player has lost the will to live and must be killed.
the player to be killed
Vitality
PlayerSuicide
Before calling Interstellar.GetWorld
to change zones, perform the following task (which can be a nesting of subtasks).
Before calling Interstellar.GetWorld
to change zones, perform the following task (which can be a nesting of subtasks).
the tasks to perform
the zone to load afterwards
a TaskResolver.GiveTask
message
Attempt to link the router teleport system using the provided terminal information.
Attempt to link the router teleport system using the provided terminal information. Although additional states are necessary to properly use the teleportation system, e.g., deployment state, active state of the endpoints, etc., this decision is not made factoring those other conditions.
the vehicle that houses one end of the teleportation system (the InternalTelepad
object)
specific object identification of the two endpoints of the teleportation system; if absent, the knowable endpoint is deleted from the client reflexively
Place the current vehicle under the control of the driver's commands, but leave it in a cancellable auto-drive.
Place the current vehicle under the control of the driver's commands, but leave it in a cancellable auto-drive. Stop all movement entirely.
the vehicle
The channel name for summoning passengers to the vehicle after it has been loaded to a new location or to a new zone.
The channel name for summoning passengers to the vehicle after it has been loaded to a new location or to a new zone. This channel name should be unique to the vehicle for at least the duration of the transition. The vehicle-specific channel with which all passengers are coordinated back to the original vehicle.
the vehicle being moved (or having been moved)
the channel name
If the corpse has been well-looted, remove it from the ground.
If the corpse has been well-looted, remove it from the ground.
the corpse
true
, if the obj
is actually a corpse and has no objects in its holsters or backpack;
false
, otherwise
If the tool is a form of field deployment unit (FDU, also called an advanced_ace
),
completely remove the object from its current position and place it on the ground.
If the tool is a form of field deployment unit (FDU, also called an advanced_ace
),
completely remove the object from its current position and place it on the ground.
In the case of a botched deployable construction, dropping the FDU is visually consistent
as it should already be depicted as on the ground as a part of its animation cycle.
the ConstructionItem
object currently in the slot (checked)
the slot index
where to drop the object in the game world
Creates a player that has the characteristics of a corpse.
Creates a player that has the characteristics of a corpse. To the game, that is a backpack (or some pastry, festive graphical modification allowing).
the player
CorpseConverter.converter
Common preparation for disengaging from a vehicle.
Common preparation for disengaging from a vehicle. Leave the vehicle-specific group that was used for shared updates. Deconstruct every object in the vehicle's inventory.
the vehicle
Initialize the deployables user interface elements.
All element initializations require both the maximum deployable amount and the current deployables active counts.
Initialize the deployables user interface elements.
All element initializations require both the maximum deployable amount and the current deployables active counts.
Until initialized, all elements will be RED 0/0 as if the cooresponding certification were not learn
ed.
The respective element will become a pair of numbers, the second always being non-zero, when properly initialized.
The numbers will appear GREEN when more deployables of that type can be placed.
The numbers will appear RED if the player can not place any more of that type of deployable.
The numbers will appear YELLOW if the current deployable count is greater than the maximum count of that type
such as may be the case when a player forget
s a certification.
a tuple of each UI element with four numbers; even numbers are attribute ids; odd numbers are quantities; first pair is current quantity; second pair is maximum quantity
From a seat, find the weapon controlled from it, and update the ammunition counts for that weapon's magazines.
From a seat, find the weapon controlled from it, and update the ammunition counts for that weapon's magazines.
the object that owns seats (and weaponry)
the seat
Animate(?) a player using a fully-linked Router teleportation system.
Animate(?) a player using a fully-linked Router teleportation system. In reality, this seems to do nothing visually?
the player being teleported
the origin of the teleportation
the destination of the teleportation
A player uses a fully-linked Router teleportation system.
A player uses a fully-linked Router teleportation system.
the Router vehicle
the internal telepad within the Router vehicle
the remote telepad that is currently associated with this Router
the origin of the teleportation (where the player starts)
the destination of the teleportation (where the player is going)
If the corpse has been well-looted, it has no items in its primary holsters nor any items in its inventory.
If the corpse has been well-looted, it has no items in its primary holsters nor any items in its inventory.
the corpse
true
, if the obj
is actually a corpse and has no objects in its holsters or backpack;
false
, otherwise
Convert a boolean value into an integer value.
Convert a boolean value into an integer value.
Use: true:Int
or false:Int
true
or false
(or null
)
1 for true
; 0 for false
Configure the buildings and each specific amenity for that building in a given zone by sending the client packets.
Configure the buildings and each specific amenity for that building in a given zone by sending the client packets. These actions are performed during the loading of a zone.
the zone being loaded
SetEmpireMessage
PlanetsideAttributeMessage
HackMessage
For a given continental structure, determine the method of generating server-join client configuration packets.
For a given continental structure, determine the method of generating server-join client configuration packets.
the zone id
the building id
the building object
For a given facility structure, configure a client by dispatching the appropriate packets.
For a given facility structure, configure a client by dispatching the appropriate packets.
Pay special attention to the details of BuildingInfoUpdateMessage
when preparing this packet.
24 Janurtay 2019:
Manual BIUM
construction to alleviate player login.
the zone id
the building id
the building object
DensityLevelUpdateMessage
BuildingInfoUpdateMessage
For a given lattice warp gate structure, configure a client by dispatching the appropriate packets.
For a given lattice warp gate structure, configure a client by dispatching the appropriate packets.
Unlike other facilities, gates do not have complicated BuildingInfoUpdateMessage
packets.
Also unlike facilities, gates have an additional packet.
the zone id
the building id
the building object
BroadcastWarpgateUpdateMessage
DensityLevelUpdateMessage
BuildingInfoUpdateMessage
used during zone transfers to maintain reference to seated vehicle (which does not yet exist in the new zone) used during intrazone gate transfers, but not in a way distinct from prior zone transfer procedures should only be set during the transient period when moving between one spawn point and the next leaving set prior to a subsequent transfers may cause unstable vehicle associations, with memory leak potential
used during zone transfers for cleanup to refer to the vehicle that instigated a transfer
"top level" is the carrier in a carrier/ferried association or a projected carrier/(ferried carrier)/ferried association
inherited from parent (carrier) to child (ferried) through the TransferPassenger
message
the old-zone unique identifier for the carrier
no harm should come from leaving the field set to an old unique identifier value after the transfer period
KeepAliveMessage
is a special PlanetSideGamePacket
that is excluded from being bundled when it is sent to the network.
The risk of the server getting caught in a state where the packets dispatched to the client are always bundled is posible.
KeepAliveMessage
is a special PlanetSideGamePacket
that is excluded from being bundled when it is sent to the network.
The risk of the server getting caught in a state where the packets dispatched to the client are always bundled is posible.
Starting the bundling functionality but forgetting to transition into a state where it is deactivated can lead to this problem.
No packets except for KeepAliveMessage
will ever be sent until the ever-accumulating packets overflow.
To avoid this state, whenever a KeepAliveMessage
is sent, the packet collector empties its current contents to the network.
a KeepAliveMessage
packet
clientKeepAlive
StopBundlingPackets
StartBundlingPackets
Common entry point for transmitting packets to the network.
Common entry point for transmitting packets to the network. Alternately, catch those packets and retain them to send out a bundled message.
the packet