mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-07-16 08:55:18 +00:00
last llu change?
This commit is contained in:
parent
213943dc1d
commit
f415b028a8
1 changed files with 22 additions and 0 deletions
|
|
@ -113,6 +113,7 @@ class CaptureFlagManager(zone: Zone) extends Actor {
|
||||||
case CaptureFlagManager.DropFlag(flag: CaptureFlag) =>
|
case CaptureFlagManager.DropFlag(flag: CaptureFlag) =>
|
||||||
flag.Carrier match {
|
flag.Carrier match {
|
||||||
case Some(player: Player) =>
|
case Some(player: Player) =>
|
||||||
|
val newFlag = flag
|
||||||
// Set the flag position to where the player is that dropped it
|
// Set the flag position to where the player is that dropped it
|
||||||
flag.Position = player.Position
|
flag.Position = player.Position
|
||||||
// Remove attached player from flag
|
// Remove attached player from flag
|
||||||
|
|
@ -121,6 +122,27 @@ class CaptureFlagManager(zone: Zone) extends Actor {
|
||||||
flag.Zone.LocalEvents ! LocalServiceMessage(flag.Zone.id, LocalAction.SendPacket(ObjectDetachMessage(player.GUID, flag.GUID, player.Position, 0, 0, 0)))
|
flag.Zone.LocalEvents ! LocalServiceMessage(flag.Zone.id, LocalAction.SendPacket(ObjectDetachMessage(player.GUID, flag.GUID, player.Position, 0, 0, 0)))
|
||||||
// Send dropped chat message
|
// Send dropped chat message
|
||||||
ChatBroadcast(flag.Zone, CaptureFlagChatMessageStrings.CTF_FlagDropped(player.Name, player.Faction, flag.Owner.asInstanceOf[Building].Name), fanfare = false)
|
ChatBroadcast(flag.Zone, CaptureFlagChatMessageStrings.CTF_FlagDropped(player.Name, player.Faction, flag.Owner.asInstanceOf[Building].Name), fanfare = false)
|
||||||
|
HandleFlagDespawn(flag)
|
||||||
|
// Register LLU object create task and callback to create on clients
|
||||||
|
val replacementLlu = CaptureFlag.Constructor(
|
||||||
|
newFlag.Position,
|
||||||
|
newFlag.Orientation,
|
||||||
|
newFlag.Target,
|
||||||
|
newFlag.Owner,
|
||||||
|
player.Faction
|
||||||
|
)
|
||||||
|
// Add the flag as an amenity and track it internally
|
||||||
|
val socket = newFlag.Owner.asInstanceOf[Building].GetFlagSocket.get
|
||||||
|
socket.captureFlag = replacementLlu
|
||||||
|
TrackFlag(replacementLlu)
|
||||||
|
TaskWorkflow.execute(WorldSession.CallBackForTask(
|
||||||
|
GUIDTask.registerObject(socket.Zone.GUID, replacementLlu),
|
||||||
|
socket.Zone.LocalEvents,
|
||||||
|
LocalServiceMessage(
|
||||||
|
socket.Zone.id,
|
||||||
|
LocalAction.LluSpawned(Service.defaultPlayerGUID, replacementLlu)
|
||||||
|
)
|
||||||
|
))
|
||||||
case _ =>
|
case _ =>
|
||||||
log.warn("Tried to drop flag but flag has no carrier")
|
log.warn("Tried to drop flag but flag has no carrier")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue