Working login to TR Sancuary!

Packet: SetCurrentAvatarMessage

Lots of hacks to get here, but wow, what a milestone.
This commit is contained in:
Chord 2016-07-15 01:45:10 -04:00
parent e0db8ec2b7
commit 5fa0610208
10 changed files with 76 additions and 13 deletions

View file

@ -347,7 +347,7 @@ object GamePacketOpcode extends Enumeration {
case UnknownMessage21 => noDecoder(opcode)
case BindPlayerMessage => noDecoder(opcode)
case ObjectCreateMessage_Duplicate => noDecoder(opcode)
case ObjectCreateMessage => noDecoder(opcode)
case ObjectCreateMessage => game.ObjectCreateMessage.decode
case ObjectDeleteMessage => noDecoder(opcode)
case PingMsg => noDecoder(opcode)
case VehicleStateMessage => noDecoder(opcode)
@ -379,7 +379,7 @@ object GamePacketOpcode extends Enumeration {
case LoadMapMessage => noDecoder(opcode)
// OPCODE 50
case SetCurrentAvatarMessage => noDecoder(opcode)
case SetCurrentAvatarMessage => game.SetCurrentAvatarMessage.decode
case ObjectHeldMessage => noDecoder(opcode)
case WeaponFireMessage => noDecoder(opcode)
case AvatarJumpMessage => noDecoder(opcode)

View file

@ -39,7 +39,7 @@ final case class CharacterInfoMessage(zoneId : PlanetSideZoneID,
object CharacterInfoMessage extends Marshallable[CharacterInfoMessage] {
implicit val codec : Codec[CharacterInfoMessage] = (
("unknown" | uint32L).unit(0) ::
("unknown" | uint32L).unit(0) :: // this type is set to unit as we dont know what it is yet
("zoneId" | PlanetSideZoneID.codec) ::
("charId" | uint32L) ::
("charGUID" | PlanetSideGUID.codec) ::

View file

@ -4,9 +4,6 @@ import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, Plan
import scodec.Codec
import scodec.codecs._
/**
* Created by Root on 5/19/2016.
*/
final case class KeepAliveMessage(code : Int) extends PlanetSideGamePacket {
type Packet = KeepAliveMessage
def opcode = GamePacketOpcode.KeepAliveMessage

View file

@ -11,7 +11,8 @@ case class ObjectCreateMessageParent(guid : Int, slot : Int)
case class ObjectCreateMessage(streamLength : Long,
objectClass : Int,
guid : Int,
parentInfo : Option[ObjectCreateMessageParent])
parentInfo : Option[ObjectCreateMessageParent]
)
extends PlanetSideGamePacket {
def opcode = GamePacketOpcode.ObjectCreateMessage

View file

@ -0,0 +1,20 @@
// Copyright (c) 2016 PSForever.net to present
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
import scodec.Codec
import scodec.codecs._
final case class SetCurrentAvatarMessage(guid: PlanetSideGUID, unk1 : Int, unk2 : Int) extends PlanetSideGamePacket {
type Packet = SetCurrentAvatarMessage
def opcode = GamePacketOpcode.SetCurrentAvatarMessage
def encode = SetCurrentAvatarMessage.encode(this)
}
object SetCurrentAvatarMessage extends Marshallable[SetCurrentAvatarMessage] {
implicit val codec: Codec[SetCurrentAvatarMessage] = (
("guid" | PlanetSideGUID.codec) ::
("unk1" | uint(3)) ::
("unk2" | uint(3))
).as[SetCurrentAvatarMessage]
}