Up to Main Index Up to Journal for October, 2020 JOURNAL FOR WEDNESDAY 14TH OCTOBER, 2020 ______________________________________________________________________________ SUBJECT: Updates for holding, wearing and wielding DATE: Wed 14 Oct 19:06:56 BST 2020 Another busy week working on WolfMUD and this time I have a public dev branch update available. The update saves and loads the state of held, worn and/or wielded items for players. It also enables mobiles to hold, wear and/or wield items when they are loaded. However, mobiles won’t necessarily respawn using their items — an issue I’m currently working on. Am I happy with my solution? Not really, but it works. I’ve added three new attributes, and updated the docs/zone-files.txt documentation. The attributes are Holding, Wearing and Wielding. Each attribute takes a list of references similar to the Inventory attribute. For example, a mobile might be defined with the following: Holding: O1 O2 Wearing: O3 O4 Wielding: O5 O6 Assuming the mobile has the items in its inventory, has a Body defined — and the Body slots required by the items are available — then: The mobile will hold items O1 and O2, wear items O3 and O4 and wield items O5 and O6. Pretty simple stuff. When a player is saved the player file is written using the same attributes to record how items are being used so that their state is restored when the player file is loaded again. I’ve added Load and Save methods to Thing. Calling these methods will call any load or save methods (non-exported) found on any attributes for the Thing. The Load method runs post-unmarshaling and Save runs pre-marshaling. Both methods are recursive into inventories, depth first. This means that if an item, such as the doll wearing a dress[1], is in a player’s inventory it will still be wearing the dress if the player file is reloaded. This also means you can define items that are being used within inventories in zone files. I’m now thinking that the Load and Save methods calling load and save might be a little too ‘magical’ and might be implemented better as a callback, for now it is what it is. Thing has a new Ref method which returns the reference (from the Ref field in the record jar) found when unmarshaling the Thing. Inventory has a new method SearchByRef which will find the first Thing in an Inventory with the given reference. The EXAMINE/EXAM command has been updated so that examining a Thing with a Body will describe what items are being used. The Zinara zone file contains a number of changes. The city guards now have and use some equipment — helmet, cuirass, boots and shortsword. The flower girl now has a dress and bunch of flowers. Players can find the helmet and cuirass the guards use at the armoury. I’ve also left in the child’s doll which can be found in the pawn shop. It currently suffers the same issue as mobiles — the original state of the dress will not be restored on a reset — I’m working on it… -- Diddymus [1] See: Hello dolly, you’re giving me problems… 4.html Up to Main Index Up to Journal for October, 2020