Jump to content
Sign in to follow this  
Ishad Nha

Pen and Paper style Dual-Classing

Recommended Posts

"(1) It is valid for both the original game and Gem." Famous last words! Original game, not sure how the toolbar buttons are assigned?!

GemRB, find the "unhardcoded\bg2" directory. Open the file qslots.2da, you will see this:
SLOT1 SLOT2 SLOT3 SLOT4 SLOT5 SLOT6 SLOT7 SLOT8 SLOT9
MAGE 3 4 5 2 8 9 11 12 13

(all the other entries deleted for brevity...)

MONK 18 14 22 0 8 9 11 12 13

Find the name of the class whose toolbar buttons you want to modify.
Conventional class toolbar buttons are found in Slot 1 through Slot 4.
Delete the old unwanted value for a given button and choose a desirable new value from the list below:
0, Stealth
1, Thieving (Open Locks)
2, Cast a Spell
3, Quick Spell 1
4, Quick Spell 2
5, Quick Spell 3
6, Turn Undead
8, Use Item
9, Quick Item 1
11, Quick Item 2
12, Quick Item 3
13, Innate Abilities
14, Defend
15, Attack
16, Quick Weapon 1
17, Quick Weapon 2
18, Quick Weapon 3
19, Quick Weapon 4
20, Bard Song
22, Search (Find Traps)
100, Blank

(the above numbers were found in guibtact.2da.)
When you have finished save the 2da file.

Can't see where the toolbar buttons are set in the original game. If the table in BG2 is hard-coded into the program you may be able to use a FRUA-style approach? FRUA is Forgotten Realms Unlimited Adventures, a Gold Box game released in 1993. It produces designs/scenarios/mods that you can play. FRUA can be modified by altering the progam itself, this is done by a utility called UAShell.
You make your alterations, they are recorded in a file called Diff.tbl. To play a given design, you have UAShell alter the FRUA program with the values found in the relevant Diff.tbl file.
This approach would be good for anything at all that is hard-coded. I am not a lawyer so I don't know about its legality.

Before you can alter the table, you first need to find where it occurs.

Edited by Ishad Nha

Share this post


Link to post

Yes, this is hardcoded in the original and not as a table, so it's not simple exe hacking.

Share this post


Link to post

It does not have to be a nice, neat "width = A and height = B" table. It can be random offsets all over the program. But we must know where the offsets are.
A Diff.tbl would look like this:
(offset), (old value), (new value)
889D0 C5 C3
889D4 CB C9
8911C 48 4B
8911D 61 65
8911E 6C 6E
8911F 66 64
89120 6C 65

(It is the printout of a File Compare for an unmodded version of the program and the hacked version. As it has both old and new values it can be used to both install and uninstall a given design/mod.)
(For more information about FRUA see the FRUA & DUNGEON CRAFT Community Forums at http://ua.reonis.com/)
Short of finding the offsets there is nothing to be done with the original game's toolbar buttons. I tried fiddling with Keymap.ini, provide shortcut keys for all thieving functions, that had no effect on anything.

Edited by Ishad Nha

Share this post


Link to post

It has occurred to me that PCs having "notional" classes have no real levels in the classes concerned. This could be a real pain for those class abilities that have the class level as a variable. One solution is to have the class level variable turned into an absolute number, one class ability per level.

(For understanding of notional classes see post #5 in this topic.)

Edited by Ishad Nha

Share this post


Link to post
So, related, quite a while ago I was messing around with the multiclassing stuff. I managed to get the Sorcerer/Monk working, and I also managed e.g. a Druid/Wizard. There were some issues however.


Firstly, there is (IIRC) a known problem with item restrictions and suchlike. Nothing exists which truly emulates a Druid/Wizard.


I recall I had some issues with spellbooks or something, for the Druid/Wizard. I'm not sure if I could scribe scrolls, or something like that.


I also found that whilst it was easy to add the class combos, in a way which could be automated, there was only one space in the character creation list. The python for the GUI didn't, I don't think, have a scroll bar, and I didn't know any python so I wasn't sure how to add one. This mean that if I wanted Druid/Wizard, I couldn't have Sorc/Monk. This would be easily fixed for someone who knew what they were doing though, I suspect.


A lot of the issues will likely be specific to certain class combos, like the Monk's weirdness. Probably, just making a Fighter/Barbarian or something would be pretty straightforward.

Share this post


Link to post

yeah, extra scrollbars are easy. We have them on the kit window, since there wasn't a need before for the class one. When I created the sorcerer/monk and sorcerer/monk/cleric, I definitely didn't think about this at all.

 

Item restrictions would have to be done a different way (eg. more fields, an external table or whatever ees do if they addressed it).

 

Scribing scrolls should also be simple to fix, though I can't think of anything currently blocking a hypothetical druid/mage from doing so. We actually check for class, not spellbook type (a small fixme actually), for sorcerer-style learners.

Share this post


Link to post

For item usage, I use HLA "Use any Item", which is SPCL915:
ActionOverride(Player6,AddSpecialAbility("SPCL915"))
You rest, cast this spell and it is permament. When I get an item that might be of use to the 'Thief->Sorceror', I manually check whether she can use it, whether it is allowed to either of the Thief or Sorceror classes.

Share this post


Link to post

Pretty simple, it's an equipping effect, so items could have an arbitrary number. Then I guess the can-equip code checks for their presence.

Share this post


Link to post

New versions of Gem make it hard to customize the Toolbar buttons. I added the Stealth button to the Sorceror but it does nothing at all. The button definitely occurs but it does nothing. This was not a problem with previous versions.

Share this post


Link to post

because sorcerers aren't supposed to be able to do that.

Share this post


Link to post

Which one? Now we specifically check with levels (except in iwd2, which is much saner) to prevent inactivated dual-classed characters to retain their previous abilities.

Share this post


Link to post

"Which one?"
'Thief->Sorceror'

"Now we specifically check with levels (except in iwd2, which is much saner) to prevent inactivated dual-classed characters to retain their previous abilities."
It occurs to me that 'notional' dual classes are single class in Gem terms. Whereas real dual class have levels in two classes. Your check is a good thing for real dual class characters. You could limit the level check to PCs who actually have an inactive class.

Edited by Ishad Nha

Share this post


Link to post
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.

Sign in to follow this  

×
×
  • Create New...