From 009e9bc3617b720b94beba82f062249b97a83d48 Mon Sep 17 00:00:00 2001 From: ScrawnyRonnie Date: Wed, 19 Feb 2025 21:49:17 -0500 Subject: [PATCH] lock the driver door --- .../actors/session/support/ZoningOperations.scala | 10 +++++++--- src/main/scala/net/psforever/objects/Vehicles.scala | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/scala/net/psforever/actors/session/support/ZoningOperations.scala b/src/main/scala/net/psforever/actors/session/support/ZoningOperations.scala index cdbb2cdc..49bb0833 100644 --- a/src/main/scala/net/psforever/actors/session/support/ZoningOperations.scala +++ b/src/main/scala/net/psforever/actors/session/support/ZoningOperations.scala @@ -2495,9 +2495,13 @@ class ZoningOperations( ) ) //do this to make my deployed telepad appear that way - continent.Vehicles.filter(router => router.Definition == GlobalDefinitions.router && router.OwnerName.contains(player.Name)) - .foreach { obj => - sessionLogic.general.toggleTeleportSystem(obj, TelepadLike.AppraiseTeleportationSystem(obj, continent)) + if (continent.DeployableList.exists(telepad => telepad.Definition == GlobalDefinitions.router_telepad_deployable + && telepad.OwnerName.contains(player.Name))) + { + continent.Vehicles.filter(router => router.Definition == GlobalDefinitions.router && router.Faction == player.Faction) + .foreach { obj => + sessionLogic.general.toggleTeleportSystem(obj, TelepadLike.AppraiseTeleportationSystem(obj, continent)) + } } //begin looking for conditions to set the avatar context.system.scheduler.scheduleOnce(delay = 250 millisecond, context.self, SessionActor.SetCurrentAvatar(player, 200)) diff --git a/src/main/scala/net/psforever/objects/Vehicles.scala b/src/main/scala/net/psforever/objects/Vehicles.scala index 6a66afe3..259dc284 100644 --- a/src/main/scala/net/psforever/objects/Vehicles.scala +++ b/src/main/scala/net/psforever/objects/Vehicles.scala @@ -42,11 +42,13 @@ object Vehicles { case Some(tplayer) => tplayer.avatar.vehicle = Some(vehicle.GUID) vehicle.AssignOwnership(playerOpt) + val locked = VehicleLockState.Locked.id + Array(0, 3).foreach(group => vehicle.PermissionGroup(group, locked)) + Vehicles.ReloadAccessPermissions(vehicle, tplayer.Faction.toString) vehicle.Zone.VehicleEvents ! VehicleServiceMessage( vehicle.Zone.id, VehicleAction.Ownership(tplayer.GUID, vehicle.GUID) ) - Vehicles.ReloadAccessPermissions(vehicle, tplayer.Faction.toString) Some(vehicle) case None => None