fixed vehicles not loading when player has no GUID; deactivated squad features (may cause trouble for the Router, but we'll manage); removed lingering, unnecessary radiation tick

This commit is contained in:
Fate-JH 2023-05-09 11:43:59 -04:00
parent 5337f37363
commit a664aebb89
3 changed files with 20 additions and 13 deletions

View file

@ -55,17 +55,17 @@ class SessionSquadHandlers(
/* packet */ /* packet */
def handleSquadDefinitionAction(pkt: SquadDefinitionActionMessage): Unit = { def handleSquadDefinitionAction(pkt: SquadDefinitionActionMessage): Unit = {
val SquadDefinitionActionMessage(u1, u2, action) = pkt // val SquadDefinitionActionMessage(u1, u2, action) = pkt
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action)) // squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))
} }
def handleSquadMemberRequest(pkt: SquadMembershipRequest): Unit = { def handleSquadMemberRequest(pkt: SquadMembershipRequest): Unit = {
val SquadMembershipRequest(request_type, char_id, unk3, player_name, unk5) = pkt // val SquadMembershipRequest(request_type, char_id, unk3, player_name, unk5) = pkt
squadService ! SquadServiceMessage( // squadService ! SquadServiceMessage(
player, // player,
continent, // continent,
SquadServiceAction.Membership(request_type, char_id, unk3, player_name, unk5) // SquadServiceAction.Membership(request_type, char_id, unk3, player_name, unk5)
) // )
} }
def handleSquadWaypointRequest(pkt: SquadWaypointRequest): Unit = { def handleSquadWaypointRequest(pkt: SquadWaypointRequest): Unit = {

View file

@ -34,7 +34,7 @@ class SessionVehicleHandlers(
val resolvedPlayerGuid = if (player.HasGUID) { val resolvedPlayerGuid = if (player.HasGUID) {
player.GUID player.GUID
} else { } else {
Service.defaultPlayerGUID PlanetSideGUID(-1)
} }
val isNotSameTarget = resolvedPlayerGuid != guid val isNotSameTarget = resolvedPlayerGuid != guid
reply match { reply match {
@ -253,12 +253,13 @@ class SessionVehicleHandlers(
} }
case VehicleResponse.StartPlayerSeatedInVehicle(vehicle, _) => case VehicleResponse.StartPlayerSeatedInVehicle(vehicle, _) =>
val vehicle_guid = vehicle.GUID val vehicleGuid = vehicle.GUID
val playerGuid = player.GUID
sessionData.playerActionsToCancel() sessionData.playerActionsToCancel()
sessionData.vehicles.serverVehicleControlVelocity = Some(0) sessionData.vehicles.serverVehicleControlVelocity = Some(0)
sessionData.terminals.CancelAllProximityUnits() sessionData.terminals.CancelAllProximityUnits()
sendResponse(PlanetsideAttributeMessage(vehicle_guid, attribute_type=22, attribute_value=1L)) //mount points off sendResponse(PlanetsideAttributeMessage(vehicleGuid, attribute_type=22, attribute_value=1L)) //mount points off
sendResponse(PlanetsideAttributeMessage(player.GUID, attribute_type=21, vehicle_guid)) //ownership sendResponse(PlanetsideAttributeMessage(playerGuid, attribute_type=21, vehicleGuid)) //ownership
vehicle.MountPoints.find { case (_, mp) => mp.seatIndex == 0 }.collect { vehicle.MountPoints.find { case (_, mp) => mp.seatIndex == 0 }.collect {
case (mountPoint, _) => vehicle.Actor ! Mountable.TryMount(player, mountPoint) case (mountPoint, _) => vehicle.Actor ! Mountable.TryMount(player, mountPoint)
} }

View file

@ -13,6 +13,7 @@ import net.psforever.objects.inventory.{GridInventory, InventoryItem}
import net.psforever.objects.serverobject.{CommonMessages, PlanetSideServerObject, ServerObjectControl} import net.psforever.objects.serverobject.{CommonMessages, PlanetSideServerObject, ServerObjectControl}
import net.psforever.objects.serverobject.affinity.{FactionAffinity, FactionAffinityBehavior} import net.psforever.objects.serverobject.affinity.{FactionAffinity, FactionAffinityBehavior}
import net.psforever.objects.serverobject.containable.{Containable, ContainableBehavior} import net.psforever.objects.serverobject.containable.{Containable, ContainableBehavior}
import net.psforever.objects.serverobject.damage.Damageable.Target
import net.psforever.objects.serverobject.damage.{AggravatedBehavior, DamageableVehicle} import net.psforever.objects.serverobject.damage.{AggravatedBehavior, DamageableVehicle}
import net.psforever.objects.serverobject.environment._ import net.psforever.objects.serverobject.environment._
import net.psforever.objects.serverobject.hackable.GenericHackables import net.psforever.objects.serverobject.hackable.GenericHackables
@ -864,10 +865,15 @@ class VehicleControl(vehicle: Vehicle)
) )
} }
} }
override protected def DestructionAwareness(target: Target, cause: DamageResult): Unit = {
passengerRadiationCloudTimer.cancel()
super.DestructionAwareness(target, cause)
}
} }
object VehicleControl { object VehicleControl {
import net.psforever.objects.vital.{ShieldCharge} import net.psforever.objects.vital.ShieldCharge
private case class PrepareForDeletion() private case class PrepareForDeletion()