Skip to content

[MOD] EEex (v0.10.2-alpha)

1212224262748

Comments

  • OlvynChuruOlvynChuru Member Posts: 3,075
    Bubb wrote: »
    I was brainstorming a bit. Is there any reason to externalize which familiar the engine chooses for find familiar, and the hardcoded link to the protagonist? Modders can already make "lite" familiars with the
    AddFamiliar()
    

    script action, so would externalizing Opcode #192 really help anything?

    There is one issue I'm aware of. Adding a summoned creature as a familiar doesn't let them transition between areas correctly. I was wondering if there was any way to make it so regular summoned creatures can serve as familiars and transition between areas normally, without significantly changing the way the creature is summoned (this way, it could easily be patched onto existing summoning spells without causing problems). I suspect this will probably just involve flipping one number with a Lua function.
    GrammarsaladCrevsDaakBubblolien
  • UlbUlb Member Posts: 295
    Apologies for going off topic for a quick question but this seems like a really good place to ask right now..

    Would any of you know whether adding a large number of familiars to the game saves has a detrimental effect on game performance?
    Alternatively, is there a way to remove familiars from gam files?

    I'm thinking of a kit that gets to take permanent control of a creature until it dies and can then get a new creature, meaning I would end up with a really large number of familiars by the end of the game.
    Bubb
  • OlvynChuruOlvynChuru Member Posts: 3,075
    Ulb wrote: »
    I'm thinking of a kit that gets to take permanent control of a creature until it dies and can then get a new creature, meaning I would end up with a really large number of familiars by the end of the game.

    The Seducer kit already does something along those lines.
    Ulblolien
  • UlbUlb Member Posts: 295
    edited July 2019
    @OlvynChuru
    I'm aware of the kit but I wasn't sure how much testing went into it (no offense).
    I'm just a little concerned that adding 50+ familiars might impact game performance...

    @Bubb
    Another question/possibly feature request:

    When a wild surge is averted due to the caster's wild surge bonus no string gets displayed (it just says "Wild Surge: <blank/notext>") is there a way to change that?

    I'm not sure how the wild surge bonus works. If it is simply added to the wild surge roll and the game still looks at the wild surge table it might already be possible to set a string by extending the wild surge table up to 200, if it somehow just blocks rolls lower than the caster's wild surge bonus, then EEex might be needed to change that?

    Edit: Nevermind, I just tested it and it looks like extending the table to 200 does indeed solve the issue.
    Post edited by Ulb on
  • UlbUlb Member Posts: 295
    @Bubb Awesome, thank your for the detailed explanation! Looks like there will be no issues then with the kit. :)
    lolien
  • _Luke__Luke_ Member, Mobile Tester Posts: 1,535
    edited July 2019
    Bubb wrote: »
    If the familiars are added with a simple AddFamiliar(), without becoming global, they act pretty much like an ally - there should be no performance change.

    Are there any other significant differences between a simple AddFamiliar() and the combo AddFamiliar() + MakeGlobal() ? Also, shouldn't the combo include a ChangeEnemyAlly(Myself,FAMILIAR) too? Or does AddFamiliar() take care of that?
    // Sample code
    IF
    	True()
    THEN
    	RESPONSE #100
    		MakeGlobal()
    		ChangeEnemyAlly(Myself,FAMILIAR)	// Useless...?
    		AddFamiliar()
    END
    

    @Ulb

    Beware of this bug when playing with AddFamiliar()...
  • UlbUlb Member Posts: 295
    @Luke93
    Interesting, now that you mention it I seem to remember wondering why my familiars didn't show up with the proper class UI, back when I made my animal companions mod.
    Now I know why. :)

    As for, MakeGlobal()/AddFamiliar(), I always assumed you need MakeGlobal() to enable (master) area transition for familiars?
  • GrammarsaladGrammarsalad Member Posts: 2,582
    edited July 2019
    Ulb wrote: »
    @Bubb

    Here we go again with some more feature requests/suggestions...

    1. Would it be possible to suppress the hard coded wild surge graphics for specific rolls?
    Specifically, I'd like a way to suppress the graphics for rolls 100+. Not sure what the best way of implementation would be as the opcode is already pretty crowded. Maybe an extra entry in wildmag.2da?

    2. Stoneskin (maybe I've ask for this before).. Would it be possible to allow us to suppress the hardcoded visual effect similar to how EEex handles it for wild surges already? It's an old ToBEX feature that Beamdog never implemented despite countless please (not all of them form me :P )
    Also, if we could specify which types of damage should be absorbed, that would allow for so many neat things..

    Oh, I'm really liking #2 (especially that "also")
    BubbCrevsDaakAndreaColombo
  • OlvynChuruOlvynChuru Member Posts: 3,075
    @Ulb
    Ulb wrote: »
    2. Stoneskin (maybe I've ask for this before).. Would it be possible to allow us to suppress the hardcoded visual effect similar to how EEex handles it for wild surges already? It's an old ToBEX feature that Beamdog never implemented despite countless please (not all of them form me :P )
    Also, if we could specify which types of damage should be absorbed, that would allow for so many neat things..

    This should be possible to do with opcode 403 (Screen Effects). I'll see if I can make a function that does this.
    BubbGrammarsaladCrevsDaakUlb
  • _Luke__Luke_ Member, Mobile Tester Posts: 1,535
    @Bubb

    Thanks for your detailed explanation, I added it to my bug report.

    Also, can you confirm this issue affects RemoveFamiliar() as well?
  • UlbUlb Member Posts: 295
    @OlvynChuru
    Thats awesome, thank you!
    GrammarsaladCrevsDaak
  • OrangePulpOrangePulp Member Posts: 5
    Bubb wrote: »
    Been working for the past day or two on a wonderful suggestion made by @raizo in my spell menu mod's thread:
    1. To be able to know what spells enemies are under, without combing through the dialog box. Something like a pop-up on mouse hover?
    Just imagine, 5 cowled enforcers start their contingencies all at once. Then you have to comb through the dialog box to know which spell is whose.

    And here's the result, (only made to be proof-of-concept, mind you):


    When the player presses LShift Spell-Inspection mode is enabled, which then pops up on hover all the named spells which have put effects on the creature.

    Any way to get this working in the current alpha release? Just found this (incredible work, by the way), and I'd love to use this to simplify mage duels.
  • ALIENALIEN Member Posts: 1,270
    @Bubb
    kjeron wrote: »
    Pausing the game at the same moment a spell is applied is and has always been broken - it can cause a single spell to use multiple save, magic resistance, and probability rolls, breaking the mechanics of effect application. At it's worst, it can cause every single effect in a spell to use a separate roll.
    Is there any way for hijack 'pause game' command, check if spells are applied at this particular moment and if yes, delay actual execution of the 'pause game' command until spells will be applied/saving throws processed?
    CrevsDaak
  • _Luke__Luke_ Member, Mobile Tester Posts: 1,535
    edited July 2019
    ALIEN wrote: »
    Is there any way for hijack 'pause game' command, check if spells are applied at this particular moment and if yes, delay actual execution of the 'pause game' command until spells will be applied/saving throws processed?

    FWIW, this issue is known to the developers and will hopefully be fixed soon.......
    CrevsDaak
  • AndreaColomboAndreaColombo Member Posts: 5,524
    I think @Tresset has a mod that applies a small delay to the auto-pause to prevent that issue from happening.
    CrevsDaak
  • kjeronkjeron Member Posts: 2,367
    Bubb wrote: »
    Can anyone think of why the engine would resolve all effects whenever any one effect is added in the above? If a spell has 10+ effects that means the engine would go over the creature's whole effects list *10* times, which strikes me as a bit inefficient. @kjeron ?
    It might be necessary for pausing dialog's, so they can update and check local variables on the creature. Otherwise I have no clue.
    AndreaColombololienBubbCrevsDaak
  • The user and all related content has been deleted.
  • GalactygonGalactygon Member, Developer Posts: 412
    kjeron wrote: »
    Bubb wrote: »
    Can anyone think of why the engine would resolve all effects whenever any one effect is added in the above? If a spell has 10+ effects that means the engine would go over the creature's whole effects list *10* times, which strikes me as a bit inefficient. @kjeron ?
    It might be necessary for pausing dialog's, so they can update and check local variables on the creature. Otherwise I have no clue.

    That would be a major fix, actually. Auto-pause: spell cast borks any "immunity/protection from <RESOURCE>" effects if the spell doesn't have a projectile i.e. if you cast Vampiric Touch onto yourself. Local variables are mostly changed directly in the dialogue tree rather than directly via some other spell so I don't see this being an issue.
    AndreaColomboBubbCrevsDaakGrammarsalad
  • OrangePulpOrangePulp Member Posts: 5
    Bubb wrote: »
    When I get back into things I'll make a module that has the "spell inspector" functionality. :)

    Awesome, you're the best. Will be fun to play around with once I've got something to work off, too.
    Bubb
  • OlvynChuruOlvynChuru Member Posts: 3,075
    edited August 2019
    @Bubb Thank you!

    I sent you a pull request! I made it so EEex_MatchObjectEx is added to ACTION.IDS automatically.

    Also, I think this would be better as a trigger or an object.
    Post edited by OlvynChuru on
    GrammarsaladBubbCrevsDaak
  • BubbBubb Member Posts: 998
    Here's a quick design decision: Should the EEex_MatchObject() trigger fail if it doesn't find an object? This functionality can easily be reproduced by adding an Exists(EEex_MatchObject) after said trigger.

    I guess the real question is, would there be any reason for a script block to continue if an object match fails?
    CrevsDaak
Sign In or Register to comment.