From 349ec676d9f314c34b6492c8f434fe7642cf13b8 Mon Sep 17 00:00:00 2001 From: FateJH Date: Tue, 10 Oct 2017 19:51:25 -0400 Subject: [PATCH] swapping OCM with OCDM packet during login; also needed to add functionality that temporarily registers everything on the character's person --- .../src/main/scala/WorldSessionActor.scala | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala index d759a8f38..c458d1124 100644 --- a/pslogin/src/main/scala/WorldSessionActor.scala +++ b/pslogin/src/main/scala/WorldSessionActor.scala @@ -424,7 +424,7 @@ class WorldSessionActor extends Actor with MDCContextAware { val armor = player.Armor player.Spawn sendResponse(PacketCoding.CreateGamePacket(0, - ObjectCreateMessage(ObjectClass.avatar, player.GUID, player.Definition.Packet.ConstructorData(player).get) + ObjectCreateDetailedMessage(ObjectClass.avatar, player.GUID, player.Definition.Packet.DetailedConstructorData(player).get) )) if(health > 0) { //player can not be dead; stay spawned as alive player.Health = health @@ -1447,6 +1447,18 @@ class WorldSessionActor extends Actor with MDCContextAware { tplayer.Holsters().foreach(holster => { SetCharacterSelectScreenGUID_SelectEquipment(holster.Equipment, gen) }) + tplayer.Inventory.Items.foreach({ + case ((_, entry : InventoryItem)) => + SetCharacterSelectScreenGUID_SelectEquipment(Some(entry.obj), gen) + tplayer.Slot(5).Equipment match { + case Some(locker) => + locker.GUID = PlanetSideGUID(gen.getAndIncrement) + locker.asInstanceOf[LockerContainer].Inventory.Items.foreach({ case ((_, entry : InventoryItem)) => + SetCharacterSelectScreenGUID_SelectEquipment(Some(entry.obj), gen) + }) + case None => ; + } + }) tplayer.GUID = PlanetSideGUID(gen.getAndIncrement) } @@ -1478,6 +1490,17 @@ class WorldSessionActor extends Actor with MDCContextAware { tplayer.Holsters().foreach(holster => { RemoveCharacterSelectScreenGUID_SelectEquipment(holster.Equipment) }) + tplayer.Inventory.Items.foreach({ case((_, entry : InventoryItem)) => + RemoveCharacterSelectScreenGUID_SelectEquipment(Some(entry.obj)) + }) + tplayer.Slot(5).Equipment match { + case Some(locker) => + locker.Invalidate() + locker.asInstanceOf[LockerContainer].Inventory.Items.foreach({ case((_, entry : InventoryItem)) => + RemoveCharacterSelectScreenGUID_SelectEquipment(Some(entry.obj)) + }) + case None => ; + } tplayer.Invalidate() }