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:
Mazo 2020-05-19 15:01:17 +01:00 committed by GitHub
commit 270485fa4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 3 deletions

View file

@ -309,7 +309,7 @@ class PersistenceMonitor(name : String, squadService : ActorRef, taskResolver :
player.Position = Vector3.Zero
player.Health = 0
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)
case _ => ;
}

View file

@ -9324,7 +9324,7 @@ class WorldSessionActor extends Actor
def HandleDealingDamage(target : PlanetSideGameObject with Vitality, data : ResolvedProjectile) : Unit = {
val func = data.damage_model.Calculate(data)
target match {
case obj : Player if obj.CanDamage =>
case obj : Player if obj.CanDamage && obj.Actor != ActorRef.noSender =>
if(obj.spectator) {
player.death_by = -1 // little thing for auto kick
}
@ -10199,7 +10199,7 @@ class WorldSessionActor extends Actor
def LoadZoneCommonTransferActivity() : Unit = {
if(player.VehicleOwned.nonEmpty && player.VehicleSeated != player.VehicleOwned) {
continent.GUID(player.VehicleOwned) match {
case Some(vehicle : Vehicle) =>
case Some(vehicle : Vehicle) if vehicle.Actor != ActorRef.noSender =>
vehicle.Actor ! Vehicle.Ownership(None)
case _ => ;
}