diff --git a/common/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala b/common/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala index fce74ece..09556202 100644 --- a/common/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala +++ b/common/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala @@ -74,12 +74,7 @@ class ResourceSiloControl(resourceSilo : ResourceSilo) extends Actor with Factio if(resourceSilo.ChargeLevel == 0 && siloChargeBeforeChange > 0) { // Oops, someone let the base run out of power. Shut it all down. //todo: Make base neutral if silo hits zero NTU - - //todo: temporarily disabled until warpgates can bring ANTs from sanctuary, otherwise we'd be stuck in a situation with an unpowered base and no way to get an ANT to refill it. -// zone.AvatarEvents ! AvatarServiceMessage( -// zone.Id, -// AvatarAction.PlanetsideAttribute(PlanetSideGUID(building.MapId), 48, 1) -// ) + zone.AvatarEvents ! AvatarServiceMessage(zone.Id, AvatarAction.PlanetsideAttribute(building.GUID, 48, 1)) } else if (siloChargeBeforeChange == 0 && resourceSilo.ChargeLevel > 0) { // Power restored. Reactor Online. Sensors Online. Weapons Online. All systems nominal. //todo: Check generator is online before starting up diff --git a/common/src/main/scala/net/psforever/packet/game/PlanetsideAttributeMessage.scala b/common/src/main/scala/net/psforever/packet/game/PlanetsideAttributeMessage.scala index e5aae35a..014df10d 100644 --- a/common/src/main/scala/net/psforever/packet/game/PlanetsideAttributeMessage.scala +++ b/common/src/main/scala/net/psforever/packet/game/PlanetsideAttributeMessage.scala @@ -60,11 +60,11 @@ import scodec.codecs._ * `20 - Control console hacking. "The FactionName has hacked into BaseName` - also sets timer on CC and yellow base warning lights on
* *
These values seem to correspond to the following data structure: Time left - 2 bytes, faction - 1 byte (1-4), isResecured - 1 byte (0-1)
* `24 - Learn certifications with value :`
diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala index 76a9ba89..2854e782 100644 --- a/pslogin/src/main/scala/WorldSessionActor.scala +++ b/pslogin/src/main/scala/WorldSessionActor.scala @@ -1624,7 +1624,7 @@ class WorldSessionActor extends Actor with MDCContextAware { } else { continent.GUID(target_guid) match { - case Some(capture_terminal: Hackable) => + case Some(capture_terminal: Amenity with Hackable) => capture_terminal.HackedBy match { case Some(Hackable.HackInfo(_, _, hfaction, _, start, length)) => val hack_time_remaining_ms = TimeUnit.MILLISECONDS.convert(math.max(0, start + length - System.nanoTime), TimeUnit.NANOSECONDS) @@ -1639,6 +1639,14 @@ class WorldSessionActor extends Actor with MDCContextAware { 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) { + vehicleService ! VehicleServiceMessage(continent.Id, VehicleAction.KickPassenger(player.GUID, mountable.Seats.head._1, true, mountable.GUID)) + } + case _ => ; + } case _ => log.warn("LocalResponse.HackCaptureTerminal: HackedBy not defined") } case _ => log.warn(s"LocalResponse.HackCaptureTerminal: Couldn't find capture terminal with GUID ${target_guid} in zone ${continent.Id}") @@ -7744,8 +7752,7 @@ class WorldSessionActor extends Actor with MDCContextAware { sendResponse(PlanetsideAttributeMessage(amenityId, 47, if(silo.LowNtuWarningOn) 1 else 0)) if(silo.ChargeLevel == 0) { - // temporarily disabled until warpgates can bring ANTs from sanctuary, otherwise we'd be stuck in a situation with an unpowered base and no way to get an ANT to refill it. - // sendResponse(PlanetsideAttributeMessage(PlanetSideGUID(silo.Owner.asInstanceOf[Building].ModelId), 48, 1)) + sendResponse(PlanetsideAttributeMessage(silo.Owner.asInstanceOf[Building].GUID, 48, 1)) } case _ => ; }