mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-02-05 10:11:00 +00:00
begin initialization of buildings and configuration of their amenities; reorganize entries in Maps.scala to better associate buildings and amenities
This commit is contained in:
parent
71173c171b
commit
77b4890706
|
|
@ -50,9 +50,7 @@ class InterstellarCluster(zones : List[Zone]) extends Actor {
|
|||
}
|
||||
|
||||
case InterstellarCluster.RequestClientInitialization(tplayer) =>
|
||||
zones.foreach(zone => {
|
||||
sender ! Zone.ClientInitialization(zone.ClientInitialization()) //do this for each Zone
|
||||
})
|
||||
zones.foreach(zone => { sender ! Zone.ClientInitialization(zone.ClientInitialization()) })
|
||||
sender ! InterstellarCluster.ClientInitializationComplete(tplayer) //will be processed after all Zones
|
||||
|
||||
case _ => ;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import net.psforever.objects.guid.actor.UniqueNumberSystem
|
|||
import net.psforever.objects.guid.selector.RandomSelector
|
||||
import net.psforever.objects.guid.source.LimitedNumberSource
|
||||
import net.psforever.objects.serverobject.structures.{Amenity, Building}
|
||||
import net.psforever.packet.GamePacket
|
||||
import net.psforever.packet.game.PlanetSideGUID
|
||||
import net.psforever.types.Vector3
|
||||
|
||||
|
|
@ -218,6 +217,8 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
|||
|
||||
def Transport : ActorRef = transport
|
||||
|
||||
def Buildings : Map[Int, Building] = buildings
|
||||
|
||||
def Building(id : Int) : Option[Building] = {
|
||||
buildings.get(id)
|
||||
}
|
||||
|
|
@ -250,25 +251,7 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
|||
* - `ZonePopulationUpdateMessage`
|
||||
* @return a `List` of `GamePacket` messages
|
||||
*/
|
||||
def ClientInitialization() : List[GamePacket] = {
|
||||
//TODO unimplemented
|
||||
List.empty[GamePacket]
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide bulk correspondence on all server objects that can be composed into packet messages and reported to a client.
|
||||
* These messages are sent in this fashion at the time of joining a specific `Zone`:<br>
|
||||
* - `HackMessage`<br>
|
||||
* - `PlanetsideAttributeMessage`<br>
|
||||
* - `SetEmpireMessage`<br>
|
||||
* - `TimeOfDayMessage`<br>
|
||||
* - `WeatherMessage`
|
||||
* @return a `List` of `GamePacket` messages
|
||||
*/
|
||||
def ClientConfiguration() : List[GamePacket] = {
|
||||
//TODO unimplemented
|
||||
List.empty[GamePacket]
|
||||
}
|
||||
def ClientInitialization() : Zone = this
|
||||
}
|
||||
|
||||
object Zone {
|
||||
|
|
@ -308,11 +291,11 @@ object Zone {
|
|||
|
||||
/**
|
||||
* Message to report the packet messages that initialize the client.
|
||||
* @param list a `List` of `GamePacket` messages
|
||||
* @param zone a `Zone` to have its buildings and continental parameters turned into packet data
|
||||
* @see `Zone.ClientInitialization()`<br>
|
||||
* `InterstallarCluster`
|
||||
*/
|
||||
final case class ClientInitialization(list : List[GamePacket])
|
||||
final case class ClientInitialization(zone : Zone)
|
||||
|
||||
/**
|
||||
* Overloaded constructor.
|
||||
|
|
|
|||
|
|
@ -48,15 +48,22 @@ object Maps {
|
|||
val map12 = new ZoneMap("map12")
|
||||
|
||||
val map13 = new ZoneMap("map13") {
|
||||
LocalObject(ServerObjectBuilder(330, Door.Constructor(Vector3(3979.9219f, 2592.0547f, 91.140625f), Vector3(0, 0, 180))))
|
||||
LocalObject(ServerObjectBuilder(331, Door.Constructor(Vector3(3979.9219f, 2592.0547f, 111.140625f), Vector3(0, 0, 180))))
|
||||
LocalObject(ServerObjectBuilder(332, Door.Constructor(Vector3(3979.9688f, 2608.0625f, 91.140625f), Vector3(0, 0, 0))))
|
||||
LocalObject(ServerObjectBuilder(333, Door.Constructor(Vector3(3979.9688f, 2608.0625f, 111.140625f), Vector3(0, 0, 0))))
|
||||
LocalObject(ServerObjectBuilder(372, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(373, Door.Constructor))
|
||||
|
||||
LocalObject(ServerObjectBuilder(520, ImplantTerminalMech.Constructor)) //Hart B
|
||||
LocalObject(ServerObjectBuilder(1081, Terminal.Constructor(implant_terminal_interface))) //tube 520
|
||||
LocalObject(ServerObjectBuilder(853, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(855, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(860, Terminal.Constructor(order_terminal)))
|
||||
|
||||
LocalBuilding(2, FoundationBuilder(Building.Structure)) //HART building C
|
||||
LocalObject(ServerObjectBuilder(186, Terminal.Constructor(cert_terminal)))
|
||||
LocalObject(ServerObjectBuilder(187, Terminal.Constructor(cert_terminal)))
|
||||
LocalObject(ServerObjectBuilder(188, Terminal.Constructor(cert_terminal)))
|
||||
LocalObject(ServerObjectBuilder(362, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(370, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(371, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(372, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(373, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(374, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(375, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(394, Door.Constructor))
|
||||
|
|
@ -66,7 +73,6 @@ object Maps {
|
|||
LocalObject(ServerObjectBuilder(398, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(462, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(463, Door.Constructor))
|
||||
LocalObject(ServerObjectBuilder(520, ImplantTerminalMech.Constructor)) //Hart B
|
||||
LocalObject(ServerObjectBuilder(522, ImplantTerminalMech.Constructor)) //Hart C
|
||||
LocalObject(ServerObjectBuilder(523, ImplantTerminalMech.Constructor)) //Hart C
|
||||
LocalObject(ServerObjectBuilder(524, ImplantTerminalMech.Constructor)) //Hart C
|
||||
|
|
@ -75,10 +81,6 @@ object Maps {
|
|||
LocalObject(ServerObjectBuilder(527, ImplantTerminalMech.Constructor)) //Hart C
|
||||
LocalObject(ServerObjectBuilder(528, ImplantTerminalMech.Constructor)) //Hart C
|
||||
LocalObject(ServerObjectBuilder(529, ImplantTerminalMech.Constructor)) //Hart C
|
||||
LocalObject(ServerObjectBuilder(556, IFFLock.Constructor))
|
||||
LocalObject(ServerObjectBuilder(557, IFFLock.Constructor))
|
||||
LocalObject(ServerObjectBuilder(558, IFFLock.Constructor))
|
||||
LocalObject(ServerObjectBuilder(559, IFFLock.Constructor))
|
||||
LocalObject(ServerObjectBuilder(686, Locker.Constructor))
|
||||
LocalObject(ServerObjectBuilder(687, Locker.Constructor))
|
||||
LocalObject(ServerObjectBuilder(688, Locker.Constructor))
|
||||
|
|
@ -87,17 +89,10 @@ object Maps {
|
|||
LocalObject(ServerObjectBuilder(691, Locker.Constructor))
|
||||
LocalObject(ServerObjectBuilder(692, Locker.Constructor))
|
||||
LocalObject(ServerObjectBuilder(693, Locker.Constructor))
|
||||
LocalObject(ServerObjectBuilder(186, Terminal.Constructor(cert_terminal)))
|
||||
LocalObject(ServerObjectBuilder(187, Terminal.Constructor(cert_terminal)))
|
||||
LocalObject(ServerObjectBuilder(188, Terminal.Constructor(cert_terminal)))
|
||||
LocalObject(ServerObjectBuilder(842, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(843, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(844, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(845, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(853, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(855, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(860, Terminal.Constructor(order_terminal)))
|
||||
LocalObject(ServerObjectBuilder(1081, Terminal.Constructor(implant_terminal_interface))) //tube 520
|
||||
LocalObject(ServerObjectBuilder(1082, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
|
||||
LocalObject(ServerObjectBuilder(1083, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
|
||||
LocalObject(ServerObjectBuilder(1084, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
|
||||
|
|
@ -106,16 +101,6 @@ object Maps {
|
|||
LocalObject(ServerObjectBuilder(1087, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
|
||||
LocalObject(ServerObjectBuilder(1088, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
|
||||
LocalObject(ServerObjectBuilder(1089, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
|
||||
LocalObject(ServerObjectBuilder(1063, Terminal.Constructor(ground_vehicle_terminal)))
|
||||
LocalObject(ServerObjectBuilder(500,
|
||||
VehicleSpawnPad.Constructor(Vector3(3506.0f, 2820.0f, 92.0f), Vector3(0f, 0f, 270.0f))
|
||||
)) //TODO guid not correct
|
||||
LocalObject(ServerObjectBuilder(304, Terminal.Constructor(dropship_vehicle_terminal)))
|
||||
LocalObject(ServerObjectBuilder(501,
|
||||
VehicleSpawnPad.Constructor(Vector3(3508.9844f, 2895.961f, 92.296875f), Vector3(0f, 0f, 270.0f))
|
||||
)) //TODO guid not correct
|
||||
|
||||
LocalBuilding(2, FoundationBuilder(Building.Structure))
|
||||
ObjectToBuilding(186, 2)
|
||||
ObjectToBuilding(187, 2)
|
||||
ObjectToBuilding(188, 2)
|
||||
|
|
@ -139,29 +124,6 @@ object Maps {
|
|||
ObjectToBuilding(843, 2)
|
||||
ObjectToBuilding(844, 2)
|
||||
ObjectToBuilding(845, 2)
|
||||
ObjectToBuilding(853, 2) //TODO check building_id
|
||||
ObjectToBuilding(855, 2) //TODO check building_id
|
||||
ObjectToBuilding(860, 2) //TODO check building_id
|
||||
ObjectToBuilding(1063, 2) //TODO unowned courtyard terminal?
|
||||
ObjectToBuilding(500, 2) //TODO unowned courtyard spawnpad?
|
||||
ObjectToBuilding(304, 2) //TODO unowned courtyard terminal?
|
||||
ObjectToBuilding(501, 2) //TODO unowned courtyard spawnpad?
|
||||
|
||||
LocalBuilding(29, FoundationBuilder(Building.Structure))
|
||||
ObjectToBuilding(330, 29)
|
||||
ObjectToBuilding(332, 29)
|
||||
ObjectToBuilding(556, 29)
|
||||
ObjectToBuilding(558, 29)
|
||||
|
||||
//ObjectToBuilding(1081, ?)
|
||||
//ObjectToBuilding(520, ?)
|
||||
|
||||
DoorToLock(330, 558)
|
||||
DoorToLock(331, 559)
|
||||
DoorToLock(332, 556)
|
||||
DoorToLock(333, 557)
|
||||
TerminalToSpawnPad(1063, 500)
|
||||
TerminalToSpawnPad(304, 501)
|
||||
TerminalToInterface(520, 1081)
|
||||
TerminalToInterface(522, 1082)
|
||||
TerminalToInterface(523, 1083)
|
||||
|
|
@ -171,6 +133,52 @@ object Maps {
|
|||
TerminalToInterface(527, 1087)
|
||||
TerminalToInterface(528, 1088)
|
||||
TerminalToInterface(529, 1089)
|
||||
|
||||
LocalBuilding(29, FoundationBuilder(Building.Structure)) //South Villa Gun Tower
|
||||
LocalObject(ServerObjectBuilder(330, Door.Constructor(Vector3(3979.9219f, 2592.0547f, 91.140625f), Vector3(0, 0, 180))))
|
||||
LocalObject(ServerObjectBuilder(331, Door.Constructor(Vector3(3979.9219f, 2592.0547f, 111.140625f), Vector3(0, 0, 180))))
|
||||
LocalObject(ServerObjectBuilder(332, Door.Constructor(Vector3(3979.9688f, 2608.0625f, 91.140625f), Vector3(0, 0, 0))))
|
||||
LocalObject(ServerObjectBuilder(333, Door.Constructor(Vector3(3979.9688f, 2608.0625f, 111.140625f), Vector3(0, 0, 0))))
|
||||
LocalObject(ServerObjectBuilder(556, IFFLock.Constructor))
|
||||
LocalObject(ServerObjectBuilder(557, IFFLock.Constructor))
|
||||
LocalObject(ServerObjectBuilder(558, IFFLock.Constructor))
|
||||
LocalObject(ServerObjectBuilder(559, IFFLock.Constructor))
|
||||
ObjectToBuilding(330, 29)
|
||||
ObjectToBuilding(331, 29)
|
||||
ObjectToBuilding(332, 29)
|
||||
ObjectToBuilding(333, 29)
|
||||
ObjectToBuilding(556, 29)
|
||||
ObjectToBuilding(557, 29)
|
||||
ObjectToBuilding(558, 29)
|
||||
ObjectToBuilding(559, 29)
|
||||
DoorToLock(330, 558)
|
||||
DoorToLock(331, 559)
|
||||
DoorToLock(332, 556)
|
||||
DoorToLock(333, 557)
|
||||
|
||||
LocalBuilding(51, FoundationBuilder(Building.Structure))
|
||||
LocalObject(ServerObjectBuilder(304, Terminal.Constructor(dropship_vehicle_terminal)))
|
||||
LocalObject(ServerObjectBuilder(292,
|
||||
VehicleSpawnPad.Constructor(Vector3(3508.9844f, 2895.961f, 92.296875f), Vector3(0f, 0f, 270.0f))
|
||||
))
|
||||
ObjectToBuilding(304, 51)
|
||||
ObjectToBuilding(292, 51)
|
||||
TerminalToSpawnPad(304, 292)
|
||||
|
||||
LocalBuilding(77, FoundationBuilder(Building.Structure))
|
||||
LocalObject(ServerObjectBuilder(1063, Terminal.Constructor(ground_vehicle_terminal)))
|
||||
LocalObject(ServerObjectBuilder(706,
|
||||
VehicleSpawnPad.Constructor(Vector3(3506.0f, 2820.0f, 92.0f), Vector3(0f, 0f, 270.0f))
|
||||
))
|
||||
ObjectToBuilding(1063, 77)
|
||||
ObjectToBuilding(706, 77)
|
||||
TerminalToSpawnPad(1063, 706)
|
||||
|
||||
//ObjectToBuilding(1081, ?)
|
||||
//ObjectToBuilding(520, ?)
|
||||
ObjectToBuilding(853, 2) //TODO check building_id
|
||||
ObjectToBuilding(855, 2) //TODO check building_id
|
||||
ObjectToBuilding(860, 2) //TODO check building_id
|
||||
}
|
||||
|
||||
val map14 = new ZoneMap("map13")
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ import net.psforever.objects.serverobject.pad.VehicleSpawnPad
|
|||
import net.psforever.objects.serverobject.terminals.{MatrixTerminalDefinition, Terminal}
|
||||
import net.psforever.objects.serverobject.terminals.Terminal.TerminalMessage
|
||||
import net.psforever.objects.vehicles.{AccessPermissionGroup, Utility, VehicleLockState}
|
||||
import net.psforever.objects.serverobject.structures.Building
|
||||
import net.psforever.objects.serverobject.terminals.Terminal
|
||||
import net.psforever.objects.vehicles.{AccessPermissionGroup, VehicleLockState}
|
||||
import net.psforever.objects.zones.{InterstellarCluster, Zone}
|
||||
import net.psforever.packet.game.objectcreate._
|
||||
import net.psforever.types._
|
||||
|
|
@ -976,39 +979,23 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
case VehicleLoaded(_/*vehicle*/) => ;
|
||||
//currently being handled by VehicleSpawnPad.LoadVehicle during testing phase
|
||||
|
||||
case Zone.ClientInitialization(/*initList*/_) =>
|
||||
//TODO iterate over initList; for now, just do this
|
||||
sendResponse(
|
||||
BuildingInfoUpdateMessage(
|
||||
PlanetSideGUID(6), //Ceryshen
|
||||
PlanetSideGUID(2), //Anguta
|
||||
8, //80% NTU
|
||||
false, //Base hacked
|
||||
PlanetSideEmpire.NEUTRAL, //Base hacked by NC
|
||||
0, //10 minutes remaining for hack
|
||||
PlanetSideEmpire.VS, //Base owned by VS
|
||||
0, //!! Field != 0 will cause malformed packet. See class def.
|
||||
None,
|
||||
PlanetSideGeneratorState.Normal, //Generator critical
|
||||
true, //Respawn tubes destroyed
|
||||
true, //Force dome active
|
||||
16, //Tech plant lattice benefit
|
||||
0,
|
||||
Nil, //!! Field > 0 will cause malformed packet. See class def.
|
||||
0,
|
||||
false,
|
||||
8, //!! Field != 8 will cause malformed packet. See class def.
|
||||
None,
|
||||
true, //Boosted spawn room pain field
|
||||
true //Boosted generator room pain field
|
||||
)
|
||||
)
|
||||
sendResponse(ContinentalLockUpdateMessage(PlanetSideGUID(13), PlanetSideEmpire.VS)) // "The VS have captured the VS Sanctuary."
|
||||
sendResponse(BroadcastWarpgateUpdateMessage(PlanetSideGUID(13), PlanetSideGUID(1), false, false, true)) // VS Sanctuary: Inactive Warpgate -> Broadcast Warpgate
|
||||
sendResponse(ZonePopulationUpdateMessage(PlanetSideGUID(13), 414, 138, 0, 138, 0, 138, 0, 138, 0))
|
||||
case Zone.ClientInitialization(initZone) =>
|
||||
val continentNumber = PlanetSideGUID(initZone.Number)
|
||||
initZone.Buildings.foreach({ case(id, building) => initBuilding(continentNumber, PlanetSideGUID(id), building) })
|
||||
sendResponse(ZonePopulationUpdateMessage(continentNumber, 414, 138, 0, 138, 0, 138, 0, 138, 0))
|
||||
//ContinentLockUpdateMessage()
|
||||
//CaptureFlagUpdateMessage()
|
||||
//VanuModuleUpdateMessage()
|
||||
//ModuleLimitsMessage()
|
||||
//ZoneInfoMessage()
|
||||
//ZoneInfoLockMessage()
|
||||
//ZoneForcedCavernConnectionMessage()
|
||||
|
||||
case InterstellarCluster.ClientInitializationComplete(tplayer)=>
|
||||
//this will cause the client to send back a BeginZoningMessage packet (see below)
|
||||
sendResponse(ContinentalLockUpdateMessage(PlanetSideGUID(13), PlanetSideEmpire.VS)) // "The VS have captured the VS Sanctuary."
|
||||
sendResponse(BroadcastWarpgateUpdateMessage(PlanetSideGUID(13), PlanetSideGUID(1), false, false, true)) // VS Sanctuary: Inactive Warpgate -> Broadcast Warpgate
|
||||
|
||||
sendResponse(LoadMapMessage(continent.Map.Name, continent.Id, 40100,25,true,3770441820L)) //VS Sanctuary
|
||||
log.info("Load the now-registered player")
|
||||
//load the now-registered player
|
||||
|
|
@ -1241,12 +1228,9 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
case msg @ BeginZoningMessage() =>
|
||||
log.info("Reticulating splines ...")
|
||||
//map-specific initializations
|
||||
//TODO continent.ClientConfiguration()
|
||||
sendResponse(PlanetsideAttributeMessage(PlanetSideGUID(0), 112, 1))
|
||||
|
||||
sendResponse(SetEmpireMessage(PlanetSideGUID(2), PlanetSideEmpire.VS)) //HART building C
|
||||
sendResponse(SetEmpireMessage(PlanetSideGUID(29), PlanetSideEmpire.NC)) //South Villa Gun Tower
|
||||
|
||||
configZone(continent) //todo density
|
||||
//sendResponse(SetEmpireMessage(PlanetSideGUID(2), PlanetSideEmpire.VS)) //HART building C
|
||||
//sendResponse(SetEmpireMessage(PlanetSideGUID(29), PlanetSideEmpire.NC)) //South Villa Gun Tower
|
||||
sendResponse(TimeOfDayMessage(1191182336))
|
||||
sendResponse(ReplicationStreamMessage(5, Some(6), Vector(SquadListing()))) //clear squad list
|
||||
|
||||
|
|
@ -3050,6 +3034,73 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
log.error(s"DeployRequest: $obj can not transition to $state - $reason$mobileShift")
|
||||
}
|
||||
|
||||
def initBuilding(continentNumber : PlanetSideGUID, buildingNumber : PlanetSideGUID, building : Building) : Unit = {
|
||||
sendResponse(
|
||||
BuildingInfoUpdateMessage(
|
||||
continentNumber, buildingNumber,
|
||||
10,
|
||||
false,
|
||||
PlanetSideEmpire.NEUTRAL,
|
||||
0,
|
||||
building.Faction,
|
||||
0,
|
||||
None,
|
||||
PlanetSideGeneratorState.Normal,
|
||||
true,
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
Nil,
|
||||
0,
|
||||
false,
|
||||
8,
|
||||
None,
|
||||
false,
|
||||
false
|
||||
)
|
||||
)
|
||||
// sendResponse(
|
||||
// BuildingInfoUpdateMessage(
|
||||
// PlanetSideGUID(6), //Ceryshen
|
||||
// PlanetSideGUID(2), //Anguta
|
||||
// 8, //80% NTU
|
||||
// true, //Base hacked
|
||||
// PlanetSideEmpire.NC, //Base hacked by NC
|
||||
// 600000, //10 minutes remaining for hack
|
||||
// PlanetSideEmpire.VS, //Base owned by VS
|
||||
// 0, //!! Field != 0 will cause malformed packet. See class def.
|
||||
// None,
|
||||
// PlanetSideGeneratorState.Critical, //Generator critical
|
||||
// true, //Respawn tubes destroyed
|
||||
// true, //Force dome active
|
||||
// 16, //Tech plant lattice benefit
|
||||
// 0,
|
||||
// Nil, //!! Field > 0 will cause malformed packet. See class def.
|
||||
// 0,
|
||||
// false,
|
||||
// 8, //!! Field != 8 will cause malformed packet. See class def.
|
||||
// None,
|
||||
// true, //Boosted spawn room pain field
|
||||
// true //Boosted generator room pain field
|
||||
// )
|
||||
// )
|
||||
//TODO DensityLevelUpdateMessage()
|
||||
//TODO BroadcastWarpgateUpdateMessage() for warp gates
|
||||
}
|
||||
|
||||
def configZone(zone : Zone) : Unit = {
|
||||
zone.Buildings.foreach({case (id, building) =>
|
||||
sendResponse(SetEmpireMessage(PlanetSideGUID(id), building.Faction))
|
||||
//TODO HackMessage() ?
|
||||
building.Amenities.foreach(amenity => {
|
||||
val amenityId = amenity.GUID
|
||||
//TODO HackMessage() ?
|
||||
sendResponse(PlanetsideAttributeMessage(amenityId, 50, 0))
|
||||
sendResponse(PlanetsideAttributeMessage(amenityId, 51, 0))
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
def failWithError(error : String) = {
|
||||
log.error(error)
|
||||
sendResponse(ConnectionClose())
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ object Zones {
|
|||
super.Init(context)
|
||||
|
||||
import net.psforever.types.PlanetSideEmpire
|
||||
Building(2).get.Faction = PlanetSideEmpire.VS //HART building C
|
||||
Buildings.values.foreach(building => { building.Faction = PlanetSideEmpire.VS })
|
||||
Building(29).get.Faction = PlanetSideEmpire.NC //South Villa Gun Tower
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue