mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-12 15:04:39 +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
5 changed files with 153 additions and 113 deletions
|
|
@ -50,9 +50,7 @@ class InterstellarCluster(zones : List[Zone]) extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
case InterstellarCluster.RequestClientInitialization(tplayer) =>
|
case InterstellarCluster.RequestClientInitialization(tplayer) =>
|
||||||
zones.foreach(zone => {
|
zones.foreach(zone => { sender ! Zone.ClientInitialization(zone.ClientInitialization()) })
|
||||||
sender ! Zone.ClientInitialization(zone.ClientInitialization()) //do this for each Zone
|
|
||||||
})
|
|
||||||
sender ! InterstellarCluster.ClientInitializationComplete(tplayer) //will be processed after all Zones
|
sender ! InterstellarCluster.ClientInitializationComplete(tplayer) //will be processed after all Zones
|
||||||
|
|
||||||
case _ => ;
|
case _ => ;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import net.psforever.objects.guid.actor.UniqueNumberSystem
|
||||||
import net.psforever.objects.guid.selector.RandomSelector
|
import net.psforever.objects.guid.selector.RandomSelector
|
||||||
import net.psforever.objects.guid.source.LimitedNumberSource
|
import net.psforever.objects.guid.source.LimitedNumberSource
|
||||||
import net.psforever.objects.serverobject.structures.{Amenity, Building}
|
import net.psforever.objects.serverobject.structures.{Amenity, Building}
|
||||||
import net.psforever.packet.GamePacket
|
|
||||||
import net.psforever.packet.game.PlanetSideGUID
|
import net.psforever.packet.game.PlanetSideGUID
|
||||||
import net.psforever.types.Vector3
|
import net.psforever.types.Vector3
|
||||||
|
|
||||||
|
|
@ -218,6 +217,8 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
||||||
|
|
||||||
def Transport : ActorRef = transport
|
def Transport : ActorRef = transport
|
||||||
|
|
||||||
|
def Buildings : Map[Int, Building] = buildings
|
||||||
|
|
||||||
def Building(id : Int) : Option[Building] = {
|
def Building(id : Int) : Option[Building] = {
|
||||||
buildings.get(id)
|
buildings.get(id)
|
||||||
}
|
}
|
||||||
|
|
@ -250,25 +251,7 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
||||||
* - `ZonePopulationUpdateMessage`
|
* - `ZonePopulationUpdateMessage`
|
||||||
* @return a `List` of `GamePacket` messages
|
* @return a `List` of `GamePacket` messages
|
||||||
*/
|
*/
|
||||||
def ClientInitialization() : List[GamePacket] = {
|
def ClientInitialization() : Zone = this
|
||||||
//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]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
object Zone {
|
object Zone {
|
||||||
|
|
@ -308,11 +291,11 @@ object Zone {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Message to report the packet messages that initialize the client.
|
* 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>
|
* @see `Zone.ClientInitialization()`<br>
|
||||||
* `InterstallarCluster`
|
* `InterstallarCluster`
|
||||||
*/
|
*/
|
||||||
final case class ClientInitialization(list : List[GamePacket])
|
final case class ClientInitialization(zone : Zone)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overloaded constructor.
|
* Overloaded constructor.
|
||||||
|
|
|
||||||
|
|
@ -48,15 +48,22 @@ object Maps {
|
||||||
val map12 = new ZoneMap("map12")
|
val map12 = new ZoneMap("map12")
|
||||||
|
|
||||||
val map13 = new ZoneMap("map13") {
|
val map13 = new ZoneMap("map13") {
|
||||||
LocalObject(ServerObjectBuilder(330, Door.Constructor(Vector3(3979.9219f, 2592.0547f, 91.140625f), Vector3(0, 0, 180))))
|
LocalObject(ServerObjectBuilder(372, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(331, Door.Constructor(Vector3(3979.9219f, 2592.0547f, 111.140625f), Vector3(0, 0, 180))))
|
LocalObject(ServerObjectBuilder(373, Door.Constructor))
|
||||||
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(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(362, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(370, Door.Constructor))
|
LocalObject(ServerObjectBuilder(370, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(371, Door.Constructor))
|
LocalObject(ServerObjectBuilder(371, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(372, Door.Constructor))
|
|
||||||
LocalObject(ServerObjectBuilder(373, Door.Constructor))
|
|
||||||
LocalObject(ServerObjectBuilder(374, Door.Constructor))
|
LocalObject(ServerObjectBuilder(374, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(375, Door.Constructor))
|
LocalObject(ServerObjectBuilder(375, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(394, Door.Constructor))
|
LocalObject(ServerObjectBuilder(394, Door.Constructor))
|
||||||
|
|
@ -66,7 +73,6 @@ object Maps {
|
||||||
LocalObject(ServerObjectBuilder(398, Door.Constructor))
|
LocalObject(ServerObjectBuilder(398, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(462, Door.Constructor))
|
LocalObject(ServerObjectBuilder(462, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(463, Door.Constructor))
|
LocalObject(ServerObjectBuilder(463, Door.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(520, ImplantTerminalMech.Constructor)) //Hart B
|
|
||||||
LocalObject(ServerObjectBuilder(522, ImplantTerminalMech.Constructor)) //Hart C
|
LocalObject(ServerObjectBuilder(522, ImplantTerminalMech.Constructor)) //Hart C
|
||||||
LocalObject(ServerObjectBuilder(523, ImplantTerminalMech.Constructor)) //Hart C
|
LocalObject(ServerObjectBuilder(523, ImplantTerminalMech.Constructor)) //Hart C
|
||||||
LocalObject(ServerObjectBuilder(524, 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(527, ImplantTerminalMech.Constructor)) //Hart C
|
||||||
LocalObject(ServerObjectBuilder(528, ImplantTerminalMech.Constructor)) //Hart C
|
LocalObject(ServerObjectBuilder(528, ImplantTerminalMech.Constructor)) //Hart C
|
||||||
LocalObject(ServerObjectBuilder(529, 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(686, Locker.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(687, Locker.Constructor))
|
LocalObject(ServerObjectBuilder(687, Locker.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(688, Locker.Constructor))
|
LocalObject(ServerObjectBuilder(688, Locker.Constructor))
|
||||||
|
|
@ -87,17 +89,10 @@ object Maps {
|
||||||
LocalObject(ServerObjectBuilder(691, Locker.Constructor))
|
LocalObject(ServerObjectBuilder(691, Locker.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(692, Locker.Constructor))
|
LocalObject(ServerObjectBuilder(692, Locker.Constructor))
|
||||||
LocalObject(ServerObjectBuilder(693, 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(842, Terminal.Constructor(order_terminal)))
|
||||||
LocalObject(ServerObjectBuilder(843, Terminal.Constructor(order_terminal)))
|
LocalObject(ServerObjectBuilder(843, Terminal.Constructor(order_terminal)))
|
||||||
LocalObject(ServerObjectBuilder(844, Terminal.Constructor(order_terminal)))
|
LocalObject(ServerObjectBuilder(844, Terminal.Constructor(order_terminal)))
|
||||||
LocalObject(ServerObjectBuilder(845, 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(1082, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
|
||||||
LocalObject(ServerObjectBuilder(1083, 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
|
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(1087, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
|
||||||
LocalObject(ServerObjectBuilder(1088, 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(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(186, 2)
|
||||||
ObjectToBuilding(187, 2)
|
ObjectToBuilding(187, 2)
|
||||||
ObjectToBuilding(188, 2)
|
ObjectToBuilding(188, 2)
|
||||||
|
|
@ -139,29 +124,6 @@ object Maps {
|
||||||
ObjectToBuilding(843, 2)
|
ObjectToBuilding(843, 2)
|
||||||
ObjectToBuilding(844, 2)
|
ObjectToBuilding(844, 2)
|
||||||
ObjectToBuilding(845, 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(520, 1081)
|
||||||
TerminalToInterface(522, 1082)
|
TerminalToInterface(522, 1082)
|
||||||
TerminalToInterface(523, 1083)
|
TerminalToInterface(523, 1083)
|
||||||
|
|
@ -171,6 +133,52 @@ object Maps {
|
||||||
TerminalToInterface(527, 1087)
|
TerminalToInterface(527, 1087)
|
||||||
TerminalToInterface(528, 1088)
|
TerminalToInterface(528, 1088)
|
||||||
TerminalToInterface(529, 1089)
|
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")
|
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.{MatrixTerminalDefinition, Terminal}
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal.TerminalMessage
|
import net.psforever.objects.serverobject.terminals.Terminal.TerminalMessage
|
||||||
import net.psforever.objects.vehicles.{AccessPermissionGroup, Utility, VehicleLockState}
|
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.objects.zones.{InterstellarCluster, Zone}
|
||||||
import net.psforever.packet.game.objectcreate._
|
import net.psforever.packet.game.objectcreate._
|
||||||
import net.psforever.types._
|
import net.psforever.types._
|
||||||
|
|
@ -976,39 +979,23 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
case VehicleLoaded(_/*vehicle*/) => ;
|
case VehicleLoaded(_/*vehicle*/) => ;
|
||||||
//currently being handled by VehicleSpawnPad.LoadVehicle during testing phase
|
//currently being handled by VehicleSpawnPad.LoadVehicle during testing phase
|
||||||
|
|
||||||
case Zone.ClientInitialization(/*initList*/_) =>
|
case Zone.ClientInitialization(initZone) =>
|
||||||
//TODO iterate over initList; for now, just do this
|
val continentNumber = PlanetSideGUID(initZone.Number)
|
||||||
sendResponse(
|
initZone.Buildings.foreach({ case(id, building) => initBuilding(continentNumber, PlanetSideGUID(id), building) })
|
||||||
BuildingInfoUpdateMessage(
|
sendResponse(ZonePopulationUpdateMessage(continentNumber, 414, 138, 0, 138, 0, 138, 0, 138, 0))
|
||||||
PlanetSideGUID(6), //Ceryshen
|
//ContinentLockUpdateMessage()
|
||||||
PlanetSideGUID(2), //Anguta
|
//CaptureFlagUpdateMessage()
|
||||||
8, //80% NTU
|
//VanuModuleUpdateMessage()
|
||||||
false, //Base hacked
|
//ModuleLimitsMessage()
|
||||||
PlanetSideEmpire.NEUTRAL, //Base hacked by NC
|
//ZoneInfoMessage()
|
||||||
0, //10 minutes remaining for hack
|
//ZoneInfoLockMessage()
|
||||||
PlanetSideEmpire.VS, //Base owned by VS
|
//ZoneForcedCavernConnectionMessage()
|
||||||
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 InterstellarCluster.ClientInitializationComplete(tplayer)=>
|
case InterstellarCluster.ClientInitializationComplete(tplayer)=>
|
||||||
//this will cause the client to send back a BeginZoningMessage packet (see below)
|
//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
|
sendResponse(LoadMapMessage(continent.Map.Name, continent.Id, 40100,25,true,3770441820L)) //VS Sanctuary
|
||||||
log.info("Load the now-registered player")
|
log.info("Load the now-registered player")
|
||||||
//load the now-registered player
|
//load the now-registered player
|
||||||
|
|
@ -1241,12 +1228,9 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
case msg @ BeginZoningMessage() =>
|
case msg @ BeginZoningMessage() =>
|
||||||
log.info("Reticulating splines ...")
|
log.info("Reticulating splines ...")
|
||||||
//map-specific initializations
|
//map-specific initializations
|
||||||
//TODO continent.ClientConfiguration()
|
configZone(continent) //todo density
|
||||||
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
|
||||||
sendResponse(SetEmpireMessage(PlanetSideGUID(2), PlanetSideEmpire.VS)) //HART building C
|
|
||||||
sendResponse(SetEmpireMessage(PlanetSideGUID(29), PlanetSideEmpire.NC)) //South Villa Gun Tower
|
|
||||||
|
|
||||||
sendResponse(TimeOfDayMessage(1191182336))
|
sendResponse(TimeOfDayMessage(1191182336))
|
||||||
sendResponse(ReplicationStreamMessage(5, Some(6), Vector(SquadListing()))) //clear squad list
|
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")
|
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) = {
|
def failWithError(error : String) = {
|
||||||
log.error(error)
|
log.error(error)
|
||||||
sendResponse(ConnectionClose())
|
sendResponse(ConnectionClose())
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ object Zones {
|
||||||
super.Init(context)
|
super.Init(context)
|
||||||
|
|
||||||
import net.psforever.types.PlanetSideEmpire
|
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
|
Building(29).get.Faction = PlanetSideEmpire.NC //South Villa Gun Tower
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue