It requires just what it says it does. The newest CMF. I used the CMF 5.0.3 dll as base for this fix because it has all the feat changes (why did I ever release the FeatActivator?! ) incorporated. Also, the 5.0.3 CMF already has the scripts from v16 included. So, install 5.0.3, install the v16.0.1 and you are ready to go. If you do not use 5.0.3 yet, you might try to install 16.0.1 over any other installation that is updated to v16, should work, but no guarantees.
'slinger, could you provide some brief documentation on use of the persistency feature from dllfix 16? I'd like to see how to use it in spells, items, and quests, but right now I don't have any examples, so I'm not sure how to call upon it.
Spellfiddler gave me a complete tutorial on how this works - of course, like a clown I closed the window before copying it :yawn: I hope he won't mind me pointing out, though, that the relevant docs are in data.Co8-5.0.0\scr\co8Util and it is used in game for the Enlarge spell (#152).
Let me quote myself here: So I would suggest you look at the Enlarge or Righteous Might spell first, they use both of the features mentioned above. A short summary: Basically the PD wraps a python dict that is stringized and saved/loaded everytime you use the save/load function of the game itself (via dll hack). The data is saved in the savegame folder with the rest of the savegame files as slotxx.co8. The contents are clear text, so you can easily debug what's happening there. As client coder you need 3 functions: Co8PersistentData.setData, Co8PersistentData.getData, Co8PersistentData.removeData. They are documented via python doc strings. As it is based on a dict, you need to choose a unique key (always a string in this case) for the data you want to store, setting new data with an exisiting key will overwrite the present data. If enough people use PD and the need arises, I can add a safeguard functionality to it that requires registering your key, so that no key duplicity problems arise. I don't think that is necessary yet, as long as people choose meaningful and long enough keys (e.g. "Sp152_Enlarge_Activelist"). If you getData and there is no entry with that key, None is returned. You can check for None with the isNone() helper function included in PD (I had some problems checking for it in ToEE the way I do in newer python versions). The data you store is stringized for saving. Thus the return type when you get the data is str when you saved numbers. The upside: Lists, dicts, tuples are returned as the original type, so it's quite powerful, since you can save complete and comprehensive sequence types under one key. There are 2 general ways for using PD: 1. Like I did in the reach spells: Killing the entry alltogether when it's empty. I didn't want to have an empty activelist entry for all spells that use PD hanging around when actually there is no active spell. 2. You have data that has to be always present or you don't want to add/remove the whole entry everytime it's empty/needed. Then you can use the init() function in _co8init.py to initialize your data, and just never remove it again, just get, change and set again. For this to work, you have to add a call to this init() function in the pcstart.py (this is called every new game start IIRC). Shame on me, since I didn't use the 2nd way, I forgot to include this little call. So it's up to the one who needs this first. I hope that referencing PyObjHandles over load/game changes is self-explanatory via the spell scripts, if not, or if there are any other questions, shoot. Ok, that wasn't a really short summary at all now... *EDIT* Good for our click-happy, shining clown that he can reread it here for all time to come now.
Spellslinger, I know I may be asking for too much, but could you check barbarian entries in the .dll? AFAIK all the entries regarding classes are there, right? They get the armor proficiencies they should (that is medium and light) however they can use heavy armor. -------------------------------------------------------------- Am I the only one who has problems with barbarians wearing heavy armor?
Actually this problem wasn't limited to barbarians. Everyone with medium armor proficiency could use heavy armor since the game checked for the medium feat instead of the heavy feat when checking against heavy armor. First post updated with 16.0.3.