Skip to content

[MOD] EEex (v0.10.2-alpha)

1232426282948

Comments

  • ALIENALIEN Member Posts: 1,271
    edited September 2019
    I agree with k4thos, EEex should not contain UI.MENU changes. Those will be overwritten by any UI mod which will be installed after EEex .
    Post edited by ALIEN on
  • RazielLewachRazielLewach Member Posts: 20
    Thank you! It worked perfectly!
  • Ludwig_IILudwig_II Member Posts: 379
    edited October 2019
    Hey guys, I installed EEex for the first time on my BGEE to be able to use Use Poison component of OlvynChuru's Epic Thieving mod. However, the game started crashing to desktop occasionally. I checked EEex log, and these lines seem to be looped over and over many times:
    INFO: [string "function variant06ADD8B8 () return characters..."]:1: attempt to index field 'second' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    function variant06ADD8B8 () return characters[currentID].classlevel.second.xp .. ' / ' .. characters[currentID].classlevel.second.nextLvlXp .. ' XP' end:1: in function <[string "function variant06ADD8B8 () return characters..."]:1>
    INFO: [string "function variant06ADD998 () return characters..."]:1: attempt to index field 'third' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    function variant06ADD998 () return characters[currentID].classlevel.third.xp .. ' / ' .. characters[currentID].classlevel.third.nextLvlXp .. ' XP' end:1: in function <[string "function variant06ADD998 () return characters..."]:1>
    INFO: [string "menu"]:610: attempt to index field 'second' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:610: in function 'getClassString2'
    function variant06ADE2B8 () return getClassString2() .. ' - ' .. Infinity_FetchString(7192) .. ' ' .. getLevelString2() .. ': ' end:1: in function <[string "function variant06ADE2B8 () return getClassSt..."]:1>
    INFO: [string "menu"]:616: attempt to index field 'third' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:616: in function 'getClassString3'
    function variant06ADE818 () return getClassString3() .. ' - ' .. Infinity_FetchString(7192) .. ' ' .. getLevelString3() .. ': ' end:1: in function <[string "function variant06ADE818 () return getClassSt..."]:1>

    My Weidu log is attached, in case it is relevant:
    // Log of Currently Installed WeiDU Mods
    // The top of the file is the 'oldest' mod
    // ~TP2_File~ #language_number #component_number // [Subcomponent Name -> ] Component Name [ : Version]
    ~DLCMERGER/SETUP-DLCMERGER.TP2~ #0 #1 // Merge DLC into game -> "Siege of Dragonspear" DLC: 1.2
    ~DRAGONSPEAR_UI++/DRAGONSPEAR_UI++.TP2~ #0 #1 // Install SoD GUI Overhaul Core Component: v2.41
    ~DRAGONSPEAR_UI++/DRAGONSPEAR_UI++.TP2~ #0 #2 // Add Transparent Tooltip Background: v2.41
    ~DRAGONSPEAR_UI++/DRAGONSPEAR_UI++.TP2~ #0 #3 // Update several strings in Dialog.tlk: v2.41
    ~DRAGONSPEAR_UI++/DRAGONSPEAR_UI++.TP2~ #0 #9 // Select Number of Quicksave Slots -> 6: v2.41
    ~DRAGONSPEAR_UI++/DRAGONSPEAR_UI++.TP2~ #0 #10 // Update portrait Picker: v2.41
    ~HIDDENGAMEPLAYOPTIONS/SETUP-HIDDENGAMEPLAYOPTIONS.TP2~ #0 #0 // Install Hidden Gameplay Options -> All available options: 2.2
    ~AC_QUEST/AC_QUEST.TP2~ #1 #0 // Ascalon's Questpack: 2.05
    ~BG1NPC/BG1NPC.TP2~ #0 #0 // The BG1 NPC Project: Required Modifications: v24.0
    ~BG1NPC/BG1NPC.TP2~ #0 #10 // The BG1 NPC Project: Banters, Quests, and Interjections: v24.0
    ~BG1NPC/BG1NPC.TP2~ #0 #120 // The BG1 NPC Project: Bardic Reputation Adjustment: v24.0
    ~BG1NPC/BG1NPC.TP2~ #0 #130 // The BG1 NPC Project: Sarevok's Diary Adjustments -> SixofSpades Extended Sarevok's Diary: v24.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #0 // Ice Island Level Two Restoration: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #11 // Scar and the Sashenstar's Daughter: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #12 // Quoningar, the Cleric: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #13 // Shilo Chen and the Ogre-Magi: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #14 // Edie, the Merchant League Applicant: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #19 // Minor Dialogue Restorations: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #21 // Store, Tavern and Inn Fixes and Restorations: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #22 // Item Corrections and Restorations: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #29 // Duke Eltan in the Harbor Master's Building: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #30 // Nim Furlwing Encounter: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #32 // Svlast, the Fallen Paladin Encounter: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #33 // Mal-Kalen, the Ulcaster Ghost: v16.0
    ~BG1UB/SETUP-BG1UB.TP2~ #0 #34 // Chapter 6 Dialogue Restorations: v16.0
    ~BGEENPCPACK/SETUP-BGEENPCPACK.TP2~ #0 #0 // BGEE NPC Pack for BG:EE
    ~MSFM/MSFM.TP2~ #0 #0 // Add Wizard's Staff -> Add Wizard's Staff with 7 old color sets: v1.56
    ~MSFM/MSFM.TP2~ #0 #10 // Add circlets: v1.56
    ~MSFM/MSFM.TP2~ #0 #11 // Add Circlet of Revelation: v1.56
    ~RR/SETUP-RR.TP2~ #0 #1 // Thief kit revisions: v4.92
    ~RR/SETUP-RR.TP2~ #0 #6 // Proper spell progression for Bards: v4.92
    ~RR/SETUP-RR.TP2~ #0 #7 // Additional equipment for Thieves and Bards: v4.92
    ~RR/SETUP-RR.TP2~ #0 #999 // BG2-style icons for RR content: v4.92
    ~RELIEVEWIZARDSLAYER/RELIEVEWIZARDSLAYER.TP2~ #0 #0 // Relieve Wizard Slayer: 1.6
    ~PALEMASTER/SETUP-PALEMASTER.TP2~ #0 #0 // Pale Master Kit for BG:EE, BG2:EE and IWD:EE: v1.4.3
    ~PALEMASTER/SETUP-PALEMASTER.TP2~ #0 #2 // Evermemory Fix for BG:EE: v1.4.3
    ~LOST DRUID KIT/SETUP-LOST DRUID KIT.TP2~ #0 #0 // Install Lost Druid Kit for BG2:EE?
    ~PPE/SETUP-PPE.TP2~ #0 #0 // Portraits Portraits Everywhere (PPE) - core component: 1.01
    ~PPE/SETUP-PPE.TP2~ #0 #100 // Category Portraits (Recommended) -> Sequenced: 1.01
    ~PPE/SETUP-PPE.TP2~ #0 #10 // Isandir's CHARNAME Portraits: 1.01
    ~S9SOUNDSETSVOL1/SETUP-S9SOUNDSETSVOL1.TP2~ #0 #110 // Ajantis Ilvarstarr: 1.1
    ~S9SOUNDSETSVOL1/SETUP-S9SOUNDSETSVOL1.TP2~ #0 #140 // Coran: 1.1
    ~S9SOUNDSETSVOL1/SETUP-S9SOUNDSETSVOL1.TP2~ #0 #190 // Garrick: 1.1
    ~S9SOUNDSETSVOL1/SETUP-S9SOUNDSETSVOL1.TP2~ #0 #300 // Skie Silvershield: 1.1
    ~S9SOUNDSETSVOL1/SETUP-S9SOUNDSETSVOL1.TP2~ #0 #340 // Xzar: 1.1
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #100 // FThief1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #110 // FThief2: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #120 // F_Barb: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #130 // F_Bard: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #140 // F_Drow: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #150 // F_Fgt01: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #160 // F_Fgt02: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #170 // F_Fgt03: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #180 // F_Fgt04: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #190 // F_Fgt05: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #200 // F_HOrc1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #210 // F_HoW1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #220 // F_HoW2: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #230 // F_HoW3: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #240 // F_Mage1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #250 // F_Mage2: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #260 // F_Mage3: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #270 // F_Mage4: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #280 // F_Mage5: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #290 // F_Monk1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #300 // F_Sorc1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #310 // MThief1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #320 // MThief2: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #330 // M_Barb: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #340 // M_Bard: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #350 // M_Drow: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #360 // M_Fgt01: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #370 // M_Fgt02: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #380 // M_Fgt03: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #390 // M_Fgt04: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #400 // M_Fgt05: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #410 // M_HOrc1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #420 // M_HoW1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #430 // M_HoW2: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #440 // M_HoW3: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #450 // M_Mage1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #460 // M_Mage2: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #470 // M_Mage3: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #480 // M_Mage4: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #490 // M_Mage5: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #500 // M_Monk1: 1.01
    ~S9SOUNDSETSVOL2/SETUP-S9SOUNDSETSVOL2.TP2~ #0 #510 // M_Sorc1: 1.01
    ~BGEECLASSICMOVIES/SETUP-BGEECLASSICMOVIES.TP2~ #0 #0 // Restore BG1 movies to BG:EE -> Replace all movies: v2.2.0
    ~BGEECLASSICMOVIES/SETUP-BGEECLASSICMOVIES.TP2~ #0 #3 // Restore BG1 Chapter and Dream Screens: v2.2.0
    ~35WEAPONSTYLE/SETUP-35WEAPONSTYLE.TP2~ #0 #0 // (3.5 Edition) Weapon Style Rebalance: beta
    ~35WEAPONSTYLE/SETUP-35WEAPONSTYLE.TP2~ #0 #1 // Expanded Weapon Styles for non-Warriors: beta
    ~35WEAPONSTYLE/SETUP-35WEAPONSTYLE.TP2~ #0 #2 // Quarterstaves Cannot Backstab: beta
    ~35WEAPONSTYLE/SETUP-35WEAPONSTYLE.TP2~ #0 #3 // Rangers Have No Offhand to-hit Penalty: beta
    ~35THAC0/SETUP-35THAC0.TP2~ #0 #0 // 3.5 Thac0
    ~PNP_WIS_BONUS/PNP_WIS_BONUS.TP2~ #0 #0 // AD&D PnP WIS bonus
    ~BIGGER_BARD_SONG/SETUP-BIGGER_BARD_SONG.TP2~ #0 #0 // Bigger Bard Songs
    ~EEEX/EEEX.TP2~ #0 #0 // EEex: 0.6.0
    ~EPICTHIEVING/EPICTHIEVING.TP2~ #0 #400 // Epic Detect Illusions
    ~EPICTHIEVING/EPICTHIEVING.TP2~ #0 #600 // New Skill: Use Poison
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #60 // Weapon Animation Tweaks: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #110 // Icon Improvements: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #130 // Force All Dialogue to Pause Game: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #140 // Fix Boo's Squeak: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #160 // Make Magic Shields Glow (plainab/grogerson): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #181 // Unique Containers -> Unique icons only: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #200 // Remove Blur Effect from Items, e.g. Cloack of Displacement: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2010 // Separate Resist Fire/Cold Icon into Separate Icons (Angel): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1010 // More Interjections: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1036 // Make Cloakwood Areas Available Before Completing the Bandit Camp -> All of Cloakwood Except the Mines: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1060 // Breakable Iron Nonmagical Shields, Helms, and Armor: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1075 // Send BioWare NPCs to an Inn (DavidW/Zed Nocear): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1080 // Add Bags of Holding: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1090 // Exotic Item Pack: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1100 // Reveal City Maps When Entering Area: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2090 // Change Experience Point Cap -> Remove Experience Cap: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2152 // Wear Multiple Protection Items -> Allow Armor Plus One Protection Item (Angel): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2160 // Alter Weapon Proficiency System -> Rebalanced Weapon Proficiencies: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2339 // Remove Summoning Cap for Regular Summons: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2371 // Alter Dual-class Restrictions -> Allow non-humans to dual-class: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2390 // Paladins Use Icewind Dale-Heart of Winter Spell Tables (grogerson): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2400 // Rangers Use Icewind Dale-Heart of Winter Spell Tables (grogerson): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2999 // Max HP at Level One: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3010 // Maximum HP for NPCs (the bigg) -> For All Creatures in Game: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3060 // Remove "You Must Gather Your Party..." Sound (Weimer): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3083 // Increase Ammo Stack Size -> Stacks of 120: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3125 // Neutral Characters Make Happy Comments at Mid-Range Reputation: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3130 // No Traps or Locks (Weimer): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3196 // Alter Hostile Rest Spawns -> Increase frequency by 50%: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3200 // Sellable Items (Icelus): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3230 // Taerom Makes Additional Ankheg Armor (Icendoan/grogerson): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3280 // Give Every Class/Kit Four Weapon Slots: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3300 // Death Cam: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3310 // Start New Games with Party AI Turned Off: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3330 // Make party members less likely to die irreversibly: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4000 // Adjust Evil joinable NPC reaction rolls: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4025 // Allow NPC pairs to separate: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4031 // Consistent Stats: Edwin -> Use BG2 Values: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4041 // Consistent Stats: Jaheira -> Use BG2 Values: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4061 // Consistent Stats: Minsc -> Use BG2 Values: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4071 // Consistent Stats: Viconia -> Use BG2 Values: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4090 // Make Montaron an Assassin (Andyr): v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4170 // Ensure Shar-Teel doesn't die in the original challenge: v9
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #4140 // Don't Auto-Assign Advanced AI Scripting to Party: v9
    ~EET_TWEAKS/EET_TWEAKS.TP2~ #0 #2052 // XP for killing creatures -> Decrease to 50%: 1.12
    ~EET_TWEAKS/EET_TWEAKS.TP2~ #0 #4050 // Books/Scrolls categorization: 1.12
    ~EET_TWEAKS/EET_TWEAKS.TP2~ #0 #4060 // Wand Case: 1.12
    ~EET_TWEAKS/EET_TWEAKS.TP2~ #0 #4070 // Key Ring: 1.12
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #1500 // Include arcane spells from Icewind Dale: Enhanced Edition: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #1510 // Include divine spells from Icewind Dale: Enhanced Edition: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #3010 // Replace +1 arrows and other projectiles with nonmagical "fine" ones: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #3022 // Replace many +1 magic weapons with nonmagical "fine" ones -> Fine weapons are affected by the iron crisis: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #3041 // Reduce the number of Arrows of Dispelling in stores -> Stores sell a maximum of 5 Arrows of Dispelling: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #3505 // Wider selection of random scrolls: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #3540 // Reduce the power of Inquisitors' Dispel Magic -> Inquisitors dispel at 1.5 x their level (not twice their level): v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #3550 // Increase the power of Cure Wounds and Cause Wounds spells to the level found in 3rd Edition D&D -> Spells heal or inflict a random amount of damage (1d8 per level of the spell, plus 1 point per caster level, to a maximum of 5 points per spell level): v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #3580 // Restoration and Lesser Restoration spells heal ability-score damage: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #4000 // Faster Bears: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #4051 // Decrease the rate at which reputation improves -> Reputation increases at about 1/2 the normal rate: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #4115 // Thieves assign skill points in multiples of five: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #4145 // Skip the Candlekeep tutorial sections -> Remove the tutorial NPCs from Candlekeep: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #4250 // Make spell sequencers and contingencies into innate abilities: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #5000 // Ease-of-use party AI: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #5900 // Initialise AI components (required for all tactical and AI components): v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6000 // Smarter general AI: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6010 // Better calls for help: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6030 // Smarter Mages: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6040 // Smarter Priests: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6200 // Improved Spiders: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6300 // Smarter sirines and dryads: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6310 // Slightly smarter carrion crawlers: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6320 // Smarter basilisks: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7000 // Improved doppelgangers: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7010 // Tougher Black Talons and Iron Throne guards: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7020 // Improved deployment for parties of assassins: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7030 // Improved kobolds: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7040 // Relocated bounty hunters: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7050 // Improved Ulcaster: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7060 // Improved Balduran's Isle: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7070 // Improved Durlag's Tower: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7090 // Improved Cloakwood Druids: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7100 // Improved Bassilus: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7110 // Improved Drasus party: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7130 // Improved Red Wizards: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7140 // Improved Undercity assassins: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7200 // Tougher chapter-two end battle: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7210 // Tougher chapter-three end battle: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7220 // Tougher chapter-four end battle: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7230 // Tougher chapter-five end battle: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7250 // Improved final battle: v32.6
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7900 // Improved minor encounters: v32.6
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #101 // Prevent skeletal and incorporeal undead from being affected by Illithids' Devour Brain attack: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #105 // PnP Dimension Door: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #120 // Restore innate disease immunity to Paladins: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #125 // Rangers' Animal Empathy improves with experience: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #201 // Instant casting for warrior innates: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #203 // Make druidic shapeshifting uninterruptable: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #211 // Make Death Ward protect against Vorpal Hits: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #213 // Expanded saving throw bonus tables for Dwarves, Gnomes and Halflings: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #220 // Simple Thief script: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #230 // Simple Bard script: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #239 // Simple Cleric/Paladin script: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #300 // Use Icewind Dale's Dimension Door animation -> Fast animation speed (matches IWD): v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #310 // Distinctive creature coloring: v4.53
    ~ATWEAKS/SETUP-ATWEAKS.TP2~ #0 #315 // Distinctive creature soundsets: v4.53
    ~JIMFIX/SETUP-JIMFIX.TP2~ #0 #201 // Add spell school notifications to the combat log -> All spells with a casting time greater than 1: v2.5
    ~JIMFIX/SETUP-JIMFIX.TP2~ #0 #300 // Add expiration notifications for buffs: v2.5
    ~JIMFIX/SETUP-JIMFIX.TP2~ #0 #600 // Add expiration notifications for item buffs: v2.5
    ~JIMFIX/SETUP-JIMFIX.TP2~ #0 #500 // Reveal all hidden doors: v2.5
    ~JIMFIX/SETUP-JIMFIX.TP2~ #0 #700 // Allow Spell Shield to block Wish Breach and Mordenkainen's Disjunction: v2.5

    It might not have been the best idea, but I used the latest state in master branch for EEex mod, I didn't use the release version.

    Does anyone have any ideas why this is happening?

    Also, does installing EEex earlier or later in the install order change anything?

    Thanks


    Edit: I also see these lines looped over a lot too inside EEex.log:
    INFO: [string "menu"]:138: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:138: in function 'getItemSlot1'
    function valid066EFF68 () return getItemSlot1(6).valid end:1: in function <[string "function valid066EFF68 () return getItemSlot1..."]:1>
    INFO: [string "menu"]:142: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:142: in function 'getItemSlot2'
    function valid066F05C8 () return getItemSlot2(6).valid end:1: in function <[string "function valid066F05C8 () return getItemSlot2..."]:1>
    INFO: [string "menu"]:146: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:146: in function 'getItemSlot3'
    function valid066F09A8 () return getItemSlot3(6).valid end:1: in function <[string "function valid066F09A8 () return getItemSlot3..."]:1>
    INFO: [string "menu"]:150: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:150: in function 'getItemSlot4'
    function valid066F1368 () return getItemSlot4(6).valid end:1: in function <[string "function valid066F1368 () return getItemSlot4..."]:1>
    INFO: [string "menu"]:154: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:154: in function 'getItemSlot5'
    function valid066F1BA8 () return getItemSlot5(6).valid end:1: in function <[string "function valid066F1BA8 () return getItemSlot5..."]:1>
    INFO: [string "menu"]:158: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:158: in function 'getItemSlot6'
    function valid066F1F48 () return getItemSlot6(6).valid end:1: in function <[string "function valid066F1F48 () return getItemSlot6..."]:1>
    INFO: [string "menu"]:162: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:162: in function 'getItemSlot7'
    function valid066F2788 () return getItemSlot7(6).valid end:1: in function <[string "function valid066F2788 () return getItemSlot7..."]:1>
    INFO: [string "menu"]:166: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:166: in function 'getItemSlot8'
    function valid066F2DC8 () return getItemSlot8(6).valid end:1: in function <[string "function valid066F2DC8 () return getItemSlot8..."]:1>
    INFO: [string "menu"]:170: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:170: in function 'getItemSlot9'
    function valid066E3008 () return getItemSlot9(6).valid end:1: in function <[string "function valid066E3008 () return getItemSlot9..."]:1>
    INFO: [string "menu"]:174: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:174: in function 'getItemSlot10'
    function valid066E3A48 () return getItemSlot10(6).valid end:1: in function <[string "function valid066E3A48 () return getItemSlot1..."]:1>
    INFO: [string "menu"]:178: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:178: in function 'getItemSlot11'
    function valid066E43A8 () return getItemSlot11(6).valid end:1: in function <[string "function valid066E43A8 () return getItemSlot1..."]:1>
    INFO: [string "menu"]:182: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:182: in function 'getItemSlot12'
    function valid066E4608 () return getItemSlot12(6).valid end:1: in function <[string "function valid066E4608 () return getItemSlot1..."]:1>
    INFO: [string "menu"]:186: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:186: in function 'getItemSlot13'
    function valid066E4CE8 () return getItemSlot13(6).valid end:1: in function <[string "function valid066E4CE8 () return getItemSlot1..."]:1>
    INFO: [string "menu"]:190: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:190: in function 'getItemSlot14'
    function valid066E5788 () return getItemSlot14(6).valid end:1: in function <[string "function valid066E5788 () return getItemSlot1..."]:1>
    INFO: [string "menu"]:194: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:194: in function 'getItemSlot15'
    function valid066E59A8 () return getItemSlot15(6).valid end:1: in function <[string "function valid066E59A8 () return getItemSlot1..."]:1>
    INFO: [string "menu"]:198: attempt to index field '?' (a nil value)
    stack traceback:
    return debug.traceback():1: in main chunk
    =[C]: in function '__index'
    menu:198: in function 'getItemSlot16'
    function valid066E63A8 () return getItemSlot16(6).valid end:1: in function <[string "function valid066E63A8 () return getItemSlot1..."]:1>
    Post edited by Ludwig_II on
  • switswit Member, Translator (NDA) Posts: 495
    edited October 2019
    Tired of a mixture of hardcoded and unhardcoded priest/mage spellbooks functionality I've decided to reimplement spellbook screen from scratch with EEex. The problem is that EEex_MemorizeWizardSpell, EEex_MemorizeClericSpell, EEex_UnmemorizeWizardSpell, EEex_UnmemorizeClericSpell functions don't seem to work (or maybe I just don't know how to use them properly)

    Here is a test code (tested on Cleric with free memorization slots and the SPPR104 spell available within his Known spells)
    	EEex_MemorizeClericSpell(id, 1, 'SPPR104')
    	local t = EEex_GetMemorizedClericSpells(id)
    	local found = false
    	for k, v in ipairs(t[1]) do
    		if v.resref == 'SPPR104' then
    			EEex_MessageBox('spell memorization succesfull')
    			found = true
    			break
    		end
    	end
    	if not found then
    		EEex_MessageBox('spell memorization failed')
    	end
    
    Tested from within UI and by running the code via invoke lua opcode - in both cases memorization failed. I've also checked for SPPR104 presence with NI and the spell definatetly has not been memorized. Both EEex_GetMemorizedClericSpells and EEex_GetMemorizedWizardSpells work fine.

    edit: typo fix in the test code
  • BubbBubb Member Posts: 1,005
    @Ludwig_II: The errors spamming in your log are from a UI mod. The only way this could crash the game outright is if the UI mod uses EEex, and is attempting to call an EEex function after an error has occurred on their end. In any case, when the game crashed it should have generated a crash dmp - could you please send that my way?



    @swit: The level indexing starts at 0, not at 1 like you would think, (since it wraps an internal function where it uses the level to do an array access). If the provided level doesn't properly match the array-accessed spell level the internal function returns without doing anything, as what you are seeing in your test.

    To memorize 1st level spells, level should be 0
    To memorize 2nd level spells, level should be 1
    etc.
  • ALIENALIEN Member Posts: 1,271
    Bubb wrote: »
    The level indexing starts at 0, not at 1
    Arrays, arrays everywhere ... :smile:
  • Ludwig_IILudwig_II Member Posts: 379
    I have compressed the crash logs into a rar file and attached it. Thanks for looking into it @Bubb
  • BubbBubb Member Posts: 1,005
    @Ludwig_II: Thanks, it's an EEex_GetActorStat() call that's not being supplied a valid sprite id. I'll look into where the call is coming from and see if i can't get it straightened out.
  • switswit Member, Translator (NDA) Posts: 495
    edited October 2019
    sweet, my proposed implementation couldn't differentiate between "Cast Spell" submenu and "Internal List" (Opcode #214), so in the end it wouldn't work reliably for the purpose I need it for (displaying and triggering "Cast Spell" icons without relying on the hardcoded implementation, or need to pause the game / requiring additional click to close the submenu). EEex_AddActionbarListener / EEex_GetActionbarState solves this issue. Thank you very much for the quick addition and documentation.
    Post edited by swit on
  • DjinnDjinn Member Posts: 76
    @swit Hey, sorry if it's way too early to ask anything about the IWD2 UI for the EEs thing you're working on, but have you gotten anywhere with the inventory screen yet?
  • Ludwig_IILudwig_II Member Posts: 379
    Bubb wrote: »
    @Ludwig_II: Interestingly enough, I started encountering random crashes as you were describing. I believe I've fixed the cause - try updating your EEex to the latest master version and see if the crashes persist.

    (And for the source of the crashes, turns out about 1 in every 7,500 calls to EEex_WriteLString() could crash the game.)

    Based on my limited testing, it looks like it's indeed fixed. I haven't encountered any more crashes so far. Thank you.

    However, I've encountered another issue. Whenever I click on a weapon in my quick slot items, the Thac0 changes. The same weapon shows different Thac0 values each time I click on it. To demonstrate, I'm attaching two screenshots showing the same weapon equipped:

    p9eg7jy76shw.png
    c59g7h3oem6s.png

    I'm also attaching my weidu.log and a stripped version of my EEex.log. I've only kept potential points of interest in the EEex.log file, where it was showing UI string not found messages or nil value error messages. Nil value error messages for getItemSlotxx functions are looped over thousands of times, that's why I removed most of those duplicate messages. Even if I open the inventory screen once and click on a quick slot weapon 1 time, these messages are written a thousand times to the logs.
  • BubbBubb Member Posts: 1,005
    @Ludwig_II: Ok, I've pushed a patch for that issue to master. Try updating EEex and see if the bug persists.
  • Ludwig_IILudwig_II Member Posts: 379
    After seeing your message, I tested it further and just as you said, once I unpause the game, I realized that it modifies the Thac0 calculation back to its correct value. So I just came back here to respond to you with that it's no big deal, and noticed that you already fixed it!

    I downloaded the new version and yeah it's working perfectly now. Calculates Thac0 correctly every time. Amazing work Bubb, and thanks a lot again for the very quick fix.

    The only issue I have left now is that my dragon disciple is begging me to take leave from work and spend time with him :D
  • OlvynChuruOlvynChuru Member Posts: 3,079
    @Shin Yes, those are possible! Which ones of those are you planning on using?
  • ShinShin Member Posts: 2,344
    @OlvynChuru Great news! Ideally both - the games seem to need a bit of variety in the ways you can mitigate damage, but the first one if I had to choose.
  • OlvynChuruOlvynChuru Member Posts: 3,079
    @Shin Okay, sure! I'll try to implement those today.
  • ShinShin Member Posts: 2,344
    @OlvynChuru thanks! Looks great.
  • seraglioseraglio Member Posts: 122
    Hi. Cool project. Is there documentation yet? Didn't see anything in the download or on the github page.
  • OlvynChuruOlvynChuru Member Posts: 3,079
    @seraglio

    @Grammarsalad had been making documentation for EEex here. It's slightly outdated, but it still includes most of the functions of EEex.
Sign In or Register to comment.