zack1293 Posted October 24, 2012 Share Posted October 24, 2012 (edited) I'm making a demon transformation mod and so far I have a script that adds the demon form (as clothes) to the player and increases attack damage. I want to make the armor unequip when the player is out of magicka but I can't get the armor to unequip. I'm kind of at a wall and I'm sure it's probably something small I'm overlooking. Any help is greatly appreciated. These are the scripts that I'm using right now. Adding the armor (spell script) scn aademontransform ;adds demon skin to player ref meref sourceref weaponref magicfloat weapondamage Begin ScriptEffectStart set magic to getactorvalue magicka set Weapon to player.GetEquippedObject 16 set WeaponDamage to GetAttackDamage Weapon set WeaponDamage to WeaponDamage * 2 SetAttackDamage WeaponDamage Weapon set me to getself set source to castref source.moveto me 0, 0, 0 me.getav magicka me.addspell aademondrain me.additemns aademonskin 1 me.equipitemns aademonskin set WeaponDamage to WeaponDamage * 2End Removing items (questscript) scn aademontransformend ref meref weaponfloat weapondamage begin gamemode set me to player if me.getav magicka==0 me.UnequipItemNS aademonskin me.removeitemns aademonskin 1 me.removespell aademondrain ;drains magicka SetAttackDamage WeaponDamage Weaponendifend Edited October 24, 2012 by zack1293 Link to comment Share on other sites More sharing options...
Hickory Posted October 24, 2012 Share Posted October 24, 2012 Your quest script is updating every 5 seconds (default). This means that your magicka will never be zero, as it's always regenerating. You need to set a special quest variable that will update the quest script every frame: float fQuestDelayTime Begin ...BLAHset fQuestDelayTime to 0.001 Link to comment Share on other sites More sharing options...
zack1293 Posted October 24, 2012 Author Share Posted October 24, 2012 Your quest script is updating every 5 seconds (default). This means that your magicka will never be zero, as it's always regenerating. You need to set a special quest variable that will update the quest script every frame: float fQuestDelayTime Begin ...BLAHset fQuestDelayTime to 0.001Still doesn't work. I think for now I'm just going to start over and make a ring to equip the items so I can toggle it. Link to comment Share on other sites More sharing options...
theuseless Posted October 25, 2012 Share Posted October 25, 2012 what Hickory suggests should work. If you make the fQuestDelayTime 0.01 then it will make the script run every frame, rather then 5 seconds. If you can't get the Magika to check, then I would make another variable to change. Just make it read: ref me ref source ref weapon ref magic float weapondamage Begin ScriptEffectStart set magic to getactorvalue magicka set Weapon to player.GetEquippedObject 16 set WeaponDamage to GetAttackDamage Weapon set WeaponDamage to WeaponDamage * 2 SetAttackDamage WeaponDamage Weapon set me to getself set source to castref source.moveto me 0, 0, 0 me.getav magicka me.addspell aademondrain me.additemns aademonskin 1 me.equipitemns aademonskin set WeaponDamage to WeaponDamage * 2 set aademontransformendQUEST.isEquip to 1 startquest aademontransformendQUEST End Removing items (questscript) scn aademontransformend short isEquip ref me ref weapon float weapondamage begin gamemode set me to player if isEquip == 0 stopquest aademontransformendQUEST ;ends the quest when not active else me.UnequipItemNS aademonskin me.removeitemns aademonskin 1 me.removespell aademondrain ;drains magicka set isEquip to 0 SetAttackDamage WeaponDamage Weapon return ;forces the script to restart, then stopquest endif end Link to comment Share on other sites More sharing options...
Recommended Posts