From 4600e5ebc3decd972fdfa7d1597bc832cb494fb5 Mon Sep 17 00:00:00 2001 From: ScrawnyRonnie Date: Wed, 21 May 2025 07:23:07 -0400 Subject: [PATCH 1/2] slower captureall, squads off, log typo fix --- .../session/csr/SquadHandlerLogic.scala | 12 ++++---- .../session/normal/SquadHandlerLogic.scala | 8 ++--- .../session/support/ChatOperations.scala | 30 +++++++++++++++---- .../WeaponAndProjectileOperations.scala | 2 +- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/src/main/scala/net/psforever/actors/session/csr/SquadHandlerLogic.scala b/src/main/scala/net/psforever/actors/session/csr/SquadHandlerLogic.scala index f6be56232..70e789621 100644 --- a/src/main/scala/net/psforever/actors/session/csr/SquadHandlerLogic.scala +++ b/src/main/scala/net/psforever/actors/session/csr/SquadHandlerLogic.scala @@ -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 = { diff --git a/src/main/scala/net/psforever/actors/session/normal/SquadHandlerLogic.scala b/src/main/scala/net/psforever/actors/session/normal/SquadHandlerLogic.scala index 71bbc20a0..b80eb01cd 100644 --- a/src/main/scala/net/psforever/actors/session/normal/SquadHandlerLogic.scala +++ b/src/main/scala/net/psforever/actors/session/normal/SquadHandlerLogic.scala @@ -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 = { diff --git a/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala b/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala index 0e72be694..3a585f7bd 100644 --- a/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala +++ b/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala @@ -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 = { diff --git a/src/main/scala/net/psforever/actors/session/support/WeaponAndProjectileOperations.scala b/src/main/scala/net/psforever/actors/session/support/WeaponAndProjectileOperations.scala index 5633e76f7..5ade93f01 100644 --- a/src/main/scala/net/psforever/actors/session/support/WeaponAndProjectileOperations.scala +++ b/src/main/scala/net/psforever/actors/session/support/WeaponAndProjectileOperations.scala @@ -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( From 9590ac4721cdb781e9c1e7c86b96fad8a4527ef8 Mon Sep 17 00:00:00 2001 From: ScrawnyRonnie Date: Wed, 21 May 2025 16:10:54 -0400 Subject: [PATCH 2/2] all weapons and vehicles on Deso --- .../overrides/game_objects31.adb.lst | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/server/src/main/resources/overrides/game_objects31.adb.lst b/server/src/main/resources/overrides/game_objects31.adb.lst index 86dcd92ee..d0101a6eb 100644 --- a/server/src/main/resources/overrides/game_objects31.adb.lst +++ b/server/src/main/resources/overrides/game_objects31.adb.lst @@ -156,3 +156,101 @@ add_property portable_order_terminal forsale_six_shooter ordertype_weapon add_property portable_order_terminal forsale_six_shooter_ammo add_property portable_order_terminal forsale_winchester ordertype_weapon add_property portable_order_terminal forsale_winchester_ammo +add_property bullet_105mm purchase_empire all +add_property bullet_150mm purchase_empire all +add_property bullet_15mm purchase_empire all +add_property anniversary_gun purchase_empire all +add_property anniversary_guna purchase_empire all +add_property anniversary_gunb purchase_empire all +add_property apc_nc purchase_empire all +add_property apc_tr purchase_empire all +add_property apc_vs purchase_empire all +add_property aphelion purchase_empire all +add_property aphelion_flight purchase_empire all +add_property aphelion_gunner purchase_empire all +add_property aphelion_armor_siphon purchase_empire all +add_property aphelion_immolation_cannon purchase_empire all +add_property aphelion_immolation_cannon_ammo purchase_empire all +add_property aphelion_laser purchase_empire all +add_property aphelion_laser_ammo purchase_empire all +add_property aphelion_ntu_siphon purchase_empire all +add_property aphelion_plasma_rocket_ammo purchase_empire all +add_property aphelion_plasma_rocket_pod purchase_empire all +add_property aphelion_ppa purchase_empire all +add_property aphelion_ppa_ammo purchase_empire all +add_property aphelion_starfire purchase_empire all +add_property aphelion_starfire_ammo purchase_empire all +add_property aurora purchase_empire all +add_property battlewagon purchase_empire all +add_property beamer purchase_empire all +add_property burster_ammo purchase_empire all +add_property colossus purchase_empire all +add_property colossus_flight purchase_empire all +add_property colossus_gunner purchase_empire all +add_property colossus_100mm_cannon_ammo purchase_empire all +add_property colossus_armor_siphon purchase_empire all +add_property colossus_burster purchase_empire all +add_property colossus_burster_ammo purchase_empire all +add_property colossus_chaingun purchase_empire all +add_property colossus_chaingun_ammo purchase_empire all +add_property colossus_cluster_bomb_ammo purchase_empire all +add_property colossus_cluster_bomb_pod purchase_empire all +add_property colossus_dual_100mm_cannons purchase_empire all +add_property colossus_ntu_siphon purchase_empire all +add_property colossus_tank_cannon purchase_empire all +add_property colossus_tank_cannon_ammo purchase_empire all +add_property comet_ammo purchase_empire all +add_property cycler purchase_empire all +add_property cycler_v2 purchase_empire all +add_property cycler_v3 purchase_empire all +add_property cycler_v4 purchase_empire all +add_property dualcycler_ammo purchase_empire all +add_property energy_cell purchase_empire all +add_property falcon_ammo purchase_empire all +add_property firebird_missile purchase_empire all +add_property flux_cannon_thresher_battery purchase_empire all +add_property fluxpod_ammo purchase_empire all +add_property gauss purchase_empire all +add_property gauss_cannon_ammo purchase_empire all +add_property heavy_rail_beam_battery purchase_empire all +add_property hunter_seeker_missile purchase_empire all +add_property hunterseeker purchase_empire all +add_property isp purchase_empire all +add_property lancer purchase_empire all +add_property lancer_cartridge purchase_empire all +add_property lasher purchase_empire all +add_property magrider purchase_empire all +add_property mini_chaingun purchase_empire all +add_property peregrine purchase_empire all +add_property peregrine_flight purchase_empire all +add_property peregrine_gunner purchase_empire all +add_property peregrine_armor_siphon purchase_empire all +add_property peregrine_dual_machine_gun purchase_empire all +add_property peregrine_dual_machine_gun_ammo purchase_empire all +add_property peregrine_dual_rocket_pods purchase_empire all +add_property peregrine_mechhammer purchase_empire all +add_property peregrine_mechhammer_ammo purchase_empire all +add_property peregrine_ntu_siphon purchase_empire all +add_property peregrine_particle_cannon purchase_empire all +add_property peregrine_particle_cannon_ammo purchase_empire all +add_property peregrine_rocket_pod_ammo purchase_empire all +add_property peregrine_sparrow purchase_empire all +add_property peregrine_sparrow_ammo purchase_empire all +add_property phoenix_missile purchase_empire all +add_property pounder_ammo purchase_empire all +add_property prowler purchase_empire all +add_property pulsar purchase_empire all +add_property pulse_battery purchase_empire all +add_property quasar_ammo purchase_empire all +add_property r_shotgun purchase_empire all +add_property repeater purchase_empire all +add_property scattercannon_ammo purchase_empire all +add_property sparrow_ammo purchase_empire all +add_property starfire_ammo purchase_empire all +add_property striker purchase_empire all +add_property striker_missile_ammo purchase_empire all +add_property threemanheavybuggy purchase_empire all +add_property thunderer purchase_empire all +add_property twomanheavybuggy purchase_empire all +add_property twomanhoverbuggy purchase_empire all +add_property vanguard purchase_empire all