Hello all I've been fooling around with this script all day. It logs what you have equipped.
It was written originally by Shanjaq with his co-op multiplayer mod.
I haven't changed much at all(didn't need to). But for some reason it freezes the entire program on the second time it is ran in-game.
I don't know what's causing it, I've checked all the MWSE functions through other scripts and they work fine, including xinventory and setcontent.
What am I missing?
Also, is there a better way to do this? Since there are no arrays, you need a lot of conditional blocks because each "Article" variable has a different name.
Begin AAAMOEquipWrite xlogmessage "initializing variables equip write" stopscript AAAMOEquipWrite ;misc stuff short test short done short step long pcid;30 ;inventory long invref ;1 long invcount ;2 long IsEquipped;3 ;all articles of equipment short ACount long Article1;4 long Article2;5 long Article3;6 long Article4;7 long Article5;8 long Article6;9 long Article7;10 long Article8;11 long Article9;12 long Article10;13 long Article11;14 long Article12;15 long Article13;16 long Article14;17 long Article15;18 long Article16;19 long Article17;20 long buffer1;21 long buffer2;22 long buffer3;23 long buffer4;24 long buffer5;25 long buffer6;26 long buffer7;27 long buffer8;28 long buffer9;29 set test to 0 set done to 0 set step to 0 set invref to 0 set invcount to 0 set pcid to 0 set IsEquipped to 0 set ACount to 0 setx pcid to xGetRef "player" xSetRef pcid xLogMessage, "Starting equip write" setx Article1,invcount,invref to xInventory ifx ( invcount ) set done to 0 if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article1 ifx ( IsEquipped ) set step to 0 setx Article2,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article1,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article2 ifx ( IsEquipped ) set step to 0 setx Article3,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article2,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article1 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article3 ifx ( IsEquipped ) set step to 0 setx Article4,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article3,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article2 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article4 ifx ( IsEquipped ) set step to 0 setx Article5,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article4,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article3 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article5 ifx ( IsEquipped ) set step to 0 setx Article6,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article5,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article4 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article6 ifx ( IsEquipped ) set step to 0 setx Article7,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article6,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article5 to 0 endif xLogMessage, "Middle equip write" if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article7 ifx ( IsEquipped ) set step to 0 setx Article8,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article7,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article6 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article8 ifx ( IsEquipped ) set step to 0 setx Article9,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article8,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article7 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article9 ifx ( IsEquipped ) set step to 0 setx Article10,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article9,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article8 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article10 ifx ( IsEquipped ) set step to 0 setx Article11,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article10,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article9 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article11 ifx ( IsEquipped ) set step to 0 setx Article12,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article11,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article10 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article12 ifx ( IsEquipped ) set step to 0 setx Article13,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article12,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article11 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article13 ifx ( IsEquipped ) set step to 0 setx Article14,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article13,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article12 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article14 ifx ( IsEquipped ) set step to 0 setx Article15,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article14,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article13 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article15 ifx ( IsEquipped ) set step to 0 setx Article16,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article15,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article14 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article16 ifx ( IsEquipped ) set step to 0 setx Article17,invcount,invref to xNextStack invref set ACount to ACount + 1 else setx Article16,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article15 to 0 endif if ( done == 0 ) set step to 1 whilex ( step ) ifx ( invref ) setx IsEquipped to XHasItemEquipped Article17 ifx ( IsEquipped ) set step to 0 set ACount to ACount + 1 else setx Article17,invcount,invref to xNextStack invref endif else set step to 0 set done to 1 endif endwhile else set Article16 to 0 endif if ( done == 1 ) set Article17 to 0 endif endif xLogMessage, "Ending equip write" ;messagebox "stupid number thingy %g" ACount ;set test to 0 ;if ( ACount == 17 ) ; set test to 1 ; set ACount to 0 ;endif ;ifx ( test ) ; xLogMessage "BAMF::EQUIP1: %s|%s|%s|%s|%s|%s|%s|%s|%s~" Article1 Article2 Article3 Article4 Article5 Article6 Article7 Article8 Article9 ; xLogMessage "BAMF::EQUIP2: %s|%s|%s|%s|%s|%s|%s|%s||" Article10 Article11 Article12 Article13 Article14 Article15 Article16 Article17 ; return ;endif set test to 0 ;MessageBox, "acount=%g" ACount xLogMessage, "Outputting equip write" if ( ACount > 9 ) set test to 1 set buffer1 to Article10 set buffer2 to Article11 set buffer3 to Article12 set buffer4 to Article13 set buffer5 to Article14 set buffer6 to Article15 set buffer7 to Article16 set buffer8 to Article17 else set buffer1 to Article1 set buffer2 to Article2 set buffer3 to Article3 set buffer4 to Article4 set buffer5 to Article5 set buffer6 to Article6 set buffer7 to Article7 set buffer8 to Article8 set buffer9 to Article9 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s|%s|%s|%s|%s|%s|%s|%s~||" Article1 Article2 Article3 Article4 Article5 Article6 Article7 Article8 Article9 set ACount to ACount - 9 endif set test to 0 if ( ACount == 9 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s|%s|%s|%s|%s|%s|%s|%s||" buffer1 buffer2 buffer3 buffer4 buffer5 buffer6 buffer7 buffer8 buffer9 return endif set test to 0 if ( ACount == 8 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s|%s|%s|%s|%s|%s|%s||" buffer1 buffer2 buffer3 buffer4 buffer5 buffer6 buffer7 buffer8 return endif set test to 0 if ( ACount == 7 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s|%s|%s|%s|%s|%s||" buffer1 buffer2 buffer3 buffer4 buffer5 buffer6 buffer7 return endif set test to 0 if ( ACount == 6 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s|%s|%s|%s|%s||" buffer1 buffer2 buffer3 buffer4 buffer5 buffer6 return endif set test to 0 if ( ACount == 5 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s|%s|%s|%s||" buffer1 buffer2 buffer3 buffer4 buffer5 return endif set test to 0 if ( ACount == 4 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s|%s|%s||" buffer1 buffer2 buffer3 buffer4 return endif set test to 0 if ( ACount == 3 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s|%s||" buffer1 buffer2 buffer3 return endif set test to 0 if ( ACount == 2 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s|%s||" buffer1 buffer2 return endif set test to 0 if ( ACount == 1 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU %s||" buffer1 return endif set test to 0 if ( ACount == 0 ) set test to 1 endif ifx ( test ) xLogMessage "UPDATE::EQU misc_com_bottle_01||" return endifend