Skip to content

Need for SetUncappedAbilityBonus() and similar functions

We've got functions for changing the cap on abilities, attack bonus, skills, etc, and that's definitely a good thing. Well, we could also use a function for setting dodge AC limit, but that's not the point of this thread.

While said functions are a step in the right direction, they can't be reliably used to grant bonuses that are meant to be uncapped, like bonuses from custom feats.

As such, a very appreciated addition would be the set of the following new functions (or functions to this effect):

SetUncappedAbilityBonus(object oCreature, int nAbility, int nValue)
SetUncappedAttackBonus(object oCreature, int nValue)
SetUncappedSkillBonus(object oCreature, int nSkill, int nValue)
SetUncappedACBonus(object oCreature, int nValue)
SetUncappedDamageBonus(object oCreature, int nValue)
SetUncappedSavingThrowBonus(object oCreature, int nSavingThrow, int nValue)

And getters to compliment these.
I hope I did not forget anything. :smile:

This way custom feat bonuses could be softcoded in the module itself, without using up the limit that's currently set on the score in question.

Of course, uncapped penalties could use some love, too, but bonuses are much more important due to the main use of uncapped modifiers being implementation of custom feat effects.

Comments

  • pscythepscythe Member Posts: 116
    You can make your feat bonus uncapped by adding the feat bonus to the Set*BonusLimit calls. eg: if feats grant +2 AB then you can do a SetAttackBonusLimit(20 + 2) to make it uncapped.
  • ShadooowShadooow Member Posts: 402
    edited July 2018
    pscythe said:

    You can make your feat bonus uncapped by adding the feat bonus to the Set*BonusLimit calls. eg: if feats grant +2 AB then you can do a SetAttackBonusLimit(20 + 2) to make it uncapped.

    unfortunately these function are global and thus they are unusable in multiplayer

    And while you could change the limit to 22, apply attack bonus effect and change it back that would only work temporarily. This differs effect from effect but most of the effects are recalculated either every other while or when next effect is applied so this is not a solution either.

    What we would need is either new set of functions or just UncappedEffect (which is what I do now in my nwnx plugin fo 1.69 - this functionality exists for 1.69) or possibility to set the BonusLimit functions for specific creature. Prefferably UncappedEffect as that allows much more applications than the BonusLimit on creature would (for example, you might not want to allow player to acquire +14 to all abilities, you just want him to get permanent +2dex bonus which will not count towards +12 cap - this would be only doable via UncappedEffect).

    BTW I don't think that damage is *capped. The limitation is only in the values builder can use and he can remove this limitation by modifying iprp_*.2das.
    Post edited by Shadooow on
  • pscythepscythe Member Posts: 116
    edited July 2018
    Shadooow said:



    BTW I don't think that damage is uncapped. The limitation is only in the values builder can use and he can remove this limitation by modifying iprp_*.2das.

    Very true. I believe they're all defined in iprp_damagecost.2da. Managed to grant weapons +60 damage just by editing that one file.
  • AaezilAaezil Member Posts: 178
    What we really really need is feats and skills to be completely unhardcoded (and plz can we get a function that gives permanant +stat points)
  • pscythepscythe Member Posts: 116
    Aaezil said:

    What we really really need is feats and skills to be completely unhardcoded (and plz can we get a function that gives permanant +stat points)

    Not just the feats and skills but the entire engine too. :smile:
  • FreshLemonBunFreshLemonBun Member Posts: 909
    Don't forget you would want it to be feat or level bound too so you don't need excessive cleanup/bookkeeping with character releveling.
  • SherincallSherincall Member Posts: 387
    Aaezil said:

    (and plz can we get a function that gives permanant +stat points)

    That needs to be handled with a bit of care as it will mess with ELC and make those characters illegal in all localvault games. Modules using this would need something like a popup informing the player that any characters that play through that module may become "illegal" in other modules.

    People often play through singleplayer modules with the same characters, and then also in multiplayer localvault with those. It'd be horrible if some random SP module broke their character without notice.
  • ShadooowShadooow Member Posts: 402
    edited July 2018

    Aaezil said:

    (and plz can we get a function that gives permanant +stat points)

    That needs to be handled with a bit of care as it will mess with ELC and make those characters illegal in all localvault games. Modules using this would need something like a popup informing the player that any characters that play through that module may become "illegal" in other modules.

    People often play through singleplayer modules with the same characters, and then also in multiplayer localvault with those. It'd be horrible if some random SP module broke their character without notice.
    Yes ELC is a problem, however I don't think this is something that should be concern of BeamDog. It won't break any custom content. And if some module will use this is would be the module author's responsibility to inform player that he is doing this and what consequences it could have. All that is needed is to inform about character going illegal in the function description and then let scripters and builders to deal with it.

    Also maybe set ELC to be disabled by default when creating Internet/LAN game via client (I just tried it and in advanced settings ELC was checked for some reason). That would made sure that those servers that allows localvault (which are basically only servers created via this feature) will allow invalid characters - afterall this option is mostly going to be used amongst friends (at least without the NAT tunelling feature that was proposed to BeamDog on trello).

    EDIT: safety idea - such function could fail to work when used in game that has ELC on. This would give control to players against this - they can turn on ELC for singleplayer in nwnplayer.ini, similarly it would prevent the login issues on servers using ELC.

    Anyway, imo what is more important is to have UncappedEffect functionality. That is quite important for singleplayer content such as PRC or 3.5 ruleset and it can be also used as a workaround for permanent ability increase (with minor drawbacks). For multiplayer, the SetAbilityScore functionality is covered by NWNX.
  • Taro94Taro94 Member Posts: 125
    So, could we get these functions at least as a card on Trello? :)
  • TerrorbleTerrorble Member Posts: 179
    Shadooow said:



    unfortunately these function are global and thus they are unusable in multiplayer

    To clarify, the bonus limit functions do work in multiplayer, right?
    If I understand correctly, you mean that using them in multiplayer could create many unintended problems because of their global effects? Therefore, you might not want to use them in multiplayer.
  • ShadooowShadooow Member Posts: 402
    Terrorble said:

    Shadooow said:



    unfortunately these function are global and thus they are unusable in multiplayer

    To clarify, the bonus limit functions do work in multiplayer, right?
    If I understand correctly, you mean that using them in multiplayer could create many unintended problems because of their global effects? Therefore, you might not want to use them in multiplayer.
    yes indeed, if you increase the attack bonus cap to 21 to simulate +1 permanent attack bonus then while it will work for this one player, every other player will have their attack bonus cap increased to 21 thus being able to get +1 extra ab which clerics can do easily

    i suppose it could be workarounded by granting every other player +1attack bonus and -1 attack penalty in same time though... not pretty but might work
  • tfoxtfox Member Posts: 87
    I rather like the idea, as I'll be able to fiddle with creating a Intuitive Attack feat that isn't an outright weakness to anyone that takes with the intention of using wisdom as their primary stat for melee with simple weapons, it could be a fun idea to play around with if nothing else.

    I'd say each of the categories of AC should have their own untyped/uncapped versions (so dodge might be lost when flatfooted, armour not working against touch attacks, etc, etc).
  • TerrorbleTerrorble Member Posts: 179
    Thanks for the clarification.

    I'm mulling over ideas about how to do polymorphs that rely entirely on the player's base stats with added uncapped bonuses. For example, shifting to a dire bear no longer specifies what its base STR score is. Rather, it uses the player's base score + spells/items/abilities + a bonus determined in the shifting script. This way I can make the bear grow in strength with continued dedication to druid levels and even have Great Strength feats matter.

    Being able to increase the cap limits allows this, but there's the issues with other builds exceeding the caps that I may not want. UncappedEffect() would be perfect for this.
  • Taro94Taro94 Member Posts: 125
    I'm going to insolently bump this thread, since we still don't have a trello for this and it's met with some support. ;) In fact, to my mind these functions would be more important than the currently added cap modifying ones.
  • DoubledimasDoubledimas Member, Mobile Tester Posts: 1,286
    Tagging @JuliusBorisov for Trello magic.
  • Prince_RaymondPrince_Raymond Member Posts: 438
    edited September 2018
    I'm going to also insolently bump this thread and openly declare that if Mr. Borisov works his Trello magic to create a card, I will upvote it. (Slaps ten-digit sticky note on the window pane) How do you like them apples? Lol
    Post edited by Prince_Raymond on
  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,754
    A wizard is never late, nor is he early, he arrives precisely when he means to!

    https://trello.com/c/sZVjo92A/207-setuncappedabilitybonus-and-similar-functions
  • Taro94Taro94 Member Posts: 125
    One last bump and I stop. :smile:
    Just another reminder for those who might have missed this thread or trello card - if you like this idea, please vote on it.
  • Prince_RaymondPrince_Raymond Member Posts: 438
    @Taro94 And true to my word, sir, done.
Sign In or Register to comment.