Jump to content

Enhanced Powergaming Scripts


Recommended Posts

Greetings everyone,

I'm starting to look into making these scripts compatible with the original BG2 and BGT, and I'm wondering if there is even a demand or interest in that? How many people still play the original games instead of the Enhanced Editions? If memory serves, and not to call you out, but I think @Bartimaeusmentioned still using the originals. Anyone else? And with that, would there be an interest in improved player ai in those games?

I appreciate the feedback, thank you!

Link to comment
13 hours ago, morpheus562 said:

And with that, would there be an interest in improved player ai in those games?

I know there is Salk and I, but truth be told, I don't like my character AI touching either spells or item usage as a general rule, and to that end, SCS's general player character script is probably the most I'd ever need.

Link to comment

Official release for version 6.2 which brings the following enhancements:

  • All Games
    • Added German translation courtesy of Morywen.
  • BG2: EE and EET
    • Removed issue with installing Made In Heaven Spellpack (Divine component) without installing the Arcane Component.
    • Updated initialization file to be more accomodating for older versions of mods.
Link to comment

@morpheus562

Hi! First of all, I love what this mod does, and wholeheartedly thank you for your hard work in making this possible. I do however have a bit of a problem: my current install includes might and guile, faiths and powers, tome and blood, and most importantly, 5e spellcasting by subtledoctor, which means that every spellcaster except sorcerers casts spells through abilities, rather than using the vanilla spell system, which in turn means your scripts do not work. When hitting B, the character shows the messages 'start buffing' and 'buff complete' right after, without casting a single spell.

I recall reading previously on this thread that compatibility with those mods was asked for; it surely would be a very hard task, so may I ask if you're considering it? As a side note, is it possible to install this mod on an ongoing game? I have it dead last in install order right now, and was wondering if installing an update mid-run could screw things up.

Link to comment
5 minutes ago, Gwaihir said:

@morpheus562

Hi! First of all, I love what this mod does, and wholeheartedly thank you for your hard work in making this possible. I do however have a bit of a problem: my current install includes might and guile, faiths and powers, tome and blood, and most importantly, 5e spellcasting by subtledoctor, which means that every spellcaster except sorcerers casts spells through abilities, rather than using the vanilla spell system, which in turn means your scripts do not work. When hitting B, the character shows the messages 'start buffing' and 'buff complete' right after, without casting a single spell.

I recall reading previously on this thread that compatibility with those mods was asked for; it surely would be a very hard task, so may I ask if you're considering it? As a side note, is it possible to install this mod on an ongoing game? I have it dead last in install order right now, and was wondering if installing an update mid-run could screw things up.

I haven't looked at 5e spellcasting, but I imagine with how comprehensive it is that it is going to be a complete rewrite of many scripts. As such, I do not have any plans or ETA on when/if these will be compatible. Not saying it won't happen, I just do not want to commit to anything.

These can be installed dead last during an ongoing game without issue. I routinely uninstall and reinstall these on existing games/playthroughs as I make tweaks and push updates.

Link to comment
8 hours ago, morpheus562 said:

I haven't looked at 5e spellcasting, but I imagine with how comprehensive it is that it is going to be a complete rewrite of many scripts.

It depends on what your scripts look like. If your scripts use HaveSpell() checks and actually cast spells by Spell()/SpellRes(), then it is tough because casters with the 5E mod do not actually have any spells memorized; their spellbooks have all spell slots removed and they instead have a bunch of innate abilities.

BUT, it might be feasible. First, you would need to check for the presence of the 5E spells:

ACTION_IF (MOD_IS_INSTALLED ~5e_spellcasting~ ~100~) BEGIN

A game with the 5E mod installed has a file called D5ZCLONS.2da which links every spell to an index number; it looks like this:

2DA V1.0 
IND
	MEM 	CAST 	TYPE 	PROCESSED
100	#	#	#	#
101 	SPPR103	SPPR103 divine 	yes 
102 	SPPR101	SPPR101 divine 	yes 
103 	SPPR203	SPPR203 divine 	yes 
104 	SPPR327	SPPR327 divine 	yes 
105 	SPPR307	SPPR307 divine 	yes 
106 	SPPR422	SPPR422 divine 	yes 
107 	SPPR417	SPPR417 divine 	yes 
108 	SPPR525	SPPR525 divine 	yes 
109 	SPPR611	SPPR611 divine 	yes 
110 	SPPR710	SPPR710 divine 	yes 

The names of the innate abilities standing in place of the spells - and which would satisfy a HaveSpell() check - are called "d5[ind#]i.spl."  So, theoretically, you could create an array from this file, like so:

