mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-19 18:44:45 +00:00
Merge pull request #1287 from ScrawnyRonnie/animations
Animations and Turret Range
This commit is contained in:
commit
d3a60f1fc3
|
|
@ -33,6 +33,7 @@ import net.psforever.packet.PlanetSideGamePacket
|
||||||
import net.psforever.packet.game.{ActionCancelMessage, AvatarFirstTimeEventMessage, AvatarImplantMessage, AvatarJumpMessage, BattleplanMessage, BindPlayerMessage, BugReportMessage, ChangeFireModeMessage, ChangeShortcutBankMessage, CharacterCreateRequestMessage, CharacterRequestMessage, ChatMsg, CollisionIs, ConnectToWorldRequestMessage, CreateShortcutMessage, DeadState, DeployObjectMessage, DisplayedAwardMessage, DropItemMessage, EmoteMsg, FacilityBenefitShieldChargeRequestMessage, FriendsRequest, GenericAction, GenericActionMessage, GenericCollisionMsg, GenericObjectActionAtPositionMessage, GenericObjectActionMessage, GenericObjectStateMsg, HitHint, InvalidTerrainMessage, LootItemMessage, MoveItemMessage, ObjectDetectedMessage, ObjectHeldMessage, PickupItemMessage, PlanetsideAttributeMessage, PlayerStateMessageUpstream, RequestDestroyMessage, TargetingImplantRequest, TerrainCondition, TradeMessage, UnuseItemMessage, UseItemMessage, VoiceHostInfo, VoiceHostRequest, ZipLineMessage}
|
import net.psforever.packet.game.{ActionCancelMessage, AvatarFirstTimeEventMessage, AvatarImplantMessage, AvatarJumpMessage, BattleplanMessage, BindPlayerMessage, BugReportMessage, ChangeFireModeMessage, ChangeShortcutBankMessage, CharacterCreateRequestMessage, CharacterRequestMessage, ChatMsg, CollisionIs, ConnectToWorldRequestMessage, CreateShortcutMessage, DeadState, DeployObjectMessage, DisplayedAwardMessage, DropItemMessage, EmoteMsg, FacilityBenefitShieldChargeRequestMessage, FriendsRequest, GenericAction, GenericActionMessage, GenericCollisionMsg, GenericObjectActionAtPositionMessage, GenericObjectActionMessage, GenericObjectStateMsg, HitHint, InvalidTerrainMessage, LootItemMessage, MoveItemMessage, ObjectDetectedMessage, ObjectHeldMessage, PickupItemMessage, PlanetsideAttributeMessage, PlayerStateMessageUpstream, RequestDestroyMessage, TargetingImplantRequest, TerrainCondition, TradeMessage, UnuseItemMessage, UseItemMessage, VoiceHostInfo, VoiceHostRequest, ZipLineMessage}
|
||||||
import net.psforever.services.RemoverActor
|
import net.psforever.services.RemoverActor
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
import net.psforever.types.{CapacitorStateType, ChatMessageType, Cosmetic, ExoSuitType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
import net.psforever.types.{CapacitorStateType, ChatMessageType, Cosmetic, ExoSuitType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
|
|
||||||
import scala.util.Success
|
import scala.util.Success
|
||||||
|
|
@ -181,7 +182,14 @@ class GeneralLogic(val ops: GeneralOperations, implicit val context: ActorContex
|
||||||
|
|
||||||
def handleEmote(pkt: EmoteMsg): Unit = {
|
def handleEmote(pkt: EmoteMsg): Unit = {
|
||||||
val EmoteMsg(avatarGuid, emote) = pkt
|
val EmoteMsg(avatarGuid, emote) = pkt
|
||||||
|
val pZone = player.Zone
|
||||||
sendResponse(EmoteMsg(avatarGuid, emote))
|
sendResponse(EmoteMsg(avatarGuid, emote))
|
||||||
|
pZone.blockMap.sector(player).livePlayerList.collect { case t if t.GUID != player.GUID =>
|
||||||
|
pZone.LocalEvents ! LocalServiceMessage(t.Name, LocalAction.SendResponse(EmoteMsg(avatarGuid, emote)))
|
||||||
|
}
|
||||||
|
pZone.AllPlayers.collect { case t if t.GUID != player.GUID && !t.allowInteraction =>
|
||||||
|
pZone.LocalEvents ! LocalServiceMessage(t.Name, LocalAction.SendResponse(EmoteMsg(avatarGuid, emote)))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def handleDropItem(pkt: DropItemMessage): Unit = {
|
def handleDropItem(pkt: DropItemMessage): Unit = {
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ import net.psforever.packet.PlanetSideGamePacket
|
||||||
import net.psforever.packet.game.{ActionCancelMessage, ActionResultMessage, AvatarFirstTimeEventMessage, AvatarImplantMessage, AvatarJumpMessage, BattleplanMessage, BindPlayerMessage, BugReportMessage, ChangeFireModeMessage, ChangeShortcutBankMessage, CharacterCreateRequestMessage, CharacterRequestAction, CharacterRequestMessage, ChatMsg, CollisionIs, ConnectToWorldRequestMessage, CreateShortcutMessage, DeadState, DeployObjectMessage, DisplayedAwardMessage, DropItemMessage, EmoteMsg, FacilityBenefitShieldChargeRequestMessage, FriendsRequest, GenericAction, GenericActionMessage, GenericCollisionMsg, GenericObjectActionAtPositionMessage, GenericObjectActionMessage, GenericObjectStateMsg, HitHint, InvalidTerrainMessage, LootItemMessage, MoveItemMessage, ObjectDetectedMessage, ObjectHeldMessage, PickupItemMessage, PlanetsideAttributeMessage, PlayerStateMessageUpstream, RequestDestroyMessage, TargetingImplantRequest, TerrainCondition, TradeMessage, UnuseItemMessage, UseItemMessage, VoiceHostInfo, VoiceHostRequest, ZipLineMessage}
|
import net.psforever.packet.game.{ActionCancelMessage, ActionResultMessage, AvatarFirstTimeEventMessage, AvatarImplantMessage, AvatarJumpMessage, BattleplanMessage, BindPlayerMessage, BugReportMessage, ChangeFireModeMessage, ChangeShortcutBankMessage, CharacterCreateRequestMessage, CharacterRequestAction, CharacterRequestMessage, ChatMsg, CollisionIs, ConnectToWorldRequestMessage, CreateShortcutMessage, DeadState, DeployObjectMessage, DisplayedAwardMessage, DropItemMessage, EmoteMsg, FacilityBenefitShieldChargeRequestMessage, FriendsRequest, GenericAction, GenericActionMessage, GenericCollisionMsg, GenericObjectActionAtPositionMessage, GenericObjectActionMessage, GenericObjectStateMsg, HitHint, InvalidTerrainMessage, LootItemMessage, MoveItemMessage, ObjectDetectedMessage, ObjectHeldMessage, PickupItemMessage, PlanetsideAttributeMessage, PlayerStateMessageUpstream, RequestDestroyMessage, TargetingImplantRequest, TerrainCondition, TradeMessage, UnuseItemMessage, UseItemMessage, VoiceHostInfo, VoiceHostRequest, ZipLineMessage}
|
||||||
import net.psforever.services.account.{AccountPersistenceService, RetrieveAccountData}
|
import net.psforever.services.account.{AccountPersistenceService, RetrieveAccountData}
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
import net.psforever.services.local.support.CaptureFlagManager
|
import net.psforever.services.local.support.CaptureFlagManager
|
||||||
import net.psforever.types.{CapacitorStateType, ChatMessageType, Cosmetic, ExoSuitType, ImplantType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
import net.psforever.types.{CapacitorStateType, ChatMessageType, Cosmetic, ExoSuitType, ImplantType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
import net.psforever.util.Config
|
import net.psforever.util.Config
|
||||||
|
|
@ -199,7 +200,14 @@ class GeneralLogic(val ops: GeneralOperations, implicit val context: ActorContex
|
||||||
|
|
||||||
def handleEmote(pkt: EmoteMsg): Unit = {
|
def handleEmote(pkt: EmoteMsg): Unit = {
|
||||||
val EmoteMsg(avatarGuid, emote) = pkt
|
val EmoteMsg(avatarGuid, emote) = pkt
|
||||||
|
val pZone = player.Zone
|
||||||
sendResponse(EmoteMsg(avatarGuid, emote))
|
sendResponse(EmoteMsg(avatarGuid, emote))
|
||||||
|
pZone.blockMap.sector(player).livePlayerList.collect { case t if t.GUID != player.GUID =>
|
||||||
|
pZone.LocalEvents ! LocalServiceMessage(t.Name, LocalAction.SendResponse(EmoteMsg(avatarGuid, emote)))
|
||||||
|
}
|
||||||
|
pZone.AllPlayers.collect { case t if t.GUID != player.GUID && !t.allowInteraction =>
|
||||||
|
pZone.LocalEvents ! LocalServiceMessage(t.Name, LocalAction.SendResponse(EmoteMsg(avatarGuid, emote)))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def handleDropItem(pkt: DropItemMessage): Unit = {
|
def handleDropItem(pkt: DropItemMessage): Unit = {
|
||||||
|
|
|
||||||
|
|
@ -231,7 +231,7 @@ class VehicleHandlerLogic(val ops: SessionVehicleHandlers, implicit val context:
|
||||||
sendResponse(ObjectCreateDetailedMessage(itemType, itemGuid, ObjectCreateMessageParent(vehicleGuid, slot), itemData))
|
sendResponse(ObjectCreateDetailedMessage(itemType, itemGuid, ObjectCreateMessageParent(vehicleGuid, slot), itemData))
|
||||||
|
|
||||||
case VehicleResponse.UnloadVehicle(_, vehicleGuid) =>
|
case VehicleResponse.UnloadVehicle(_, vehicleGuid) =>
|
||||||
sendResponse(ObjectDeleteMessage(vehicleGuid, unk1=0))
|
sendResponse(ObjectDeleteMessage(vehicleGuid, unk1=1))
|
||||||
if (sessionLogic.zoning.spawn.prevSpawnPoint.map(_.Owner).exists {
|
if (sessionLogic.zoning.spawn.prevSpawnPoint.map(_.Owner).exists {
|
||||||
case ams: Vehicle =>
|
case ams: Vehicle =>
|
||||||
ams.GUID == vehicleGuid &&
|
ams.GUID == vehicleGuid &&
|
||||||
|
|
|
||||||
|
|
@ -197,7 +197,7 @@ class VehicleHandlerLogic(val ops: SessionVehicleHandlers, implicit val context:
|
||||||
sendResponse(PlanetsideAttributeMessage(vehicleGuid, seatGroup, permission))
|
sendResponse(PlanetsideAttributeMessage(vehicleGuid, seatGroup, permission))
|
||||||
|
|
||||||
case VehicleResponse.UnloadVehicle(_, vehicleGuid) =>
|
case VehicleResponse.UnloadVehicle(_, vehicleGuid) =>
|
||||||
sendResponse(ObjectDeleteMessage(vehicleGuid, unk1=0))
|
sendResponse(ObjectDeleteMessage(vehicleGuid, unk1=1))
|
||||||
|
|
||||||
case VehicleResponse.UnstowEquipment(itemGuid) if isNotSameTarget =>
|
case VehicleResponse.UnstowEquipment(itemGuid) if isNotSameTarget =>
|
||||||
//TODO prefer ObjectDetachMessage, but how to force ammo pools to update properly?
|
//TODO prefer ObjectDetachMessage, but how to force ammo pools to update properly?
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@ import net.psforever.objects.serverobject.turret.auto.AutomatedTurret
|
||||||
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry, VehicleSource}
|
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry, VehicleSource}
|
||||||
import net.psforever.objects.vital.{InGameHistory, IncarnationActivity, ReconstructionActivity, SpawningActivity}
|
import net.psforever.objects.vital.{InGameHistory, IncarnationActivity, ReconstructionActivity, SpawningActivity}
|
||||||
import net.psforever.objects.zones.blockmap.BlockMapEntity
|
import net.psforever.objects.zones.blockmap.BlockMapEntity
|
||||||
import net.psforever.packet.game.{CampaignStatistic, ChangeFireStateMessage_Start, HackState7, MailMessage, ObjectDetectedMessage, SessionStatistic, TriggeredSound, WeatherMessage, CloudInfo, StormInfo}
|
import net.psforever.packet.game.GenericAction.FirstPersonViewWithEffect
|
||||||
|
import net.psforever.packet.game.{CampaignStatistic, ChangeFireStateMessage_Start, CloudInfo, GenericActionMessage, GenericObjectActionEnum, HackState7, MailMessage, ObjectDetectedMessage, SessionStatistic, StormInfo, TriggeredSound, WeatherMessage}
|
||||||
import net.psforever.services.chat.DefaultChannel
|
import net.psforever.services.chat.DefaultChannel
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
|
|
@ -2972,10 +2973,10 @@ class ZoningOperations(
|
||||||
|
|
||||||
case _ if player.HasGUID => // player is deconstructing self or instant action
|
case _ if player.HasGUID => // player is deconstructing self or instant action
|
||||||
val player_guid = player.GUID
|
val player_guid = player.GUID
|
||||||
sendResponse(ObjectDeleteMessage(player_guid, 4))
|
sendResponse(ObjectDeleteMessage(player_guid, unk1=1))
|
||||||
continent.AvatarEvents ! AvatarServiceMessage(
|
continent.AvatarEvents ! AvatarServiceMessage(
|
||||||
continent.id,
|
continent.id,
|
||||||
AvatarAction.ObjectDelete(player_guid, player_guid, 4)
|
AvatarAction.ObjectDelete(player_guid, player_guid, unk=1)
|
||||||
)
|
)
|
||||||
InGameHistory.SpawnReconstructionActivity(player, toZoneNumber, betterSpawnPoint)
|
InGameHistory.SpawnReconstructionActivity(player, toZoneNumber, betterSpawnPoint)
|
||||||
LoadZoneAsPlayerUsing(player, pos, ori, toSide, zoneId)
|
LoadZoneAsPlayerUsing(player, pos, ori, toSide, zoneId)
|
||||||
|
|
@ -3776,6 +3777,14 @@ class ZoningOperations(
|
||||||
player.death_by = 1
|
player.death_by = 1
|
||||||
}
|
}
|
||||||
GoToDeploymentMap()
|
GoToDeploymentMap()
|
||||||
|
val pZone = player.Zone
|
||||||
|
sendResponse(GenericActionMessage(FirstPersonViewWithEffect))
|
||||||
|
pZone.blockMap.sector(player).livePlayerList.collect { case t if t.GUID != player.GUID =>
|
||||||
|
pZone.LocalEvents ! LocalServiceMessage(t.Name, LocalAction.SendGenericObjectActionMessage(t.GUID, player.GUID, GenericObjectActionEnum.PlayerDeconstructs))
|
||||||
|
}
|
||||||
|
pZone.AllPlayers.collect { case t if t.GUID != player.GUID && !t.allowInteraction =>
|
||||||
|
pZone.LocalEvents ! LocalServiceMessage(t.Name, LocalAction.SendGenericObjectActionMessage(t.GUID, player.GUID, GenericObjectActionEnum.PlayerDeconstructs))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def stopDeconstructing(): Unit = {
|
def stopDeconstructing(): Unit = {
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import net.psforever.objects.serverobject.transfer.TransferContainer
|
||||||
import net.psforever.objects.serverobject.structures.WarpGate
|
import net.psforever.objects.serverobject.structures.WarpGate
|
||||||
import net.psforever.objects.vehicles._
|
import net.psforever.objects.vehicles._
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ChatMsg, HackMessage, HackState, HackState1, HackState7, TriggeredSound}
|
import net.psforever.packet.game.{ChatMsg, FrameVehicleStateMessage, GenericObjectActionEnum, GenericObjectActionMessage, HackMessage, HackState, HackState1, HackState7, TriggeredSound, VehicleStateMessage}
|
||||||
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
|
|
@ -274,6 +274,20 @@ object Vehicles {
|
||||||
VehicleAction.KickPassenger(player.GUID, 4, unk2 = false, tGuid)
|
VehicleAction.KickPassenger(player.GUID, 4, unk2 = false, tGuid)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
// In case BFR is occupied and may or may not be crouched
|
||||||
|
if (GlobalDefinitions.isBattleFrameVehicle(target.Definition) && target.Seat(0).isDefined) {
|
||||||
|
zone.LocalEvents ! LocalServiceMessage(
|
||||||
|
zoneid,
|
||||||
|
LocalAction.SendGenericObjectActionMessage(PlanetSideGUID(-1), target.GUID, GenericObjectActionEnum.BFRShieldsDown))
|
||||||
|
zone.LocalEvents ! LocalServiceMessage(
|
||||||
|
zoneid,
|
||||||
|
LocalAction.SendResponse(
|
||||||
|
FrameVehicleStateMessage(target.GUID, 0, target.Position, target.Orientation, Some(Vector3(0f, 0f, 0f)), unk2=false, 0, 0, is_crouched=true, is_airborne=false, ascending_flight=false, 10, 0, 0)))
|
||||||
|
zone.LocalEvents ! LocalServiceMessage(
|
||||||
|
zoneid,
|
||||||
|
LocalAction.SendResponse(
|
||||||
|
VehicleStateMessage(target.GUID, 0, target.Position, target.Orientation, Some(Vector3(0f, 0f, 0f)), None, 0, 0, 15, is_decelerating=false, is_cloaked=false)))
|
||||||
|
}
|
||||||
})
|
})
|
||||||
// If the vehicle can fly and is flying: deconstruct it; and well played to whomever managed to hack a plane in mid air
|
// If the vehicle can fly and is flying: deconstruct it; and well played to whomever managed to hack a plane in mid air
|
||||||
if (target.Definition.CanFly && target.isFlying) {
|
if (target.Definition.CanFly && target.isFlying) {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
package net.psforever.objects.serverobject.damage
|
package net.psforever.objects.serverobject.damage
|
||||||
|
|
||||||
import net.psforever.objects.equipment.JammableUnit
|
import net.psforever.objects.equipment.JammableUnit
|
||||||
|
import net.psforever.objects.serverobject.tube.SpawnTube
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.objects.vital.resolution.ResolutionCalculations
|
import net.psforever.objects.vital.resolution.ResolutionCalculations
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
|
|
@ -199,9 +200,12 @@ object DamageableEntity {
|
||||||
val tguid = target.GUID
|
val tguid = target.GUID
|
||||||
val attribution = attributionTo(cause, target.Zone)
|
val attribution = attributionTo(cause, target.Zone)
|
||||||
zone.AvatarEvents ! AvatarServiceMessage(zoneId, AvatarAction.PlanetsideAttributeToAll(tguid, 0, target.Health))
|
zone.AvatarEvents ! AvatarServiceMessage(zoneId, AvatarAction.PlanetsideAttributeToAll(tguid, 0, target.Health))
|
||||||
zone.AvatarEvents ! AvatarServiceMessage(
|
if (target.isInstanceOf[SpawnTube]) {}//do nothing to prevent issue #1057
|
||||||
zoneId,
|
else {
|
||||||
AvatarAction.Destroy(tguid, attribution, Service.defaultPlayerGUID, target.Position)
|
zone.AvatarEvents ! AvatarServiceMessage(
|
||||||
)
|
zoneId,
|
||||||
|
AvatarAction.Destroy(tguid, attribution, Service.defaultPlayerGUID, target.Position)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -205,7 +205,8 @@ trait AutomatedTurretBehavior {
|
||||||
val now = System.currentTimeMillis()
|
val now = System.currentTimeMillis()
|
||||||
if (
|
if (
|
||||||
currentTargetToken.isEmpty &&
|
currentTargetToken.isEmpty &&
|
||||||
target.Faction != AutomatedTurretObject.Faction
|
target.Faction != AutomatedTurretObject.Faction &&
|
||||||
|
now >= currentTargetLastShotTime
|
||||||
) {
|
) {
|
||||||
currentTargetLastShotTime = now
|
currentTargetLastShotTime = now
|
||||||
currentTargetLocation = Some(target.Position)
|
currentTargetLocation = Some(target.Position)
|
||||||
|
|
@ -215,11 +216,19 @@ trait AutomatedTurretBehavior {
|
||||||
true
|
true
|
||||||
} else if (
|
} else if (
|
||||||
currentTargetToken.contains(SourceUniqueness(target)) &&
|
currentTargetToken.contains(SourceUniqueness(target)) &&
|
||||||
now - currentTargetLastShotTime < autoStats.map(_.cooldowns.missedShot).getOrElse(0L)) {
|
now - currentTargetLastShotTime < autoStats.map(_.cooldowns.missedShot).getOrElse(0L)
|
||||||
currentTargetLastShotTime = now
|
) {
|
||||||
currentTargetLocation = Some(target.Position)
|
val escapeRange = autoStats.map(_.ranges.escape).getOrElse(400f)
|
||||||
cancelSelfReportedAutoFire()
|
val distSq = Vector3.DistanceSquared(target.Position, AutomatedTurretObject.Position)
|
||||||
true
|
val escapeSq = escapeRange * escapeRange
|
||||||
|
if (distSq <= escapeSq) {
|
||||||
|
currentTargetLastShotTime = now
|
||||||
|
currentTargetLocation = Some(target.Position)
|
||||||
|
cancelSelfReportedAutoFire()
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -91,4 +91,6 @@ object GenericObjectActionEnum extends Enumeration {
|
||||||
* <b>Target</b>: CaptureTerminal
|
* <b>Target</b>: CaptureTerminal
|
||||||
*/
|
*/
|
||||||
val FlagSpawned = Value(14)
|
val FlagSpawned = Value(14)
|
||||||
|
val PlayerDeconstructs = Value(6)
|
||||||
|
val BFRShieldsDown = Value(45)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class CorpseRemovalActor extends RemoverActor() {
|
||||||
entry.zone.Population ! Zone.Corpse.Remove(entry.obj.asInstanceOf[Player])
|
entry.zone.Population ! Zone.Corpse.Remove(entry.obj.asInstanceOf[Player])
|
||||||
context.parent ! AvatarServiceMessage(
|
context.parent ! AvatarServiceMessage(
|
||||||
entry.zone.id,
|
entry.zone.id,
|
||||||
AvatarAction.ObjectDelete(Service.defaultPlayerGUID, entry.obj.GUID)
|
AvatarAction.ObjectDelete(Service.defaultPlayerGUID, entry.obj.GUID, unk=1)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue