Jump to content
  • Announcements

    • AndalayBay

      SSL Installed   05/29/2018

      Second IP obtained. The issues with IPv6 have also been fixed, but we can't switch to HTTPS until we switch forum software. We can't switch to HTTPS without a current license with IPS.
Sign in to follow this  
Schtearn

Message Logger Messages

Recommended Posts

Have some interesting messages to share from Message Logger:

The first, and of most concern, are these from Frans:

Quote

2018/06/13 17:17:05  [0051714E] [WARNING]   Script 'FranLoot1Armor2Script', line 196: Function 'AddItem' requires a reference.
2018/06/13 17:17:05  [0051714E] [WARNING]   Script 'FranLoot1BluntScript', line 313: Function 'AddItem' requires a reference.
2018/06/13 17:17:05  [0051714E] [WARNING]   Script 'FranLoot1Armor2Script', line 196: Function 'AddItem' requires a reference.
2018/06/13 17:17:05  [0051714E] [WARNING]   Script 'FranLoot1BluntScript', line 313: Function 'AddItem' requires a reference.
2018/06/13 17:17:06  [0051714E] [WARNING]   Script 'FranLoot1Armor2Script', line 196: Function 'AddItem' requires a reference.
2018/06/13 17:17:06  [0051714E] [WARNING]   Script 'FranLoot1BluntScript', line 313: Function 'AddItem' requires a reference.

It's easy to suppress the message generation via the ini, but it would be nice to know why they are continually generated, as opposed to other messages which aren't.

Player is in SI presently, and it's noted in Francesco's Creatures and Items.ini 

Quote

FranLoot.SILoot to 0

should be changed to 

Quote

Set FranLoot.SILoot to 0

The script doesn't have any stages, but they are repeatable, set in FranLootSettingsScript as

Spoiler

   set FranMenu.fQuestDelayTime to 0.05
   set FranLoot0Armor.fQuestDelayTime to 0.05
   set FranLoot0Weap.fQuestDelayTime to 0.05
   set FranLoot1Armor1.fQuestDelayTime to 0.05
   set FranLoot1Armor2.fQuestDelayTime to 0.05
   set FranLoot1Armor3.fQuestDelayTime to 0.05
   set FranLoot1Armor4.fQuestDelayTime to 0.05
   set FranLoot1Blade.fQuestDelayTime to 0.05
   set FranLoot1Blunt.fQuestDelayTime to 0.05
   set FranLoot1Missile.fQuestDelayTime to 0.05
   set FranLoot2Armor1.fQuestDelayTime to 0.05
   set FranLoot2Armor2.fQuestDelayTime to 0.05
   set FranLoot2Armor3.fQuestDelayTime to 0.05
   set FranLoot2Armor4.fQuestDelayTime to 0.05
   set FranLoot2Blade.fQuestDelayTime to 0.05
   set FranLoot2Blunt.fQuestDelayTime to 0.05
   set FranLoot2Missile.fQuestDelayTime to 0.05

Presumably script starts when the game loads the esp, but unable to ascertain if, when, or where the script is rerun. The blunt script begins thusly:

scn FranLoot1BluntScript

ref NPC
short Level
short WeapToAdd
short AddOnItem
short ItemA
short ItemB
short LootType
Ref Fran01Weap
Ref Fran03Weap
Ref Fran05Weap
Ref Fran07Weap
Ref Fran10Weap
Ref Fran13Weap
Ref Fran15Weap
Ref Fran20Weap
Ref Fran25Weap
float fQuestDelayTime
short Mace1h
short Mace2h
short Axe1h
short Axe2h
short SI

begin GameMode
   if GetQR FranLoot2Blunt == 1
      return
   endif

   set fQuestDelayTime to 0.05

   if FranLoot.Magic > 0 && GetRandomPercent <= FranLoot.Magic && WeapToAdd > 0
      set WeapToAdd to (WeapToAdd * -1)
   elseif FranLoot.Magic < 0 && GetRandomPercent <= (FranLoot.Magic * -1) && WeapToAdd < 0
      set WeapToAdd to (WeapToAdd * -1)
   endif

WeapToAdd is a local variable, so befuddled as to why it is tested in the last lines of above. It's similarly defined in some other Frans scripts:

FranScpt.JPG.7fd2549f1772461855e322254c854af5.JPG

The message is actually generated from this section:

FranScpt1.JPG.2a3a52f13a1a323d4835c5508c9319b5.JPG

One of the FranXXWeaps is missing- but there also might be a bug in the script itself (very unlikely)

Here's the script:

Spoiler

scn FranLoot1BluntScript

ref NPC
short Level
short WeapToAdd
short AddOnItem
short ItemA
short ItemB
short LootType
Ref Fran01Weap
Ref Fran03Weap
Ref Fran05Weap
Ref Fran07Weap
Ref Fran10Weap
Ref Fran13Weap
Ref Fran15Weap
Ref Fran20Weap
Ref Fran25Weap
float fQuestDelayTime
short Mace1h
short Mace2h
short Axe1h
short Axe2h
short SI

begin GameMode
   if GetQR FranLoot2Blunt == 1
      return
   endif

   set fQuestDelayTime to 0.05

   if FranLoot.Magic > 0 && GetRandomPercent <= FranLoot.Magic && WeapToAdd > 0
      set WeapToAdd to (WeapToAdd * -1)
   elseif FranLoot.Magic < 0 && GetRandomPercent <= (FranLoot.Magic * -1) && WeapToAdd < 0
      set WeapToAdd to (WeapToAdd * -1)
   endif

   set ItemA to GetRandomPercent

   if WeapToAdd < 0
   set AddOnItem to 100 / FranLoot.AddOnWeapM
   else
   set AddOnItem to 100 / FranLoot.AddOnWeap
   endif

   if Mace1h == 1
   set Mace1h to 0
   if (FranLoot.AddOnItem == 1 && GetRandomPercent <= AddOnItem)
      if WeapToAdd > 0
      set Fran01Weap to FranLLA0AddOnWeapMace1h01
      set Fran03Weap to FranLLA0AddOnWeapMace1h02
      set Fran05Weap to FranLLA0AddOnWeapMace1h05
      set Fran07Weap to FranLLA0AddOnWeapMace1h07
      set Fran10Weap to FranLLA0AddOnWeapMace1h10
      set Fran13Weap to FranLLA0AddOnWeapMace1h13
      set Fran15Weap to FranLLA0AddOnWeapMace1h16
      set Fran20Weap to FranLLA0AddOnWeapMace1h20
      set Fran25Weap to FranLLA0AddOnWeapMace1h25
      else
      set Fran01Weap to FranLLA0AddOnWeapZMagicMace1h01
      set Fran03Weap to FranLLA0AddOnWeapZMagicMace1h02
      set Fran05Weap to FranLLA0AddOnWeapZMagicMace1h05
      set Fran07Weap to FranLLA0AddOnWeapZMagicMace1h07
      set Fran10Weap to FranLLA0AddOnWeapZMagicMace1h10
      set Fran13Weap to FranLLA0AddOnWeapZMagicMace1h13
      set Fran15Weap to FranLLA0AddOnWeapZMagicMace1h16
      set Fran20Weap to FranLLA0AddOnWeapZMagicMace1h20
      set Fran25Weap to FranLLA0AddOnWeapZMagicMace1h25
      endif
   else
      if WeapToAdd > 0 && SI == 0
      set Fran01Weap to WeapIronMace
      set Fran03Weap to WeapSteelMace
      set Fran05Weap to WeapSilverMace
      set Fran07Weap to WeapDwarvenMace
      set Fran10Weap to WeapElvenMace
      set Fran13Weap to WeapGlassMace
      set Fran15Weap to WeapEbonyMace
      set Fran20Weap to WeapDaedricMace
      set Fran25Weap to WeapDaedricMace
      elseif WeapToAdd > 0 && SI == 1
      set Fran01Weap to FranSELL00WeapDurIronMace
      set Fran03Weap to FranSELL00WeapDurSteelMace
      set Fran05Weap to FranSELL00WeapDurSilverMace
      set Fran07Weap to FranSELL00WeapDurDwarMace
      set Fran10Weap to FranSELL00WeapDurElvenMace
      set Fran13Weap to FranSELL00WeapDurGLassMace
      set Fran15Weap to FranSELL00WeapDurEbonyMace
      set Fran20Weap to FranSELL00WeapDurDaedricMace
      set Fran25Weap to FranSELL00WeapDurDaedricMace
      elseif SI == 0
      set Fran01Weap to FranLL00WeapMagicIronMace
      set Fran03Weap to FranLL00WeapMagicSteelMace
      set Fran05Weap to FranLL00WeapMagicSteelMace
      set Fran07Weap to FranLL00WeapMagicDwarMace
      set Fran10Weap to FranLL00WeapMagicElvenMace
      set Fran13Weap to FranLL00WeapMagicGlassMace
      set Fran15Weap to FranLL00WeapMagicEbonyMace
      set Fran20Weap to FranLL00WeapMagicDaedricMace
      set Fran25Weap to FranLL00WeapMagicDaedricMace
      elseif SI == 1
      set Fran01Weap to FranSELL00WeapMagicIronMace
      set Fran03Weap to FranSELL00WeapMagicSteelMace
      set Fran05Weap to FranSELL00WeapMagicSilverMace
      set Fran07Weap to FranSELL00WeapMagicDwarMace
      set Fran10Weap to FranSELL00WeapMagicElvenMace
      set Fran13Weap to FranSELL00WeapMagicGLassMace
      set Fran15Weap to FranSELL00WeapMagicEbonyMace
      set Fran20Weap to FranSELL00WeapMagicDaedricMace
      set Fran25Weap to FranSELL00WeapMagicDaedricMace
      endif
   endif

   elseif Mace2h == 1
   set Mace2h to 0
   if (FranLoot.AddOnItem == 1 && GetRandomPercent <= AddOnItem)
      if WeapToAdd > 0
      set Fran01Weap to FranLLA0AddOnWeapMace2h01
      set Fran03Weap to FranLLA0AddOnWeapMace2h02
      set Fran05Weap to FranLLA0AddOnWeapMace2h05
      set Fran07Weap to FranLLA0AddOnWeapMace2h07
      set Fran10Weap to FranLLA0AddOnWeapMace2h10
      set Fran13Weap to FranLLA0AddOnWeapMace2h13
      set Fran15Weap to FranLLA0AddOnWeapMace2h16
      set Fran20Weap to FranLLA0AddOnWeapMace2h20
      set Fran25Weap to FranLLA0AddOnWeapMace2h25
      else
      set Fran01Weap to FranLLA0AddOnWeapZMagicMace2h01
      set Fran03Weap to FranLLA0AddOnWeapZMagicMace2h02
      set Fran05Weap to FranLLA0AddOnWeapZMagicMace2h05
      set Fran07Weap to FranLLA0AddOnWeapZMagicMace2h07
      set Fran10Weap to FranLLA0AddOnWeapZMagicMace2h10
      set Fran13Weap to FranLLA0AddOnWeapZMagicMace2h13
      set Fran15Weap to FranLLA0AddOnWeapZMagicMace2h16
      set Fran20Weap to FranLLA0AddOnWeapZMagicMace2h20
      set Fran25Weap to FranLLA0AddOnWeapZMagicMace2h25
      endif
   else
      if WeapToAdd > 0 && SI == 0
      set Fran01Weap to WeapIronWarHammer
      set Fran03Weap to WeapSteelWarHammer
      set Fran05Weap to WeapSilverWarHammer
      set Fran07Weap to WeapDwarvenWarHammer
      set Fran10Weap to WeapElvenWarHammer
      set Fran13Weap to WeapGlassWarHammer
      set Fran15Weap to WeapEbonyWarHammer
      set Fran20Weap to WeapDaedricWarHammer
      set Fran25Weap to WeapDaedricWarHammer
      elseif WeapToAdd > 0 && SI == 1
      set Fran01Weap to FranSELL00WeapDurIronWarHam
      set Fran03Weap to FranSELL00WeapDurSteelWarHam
      set Fran05Weap to FranSELL00WeapDurSilverWarHam
      set Fran07Weap to FranSELL00WeapDurDwarWarHam
      set Fran10Weap to FranSELL00WeapDurElvenWarHam
      set Fran13Weap to FranSELL00WeapDurGLassWarHam
      set Fran15Weap to FranSELL00WeapDurEbonyWarHam
      set Fran20Weap to FranSELL00WeapDurDaedricWarHam
      set Fran25Weap to FranSELL00WeapDurDaedricWarHam
      elseif SI == 0
      set Fran01Weap to FranLL00WeapMagicIronWarHam
      set Fran03Weap to FranLL00WeapMagicSteelWarHam
      set Fran05Weap to FranLL00WeapMagicSteelWarHam
      set Fran07Weap to FranLL00WeapMagicDwarWarHam
      set Fran10Weap to FranLL00WeapMagicElvenWarHam
      set Fran13Weap to FranLL00WeapMagicGlassWarHam
      set Fran15Weap to FranLL00WeapMagicEbonyWarHam
      set Fran20Weap to FranLL00WeapMagicDaedricWarHam
      set Fran25Weap to FranLL00WeapMagicDaedricWarHam
      elseif SI == 1
      set Fran01Weap to FranSELL00WeapMagicIronWarHam
      set Fran03Weap to FranSELL00WeapMagicSteelWarHam
      set Fran05Weap to FranSELL00WeapMagicSilverWarHam
      set Fran07Weap to FranSELL00WeapMagicDwarWarHam
      set Fran10Weap to FranSELL00WeapMagicElvenWarHam
      set Fran13Weap to FranSELL00WeapMagicGLassWarHam
      set Fran15Weap to FranSELL00WeapMagicEbonyWarHam
      set Fran20Weap to FranSELL00WeapMagicDaedricWarHam
      set Fran25Weap to FranSELL00WeapMagicDaedricWarHam
      endif
   endif

   elseif Axe1h == 1
   set Axe1h to 0
   if (FranLoot.AddOnItem == 1 && GetRandomPercent <= AddOnItem)
      if WeapToAdd > 0
      set Fran01Weap to FranLLA0AddOnWeapAxe1h01
      set Fran03Weap to FranLLA0AddOnWeapAxe1h02
      set Fran05Weap to FranLLA0AddOnWeapAxe1h05
      set Fran07Weap to FranLLA0AddOnWeapAxe1h07
      set Fran10Weap to FranLLA0AddOnWeapAxe1h10
      set Fran13Weap to FranLLA0AddOnWeapAxe1h13
      set Fran15Weap to FranLLA0AddOnWeapAxe1h16
      set Fran20Weap to FranLLA0AddOnWeapAxe1h20
      set Fran25Weap to FranLLA0AddOnWeapAxe1h25
      else
      set Fran01Weap to FranLLA0AddOnWeapZMagicAxe1h01
      set Fran03Weap to FranLLA0AddOnWeapZMagicAxe1h02
      set Fran05Weap to FranLLA0AddOnWeapZMagicAxe1h05
      set Fran07Weap to FranLLA0AddOnWeapZMagicAxe1h07
      set Fran10Weap to FranLLA0AddOnWeapZMagicAxe1h10
      set Fran13Weap to FranLLA0AddOnWeapZMagicAxe1h13
      set Fran15Weap to FranLLA0AddOnWeapZMagicAxe1h16
      set Fran20Weap to FranLLA0AddOnWeapZMagicAxe1h20
      set Fran25Weap to FranLLA0AddOnWeapZMagicAxe1h25
      endif
   else
      if WeapToAdd > 0 && SI == 0
      set Fran01Weap to WeapIronWarAxe
      set Fran03Weap to WeapSteelWarAxe
      set Fran05Weap to WeapSilverWarAxe
      set Fran07Weap to WeapDwarvenWarAxe
      set Fran10Weap to WeapElvenWarAxe
      set Fran13Weap to WeapGlassWarAxe
      set Fran15Weap to WeapEbonyWarAxe
      set Fran20Weap to WeapDaedricWarAxe
      set Fran25Weap to WeapDaedricWarAxe
      elseif WeapToAdd > 0 && SI == 1
      set Fran01Weap to FranSELL00WeapDurIronWarAxe
      set Fran03Weap to FranSELL00WeapDurSteelWarAxe
      set Fran05Weap to FranSELL00WeapDurSilverWarAxe
      set Fran07Weap to FranSELL00WeapDurDwarWarAxe
      set Fran10Weap to FranSELL00WeapDurElvenWarAxe
      set Fran13Weap to FranSELL00WeapDurGLassWarAxe
      set Fran15Weap to FranSELL00WeapDurEbonyWarAxe
      set Fran20Weap to FranSELL00WeapDurDaedricWarAxe
      set Fran25Weap to FranSELL00WeapDurDaedricWarAxe
      elseif SI == 0
      set Fran01Weap to FranLL00WeapMagicIronWarAxe
      set Fran03Weap to FranLL00WeapMagicSteelWarAxe
      set Fran05Weap to FranLL00WeapMagicSteelWarAxe
      set Fran07Weap to FranLL00WeapMagicDwarWarAxe
      set Fran10Weap to FranLL00WeapMagicElvenWarAxe
      set Fran13Weap to FranLL00WeapMagicGlassWarAxe
      set Fran15Weap to FranLL00WeapMagicEbonyWarAxe
      set Fran20Weap to FranLL00WeapMagicDaedricWarAxe
      set Fran25Weap to FranLL00WeapMagicDaedricWarAxe
      elseif SI == 1
      set Fran01Weap to FranSELL00WeapMagicIronWarAxe
      set Fran03Weap to FranSELL00WeapMagicSteelWarAxe
      set Fran05Weap to FranSELL00WeapMagicSilverWarAxe
      set Fran07Weap to FranSELL00WeapMagicDwarWarAxe
      set Fran10Weap to FranSELL00WeapMagicElvenWarAxe
      set Fran13Weap to FranSELL00WeapMagicGLassWarAxe
      set Fran15Weap to FranSELL00WeapMagicEbonyWarAxe
      set Fran20Weap to FranSELL00WeapMagicDaedricWarAxe
      set Fran25Weap to FranSELL00WeapMagicDaedricWarAxe
      endif
   endif

   elseif Axe2h == 1
   set Axe2h to 0
   if (FranLoot.AddOnItem == 1 && GetRandomPercent <= AddOnItem)
      if WeapToAdd > 0
      set Fran01Weap to FranLLA0AddOnWeapAxe2h01
      set Fran03Weap to FranLLA0AddOnWeapAxe2h02
      set Fran05Weap to FranLLA0AddOnWeapAxe2h05
      set Fran07Weap to FranLLA0AddOnWeapAxe2h07
      set Fran10Weap to FranLLA0AddOnWeapAxe2h10
      set Fran13Weap to FranLLA0AddOnWeapAxe2h13
      set Fran15Weap to FranLLA0AddOnWeapAxe2h16
      set Fran20Weap to FranLLA0AddOnWeapAxe2h20
      set Fran25Weap to FranLLA0AddOnWeapAxe2h25
      else
      set Fran01Weap to FranLLA0AddOnWeapZMagicAxe2h01
      set Fran03Weap to FranLLA0AddOnWeapZMagicAxe2h02
      set Fran05Weap to FranLLA0AddOnWeapZMagicAxe2h05
      set Fran07Weap to FranLLA0AddOnWeapZMagicAxe2h07
      set Fran10Weap to FranLLA0AddOnWeapZMagicAxe2h10
      set Fran13Weap to FranLLA0AddOnWeapZMagicAxe2h13
      set Fran15Weap to FranLLA0AddOnWeapZMagicAxe2h16
      set Fran20Weap to FranLLA0AddOnWeapZMagicAxe2h20
      set Fran25Weap to FranLLA0AddOnWeapZMagicAxe2h25
      endif
   else
      if WeapToAdd > 0 && SI == 0
      set Fran01Weap to WeapIronBattleAxe
      set Fran03Weap to WeapSteelBattleAxe
      set Fran05Weap to WeapSilverBattleAxe
      set Fran07Weap to WeapDwarvenBattleAxe
      set Fran10Weap to WeapElvenBattleAxe
      set Fran13Weap to WeapGlassBattleAxe
      set Fran15Weap to WeapEbonyBattleAxe
      set Fran20Weap to WeapDaedricBattleAxe
      set Fran25Weap to WeapDaedricBattleAxe
      elseif WeapToAdd > 0 && SI == 1
      set Fran01Weap to FranSELL00WeapDurIronBattleAxe
      set Fran03Weap to FranSELL00WeapDurSteelBattleAxe
      set Fran05Weap to FranSELL00WeapDurSilverBattleAxe
      set Fran07Weap to FranSELL00WeapDurDwarBattleAxe
      set Fran10Weap to FranSELL00WeapDurElvenBattleAxe
      set Fran13Weap to FranSELL00WeapDurGLassBattleAxe
      set Fran15Weap to FranSELL00WeapDurEbonyBattleAxe
      set Fran20Weap to FranSELL00WeapDurDaedricBattleAxe
      set Fran25Weap to FranSELL00WeapDurDaedricBattleAxe
      elseif SI == 0
      set Fran01Weap to FranLL00WeapMagicIronBattleAxe
      set Fran03Weap to FranLL00WeapMagicSteelBattleAxe
      set Fran05Weap to FranLL00WeapMagicSteelBattleAxe
      set Fran07Weap to FranLL00WeapMagicDwarBattleAxe
      set Fran10Weap to FranLL00WeapMagicElvenBattleAxe
      set Fran13Weap to FranLL00WeapMagicGlassBattleAxe
      set Fran15Weap to FranLL00WeapMagicEbonyBattleAxe
      set Fran20Weap to FranLL00WeapMagicDaedricBattleAxe
      set Fran25Weap to FranLL00WeapMagicDaedricBattleAxe
      elseif SI == 1
      set Fran01Weap to FranSELL00WeapMagicIronBattleAxe
      set Fran03Weap to FranSELL00WeapMagicSteelBattleAxe
      set Fran05Weap to FranSELL00WeapMagicSilverBattleAxe
      set Fran07Weap to FranSELL00WeapMagicDwarBattleAxe
      set Fran10Weap to FranSELL00WeapMagicElvenBattleAxe
      set Fran13Weap to FranSELL00WeapMagicGLassBattleAxe
      set Fran15Weap to FranSELL00WeapMagicEbonyBattleAxe
      set Fran20Weap to FranSELL00WeapMagicDaedricBattleAxe
      set Fran25Weap to FranSELL00WeapMagicDaedricBattleAxe
      endif
   endif
   endif

if WeapToAdd < 0
   set WeapToAdd to (WeapToAdd * -1)
endif

If WeapToAdd > 1
   If GetRandomPercent > 50
      set ItemB to 2
   else
      set ItemB to 3
   endif
   if WeapToAdd == 2 && (Level >= 30 && ItemA < (LootType/2))  
      set WeapToAdd to WeapToAdd - 1                                         
   elseif WeapToAdd == 3 && (level < 10 && ItemA < LootType) || (level >= 10 && level < 13 && ItemA < (LootType/1.5)) || (level   >= 13 && ItemA < (LootType/2))
      set WeapToAdd to WeapToAdd - (ItemB - 1)
   elseif WeapToAdd == 4 && (level < 13 && ItemA < LootType) || (level >= 13 && level < 16 && ItemA < (LootType/1.5)) || (level   >= 16 && ItemA < (LootType/2))   
      set WeapToAdd to WeapToAdd - ItemB
   elseif WeapToAdd == 5 && (level < 16 && ItemA < LootType) || (level >= 16 && level < 20 && ItemA < (LootType/1.5)) || (level   >= 20 && ItemA < (LootType/2))     
      set WeapToAdd to WeapToAdd - ItemB
   elseif WeapToAdd == 6 && (level < 20 && ItemA < LootType) || (level >= 20 && ItemA < (LootType/1.5))  
      set WeapToAdd to WeapToAdd - ItemB
   elseif WeapToAdd == 7 && (level < 25 && ItemA < LootType) || (level >= 25 && ItemA < (LootType/1.1)) 
      set WeapToAdd to WeapToAdd - ItemB
   elseif WeapToAdd >= 8 && (level < 35 && ItemA < LootType) || (level >= 35 && ItemA < (LootType/1.1))
      set WeapToAdd to WeapToAdd - ItemB
   endif
endif

if (WeapToAdd == 1)
   NPC.additem Fran01Weap, 1
elseif (WeapToAdd == 2)
   NPC.additem Fran03Weap, 1    
elseif (WeapToAdd == 3)
   NPC.additem Fran05Weap, 1    
elseif (WeapToAdd == 4)
   NPC.additem Fran07Weap, 1 
elseif (WeapToAdd == 5)
   NPC.additem Fran10Weap, 1  
elseif (WeapToAdd == 6)
   NPC.additem Fran13Weap, 1  
elseif (WeapToAdd == 7)
   NPC.additem Fran15Weap, 1
elseif (WeapToAdd == 8)
   NPC.additem Fran20Weap, 1
elseif (WeapToAdd == 9)
   NPC.additem Fran25Weap, 1
endif
   set WeapToAdd to 0

   if NPC.IsActor == 1 
   set FranLoot2Blunt.NPC to NPC
   startquest FranLoot2Blunt
   endif

   stopquest FranLoot1Blunt
end

Thanks for any ideas.

Share this post


Link to post
Share on other sites

Well, for script FranLoot1BluntScript  the error is: Script 'FranLoot1BluntScript', line 313: Function 'AddItem' requires a reference.

 

Line 313 is: set Fran10Weap to FranSELL00WeapMagicElvenBattleAxe

This line doesn't include an AddItem function.

 

However lower down in line 358: NPC.additem Fran10Weap, 1

This line contains AddItem, and references the ref set in line 313 (when in the SI). So my guess is that FranSELL00WeapMagicElvenBattleAxe is probably missing from the ESM/P containing this script or the master of the ESM/P containing this script.

 

Line 358 says to add the item from line 313, but if the item from 313 doesn't exist then it nulls and has no reference, hence the error.

Share this post


Link to post
Share on other sites
Posted (edited)

That might be it, thanks. :D

The winning script is run from Francesco's Optional New Items Add-On.esm, and the record is there:

FranAxe.thumb.JPG.541beeb4c37d4cea2de2c53cde20dbba.JPG

The record is referenced in both scripts here-

FranDiff.thumb.JPG.95b1fae1d8ed9096d9cace7a3b64c57b.JPG

The (losing) Francesco's Leveled Creatures-Items Mod.esm has one ref more:

FranDiff2.thumb.JPG.18f218d8c3a73a263836288a1df20b63.JPG

In any case, it's difficult to see how the statement is ever reached when local variable SI is not set to anything. The two files are attached for perusal: Franscpt.7z

...

See now that all Oblivion scripts can be rerun with Gamemode- (superseded in Skyrim).

Using Fran 5b, for that BAIN wizard doesn't have EditIni, and yep the last line of Francesco's Creatures and Items.ini is wrong, although SILoot is set in one of the scripts to 2 if it was set to 0 initially, but it's unlikely. Might need a better BAIN wizard as well.

Will update with results and more messages. :)

Edited by Schtearn

Share this post


Link to post
Share on other sites
Posted (edited)

Does the analysis show that there is something fundamentally flawed in the way the Frans esms function? The scripts run from Francesco's Optional New Items Add-On.esm operate on items belonging to the other esm. What's the solution? Inject the records from Francesco's Leveled Creatures-Items Mod.esm? Or better to combine the esms- which may end up requiring some refactoring?

...

Got this one in the message log easily fixed, & reported to Enhanced Weathers:

Quote

2018/06/13 17:16:35  [0046F0AA] [WARNING]   Unable to find script (02000ED7) on owner object "EWSITimescaleQuest".

Some other messages are as follows:

Quote

2018/06/13 17:16:57  [00460FB5] [WARNING]   Trying to put non-persistent reference in non-existent cell.
2018/06/13 17:17:03  [005440A2] [WARNING]   Warning:  Unable to locate texture file: (null)
2018/06/13 17:17:03  [005440A2] [WARNING]   Warning:  Unable to locate texture file: (null)

2018/06/13 17:17:03  [004F3313] [ DEBUG ]   Expression Error: SYNTAX

The source addresses are the only thing to go on, so if anyone gets those in a different context, please post! :)

Edited by Schtearn

Share this post


Link to post
Share on other sites

According to the Nexus MessageLogger description page, Additional (optional) hooks can help making specific messages more helpful by adding editor IDs from the CS, etc.

