kevL / TccScripts

4 stars 0 forks source link

Saving throws specific #45

Closed zzcmeiou closed 5 years ago

zzcmeiou commented 6 years ago

savingthrow 2da; 2DA V2.0

   Name            NameString

0 **** All 1 977 Fortitude 2 979 Will 3 978 Reflex

only those entries.

i created a recipe to add 20 fort save to any items, and it does not work. The property is there, but it does not increase the char's fort save when equipping enchanted item.

I know these save throws stack, because I equip 2 different fort save base items, both item bonuses stack.

So is there anything wrong with the property?

vandervecken commented 6 years ago

You created a separate recipe and you're not sure why it doesn't work?

zzcmeiou commented 6 years ago

well i am sure there is no recipe to add/improve specific saving throws, so I made 1 to try.

The property appears on the item, but the char sheet does not show any increase.

vandervecken commented 6 years ago

You're going to need to provide a lot more detail. @kevL can you remind how to turn on the debug logging?

zzcmeiou commented 6 years ago

1860 65 n2_crft_ingadamant -1 40,1,20,0,0 0 11 0 10000 0

apply 20 fort save to any item, requires 1 adamantine ingot, the spell globe invulnerable

the property appears on the item; improved saving throws +20 fort

but on the char sheet, the fortitude save does not increase after equipping the enchanted item.

zzcmeiou commented 6 years ago

itempropdef 2da 40 711 ImprovedSavingThrows IPRP_SAVEELEMENT 2 5506 1440 1 41 712 ImprovedSavingThrowsSpecific IPRP_SAVINGTHROW 0.65 2 **** 5506 1441 1

The strange thing is, if I set it to 41,1,20,0,0 i get Improved universal save +20 instead.

kevL commented 6 years ago

can you remind how to turn on the debug logging?

line 37 in ginc_crafting, change FALSE to TRUE

recompile:

gp_forgemagic_ca <- this is typically for a workbench's OnSpellCastAt gr_domagiccrafting gui_tcc_constructset i_nx1_container01_ci ii_trigger_spell

( or i have a batchfile that runs the AdvancedScriptCompiler standalone exe over all scripts in subdirs if you want it )

kevL commented 6 years ago

confirmed that the recipe works and its description appears on the item. confirmed that +20 does not appear on the character sheet.

I changed the +20 to +2 and the bonus does appear on the character sheet ...

( ergo, game bug )

But i didn't test if the +20 may work in combat, nor what the cutoff actually is for a valid bonus. The documentation for ItemPropertyBonusSavingThrow() says it's valid +1..+20 but it looks like something got borked in the shuffle from Nwn1 to Nwn2 ... again

zzcmeiou commented 6 years ago

I believe the cutoff point is 5...

weapon and armor enchant bonus max is 5,

However using the toolset, you can set attribute up to +20 and those will work properly. So I think there is a hardcode craft enchant limit.

=============

On the other hand, things like damage roll can be done all the way to 6d12 and it works.

vandervecken commented 6 years ago

That's terrible @kevL I think this is your domain...

zzcmeiou commented 6 years ago

which is terrible? the limit or the damage roll?

kevL commented 6 years ago

well, there's nothing i can do about it -- it looks hardcoded atm.

there are however recipes (MotB i think) for Fort/Refl/Will bonuses up to +9

just leave them i guess; i don't see this as a Reboot issue guys ...

vandervecken commented 6 years ago

@zzcmeiou it would be interesting if you were to test where the effect is hard coded to be limited. We know +9 works.

zzcmeiou commented 6 years ago

alrite i will fiddle with the values.

zzcmeiou commented 6 years ago

I have tried; hp bonus +50 - works ac bonus +20 - works regen +20 - works

those are also the highest you can set using toolset

zzcmeiou commented 6 years ago

max save from enchanting is 12, like ability score.

oddly you can set max save +20 via the toolset.... ability is still max 12 in toolset.

zzcmeiou commented 6 years ago

alrite there seems to be a funny calculation for bonus saves;

1 from bonus ability up to max of 6 - the max ability score allowed is 12 1 from enchanting up to 12, 1 from enchanting up to 5,

adding anymore has no effect. so strangely enough, the total item bonus for save is 6+12+5=23

So i think the itempropdef has a mistake for saving throws and saves vs. instead of referring to meleecost, it should be referring to bonuscost. The CostTableResRef should be 1 for both properties. 2 refers to meleecost, which goes up to 20. The mistake is even in the base 2da from the game.

I made a mistake, setting +20 specific save in the toolset does not work.

vandervecken commented 6 years ago

I don't understand what you are saying here - count you be clearer? "1 from bonus ability up to max of 6 - the max ability score allowed is 12" <- what does this mean?

"1 from enchanting up to 12, 1 from enchanting up to 5," Are you saying that you can have two of the same property and they stack, but one can go up to 12 and one up to 5? Can you provide an example, preferably a screenshot?

zzcmeiou commented 6 years ago

well I have 1 item that gives 12 to all ability, and 12 con = 6 fort, cause when the item is unequipped 6 fort is lost. So its 1 save per 2 ability point. Since ability bonus max is 12, so a save can have a max gain of 6 from ability bonus.

I add a ring with 12 fort save, and it is added to the total fort save.

I add another same ring, but it only adds 5 to total fort save.

So thats how I conclude that total bonus save = 6 + 12 + 5 = 23

vandervecken commented 6 years ago

We could definitely change the Saving Throw lines in itempropdef.2da to use the bonus, not melee costtableresref. What do you think @kevL ?

I'm still interested to understand where the hardcoding comes from which allows upt o +12 for the first item but only up to +5 for the second.

kevL commented 6 years ago

in hardcode, there could be (and probly are) caps for each individually as well as the bonus of them all (and perhaps other things) taken together.

I don't want to say much without tinkering around, and seeing if such a high bonus actually works IG (ie, showing on the char-sheet isn't enough...)

here's a question: if the ability-based bonus is dropped, what's the max for 2 +bonus rings, eg.

/coffee

zzcmeiou commented 6 years ago

ok scratch what i said up there, i think i was getting cross eyes.

every 2 bonus ability point gives 1 save - con gives fort, dex gives reflex, int gives will.

since bonus ability is capped at 12, the max possible is only 6 save

but this is true as along as the total ability is 50 or less.

if after including feats you get a con of 44, then put on an item that gives bonus 12 con, you will get only extra 3 save, because only 6 con is added to reach 50 max ability score.

Bonus saving throws are capped at 12, I tried 2 rings with +12 and only got extra 12 instead of expected 24.

In conclusion, saving throws are capped at 12, same as bonus ability score. Therefore the cost table must be IPRP_BONUSCOST which caps at 12

not IPRP_MELEECOST which caps at 50

There is only one item that gives 12 in all ability, an amulet which you can only legally get in Mask, by being REALLY EVIL.

vandervecken commented 6 years ago

I think the PR I just posted should address the problem yes? Want to test it out?

vandervecken commented 5 years ago

@zzcmeiou want to try this out? There should be no actual change to functionality here, so it's not clear to me if we should take the risk, but since you're the advocate for this change, perhaps you have some time to test that it at least doesn't break anything?

zzcmeiou commented 5 years ago

Alrite got around to playing with it, and it looks great so far. Just wondering how the devs overlooked this.

vandervecken commented 5 years ago

Merged PR