mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-19 18:44:45 +00:00
heal & repair messages
This commit is contained in:
parent
895ed5331c
commit
c634aea786
|
|
@ -80,6 +80,8 @@ object Players {
|
|||
)
|
||||
)
|
||||
target.Zone.AvatarEvents ! AvatarServiceMessage(name, AvatarAction.Revive(target.GUID))
|
||||
val reviveMessage = s"@YouHaveBeenMessage^revived~^$medicName~"
|
||||
PlayerControl.sendResponse(target.Zone, name, ChatMsg(ChatMessageType.UNK_227, reviveMessage))
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import akka.actor.{Actor, ActorRef, Props, typed}
|
|||
import net.psforever.actors.session.AvatarActor
|
||||
import net.psforever.login.WorldSession.{DropEquipmentFromInventory, HoldNewEquipmentUp, PutNewEquipmentInInventoryOrDrop, RemoveOldEquipmentFromInventory}
|
||||
import net.psforever.objects._
|
||||
import net.psforever.objects.avatar.PlayerControl.sendResponse
|
||||
import net.psforever.objects.ce.Deployable
|
||||
import net.psforever.objects.definition.DeployAnimation
|
||||
import net.psforever.objects.definition.converter.OCM
|
||||
|
|
@ -147,6 +148,15 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
|
|||
newHealth - originalHealth
|
||||
)
|
||||
)
|
||||
val amount = newHealth - originalHealth
|
||||
val healMessageSelf = s"@SelfHitHealedMessage^healed~^$amount~^health~"
|
||||
val healMessageOther = s"@WereHitByHealedMessage^healed~^$amount~^health~^$uname~"
|
||||
if (player == user) {
|
||||
sendResponse(user.Zone, user.Name, ChatMsg(ChatMessageType.UNK_227, healMessageSelf))
|
||||
}
|
||||
else {
|
||||
sendResponse(player.Zone, player.Name, ChatMsg(ChatMessageType.UNK_227, healMessageOther))
|
||||
}
|
||||
}
|
||||
if (player != user) {
|
||||
//"Someone is trying to heal you"
|
||||
|
|
@ -210,6 +220,15 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
|
|||
newArmor - originalArmor
|
||||
)
|
||||
)
|
||||
val amount = newArmor - originalArmor
|
||||
val repairMessageSelf = s"@SelfHitHealedMessage^repaired~^$amount~^armor~"
|
||||
val repairMessageOther = s"@WereHitByHealedMessage^repaired~^$amount~^armor~^$uname~"
|
||||
if (player == user) {
|
||||
sendResponse(user.Zone, user.Name, ChatMsg(ChatMessageType.UNK_227, repairMessageSelf))
|
||||
}
|
||||
else {
|
||||
sendResponse(player.Zone, player.Name, ChatMsg(ChatMessageType.UNK_227, repairMessageOther))
|
||||
}
|
||||
}
|
||||
if (player != user) {
|
||||
if (player.isAlive) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
//Copyright (c) 2020 PSForever
|
||||
package net.psforever.objects.serverobject.repair
|
||||
|
||||
import net.psforever.objects.avatar.PlayerControl.sendResponse
|
||||
import net.psforever.objects.ce.DeployableCategory
|
||||
import net.psforever.objects.sourcing.PlayerSource
|
||||
import net.psforever.objects.vital.RepairFromEquipment
|
||||
import net.psforever.objects.{Player, Tool}
|
||||
import net.psforever.packet.game.{InventoryStateMessage, RepairMessage}
|
||||
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
||||
import net.psforever.packet.game.{ChatMsg, InventoryStateMessage, RepairMessage}
|
||||
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, Vector3}
|
||||
import net.psforever.services.Service
|
||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||
|
||||
|
|
@ -113,6 +115,27 @@ trait RepairableEntity extends Repairable {
|
|||
RepairMessage(target.GUID, updatedHealth * 100 / definition.MaxHealth)
|
||||
)
|
||||
)
|
||||
//if vehicle and vehicle is owned by another player, send repair chat message to the vehicle's owner
|
||||
if (target.Zone.Vehicles.exists(_.GUID == target.GUID)) {
|
||||
val vehicle = target.Zone.Vehicles.filter(_.GUID == target.GUID).head
|
||||
val vehicleOwner = vehicle.OwnerName.getOrElse("someone")
|
||||
val amount = updatedHealth - originalHealth
|
||||
if (vehicleOwner != "someone" && vehicle.OwnerGuid.get != player.GUID && amount > 0) {
|
||||
val repairMessageOther = s"@YourWasHealedMessage^@${vehicle.Definition.Name}~^repaired~^$amount~^armor~^${player.Name}~"
|
||||
sendResponse(vehicle.Zone, vehicleOwner, ChatMsg(ChatMessageType.UNK_227, repairMessageOther))
|
||||
}
|
||||
}
|
||||
//same check for field turret
|
||||
if (target.Zone.DeployableList.exists(_.GUID == target.GUID)) {
|
||||
val turret = target.Zone.DeployableList.filter(_.GUID == target.GUID).head
|
||||
val turretOwner = turret.OwnerName.getOrElse("someone")
|
||||
val amount = updatedHealth - originalHealth
|
||||
if (turret.Definition.DeployCategory == DeployableCategory.FieldTurrets && turretOwner != "someone"
|
||||
&& turret.OwnerGuid.get != player.GUID && amount > 0) {
|
||||
val repairMessageOther = s"@YourWasHealedMessage^@${turret.Definition.Name}~^repaired~^$amount~^armor~^${player.Name}~"
|
||||
sendResponse(turret.Zone, turretOwner, ChatMsg(ChatMessageType.UNK_227, repairMessageOther))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected def PerformRepairs(target: Repairable.Target, amount: Int): Int = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue