slower captureall, squads off, log typo fix

This commit is contained in:
ScrawnyRonnie 2025-05-21 07:23:07 -04:00
parent 3bcf0c50ff
commit 4600e5ebc3
4 changed files with 36 additions and 16 deletions

View file

@ -28,21 +28,21 @@ class SquadHandlerLogic(val ops: SessionSquadHandlers, implicit val context: Act
/* packet */ /* packet */
def handleSquadDefinitionAction(pkt: SquadDefinitionActionMessage): Unit = { def handleSquadDefinitionAction(pkt: SquadDefinitionActionMessage): Unit = {
if (!player.spectator) { /*if (!player.spectator) {
val SquadDefinitionActionMessage(u1, u2, action) = pkt val SquadDefinitionActionMessage(u1, u2, action) = pkt
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action)) squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))
} }*/
} }
def handleSquadMemberRequest(pkt: SquadMembershipRequest): Unit = { def handleSquadMemberRequest(pkt: SquadMembershipRequest): Unit = {
if (!player.spectator) { /* if (!player.spectator) {
val SquadMembershipRequest(request_type, char_id, unk3, player_name, unk5) = pkt val SquadMembershipRequest(request_type, char_id, unk3, player_name, unk5) = pkt
squadService ! SquadServiceMessage( squadService ! SquadServiceMessage(
player, player,
continent, continent,
SquadServiceAction.Membership(request_type, char_id, unk3, player_name, unk5) SquadServiceAction.Membership(request_type, char_id, unk3, player_name, unk5)
) )
} }*/
} }
def handleSquadWaypointRequest(pkt: SquadWaypointRequest): Unit = { def handleSquadWaypointRequest(pkt: SquadWaypointRequest): Unit = {

View file

@ -28,17 +28,17 @@ class SquadHandlerLogic(val ops: SessionSquadHandlers, implicit val context: Act
/* packet */ /* packet */
def handleSquadDefinitionAction(pkt: SquadDefinitionActionMessage): Unit = { def handleSquadDefinitionAction(pkt: SquadDefinitionActionMessage): Unit = {
val SquadDefinitionActionMessage(u1, u2, action) = pkt /*val SquadDefinitionActionMessage(u1, u2, action) = pkt
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action)) squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))*/
} }
def handleSquadMemberRequest(pkt: SquadMembershipRequest): Unit = { def handleSquadMemberRequest(pkt: SquadMembershipRequest): Unit = {
val SquadMembershipRequest(request_type, char_id, unk3, player_name, unk5) = pkt /*val SquadMembershipRequest(request_type, char_id, unk3, player_name, unk5) = pkt
squadService ! SquadServiceMessage( squadService ! SquadServiceMessage(
player, player,
continent, continent,
SquadServiceAction.Membership(request_type, char_id, unk3, player_name, unk5) SquadServiceAction.Membership(request_type, char_id, unk3, player_name, unk5)
) )*/
} }
def handleSquadWaypointRequest(pkt: SquadWaypointRequest): Unit = { def handleSquadWaypointRequest(pkt: SquadWaypointRequest): Unit = {

View file

@ -15,6 +15,7 @@ import net.psforever.services.local.{LocalAction, LocalServiceMessage}
import net.psforever.types.ChatMessageType.CMT_QUIT import net.psforever.types.ChatMessageType.CMT_QUIT
import org.log4s.Logger import org.log4s.Logger
import java.util.concurrent.{Executors, TimeUnit}
import scala.annotation.unused import scala.annotation.unused
import scala.collection.{Seq, mutable} import scala.collection.{Seq, mutable}
import scala.concurrent.duration._ import scala.concurrent.duration._
@ -59,6 +60,7 @@ class ChatOperations(
private var channels: List[ChatChannel] = List() private var channels: List[ChatChannel] = List()
private var silenceTimer: Cancellable = Default.Cancellable private var silenceTimer: Cancellable = Default.Cancellable
private[session] var transitoryCommandEntered: Option[ChatMessageType] = None private[session] var transitoryCommandEntered: Option[ChatMessageType] = None
private val scheduler = Executors.newScheduledThreadPool(2)
/** /**
* when another player is listed as one of our ignored players, * when another player is listed as one of our ignored players,
* and that other player sends an emote, * and that other player sends an emote,
@ -352,8 +354,25 @@ class ChatOperations(
//evaluate results //evaluate results
(resolvedFacilities, resolvedFaction, resolvedTimer) match { (resolvedFacilities, resolvedFaction, resolvedTimer) match {
case (Some(buildings), Some(faction), Some(_)) => case (Some(buildings), Some(faction), Some(_)) =>
buildings.foreach { building =>
//TODO implement timer //TODO implement timer
//schedule processing of buildings with a delay
processBuildingsWithDelay(buildings, faction, 1000) //delay of 1000ms between each building operation
true
case _ =>
false
}
}
def processBuildingsWithDelay(
buildings: Seq[Building],
faction: PlanetSideEmpire.Value,
delayMillis: Long
): Unit = {
val buildingIterator = buildings.iterator
scheduler.scheduleAtFixedRate(
() => {
if (buildingIterator.hasNext) {
val building = buildingIterator.next()
val terminal = building.CaptureTerminal.get val terminal = building.CaptureTerminal.get
val zone = building.Zone val zone = building.Zone
val zoneActor = zone.actor val zoneActor = zone.actor
@ -373,10 +392,11 @@ class ChatOperations(
//push for map updates again //push for map updates again
zoneActor ! ZoneActor.ZoneMapUpdate() zoneActor ! ZoneActor.ZoneMapUpdate()
} }
true },
case _ => 0,
false delayMillis,
} TimeUnit.MILLISECONDS
)
} }
def commandVoice(session: Session, message: ChatMsg, contents: String, toChannel: ChatChannel): Unit = { def commandVoice(session: Session, message: ChatMsg, contents: String, toChannel: ChatChannel): Unit = {

View file

@ -343,7 +343,7 @@ class WeaponAndProjectileOperations(
case citem: ConstructionItem => case citem: ConstructionItem =>
log.info(s"${player.Name} switched ${player.Sex.possessive} ${obj.Definition.Name} to construct ${citem.AmmoType} (mode #$modeIndex)") log.info(s"${player.Name} switched ${player.Sex.possessive} ${obj.Definition.Name} to construct ${citem.AmmoType} (mode #$modeIndex)")
case _ => case _ =>
log.info(s"${player.Name} changed ${player.Sex.possessive} her ${obj.Definition.Name}'s fire mode to #$modeIndex") log.info(s"${player.Name} changed ${player.Sex.possessive} ${obj.Definition.Name}'s fire mode to #$modeIndex")
} }
sendResponse(ChangeFireModeMessage(item_guid, modeIndex)) sendResponse(ChangeFireModeMessage(item_guid, modeIndex))
continent.AvatarEvents ! AvatarServiceMessage( continent.AvatarEvents ! AvatarServiceMessage(