class SpawnOperations extends AnyRef
- Source
- ZoningOperations.scala
- Alphabetic
- By Inheritance
- SpawnOperations
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new SpawnOperations()
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def AvatarCreate(): Unit
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
WorldSessionActor
-currentPlayer
to the current zone and sends out the expected packets.
If that player is in a vehicle, it will construct that vehicle. If the player is the driver of the vehicle, they must temporarily be removed from the driver mount in order for the vehicle to be constructed properly. These two previous statements operate through similar though distinct mechanisms and imply different conditions. In reality, they produce the same output but enforce different relationships between the components. The vehicle without a rendered player will always be created if that vehicle exists. The vehicle should only be constructed once. - def AvatarCreateInVehicle(tplayer: Player, vehicle: Vehicle, seat: Int): Unit
Create an avatar character so that avatar's player is mounted in a vehicle's mount.
Create an avatar character so that avatar's player is mounted in a vehicle's mount. A part of the process of spawning the player into the game world.
This is a very specific configuration of the player character that is not visited very often. The value ofplayer.VehicleSeated
should be set to accommodatePacket.DetailedConstructorData
and, though not explicitly checked, should be the same as the globally unique identifier that is assigned to thevehicle
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. Neither the player avatar nor the vehicle should be reconstructed before the next zone load operation to avoid damaging the critical setup of this function.- tplayer
the player avatar seated in the vehicle's mount
- vehicle
the vehicle the player is riding
- seat
the mount index
- See also
AccessContainer
UpdateWeaponAtSeatPosition
- def AvatarRejoin(): Unit
A part of the process of spawning the player into the game world in the case of a restored game connection (relogging).
A login protocol that substitutes the first call toavatarSetupFunc
(replacingAvatarCreate
) in consideration of a user re-logging into the game before the period of time where an avatar/player instance would decay and be cleaned-up.A part of the process of spawning the player into the game world in the case of a restored game connection (relogging).
A login protocol that substitutes the first call toavatarSetupFunc
(replacingAvatarCreate
) in consideration of a user re-logging into the game before the period of time where an avatar/player instance would decay and be cleaned-up. Large portions of this function operate as a combination of the mechanics for normalAvatarCreate
and forAvatarCreateInVehicle
. Unlike either of the previous, this functionlality is disinterested in updating other clients as the target player and potential vehicle already exist as far as other clients are concerned.
If that player is in a vehicle, it will construct that vehicle. If the player is the driver of the vehicle, they must temporarily be removed from the driver mount in order for the vehicle to be constructed properly. These two previous statements operate through similar though distinct mechanisms and imply different conditions. In reality, they produce the same output but enforce different relationships between the components. The vehicle without a rendered player will always be created if that vehicle exists.
The value ofplayer.VehicleSeated
should be set to accommodatePacket.DetailedConstructorData
and, though not explicitly checked, should be the same as the globally unique identifier that is assigned to thevehicle
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. Neither the player avatar nor the vehicle should be reconstructed before the next zone load operation to avoid damaging the critical setup of this function. - def CargoMountBehaviorForUs(carrier: Vehicle, cargo: Vehicle, mountPoint: Int): (ObjectAttachMessage, CargoMountPointStatusMessage)
Dispatch an
ObjectAttachMessage
packet and aCargoMountPointStatusMessage
packet only to this client.Dispatch an
ObjectAttachMessage
packet and aCargoMountPointStatusMessage
packet only to this client.- carrier
the ferrying vehicle
- cargo
the ferried vehicle
- mountPoint
the point on the ferryoing vehicle where the ferried vehicle is attached
- returns
a tuple composed of an
ObjectAttachMessage
packet and aCargoMountPointStatusMessage
packet
- See also
CargoMountPointStatusMessage
ObjectAttachMessage
- def CargoMountMessagesForUs(attachMessage: ObjectAttachMessage, mountPointStatusMessage: CargoMountPointStatusMessage): Unit
Dispatch an
ObjectAttachMessage
packet and aCargoMountPointStatusMessage
packet only to this client.Dispatch an
ObjectAttachMessage
packet and aCargoMountPointStatusMessage
packet only to this client.- attachMessage
an
ObjectAttachMessage
packet suitable for initializing cargo operations- mountPointStatusMessage
a
CargoMountPointStatusMessage
packet suitable for initializing cargo operations
- See also
CargoMountPointStatusMessage
ObjectAttachMessage
- def CountSpawnDelay(toZoneId: String, toSpawnPoint: SpawnPoint, fromZoneId: String): FiniteDuration
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. Possession of a lattice-linked friendly Bio Laboratory halves the time of spawning at facilities. In a special consideration, travel to any sanctuary or sanctuary-special zone should be as immediate as zone loading.
- toZoneId
the zone where the target is headed
- toSpawnPoint
the unit the target is using as a destination
- fromZoneId
the zone where the target current is located
- returns
how long the spawning process will take
- def DepictPlayerAsCorpse(tplayer: Player): Unit
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).
- tplayer
the player
- See also
CorpseConverter.converter
- def DontRedrawIcons(obj: Deployable): Unit
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.- obj
a
Deployable
object
- See also
RedrawDeployableIcons
SetCurrentAvatar
- def DrawCurrentAmsSpawnPoint(): Unit
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.
- See also
BindPlayerMessage
DeadState.Release
- def FriskDeadBody(obj: Player): Unit
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.
- obj
the player to be turned into a corpse
- def GoToDeploymentMap(): Unit
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.
- See also
AvatarDeadStateMessage
DeadState.Release
Player.Release
- def HandleReleaseAvatar(tplayer: Player, zone: Zone): Unit
na
na
- tplayer
na
- zone
na
- def HandleSetCurrentAvatar(tplayer: Player): Unit
Instruct the client to treat this player as the avatar.
Instruct the client to treat this player as the avatar. Initialize all client-specific data that is dependent on some player being declared the "avatar".
- tplayer
the target player
- def LoadZonePhysicalSpawnPoint(zoneId: String, pos: Vector3, ori: Vector3, respawnTime: FiniteDuration, physSpawnPoint: Option[SpawnPoint]): Unit
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.- zoneId
the zone in which the player will be placed
- pos
the game world coordinates where the player will be positioned
- ori
the direction in which the player will be oriented
- respawnTime
the character downtime spent respawning, as clocked on the redeployment screen; does not factor in any time required for loading zone or game objects
- def NormalTurnCounter(p: PlanetSideGUID): Unit
The upstream counter accumulates when the server receives specific messages from the client.
The upstream counter accumulates when the server receives specific messages from the client. It counts upwards until it reach maximum value, and then starts over. When it starts over, which should take an exceptionally long time to achieve, it starts counting at one rather than zero.
- p
the player's globally unique identifier number
- def PrepareToTurnPlayerIntoCorpse(tplayer: Player, zone: Zone): Unit
Creates a player that has the characteristics of a corpse so long as the player has items in their knapsack or their holsters.
Creates a player that has the characteristics of a corpse so long as the player has items in their knapsack or their holsters. If the player has no items stored, the clean solution is to remove the player from the game. To the game, that is a backpack (or some pastry, festive graphical modification allowing).
- tplayer
the player
- See also
AvatarAction.ObjectDelete
AvatarAction.Release
AvatarServiceMessage
FriskDeadBody
GUIDTask.unregisterPlayer
ObjectDeleteMessage
WellLootedDeadBody
Zone.Corpse.Add
- def ReadyToSetCurrentAvatar(player: Player, max_attempts: Int, attempt: Int): Unit
The user is either already in the current zone and merely transporting from one location to another, also called "dying", or occasionally "deconstructing," or is completely switching in between zones.
The user is either already in the current zone and merely transporting from one location to another, also called "dying", or occasionally "deconstructing," or is completely switching in between zones. These correspond to the message
NewPlayerLoaded
for the case of "dying" or the latter zone switching case, andPlayerLoaded
for "deconstruction." In the latter case, the user must wait for the zone to be recognized as loaded for the server and this is performed through the sendLoadMapMessage
, receiveBeginZoningMessage
exchange. The user's player should have already been registered into the new zone and is at some stage of being added to the zone in which they will have control agency in that zone. Whether or not the zone is loaded in the earlier case depends on the destination with respect to the current location. Once all of the following is (assumed) accomplished, the server will attempt to declare that user's player the avatar of the user's client. Reception of certain packets that represent "reported user activity" after that marks the end of avatar loading. If the maximum number of unsuccessful attempts is reached, some course of action is taken. If the player dies, the process does not need to continue. He may or may not be accompanied by a vehicle at any stage of this process. - def RedrawDeployableIcons(obj: Deployable): Unit
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.- obj
a
Deployable
object
- See also
DontRedrawIcons
SetCurrentAvatar
- def RespawnClone(tplayer: Player): Player
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.
- tplayer
the original player
- returns
the duplication of the player, in Standard Exo-Suit and with default equipment loadout
- def SetCurrentAvatarNormally(tplayer: Player): Unit
Instruct the client to treat this player as the avatar.
Instruct the client to treat this player as the avatar.
- tplayer
the target player
- See also
SetCurrentAvatar
- def TryDisposeOfLootedCorpse(obj: Player): Boolean
If the corpse has been well-looted, remove it from the ground.
If the corpse has been well-looted, remove it from the ground.
- obj
the corpse
- returns
true
, if theobj
is actually a corpse and has no objects in its holsters or backpack;false
, otherwise
- def TurnCounterDuringInterim(guid: PlanetSideGUID): Unit
During the interim period between the avatar being in one place/zone and completing the process of transitioning to another place/zone, the upstream message counter is zero'd awaiting new activity from the client.
During the interim period between the avatar being in one place/zone and completing the process of transitioning to another place/zone, the upstream message counter is zero'd awaiting new activity from the client. Until new upstream messages that pass some tests against their data start being reported, the counter does not accumulate properly.
- guid
the player's globally unique identifier number
- def TurnCounterDuringInterimWhileInPassengerSeat(guid: PlanetSideGUID): Unit
During the interim period between the avatar being in one place/zone and completing the process of transitioning to another place/zone, the upstream message counter is zero'd awaiting new activity from the client.
During the interim period between the avatar being in one place/zone and completing the process of transitioning to another place/zone, the upstream message counter is zero'd awaiting new activity from the client. Until new upstream messages that pass some tests against their data start being reported, the counter does not accumulate properly.
In the case that the transitioning player is seated in a vehicle mount that is not the driver and does not have a mounted weapon under its control, no obvious feedback will be provided by the client. For example, when as infantry, aPlayerStateMessageUpstream
packet is dispatched by the client. For example, when in the driver mount, aVehicleStateMessage
is dispatched by the client. In the given case, the only packet that indicates the player is seated is aKeepAliveMessage
. Detection of thisKeepALiveMessage
, for the purpose of transitioning logic, can not be instantaneous to the zoning process or other checks for proper zoning conditions that will be disrupted. To avoid complications, the player in such a mount is initially spawned as infantry on their own client, realizes the state transition confirmation for infantry (turn counter), and is forced to transition into being seated, and only at that time will begin registeringKeepAliveMessage
to mark the end of their interim period.- guid
the player's globally unique identifier number
- def TurnCounterLogin(guid: PlanetSideGUID): Unit
The upstream counter accumulates when the server receives specific messages from the client.
This accumulator is assigned after a login event.The upstream counter accumulates when the server receives specific messages from the client.
This accumulator is assigned after a login event. The main purpose is to display any messages to the client regarding if their previous log-out location and their current log-in location are different. Hereafter, the normal accumulator will be referenced.- guid
the player's globally unique identifier number
- def TurnPlayerIntoCorpse(tplayer: Player, zone: Zone): Unit
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). A player who has been kicked may not turn into a corpse.
- tplayer
the player
- See also
AvatarAction.Release
AvatarServiceMessage
CorpseConverter.converter
DepictPlayerAsCorpse
Player.Release
Zone.AvatarEvents
Zone.Corpse.Add
Zone.Population
- def UpdatePersistence(persistRef: ActorRef)(): Unit
Update this player avatar for persistence.
Update this player avatar for persistence. Set this to
persistFunc
when persistence is ready.- persistRef
reference to the persistence monitor
- def UpdatePersistenceAndRefs(): Unit
Update this player avatar for persistence.
Update this player avatar for persistence. Set to
persist
when (new) player is loaded. - def WellLootedDeadBody(obj: Player): Boolean
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.
- obj
the corpse
- returns
true
, if theobj
is actually a corpse and has no objects in its holsters or backpack;false
, otherwise
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def avatarLoginResponse(avatar: Avatar): Unit
During login, when the avatar is set, the response code sets up session and deployable toolbox stats.
During login, when the avatar is set, the response code sets up session and deployable toolbox stats. Immediately contact the interstellar cluster to deal with zoning conditions. Only call this once during login and never any time after that.
- avatar
the avatar being set as the current one belonging to this session
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def handleLoginCanNot(name: String, reason: services.account.PlayerToken.DeniedLoginReason.Value): Unit
- def handleLoginInfoNowhere(name: String, from: ActorRef): Unit
- def handleLoginInfoRestore(name: String, inZone: Zone, pos: Vector3, from: ActorRef): Unit
- def handleLoginInfoSomewhere(name: String, inZone: Zone, optionalSavedData: Option[Savedplayer], from: ActorRef): Unit
- def handleNewPlayerLoaded(tplayer: Player): Unit
- def handlePlayerLoaded(tplayer: Player): Unit
- def handleReleaseAvatarRequest(pkt: ReleaseAvatarRequestMessage): Unit
- def handleSetPosition(position: Vector3): Unit
- def handleSpawnPointResponse(response: Option[(Zone, SpawnPoint)]): Unit
- def handleSpawnRequest(pkt: SpawnRequestMessage)(implicit context: ActorContext): Unit
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def isAcceptableNextSpawnPoint: Boolean
- def isAcceptableSpawnPoint(spawnPoint: Option[SpawnPoint]): Boolean
- def isAcceptableSpawnPoint(spawnPoint: SpawnPoint): Boolean
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def performAvatarAwardMessageDelivery(messageBundles: Iterable[Iterable[PlanetSideGamePacket]], delay: Long): Unit
Coordinate timed dispatches of groups of packets.
Coordinate timed dispatches of groups of packets.
- messageBundles
groups of packets to be dispatched
- delay
dispatch packet divisions in intervals
- def resolveZoningSpawnPointLoad(spawnPointTarget: Option[(Zone, SpawnPoint)], zoningType: Method): Unit
Process recovered spawn request information to start the process of spawning an avatar player entity in a specific zone in a specific place in that zone after a certain amount of time has elapsed.
To load: a zone, a spawn point, a spawning target entity, and the time it takes to spawn are required.Process recovered spawn request information to start the process of spawning an avatar player entity in a specific zone in a specific place in that zone after a certain amount of time has elapsed.
To load: a zone, a spawn point, a spawning target entity, and the time it takes to spawn are required. Everything but the spawn point can be determined from the information already available to the context (does not need to be passed in as a parameter). The zone is more reliable when passed in as a parameter since local references may have changed. The spawn point defines the spawn position as well as the spawn orientation. Any of information provided can be used to calculate the time to spawn. The session's knowledge of the zoning event is also used to assist with the spawning event.
If no spawn information has been provided, abort the whole process (unsafe!).- spawnPointTarget
an optional paired zone entity and a spawn point within the zone
- zoningType
a token that references the manner of zone transfer
- def setupAvatarAwardMessageDelivery(tplayer: Player, bundleSize: Int, delay: Long): Unit
Extract the merit commendation advancement information from a player character, filter unnecessary or not applicable statistics, translate the information into packet data, and coordinate timed dispatches of groups of packets.
Extract the merit commendation advancement information from a player character, filter unnecessary or not applicable statistics, translate the information into packet data, and coordinate timed dispatches of groups of packets.
- tplayer
the player character
- bundleSize
divide packets into groups of this size
- delay
dispatch packet divisions in intervals
- def setupAvatarAwardMessageDelivery(bundleSize: Int, delay: Long): Unit
Extract the award advancement information from a player character, and coordinate timed dispatches of groups of packets.
Extract the award advancement information from a player character, and coordinate timed dispatches of groups of packets.
- bundleSize
divide packets into groups of this size
- delay
dispatch packet divisions in intervals
- def skipAvatarAwardMessageDelivery(bundleSize: Int, delay: Long): Unit
Don't extract the award advancement information from a player character upon respawning or zoning.
Don't extract the award advancement information from a player character upon respawning or zoning. You only need to perform that population once at login.
- bundleSize
it doesn't matter
- delay
it doesn't matter
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()