Jump to content

Please check my install list (2.6 EET)


Recommended Posts

3 hours ago, subtledoctor said:

Just uninstall the hotfix and load a save from before making changes

Well, I wanted to keep the progress made until now 😆

Anyway, turns out I had a working 5e casting on an early save, without the need to uninstall anything. Reloading from there, I think I found the point where it bugged out: it happened right when I switched Grey the dog from regular party member, to 7th party member. It happens specifically after pressing the rest button. I realoaded a save with Grey already in '7th member mode', and the protagonist still having casting slots: I could cast spells 5e-style no problem, and had the 'change prepared spells' ability. Using the ability worked fine, disabled casting and allowed for memorization. But after resting, the protagonist would wake up a vancian caster.

Maybe the 7th party member interferes with the process that gives back all the spells as abilities after rest? Tagging @jastey just to let her know, although this is probably something that needs to be taken into account by the 5e casting system.. and it's probably difficult. For now, looks like Grey won't be a part of this run.

EDIT: also, it appears I didn't lose my progress😀. As long as the protagonist has the 'change prepared spells' ability and Grey is not in 7th party mmember mode, 5e casting works.

Edited by Gwaihir
Link to comment
23 minutes ago, Gwaihir said:

Maybe the 7th party member interferes with the process that gives back all the spells as abilities after rest? Tagging @jastey just to let her know, although this is probably something that needs to be taken into account by the 5e casting system..

The 7th party members detect whether the party rested by putting a spell on the PC that increases the fatigue bonus (93) by 1 if it's full (CheckStat(Player1,0,FATIGUE)) via baldur.bcs. The spell is in "c#greythedog/spells/C#FATIG1.SPL".

Link to comment
2 hours ago, jastey said:

The 7th party members detect whether the party rested by putting a spell on the PC that increases the fatigue bonus (93) by 1 if it's full (CheckStat(Player1,0,FATIGUE)) via baldur.bcs. The spell is in "c#greythedog/spells/C#FATIG1.SPL".

The 5E casting mod and the TnB multiclass sorcerers and the FnP multiclass shamans need things to happen after the party rests - memorized spells in your spellbook get converted into sorcerer-style 'prepared spells' under your spellcasting button. To do this, every such caster has a repeating .eff checking whether their fatigue is 0. If it finds fatigue = 0 (by a 326 effect), then it sets fatigue = 1 and does the spell conversion business.

If a block in baldur.bcs is changing fatigue = 0 to fatigue = 1, then my mods will basically never work right - since IIRC baldur.bcs runs every second while my checks in repeated .effs only run every six seconds.

EDIT - I am VERY hesitant to get too much into discussions like this since it can easily appear as telling other modders how to mod. But,

Spoiler

it seems to me that once you are already in a .bcs script, wouldn't variables work just as well? Since it appears fatigue in this instance is being used as a kind of variable. Something like:

IF
  CheckStat(Player1,FATIGUE,0)
  Global("P1_REST",GLOBAL,0)
THEN
  RESPONSE #100
  [do 7th member business]
  SetGlobal("P1_REST",GLOBAL,1)
  Continue()
END

IF
  CheckStatGT(Player1,FATIGUE,0)
  Global("P1_REST",GLOBAL,1)
THEN
  RESPONSE #100
  SetGlobal("P1_REST",GLOBAL,0)
  Continue()
END

It looks for Fatigue and the global variable to be in sync, both = 0. When the script sees that, it knows the party just rested. It does whatever it needs to do, and then renders them out of sync by setting the variable to 0. Once fatigue gets to 1 or higher, it sets the variable to 0 so they are still out of sync. Then no block will return true conditions until the next time the party rests, putting Fatigue back to 0. (Or when that IWD spell is cast on Charname).

 

Edited by subtledoctor
Link to comment
8 hours ago, subtledoctor said:

nce you are already in a .bcs script, wouldn't variables work just as well?

Uhm, probably? I mean... it looks waaay too easy and constructive, LOL! I think I can change the checking to something like this - if your mod gives enough time for such a script to trigger?

EDIT: This is for all my 7th party member mods - Grey, Brandock, Solaufein, an unknown NPC mod - and Brandock does that for detection of his scroll scribing ability as well (i.e. also as a full party member), so we need a compatible solution.

 

8 hours ago, subtledoctor said:

To do this, every such caster has a repeating .eff checking whether their fatigue is 0. If it finds fatigue = 0 (by a 326 effect), then it sets fatigue = 1 and does the spell conversion business.

In the end, both mods had the same idea to detect resting. Couldn't your mod use scripts as well?

