Author Topic: Dual-classing in the Krynn series.  (Read 585 times)

Offline Ishad Nha

  • Hero Member
  • *****
  • Posts: 941
Re: Dual-classing in the Krynn series.
« Reply #15 on: June 12, 2017, 09:52:56 PM »
"If you add active mage levels to another class, to a thief for example, the game will display something like "THIEFWHITE" in the character sheet if the class is set to thief. The class name will only be ok (WHITE MAGE / THIEF) if the class is set to mage/thief."
I get "Thief"
and  "Level 12/13"
I did my dual-classing with my spreadsheet. Major alterations were:
 90   Class                               6  (= Thief)
146   Level in Former Class        12
171   Thief Level                      13
177   Original Magic-User Level   12

After dual-classing was over I made this alteration:
170   Magic-User Level  12

"I also tried setting the highest mage level value at offset 163 but that didn't help with memorization and probably causes only problems."
Offset 163 is for level-draining, I call it: Magic-User Level (Pre-Draining)

"If you try to level up him in the game, he will be treated as a multiclass character and the mage levels will also be leveled."
In the qch file there is only one figure for XP, thus you can't have separate xp amounts for each class. See the beginning of my post #12, my approach is to Alter the level advancement tables so original class won't gain another level until it reaches a zillion xp. This requires UAShell-style hacking of Dqk.exe, which should be easy enough.

"I don't want to add any hacks that the game's character sheet won't display correctly or that breaks leveling up in the game."
This approach should work...

2) and at the second tier, we have 11 kits, four of which are True class:
Good Cleric, Neutral Cleric, Fighter, Knight of Crown, Knight of Sword, Knight of Rose, Ranger, White Mage, Red Mage, Thief, Paladin
Any hacking applies to all PCs using the hacked kit, this is an annoyance because it will impact design of the party.
("Kit" is Baldurs Gate 2 terminology.)
« Last Edit: June 12, 2017, 10:01:53 PM by Ishad Nha »

Offline jhirvonen

  • Jr. Member
  • **
  • Posts: 87
Re: Dual-classing in the Krynn series.
« Reply #16 on: June 12, 2017, 10:34:11 PM »
Please use the quote function...

I get "Thief" and  "Level 12/13"
You don't have the mage robe value set. I dualed a white mage to a thief. The character sheet probably displays the string of robe/god/knight whether you have levels in it or not.

In the qch file there is only one figure for XP, thus you can't have separate xp amounts for each class. See the beginning of my post #12, my approach is to Alter the level advancement tables so original class won't gain another level until it reaches a zillion xp. This requires UAShell-style hacking of Dqk.exe, which should be easy enough.
But this affects all classes? Not very elegant and probably wouldn't be used by many people if any if you need to patch the executable and it restricts other classes.

I don't think this is worth the trouble as you can just use multiclass elves or have single class mages in the party if you really want them to be high level.

Offline Ishad Nha

  • Hero Member
  • *****
  • Posts: 941
Re: Dual-classing in the Krynn series.
« Reply #17 on: June 13, 2017, 04:56:56 AM »
This is only early days, the idea has only recently been thought up, as time goes on I should get better at this...

I altered the Robe offset to be 1, now the name displayed is "ThiefWhite". It might be possible to hack something here.

FRUA executable is patched all the time with tbl files, nobody complains. My approach needs a DQK equivalent of UAShell.

Tables are only altered where this is required for dual-classing, default is they are not touched. There are eleven kits, so dual-classing will hopefully only affect a few of them.

Elves are Gone when they are Dead, in real terms.

Offline Ishad Nha

  • Hero Member
  • *****
  • Posts: 941
Re: Dual-classing in the Krynn series.
« Reply #18 on: June 18, 2017, 12:44:07 AM »
Idea is to make a double-class arrangement function like dual-class. It might only work for valid multiclass combinations. Alter the level advancement tables so original class won't gain another level until it reaches a zillion xp. While new class gets new levels at half the usual double-class xp, this is the same rate as a dual-classed character.
This will affect all holding the kit concerned, which may not be so great.
This involves UAShell-style manipulation of Dqk.exe...

One approach, example is Mage 12 to Thief:
PC starts as a 12 Mage at 1,000,001 xp.
PC then becomes a level 1 Thief at 0 xp.
PC 'regains' first class when level 13 Thief is reached, 13 Thief is reached at 660,001 xp.
Currently PC is single-class, normal advancement tables still apply at this point.

Normally, level 12 Red Mage is reached at 900,000 xp, while 13 Thief is reached at 660,001 xp. Double class and dual class have totally different xp schemes here.
One solution: advancement tables can be altered so that first class can use the advancement table of the second class. Thus both classes are at 660,001 xp.
Game will be saved and then totally shut down.

In DQK.exe:
Red Mage tables will be altered:

(1) to use the normal Thief table values till level 12 (inclusive).
(2) to make level 13 happen around 16 million xp, so there will be no levelling up in this class in the future. This is done by changing the final zero to a 1. Ditto levels 14 to 18.
Thief tables will be altered:
As a double class PC will be advancing at only half the rate. Thief tables will be altered to require only half the current xp. Ditto, the high level xp constant, 220,000 xp, will be reduced to 110,000 xp.
Simply make 14 Thief happen at 770,001 xp.

In character file (PC Name).qch:
Offset  90 (class) will be changed from 6 (Thief) to 16 (Mage/Thief).
Offset 146 (Level in Former Class) will be changed from 12 to 0.
Offset 170 (Magic-User Level) will be changed from 0 to 12.
Offset 177 (Original Magic-User Level) will be changed from 12 to 0.

Game will then be restarted.

This approach is designed for DQK, where all single class PCs have already reached their constant xp levels, levels where they always need a constant amount of xp to gain the next level. It will need to be adapted to DKK, where this is not the case.
It could be adapted to any 2E AD&D game where dual classing does not already exist.
« Last Edit: June 18, 2017, 12:47:34 AM by Ishad Nha »

Offline jhirvonen

  • Jr. Member
  • **
  • Posts: 87
Re: Dual-classing in the Krynn series.
« Reply #19 on: June 18, 2017, 08:07:34 AM »
If an elf dies, most players just cast the LOAD SAVE spell to fix that. Some hardcore players might even drop the character and create a new one.

If the elves being dead is an issue why not just change the race of a multi-classed elf to human?

The issue of multi-classed mages not getting to high enough levels can be fixed by having a pure mage in the party. To get mage levels over 30 you almost have to have a single-class mage unless you really grind the world map random encounters. Last time I played through the Krynn-trilogy, I got one mage to level 31.

What if a player wants to have a single-/multi-classed thief in the same party / game with the thief xp tables modified?
Planning the party composition is interesting in AD&D-games but not so much if you need to take hacked xp tables into account when selecting classes?

If you really want to go with that xp table modifying you should consider to programmatically patch the game's memory instead of the executable. Same goes for the character modifying. You can have the game running, you wouldn't need to touch the exe and can easily make changes on-the-fly / revert back to the original values.

Also, I don't know if GBC's level-up feature is much used but it uses text config files to get the xp tables so it ignores the changes made to the executable.

Offline Ishad Nha

  • Hero Member
  • *****
  • Posts: 941
Re: Dual-classing in the Krynn series.
« Reply #20 on: June 19, 2017, 04:11:38 AM »
I like the dual class option, anyone who doesn't can play without it.

Thieves are okay but it's my preference to have only one per party.
This is my typical line-up:
H Knight of Sword
H Paladin
E Cleric/Ranger
E Cleric/Wizard (W)
E Thief/Wizard (R)
H Wizard (W)

H = Human, E = Elf (Silvanesti or Qualinesti)
Thief=>Wizard is one possibility

XP.txt, you don't need to distinguish between gods of the same alignment, they all have the same class features except for special spells, said spells are not covered in this file anyway.
(I could alter XP.txt not the main program.)

Patch the game's memory is something I can look at later, when I am sure my approach will work for class combinations that are not valid double class.