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,
"AbsZ": 42.3043633,
"Yaw": 198.0,
"GUID": 713,
"GUID": 715,
"MapID": null,
"IsChildObject": true
},
@ -8939,7 +8939,7 @@
"AbsY": 3729.643,
"AbsZ": 42.3043633,
"Yaw": 288.0,
"GUID": 714,
"GUID": 713,
"MapID": null,
"IsChildObject": true
},
@ -8952,7 +8952,7 @@
"AbsY": 3729.643,
"AbsZ": 49.8043633,
"Yaw": 108.0,
"GUID": 715,
"GUID": 714,
"MapID": null,
"IsChildObject": true
},

View file

@ -365,6 +365,11 @@ class PersistenceMonitor(
def PerformLogout(): Unit = {
(inZone.Players.find(p => p.name == name), inZone.LivePlayers.find(p => p.Name == name)) match {
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
//if the avatar is dead while in a vehicle, they haven't released yet
AvatarActor.saveAvatarData(avatar)
@ -381,6 +386,11 @@ class PersistenceMonitor(
PlayerAvatarLogout(avatar, 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
AvatarActor.saveAvatarData(avatar)
AvatarActor.finalSavePlayerData(player)