Advice on Hoodies
I'm playing with changing up the Hoodies mechanism and thought I'd let y'all chime in. @MadMansGun, @Blaze69, @Valehyena, @KestrelSky, @poblivion, @Kuroyami, @ASlySpyDuo, anyone else who cares.
Currently there's the usual start-game enabled quest that runs a script that does everything. And it has a player alias that runs a script attached to the player. Schlongs report their 4 levels to the main quest which builds a master list at run time. Which, in one person's game, is 120 entries long.
I'm thinking of taking a new approach: Each schlong has a magic effect that does the heavy lifting. It catches SOS keys, SL Aroused updates, and SL sex notifications. It has the list of schlongs for this variant as a parameter so when it decides that a different mesh should be loaded it just equips the desired schlong. It gets unequipped, magic effect goes away, new shlong gets equipped, magic effect comes back with the new schlong.
That's basically it--much simpler than the current mechanism. Some wrinkles: Catching the SOS schlong up/down keys is easy; keeping in sync with SOS is not. So there's a variable attached to the owner of the schlong using StorageUtil that tracks the level we think SOS is at. If it gets out of sync just spam the up or down keys until our level and SOS both max out. Also the SOS erection spell is a problem--in the end I created a "detect erection" spell that gets triggered when the SOS erection spell is active. That magic effect sends an event the schlong picks up and uses to replace itself with the most-erect version. The schlongs check to see if the owner has the spell and add it if not.
Worries:
--Is there something about sometimes magic effects getting lost when going through load doors or when the game is reloaded?
--There is something about how sometimes when doing an equip from a script, nothing shows up visually. Then if you equip something unrelated, it does show up. Some script I found somewhere would add a ring, equip it, then unequip it just to trigger the update. I was calling Is3DLoaded() and thought that was triggering the schlong to appear but now I'm not sure it always does it. Anyone remember the details on this?
--Any other problems you can foresee?
4 Comments
Recommended Comments