Jump to content

Why isn't this working???


Spinner385

Recommended Posts

I was having trouble with FormLists so I made a blank one called Equippeditems then attached this script to the player.

 

FormList Property EquippedItems Auto

Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)
int i = 0
EquippedItems.AddForm(akBaseObject)
while i <= equippeditems.getsize()
	debug.messagebox(equippeditems.getat(i))
	i += 1
endwhile
endevent

 

when I unequip something it pops up with the message None. And only once for each item. It should build a list and pop up with several boxes as its filled, and certainly not say none? Please Help

Edited by Spinner385
Link to comment
Share on other sites

Started fresh, and decided to be more specific. Created a FormList called EquippedArmor. Threw in ArmorGlassCuirass from under items/armor. Attached this script to player.

 

Scriptname FormListDebug extends ObjectReference  

FormList Property EquippedArmor Auto

Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)
If akBaseObject.GetType() == 26
Armor myArmor = akBaseObject as Armor
EquippedArmor.AddForm(myArmor)
debug.messagebox(EquippedArmor.GetAt(0))
debug.messagebox(EquippedArmor.GetAt(1))
debug.messagebox(EquippedArmor.GetAt(2))
endif
endevent

 

Unequip a sword nothing happens (Good). Unequip armor and get the messages None, None, and None. It's not even seeing the Glass Armor I put in there, WTH? Please Help.

Edited by Spinner385
Link to comment
Share on other sites

This script will display the names of the armor pieces:

 

 

FormList Property EquippedArmor Auto

Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)
int i = equippedarmor.getsize()
If akBaseObject.GetType() == 26

       Armor myArmor = akBaseObject as Armor
       EquippedArmor.AddForm(myArmor)

while (i >= 0)		
	string Reference = EquippedArmor.GetAt(i).GetName() as string
               debug.messagebox(Reference)
	i -=1
endwhile

endif
endevent

Link to comment
Share on other sites

I need to carry a list between events so I tried a property array. That didn't work either.

 

Scriptname FormListDebug extends ObjectReference  

Armor[] Property EquippedArmor Auto
int property i = 0 Auto

Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)
If akBaseObject.GetType() == 26
EquippedArmor[i] = akBaseObject as Armor
debug.messagebox(EquippedArmor[0])
debug.messagebox(EquippedArmor[1])
debug.messagebox(EquippedArmor[2])
i += 1
endif
endevent

 

It atleast spit out a form ID. Except the three boxes had the same form ID no matter what.

Link to comment
Share on other sites

Edit: I get one blank message box no matter how many I unequip...

 

That's strange, for me it works. Assumption: GetName() is a SKSE function, maybe you have to copy the SKSE scripts over to your Data\Scripts folder again.

I had a similar issue recently, the scripts were bugged somehow. If you leave the GetName() function, it should at least give you the form ID's.

Link to comment
Share on other sites

I'm not getting either name or forms. These scripts should work, and most don't have SKSE function. I think it maybe time for a skyrim re-install =[

 

Edit: Thnx for helping. Knowing they worked for you and not me pointed me to a problem with skyrim itself. +1

 

Oops edit fail

Edited by Spinner385
Link to comment
Share on other sites

So after completely re-installing, I am getting the same results. I must be doing something wrong. Your example comes up as blank (or "None" without getname), mine come up as "None" and my array example doesn't work (Only displays one form multiple times, .length comes up as 0 also). That was a fresh install of skyrim, skse, NMM, and creation kit.

 

Update: Disabled every mod and started a new game. Went through the long intro until I could access my inventory then saved. Loaded only the test mod. Same results.

Edited by Spinner385
Link to comment
Share on other sites

  • Recently Browsing   0 members

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