Jump to content


Photo

iiSpellSystemAdjustments


  • Please log in to reply
85 replies to this topic

#1 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 14 June 2011 - 01:54 AM

Download link

Resurrected igi's Spell System Adjustments Mod v7
-------------------------------------------------

Posted Image

+) Contents
===========
1. About
2. (Un)Installation
3. Known Issues
4. Thanks to
5. Version History
6. Contact Details
7. The Imp Admits
8. Acknowledgment


+) Section 1. About
===================
The igi's Spell System Adjustments Mod (evolved from the Spell Refresh Mod) contains several components to alter various mechanics of
spell-casting.

The Spell Refresh components allow the casters to regain cast spells without the need to rest. This feature can reduce the requirement to rest (avoiding the ludicrous situation where players rest habitually to regain lost spells). The feature also opens a new way of playing - normal mages (and priests) can be played as a more flexible Sorcerer class, and new tactics are possible, as spells can become available mid-way through a battle.
The Spell System Adjustments Mod allows mage spells, priest spells and innate abilities to be treated differently, and allows the player to customize their experience. Spells are regained after a user-defined delays. And now there are several ways to determine that delay. The user can choose either the Spells to be regained only after a successful casting is completed, or that they can be regained after any casting, even if it was unsuccessful (e.g. the spell caster was hit while casting, and the spell was interrupted).

The components ask questions on the functionality of the determined delays, and after the delays are determined for each level, they are shown, after which you can agree to them or refuse and the outcome determines if the component is installed, or not, the not agreeing results in a error after which the component can be reinstalled or skipped.

I'll warn against too short timer delays, as for example the timers will run even inside an active Time Stop spell effect, so it can lead into a situation where a clever mage or an AI can stop the time... forever. :devil:
So, I'll warn against time limits that are less than 40 in the 9th level mage category. A good timer for them is from 5 minutes(240) to 40 minutes (1920) which should be the 8 game hours.

Also the spell that's restored this way is always the first memorized and available to be memorized spell of the same level as the casted one or lower, in the case the mage already has their spell levels spell full from restoring via spell absorbtion spells(Spell Trap), or by other means.

There are also two components to reward spell-casting classes for exercising their primary ability (casting spells) with XP. Fighters gaining XP for killing creatures is acceptable. Mages gaining XP for killing creatures is more questionable. This component aims to make a little more sense, giving XP for casting spells. Mage and Priest spells are contained in separate components (Priests gaining XP for spell-casting doesn't make as much sense as Mages gaining XP for spell-casting). The XP per spell cast can be set independently for each spell level, as can the maximum amount of XP per spell (so the player cannot progress to level 40 just by casting Magic Missile a few trillion times in the starting dungeon area).

Note that this mod can seriously affect game play, and that while the spell regain feature technically applies to enemy spell-casters, it would relies upon correct scripting, which or may not be the case in the default game. But with mods like the SCS and SCSII, the enemy mages will use this spell refresh for their advantage, although not self-consciously. So the permanent Time Stop feature is just an happy accident.


+) Section 2. (un)Installation
==============================
The Spell System Adjustments Mod is distributed using the WeiDU distribution package. To install, unzip the iiSpellSystemAdjustmentsxx.zip file (where xx represents the version number of the release), to the BG2 main directory. Then run the "Setup-iiSpellSystemAdjustments.exe" file, and follow the on-screen prompts.

To uninstall re-run the "Setup-iiSpellSystemAdjustments.exe" file, and follow the on-screen prompts, selecting "Uninstall" as required.


+) Section 3. Known Issues
==========================
The mod XP from spellcasting part of the mod makes use of the DPLAYER scripts, and therefore requires party AI to be switched on.
A large amount of script blocks are added the the game, which may cause possible slowdowns.

There shouldn't be any others... but some might creep up, so please inform me, if you run into errors in the contact point.


+) Section 4. Thanks to
=======================
Imp - Did nothing, really, well the copy paste was his doing but he did it totally off, and went to date it too
+ Wisp - Now we know it's your fault if this goes to the cheese as your observation made the coagulation happen
+ Igi - The Base of the mod
+ Avenger - DLTCEP
+ G3 - WeiDU patching code
+ Wes Weimer - WeiDU
+ IESDP - http://iesdp.gibberlings3.net/