So you need to add those hooks so that you get the Editor IDs (Form IDs would be more helpful if that's an option too) to tell you what it's about. Without a reference, those messages are completely useless. Doesn't even tell you which ESM/P in your load order the warnings are for (and for all I know, it could be logging warnings about textures missing from a NIF instead of an ESM/P, if it logs that data too).

You might find that running TES4Edit's Check For Errors function gives the same errors with more info, if you just know which ESM/P to check.

 

Ref Frans: Does one ESM have dependency on the other? If so then no injection is needed, as it is just referencing records from a master ESM. If one is not dependent on the other, then is the script an OBSE script? Some OBSE script commands allow referencing records from another ESM/P which is not a master. Otherwise, it sounds like some broken references.

Share this post


Link to post
Share on other sites
Posted (edited)

The Nexus description is, at best, optimistic. All that can be done in the ini configuration file is to turn things off or on. And:

Quote

bHookExtraDataListInitItem
--------------------------
Valid values: 0 (disabled) or 1 (enabled)

'ExtraDataList' is a structure used for actors, object references, inventory items and cells.
It can hold additional properties for the parent object, like ownership information, poison and charge,
bounty, followers, and many more.
The 'InitItem' function (among other things) checks its data for errors when the game is loaded and may produce
warnings.
Unfortunately, even though the function has a reference to its parent form, it does not include this information
in the generated messages, leaving you in the dark about which form is responsible for the problem.
With this patch owner form information is appended to the generated message.

bHookLoadSpecialAnimsWarning
----------------------------
Valid values: 0 (disabled) or 1 (enabled)

Similar to 'bHookExtraDataListInitItem', this hook appends parent form information to warning messages which are
generated when an actor has SpecialAnims defined in his/her Animations tab but the animation file cannot be found.

Thus one path to debugging them will be paved with analyses of mod list/load order samples along with their corresponding Message Logger messages. Or just look for similar messages in the CSE log after loading the appropriate plugin.

With Frans, the Francesco's Leveled Creatures-Items Mod.esm is definitely the master of the other two. And now, after rerunning BOSS and Bashed Patch, the errors are not generated anymore! No explanation for that at all. Sorry.

Got one from Dialog Tweaks:

Quote

[00520B18] [WARNING]   Could not find previous idle (1800B98B) for IDLE Form 'MagesGuildSaluteNPC' (0006B589).

And similarly from the CSE log:

Quote

[CS]    Could not find previous idle (0100B98B) for IDLE Form 'MagesGuildSaluteNPC' (0006B589).
[CS]    Clothing 'DiseaseFixToken' needs to have biped slots selected in the editor.

Referenced below:

DlgTweaks.JPG.f15960551ed71bc104080051a28310df.JPG

Record here:

DLGTweaksGdSalute.JPG.467ce1728fe7d237bd69b83a024e2e00.JPG

And in all its glory in the CS:

DLGTweaksSalute.thumb.JPG.858c5bacf1e69aadf24221b814bf3bc3.JPG

Requires more research!

Edit: The file was there and extracted well enough. Deja Vu! A modder to the rescue:

Quote

any about cells containing inter-grid connections or missing previous idles are harmless.

The final warning is from the Sounds of Cyrodiil:

Quote

2018/06/17 23:50:24  [004266ED] [WARNING]   Unable to find enable state parent 000664E9. Enable state parent data will be removed. Parent form is "" (12008B74).
2018/06/17 23:50:24  [004266ED] [WARNING]   Unable to find enable state parent 00034100. Enable state parent data will be removed. Parent form is "" (12003A2B).

Someone posted the same type of messages generated for Better Cities at this thread. Think the messages are harmless, but for the readers, @Vorians, your confirmation is required again. Thanks. :)

Edited by Schtearn

Share this post


Link to post
Share on other sites

I really dislike programs designed to provide error logs where they fail to explain what the errors are, what they relate to, whether they matter, and how to fix the errors.

 

But thanks for linking to that thread, the person's log has 28 entries relating to BC, 24 of which appear to be an issue with records from Better Imperial City.esp looking for a record in Better Cities Resources.esm. The error is saying that the record listed in brackets has a parent record assigned (the record stated in the first part), but the parent record does not exist. As the parent does not exist, parent data has been removed from the record listed in brackets; the result will be that the record listed in brackets will base its enable-state on its own Record Flags instead of on the enable-state of its parent record. Harmless, but could potentially mean that an object intended to be disabled will be enabled, or an object intended to be enabled will be disabled due to having no parent record to control its state.

 

As the BIC.ESP records are Form ID ##0C#### this means that the issue is in the Green Emperor Way content - and since none of the 24 listed records even has a parent in the not-yet released WIP files, I think this is something I already fixed, so perhaps it was reported to me back in December when that thread was created, perhaps I found it myself and fixed it.

The other 4 enties don't mean much to me however. They relate to the ESM, custom worldspace records. The error is "Offset collection for worldspace '#' (#) is not optimal' - no clue what that means. Worldspace records contain a subrecord "OFST - Offset Data" which this might relate to, however none of these four records have any data in OFST, and then in Oblivion.esm every single worldspace record has this blank too. So if that is what the error refers to, why doesn't that log list all the vanilla worldspaces as not being optimal? By the wording "not optimal" that implies that it could be better, meaning that there isn't actually a problem, it just isn't as efficient as it might be, so I'd say it's harmless too.

Share this post


Link to post
Share on other sites

Personally I stick to Conscribe, which simply logs all the output that was written to the console. If you have a mod spewing errors to the console, those are real errors that need to be addressed.

Share this post


Link to post
Share on other sites

Yes! Used Conscribe for years, and the current log here us beautiful!

There's just one more mystery item remaining- it's relating to the Vilja mod- and another mod Sensual Walks for Female NPCs uninstalled way back when. By way of introduction to the next message, the latter mod had in its package a file 0FemaleVariableWalk_Vilja.kf:

Quote

[0047617D] [WARNING]   Failed to load animation file 'Characters\_Male\SpecialAnims\0FemaleVariableWalk_Vilja.kf' for Vilja (53000F05)

Couldn't locate any info in the CS regarding the animation in the NPC record, and there's certainly no entry for it in the Idle Animations dialog.

Spoiler

 

ViljaCS.JPG.d0a0c9102ae70875411435c6cf70c31c.JPG


 

The file is not included in the attached bsa either.

Spoiler

Viljabsa.JPG.f2974b4116540acd07587477d3c5580c.JPG

But it is seen as a KFFZ (end of this) in the XEdit NPC record: 

ViljaTesEdit.thumb.JPG.7f7d582c348b217d7d5f53a2cc519402.JPG

Was it added there just in case Sensual Walks might be installed? Cool in any case. How did it get there is more the question, if the field was not edited directly in XEdit?

Now we know why Conscribe is the modder's Message Logger of preference! :P

As a matter of interest, the info regarding animation on the wiki is very old now. To get more of a feel, it may be worth looking at this tutorial, or even the older Russian one some time.

Share this post


Link to post
Share on other sites

You would think that the record is part of the Vilja package.  But Sensual Walks could have added it.  Load up Vilja only from the Vilja package.  ' Walks could have packaged their own custom Vilja esp.  They did not inject the records.  For sure.  Check the ' Walks package for the anim file.

Share this post


Link to post
Share on other sites

From the Sensual Walks description page:

Quote

Sensual Walks Ready Mods
If you have installed Sensual Walks, then female NPCs introduced or changed by these mods will use Sensual Walks animations...

Better Inns and New Home Owners: Sylar0712 (Marcos)
Companion Vilja: Emma and cdcooley
Gweden Brothel: ghastly
Kvatch Rebuilt - A few Female Guards: BG3
Mondstein - Female Companion: Mondstein
TWMP Hammerfell: Haldar1248

One could verify if the same KFFZ record has the same modification in the other mods.

Sensual Walks doesn't host a manual install/uninstall package or any description for uninstall- for the latter no drama as it is easy through Wrye Bash.

Wrye Bash Wizard Uninstallers anyone? These days, a good uninstaller would direct the user on the finish page to modifying the Sensual_Walk_Ready_mod.esp in XEdit, or provide an XEdit script for that purpose.

Share this post


Link to post
Share on other sites

You seem to think there's a problem, but I cannot figure out what it is? If you have Sensual Walks installed, then Vilja will use animations from that mod, if you don't have Sensual Walks installed, then Vilja will not use animations from that mod.

 

You don't need Wrye Bash Wizard Uninstallers, Bash handles the uninstallation automatically, reverting all files to the way they were prior to installing the mod you are uninstalling - unless you did some manual installation/file changing or used another mod manager in which case Wrye Bash cannot be blamed for not putting things back the way it didn't know they were before.

 

Why would uninstalling any mod result in the need to edit an ESP?

Share this post


Link to post
Share on other sites

It is packaged as a BAIN package, no?  Check the structure.  But, I suppose Vorians has a point.  But, Display name is in use, I think Schtearn is trying to clear up those pesky message logger errors-- tidy up his install so it is smooth as ice.

Share this post


Link to post
Share on other sites

Well there's a difference between error messages and alert messages. Errors need looking into and fixing, but alerts are merely pointing out a possible issue. Error-checking typically does not actually know what it's checking, so it has to mention things that it finds odd because the error checker doesn't know whether odd is bad or not. In this case, it's found a reference to a file which does not exist, but that file does not need to exist -but the error checker (Message Logger) doesn't know it does not need to exist. So that one's just an alert and can be ignored.

 

If the author of Message Logger is still active, it would be worth informing them that messages for references in that particular subrecord to files which don't exist can be supressed, or else reworded to mention that if the file doesn't exist it does not matter.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×