Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Axis & Allies 1942 Online is now available in Early Access! Buy it on Steam. The FAQ is available.
New Premium Module: Tyrants of the Moonsea! Read More
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

[MOD] EEex (v0.6.0-alpha)

1202122232426»

Comments

  • ALIENALIEN Member Posts: 924
    edited September 4
    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
    CrevsDaakFlashburn
  • RazielLewachRazielLewach Member Posts: 20
    Thank you! It worked perfectly!

  • Ludwig_IILudwig_II Member Posts: 201
    edited October 10
    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
    OlvynChuruBubb
  • switswit Member, Translator (NDA) Posts: 481
    edited October 10
    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

    BubbCrevsDaak
  • BubbBubb Member Posts: 674
    @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.

    Timbo0o0o0switCrevsDaak
  • ALIENALIEN Member Posts: 924
    Bubb wrote: »
    The level indexing starts at 0, not at 1
    Arrays, arrays everywhere ... :smile:

    switBubbCrevsDaak
  • Ludwig_IILudwig_II Member Posts: 201
    I have compressed the crash logs into a rar file and attached it. Thanks for looking into it @Bubb

    Bubb
  • BubbBubb Member Posts: 674
    @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.

    Ludwig_II
  • switswit Member, Translator (NDA) Posts: 481
    edited October 13
    thanks for the reply, Bubb, I've successfully reimplemented bookspell menu to work exactly the same as in IWD2, without using any of the hardcoded functions or relying on the automatic table updates.
    https://www.dropbox.com/s/q2gvo8jx98b4kh0/Baldr015.png
    btw. with this code spellbook screen is no longer restricted to classes with hardcoded access to cleric/mage spells, so for the purpose of my mod I'm no longer forced to highjack F/M/C class :) (or any other of the vanilla classes)


    I'm wondering if there is a way to detect if "Cast Spell" actionbar menu is currently opened (actionbar icons replaced with spell icons/arrows). I've tried detecting it via buttonArray:GetButtonType(0) == 31 but this is also true for "Special Abilities" and "Use Item" actionbar menus.

    What are the valid arguments for EEex_SetActionbarState? If "state" here means what I'm asking for above than I'd like to request EEex_GetActionbarState function :P


    edit: @Bubb, I think I found a reliable way to detect spellcasting state and when it ends without dedicated function. Here it is in case someone needs it for their mod:
    1. Function call that replaces all buttonArray:OnLButtonPressed(x) lines in actionbar action sections:
    function actionbarLButtonPressed(num)
    	if buttonArray:GetButtonType(num) == 3 then
    		actionbarCastSpell = true
    	elseif actionbarCastSpell and buttonArray:GetButtonType(0) ~= 31 and buttonArray:GetButtonType(0) ~= 43 then
    		actionbarCastSpell = false
    	end
    	buttonArray:OnLButtonPressed(num)
    end
    

    2. global code (should run constantly while in-game, so for example added as a dummy mos lua function code)
    	if actionbarCastSpell and buttonArray:GetButtonType(0) ~= 31 and buttonArray:GetButtonType(0) ~= 43 then
    		actionbarCastSpell = false
    	end
    
    It catches situations like changing the characters via portrait click, exiting the sub-menu via ESC, casting the spell, or clicking somewhere on the gameworld (which also closes the submenu). From what I tested the only thing not covered here is opening the spell menu via keyboard shortcut, but that can be handled with the existing EEex_AddKeyPressedListener() function.

    Post edited by swit on
    DjinnBubbFlashburnleeux
  • BubbBubb Member Posts: 674
    edited 2:22AM
    @swit: The unhardcoded mage book looks great! :)

    Here's the possible values for actionbar state:
    Unique Config | State(s)
        [0]       |  = 1,   -- Mage / Sorcerer
        [1]       |  = 2,   -- Fighter
        [2]       |  = 3,   -- Cleric
        [3]       |  = 4,   -- Thief
        [4]       |  = 5,   -- Bard
        [5]       |  = 6,   -- Paladin
        [6]       |  = 7,   -- Fighter Mage
        [7]       |  = 8,   -- Fighter Cleric
        [8]       |  = 9,   -- Fighter Thief
        [9]       |  = 10,  -- Fighter Mage Thief
        [10]      |  = 11,  -- Druid
        [11]      |  = 12,  -- Ranger
        [12]      |  = 13,  -- Mage Thief
        [13]      |  = 14,  -- Cleric Mage
        [14]      |  = 15,  -- Cleric Thief
        [15]      |  = 16,  -- Fighter Druid
        [16]      |  = 17,  -- Fighter Mage Cleric
        [17]      |  = 18,  -- Cleric Ranger
        [18]      |  = 20,  -- Monk
        [19]      |  = 21,  -- Shaman
        [20]      |  = 101, -- Select Weapon Ability
                  |
        [21]      |  = 102, -- Spells (Select Quick Spell)
                  |    103, -- Spells (Cast)
                  |
        [22]      |  = 104, -- Select Quick Item Ability
                  |    105, -- Use Item
                  |
        [23]      |  = 106, -- Special Abilities    
        [24]      |  = 107, -- Select Quick Formation
        [25]      |  = 108, -- Defunct Select Quick Formation (Not used)
        [26]      |  = 109, -- Group Selected
        [27]      |  = 110, -- Unknown (No buttons defined; not used?)
        [28]      |  = 111, -- Internal List (Opcode #214)
        [29]      |  = 112, -- Controlled (Class doesn't have a dedicated state)
                  |
        [30]      |  = 113, -- Cleric / Mage Spells (Cast)
                  |    114, -- Cleric / Mage Spells (Select Quick Spell)
                  |
    

    "Unique Config" refers to the button types that eventually get set from the state(s) on the right. In a few instances the engine reuses the same button configuration for multiple purposes. You can see this in the Spells config; one state is for setting a quick button, while another is actually for casting.

    Actionbar listeners now pass the state as the second param, like this:
    function B3DebugPrintActionbar(config, state)
        Infinity_DisplayString("config: "..config..", state: "..state)
    end
    EEex_AddActionbarListener(B3DebugPrintActionbar)
    

    Edit: You can catch the "Cast Spell" actionbar state like this:
    function B3DetectCastSpell(config, state)
        if state == 103 then
            -- Cast Spell opened, no matter the source
        end
    end
    EEex_AddActionbarListener(B3DetectCastSpell)
    

    And also, EEex_GetActionbarState() is now in master - if you still need it ;)

    fearlessleeuxswitALIEN
  • switswit Member, Translator (NDA) Posts: 481
    edited 9:20AM
    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 at
Sign In or Register to comment.