Hairstyle Issue

06/11/2013 18:38 hacksaw#1
Just noticed after upgrading to the latest patch if you spawn on the same screen as each other you can see hairstyles just fine but if you go offscreen and back on again the characters all show bald (ones wearing earrings, No hats ect) Anyone have any ideas of what might be causing this?

Hairstyle packet has been updated to 98.

On a secondary note the colour of gear looks different to other players than it does to you on screen, Same issue?
06/11/2013 19:34 Super Aids#2
SpawnPacket is most likely the problem.
06/11/2013 19:43 diedwarrior#3
Equipment spawn packet offsets changed, try adding 4s or 2s.
06/12/2013 00:18 hacksaw#4
Thanks, Would that have anything to do with the Hair not showing?
06/12/2013 00:38 Super Aids#5
Yeah, since HairStyle is a part of the spawnpacket.

SpawnPacket, affects surroundings.
UpdatePacket, affects you.
06/12/2013 02:29 hacksaw#6
Hmmm, Ok well ive updated all equipment Offsets but still the issue regarding hair not showing persists, Can someone check this to confirm i have done them all correct.

Code:
        public void UpdateItemview(IConquerItem item)
        {
            switch ((ushort)item.Position)
            {
                case ConquerItem.Head:
                    {
                        if (item.Purification.Available)
                        {
                            Network.Writer.WriteUInt32(0, 194, Owner.Entity.SpawnPacket);
                        }
                        Writer.WriteUInt32(item.ID, 44, Owner.Entity.SpawnPacket);
                        Writer.WriteUInt16((byte)item.Color, 139, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.Garment:
                    {
                        Writer.WriteUInt32(item.ID, 48, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.Armor:
                    {
                        if (item.Purification.Available)
                        {
                            Writer.WriteUInt32(item.Purification.PurificationItemID, 200, Owner.Entity.SpawnPacket);
                        }
                        Writer.WriteUInt32(item.ID, 52, Owner.Entity.SpawnPacket);
                        Writer.WriteUInt16((byte)item.Color, 137, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.RightWeapon:
                    {
                        if (item.Purification.Available)
                        {
                            Writer.WriteUInt32(item.Purification.PurificationItemID, 208, Owner.Entity.SpawnPacket);
                        }
                        Writer.WriteUInt32(item.ID, 60, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.LeftWeapon:
                    {
                        if (item.Purification.Available)
                        {
                            Writer.WriteUInt32(item.Purification.PurificationItemID, 204, Owner.Entity.SpawnPacket);
                        }
                        Writer.WriteUInt32(item.ID, 56, Owner.Entity.SpawnPacket);
                        Writer.WriteUInt16((byte)item.Color, 137, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.RightWeaponAccessory:
                    {
                        Writer.WriteUInt32(item.ID, 68, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.LeftWeaponAccessory:
                    {
                        Writer.WriteUInt32(item.ID, 64, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.Steed:
                    {
                        Writer.WriteUInt32(item.ID, 72, Owner.Entity.SpawnPacket);
                        Writer.WriteUInt16((byte)item.Plus, 147, Owner.Entity.SpawnPacket);
                        Writer.WriteUInt32(item.SocketProgress, 153, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.SteedArmor:
                    {
                        Writer.WriteUInt32(item.ID, 76, Owner.Entity.SpawnPacket);
                        break;
                    }
                case ConquerItem.SteedTalisman:
                    {
                        Owner.Entity.RidingCropID = item.ID;
                        break;
                    }
            }
        }
06/12/2013 02:42 _DreadNought_#7
Try setup a proxy and quickly get a packet dump of it.

(Or kindly ask someone else to :p)