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
*
* - 65535 segments per faction in deciseconds (seconds * 10)
- * - 0-65535 = Neutral 0 seconds to 1h 49m 14s
- * - 65536 - 131071 - TR
- * - 131072 - 196607 - NC
- * - 196608 - 262143 - VS
- * - 17039360 - CC Resecured
+ * - 0-65535 = Neutral 0 seconds to 1h 49m 14s - 0x 00 00 00 00 to 0x FF FF 00 00
+ * - 65536 - 131071 - TR - 0x 00 00 01 00
+ * - 131072 - 196607 - NC - 0x 00 00 02 00
+ * - 196608 - 262143 - VS - 0x 00 00 03 00
+ * - 17039360 - CC Resecured - 0x 00 00 04 01
*
*
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 _ => ;
}