mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-20 02:54:46 +00:00
cancel zoning, driver rejoin, implant
This commit is contained in:
parent
46b446048d
commit
213943dc1d
|
|
@ -219,7 +219,7 @@ class SessionData(
|
|||
if (isMovingPlus) {
|
||||
if (zoning.zoningStatus == Zoning.Status.Deconstructing) {
|
||||
stopDeconstructing()
|
||||
} else {
|
||||
} else if (zoning.zoningStatus != Zoning.Status.None) {
|
||||
zoning.CancelZoningProcessWithDescriptiveReason("cancel_motion")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
package net.psforever.actors.session.support
|
||||
|
||||
import akka.actor.{ActorContext, typed}
|
||||
import net.psforever.objects.zones.Zoning
|
||||
import net.psforever.objects.zones.exp.ToDatabase
|
||||
|
||||
import scala.collection.mutable
|
||||
|
|
@ -50,7 +51,8 @@ private[support] class WeaponAndProjectileOperations(
|
|||
private[support] var shotsWhileDead: Int = 0
|
||||
private val projectiles: Array[Option[Projectile]] =
|
||||
Array.fill[Option[Projectile]](Projectile.rangeUID - Projectile.baseUID)(None)
|
||||
|
||||
private var zoningOpt: Option[ZoningOperations] = None
|
||||
def zoning: ZoningOperations = zoningOpt.orNull
|
||||
/* packets */
|
||||
|
||||
def handleWeaponFire(pkt: WeaponFireMessage): Unit = {
|
||||
|
|
@ -536,7 +538,9 @@ private[support] class WeaponAndProjectileOperations(
|
|||
weaponGUID: PlanetSideGUID,
|
||||
projectileGUID: PlanetSideGUID
|
||||
): (Option[PlanetSideGameObject with Container], Option[Tool]) = {
|
||||
sessionData.zoning.CancelZoningProcessWithDescriptiveReason("cancel_fire")
|
||||
if (player.ZoningRequest != Zoning.Method.None) {
|
||||
sessionData.zoning.CancelZoningProcessWithDescriptiveReason("cancel_fire")
|
||||
}
|
||||
if (player.isShielded) {
|
||||
// Cancel NC MAX shield if it's active
|
||||
sessionData.toggleMaxSpecialState(enable = false)
|
||||
|
|
|
|||
|
|
@ -889,7 +889,7 @@ class ZoningOperations(
|
|||
def beginZoningCountdown(runnable: Runnable): Unit = {
|
||||
val descriptor = zoningType.toString.toLowerCase
|
||||
if (zoningStatus == Zoning.Status.Request) {
|
||||
avatarActor ! AvatarActor.DeinitializeImplants()
|
||||
avatarActor ! AvatarActor.DeactivateActiveImplants()
|
||||
zoningStatus = Zoning.Status.Countdown
|
||||
val (time, origin) = ZoningStartInitialMessageAndTimer()
|
||||
zoningCounter = time
|
||||
|
|
@ -2300,18 +2300,8 @@ class ZoningOperations(
|
|||
//vehicle and driver/passenger
|
||||
val vdef = vehicle.Definition
|
||||
val vguid = vehicle.GUID
|
||||
val vdata = if (seat == 0) {
|
||||
val seat = vehicle.Seats(0)
|
||||
seat.unmount(player)
|
||||
val _vdata = vdef.Packet.ConstructorData(vehicle).get
|
||||
sendResponse(ObjectCreateMessage(vehicle.Definition.ObjectId, vguid, _vdata))
|
||||
seat.mount(player)
|
||||
_vdata
|
||||
} else {
|
||||
val _vdata = vdef.Packet.ConstructorData(vehicle).get
|
||||
sendResponse(ObjectCreateMessage(vehicle.Definition.ObjectId, vguid, _vdata))
|
||||
_vdata
|
||||
}
|
||||
val vdata = vdef.Packet.ConstructorData(vehicle).get
|
||||
sendResponse(ObjectCreateMessage(vehicle.Definition.ObjectId, vguid, vdata))
|
||||
Vehicles.ReloadAccessPermissions(vehicle, continent.id)
|
||||
log.debug(s"AvatarCreate (vehicle): ${player.Name}'s ${vehicle.Definition.Name}")
|
||||
log.trace(s"AvatarCreate (vehicle): ${player.Name}'s ${vehicle.Definition.Name} - $vguid -> $vdata")
|
||||
|
|
|
|||
Loading…
Reference in a new issue