Skip to content

[MOD] EEex (v0.10.2-alpha)

1444546474850»

Comments

  • TenhkuxTenhkux Member Posts: 3
    edited September 11
    @Bubb , first of all, thank you very much for this amazing development!! To give some context, I built a mod (for myself, several years ago) that reworks the entire magic system thanks to it (something I had always wanted to do).

    Now, I am trying to migrate it from 2.5. to 2.6 (I know, but I had not had the time till now) and have some ideas and questions.
    1. Ideas:
      • Could we add back the casting mode "0x6" as we had in the 2.5 version and was used by the CheatMode in the Spells Menu Extended mod?
      • Could a hook for hide in shadows (similar to the one for thieving skills) be added so more classes/kits can hide in plain sight?
      • Would it be possible to increase the max visual range? (op262 won't go beyond a limit)
      • Could we have a function or something that let's us clear the fog of war (like farsight but we have a radius parameter so we can clear bigger areas if we want) and that can be cast on the map (not the menu map)?
      • Is there a way to cast spell on the minimap directly (again, like farsight)?
      • Is there a way to make summoned creatures go through exits/doors? Right now, I limit the number of creatures that can do that and use a hacky way with make global override, it would be great if we could either:
        • Give them the capability without make them globals
        • Have a way to delete globals so we can attach an effect on death that deletes the global
        • Allow backstab (or sneak attack) with ranged weapons
    2. Questions (so far):
      • In my mod, I use functions like (the three versions: wizard, cleric and innate):
        EEex_LearnInnateSpell, EEex_UnlearnInnateSpell, EEex_GetMaximumMemorizableInnateSpells, EEex_MemorizeInnateSpell, EEex_UnmemorizeInnateSpell and EEex_ProcessInnateMemorization
        
        I understand that
        EEex_ProcessInnateMemorization
        
        could be replaced with
        (EEex_Utility_IterateCPtrList(CGameSprite.m_memorizedSpellsInnate function(spell)...
        
        but I find difficult to replace the others (I know I am supposed to use CGameSprite:Function, but I do not know what to use as arguments to that method. How could I rebuild them?
      • I have a spell that unlocks doors and another that disarms traps, I am worried especially about the one that disarms traps (I use a snippet you provided):
        function TKWI303(effectData, object)
        	
        	local sourceID = EEex_ReadDword(effectData + 0x10C)
        	local objectID = EEex_GetActorIDShare(object)
        
            local isSprite = EEex_IsSprite(objectID, true)
            local isActive = EEex_IsTrapActive(objectID)
            local isDetectable = (not EEex_IsTrapFlaggedNondetectable(objectID)) and EEex_GetTrapDetectDifficulty(objectID) ~= 100
            local isDetected = EEex_IsTrapDetected(objectID)
        	local disarmDifficulty = EEex_GetTrapDisarmDifficulty(objectID)
            local isDisarmable = disarmDifficulty ~= 100
        	local parameter1 = EEex_ReadDword(effectData + 0x18)
        
            if isSprite then
        		TK_DisplayString(sourceID, "TK_STR", "Tis' but a scratch!", tk_feedback_strref)
                return
            end
        
            if not isActive then
        		TK_DisplayString(sourceID, "TK_STR", "Object not trapped", tk_feedback_strref)
                return
            end
        
            if not isDetectable then
        		TK_DisplayString(sourceID, "TK_STR", "Trap warded against scrying", tk_feedback_strref)
                return
            end
        
            if not isDetected then
        		TK_DisplayString(sourceID, "TK_STR", "Trap concealed", tk_feedback_strref)
                return
            end
        
            if not isDisarmable then
        		TK_DisplayString(sourceID, "TK_STR", "Trap warded against spells", tk_feedback_strref)
                return
            end
        
        	if parameter1 >= disarmDifficulty then
        		EEex_DisarmTrap(objectID)
        		TK_DisplayString(sourceID, "TK_STR", "Your spell successfully disarmed the trap!", tk_feedback_strref)
        	end
        end
        
        Most of the functions I use here, can be replicated using sprite methods or properties (e.g., share.m_objectType, share.m_trapActivated). What about EEex_DisarmTrap? It again makes use of EEex_Call and EEex_Label and I am not sure how to replicate it.

    It would be great if you could help me with this

    Thank you again, I truly think this is awesome!
    Post edited by Tenhkux on
  • TenhkuxTenhkux Member Posts: 3
    edited September 10
    Sorry, I duplicated the post somehow by mistake and don't know how to delete it
    Post edited by Tenhkux on
  • selnikselnik Member Posts: 6
    A couple of questions about getting EEex running with BB2EE on Linux:
    • What is the "appropriate option" in InfinityLoader.ini to toggle for Linux?
    • Is EEex compatible with the Linux version of BG2EE (GOG specifically), with just EEex running in Wine/Proton, or do I need to use the Windows version of BG2EE running in Wine?

    Thanks
  • selnikselnik Member Posts: 6
    edited September 23
    [duplicate post please delete]
  • PeccaPecca Member Posts: 2,272
    HI @Bubb ,please check a pull request for Infinity UI++ modern hud compatibility. Thanks.
  • Kensei_xXxKensei_xXx Member Posts: 322
    Hey guys, apologies if this has been asked before, but when does EEex come in an EET setup? Right at the start?
  • TenhkuxTenhkux Member Posts: 3
    Kensei_xXx wrote: »
    Hey guys, apologies if this has been asked before, but when does EEex come in an EET setup? Right at the start?

    I usually install it right after EET (first mod after EET)
  • ClawsTheOneClawsTheOne Member Posts: 12
    @Bubb , can you please tell us when you're planning to release the next version of the EEex (master) on github? I'm waiting for the infinityUI ++ compatibility and I see you already implemented it in the devel branch. Thank you!
  • morpheus562morpheus562 Member Posts: 629
    Is there a way for EEex to update/fix how Spell Shield works? Currently after being hit by any of the spell removals it can take a few seconds to be removed. As such, it can block multiple ruby rays, etc. when it should only block one and be removed. Any chance to get this updated so it drops off faster after absorbing one dispel?
  • UlkeshUlkesh Member Posts: 312
    I want to report the following. With EEx installed, Siege of dragonspear stutters a lot.
    I've installed Luajit and the stuttering is improved, but it's actually insane how bad the game plays.

    And I don't even have all these mods installed to justify such stuttering. How can I help you detect what's the issue?
  • TrouveurTrouveur Member Posts: 1,012
    Ulkesh wrote: »
    I want to report the following. With EEx installed, Siege of dragonspear stutters a lot.
    I've installed Luajit and the stuttering is improved, but it's actually insane how bad the game plays.

    And I don't even have all these mods installed to justify such stuttering. How can I help you detect what's the issue?
    Did you also install Tweaks Anthology NWN feats component ?
  • UlkeshUlkesh Member Posts: 312
    No, that's my modlist:
    // 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/DLCMERGER.TP2~ #0 #1 // Merge DLC into game -> Merge "Siege of Dragonspear" DLC: 1.3
    ~EEFIXPACK/SETUP-EEFIXPACK.TP2~ #0 #0 // Core Fixes: Alpha 3
    ~EEEX/EEEX.TP2~ #0 #0 // EEex: v0.11.0-alpha
    ~EEEX/EEEX.TP2~ #0 #3 // Enable empty container module - Highlight empty containers in gray instead of cyan: v0.11.0-alpha
    ~BUBB_REVERT_PATHFINDING/BUBB_REVERT_PATHFINDING.TP2~ #0 #0 // Bubb's v2.6.6.0+ Pathfinding Revert: 1.1
    ~BUBB_SPELL_MENU_EXTENDED/BUBB_SPELL_MENU_EXTENDED.TP2~ #0 #0 // Bubb's Spell Menu Extended: v5.1
    ~BGEECLASSICMOVIES/BGEECLASSICMOVIES.TP2~ #0 #0 // Restore BG1 movies to BG:EE -> Replace all movies: v2.3.0
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #110 // Icon Improvements: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #160 // Make Magic Shields Glow [plainab/grogerson]: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #170 // Unique Icons [Lava] -> Only replace icons that aren't already unique: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3151 // Remove Annoying Visual Effects from Equipped Items -> Remove all of the above: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2010 // Separate Resist Fire/Cold Icon into Separate Icons [Angel]: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #240 // Outline White Spell Icons for Accessibility -> Add Black Outline: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #260 // Hide Visual Effects from Invisible Enemies [Luke]: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1010 // More Interjections: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1080 // Add Bags of Holding: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #1257 // Move NPCs to Convenient Locations: Alora, Eldoth, Quayle, Shar-Teel, Tiax, and Viconia: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2090 // Change Experience Point Cap -> Remove experience cap: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2140 // Expanded Dual-Class Options: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2210 // Change Grandmastery Bonuses -> True grandmastery [Baldurdash]: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2320 // Trap Cap Removal [Ardanis/GeN1e]: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2330 // Remove Delay for Magical Traps [Ardanis/GeN1e]: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2339 // Remove Summoning Cap for Regular Summons: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2410 // Druids Use 3E Alignment Restrictions: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2420 // Loosen Equipment Restrictions for Cleric Multi- and Dual-Classes: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #2430 // Change Equipment Restrictions for Druid Multi- and Dual-Classes -> Loosen equipment restrictions: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3070 // Change Effect of Reputation on Store Prices -> Low Reputation Store Discount [Sabre]: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3230 // Taerom Makes Additional Ankheg Armor [Icendoan/grogerson]: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3300 // Death Cam: v18
    ~CDTWEAKS/SETUP-CDTWEAKS.TP2~ #0 #3320 // No Depreciation in Stores: v18
    ~EET_TWEAKS/EET_TWEAKS.TP2~ #0 #2042 // XP for Traps, Spells and Lockpicking -> Vanilla friendly progressive: 1.12
    ~EET_TWEAKS/EET_TWEAKS.TP2~ #0 #3050 // One time area spawn points (no respawning): 1.12
    ~METWEAKS/METWEAKS.TP2~ #0 #200 // Make quest experience divided among party members
    ~METWEAKS/METWEAKS.TP2~ #0 #400 // Remove the limit of two proficiency points in a weapon at character creation
    ~METWEAKS/METWEAKS.TP2~ #0 #3100 // Make it so the Jacil and Wiven encounters aren't replaced by other quests
    ~METWEAKS/METWEAKS.TP2~ #0 #3150 // Give Belhifet more reasonable immunities
    ~HIDDENGAMEPLAYOPTIONS/HIDDENGAMEPLAYOPTIONS.TP2~ #0 #10 // Add in-game option "Enable Debug Mode": 3.0
    ~HIDDENGAMEPLAYOPTIONS/HIDDENGAMEPLAYOPTIONS.TP2~ #0 #11 // Add in-game option "Limit druidic spells for Cleric/Ranger": 3.0
    ~A7-CONVENIENTEENPCS/A7-CONVENIENTEENPCS.TP2~ #0 #1 // Modify Enhanced Edition NPCs -> Disable all NPCs: v4.3
    ~KLATU/SETUP-KLATU.TP2~ #0 #2070 // Free Action does not prevent Haste or Movement Rate Bonus: 1.7
    ~SETUP-TRAP_OVERHAUL.TP2~ #0 #10 // Trap Overhaul -> Fast Detection: 0.20
    ~HOUSETWEAKS/HOUSETWEAKS.TP2~ #0 #4 // House Tweaks: Rebalanced Weapon Styles: 2.5
    ~HOUSETWEAKS/HOUSETWEAKS.TP2~ #0 #12 // House Tweaks: Improved Dialogues (BG:EE): 2.5
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #1500 // Include arcane spells from Icewind Dale: Enhanced Edition: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #1510 // Include divine spells from Icewind Dale: Enhanced Edition: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #1520 // Include bard songs from Icewind Dale: Enhanced Edition: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #2000 // Install all spell tweaks (if you don't select this, you will be given a chance to choose by category): 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #2500 // Add 9 new arcane spells: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #2510 // Add 6 new divine spells (some borrowed from Divine Remix): 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #4115 // Thieves assign skill points in multiples of five: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #4140 // Revised inn rooms: more expensive, more benefits: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #5000 // Ease-of-use party AI: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #5080 // Improved BG Textscreens: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #5900 // Initialise AI components (required for all tactical and AI components): 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6000 // Smarter general AI: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6010 // Better calls for help: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6030 // Smarter Mages: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6040 // Smarter Priests: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6100 // Potions for NPCs: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6200 // Improved Spiders: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6300 // Smarter sirines and dryads: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #6310 // Slightly smarter carrion crawlers: 35.21
    ~STRATAGEMS/SETUP-STRATAGEMS.TP2~ #0 #7060 // Improved Balduran's Isle: 35.21
    ~REMASTERED_SPELL_ICONS/REMASTERED_SPELL_ICONS.TP2~ #0 #0 // Install Remastered Spell Icons Core Component: v1.0
    ~REMASTERED_SPELL_ICONS/REMASTERED_SPELL_ICONS.TP2~ #0 #1 // Use IWD:EE Colors (Green icons for summoning spells): v1.0
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #100 // Restore BG1 Spellcasting Voices: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #110 // Restore BG1 Spellcasting Sounds: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #120 // Restore BG1 Weapon Sounds: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #130 // Restore BG1 Armor Sounds: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #140 // Restore BG1 GUI Sounds: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #160 // Restore Gulp Sound: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #170 // Restore Chunked Death Sound: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #180 // Tweak Sound Channel Volume Levels: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #189 // Enable Footsteps During Combat: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #190 // Mute Reputation Change Sounds: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #200 // Mute Tooltip Paper Sound: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #210 // Restore BG1 Ambient Sounds: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #221 // Enhance Positional Audio: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #230 // Restore & Tweak Soundsets: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #240 // More Existence Sounds: v2.2
    ~INFINITYSOUNDS/INFINITYSOUNDS.TP2~ #0 #250 // Tweak Existence Sound Delay: v2.2
    ~NOSTALGIAPACK/NOSTALGIAPACK.TP2~ #0 #90 // Undo EE changes: 1.1
    ~REFLECTIONS_OF_DESTINY/REFLECTIONS_OF_DESTINY.TP2~ #0 #200 // Reflections of Destiny SoD: Rewriting History: 0.9.1
    ~REFLECTIONS_OF_DESTINY/REFLECTIONS_OF_DESTINY.TP2~ #0 #220 // Reflections of Destiny SoD: Magical Realism: 0.9.1
    ~REFLECTIONS_OF_DESTINY/REFLECTIONS_OF_DESTINY.TP2~ #0 #230 // Reflections of Destiny SoD: Nothing to Fear but Feyr Itself: 0.9.1
    ~REFLECTIONS_OF_DESTINY/REFLECTIONS_OF_DESTINY.TP2~ #0 #240 // Reflections of Destiny SoD: The Precipice of Death: 0.9.1
    ~EEEX/EEEX.TP2~ #0 #1 // Experimental - Use LuaJIT (can help stuttering): v0.11.0-alpha

    The lag in siege of dragonspear is insane. Especially when there are many mobs.
    Ironically enough, you can feel the lag even in the Korlasz starting dungeon - when you click inside the inventory there is a 2 sec delay before you can "pick" the item you are moving.

    It's really really bad.

    And it's odd, because with the older version of EeeX I've never experienced this issue. So there is something that kills performance.
  • TrouveurTrouveur Member Posts: 1,012
    EEex alone doesn't make the game lag.
    I read someone had lag with the TA component Hide visual effects from invisible enemies.
  • morpheus562morpheus562 Member Posts: 629
    After seeing how bad lag was on a stream with EEex and current version of Tweaks Anthology (v18 I think), I am running v16 of Tweaks Anthology instead. v17 and v18 of Tweaks Anthology have a lot of tie ins with EEex, and I am guessing there is something going on causing the lag. v16 of Tweaks Anthology is reliable without lag, and has all the components I need anyway. If you're seeing issues, I recommend moving back to v16 and it should get things back in working order.
  • UlkeshUlkesh Member Posts: 312
    thanks a lot @morpheus562. What surprises me is that no one seems to have complained about it before, or at least, if someone did (I didn't see any report), enough to get it noticed and fixed.
  • morpheus562morpheus562 Member Posts: 629
    I haven't looked deep into it, so it's only anecdotal. What I did see on stream, and how v16 of Tweaks Anthology does everything I would want of it without lag, I don't see any reason to "upgrade" to v18 of Tweaks Anthology.
  • morpheus562morpheus562 Member Posts: 629
    @Bubb do lists in lua start at 0 or 1? For example, if I have MONearestEnemyObjects[num] do I use 0 or 1 to get NearestEnemyOf(Myself)?
    MONearestEnemyObjects = {
        EEex_Object_ParseString("NearestEnemyOf(Myself)"),
        EEex_Object_ParseString("SecondNearestEnemyOf(Myself)"),
        EEex_Object_ParseString("ThirdNearestEnemyOf(Myself)"),
        EEex_Object_ParseString("FourthNearestEnemyOf(Myself)"),
        EEex_Object_ParseString("FifthNearestEnemyOf(Myself)"),
        EEex_Object_ParseString("SixthNearestEnemyOf(Myself)"),
    }
    
  • _Luke__Luke_ Member, Mobile Tester Posts: 1,550
    @Bubb do lists in lua start at 0 or 1? For example, if I have MONearestEnemyObjects[num] do I use 0 or 1 to get NearestEnemyOf(Myself)?
    MONearestEnemyObjects = {
        EEex_Object_ParseString("NearestEnemyOf(Myself)"),
        EEex_Object_ParseString("SecondNearestEnemyOf(Myself)"),
        EEex_Object_ParseString("ThirdNearestEnemyOf(Myself)"),
        EEex_Object_ParseString("FourthNearestEnemyOf(Myself)"),
        EEex_Object_ParseString("FifthNearestEnemyOf(Myself)"),
        EEex_Object_ParseString("SixthNearestEnemyOf(Myself)"),
    }
    

    You have to use 1.
Sign In or Register to comment.