+) Section 5. Version History
=============================
The Resurrected v7 [21/09/2011]
- United install path to total of four different timer functions added
- Component amount reduced to 4, while still giving more options Posted Image
- The calculated timers are shown before they are applied
- Re-.tra-fied the mod
- Readme's files made similar in all their incarnations
- The Clerical spell XP component re-targeted to edit the SPPRxxxx spells, instead of the faulty SPWIxxxx
- Updated to WeiDU 22900

The Resurrected v6 [11/09/2011]
- Typo corrected that made the larger spell files effects weird and could even brake the game on their account.

The Resurrected v5 [13/06/2011]
- The refreshment is limited to the casted spells level
- The refresh limits above the 255 seconds now actually work
- The refresh limit now has two components, the base delay for level 1 spells, and level based delay index
The Spanish and Polish installation languages have become incomplete as the new strings need to be re-.tra-fied.

V5 [02/09/2007]
- Added Polish translation (Thanks yarpen)
- Updated view readme code
- Updated to WeiDU 200

V4 [01/06/2007]
- Fixed bug limiting refresh delay to 255 or below
- Fixed bug causing install failures
- Removed 'Refresh Innates' components (as they could never work)

V3 [11/11/2006]
- Renamed mod to Spell System Adjustments
- Offer the option to refresh Innate abilities
- Added XP for casting components (Mage and Priest spells)

V2 [13/10/2006]
- Added Spanish translation (Thanks Immortality)

V1 [24/09/2006]
- Initial Release


+) Section 6. Contact Details
=============================
Feedback, comments, queries, questions and suggestion should be sent to Jarno Mikkola
http://www.shsforums...temadjustments/


+) Section 7. The Imp Admits.
=============================
Yes, the base of this mod was made by Igi a long time ago and as the above tools have become more through, the mod now has more room to fill without bugs.
Thanks to Igi's notes in the .tp2 file, I have been able to make it better in my view and so I hope that my overtake of the code and the support is allowed... Which Igi has in the past allowed... but if he wishes, to continue this or my version gone, I have no problems with it, nor do I have any arguments if anyone else wants to take this and make their own version, or use any parts of it on their own work/use.
Also my French and Polish skills are smaller than the field mouses, so I build the installer around the English translation and the v4, if there is someone able to translate the setup.tra file to any other language than Finnish and English, I have re-tra'ffed the installer and given .tra file so it can be used to make the translation of the entire mod.


+) Section 8. The acknowledgment.
=============================
Igi is back, and his mods, including the v1-v5 of this one can be found in http://iimods.com/
So this is the "pirate version" of the mod, still it will try eventually to become the official version, if Igi likes it, and why would he not.

Edited by Jarno Mikkola, 05 December 2012 - 01:36 PM.

Deactivated account. The user today is known as The Imp.


#2 Cerest

Cerest
  • Member
  • 157 posts

Posted 16 June 2011 - 07:12 PM

If I wanted to manually include this in a BWP project installation... and insert it into a modified install.bat file... where should I stick it? o.0

Before SCS? After SCS? After player AI scripts?

If you have an idea, please say so. I'm willing to spend the time to test out installation if you can give me a range.

Igi's Spell System Adjustment Mod ( v4) [link] - untested, probably incompatible with the Chosen of Cyric encounter and the Shadow Thief Improvements components of Rogue Rebalancing


From, here.

Though this is a bit old, is the attempt to include this in a megamod installation futile? (Stupid Xan!)

Edited by Cerest, 17 June 2011 - 12:49 AM.


#3 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 17 June 2011 - 12:50 AM

Before SCS? After SCS? After player AI scripts?

The general idea on the install order is that you should install this mod after all the spell mods, as this mod effects them directly. The AI's don't care which order you install this as they check the creature that has the spells memorized, so the install order doesn't matter as long as the effected spells are used.
I don't really know much about the spell casting XP part of the mod, but it shouldn't mind being installed first, last ... wherever so long as the scripts (dplayer2.bcs & dplayer3.bcs) are not overwritten, after it's installed.

Igi's Spell System Adjustment Mod ( v4) [link] - untested, probably incompatible with the Chosen of Cyric encounter and the Shadow Thief Improvements components of Rogue Rebalancing

