drop the llu

This commit is contained in:
ScrawnyRonnie 2023-12-09 07:08:04 -05:00
parent 0d09d9d6fc
commit 689f67ec39
2 changed files with 13 additions and 3 deletions

View file

@ -8926,7 +8926,7 @@
"AbsY": 3742.29175, "AbsY": 3742.29175,
"AbsZ": 42.3043633, "AbsZ": 42.3043633,
"Yaw": 198.0, "Yaw": 198.0,
"GUID": 713, "GUID": 715,
"MapID": null, "MapID": null,
"IsChildObject": true "IsChildObject": true
}, },
@ -8939,7 +8939,7 @@
"AbsY": 3729.643, "AbsY": 3729.643,
"AbsZ": 42.3043633, "AbsZ": 42.3043633,
"Yaw": 288.0, "Yaw": 288.0,
"GUID": 714, "GUID": 713,
"MapID": null, "MapID": null,
"IsChildObject": true "IsChildObject": true
}, },
@ -8952,7 +8952,7 @@
"AbsY": 3729.643, "AbsY": 3729.643,
"AbsZ": 49.8043633, "AbsZ": 49.8043633,
"Yaw": 108.0, "Yaw": 108.0,
"GUID": 715, "GUID": 714,
"MapID": null, "MapID": null,
"IsChildObject": true "IsChildObject": true
}, },

View file

@ -365,6 +365,11 @@ class PersistenceMonitor(
def PerformLogout(): Unit = { def PerformLogout(): Unit = {
(inZone.Players.find(p => p.name == name), inZone.LivePlayers.find(p => p.Name == name)) match { (inZone.Players.find(p => p.name == name), inZone.LivePlayers.find(p => p.Name == name)) match {
case (Some(avatar), Some(player)) if player.VehicleSeated.nonEmpty => case (Some(avatar), Some(player)) if player.VehicleSeated.nonEmpty =>
//in case the player is holding the llu and disconnects
val zone = player.Zone
val events = zone.AvatarEvents
val nameChannel = player.Name
events ! AvatarServiceMessage(nameChannel, AvatarAction.DropSpecialItem())
//alive or dead in a vehicle //alive or dead in a vehicle
//if the avatar is dead while in a vehicle, they haven't released yet //if the avatar is dead while in a vehicle, they haven't released yet
AvatarActor.saveAvatarData(avatar) AvatarActor.saveAvatarData(avatar)
@ -381,6 +386,11 @@ class PersistenceMonitor(
PlayerAvatarLogout(avatar, player) PlayerAvatarLogout(avatar, player)
case (Some(avatar), Some(player)) => case (Some(avatar), Some(player)) =>
//in case the player is holding the llu and disconnects
val zone = player.Zone
val events = zone.AvatarEvents
val nameChannel = player.Name
events ! AvatarServiceMessage(nameChannel, AvatarAction.DropSpecialItem())
//alive or dead, as standard Infantry //alive or dead, as standard Infantry
AvatarActor.saveAvatarData(avatar) AvatarActor.saveAvatarData(avatar)
AvatarActor.finalSavePlayerData(player) AvatarActor.finalSavePlayerData(player)