mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-04-29 16:25:30 +00:00
Merge pull request #447 from Mazo/vehicle-actor-safeguard
Safeguard against trying to send messages to a vehicle actor that no longer exists
This commit is contained in:
commit
270485fa4d
2 changed files with 3 additions and 3 deletions
|
|
@ -309,7 +309,7 @@ class PersistenceMonitor(name : String, squadService : ActorRef, taskResolver :
|
||||||
player.Position = Vector3.Zero
|
player.Position = Vector3.Zero
|
||||||
player.Health = 0
|
player.Health = 0
|
||||||
inZone.GUID(player.VehicleOwned) match {
|
inZone.GUID(player.VehicleOwned) match {
|
||||||
case Some(vehicle : Vehicle) if vehicle.OwnerName.contains(player.Name) =>
|
case Some(vehicle : Vehicle) if vehicle.OwnerName.contains(player.Name) && vehicle.Actor != ActorRef.noSender =>
|
||||||
vehicle.Actor ! Vehicle.Ownership(None)
|
vehicle.Actor ! Vehicle.Ownership(None)
|
||||||
case _ => ;
|
case _ => ;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9324,7 +9324,7 @@ class WorldSessionActor extends Actor
|
||||||
def HandleDealingDamage(target : PlanetSideGameObject with Vitality, data : ResolvedProjectile) : Unit = {
|
def HandleDealingDamage(target : PlanetSideGameObject with Vitality, data : ResolvedProjectile) : Unit = {
|
||||||
val func = data.damage_model.Calculate(data)
|
val func = data.damage_model.Calculate(data)
|
||||||
target match {
|
target match {
|
||||||
case obj : Player if obj.CanDamage =>
|
case obj : Player if obj.CanDamage && obj.Actor != ActorRef.noSender =>
|
||||||
if(obj.spectator) {
|
if(obj.spectator) {
|
||||||
player.death_by = -1 // little thing for auto kick
|
player.death_by = -1 // little thing for auto kick
|
||||||
}
|
}
|
||||||
|
|
@ -10199,7 +10199,7 @@ class WorldSessionActor extends Actor
|
||||||
def LoadZoneCommonTransferActivity() : Unit = {
|
def LoadZoneCommonTransferActivity() : Unit = {
|
||||||
if(player.VehicleOwned.nonEmpty && player.VehicleSeated != player.VehicleOwned) {
|
if(player.VehicleOwned.nonEmpty && player.VehicleSeated != player.VehicleOwned) {
|
||||||
continent.GUID(player.VehicleOwned) match {
|
continent.GUID(player.VehicleOwned) match {
|
||||||
case Some(vehicle : Vehicle) =>
|
case Some(vehicle : Vehicle) if vehicle.Actor != ActorRef.noSender =>
|
||||||
vehicle.Actor ! Vehicle.Ownership(None)
|
vehicle.Actor ! Vehicle.Ownership(None)
|
||||||
case _ => ;
|
case _ => ;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue