Death Variable, INTER/P/J/D dialogue change via script action, lift the 1-9 limit from random tables
swit
Member, Translator (NDA) Posts: 495
edit: request 3 fulffiled in BG2:EE patch 1.3: http://forum.baldursgate.com/discussion/40332/bg-2-ee-expanded-random-tables-from-iwd-ee
---------
I'd like to request following new features that would make modding more efficient and easier to maintain compatibility between mods.
1. Allow us to change Death Variable via script Action or spell opcode.
Example implementation: add new "8 DV" entry to scrlev.ids and allow "ChangeAIScript" action to accept it. Example usage: ChangeAIScript("IMOEN2",DV)
2. Allow us to change dialogue files normally assigned by pdialog.2da and interdia.2da
Example implementation:
- create a new ids file with following entries:
0 DIALOG //standard dialogue file
1 INTER //inter dialogue normally assigned by interdia.2da
2 POST //post dialogue normally assigned by pdialog.2da
3 JOIN //join dialogue normally assigned by pdialog.2da
4 DREAM //dream dialogue normally assigned by pdialog.2da
- expand upon existing "SetDialog(S:DialogFile*)" Action to accept flags from the above mentioned IDS file. No flag = current behavior (0 in IDS).
Example usage: ChangeAIScript("BIMOEN2",INTER)
3. Also a request that would allow us to make mods that adds truly random generated loot without nasty long scripts. There is a reason why there is no such thing released for all these years (G3 Item Randomizer Mod doesn't count, as it is limited in scope by the current engine). What I would like to see is removing the current random treasures table limit that only accepts 9 rows instead of 99.
Here is how the current random items work:
when a creature or container has item of filename RNDTREx#.ITM, where x=any character (even letters and symbols, and has no bearing on how RNDTREAS.2DA is read), and #=the row number of RNDTREAS.2DA to use (can be 1-9), RNDTREx#.ITM is replaced by the randomly generated item.
How it should work: "x" character should not be ignored, so we could assign rows from 1 to 99 instead of 1-9 (5 of them are already reserved by the vanilla game).
Same deal with other random tables: rndequip.2da, rndmagic.2da, rndscrol.2da, rndwep.2da.
Why it is worth it? The prospect of true random generated loot, unique random loot/weapons/magic for unique monsters, less conflicts between mods etc. How about randomized damage dealt by undroppable weapons assigned to some creatures? As you can imagine removing the 9 rows limit would really open up possibility to add some great stuff to the game.
How feasable are these requests? Any chance for either of them to be implemented? @Dee? @AndreaColombo?
Thanks in advance.
---------
I'd like to request following new features that would make modding more efficient and easier to maintain compatibility between mods.
1. Allow us to change Death Variable via script Action or spell opcode.
Example implementation: add new "8 DV" entry to scrlev.ids and allow "ChangeAIScript" action to accept it. Example usage: ChangeAIScript("IMOEN2",DV)
2. Allow us to change dialogue files normally assigned by pdialog.2da and interdia.2da
Example implementation:
- create a new ids file with following entries:
0 DIALOG //standard dialogue file
1 INTER //inter dialogue normally assigned by interdia.2da
2 POST //post dialogue normally assigned by pdialog.2da
3 JOIN //join dialogue normally assigned by pdialog.2da
4 DREAM //dream dialogue normally assigned by pdialog.2da
- expand upon existing "SetDialog(S:DialogFile*)" Action to accept flags from the above mentioned IDS file. No flag = current behavior (0 in IDS).
Example usage: ChangeAIScript("BIMOEN2",INTER)
3. Also a request that would allow us to make mods that adds truly random generated loot without nasty long scripts. There is a reason why there is no such thing released for all these years (G3 Item Randomizer Mod doesn't count, as it is limited in scope by the current engine). What I would like to see is removing the current random treasures table limit that only accepts 9 rows instead of 99.
Here is how the current random items work:
when a creature or container has item of filename RNDTREx#.ITM, where x=any character (even letters and symbols, and has no bearing on how RNDTREAS.2DA is read), and #=the row number of RNDTREAS.2DA to use (can be 1-9), RNDTREx#.ITM is replaced by the randomly generated item.
How it should work: "x" character should not be ignored, so we could assign rows from 1 to 99 instead of 1-9 (5 of them are already reserved by the vanilla game).
Same deal with other random tables: rndequip.2da, rndmagic.2da, rndscrol.2da, rndwep.2da.
Why it is worth it? The prospect of true random generated loot, unique random loot/weapons/magic for unique monsters, less conflicts between mods etc. How about randomized damage dealt by undroppable weapons assigned to some creatures? As you can imagine removing the 9 rows limit would really open up possibility to add some great stuff to the game.
How feasable are these requests? Any chance for either of them to be implemented? @Dee? @AndreaColombo?
Thanks in advance.
Post edited by swit on
0
Comments
Still I find both of the three requests good ideas
Also, I think that to implement this, the C source code of the .exe needs to be edited to support ,ore entries in the RANDTRE*.2DA table besides the way the items are randomized
If there are any typos... I blame the school's computers for having the autocorrector in spanish and me being lazy to change it.
What you're asking for is to store an individual set of dialogs per actor in a savegame, essentially changing PDIALOG.2DA's function from a reference sheet to starting values.
That's a too radical change, the benefits of which are not obvious to me either. It might allow one to replace a standard dialog file reference with another, but the same result can be achieved by setting proper conditions in dialog triggers.
And lastly, under no circumstance do you want to multiply the dialog files. Three different ones for pre-joined, joined and post-joined are bad enough already. A character can only have one set at any given moment, and the last thing you want is to check which one is active whenever another dialog links to this character.