mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-19 18:44:45 +00:00
member packets
This commit is contained in:
parent
d450a1b6e5
commit
b070834a8a
|
|
@ -44,8 +44,10 @@ object OutfitEventAction {
|
||||||
unk9: Int,
|
unk9: Int,
|
||||||
outfit_rank_names: OutfitRankNames,
|
outfit_rank_names: OutfitRankNames,
|
||||||
motd: String,
|
motd: String,
|
||||||
owner_guid: PlanetSideGUID, // ?
|
unk10: Int,
|
||||||
unk20: Int,
|
unk11: Int,
|
||||||
|
unk12: Int,
|
||||||
|
unk13: Int,// ?
|
||||||
unk21: Int,
|
unk21: Int,
|
||||||
unk21_2: Int,
|
unk21_2: Int,
|
||||||
created_timestamp: Long,
|
created_timestamp: Long,
|
||||||
|
|
@ -126,8 +128,10 @@ object OutfitEventAction {
|
||||||
uint16L ::
|
uint16L ::
|
||||||
OutfitRankNamesCodec ::
|
OutfitRankNamesCodec ::
|
||||||
PacketHelpers.encodedWideString ::
|
PacketHelpers.encodedWideString ::
|
||||||
PlanetSideGUID.codec ::
|
uint8L ::
|
||||||
uint16L :: //
|
uint8L ::
|
||||||
|
uint8L ::
|
||||||
|
uint8L ::
|
||||||
uint8L :: // bool somewhere here
|
uint8L :: // bool somewhere here
|
||||||
uintL(1) :: //
|
uintL(1) :: //
|
||||||
("created_timestamp" | uint32L) ::
|
("created_timestamp" | uint32L) ::
|
||||||
|
|
@ -137,12 +141,12 @@ object OutfitEventAction {
|
||||||
uintL(7)
|
uintL(7)
|
||||||
).xmap[OutfitInfo](
|
).xmap[OutfitInfo](
|
||||||
{
|
{
|
||||||
case outfit_name :: u6 :: u7 :: member_count :: u9 :: outfit_rank_names :: motd :: u19 :: u20 :: u21 :: u21_2 :: created_timestamp :: u23 :: u24 :: u25 :: u123 :: HNil =>
|
case outfit_name :: u6 :: u7 :: member_count :: u9 :: outfit_rank_names :: motd :: u10 :: u11 :: u12 :: u13 :: u21 :: u21_2 :: created_timestamp :: u23 :: u24 :: u25 :: u123 :: HNil =>
|
||||||
OutfitInfo(outfit_name, u6, u7, member_count, u9, outfit_rank_names, motd, u19, u20, u21, u21_2, created_timestamp, u23, u24, u25, u123)
|
OutfitInfo(outfit_name, u6, u7, member_count, u9, outfit_rank_names, motd, u10, u11, u12, u13, u21, u21_2, created_timestamp, u23, u24, u25, u123)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case OutfitInfo(outfit_name, u6, u7, member_count, u9, outfit_rank_names, motd, u19, u20, u21, u21_2, created_timestamp, u23, u24, u25, u123) =>
|
case OutfitInfo(outfit_name, u6, u7, member_count, u9, outfit_rank_names, motd, u10, u11, u12, u13, u21, u21_2, created_timestamp, u23, u24, u25, u123) =>
|
||||||
outfit_name :: u6 :: u7 :: member_count :: u9 :: outfit_rank_names :: motd :: u19 :: u20 :: u21 :: u21_2 :: created_timestamp :: u23 :: u24 :: u25 :: u123 :: HNil
|
outfit_name :: u6 :: u7 :: member_count :: u9 :: outfit_rank_names :: motd :: u10 :: u11 :: u12 :: u13 :: u21 :: u21_2 :: created_timestamp :: u23 :: u24 :: u25 :: u123 :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -284,9 +288,9 @@ object OutfitEvent extends Marshallable[OutfitEvent] {
|
||||||
import scala.annotation.switch
|
import scala.annotation.switch
|
||||||
|
|
||||||
((code: @switch) match {
|
((code: @switch) match {
|
||||||
case 0 => Unk0Codec
|
case 0 => Unk0Codec // view outfit window and members
|
||||||
case 1 => Unk1Codec
|
case 1 => Unk1Codec
|
||||||
case 2 => Unk2Codec // sent after /outfitcreate ?
|
case 2 => Unk2Codec // sent after /outfitcreate and on login if in an outfit
|
||||||
case 3 => Unk3Codec
|
case 3 => Unk3Codec
|
||||||
case 4 => Unk4Codec
|
case 4 => Unk4Codec
|
||||||
case 5 => Unk5Codec
|
case 5 => Unk5Codec
|
||||||
|
|
|
||||||
|
|
@ -9,18 +9,12 @@ import shapeless.{::, HNil}
|
||||||
final case class OutfitMemberEvent(
|
final case class OutfitMemberEvent(
|
||||||
unk00: Int,
|
unk00: Int,
|
||||||
outfit_id: Long,
|
outfit_id: Long,
|
||||||
unk3: Int, // OMR(Unk1) target_guid
|
member_id: Long,
|
||||||
unk5: Int, // OMR(Unk1) unk3
|
|
||||||
member_name: String,
|
member_name: String,
|
||||||
unk8: Int,
|
rank: Int, // 0-7
|
||||||
unk9: Int,
|
points: Long, // client divides this by 100
|
||||||
unk10: Int,
|
last_login: Long, // seconds ago from current time, 0 if online
|
||||||
unk11: Int,
|
unk1: Int,
|
||||||
unk12: Int,
|
|
||||||
unk13: Int,
|
|
||||||
unk14: Int,
|
|
||||||
unk15: Int,
|
|
||||||
unk16: Int,
|
|
||||||
) extends PlanetSideGamePacket {
|
) extends PlanetSideGamePacket {
|
||||||
type Packet = OutfitMemberEvent
|
type Packet = OutfitMemberEvent
|
||||||
def opcode = GamePacketOpcode.OutfitMemberEvent
|
def opcode = GamePacketOpcode.OutfitMemberEvent
|
||||||
|
|
@ -31,26 +25,20 @@ object OutfitMemberEvent extends Marshallable[OutfitMemberEvent] {
|
||||||
implicit val codec: Codec[OutfitMemberEvent] = (
|
implicit val codec: Codec[OutfitMemberEvent] = (
|
||||||
("unk00" | uintL(2)) ::
|
("unk00" | uintL(2)) ::
|
||||||
("outfit_id" | uint32L) ::
|
("outfit_id" | uint32L) ::
|
||||||
("unk3" | uint16L) :: // OMR(Unk1) unk2
|
("member_id" | uint32L) ::
|
||||||
("unk5" | uint16L) ::
|
("member_name" | PacketHelpers.encodedWideStringAligned(6)) ::
|
||||||
("member_name" | PacketHelpers.encodedWideStringAligned(6)) ::
|
("rank" | uint(3)) ::
|
||||||
("unk8" | uint8L) ::
|
("points" | uint32L) ::
|
||||||
("unk9" | uint8L) ::
|
("last_login" | uint32L) ::
|
||||||
("unk10" | uint8L) ::
|
("unk1" | uint(5))
|
||||||
("unk11" | uint8L) ::
|
|
||||||
("unk12" | uint8L) ::
|
|
||||||
("unk13" | uint8L) ::
|
|
||||||
("unk14" | uint8L) ::
|
|
||||||
("unk15" | uint8L) ::
|
|
||||||
("unk16" | uint8L)
|
|
||||||
).xmap[OutfitMemberEvent](
|
).xmap[OutfitMemberEvent](
|
||||||
{
|
{
|
||||||
case unk00 :: outfit_id :: u3 :: u5 :: member_name :: u8 :: u9 :: u10 :: u11 :: u12 :: u13 :: u14 :: u15 :: u16 :: HNil =>
|
case unk00 :: outfit_id :: member_id :: member_name :: rank :: points :: last_login :: u1 :: HNil =>
|
||||||
OutfitMemberEvent(unk00, outfit_id, u3, u5, member_name, u8, u9, u10, u11, u12, u13, u14, u15, u16)
|
OutfitMemberEvent(unk00, outfit_id, member_id, member_name, rank, points, last_login, u1)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case OutfitMemberEvent(unk00, outfit_id, u3, u5, member_name, u8, u9, u10, u11, u12, u13, u14, u15, u16) =>
|
case OutfitMemberEvent(unk00, outfit_id, member_id, member_name, rank, points, last_login, u1) =>
|
||||||
unk00 :: outfit_id :: u3 :: u5 :: member_name :: u8 :: u9 :: u10 :: u11 :: u12 :: u13 :: u14 :: u15 :: u16 :: HNil
|
unk00 :: outfit_id :: member_id :: member_name :: rank :: points :: last_login :: u1 :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,9 @@ import shapeless.{::, HNil}
|
||||||
|
|
||||||
final case class OutfitMemberUpdate(
|
final case class OutfitMemberUpdate(
|
||||||
outfit_guid: Long,
|
outfit_guid: Long,
|
||||||
|
char_id: Long,
|
||||||
|
rank: Int, // 0-7
|
||||||
unk1: Int,
|
unk1: Int,
|
||||||
unk2: Int,
|
|
||||||
unk3: Int,
|
|
||||||
unk4: Int,
|
|
||||||
unk5: Int,
|
|
||||||
) extends PlanetSideGamePacket {
|
) extends PlanetSideGamePacket {
|
||||||
type Packet = OutfitMemberUpdate
|
type Packet = OutfitMemberUpdate
|
||||||
def opcode = GamePacketOpcode.OutfitMemberUpdate
|
def opcode = GamePacketOpcode.OutfitMemberUpdate
|
||||||
|
|
@ -23,19 +21,17 @@ final case class OutfitMemberUpdate(
|
||||||
object OutfitMemberUpdate extends Marshallable[OutfitMemberUpdate] {
|
object OutfitMemberUpdate extends Marshallable[OutfitMemberUpdate] {
|
||||||
implicit val codec: Codec[OutfitMemberUpdate] = (
|
implicit val codec: Codec[OutfitMemberUpdate] = (
|
||||||
("outfit_guid" | uint32L) ::
|
("outfit_guid" | uint32L) ::
|
||||||
("unk1" | uint8L) ::
|
("char_id" | uint32L) ::
|
||||||
("unk2" | uint8L) ::
|
("rank" | uint(3)) ::
|
||||||
("unk3" | uint8L) ::
|
("unk1" | uint(5))
|
||||||
("unk4" | uint8L) ::
|
|
||||||
("unk5" | uint8L)
|
|
||||||
).xmap[OutfitMemberUpdate](
|
).xmap[OutfitMemberUpdate](
|
||||||
{
|
{
|
||||||
case outfit_guid :: u1 :: u2 :: u3 :: u4 :: u5 :: HNil =>
|
case outfit_guid :: char_id :: rank :: u1 :: HNil =>
|
||||||
OutfitMemberUpdate(outfit_guid, u1, u2, u3, u4, u5)
|
OutfitMemberUpdate(outfit_guid, char_id, rank, u1)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case OutfitMemberUpdate(outfit_guid, u1, u2, u3, u4, u5) =>
|
case OutfitMemberUpdate(outfit_guid, char_id, rank, u1) =>
|
||||||
outfit_guid :: u1 :: u2 :: u3 :: u4 :: u5 :: HNil
|
outfit_guid :: char_id :: rank :: u1 :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue