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 */
def handleSquadDefinitionAction(pkt: SquadDefinitionActionMessage): Unit = {
if (!player.spectator) {
val SquadDefinitionActionMessage(u1, u2, action) = pkt
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))
}
/*if (!player.spectator) {
val SquadDefinitionActionMessage(u1, u2, action) = pkt
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))
}*/
}
def handleSquadMemberRequest(pkt: SquadMembershipRequest): Unit = {
if (!player.spectator) {
/* if (!player.spectator) {
val SquadMembershipRequest(request_type, char_id, unk3, player_name, unk5) = pkt
squadService ! SquadServiceMessage(
player,
continent,
SquadServiceAction.Membership(request_type, char_id, unk3, player_name, unk5)
)
}
}*/
}
def handleSquadWaypointRequest(pkt: SquadWaypointRequest): Unit = {

View file

@ -28,17 +28,17 @@ class SquadHandlerLogic(val ops: SessionSquadHandlers, implicit val context: Act
/* packet */
def handleSquadDefinitionAction(pkt: SquadDefinitionActionMessage): Unit = {
val SquadDefinitionActionMessage(u1, u2, action) = pkt
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))
/*val SquadDefinitionActionMessage(u1, u2, action) = pkt
squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action))*/
}
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(
player,
continent,
SquadServiceAction.Membership(request_type, char_id, unk3, player_name, unk5)
)
)*/
}
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 org.log4s.Logger
import java.util.concurrent.{Executors, TimeUnit}
import scala.annotation.unused
import scala.collection.{Seq, mutable}
import scala.concurrent.duration._
@ -59,6 +60,7 @@ class ChatOperations(
private var channels: List[ChatChannel] = List()
private var silenceTimer: Cancellable = Default.Cancellable
private[session] var transitoryCommandEntered: Option[ChatMessageType] = None
private val scheduler = Executors.newScheduledThreadPool(2)
/**
* when another player is listed as one of our ignored players,
* and that other player sends an emote,
@ -352,8 +354,25 @@ class ChatOperations(
//evaluate results
(resolvedFacilities, resolvedFaction, resolvedTimer) match {
case (Some(buildings), Some(faction), Some(_)) =>
buildings.foreach { building =>
//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 zone = building.Zone
val zoneActor = zone.actor
@ -373,10 +392,11 @@ class ChatOperations(
//push for map updates again
zoneActor ! ZoneActor.ZoneMapUpdate()
}
true
case _ =>
false
}
},
0,
delayMillis,
TimeUnit.MILLISECONDS
)
}
def commandVoice(session: Session, message: ChatMsg, contents: String, toChannel: ChatChannel): Unit = {

View file

@ -343,7 +343,7 @@ class WeaponAndProjectileOperations(
case citem: ConstructionItem =>
log.info(s"${player.Name} switched ${player.Sex.possessive} ${obj.Definition.Name} to construct ${citem.AmmoType} (mode #$modeIndex)")
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))
continent.AvatarEvents ! AvatarServiceMessage(