From, here.
Though this is a bit old, is the attempt to include this in a megamod installation futile? (Stupid Xan!)

I think that that had never been cleared, because if you choose to install the mod with spell revision time of zero (Stupid Xan. :lol: ), the AI can and will stop to enjoy his never ending time stop, that I mentioned above. The v5 has far less of a chance to have that happen as the casted spells only revises up to the same level spells, so a level 8th spells don't revise the Time Stop spell like they did in the v4, as did the level 1-7 :wacko: ... and the revision time of the 9th level spells is the first amount + 8 times the second amount, after a level 9th spell has been casted. That and the 255 second delay time bug solution make this mod quite much more compatible easier to not mess up.
Personally I intend to include this mod in my own megamod install, among the others more experimental mods like the m7multikit mod, hidden kits etc.

Edited by Jarno Mikkola, 17 June 2011 - 01:24 AM.

Deactivated account. The user today is known as The Imp.


#4 Cerest

Cerest
  • Member
  • 157 posts

Posted 17 June 2011 - 02:09 PM

Quick and Long questions...

After mods that revise spells or after mods that add spells or both?

If it is after mods that add spells then installation after Vecna would apply?
(Looking at mod orders in the BWP install list)

Does the spell refresh regenerate the "mana" (so to speak) on sorcerers as well?

So the format is linear?
Delay=(level index)(level-1)+(Base Delay)

So If I put 100 as the base delay and 30 as the level index...
Delay=30*(level-1)+100

So on a level 3 spell...
Delay=30*(3-1)+100
Delay=30*(2)+100
Delay=160?

The readme doesn't cover the formula but only gives an example.

Is there a way for the user to easily change the formula?

Delay=(level index)(level-1)+(Base Delay)
seems... too linear.

Delay=(level index)(level-1)^(multiplier)+(Base Delay)

gives an increasing change in delays when the multiplier is more than one and decreasing change in delays when the multiplier is less than one. Most will probably prefer the increasing delays... I think this formula is much more appropriate.

If someone wanted it to be linear they can set the multiplier to be 1.

I've uploaded an excel file with this formula (had to change the file extension to .txt, you should change it back to .xlsx). I don't want to bog you down with work however, so if it is too complicated I'll gladly shut-up. I can try to dabble and change it if you can give me some direction :P

The problem I see are the decimals... is the installer pregenerating the delays or is the infinity engine doing so? If the installer is doing it I think simple floors and ceilings will fix decimal issues... but I'm not sure how the IE handles decimals?

Attached Files


Edited by Cerest, 17 June 2011 - 03:48 PM.


#5 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 17 June 2011 - 02:50 PM

After mods that revise spells or after mods that add spells or both?
If it is after mods that add spells then installation after Vecna would apply?

Both, so after the Vecna mod in the newest order(BiG World v10 english.pdf) would be a good place yes.

So the format is linear?

Yes it's linear, if you answer with "100", and "30" for the arcane spells, the first level spells revise in 100 seconds, while the level 2 spell revise in 130, the 3rd in 160, the 4th in 190, the 5th in 220 seconds, the 6th in 250 seconds, the 7th in 280, the 8th in 310, and 9th in 340 seconds.
You could actually put the divine spells have "100" and "40", and so have the first level spells revise in 100 seconds, 2nd in 140, 3rd in 180, 4th in 220, 5th in 260, the 6th in 300, while having the 7th level spells revise in 340 seconds. :D

Does the spell refresh regenerate the "mana" (so to speak) on sorcerers as well?

Yes apparently it does, don't ask me how. ^_^

Edited by Jarno Mikkola, 17 June 2011 - 03:18 PM.

Deactivated account. The user today is known as The Imp.


#6 Cerest

Cerest
  • Member
  • 157 posts

Posted 17 June 2011 - 03:17 PM

Not so ninja edit... look at the earlier post :P

WRITE_LONG  ("%fx_off%" + 0x0e) ((SpellRefreshTime) + (spell_level - 1)*(Index)) // User-defined values

Hmm... this looks like the same formula.
SpellRefreshTime is the base level 1 time? I only see isolated pockets of it. It should be possible to put it to a power of a constant right?

Lets say for example i put

WRITE_LONG  ("%fx_off%" + 0x0e) ((SpellRefreshTime) + (Index)*(spell_level - 1)^(1.2) // User-defined values

How does this deal with decimal values? @_@

Ideally I would love to see,

WRITE_LONG  ("%fx_off%" + 0x0e) ((SpellRefreshTime) + (Index)*(spell_level - 1)^(exponent) // User-defined values

Where exponent is also user defined

Edited by Cerest, 17 June 2011 - 07:17 PM.


#7 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 18 June 2011 - 02:42 AM

How does this deal with decimal values? @_@

No well at all, as in it doesn't.

Deactivated account. The user today is known as The Imp.


#8 Cerest

Cerest
  • Member
  • 157 posts

Posted 18 June 2011 - 07:12 AM

There are no ceiling or floor commands at all?

#9 Cerest

Cerest
  • Member
  • 157 posts

Posted 18 June 2011 - 08:09 PM

I get to double post? :o yay!

Spell Refresh does not seem to be compatible with some of my mods... casting armor of faith=>contingency and casting bless causes a CTD :lol:
I'm not sure that was intended. I may have incompatible modifications, bu

I'll keep the files in an archive so I can change-log crap for you.

Attached Files

  • Attached File  Logs.zip   4.33MB   762 downloads

Edited by Cerest, 19 June 2011 - 02:42 PM.


#10 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 20 June 2011 - 11:14 AM

There are no ceiling or floor commands at all?

I doutb that there's really a room for those when you are actually just writing a word, that is a number between zero and 0xffff ffff ... = 4294967295.

I have seen a few similar reports, where the cause is still unclear...

Deactivated account. The user today is known as The Imp.


#11 Cerest

Cerest
  • Member
  • 157 posts

Posted 23 June 2011 - 07:06 PM

I played around with it some more... I think the problem lies within the XP components of the mod.

I reinstalled and have encountered no bugs with the refreshing system so far.

I've attached my log in case you want to look at it.
Also note that I have pretty modified install .bat @_@

I'm also wondering what I should put in the .install bat for automated installation

Call %INST% IISPELLSYSTEMADJUSTMENTS "2002" 30 30
Call %INST% IISPELLSYSTEMADJUSTMENTS "2004" 30 30

Is this the proper format when there are two player prompts in the component? I put it into my install bat last time and It didn't like it @_@ (the cmd window closed to desktop).

Attached Files


Edited by Cerest, 23 June 2011 - 07:09 PM.


#12 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 24 June 2011 - 10:24 AM

Also note that I have pretty modified install .bat @_@

I'm also wondering what I should put in the .install bat for automated installation

Call %INST% IISPELLSYSTEMADJUSTMENTS "2002" 30 30
Call %INST% IISPELLSYSTEMADJUSTMENTS "2004" 30 30

Is this the proper format when there are two player prompts in the component? I put it into my install bat last time and It didn't like it @_@ (the cmd window closed to desktop).

Well, there's a bit of a problem in that as I don't know what the "Call %INST%" thing does in the BWS .bat, and it's likely that the "IISPELLSYSTEMADJUSTMENTS" isn't a known variable for it...

But the basic .bat commands should work as good as they do with normal .bat installers, so taking quidance from there and especially from here, I would make a .txt file that has the numbers, and try something alike this:
type custom_input.txt | Setup-iiSpellSystemAdjustments.exe --language 0     --force-install-list 2002 --skip-at-view | %M%
type custom_input.txt | Setup-iiSpellSystemAdjustments.exe --language 0     --force-install-list 2004 --skip-at-view | %M%
With just the following in the "custom_input.txt" -file:
30
30
Edit, yes, the .txt needs to have a clean last line:
This is now tested, and working !

Edited by Jarno Mikkola, 24 June 2011 - 03:07 PM.

Deactivated account. The user today is known as The Imp.


#13 Cerest

Cerest
  • Member
  • 157 posts

Posted 24 June 2011 - 04:18 PM

Call %INST% iiSpellSystemAdjustments "2002" "TYPE SSA.txt"
Call %INST% iiSpellSystemAdjustments "2004" "TYPE SSA.txt"

This works too :)

SSA.txt is simply

30
30

Thanks jarno! Someone has shamelessly put this mod in the BWP page

EDIT: CTD? @_@
http://www.shsforums..._0

Edited by Cerest, 24 June 2011 - 07:23 PM.


#14 i30817

i30817
  • Member
  • 611 posts

Posted 22 August 2011 - 08:52 AM

Wouldn't it be better to give a random chance (altered by spell level and/or caster level) of restoring spells after combat (with say, certainty of restoration after 5 combats without restoration?) It would remove the need for a timer no?

Edited by i30817, 22 August 2011 - 08:56 AM.


#15 i30817

i30817
  • Member
  • 611 posts

Posted 22 August 2011 - 12:19 PM

Also, can this be installed with BWP?

I'm thinking of putting this:
Call %INST% iiSpellSystemAdjustments "0 2002 2004 2006 2007 2009"

before biffing; is this correct? Is the zero needed? Should i use INSTQ instead of INST?

#16 the bigg

the bigg

    2083 is a prime number.

  • Modder
  • 3331 posts

Posted 22 August 2011 - 12:35 PM

Having stumbled on this thread, I'd like to say for posterity that (spell_level - 1)^(1.2) can be written as (spell_level - 1) ** (6 5). Refer to the WeiDU readme if that wasn't self-explainatory enough, or the Romance component of tb#tweaks for sample usage.

Edited by the bigg, 22 August 2011 - 12:35 PM.

Italian users: help test the Stivan NPC!

Author or Co-Author: WeiDU - Widescreen - Generalized Biffing - Refinements - TB#Tweaks - IWD2Tweaks - TB#Characters - Traify Tool - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics - Nalia Mod - Nvidia Fix
Code dumps: Detect custom secondary types - Stutter Investigator

If possible, send diffs, translations and other contributions using Git.


#17 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 22 August 2011 - 12:40 PM

Wouldn't it be better to give a random chance (altered by spell level and/or caster level) of restoring spells after combat (with say, certainty of restoration after 5 combats without restoration?) It would remove the need for a timer no?

It would be bad system as there's no good ways to make sure the combat is actual game event and not a trick made up by the player.
Besides the timer is far more customizable than most things.

Also, can this be installed with BWP?

I'm thinking of putting this:
Call %INST% iiSpellSystemAdjustments "0 2002 2004 2006 2007 2009"

As seen from the before it can be installed in BWP... but you need to type the answers to the timer questions! And that's where the "TYPE SSA.txt" command comes into, as the file(SSA.txt) just contains the timer info, the to 30's...
The zero is a hidden readme's reading... so it's not needed.

Having stumbled on this thread, I'd like to say for posterity that (spell_level - 1)^(1.2) can be written as (spell_level - 1) ** (6 5). Refer to the WeiDU readme if that wasn't self-explainatory enough, or the Romance component of tb#tweaks for sample usage.

EDIT: Return, after drooling all over the readme, I love this. :wub:
Inevitably this will cause a need for a v6v7, and another question to the install, "What form of function you wish to use"... as there's still a few secrets I need to fan out.

Edited by Jarno Mikkola, 11 September 2011 - 10:47 PM.

Deactivated account. The user today is known as The Imp.


#18 i30817

i30817
  • Member
  • 611 posts

Posted 22 August 2011 - 07:51 PM

What's the numbers to add the xp rewards for casting spells to BWP bat file (i'm assuming the 2002 and 2004 is correct for the others, like Cerest wrote)?

(do they need inputs too?)

Edited by i30817, 22 August 2011 - 08:06 PM.


#19 i30817

i30817
  • Member
  • 611 posts

Posted 22 August 2011 - 08:10 PM

Help! I'm not certain of the numbers (of the other effects too) and the installation is midway!

Edit: NVM found out about --list-components

Edit2: uh, do i need a input file for the spell xp part?

Edited by i30817, 22 August 2011 - 08:33 PM.


#20 Jarno Mikkola

Jarno Mikkola

    The Imp in his pink raincoat.

  • Member
  • 10911 posts

Posted 22 August 2011 - 10:09 PM

Edit2: uh, do i need a input file for the spell xp part?

Yes... how, I don't know, cause I haven't actually played game with the components... the components are the original igi's.
So I would suggest that you either try the mod first and make a list of the things you write to a file before you automate it. Or use the pause -function in the .bat file.

Deactivated account. The user today is known as The Imp.