EDIT - FIX IS DOWN FURTHER
I’ve isolated a few glitches with the persistence of henchmen and I think I have a possible solution, but its a little beyond my scripting capabilities…
Here’s the issue (the functions referred to are in x0_i0_henchman):
- When henchmen are exported to the database using StoreCampaignHenchman because they are stored as a local object, any variables set on them are deleted/removed.
- When you retrieve the henchmen using RetrieveCampaignHenchmen, the henchman is immediately rehired. This is a workaround Bioware did because if you don’t immediately rehire them, they turn hostile.
- Horses exported and retrieved from the database in a dismounted state are processed as henchmen. This causes the horse to return in a state where, when mounted, you end up with two portraits of the horse in the party window. One portrait is interactive (you can right-click it and get the radial options), the other portrait is a “ghost”. Its there, but you can’t interact with it. Lastly, you cannot remove the horse as a henchman using the radial “remove from party” option.
- Custom mounts exported and retrieved from the database in a dismounted state have all the issues noted above AND are non-rideable. This occurs because the variables that define it as a mount have been deleted/removed.
I’m thinking the following can work, but I’m not sure how to go about doing it:
- When the PC leaves the Server (logs off) a “doll” is created in the PC’s inventory, one for for each henchman and dismounted horse the PC is “master” of. The doll stores a particular henchman/horse’s ResRef, and Name as a local variable on the doll item.
- Any variables stored on the henchman/horse are copied to the doll item.
- When the PC returns to the server, the dolls, having been stored in the PC’s bic, allow the PC to summon back all his henchmen/horses, copy the variables back to them, and then rehire them (for henchmen) or set the PC as owner (for horses).
Anyone care to help me figure out just how to do this?