Yesterday I knocked off the last of the item packets. Specifically this was the "initial equipment setup" packets; 0x14E. I call them them this because a separate packet is used for equipping/unequipping an item. Simply, it's a list of short/int pairs that specify what equipment slot holds what item, using the inventory slot number. If there are more than 8 items specified, the remainder is put in another packet. If a slot isn't specified, the game assumes unequipped. Simple really.

This also was the last of the items packets in my 5 hardcoded "login" packets, so woo progress! The first picture was my initial test. Funny enough the game doesn't care what the item is itself, and will gladly put Chocobo Masks all over your body. The second picture is the finished product.

Also as you may have noticed, I've implemented the actor name and appearance packets. These are use to set any actor's... well, name and appearance. An actor can be anything intractable, from players, to monsters, to even the bed and cutscene book in the inn room (notice the green dots in the minimap). So no more Mr. "Name Goes Here". This was already known and setup, I just never bound it to a DB. Now that it is, the lobby and game appearance will match, and I can even setup appearance changes when you equip a different set of armour! However before I can do that I will need to make a master list of Item -> Item Model because these two pieces of info aren't stored together.

And just a note: While I have items equipped, you may ask "well why aren't they on your character?". This is because your appearance and what you wear are separate things. Your appearance (well, your actor's) is just a set of model IDs that the server updates when equipment changes. I haven't implemented that yet. This is also how glamour in ARR probably works. They send a different model ID for your appearance packet. Funny enough, the first value is a base model ID used to set monster models or the base race model, so theoretically you could make the player into Ifrit.

undefined

undefined