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))
|
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.actors.session.AvatarActor
|
||||||
import net.psforever.login.WorldSession.{DropEquipmentFromInventory, HoldNewEquipmentUp, PutNewEquipmentInInventoryOrDrop, RemoveOldEquipmentFromInventory}
|
import net.psforever.login.WorldSession.{DropEquipmentFromInventory, HoldNewEquipmentUp, PutNewEquipmentInInventoryOrDrop, RemoveOldEquipmentFromInventory}
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
|
import net.psforever.objects.avatar.PlayerControl.sendResponse
|
||||||
import net.psforever.objects.ce.Deployable
|
import net.psforever.objects.ce.Deployable
|
||||||
import net.psforever.objects.definition.DeployAnimation
|
import net.psforever.objects.definition.DeployAnimation
|
||||||
import net.psforever.objects.definition.converter.OCM
|
import net.psforever.objects.definition.converter.OCM
|
||||||
|
|
@ -147,6 +148,15 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
|
||||||
newHealth - originalHealth
|
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) {
|
if (player != user) {
|
||||||
//"Someone is trying to heal you"
|
//"Someone is trying to heal you"
|
||||||
|
|
@ -210,6 +220,15 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
|
||||||
newArmor - originalArmor
|
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 != user) {
|
||||||
if (player.isAlive) {
|
if (player.isAlive) {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
//Copyright (c) 2020 PSForever
|
//Copyright (c) 2020 PSForever
|
||||||
package net.psforever.objects.serverobject.repair
|
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.sourcing.PlayerSource
|
||||||
import net.psforever.objects.vital.RepairFromEquipment
|
import net.psforever.objects.vital.RepairFromEquipment
|
||||||
import net.psforever.objects.{Player, Tool}
|
import net.psforever.objects.{Player, Tool}
|
||||||
import net.psforever.packet.game.{InventoryStateMessage, RepairMessage}
|
import net.psforever.packet.game.{ChatMsg, InventoryStateMessage, RepairMessage}
|
||||||
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, 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}
|
||||||
|
|
||||||
|
|
@ -113,6 +115,27 @@ trait RepairableEntity extends Repairable {
|
||||||
RepairMessage(target.GUID, updatedHealth * 100 / definition.MaxHealth)
|
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 = {
|
protected def PerformRepairs(target: Repairable.Target, amount: Int): Int = {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue