Jump to content


Photo

Druidic sorcerer spells per level ( and other) bugs


  • Please log in to reply
124 replies to this topic

#61 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 08 February 2016 - 05:59 PM

With EE, the kit will be a regular kit for the game concerned, chosen at creation. Hence you won't need to have separate kits for each of the EE games, nor will you need the ENGINE/GAME_IS code.

I have a table that shows the correct spell levels for a given set of level, Wis and Chr.

For reasons that I don't currently understand, when the game finishes, spells seem to be persistently +1 per level more than they should be, according to the number of spells specified by the manual. That is why the author gave -2 spells per level in SPDMMEM.spl.

When creating a DS, after the game starts and the first cutscene ends, wait a good 5 seconds for the game to process all the scripts...


Edited by Ishad Nha, 11 February 2016 - 05:19 AM.


#62 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 11 February 2016 - 12:46 AM

I can't get this spell slot allocation to work out right...
One approach is to draw up a custom MxSplSrc.2da, valid for the given PC only. This won't allow for the varying of spell slots with variation in Wis/Chr scores. Like that coming from a Ring of Human Influence. It will mess up true class Sorcerers and those who have other Sorcerer kits.
It is simple to draw up a spreadsheet with the required tables. Then you paste the output into the 2da file.
        
None of the Sorceror kits can be dual-classed. What you might be able to do is have an imaginary first class of your own choosing.
If attempting a Thief -> Sorceror dual class:
Game plan is to create the PC as a Sorceror. Now he won't have access to the Thieving buttons. You can alter Keymap.ini to give hot keys to the explicit abilities concerned:
Thieving=K
Stealth=S
Trap Detection=N
I tested this and it works in actual practice.*
Set Snare ability can be added as: SPCL412 Set Snare.
Backstabbing will be problematic, it could be added as an ability.
Some ability to use Thief items can be given by SPCL915 HLA: Use Any Item. I have not tested this yet.
*(This can be extended to other classes too:
Turn Undead=T
Battle Song=B)

Abilities with a class level variable could be a hassle. Notional classes give no levels in the classes concerned, maybe replace the level variable with a fixed number. The notional, imaginary, dual-classing happens at a fixed imaginary level in the first class. If starting BG2, a Thief should be at level 8, so the fixed number would be 8. So you could award the Thief with ~70,000 imaginary xp as a Thief and 19,000 actual xp as a Sorceror. You could use a script to set his level to 4.

Here, explicit innate abilities means abilities that must be used before they take effect, like those found in the Innate Abilities menu. Implicit abilities are always in effect.



#63 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 11 February 2016 - 05:16 AM

For reasons that I don't currently understand, when the game finishes, spells seem to be persistently +1 per level more than they should be, according to the number of spells specified by the manual.

What manual ? The one that the game came with has very many things wrong with it. Also all the mage kits have a +1 spell per level, in case you do not know, at least in the non-EE games. This is cause they are mage-"specialists". Including the Sorcerer.
Here's the original table that the unaltered game has:

2DA V1.0
0
        1   2   3   4   5   6   7   8   9
1       1   0   0   0   0   0   0   0   0
2       2   0   0   0   0   0   0   0   0
3       2   1   0   0   0   0   0   0   0
4       3   2   0   0   0   0   0   0   0
5       4   2   1   0   0   0   0   0   0
6       4   2   2   0   0   0   0   0   0
7       4   3   2   1   0   0   0   0   0
8       4   3   3   2   0   0   0   0   0
9       4   3   3   2   1   0   0   0   0
10      4   4   3   2   2   0   0   0   0
11      4   4   4   3   3   0   0   0   0
12      4   4   4   4   4   1   0   0   0
13      5   5   5   4   4   2   0   0   0
14      5   5   5   4   4   2   1   0   0
15      5   5   5   5   5   2   1   0   0
16      5   5   5   5   5   3   2   1   0
17      5   5   5   5   5   3   3   2   0
18      5   5   5   5   5   3   3   2   1
19      5   5   5   5   5   3   3   3   1
20      5   5   5   5   5   4   3   3   2
21      5   5   5   5   5   4   3   3   2
22      5   5   5   5   5   5   3   3   3
23      5   5   5   5   5   5   3   3   3
24      5   5   5   5   5   5   4   3   3
25      5   5   5   5   5   5   4   4   3
26      5   5   5   5   5   5   4   4   3
27      5   5   5   5   5   5   4   4   4
28      5   5   5   5   5   5   5   4   4
29      5   5   5   5   5   5   5   5   4
30      5   5   5   5   5   5   5   5   4
31      5   5   5   5   5   5   5   5   4
32      5   5   5   5   5   5   5   5   4
33      5   5   5   5   5   5   5   5   4
34      5   5   5   5   5   5   5   5   4
35      5   5   5   5   5   5   5   5   5
36      5   5   5   5   5   5   5   5   5
37      5   5   5   5   5   5   5   5   5
38      5   5   5   5   5   5   5   5   5
39      5   5   5   5   5   5   5   5   5
40      5   5   5   5   5   5   5   5   5

Edited by The Imp, 11 February 2016 - 05:17 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#64 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 11 February 2016 - 05:30 AM

"What manual?"
The DS kit's own PDF manual.
"The one that the game came with has very many things wrong with it."
No Sorcerer spell tables too.

"Here's the original table that the unaltered game has:"
You are displaying MxSplWiz.2da and the Sorcerers use MxSplSrc.2da? I don't think you can escape the use of the official spell table for the class concerned.


Edited by Ishad Nha, 16 March 2016 - 04:50 AM.


#65 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 11 February 2016 - 05:52 AM

You are displaying MxSplWiz.2da and the Sorcerers use MxSplSrc.2da? I don't think you can escape the use of the official spell table for the class concerned.

The vanilla Sorcerer uses that(MxSplWiz.2da +1) table to dictate on how many spell charges they have per level.

They use the other table(MxSplSrc.2da) to tell how many spells they can learn per that specific level, and also if the kit is made via script or other means, it can fail badly, because the usage of the learn this many spells is only checked relatively to the old table... so if the number is the same as the former, example:

10      5   4   3   3   2   0   0   0   0
11      5   4   4   3   2   0   0   0   0

And you don't actually have that many spells, in this example 2 level 5 spells. You might not get other even if the table specifically says 2, because the former level had a 2 too.. you only get one of the 3rd level spell cause they differ.


Edited by The Imp, 11 February 2016 - 05:53 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#66 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 11 February 2016 - 04:43 PM

My understanding is that SplSrcKn.2da details the number of spells that you can learn and that MxSplSrc.da details the number of spells that you can cast. IESDP says this too. (IWD2 has a "SplBrdKn.2da" file, unlike BG2.)
Easy way to check this is to *really* alter the numbers on the two files, that should prove what is going on! Make the two files very different to each other.
Edit:
This problem is best resolved by an experiment.
Spells known varies with alterations to SplSrcKn.2da, thus you would only be allowed to choose the number of spells to learn that the file allowed. You could start choosing 1 per level, 5 per level, whatever. That is what happened too, alterations to SplSrcKn.2da immediately affected the number of spells offered to you.

"The vanilla Sorcerer uses that(MxSplWiz.2da +1) table to dictate on how many spell charges they have per level."
Usually Specialist Wizards have the same number of spells but this is not always the case, 155 spell slots are equal but 80 are not. I put the two spell tables through a spreadsheet.

"They use the other table(MxSplSrc.2da) to tell how many spells they can learn per that specific level"
Alter it and see what happens...


Edited by Ishad Nha, 11 February 2016 - 10:26 PM.


#67 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 23 February 2016 - 05:40 PM

I will be taking time out to playtest the EE version of the Geomantic Sorcerer...



#68 Greenhorn

Greenhorn
  • Member
  • 720 posts

Posted 24 February 2016 - 02:24 AM

I wish you bug free testing...



#69 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 25 February 2016 - 03:31 AM

Geomantic Sorcerer seems to work okay in BG2. Party is in Chapter 6, nearing Suldanesselar.
To get the mod to work in BGT needs:
altered Clab file to enable a level 1 start, this has been done for the EE version.
a means of bestowing the kit, this can be a simple clause in an area script.

 

The DS mod is workable, with a few workarounds.
What is wrong the Druidic Sorcerer spell progression? I don't know. It seems like it should work and it does not. There may be some problem with the game engine. In which case the idea is too advanced for the capabilities of the IE engine, it would then need to be dropped.
I suggested a work-around of altering the Sorcerer spell table.

Quick fix for item usage, bestow a Thief HLA: SPCL915 - Use Any Item. Just remember to make sure that an item is usable by a Druid or a Mage, before you try to equip it.

Stick this in a script:
            ActionOverride(Player#,AddSpecialAbility("SPCL915"))

            For example:
IF
    Global("IshGame","AR0602",0)
    Class(Player2,SORCERER)
    CheckStatGT(Player2,12,WIS)
    CheckStatGT(Player2,8,CHR)
    !Alignment(Player2,LAWFUL_GOOD)
    !Alignment(Player2,LAWFUL_EVIL)
    !Alignment(Player2,CHAOTIC_GOOD)
    !Alignment(Player2,CHAOTIC_EVIL)
    !Race(Player2,ELF)
THEN
    RESPONSE #100
        ActionOverride(Player2,AddKit(D_SORCERER))
        ApplySpellRES("CA#STLOS",Player2) // No such index
        ActionOverride(Player2,AddSpecialAbility("SPCL915"))
        SetGlobal("IshGame","AR0602",1)
END

Trial and error can deduce the Player# linked to the DS.
This gives you the innate ability Use Any Item. You only need to use this ability once.
Whatever happens, other Mages won't be messed around!

 AddSpecialAbility(S:ResRef*)
This action adds the specified spell to the active creature. The message <creature_name> has gained a special ability: "Ability" is displayed in the message log.
 


Edited by Ishad Nha, 25 February 2016 - 05:14 AM.


#70 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 25 February 2016 - 05:34 AM

UAI... Yeah, and it also allows you to were armors that disable your spell casting... like say Leather armor, and Full Plate. And Carsomyr +5. A few, you won't even notice them, side effect, right.
 
this can be a simple clause
Yea...
 
 
 in an area script.
No !
 
It is better to do it in a better way. An invisible creature summoned by the kits clab file, not a area script that effect every game the mod is installed. Yes, it effects even if you make the scripts that you try to reduce the possibility of non wanted actions. This is why the clab approach is the only good way to do this.
 
Here's a way to make a specifically kitted fighter into being a kitted sorcerer in a BGT-weidu game via script... the creature is summoned by the characters clab file, so it can use the special script command, summoner of myself:
ActionOverride(LastSummonerOf(Myself), xyz)...

And the target object:
LastSummonerOf(Myself)
IF
	Kit(LastSummonerOf(Myself),ijgrayf)
	Class(LastSummonerOf(Myself),FIGHTER)
	Global("IJ#graydragon","GLOBAL",0)
	ActionListEmpty()
THEN
	RESPONSE #100
		ChangeClass(LastSummonerOf(Myself),SORCERER)
		SetGlobal("IJ#graydragon","GLOBAL",1)
		Continue()
END

IF
	Global("IJ#graydragon","GLOBAL",1)
	HasItemEquiped("ijidea1",LastSummonerOf(Myself))
	HasItemEquiped("staf01",LastSummonerOf(Myself))
THEN
	RESPONSE #100
		SetGlobal("IJ#graydragon","GLOBAL",2)
		ActionOverride(LastSummonerOf(Myself),AddKit(IJGRAYD))
END

IF
	Global("IJ#graydragon","GLOBAL",2)
THEN
	RESPONSE #100
		DestroySelf()
END
The last action is there to kill the summoned creature.

Edited by The Imp, 25 February 2016 - 05:48 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#71 Greenhorn

Greenhorn
  • Member
  • 720 posts

Posted 25 February 2016 - 06:42 AM

You know Imp, there are some really good kits in your megamod kits pack, some of them are my all time favorites like Moon knight, Bladesinger, Apprentice and there is plenty more interesting choices. Too bad I can't use it in BWS ( yeah I know, many of these kits are already there added by various mods but I would still like to use some of them, like Moon knight because I don't intent to install NEJ). 



#72 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 25 February 2016 - 06:54 AM

You mean in a EE BWS games ? Yeah, they aren't compatible with that game. I haven't added the additional functionality for that.
I also need to execute a renaming of all the spell file names to make the kits more compatible with larger moded gaming. Aka I can't use SPCL***.spl files as innates, as they probably should all start with ij# -prefix. I need to find a motivation ..

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#73 Greenhorn

Greenhorn
  • Member
  • 720 posts

Posted 25 February 2016 - 07:09 AM

You mean in a EE BWS games ? Yeah, they aren't compatible with that game. I haven't added the additional functionality for that.
I also need to execute a renaming of all the spell file names to make the kits more compatible with larger moded gaming. Aka I can't use SPCL***.spl files as innates, as they probably should all start with ij# -prefix. I need to find a motivation ..

No, I mean BGT customization  game, that is what I will install, soon hopefully. Yes, you only made Moon knight EE compatible, thank you one more time for that. Well, I hope your creative muse will strike you with arrows of motivation eventually...  :)



#74 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 26 February 2016 - 12:36 AM

"-Can ... use armor no heavier than studded leather.
-At level 5, can maintain spellcasting abilities while wearing light armor.
-At level 7, can simultaneously wear armor and robes. "
"UAI... Yeah, and it also allows you to were armors that disable your spell casting... like say Leather armor, and Full Plate."
As a Wizard they will be into Bracers not armor anyway. Then there is the -2 penalty to Strength. In theory they can wear the best armor around, in actual practice they won't want to. They won't be the strongest members of the party. Then they need to carry equipment...

 

-At level 5, can maintain spellcasting abilities while wearing light armor.
For a BGT Druidic Sorcerer starting in Candlekeep, you might want to have this ability moved to level 1.

Carsomyr +5, any sane party would give this to one of the front rank members, who has much better hp, Thac0 and number of attacks! That way the Sorcerers can concentrate on spellcasting. Sorcerers won't have Pips, proficiency, in any of the Sword types.


Edited by Ishad Nha, 26 February 2016 - 12:37 AM.


#75 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 26 February 2016 - 01:10 AM

Seems to me that you don't live in a cheese factor, or factor that at all in.

See there's these 3 spells:

Protection from Magic Weapons; Hit point don't really matter when you can't be hit at all.

Tenses Transformation; sorry fighter but your thac0 .. I have the exact same as your class and I cast spells on top of that before the engagement, haste, imp. haste, damage based sequencers... and the double HPs are nice too, and the AC bonus. Summons... the warriors become quite useless, after the first dozen levels, as mage based parties don't really need healing either. But that's the game, not your fault.

Time Stop; Thac0 and AC doesn't matter, as you will be auto hitting the enemy, while they stand there ... as you do your quick silver impression.

 

That's the obvious, there's plenty of others. :devil:


Edited by The Imp, 26 February 2016 - 01:42 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#76 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 26 February 2016 - 03:18 AM

My BG2 line-up:
Abdel Adrian    Paladin (Undead Hunter)
Keldorn    Paladin (Inquisitor)
Anomen    Cleric (Helm)
Aerie    Cleric (Lathander)
Imoen    Thief -> Mage
Jaheira    Geomantic Sorcerer
If you made Jaheira into a Druidic Sorcerer with Use Any Item, there are plenty of other party members who can use powerful weapons. She would not be a cheese factory. Players don't have to cheat if they don't want to...

You could use the spells to turn your mage into a warrior:
(1) Protection from Magical Weapons (Abjuration)
Duration: 4 rounds
Due to the nature of this spell with the short speed factor and duration it is mainly used to buy the wizard a few rounds in the thick of combat.  This effect lasts for the duration of the spell or until dispelled.
(2) Tenser's Transformation (Alteration)
NOTE: This spell does not give the caster any extra attacks, and all magical abilities (both cast and innate) are unusable in the transformed state.
(3) Time Stop: how about hit them with some nasty spells instead?

 

I will have to try this kit out soon.

Geomantic Sorcerer kit is working properly. Only areas in the DS kit that we need to worry about are those where the two kits differ: Wis,Cha spell progression and item usage.


Edited by Ishad Nha, 26 February 2016 - 05:31 AM.


#77 Ishad Nha

Ishad Nha
  • Member
  • 80 posts

Posted 27 February 2016 - 12:33 AM

Items, I only see two possible approaches:
(1) the current one, if you have a single-class Generalist Mage he/she can use any items that the DS can use. I assume that it is possible to stop specialist Mages from using DS items (items usable by the DS and no other Wizards), but I have not actually tried this.
(2) Use Any Item where other Mages can't use DS items at all.

BEGIN ~Allow Sorcerer's to use Druid Items. All sorcerer's will be affected, but life's never easy is it?~

COPY_EXISTING_REGEXP GLOB ~.*\.itm~ ~override~
  READ_BYTE 0x20 "mage"
  READ_BYTE 0x21 "druid"
  WRITE_BYTE "0x20" ("%mage%" BAND "0b11111011") //Makes usable by Mages
  [ Here you write three Bytes: 29,2D,2F ]
  IF_EVAL (("%druid%" BAND "0b01000000") = "0b00000000")// if it is usable byDruids
  BUT_ONLY_IF_IT_CHANGES    
 
I am assuming you can use WRITE_BYTE four times in a row.
My understanding is that the DS immunity to the disabling of Wizard spellcasting comes from SPDMARSC.SPL in the Clab file, it does not come from the items themselves.



#78 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 27 February 2016 - 02:12 AM

I am assuming you can use WRITE_BYTE four times in a row.
Well if you write to different byte marker, yeah. But that's totally unnecessary, as you just allow the sorcerers to use items that druids can. Yeah, all the mage kits allow you to use non mages items as the mage class itself will restrict the specialist mages from using them.
You need as PATCH_IF ... based on the READs, before the WRITEs... and so forth:
 
COPY_EXISTING_REGEXP GLOB ~.*\.itm~ ~override~
  PATCH_IF ("%SOURCE_SIZE%" > "0x71") BEGIN // this is always good to do
    READ_BYTE ~0x20~ ~ifmage~
    READ_BYTE ~0x21~ ~ifdruid~
    IF_EVAL (("%ifdruid%" BAND "0b01000000") > "0b00000000") BEGIN
      WRITE_BYTE 0x20 (~ifmage~ BAND 0b11111011)
      END
  END
  BUT_ONLY 
I, honestly, have not used the IF_EVAL in this ... but it should work this way. Not 100% sure though.
Yes, this is problematic in the fact that this also allows ALL the mages to uuse the druid items.

Edited by The Imp, 27 February 2016 - 02:18 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#79 Greenhorn

Greenhorn
  • Member
  • 720 posts

Posted 27 February 2016 - 02:13 AM

Hm, forgive me if I speak utter nonsense here, as I have no clue about modding, but is it possible to make copy of UAI ability and then rename it and hack it to use only druid items? Probably tried that approach in one way or another... Yeah, I sound like I'm talking from my arse and you are free to laugh  and throw rotten tomatoes at me ...  :clown:



#80 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 27 February 2016 - 02:45 AM

Hm, ..., but is it possible to make copy of UAI ability and then rename it and hack it to use only druid items? Probably tried that approach in one way or another...

Ouh I wished it was possible, but it's unfortunately not. And if someone finds out that this is untrue, they can throw me with rotten tomatoes as long as they give me the code. :ROFL:

 

I don't mind talking about this, as it's not nonsense at all.


Edited by The Imp, 27 February 2016 - 02:57 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.