COPY_EXISTING ~d5zclons.2da~ ~override~
  COUNT_2D_COLS cols
  COUNT_2DA_ROWS cols rows
  FOR (row = 1; row < rows; ++row) BEGIN
    READ_2DA_ENTRY row 0 cols ind_num
    READ_2DA_ENTRY row 1 cols mem_spl
    SPRINT $5e_spells_array(~d5z%ind_num%i~)~%mem_spl%~
  END
BUT_ONLY

Then you would copy your .BAF file somewhere - before compiling it - and run a truckload of REPLACE_TEXTUALLY commands based on that array:

COPY ~[yourmod]/[yourscript].baf~ ~weidu_external/%MOD_FOLDER%/compile/[yourscript].baf~
  PHP_EACH 5e_spells_array AS new_spl => old_spl BEGIN
    REPLACE_TEXTUALLY CASE_INSENSITIVE ~%old_spl%~ ~%new_spl%~
  END

COMPILE ~weidu_external/%MOD_FOLDER%/compile/[yourscript].baf~

Theoretically, that would result in your scripts working with 5E casting - without any adjustments to the scripts themselves.

Theoretically.

Edited by subtledoctor
Link to comment

@subtledoctorIt would be that, plus weaving it between all other mods my scripts recognize that may be adding, removing, and changing spells/abilities to ensure cohesion. I have an entire file designated to checking which mods the user has installed to assist in building out specific scripts to their install.

There are some mods that add onsie twosie spells which are easier to do, then there are others that shake everything up. SR(R) mandated creation of completely new scripts separate from vanilla due to how drastic it changes spells. Others, like Faith and Powers required what you describe above (I also break these down by individual components so the scripts are expressly made for exactly what the user has). 

With the list of 5E spell changes, does it take into account the new spell assignments that Faith and Powers adds? For example FnP changes

Spell(CLERIC_SLOW_POISON)

to

SpellRES("D5P1212")

My mod already takes account for this, but I would need to see how 5E changes and where best to insert it and adjust other checks throughout.

Edited by morpheus562
Link to comment
1 hour ago, morpheus562 said:

With the list of 5E spell changes, does it take into account the new spell assignments that Faith and Powers adds?

Yes, it takes into account any spells that are in the 5E system, which means all arcane spells valid for sorcerers (spwi[1-9][0-5][0-9]), all arcane spells that can be learned from scrolls, all divine spells valid for clerics/druids/shamans (sppr[1-7][0-5][0-9]), and all spells in the Faiths & Powers sphere system is it is installed. If you look at the d5zclons.2da file, the MEM column is the spell in your spellbook. So in your example the .2da file might contain something like this:

153 D5P1212 SPPR212 divine yes

You see this if you have both FnP and 5E installed. In this case you would memorize d5p1212.spl; and after resting the game will give you the d5z153i.spl innate ability; and when you use that ability, it casts sppr212.spl.

So in this case your script would account for FnP and look for HaveSpellRES("D5P1212") as the trigger, and presumably then will SpellRES("D5P1212") to cure someone of poison. With 5E Casting on top of FnP, you would replace that with HaveSpellRES("D5Z153I") and SpellRES("D5Z153I"). So your mod would check for FnP in order to build the scripts or know which ready-made scripts to use; and then separately check for 5E Casting in order to do the proper substitutions in those scripts.

(There are spells that don't get taken into account in the 5E system; divine and sorcerer spells that don't use ADD_SPELL, such as some of Olvyn's spells. This substitution would not allow your scripts to encompass such spells... but then again a player with 5E casting could not cast such spells so it doesn't really matter.)

A wrinkle: if someone installs the TnB Arcanist kit or the MnG Revised Bards, it will install the 5E system for arcane spells only, and only those kits will cast spells that way. In this case it would be more effort to adapt the scripts to 5E versions and distinguish which kits use which versions. i would not bother. But with the all-encompassing version of the 5E casting mod, where every (non-sorcerer and non-shaman) caster used those "d5z[ind]i.spl" files... it might work okay!

Edited by subtledoctor
Link to comment

Hi Morpheus,

I encountered instances of summoned enemy celestials (specifically fallen planetars) bugging out and doing nothing with the Enhanced Scripts for Summoned Celestials component installed. This occured for fallen planetars summoned by tolgerias, the lich before the unseeing eye, and the rukh transmuter in firkrags dungeon. Uninstalling the Enhanced Scripts for Summoned Celestials component fixed this for the fallen planetar summoned by the rukh. I have not been able to check any others yet. All SCS components were maxed out, on insane difficulty with double damage enabled. Attached is my weidu log after uninstalling the Enhanced Scripts for Summoned Celestials component, with no other changes.

WeiDU.log

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...