Skip to content

[MOD] EEex (v0.10.2-alpha)

1414244464749

Comments

  • BubbBubb Member Posts: 1,005
    function DumpMemorizedPriestSpells()
    
        local sprite = EEex_GameObject_GetUnderCursor()
        if not EEex_GameObject_IsSprite(sprite) then
            return
        end
    
        local memorizedSpellLevelsPriest = sprite.m_memorizedSpellsPriest
    
        for i = 0, 6 do
    
            Infinity_DisplayString("spell level: "..(i + 1)..":")
            local spellLevel = memorizedSpellLevelsPriest:getReference(i)
    
            EEex_Utility_IterateCPtrList(spellLevel, function(memorizedSpell)
                local spellResRef = EEex_CastUD(memorizedSpell.m_spellId, "CResRef"):get()
                local alreadyCast = EEex_IsBitUnset(memorizedSpell.m_flags, 0)
                Infinity_DisplayString("    memorized resref: "..spellResRef..", alreadyCast: "..tostring(alreadyCast))
            end)
        end
    end
    

    You should read m_memorizedSpellsPriest, m_memorizedSpellsMage, and m_memorizedSpellsInnate instead of m_memorizedSpellsLevelPriest, m_memorizedSpellsLevelMage, and m_memorizedSpellsLevelInnate. The latter just a reflects a structural part of the .CRE, the data is actually stored in the non-"level" fields.

    Note the ugly EEex_CastUD to read the spell resref. The bindings can't automatically interpret char arrays as strings / resrefs – I have to go in and manually fix their type, and I haven't corrected that field yet.
  • shadowlichshadowlich Member Posts: 60
    Ok, thanks Bubb, that works well; unfortunately not for my purpose : coding my own un/memorize function that can be called outside mageScreen/priestScreen.

    I have to find another way...


  • barker262barker262 Member Posts: 83
    G'day Bubb, I've just downloaded your EEex v.9.19. In the setup it mentions a time step module option to 'advance one tick'. The readme doc didn't include that feature, so I was wondering what it actually is and how to activate or monitor it?
  • BubbBubb Member Posts: 1,005
    @barker262: Ah, I forgot to update the readme, thanks for pointing that out.

    The module allows you to press a key, (by default 'd'), when the game is paused to advance the minimum amount of time. In essense it's like unpausing and then pausing again really quickly. You can also hold the key for half a second to make time flow until it is released.

    If you want to change the keybinding, you can open "override/B3TimeStep.lua" and alter this line:
    B3TimeStep_Key = EEex_Key_GetFromName("d")
    
  • EndarireEndarire Member Posts: 1,519
    What keys are allowed for binding via lua this way? I'd prefer to use shift-D or alt-D or just NumPad something. How?

    Thankee!
  • barker262barker262 Member Posts: 83
    Cheers Bubb. It'll be awhile before I get to try it, just spent all of yesterday modding BG1ee only to have it not even open with an error type I've never seen before. Delete and try again.
  • EndarireEndarire Member Posts: 1,519
    Still looking forward to the full reimplementation of wild magic stuff for OlvynSpells.

    Thankee!
  • zelazkozelazko Member Posts: 88
    edited May 2023
    Are there plans to make EEEx load external plugins. Those plugins would work as 'mods'. External executable for Skyrim (SKSE64) and Oblivion (OBSE) work that way.
  • SparrowJacekSparrowJacek Member Posts: 17
    Hi. I am trying to remove all functionality from "Stealth" button, so that it's only a cosmetic element, that has no real usage. I can successfully edit it in actionbar, however players can still use quick button (F6 by default) to access the original usage of the button. Is there a way to prevent that only for "Stealth", without completely disabling all quick buttons?
  • MyceniusMycenius Member Posts: 55
    edited May 2023
    Hi - I've just updated (BG2 EE) from 9.16 to 9.19 alpha and I'm getting this error(?) notification at start up from Infinity Loader. It's still running okay once I accept and game loads - but wondering if its a simple fix or alternately if its a risk of affecting game play or saves going forward? I'm assuming it's EEex related (and not something else referencing EEex):

    my2usxnxebsq.jpg

    FYI - these are the mods installed and sequence for BG2 EE instance:
    1. Adalon's Blood v15 (c#sb_silber) --- new install today
    2. The Tweaks Anthology v16 (CDTweaks)
    3. EEex v0.9.19-alpha --- updated version today
    4. OlvynSpells 2.4.1 (MESpells) --- new install today
    5. HiddenGameplayOptions 4.2 --- updated version today
    6. Spell-Menu-Extended v4.5.4 --- updated version today
    7. Enhanced Powergaming Scripts v12.1
    8. SoD-to-BG2EE Item Upgrade v2.0.6

    Appreciate any thoughts/guidance?
  • BubbBubb Member Posts: 1,005
    edited May 2023
    zelazko wrote: »
    Are there plans to make EEEx load external plugins. Those plugins would work as 'mods'. External executable for Skyrim (SKSE64) and Oblivion (OBSE) work that way.
    How would this be different than what EEex already does? I am working towards having some of EEex written in C++, (to fix stutter issues), so mods that use these C++ features will be required to build their own .dll modules. I guess that's kind of like plugins, but the end result is really no different than dropping Lua files into the override folder.


    Hi. I am trying to remove all functionality from "Stealth" button, so that it's only a cosmetic element, that has no real usage. I can successfully edit it in actionbar, however players can still use quick button (F6 by default) to access the original usage of the button. Is there a way to prevent that only for "Stealth", without completely disabling all quick buttons?
    From my tests, removing the stealth button entirely seems to prevent hotkeys from using it. You can do this by putting the following in a M_*.lua file:

    EEex_Actionbar_AddListener(function(config, state)
        for i = 0, 11 do
            if buttonArray:GetButtonType(i) == EEex_Actionbar_ButtonType.STEALTH then
                EEex_Actionbar_SetButton(i, EEex_Actionbar_ButtonType.NONE)
            end
        end
    end)
    


    Mycenius wrote: »
    Appreciate any thoughts/guidance?
    One of your mods is trying to use an EEex feature that hasn't been released yet. You can probably download the master verison of EEex to get things working. I normally wouldn't recommend this, but I believe master is currently stable.

    The master zip is structured differently than releases — it's not designed to be installed, but you can still do so with some effort. Copy the "EEex-master/EEex" folder to your game's base folder, and rename another mod's setup file to setup-EEex.exe, and you should be able to install it.
  • zelazkozelazko Member Posts: 88
    Lua support that's even a better. Morrowind MWSE has lua support but still requires a user to take a single click action to update the lua script loaded. You beat that by having only to drop them inside the override folder :D
  • MyceniusMycenius Member Posts: 55

    Bubb wrote: »
    One of your mods is trying to use an EEex feature that hasn't been released yet. You can probably download the master verison of EEex to get things working. I normally wouldn't recommend this, but I believe master is currently stable.

    Thanks @Bubb - bound to be OlvynSpells I suspect as that's the only new one I have added while updating the existing mods I use that I believe uses EEex (i.e. don't believe Adalon's Blood quest mod will be calling EEex). I'll follow up with OlvynChuru - I'm guessing it'll just mean something (one of the spells or functions) in the OS mod may not work...?
  • EndarireEndarire Member Posts: 1,519
    edited May 2023
    Use the master EEex for OlvynSpells. Note that EEex needs updating with full wild magic functionality (double spells and maybe more via opcode 280) for OlvynSpells spells to fully work.

    Thankee!
  • MyceniusMycenius Member Posts: 55
    B)
  • OlvynChuruOlvynChuru Member Posts: 3,079
    @Bubb
    Note that EEex needs updating with full wild magic functionality (double spells and maybe more via opcode 280) for OlvynSpells spells to fully work.

    I second this. The opcode 280 hook (which can make spells always trigger the wild surge of your choice, and can suppress the wild surge graphics and message) is the only thing I still need reimplemented before I can restore all the spells from OlvynSpells, as well as update High Power Baldur's Gate to work on v2.6.
  • EndarireEndarire Member Posts: 1,519
    +1 to Olvyn.
  • BubbBubb Member Posts: 1,005
    OlvynChuru wrote: »
    280
    OlvynChuru wrote: »
    280
    OlvynChuru wrote: »
    280
    OlvynChuru wrote: »
    280
    Endarire wrote: »
    280
    Endarire wrote: »
    280
    Endarire wrote: »
    280
    OlvynChuru wrote: »
    280
    Endarire wrote: »
    [280]

    Done :)
  • mledmled Member Posts: 48
    I think I remember when EEex was restarted from scratch (for 2.6) that maybe other OSes could be a future goal, maybe...
    I know it's easy to over-extend oneself, was this scrapped?
  • zelazkozelazko Member Posts: 88
    I remember throne bhaal extender had feature to auto pick/learn spells in character creation menu. This feature would be a great addition.
  • GraionDilachGraionDilach Member Posts: 599
    edited May 2023
    zelazko wrote: »
    I remember throne bhaal extender had feature to auto pick/learn spells in character creation menu. This feature would be a great addition.

    LeUI can do that already, no need for EEEx to intervene.

    If we wantr to discuss missing ToBEx features, then the ToBEx tweaks to "allow inventory dropping on disingreation/freeze death etc." was a real engine feature which is miissing from the EEs and other mod solution just work it around lousily.
  • zelazkozelazko Member Posts: 88
    zelazko wrote: »
    I remember throne bhaal extender had feature to auto pick/learn spells in character creation menu. This feature would be a great addition.

    LeUI can do that already, no need for EEEx to intervene.

    If we wantr to discuss missing ToBEx features, then the ToBEx tweaks to "allow inventory dropping on disingreation/freeze death etc." was a real engine feature which is miissing from the EEs and other mod solution just work it around lousily.

    I use Dragonspear UI++ .... When I finish installing mods ( I am doing tweaks ) on my second try I will go for Infinity UI when it's out of beta phase.
  • EndarireEndarire Member Posts: 1,519
    Bubb, when is the release EEex 9.20 scheduled?

    Thankee!
  • BubbBubb Member Posts: 1,005
    edited May 2023
    mled wrote: »
    I think I remember when EEex was restarted from scratch (for 2.6) that maybe other OSes could be a future goal, maybe...
    I know it's easy to over-extend oneself, was this scrapped?

    Good eye. I don't have as much time as I used to, as is probably evident by v2.6-EEex's slow recovery. So, yes, I've reversed my admittedly too-optimistic claims of future OS parity.

    Native Linux support might happen in the future. I had a far-from-finished prototype running under Frida, so at least I have a sense of how it could work. Honestly the realization that Proton can run the Windows version flawlessly has dampened my motivation. Porting EEex to native would be a massive undertaking for little reward.

    For now native MacOS support is completely dropped unless someone else decides to spearhead that endeavor. I don't have the required technical knowledge of MacOS to implement EEex, and I have a feeling it would fight me every step of the way. Maybe sometime in the future I'll find time to consider this again, though I wouldn't bet on it.

    As an aside, if someone could test whether Wine / Proton(?) can run EEex on MacOS, that would be extremely helpful. If anyone does take a crack at it, remember to change InfinityLoader.ini => ProtonCompatibility from 0 to 1.


    Endarire wrote: »
    when is the release EEex 9.20 scheduled?

    I wanted to have the stuttering issue fixed for v0.9.20-alpha, but since that's turned into a time sink revamping Infinity Loader it's taking longer than expected. I'll probably release v0.9.20-alpha soon and make the stutter fix v0.10.0-alpha whenever it is done.
  • mledmled Member Posts: 48
    edited May 2023
    Bubb wrote: »
    Honestly the realization that Proton can run the Windows version flawlessly

    So I got curious about that and had to try. I don't actually have proton, just wine but that's probably equivalent.
    ATM it fails because of some openal dlls that don't seem to be int he game dir.
    I'll probably have some more work for that, but that could take some time. Having native binary doesn't help getting the motivation to investigate (even more, after discovering wine+weidu.exe is at least 20 times slower that weidu).

    EDIT: the answer was not very far, there was an oalinst.exe inside the game directory :/
    Post edited by mled on
  • TekidekTekidek Member Posts: 6
    Could EEex make it possible to turn quick spell slots into quick weapon slots? (at least in the case of multi/dual characters).
  • zelazkozelazko Member Posts: 88
    edited June 2023
    The next version will reimplement 280 opcodes to make olvyn spells work better. What reimplementation would be required to make epic thieving work with the latest version 2.6.6?
  • EndarireEndarire Member Posts: 1,519
    I also wanted to know that.

    Epic Thieving adds a poison weapon skill.

    Thankee!
  • SparrowJacekSparrowJacek Member Posts: 17
    Hi!
    Is there a way to make Stealth button cast some spell that I choose instead of the vanilla one?
    Or if not, then is there a possibility to switch Stealth button to some Quick Spell one and permanently assign a special ability (not a spell) to that button?
    I am working on an ability that mimicks Stealth, but has some improvements and I would love to enable players to just use the vanilla Stealth button instead of the need to select Special Ability button and search for my new Stealth ability there each time they want to use my ability.

    Thanks!
    SparrowJacek
  • SpaceSignalSpaceSignal Member Posts: 5
    Hello there! First of all thank you very much for your continuous efforts!
    I am trying to install EEex-0.9.7-alpha, but I cannot, I have the 2.5.16.6 version of baldur.exe but I have this message n8c1vrri30xe.jpg

    I would appreciate any help!
Sign In or Register to comment.