Simple player spawning proof of concept using buildings mapped to their spawn tube amenities in a "spawn group."

This commit is contained in:
FateJH 2018-03-17 23:52:58 -04:00
parent 001f9a40e9
commit 3e9e3df0fa
4 changed files with 162 additions and 79 deletions

View file

@ -615,7 +615,7 @@ object Player {
def Release(player : Player) : Player = {
if(player.Release) {
val obj = new Player(player.Name, player.Faction, player.Sex, player.Voice, player.Head)
val obj = new Player(player.Name, player.Faction, player.Sex, player.Head, player.Voice)
obj.VehicleOwned = player.VehicleOwned
obj.Continent = player.Continent
//hand over loadouts
@ -629,11 +629,11 @@ object Player {
}
})
//hand over knife
obj.Slot(4).Equipment = player.Slot(4).Equipment
player.Slot(4).Equipment = None
//hand over ???
obj.fifthSlot.Equipment = player.fifthSlot.Equipment
player.fifthSlot.Equipment = None
// obj.Slot(4).Equipment = player.Slot(4).Equipment
// player.Slot(4).Equipment = None
//hand over locker contents
// obj.fifthSlot.Equipment = player.fifthSlot.Equipment
// player.fifthSlot.Equipment = None
obj
}
else {

View file

@ -49,9 +49,9 @@ class InterstellarCluster(zones : List[Zone]) extends Actor {
log.error(s"Requested zone $zoneId could not be found")
}
case InterstellarCluster.RequestClientInitialization(tplayer) =>
case InterstellarCluster.RequestClientInitialization() =>
zones.foreach(zone => { sender ! Zone.ClientInitialization(zone.ClientInitialization()) })
sender ! InterstellarCluster.ClientInitializationComplete(tplayer) //will be processed after all Zones
sender ! InterstellarCluster.ClientInitializationComplete() //will be processed after all Zones
case _ => ;
}
@ -95,17 +95,13 @@ object InterstellarCluster {
/**
* Signal to the cluster that a new client needs to be initialized for all listed `Zone` destinations.
* @param tplayer the `Player` belonging to the client;
* may be superfluous
* @see `Zone`
*/
final case class RequestClientInitialization(tplayer : Player)
final case class RequestClientInitialization()
/**
* Return signal intended to inform the original sender that all `Zone`s have finished being initialized.
* @param tplayer the `Player` belonging to the client;
* may be superfluous
* @see `WorldSessionActor`
*/
final case class ClientInitializationComplete(tplayer : Player)
final case class ClientInitializationComplete()
}

View file

@ -5,7 +5,14 @@ import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacke
import scodec.Codec
import scodec.codecs._
/**
*
* @param unk1 na
* @param unk2 na
* @param unk3 na
* @param unk4 na
* @param unk5 continent?
*/
final case class SpawnRequestMessage(unk1 : Int,
unk2 : Long,
unk3 : Int,