mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-02-19 22:53:37 +00:00
small touch-up
This commit is contained in:
parent
f7098618d7
commit
5a1527ae10
6 changed files with 30 additions and 14 deletions
|
|
@ -15,7 +15,7 @@ class SquadFeatures(val Squad : Squad) {
|
|||
* Dispatched only once when a squad is first listed
|
||||
* or when the squad leader searches for recruits by proximity or for certain roles or by invite
|
||||
* or when a spontaneous squad forms,
|
||||
* whichever happens first.
|
||||
* whatever happens first.
|
||||
* Additionally, the packets are also sent when the check is made when the continent is changed (or set).
|
||||
*/
|
||||
private var initialAssociation : Boolean = true
|
||||
|
|
@ -151,4 +151,4 @@ class SquadFeatures(val Squad : Squad) {
|
|||
}
|
||||
Prompt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -122,7 +122,8 @@ import scodec.codecs._
|
|||
* ` - 0 is LFS`<br>
|
||||
* ` - 1 is LFSM (Looking for Squad Members)`<br>
|
||||
* ` - n is the supplemental squad identifier number; same as "LFS;" for the leader, sets "LFSM" after the first manual flagging`<br>
|
||||
* `32 - Info under avatar name : 0 = Looking For Squad Members, 1 = LFS`<br>
|
||||
* `32 - Maintain the squad role index, when a member of a squad;<br>
|
||||
* - OLD: "Info under avatar name : 0 = Looking For Squad Members, 1 = LFS`"<br>
|
||||
* `35 - BR. Value is the BR`<br>
|
||||
* `36 - CR. Value is the CR`<br>
|
||||
* `43 - Info on avatar name : 0 = Nothing, 1 = "(LD)" message`<br>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ object SquadResponse {
|
|||
final case class SetListSquad(squad_guid : PlanetSideGUID) extends Response
|
||||
|
||||
final case class Membership(request_type : SquadResponseType.Value, unk1 : Int, unk2 : Int, unk3 : Long, unk4 : Option[Long], player_name : String, unk5 : Boolean, unk6 : Option[Option[String]]) extends Response //see SquadMembershipResponse
|
||||
final case class Invite(from_char_id : Long, to_char_id : Long, name : String) extends Response
|
||||
final case class WantsSquadPosition(leader_char_id : Long, bid_name : String) extends Response
|
||||
final case class Join(squad : Squad, positionsToUpdate : List[Int], channel : String) extends Response
|
||||
final case class Leave(squad : Squad, positionsToUpdate : List[(Long, Int)]) extends Response
|
||||
|
|
|
|||
|
|
@ -2240,7 +2240,13 @@ class SquadService extends Actor {
|
|||
val toChannel = s"/${features.ToChannel}/Squad"
|
||||
memberCharIds.foreach { charId =>
|
||||
SquadEvents.subscribe(UserEvents(charId), toChannel)
|
||||
Publish(charId, SquadResponse.Join(squad, indices, toChannel))
|
||||
Publish(charId,
|
||||
SquadResponse.Join(
|
||||
squad,
|
||||
indices.filterNot(_ == position) :+ position,
|
||||
toChannel
|
||||
)
|
||||
)
|
||||
InitWaypoints(charId, squad.GUID)
|
||||
}
|
||||
//fully update for all users
|
||||
|
|
@ -2255,7 +2261,11 @@ class SquadService extends Actor {
|
|||
charId,
|
||||
SquadResponse.Join(
|
||||
squad,
|
||||
squad.Membership.zipWithIndex.collect({ case (member, index) if member.CharId > 0 => index }).toList,
|
||||
squad.Membership
|
||||
.zipWithIndex
|
||||
.collect({ case (member, index) if member.CharId > 0 => index })
|
||||
.filterNot(_== position)
|
||||
.toList :+ position,
|
||||
toChannel
|
||||
)
|
||||
)
|
||||
|
|
@ -2580,10 +2590,20 @@ class SquadService extends Actor {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* na
|
||||
* @param charId the player's unique character identifier number
|
||||
* @param sender the `ActorRef` associated with this character
|
||||
*/
|
||||
def LeaveService(charId : String, sender : ActorRef) : Unit = {
|
||||
LeaveService(charId.toLong, sender)
|
||||
}
|
||||
|
||||
/**
|
||||
* na
|
||||
* @param charId the player's unique character identifier number
|
||||
* @param sender the `ActorRef` associated with this character
|
||||
*/
|
||||
def LeaveService(charId : Long, sender : ActorRef) : Unit = {
|
||||
refused.remove(charId)
|
||||
continueToMonitorDetails.remove(charId)
|
||||
|
|
@ -2690,6 +2710,7 @@ class SquadService extends Actor {
|
|||
//remove squad from listing
|
||||
factionListings.remove(index)
|
||||
//Publish(faction, SquadResponse.RemoveFromList(Seq(index)))
|
||||
squadFeatures(squad.GUID).Refuse
|
||||
Publish(faction, SquadResponse.InitList(PublishedLists(factionListings)))
|
||||
}
|
||||
case None =>
|
||||
|
|
|
|||
|
|
@ -1315,7 +1315,7 @@ class DetailedCharacterDataTest extends Specification {
|
|||
a.data.v5.isEmpty mustEqual true
|
||||
a.exosuit mustEqual ExoSuitType.Standard
|
||||
a.unk5 mustEqual 0
|
||||
a.unk6 mustEqual 1267466L
|
||||
a.char_id mustEqual 1267466L
|
||||
a.unk7 mustEqual 3
|
||||
a.unk8 mustEqual 3
|
||||
a.unk9 mustEqual 0
|
||||
|
|
|
|||
|
|
@ -411,9 +411,6 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
}
|
||||
sendResponse(SquadMembershipResponse(request_type, unk1, unk2, char_id, opt_char_id, name, unk5, unk6))
|
||||
|
||||
case SquadResponse.Invite(from_char_id, to_char_id, name) =>
|
||||
sendResponse(SquadMembershipResponse(SquadResponseType.Invite, 0, 0, from_char_id, Some(to_char_id), s"$name", false, Some(None)))
|
||||
|
||||
case SquadResponse.WantsSquadPosition(_, name) =>
|
||||
sendResponse(
|
||||
ChatMsg(
|
||||
|
|
@ -425,9 +422,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
|
||||
case SquadResponse.Join(squad, positionsToUpdate, toChannel) =>
|
||||
val leader = squad.Leader
|
||||
val membershipPositions = squad.Membership
|
||||
.zipWithIndex
|
||||
.filter { case (_, index ) => positionsToUpdate.contains(index) }
|
||||
val membershipPositions = positionsToUpdate map squad.Membership.zipWithIndex
|
||||
StartBundlingPackets()
|
||||
membershipPositions.find({ case(member, _) => member.CharId == avatar.CharId }) match {
|
||||
case Some((ourMember, ourIndex)) =>
|
||||
|
|
@ -6592,7 +6587,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
sendResponse(ObjectDetachMessage(tool.GUID, previousBox.GUID, Vector3.Zero, 0f))
|
||||
sendResponse(ObjectDetachMessage(player.GUID, box.GUID, Vector3.Zero, 0f))
|
||||
obj.Inventory -= x.start //remove replacement ammo from inventory
|
||||
val ammoSlotIndex = tool.FireMode.AmmoSlotIndex
|
||||
val ammoSlotIndex = tool.FireMode.AmmoSlotIndex
|
||||
tool.AmmoSlots(ammoSlotIndex).Box = box //put replacement ammo in tool
|
||||
sendResponse(ObjectAttachMessage(tool.GUID, box.GUID, ammoSlotIndex))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue