Jump to content

Trouble with unequip when magicka is 0 script


zack1293

Recommended Posts

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 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

End

 

Removing items (questscript)

 

scn aademontransformend

 

ref me

ref weapon

float 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 Weapon

endif

end

Edited by zack1293
Link to comment
Share on other sites

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 ...BLAH

set fQuestDelayTime to 0.001

 

 

 

Link to comment
Share on other sites

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 ...BLAH

set fQuestDelayTime to 0.001

Still 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

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...