Link to comment
13 hours ago, subtledoctor said:

once you are already in a .bcs script, wouldn't variables work just as well

@subtledoctor Turns out this is easily done and much less messy scripting wise. It would be great to know whether the "CheckStat(Player1,FATIGUE,0)" detection in an NPC script will work relayably though in connection with your mods? If you'd make sure of this that would be great. I'll switch to script detection in all my mods in the next updates.

13 hours ago, subtledoctor said:

I am VERY hesitant to get too much into discussions like this since it can easily appear as telling other modders how to mod.

Not at all, it's more like "why didn't I see this when coding myself omg it's so embarrassing".

Link to comment
3 hours ago, jastey said:

Turns out this is easily done

I've been working in .bcs scripts a lot lately for my NPC customization mod, so my head has been living in that  mode for a bit - that's the only reason such an idea occurred to me!

8 hours ago, jastey said:

Couldn't your mod use scripts as well?

It's tougher for a number of reasons. First, and least, I'm just not as adept at working with scripts. The more important reason is that  the mods don't just check for "has the party rested," rather, these are kit-specific characteristics that must follow the particular party members with those kits. That could be just one party member, or it could be 5 or 6; it could be someone in the Player1 position or the Player4 position and that can change at any moment. Having  permanent effect applied by kit that checks for this or that condition, and then summons a creature to run scripted events on LastSummonerOf(Myself) is therefore simple and reliable when compared against something running game-wide and checking every character and trying to make sure the right effects are applied to the right character. The harder part is, of course, needing to continually check for some conditions outside of baldur.bcs; but that has become possible in the EEs now that we have opcode 326.

However, I don't think that absolves me of making changes here.

8 hours ago, jastey said:

we need a compatible solution.

Right. As I've been thinking about this, I realized that ANY mod that changes Fatigue from 0 to another value can potentially interfere with any other mod that needs to check for when the party goes to sleep for eight hours. (And it seems that we have both independently determined that checking for Fatigue = 0 is the only reliable way to keep track of that.) So for best results, no mod can lay claim to being able to change the Fatigue stat; we all should leave it alone. Unfortunately that it easier done in your mods than mine. But I think it might be possible. Rather than try to reinvent a whole piece of my machinery and shove it into baldur.bcs, I think I might be able to use a spellstate as a sort of out-of-scripts local variable, performing the same function as the global variable in my script examples above. I try not to use more of those than necessary since they are  limited resource, but in this case I think it is more than justified. I'll look into making the change ASAP.

Edited by subtledoctor
Link to comment
2 hours ago, subtledoctor said:

As I've been thinking about this, I realized that ANY mod that changes Fatigue from 0 to another value can potentially interfere with any other mod that needs to check for when the party goes to sleep for eight hours. (And it seems that we have both independently determined that checking for Fatigue = 0 is the only reliable way to keep track of that.) So for best results, no mod can lay claim to being able to change the Fatigue stat; we all should leave it alone.

Don't get me wrong but I feel this'll get lost in this thread and I guess the principle deserves it's own thread in Modding How-To.

Link to comment

Doing another reinstall, cause the last one got ruined by my antivirus.

So a couple of days ago, Norton antivirus decided that weidu is Evil and proceeded to quarantine all the setup-.exe files inside the bg2 folder; which is not that bad, those are only needed at install and game runs fine without, also one can restore quarantined files if needed... but then paladin Norton cast smite evil on 250 more files, mostly from override, apparently (I think) those patched, installed or otherwise altered by the mod 'arcane treasury'; it removed  the weidu log too 😒

Needless to say, game doesn't even start, and since I can't restore those files, it's reinstall time. Instead of using the same versions, I decided to upgrade a few mods for bugfixes and new content: BG1NPsStoSOA, Tweaks Anthology, Tweaks and Tricks, Aura, all the Unearthed arcana mods, and above all the new shiny NPC_EE. List in the first post has been updated with a couple of new components.

I guess not adding an exception for the game folder was naive, but I played with BG mods before and this never happened; also those files have been sitting in my laptop for 2 months, and Norton ups and decides they're all trojans. Maybe something to do with the latest weidu version...?

Link to comment
4 minutes ago, Gwaihir said:

Yup, i have it right at the end. The very last would be enhanced powergaming script, but I figured I'll just wait to install it until/if @morpheus562 pulls off a 5e compatibility. That would be like the icing on the cake.

So far I have 6k new lines of code that brings 5e compatibility to pre-buffing (no other mods at this time). Still testing, but in the next few days I'll get compatibility to the base game plus mods (minus SRR). Pending any road blocks, I'll have to do the same thing all over again with SRR.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...