From 73965d13b6fe9a46863f45194b87133777aee2c3 Mon Sep 17 00:00:00 2001 From: FateJH Date: Sat, 16 May 2020 11:55:52 -0400 Subject: [PATCH 1/2] properly kick mountable occupants from amenities when the base is hacked --- pslogin/src/main/scala/WorldSessionActor.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala index 4e660444..528774bb 100644 --- a/pslogin/src/main/scala/WorldSessionActor.scala +++ b/pslogin/src/main/scala/WorldSessionActor.scala @@ -7486,11 +7486,11 @@ class WorldSessionActor extends Actor } value = start_num + deciseconds_remaining sendResponse(PlanetsideAttributeMessage(target_guid, 20, value)) - continent.GUID(player.VehicleSeated) match { - case Some(mountable : Amenity with Mountable) => - if(mountable.Owner.GUID == capture_terminal.Owner.GUID) { - continent.VehicleEvents ! VehicleServiceMessage(continent.Id, VehicleAction.KickPassenger(player.GUID, mountable.Seats.head._1, true, mountable.GUID)) - } + GetMountableAndSeat(None, player) match { + case (Some(mountable : Amenity), Some(seat)) if mountable.Owner.GUID == capture_terminal.Owner.GUID => + mountable.Seats(seat).Occupant = None + player.VehicleSeated = None + continent.VehicleEvents ! VehicleServiceMessage(continent.Id, VehicleAction.KickPassenger(player.GUID, mountable.Seats.head._1, true, mountable.GUID)) case _ => ; } case _ => log.warn("HackCaptureTerminal: hack state monitor not defined") From c439701cca39cb6fb139800fa58f41827fc2c7a5 Mon Sep 17 00:00:00 2001 From: FateJH Date: Sat, 16 May 2020 12:57:44 -0400 Subject: [PATCH 2/2] seat number (despite it not really mattering right now) --- pslogin/src/main/scala/WorldSessionActor.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala index 528774bb..b999ce2e 100644 --- a/pslogin/src/main/scala/WorldSessionActor.scala +++ b/pslogin/src/main/scala/WorldSessionActor.scala @@ -7490,7 +7490,7 @@ class WorldSessionActor extends Actor case (Some(mountable : Amenity), Some(seat)) if mountable.Owner.GUID == capture_terminal.Owner.GUID => mountable.Seats(seat).Occupant = None player.VehicleSeated = None - continent.VehicleEvents ! VehicleServiceMessage(continent.Id, VehicleAction.KickPassenger(player.GUID, mountable.Seats.head._1, true, mountable.GUID)) + continent.VehicleEvents ! VehicleServiceMessage(continent.Id, VehicleAction.KickPassenger(player.GUID, seat, true, mountable.GUID)) case _ => ; } case _ => log.warn("HackCaptureTerminal: hack state monitor not defined")