The 1 failure on saves
-
- Noob
- Posts: 13
- Joined: Wed Mar 05, 2003 9:24 am
- Location: Look ! Behind you ! *runs away*
- Contact:
The 1 failure on saves
The forums says : "User-to-User support and questions to the Developers and DM team." I have a question for the dev team : How did you remove the 1 failure on saving throws ? I'm not a dev of any kind, just a curious programmer. I've taken a look at the code, I've read much about how everyone seems unable to solve that problem.
A paladin needs Charisma, Strengh, Wisdom, Constitution, and a bit of Dexterity. That does not leave much for Intelligence...
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
It's pretty simple, actually. The reason auto-fail is a problem is that it causes things that shouldn't ever fail a certain saving throw to fail those throws. Instead of bothering with all sorts of complicated checks, we only deal with one: if creature x fails a saving throw, override that and call it saved if x's base save + 1 is greater than the DC of the save.
Base save < x, DC x: Roll a 1, fail.
Base save >= x, DC x: Roll a 1, succeed.
Base save < x, DC x: Roll a 1, fail.
Base save >= x, DC x: Roll a 1, succeed.
-
- Noob
- Posts: 13
- Joined: Wed Mar 05, 2003 9:24 am
- Location: Look ! Behind you ! *runs away*
- Contact:
But that would require to modify the function that rolls the saves, shouldn't it ? And I haven't found any way to access such a function, not to mention modify it. But I must admit I am an amateur scripter.
A paladin needs Charisma, Strengh, Wisdom, Constitution, and a bit of Dexterity. That does not leave much for Intelligence...
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
no, instead of calling said function directly, call a wrapper to it:
Granted, this means you must replace all instances of OriginalSavingThrowFunction with FixedSavingThrowFunction, but since in NS4 we re-wrote every Bioware script anyway, that wasn't much of an issue ;)
Code: Select all
int FixedSavingThrowFunction(...)
{
int nTest = OriginalSavingThrowFunction(...);
if(nTest == FALSE)
{
if((nBaseSave + 1) >= DC)
{
// Override the original function
return TRUE;
}
}
// Don't override
return nTest;
}
-
- Noob
- Posts: 13
- Joined: Wed Mar 05, 2003 9:24 am
- Location: Look ! Behind you ! *runs away*
- Contact:
Oh, smart. I imagine it took some work for all the spells (i've seen my spellbook :p ), but what about the effects, like disease or vorpal ? They have a script as well ?
A paladin needs Charisma, Strengh, Wisdom, Constitution, and a bit of Dexterity. That does not leave much for Intelligence...
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
Diseases are scripted and so can be passed through a save function as Joran outlined.
On hit effects are engine though, and are responsible for more insta-kill exploits than I care to list here.
For weapons, on hit cast spell plus dynamic item properties are your friends for giving you an event hook to do things like slay, vorpal, dev crit or dispel with some kind of sanity. It's on our list of things to do...of course that list is rather extensive.
On hit effects are engine though, and are responsible for more insta-kill exploits than I care to list here.
For weapons, on hit cast spell plus dynamic item properties are your friends for giving you an event hook to do things like slay, vorpal, dev crit or dispel with some kind of sanity. It's on our list of things to do...of course that list is rather extensive.
Tep wrote:I login and there's a dwarf to kill. You can't ask for much more than that.
Alkapwn wrote:NC has the most amazing melee build there is. Its a friggin unstopable juggernaut of pain.
-
- Noob
- Posts: 13
- Joined: Wed Mar 05, 2003 9:24 am
- Location: Look ! Behind you ! *runs away*
- Contact:
D'oh ! So, basically, you solved all spells and spell like abilities, all poisons and diseases, but only Bioware can solve the other various stuff like vorpal, slay and dev crit and all ... Well, I know who should be cursed then
... how do you spell Bioware again ?
Anyway, thanks for all the answers

Anyway, thanks for all the answers

A paladin needs Charisma, Strengh, Wisdom, Constitution, and a bit of Dexterity. That does not leave much for Intelligence...
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
-
- Noob
- Posts: 13
- Joined: Wed Mar 05, 2003 9:24 am
- Location: Look ! Behind you ! *runs away*
- Contact:
Oh, by the way, I was thinking if something like this would improve processing speed, since it doesn't test at all if the creature can't fail (or can't succeed, you get my point)
Now, it all depends if you see more automatic success rolls or more potential failing rolls, but i think the small if shouldn't take too much time to process. What do you think ?
Code: Select all
int FixedSavingThrowFunction(...)
{
if((nBaseSave + 1) >= DC)
{
return TRUE;
}
int nTest = OriginalSavingThrowFunction(...);
return nTest;
}
A paladin needs Charisma, Strengh, Wisdom, Constitution, and a bit of Dexterity. That does not leave much for Intelligence...
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
Agifem - the reason it wouldn't work as well that way is that the "OriginalSavingThrowFunction" is what actually performs the throw (and does the display on the player's screen). We still want the throw to be performed, we just want to override it when it says a 1 is a failure when it's not.
Consequenlty, you may see - "saving throw failed" in the status screen when it actually succeeds, but there's nothing we can do about that.
Consequenlty, you may see - "saving throw failed" in the status screen when it actually succeeds, but there's nothing we can do about that.
-
- Noob
- Posts: 13
- Joined: Wed Mar 05, 2003 9:24 am
- Location: Look ! Behind you ! *runs away*
- Contact:
What about that ?
This way, you save time, the message appears correctly and everybody's happy (and i know there is no such function as "print", but i'm quite new to that, and i don't remember the function name).
This is just my idea. Feel free to not like it.
Code: Select all
int FixedSavingThrowFunction(...)
{
if((nBaseSave + 1) >= DC)
{
print("automatic success gna gna gna save 49 vs DC 12 gna gna gna");
return TRUE;
}
int nTest = OriginalSavingThrowFunction(...);
return nTest;
}
This is just my idea. Feel free to not like it.
A paladin needs Charisma, Strengh, Wisdom, Constitution, and a bit of Dexterity. That does not leave much for Intelligence...
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.
I'm sorry about my bad english, i'm french.
In every lie lies a part of truth.