mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-20 02:54:46 +00:00
Improve packet CharacterInfoMessage and char select
This commit is contained in:
parent
7af6f64429
commit
c83132f21b
|
|
@ -23,10 +23,13 @@ object PlanetSideGUID {
|
|||
* about a certain character for rendering purposes (zone background, etc). Acts as an array insert for the
|
||||
* client character list. A blank displayed character is most likely caused by a mismatch between an
|
||||
* ObjectCreateMessage GUID and the GUID from this message.
|
||||
*
|
||||
* @param finished True when there are no more characters to give info on
|
||||
*/
|
||||
final case class CharacterInfoMessage(zoneId : PlanetSideZoneID,
|
||||
charId : Long,
|
||||
guid : PlanetSideGUID,
|
||||
finished : Boolean,
|
||||
secondsSinceLastLogin : Long)
|
||||
extends PlanetSideGamePacket {
|
||||
type Packet = CharacterInfoMessage
|
||||
|
|
@ -40,7 +43,7 @@ object CharacterInfoMessage extends Marshallable[CharacterInfoMessage] {
|
|||
("zoneId" | PlanetSideZoneID.codec) ::
|
||||
("charId" | uint32L) ::
|
||||
("charGUID" | PlanetSideGUID.codec) ::
|
||||
("unknown_bit" | bool.unit(false)) ::
|
||||
("finished" | bool) ::
|
||||
("seconds_since_last_login" | uint32L)
|
||||
).as[CharacterInfoMessage]
|
||||
}
|
||||
|
|
@ -99,10 +99,25 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
|
||||
log.info(s"New world login to ${server} with Token:${token}. ${clientVersion}")
|
||||
|
||||
// testing :P
|
||||
sendRawResponse(hex"00 09 00 00 00 19 08 2C 00 00 4B 00 00 00 00 02 1F 80 09 9B 05 00 00 00 0D 77 BC F1 05 12 2E 40 00 80 3F D7 04 00 00 00 61 C0 6C 6F 63 6B 2D 7A 33 61 C0 6C 6F 63 6B 2D 7A 34 61 C0 6C 6F 63 6B 2D 7A 39 64 00 6C 6F 63 6B 2D 69 31 2D 69 32 2D 69 33 2D 69 34 04 00 00 00 40 40 10 30 04 10 01 06 00 ")
|
||||
sendRawResponse(hex"00 09 00 01 00 19 08 2C 00 00 70 01 00 00 00 6A 95 01 00 00 00 00 79 94 FD BF 00 A1 AF BF F3 A5 D0 3E 26 39 76 3B 08 00 00 00 36 AE 11 3F 70 5D 9B 3E 2E 15 9A 9B 3A 3F CC 90 DB 3E 45 1C EC 0F 14 3D AF CF 36 3F 06 32 BA AF 13 3F 18 4C 12 3F 26 2F D2 2D 71 3F 94 AA FB 3E 4D 16 5D 1B 1A 3F 0C 25 D5 3C 55 6B 38 89 63 3F 5D F5 25 3F 3C AC 8E 5E E6 3E 79 25 62 3F 10 32 1F 12 E3 40 00 9A 40 43 4D 54 5F 43 55 4C 4C 57 41 54 45 52 4D 41 52 4B 5F 73 75 63 63 65 73 73 ")
|
||||
sendRawResponse(hex"00 19 14 14 0F 00 00 00 07 00 00 00 A9 B2 79 02 01 00 28 77 A3 00 00 FF 01 65 18 1F 0B 00 00 BC 81 F0 0F 73 B9 46 03 76 F1 10 00 0E F2 40 00 09 20 57 00 6F 00 77 00 4E 00 69 00 63 00 65 00 61 00 73 00 65 00 66 00 61 00 73 00 64 00 66 00 61 00 73 00 64 00 82 64 80 B6 1E 80 80 00 00 00 00 00 3F FF C0 00 00 00 20 00 00 0F F0 17 03 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 90 01 90 00 64 00 00 01 00 7E C8 00 C8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 C0 00 42 C5 46 86 C7 00 00 00 40 00 00 12 40 78 70 65 5F 73 61 6E 63 74 75 61 72 79 5F 68 65 6C 70 85 6D 61 70 31 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 0A 26 C9 00 04 02 40 00 00 10 00 06 02 79 A2 10 08 0C 80 00 01 00 02 6B 22 00 82 48 00 00 02 00 00 C0 41 C0 46 01 01 90 00 00 64 00 D4 24 80 10 89 00 00 00 40 00 18 08 38 89 40 20 32 00 00 00 80 19 04 98 02 17 20 00 00 08 00 70 13 80 43 64 00 00 32 00 0E 02 80 08 9C 80 00 06 40 01 C0 52 01 19 90 00 00 C8 00 3A 0A 80 28 72 00 00 19 00 3C D1 58 05 26 40 00 01 00 06 C2 2C 00 A7 48 00 00 02 00 00 80 00 1C 14 14 0F 00 00 00 10 27 00 00 02 D8 7A 02 1F 00 73 D3 A6 00 00")
|
||||
sendResponse(PacketCoding.CreateGamePacket(0,
|
||||
CharacterInfoMessage(PlanetSideZoneID(0), 0, PlanetSideGUID(0), true, 0)))
|
||||
case msg @ CharacterRequestMessage(charId, action) =>
|
||||
log.info("Handling " + msg)
|
||||
|
||||
action match {
|
||||
case CharacterRequestAction.Delete =>
|
||||
sendResponse(PacketCoding.CreateGamePacket(0, ActionResultMessage(false, Some(1))))
|
||||
case CharacterRequestAction.Select =>
|
||||
case default =>
|
||||
log.error("Unsupported " + default + " in " + msg)
|
||||
}
|
||||
case msg @ CharacterCreateRequestMessage(name, head, voice, gender, empire) =>
|
||||
log.info("Handling " + msg)
|
||||
|
||||
sendResponse(PacketCoding.CreateGamePacket(0, ActionResultMessage(true, None)))
|
||||
sendResponse(PacketCoding.CreateGamePacket(0,
|
||||
CharacterInfoMessage(PlanetSideZoneID(0), 0, PlanetSideGUID(0), true, 0)))
|
||||
|
||||
case KeepAliveMessage(code) =>
|
||||
sendResponse(PacketCoding.CreateGamePacket(0, KeepAliveMessage(0)))
|
||||
case default => log.debug(s"Unhandled GamePacket ${pkt}")
|
||||
|
|
|
|||
Loading…
Reference in a new issue