Larian Banner: Baldur's Gate Patch 9
Previous Thread
Next Thread
Print Thread
#539952 09/08/14 02:24 AM
Joined: Jul 2014
R
Rhidian Offline OP
addict
OP Offline
addict
R
Joined: Jul 2014
As of the current version of the game (v1.0.107) the Talents within the game have proven hard to mod. Changing their Requirements do nothing, the talents themselves are hardcoded into the game, etc etc. There isn't much that we are able to do about it.

While it may be impossible to change what the Talents actually do, we *can* add our own changes on top of their effect. That is what this mod aims to do.

Current changes:

The mod right now mostly consists of these two files-
1) The Story file
Code
Version 1
SubGoalCombiner SGC_AND
INITSECTION
DB_LoneWolfRetroactive(CHARACTER_Player1, 1);
DB_LoneWolfRetroactive(CHARACTER_Player2, 1);
KBSECTION
IF
CharacterUnlockedTalent(_Player, "Raistlin")
AND
_Player.IsPlayer()
AND
CharacterConsume(_Player, "GC_Drawback", _handle)
THEN
DB_TraitBalancing(_Player, "Raistlin", _handle);

IF
CharacterUnlockedTalent(_Player, "Raistlin")
AND
_Player.IsPlayer()
AND
CharacterHasTalent(_Player, "LoneWolf", 1)
AND
CharacterConsume(_Player, "GC_LW_Drawback", _handle)
THEN
DB_TraitBalancing(_Player, "LoneRaistlin", _handle);


IF
CharacterUnlockedTalent(_Player, "LoneWolf")
AND
_Player.IsPlayer()
AND
CharacterHasTalent(_Player, "Raistlin", 1)
AND
CharacterConsume(_Player, "GC_LW_Drawback", _handle)
THEN
DB_TraitBalancing(_Player, "LoneRaistlin", _handle);


IF
CharacterUnlockedTalent(_Player, _Talent)
AND
_Player.IsPlayer()
AND
CharacterHasTalent(_Player, "LoneWolf", 0)
AND
DB_TraitBalancing(_Player,"LoneRaistlin", _handle)
THEN
CharacterUnconsume(_Player, _handle);
NOT DB_TraitBalancing(_Player, "LoneRaistlin", _handle);


IF
CharacterUnlockedTalent(_Player, _Talent)
AND
_Player.IsPlayer()
AND
CharacterHasTalent(_Player, "Raistlin", 0)
AND
DB_TraitBalancing(_Player,"LoneRaistlin", _handle)
THEN
CharacterUnconsume(_Player, _handle);
NOT DB_TraitBalancing(_Player, "LoneRaistlin", _handle);

IF
CharacterUnlockedTalent(_Player, _Talent)
AND
_Player.IsPlayer()
AND
CharacterHasTalent(_Player, "Raistlin", 0)
AND
DB_TraitBalancing(_Player,"Raistlin", _handle)
THEN
CharacterUnconsume(_Player, _handle);
NOT DB_TraitBalancing(_Player, "Raistlin", _handle);

IF
CharacterUnlockedTalent(_Player, "LoneWolf")
AND
_Player.IsPlayer()
AND
CharacterGetLevel(_Player, _level)
AND
DB_LoneWolfRetroactive(_Player, _prevLevel)
AND
IntegerSubtract(_level, _prevLevel, _result)
AND
_result > 0
THEN
CharacterAddAbilityPoint(_Player, _result);
NOT DB_LoneWolfRetroactive(_Player, _prevLevel);
DB_LoneWolfRetroactive(_Player, _level);

IF
CharacterLeveledUp(_Player)
AND
_Player.IsPlayer()
AND
CharacterHasTalent(_Player, "LoneWolf", 1)
AND
CharacterGetLevel(_Player, _level)
AND
DB_LoneWolfRetroactive(_Player, _prevLevel)
THEN
NOT DB_LoneWolfRetroactive(_Player, _prevLevel);
DB_LoneWolfRetroactive(_Player, _level);
EXITSECTION

ENDEXITSECTION


and this Potion.txt file within my mod (Leech_Nerf isn't actually used above)-
Code
new entry "Leech_Nerf"
type "Potion"
data "Flags" "BleedingImmunity"
data "Duration" "-1"


new entry "GC_Drawback"
type "Potion"
data "FireResistance" "-100"
data "EarthResistance" "-100"
data "WaterResistance" "-100"
data "AirResistance" "-100"
data "PoisonResistance" "-100"
data "PiercingResistance" "-100"
data "SlashingResistance" "-100"
data "CrushingResistance" "-100"
data "Duration" "-1"

new entry "GC_LW_Drawback"
type "Potion"
data "Constitution" "-3"
data "APMaximum" "3"
data "APRecovery" "-2"
data "Duration" "-1"


Right now, this mod basically applies the "Potion" effects whenever a player unlocks either Glass Cannon ("Raistlin") and Lone Wolf (if it is combined with Glass Cannon). Note that the GC_LW_Drawback is effectively lowering the HP of the character without impacting their maximum AP.

It's also set to undo the effects should the player no longer have the Talent when they spend a talent point (such as after respec'ing), though this aspect hasn't been tested yet.

The other major change so far is that the Source Hunters have been set (via their RootTemplate) so that they do not bleed any blood. Needless to say, this nerfs Leech hard, such that it can only proc via blood from other sources (like enemies or neutral npcs).


WIP Version here (any updates will require a new game to take effect):
http://www.mediafire.com/download/t6vrtb6ios12byy/Balanced_Talents_WIP.zip

If you have any ideas on what talents need balancing, please feel free to share it here. There's a very good chance that I won't be able to do anything about it though due to the hard-coded nature of the talents.

Last edited by Rhidian; 09/08/14 04:46 AM.
Joined: Jul 2014
R
Rhidian Offline OP
addict
OP Offline
addict
R
Joined: Jul 2014
I have changed Lone Wolf slightly such that it gives Ability Points retroactively. If you pick Lone Wolf at level 10 for example, you will now get the 9 Ability points that you had missed out on from not taking Lone Wolf at level 1.


Code
INITSECTION
DB_LoneWolfRetroactive(CHARACTER_Player1, 1);
DB_LoneWolfRetroactive(CHARACTER_Player2, 1);

KBSECTION

IF
CharacterUnlockedTalent(_Player, "LoneWolf")
AND
_Player.IsPlayer()
AND
CharacterGetLevel(_Player, _level)
AND
DB_LoneWolfRetroactive(_Player, _prevLevel)
AND
IntegerSubtract(_level, _prevLevel, _result)
AND
_result > 0
THEN
CharacterAddAbilityPoint(_Player, _result);
NOT DB_LoneWolfRetroactive(_Player, _prevLevel);
DB_LoneWolfRetroactive(_Player, _level);

IF
CharacterLeveledUp(_Player)
AND
_Player.IsPlayer()
AND
CharacterHasTalent(_Player, "LoneWolf", 1)
AND
CharacterGetLevel(_Player, _level)
AND
DB_LoneWolfRetroactive(_Player, _prevLevel)
THEN
NOT DB_LoneWolfRetroactive(_Player, _prevLevel);
DB_LoneWolfRetroactive(_Player, _level);



I haven't tested this myself yet, but theoretically that code should be set up to avoid Respec/Lone Wolf retroactive exploitation.

Joined: Jul 2014
member
Offline
member
Joined: Jul 2014
I'm gonna spend my free time trying to see about modifying talents. Not that i dont believe you. But i really hope you're wrong because i hate the preset talents.


Joined: Aug 2014
old hand
Offline
old hand
Joined: Aug 2014
So "Raistlin" is the name of Glass Cannon in the game's code? So they're referencing Raistlin Majere I suppose, who "although physically very weak, is extremely intelligent, and possesses uncommonly powerful magical abilities." Never read those books, but that's a pretty funny reference.

But this is great work and apparently our only avenue into modifying talents right now. Basically it seems to me that you could add bonuses on top of currently underpowered abilities like Politician, Packmule, My Precious, and others.

Still, I'm not sure I would spend a ton of time modifying every talent like this since Larian will hopefully let us edit and add talents more easily. It's sad that you can't already, really.

Joined: Mar 2015
Location: Swedonia
Banned
Offline
Banned
Joined: Mar 2015
Location: Swedonia
Hmm.. I'm not sure if OP is still around, but I'm trying to find a way to make Back-Stabber apply to Blackjacks. Is that something that could be done through this method?

My gut says "no", but I'm having a hard time figuring out what's going on with the scripting anyway, so I thought I'd ask.

Originally Posted by Baardvark
So "Raistlin" is the name of Glass Cannon in the game's code? So they're referencing Raistlin Majere I suppose, who "although physically very weak, is extremely intelligent, and possesses uncommonly powerful magical abilities." Never read those books, but that's a pretty funny reference.

But this is great work and apparently our only avenue into modifying talents right now. Basically it seems to me that you could add bonuses on top of currently underpowered abilities like Politician, Packmule, My Precious, and others.

Still, I'm not sure I would spend a ton of time modifying every talent like this since Larian will hopefully let us edit and add talents more easily. It's sad that you can't already, really.
I love that you said this 5 months ago and nothing has happened.


Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5