Extra information gleaned from beta client (#256)

This commit is contained in:
Mazo 2019-05-06 14:17:25 +01:00 committed by Fate-JH
parent a467a79c71
commit f424fa637e
8 changed files with 71 additions and 20 deletions

View file

@ -18,14 +18,14 @@ object GamePacketOpcode extends Enumeration {
type Type = Value type Type = Value
val val
// OPCODES 0x00-0f // OPCODES 0x00-0f
Unknown0, Unknown0, // PPT_NULL in beta client
LoginMessage, LoginMessage,
LoginRespMessage, LoginRespMessage,
ConnectToWorldRequestMessage, // found by searching for 83 F8 03 89 in IDA ConnectToWorldRequestMessage, // found by searching for 83 F8 03 89 in IDA
ConnectToWorldMessage, ConnectToWorldMessage,
VNLWorldStatusMessage, VNLWorldStatusMessage,
UnknownMessage6, UnknownMessage6, // PPT_TRANSFERTOWORLDREQUEST
UnknownMessage7, UnknownMessage7, // PPT_TRANSFERTOWORLDRESPONSE
// 0x08 // 0x08
PlayerStateMessage, PlayerStateMessage,
HitMessage, HitMessage,
@ -42,11 +42,11 @@ object GamePacketOpcode extends Enumeration {
ChatMsg, ChatMsg,
CharacterNoRecordMessage, CharacterNoRecordMessage,
CharacterInfoMessage, CharacterInfoMessage,
UnknownMessage21, UnknownMessage21, // PPT_DISCONNECT
BindPlayerMessage, BindPlayerMessage,
ObjectCreateMessage_Duplicate, ObjectCreateMessage_Duplicate, // PPT_OBJECTCREATE
// 0x18 // 0x18
ObjectCreateMessage, ObjectCreateMessage, // PPT_OBJECTCREATEDETAILED
ObjectDeleteMessage, ObjectDeleteMessage,
PingMsg, PingMsg,
VehicleStateMessage, VehicleStateMessage,
@ -56,7 +56,7 @@ object GamePacketOpcode extends Enumeration {
ActionResultMessage, ActionResultMessage,
// OPCODES 0x20-2f // OPCODES 0x20-2f
UnknownMessage32, UnknownMessage32, // PPT_ACTIONBEGIN
ActionProgressMessage, ActionProgressMessage,
ActionCancelMessage, ActionCancelMessage,
ActionCancelAcknowledgeMessage, ActionCancelAcknowledgeMessage,
@ -68,10 +68,10 @@ object GamePacketOpcode extends Enumeration {
CreateShortcutMessage, CreateShortcutMessage,
ChangeShortcutBankMessage, ChangeShortcutBankMessage,
ObjectAttachMessage, ObjectAttachMessage,
UnknownMessage43, UnknownMessage43, // PPT_OBJECTEMPTY
PlanetsideAttributeMessage, PlanetsideAttributeMessage,
RequestDestroyMessage, RequestDestroyMessage,
UnknownMessage46, UnknownMessage46, // PPT_EQUIPITEM
CharacterCreateRequestMessage, CharacterCreateRequestMessage,
// OPCODES 0x30-3f // OPCODES 0x30-3f
@ -104,10 +104,10 @@ object GamePacketOpcode extends Enumeration {
ChangeAmmoMessage, ChangeAmmoMessage,
// 0x48 // 0x48
TimeOfDayMessage, TimeOfDayMessage,
UnknownMessage73, UnknownMessage73, // PPT_PROJECTILE_EVENT_BLOCK
SpawnRequestMessage, SpawnRequestMessage,
DeployRequestMessage, DeployRequestMessage,
UnknownMessage76, UnknownMessage76, // PPT_BUILDINGSTATECHANGED
RepairMessage, RepairMessage,
ServerVehicleOverrideMsg, ServerVehicleOverrideMsg,
LashMessage, LashMessage,
@ -123,7 +123,7 @@ object GamePacketOpcode extends Enumeration {
AvatarVehicleTimerMessage, AvatarVehicleTimerMessage,
// 0x58 // 0x58
AvatarImplantMessage, AvatarImplantMessage,
UnknownMessage89, UnknownMessage89, // PPT_SEARCHMESSAGE
DelayedPathMountMsg, DelayedPathMountMsg,
OrbitalShuttleTimeMsg, OrbitalShuttleTimeMsg,
AIDamage, AIDamage,
@ -165,8 +165,8 @@ object GamePacketOpcode extends Enumeration {
UnknownMessage122, UnknownMessage122,
DamageFeedbackMessage, DamageFeedbackMessage,
DismountBuildingMsg, DismountBuildingMsg,
UnknownMessage125, UnknownMessage125, // PPT_MOUNTBUILDING
UnknownMessage126, UnknownMessage126, // PPT_INTENDEDDROPZONE
AvatarStatisticsMessage, AvatarStatisticsMessage,
// OPCODES 0x80-8f // OPCODES 0x80-8f

View file

@ -15,6 +15,14 @@ import shapeless.{::, HNil}
* @param list list of detected objects; * @param list list of detected objects;
* normally contains at least one element * normally contains at least one element
*/ */
/*
BETA CLIENT DEBUG INFO:
Detector
Sender
Object Count
Detected Object[]
*/
final case class ObjectDetectedMessage(player_guid1 : PlanetSideGUID, final case class ObjectDetectedMessage(player_guid1 : PlanetSideGUID,
player_guid2 : PlanetSideGUID, player_guid2 : PlanetSideGUID,
unk : Int, unk : Int,

View file

@ -46,9 +46,13 @@ import scodec.codecs._
* `3 - staminaMax`<br> * `3 - staminaMax`<br>
* `4 - armor`<br> * `4 - armor`<br>
* `5 - armorMax`<br> * `5 - armorMax`<br>
* `6 - transform the (other) avatar in backpack on ground`<br> * `6 - PA_RELEASED - transform the (other) avatar in backpack on ground`<br>
* `7 - Sets charge level for MAX capacitor`<br>
* `8 - Enables empire specific max capacitor function - NC Shield, TR Overdrive, VS Jumpjets`
* `9 - Possibly unused now - PA_SHIELDSTRENGTH in beta client`
* `14 - Something with grief`<br> * `14 - Something with grief`<br>
* `15 - Weapon Lock. Value exemple : 600 to have 1 min lock. Max possible is 30min lock`<br> * `15 - Weapon Lock. Value exemple : 600 to have 1 min lock. Max possible is 30min lock`<br>
* `16 - PA_DECONSTRUCTING in beta client`<br>
* `17 - BEP. Value seems to be the same as BattleExperienceMessage`<br> * `17 - BEP. Value seems to be the same as BattleExperienceMessage`<br>
* `18 - CEP.`<br> * `18 - CEP.`<br>
* `19 - Anchors. Value is 0 to disengage, 1 to engage.`<br> * `19 - Anchors. Value is 0 to disengage, 1 to engage.`<br>
@ -107,8 +111,11 @@ import scodec.codecs._
* 43 : Fortification Engineering<br> * 43 : Fortification Engineering<br>
* 44 : Assault Engineering<br> * 44 : Assault Engineering<br>
* 45 : Advanced Engineering (= Fortification Engineering + Assault Engineering) Must have Combat Engineering<br> * 45 : Advanced Engineering (= Fortification Engineering + Assault Engineering) Must have Combat Engineering<br>
* `25 - Forget certifications (same order as 24)` * `25 - Forget certifications (same order as 24)`<br>
* `29 - Visible ?! That's not the cloaked effect, Maybe for spectator mode ?. Value is 0 to visible, 1 to invisible.`<br> * `26 - Certification reset timer (in seconds)`
* `27 - PA_JAMMED - plays jammed buzzing sound`<br>
* `28 - PA_IMPLANT_ACTIVE - Plays implant sounds. Valid values seem to be up to 20.`<br>
* `29 - PA_VAPORIZED - Visible ?! That's not the cloaked effect, Maybe for spectator mode ?. Value is 0 to visible, 1 to invisible.`<br>
* `31 - Info under avatar name : 0 = LFS, 1 = Looking For Squad Members`<br> * `31 - Info under avatar name : 0 = LFS, 1 = Looking For Squad Members`<br>
* `32 - Info under avatar name : 0 = Looking For Squad Members, 1 = LFS`<br> * `32 - Info under avatar name : 0 = Looking For Squad Members, 1 = LFS`<br>
* `35 - BR. Value is the BR`<br> * `35 - BR. Value is the BR`<br>

View file

@ -38,7 +38,7 @@ import shapeless.{::, HNil}
* @param facingYawUpper a "yaw" angle that represents the angle of the avatar's upper body with respect to its forward-facing direction; * @param facingYawUpper a "yaw" angle that represents the angle of the avatar's upper body with respect to its forward-facing direction;
* this number is normally 0 for forward facing; * this number is normally 0 for forward facing;
* the range is limited between approximately 61 degrees of center turned to left or right * the range is limited between approximately 61 degrees of center turned to left or right
* @param unk1 na * @param timestamp A sequential counter
* @param is_crouching avatar is crouching * @param is_crouching avatar is crouching
* @param is_jumping avatar is jumping; * @param is_jumping avatar is jumping;
* must remain flagged for jump to maintain animation * must remain flagged for jump to maintain animation
@ -51,7 +51,7 @@ final case class PlayerStateMessage(guid : PlanetSideGUID,
facingYaw : Float, facingYaw : Float,
facingPitch : Float, facingPitch : Float,
facingYawUpper : Float, facingYawUpper : Float,
unk1 : Int, timestamp : Int,
is_crouching : Boolean = false, is_crouching : Boolean = false,
is_jumping : Boolean = false, is_jumping : Boolean = false,
jump_thrust : Boolean = false, jump_thrust : Boolean = false,

View file

@ -19,6 +19,14 @@ import scodec.codecs._
* @param unk2 na; * @param unk2 na;
* usually 5L * usually 5L
*/ */
/*
BETA CLIENT DEBUG INFO:
Message type: %d (%s)\n length: %d\n
Environment Type: %u (%s)\n
Guid: %d\n
Damage Amount: %u\n
*/
final case class TriggerEnvironmentalDamageMessage(unk1 : Int, final case class TriggerEnvironmentalDamageMessage(unk1 : Int,
target_guid : PlanetSideGUID, target_guid : PlanetSideGUID,
unk2 : Long) unk2 : Long)

View file

@ -31,6 +31,19 @@ import scodec.codecs._
* 0 when door 1 when use rek (252 then equipment term) * 0 when door 1 when use rek (252 then equipment term)
* @param object_id the object id `object_guid`'s object * @param object_id the object id `object_guid`'s object
*/ */
/*
BETA CLIENT DEBUG INFO:
User GUID
UsedItem GUID
Target GUID
Old SlotIndex
Weapon Fire Use
RayTrace Start Position (3 fields - Vector3)
RayTrace Intersection Position (3 fields - Vector3)
Orientation (3 fields - Vector3)
Client Target ClassID
*/
final case class UseItemMessage(avatar_guid : PlanetSideGUID, final case class UseItemMessage(avatar_guid : PlanetSideGUID,
item_used_guid : PlanetSideGUID, item_used_guid : PlanetSideGUID,
object_guid : PlanetSideGUID, object_guid : PlanetSideGUID,

View file

@ -29,6 +29,21 @@ import scodec.codecs._
* @param unk6 na * @param unk6 na
* @see `PlacementData` * @see `PlacementData`
*/ */
/*
BETA CLIENT DEBUG INFO:
Guid
Agreement Id
Turn
Brakes
Position
Orientation
Velocity
Flight Status
Path Number
Has Damage Info %d (%d %d %d %d)
Cloaking
*/
final case class VehicleStateMessage(vehicle_guid : PlanetSideGUID, final case class VehicleStateMessage(vehicle_guid : PlanetSideGUID,
unk1 : Int, unk1 : Int,
pos : Vector3, pos : Vector3,

View file

@ -1104,7 +1104,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
msg.facingYaw, msg.facingYaw,
msg.facingPitch, msg.facingPitch,
msg.facingYawUpper, msg.facingYawUpper,
unk1 = 0, timestamp = 0,
msg.is_crouching, msg.is_crouching,
msg.is_jumping, msg.is_jumping,
msg.jump_thrust, msg.jump_thrust,