[REQ] Weaker Resist Magic

Post » Wed Sep 01, 2010 11:14 am

Would it be possible to make this system even more "strict", like 100 = 30%. What numbers would that be and how can I get to those numbers? For school I had once a calculator that could process such a formula, but today I would not even know how to type it in.

To get 30% damage reduction at 100 points RM, you would need a decay rate of 0.36. Growth rate actually affects Weakness, not Resistance, but I would suggest a growth rate of 2.5 for balance.

Everything that follows is math. All liberal arts majors should flee the area.

The DR formula is a 'piecewise' formula - basically two different formulas, one for positive values, and one for negative values. Negative resistances are Weakeness, so there is basically one formula for Resistance, and a separate formula for Weakness. Lets focus on the Resistance formula:

 % Damage Blocked = 100 * [1 - exp( - d * x )] 

The function exp(-y) is an http://en.wikipedia.org/wiki/Exponential_decay function. The basic idea of an exponential decay is that if you increase y by a fixed amount (say +10), the value of the function decreases by a fixed factor (say 1/2). This means that the function decreases very rapidly for small values of y, and slowly levels out as y increases. That is the 'diminish' in 'Diminishing Returns'.

d is the decay rate, which determines how steep the curve is. The larger d is, the more quickly the function approaches zero. x is the Resistance divided by 100 (so for resistances between 0-100, x is between 0.0-1.0).

The value of exp(0) is 1, so at zero Resistance the damage blocked is 100*[1 - exp(0)] = 100*[1 - 1] = 0%. As the resistance increases, the exponential decay approaches zero, so that at infinite Resistance the damage blocked would be 100*[1 - exp(infinity)] = 100*[1 - 0] = 100%.

Now, to calculate your own decay rates, you need to find the inverse of the formula. I'll skip the explanation; the inverse is

 d = - ln( 1 - p/100 ) 

p is the percent damage blocked for 100 points of Resistance, and ln(y) is the http://en.wikipedia.org/wiki/Natural_logarithm function. If you don't have a scientific calculator handy, you can calculate the decay rate by copying the right side of that equation into google and replacing p with the appropriate value: http://www.google.com/search?hl=en&source=hp&biw=1425&bih=749&q=-ln%281+-+30%2F100%29&btnG=Google+Search&aq=f&aqi=&aql=&oq=&gs_rfai=.

The growth formula is more complicated. In fact, you can't actually calculate growth rates exactly, you have to use numerical approximations. I'm certainly willing to explain that too - I obviously love this stuff - but you might want to get comfortable with the decay formula first.
User avatar
Richard Dixon
 
Posts: 3461
Joined: Thu Jun 07, 2007 1:29 pm

Post » Wed Sep 01, 2010 7:51 pm

I didn′t see this mod mentioned: http://www.tesnexus.com/downloads/file.php?id=14871.

To put it shortly:

For example, if you cast a 50% chameleon spell and then a 50% one, the first one will grant you 50% chameleon as usual but the second one will only grant you 25% extra.




It′s not supported anymore, but I have used it and didn′t notice any problems, but then I wasn′t heavily enchanting items either. If someone notices any bugs in it, I say we should make a new version like it. It′s the most sensible solution to this that I know of. :)
User avatar
Anna Beattie
 
Posts: 3512
Joined: Sat Nov 11, 2006 4:59 am

Post » Wed Sep 01, 2010 12:32 pm

I didn′t see this mod mentioned....


I remember I saw it mentioned in this topic. However, the mod from JRoush (AV Uncapper) seems a lot more sophisticated and applies to more effects and it is completely configurable. This thing has the potential of a must-have mod. It is at least for me, a must-have. The less exploitable this game is the better. I hope JRoush will develop it further and solve the remaining issues. I`m gonna study his post now.

*Edit*

I`m hopeless. The last time I did math was almost 10 years ago, but I remember I svcked even then. I understand your basic concept of exponential decay very good and what the mod does, but the details are difficult to manage. Nevertheless thank you for your detailed explanations. The important thing to me is, that I can calculate the decay rate now with the link you sent me. This way I can just enter the numbers, if I want to experiment with different values. That`s cool. Can you do this for the growth rate too?

*Edit*

I tweaked now the effects with the highest exploitation potential:

- MagicEffectResist
- MagicItemResist
- ResistNormalWeapons
- ReflectDamage
- SpellReflect
- Chameleon

100pts of each effect will now grant only 30% instead of 100% immunity, invisibility etc. This needs some extensive testing for finetuning, but I`m very happy you could help me with that. :foodndrink:
User avatar
Naomi Lastname
 
Posts: 3390
Joined: Mon Sep 25, 2006 9:21 am

Post » Wed Sep 01, 2010 9:37 am

The important thing to me is, that I can calculate the decay rate now with the link you sent me. This way I can just enter the numbers, if I want to experiment with different values. That`s cool. Can you do this for the growth rate too?


What do you think, JRoush. Would that be possible?
User avatar
Josh Trembly
 
Posts: 3381
Joined: Fri Nov 02, 2007 9:25 am

Post » Wed Sep 01, 2010 11:05 pm

What do you think, JRoush. Would that be possible?


Growth rate only affects Weakness (i.e., it only affects the % damage blocked when the Resistance stat is less than zero). The formula is
- 100 * d * g * ln( 1 - x / g )

x is the Resistance divided by 100 again. Remember that in this formula, x will be negative. g is the growth rate - the larger g is, the more harmful the weakness becomes. d is the decay rate, as calculated from the last post. You may wonder why This formula depends on both rates - it's because I wanted the two functions to meet smoothly at resistance = 0.

Unfortunately, this function has no known inverse - it can't be solved using regular mathematics. So I can't give you a simple formula for calculating growth rates. The simplest way to do it is guess and check - plug in a value, and see if it gives the desired results. Computers can do this very efficiently - that's what I use, when I suggest growth rates - but it's pretty easy to do by hand too.

You will need a way to plot the function. You can use an online plotting resource like http://fooplot.com/ - just type the formula above into one of the "y(x)=" boxes, replace g and d with their numerical values, and click "Plot It". The result is (y =) % Damage blocked vs (x =) Resistance/100. Keep in mind that we're only interested in values of x less than zero, where x = -1 is 100% weakness, x = -2 is 200% weakness, etc. The y values will also be negative: y = -100 is 100% damage increase, y = -200 is 200% damage increase, etc. If you decide to use foo, I would recommend that you scroll down to "Plot options & window", choose a custom window, and punch in x=[-3 to 0], y=[-200 to 0] and then click 'Reset' to make sure you're looking at the right part of the graph.

You could also make a plot in most office spreadsheet programs, e.g. Microsoft Excel. I won't do step by step for that, but if you know how to enter formulas in Excel then that is probably easier than the online method. Finally, if you have access to it, specialized software like Origin, Igor, or Mathematica makes plotting very easy. Not that most people have that, but sometimes universities will make such software available to their students.

Anyway, once you've got a plot, just play with the parameter g until you've found a Weakness behavior that suits you. You can plot the resistance part of the function too, if you want to play with the numbers for that.
User avatar
Lyd
 
Posts: 3335
Joined: Sat Aug 26, 2006 2:56 pm

Post » Wed Sep 01, 2010 11:13 pm

Growth rate only affects Weakness (i.e., it only affects the % damage blocked when the Resistance stat is less than zero). The formula is
- 100 * d * g * ln( 1 - x / g )

x is the Resistance divided by 100 again. Remember that in this formula, x will be negative. g is the growth rate - the larger g is, the more harmful the weakness becomes. d is the decay rate, as calculated from the last post. You may wonder why This formula depends on both rates - it's because I wanted the two functions to meet smoothly at resistance = 0.

Unfortunately, this function has no known inverse - it can't be solved using regular mathematics. So I can't give you a simple formula for calculating growth rates. The simplest way to do it is guess and check - plug in a value, and see if it gives the desired results. Computers can do this very efficiently - that's what I use, when I suggest growth rates - but it's pretty easy to do by hand too.

You will need a way to plot the function. You can use an online plotting resource like http://fooplot.com/ - just type the formula above into one of the "y(x)=" boxes, replace g and d with their numerical values, and click "Plot It". The result is (y =) % Damage blocked vs (x =) Resistance/100. Keep in mind that we're only interested in values of x less than zero, where x = -1 is 100% weakness, x = -2 is 200% weakness, etc. The y values will also be negative: y = -100 is 100% damage increase, y = -200 is 200% damage increase, etc. If you decide to use foo, I would recommend that you scroll down to "Plot options & window", choose a custom window, and punch in x=[-3 to 0], y=[-200 to 0] and then click 'Reset' to make sure you're looking at the right part of the graph.

You could also make a plot in most office spreadsheet programs, e.g. Microsoft Excel. I won't do step by step for that, but if you know how to enter formulas in Excel then that is probably easier than the online method. Finally, if you have access to it, specialized software like Origin, Igor, or Mathematica makes plotting very easy. Not that most people have that, but sometimes universities will make such software available to their students.

Anyway, once you've got a plot, just play with the parameter g until you've found a Weakness behavior that suits you. You can plot the resistance part of the function too, if you want to play with the numbers for that.


Seriously, I have no clue what I`m doing here, but I guess it works, because the graph looks how he should (at least I think he does). Again, thank you a lot for your detailed explanation. Now it`s upon me to understand this.

An additional word on this: I think most people like an Oblivion that is less exploitable and therefore more challenging. I mean this mod has HUGE potential. You really should further develop this mod and make it more attractive. Here`s how:

- Make a ready-to-go plugin with values, on which most people could agree on (the effects with the most game-breaking potential are rebalanced, let`say to 100pts = 30%. Even 30% (weapon or magic) damage reduction is a lot, but you can push it even more thanks to your formula. Something that`s impossible with "Magick Overlap", a mod which addresses the same problem). The example plugin that is packaged now is fine, but I think it addresses too much issues. As more changes are made, as more people are going to be skeptical and daunted. Also, as the name of your plugin suggests, it serves more as an "example". The user is forced to customize it before he can start, that`s making it daunting too.
- The best solution would be to make your mod easier to customize, let`s say through an ini - I mean if that`s possible. There is no harm in making this mod more user-friendly. Within the ini you could switch effect tweaks on and off and even choose or put in different values for the various tweaks. You could even activate all the other tweaks, that are not activated by default. All of this without messing with the TES CS.
- You should make the documentation more user-friendly too and that means less technical. You can leave the technical stuff for the more advanced users and people who love math, but most people "flee the area" as you say, when they see complex formulas. There should be a main section, where the basic idea is explained for the less mathematical experienced and gifted people (like me).
- Then you should add a possibility to play around with numbers and graphs easily, for example by copying what you explained to me into the documentation, the link to the google math thing and FooPlot.

It`s all about making it easy for the user to understand and customize your mod. What do you think?
User avatar
Dezzeh
 
Posts: 3414
Joined: Sat Jun 16, 2007 2:49 am

Post » Wed Sep 01, 2010 10:02 pm

Hehe... I can't speak for JRoush, of course, and I could be wrong; but considering that AVUncapper has only technical documentation and no direct user interface, it's probably best to assume it's intended purely as a modders' resource, like OBSE. You don't go to the OBSE team and tell them what mods you'd like to see, right?

Now, it's entirely possible that he'll be one of the modders using his own resource -- just don't assume it. The good news is, I know there will be others. I plan to use it myself!
User avatar
BethanyRhain
 
Posts: 3434
Joined: Wed Oct 11, 2006 9:50 am

Post » Wed Sep 01, 2010 11:09 pm

So aside from JRoush's plugin and Magic Overlap (I admit that I didn't look into Magic Overlap to see how it works), wouldn't it also be possible to simply find the total resist magicka on an actor and apply a weakness to magic spell to partially counter it? For example, if you want all resist magic to be 50% weaker and you have 20 resist magic, you could then just apply a 10 weakness to magic.

Alternatively, you could remove all of the resist/reflect/absorb effects and add a custom spell that has the same effects, but weaker. This could get a little tricky keeping track of all of them, but it seems doable.

EDIT: I forgot that reflect damage, reflect spell, and absorb spell don't have an opposite weakness effect like the other resists. So yeah, the thing I wrote in the first paragraph above won't work for reflect/absorb.
User avatar
Charleigh Anderson
 
Posts: 3398
Joined: Fri Feb 02, 2007 5:17 am

Post » Wed Sep 01, 2010 9:54 pm

That's pretty much how Magick Overlap works. :)

"An actor" should generally be limited to the player, though, because if you try it with a non-unique actor you'll wind up affecting all instances of the base, not just the one in question -- and of course it would be noticeably inconsistent to limit it to only persistent refs. I believe you could use the script offset to edit individual instances, but that has several other disadvantages.

AVUncapper works at a lower level, and can apply universally with only some more obvious and circumnavigable side effects.
User avatar
Elisabete Gaspar
 
Posts: 3558
Joined: Thu Aug 31, 2006 1:15 pm

Post » Wed Sep 01, 2010 9:55 pm

Heh, ok. AND you posted while I was editing. :)
User avatar
Kelly John
 
Posts: 3413
Joined: Tue Jun 13, 2006 6:40 am

Post » Wed Sep 01, 2010 6:30 pm

Seriously, I have no clue what I`m doing here, but I guess it works, because the graph looks how he should (at least I think he does). Again, thank you a lot for your detailed explanation. Now it`s upon me to understand this.

An additional word on this: I think most people like an Oblivion that is less exploitable and therefore more challenging. I mean this mod has HUGE potential. You really should further develop this mod and make it more attractive. Here`s how:

- Make a ready-to-go plugin with values, on which most people could agree on (the effects with the most game-breaking potential are rebalanced, let`say to 100pts = 30%. Even 30% (weapon or magic) damage reduction is a lot, but you can push it even more thanks to your formula. Something that`s impossible with "Magick Overlap", a mod which addresses the same problem). The example plugin that is packaged now is fine, but I think it addresses too much issues. As more changes are made, as more people are going to be skeptical and daunted. Also, as the name of your plugin suggests, it serves more as an "example". The user is forced to customize it before he can start, that`s making it daunting too.
- The best solution would be to make your mod easier to customize, let`s say through an ini - I mean if that`s possible. There is no harm in making this mod more user-friendly. Within the ini you could switch effect tweaks on and off and even choose or put in different values for the various tweaks. You could even activate all the other tweaks, that are not activated by default. All of this without messing with the TES CS.
- You should make the documentation more user-friendly too and that means less technical. You can leave the technical stuff for the more advanced users and people who love math, but most people "flee the area" as you say, when they see complex formulas. There should be a main section, where the basic idea is explained for the less mathematical experienced and gifted people (like me).
- Then you should add a possibility to play around with numbers and graphs easily, for example by copying what you explained to me into the documentation, the link to the google math thing and FooPlot.

It`s all about making it easy for the user to understand and customize your mod. What do you think?

I second this request. If anyone could make a mod that like this that would give a layman a simple and user-friendly ini file to unlock all of the incredible features in JRoush's plugin, I would be eternally grateful. The construction set scares and confuses me.

By the way tejon, did I hear you say you plan on making a mod that requires AVUncapper? This interests me. What's the scope of this mod and what kind of progress have you made?
User avatar
Nathan Risch
 
Posts: 3313
Joined: Sun Aug 05, 2007 10:15 pm

Post » Wed Sep 01, 2010 3:20 pm

An additional word on this: I think most people like an Oblivion that is less exploitable and therefore more challenging. I mean this mod has HUGE potential. You really should further develop this mod and make it more attractive. Here`s how:

...

It`s all about making it easy for the user to understand and customize your mod. What do you think?

Hehe... I can't speak for JRoush, of course, and I could be wrong; but considering that AVUncapper has only technical documentation and no direct user interface, it's probably best to assume it's intended purely as a modders' resource, like OBSE. You don't go to the OBSE team and tell them what mods you'd like to see, right?

Now, it's entirely possible that he'll be one of the modders using his own resource -- just don't assume it. The good news is, I know there will be others. I plan to use it myself!

Klaus, of course, is correct - this plugin requires much more polish before it will be usable by the average Oblivion player. But, as tejon pointed out, that's not necessarily the goal. By itself, this plugin introduces it's own imbalances. I've tried to some of the core mechanics more flexible, but there is a lot of other work to be done before Oblivion becomes 'balanced'. I'm afraid I simply don't have the time to do it all myself, but I have great hope that tejon and other can make this plugin a part of some really impressive (and user-friendly) balance mods.

As a separate note: because this plugin affects different, unrelated mechanics (e.g. spell cost, armor rating, pc level caps) I don't necessarily want a single ini file for all of them. If a mod like tejon's wanted to customize some, and another mod wanted to customize others, they would both try to overwrite the ini and conflict even if they did very different things. By overwriting the game settings directly, though, several mods using this plugin for different things could coexist peacefully.

What I can do is make the documentation more readable, include a tutorial for those who want to customize it themselves, and instructions for people who want to switch from Elys' uncapper. Hopefully someday, when I have more time, I can come back and do a lot more :)
User avatar
Melis Hristina
 
Posts: 3509
Joined: Sat Jun 17, 2006 10:36 pm

Post » Thu Sep 02, 2010 12:22 am

As a stop-gap until there are real mods using this, someone (not it!) could also write a .esp mod which just uses a script and .ini system to configure AVUncapper. It's a very simple process, if a bit tedious.
User avatar
Cartoon
 
Posts: 3350
Joined: Mon Jun 25, 2007 4:31 pm

Post » Wed Sep 01, 2010 3:55 pm

Are you gonna do it? Otherwise I`ll do it, I just need to know how. A link to a tutorial would be nice, though.
User avatar
roxanna matoorah
 
Posts: 3368
Joined: Fri Oct 13, 2006 6:01 am

Post » Wed Sep 01, 2010 6:38 pm

Download Progress (link in my signature) and check the main script. The process will be almost identical.

In fact, I bet the hardest part will be figuring out how to launch the CS with OBSE, if you haven't done that before. ;)
User avatar
dean Cutler
 
Posts: 3411
Joined: Wed Jul 18, 2007 7:29 am

Post » Wed Sep 01, 2010 7:29 pm

Thank you, I`m gonna look into. But don`t expect it to be in the next days.
User avatar
Minako
 
Posts: 3379
Joined: Sun Mar 18, 2007 9:50 pm

Post » Wed Sep 01, 2010 1:49 pm

As a stop-gap until there are real mods using this, someone (not it!) could also write a .esp mod which just uses a script and .ini system to configure AVUncapper. It's a very simple process, if a bit tedious.
I think I managed to do this. File is http://tesnexus.com/downloads/file.php?id=35675. It would be my first mod if it works :D
I'm not entirely sure how accurate the information is in the ini so any suggestions/corrections would be nice :)
User avatar
Daniel Holgate
 
Posts: 3538
Joined: Tue May 29, 2007 1:02 am

Post » Wed Sep 01, 2010 9:54 pm

I think I managed to do this. File is http://www.4shared.com/file/tAP-7uOi/JCN_AV_Uncap.html. It would be my first mod if it works :D
I'm not entirely sure how accurate the information is in the ini so any suggestions/corrections would be nice :)


That`s great, mate! :thumbsup:

You should upload it to TESNexus.
User avatar
Je suis
 
Posts: 3350
Joined: Sat Mar 17, 2007 7:44 pm

Post » Wed Sep 01, 2010 10:24 pm

I think I managed to do this. File is http://www.4shared.com/file/tAP-7uOi/JCN_AV_Uncap.html. It would be my first mod if it works :D
I'm not entirely sure how accurate the information is in the ini so any suggestions/corrections would be nice :)


Is there any simple way to test if it works? Has anyone tested it?
User avatar
Ells
 
Posts: 3430
Joined: Thu Aug 10, 2006 9:03 pm

Post » Wed Sep 01, 2010 6:58 pm

Is there any simple way to test if it works? Has anyone tested it?


Console: "GetGameSetting " If it returns the right value, it is working.
User avatar
Gemma Woods Illustration
 
Posts: 3356
Joined: Sun Jun 18, 2006 8:48 pm

Post » Wed Sep 01, 2010 11:34 pm

Console: "GetGameSetting " If it returns the right value, it is working.


Thank you.
User avatar
Taylor Tifany
 
Posts: 3555
Joined: Sun Jun 25, 2006 7:22 am

Post » Wed Sep 01, 2010 11:11 pm

I think I managed to do this. File is http://www.4shared.com/file/tAP-7uOi/JCN_AV_Uncap.html. It would be my first mod if it works :D
I'm not entirely sure how accurate the information is in the ini so any suggestions/corrections would be nice :)

The ini looks good, and your explanations are well written. If you post it on TESNexus, I'll post a link from the AV Uncapper page.

One small thing, though: for the 'favumax***' settings that control effective skill & attribute levels, you have the default values as 0. This is the uncapped behavior, the actual default value is 100, which reproduces the vanilla behavior.
User avatar
Nick Jase Mason
 
Posts: 3432
Joined: Sun Jul 29, 2007 1:23 am

Post » Wed Sep 01, 2010 1:09 pm

The ini looks good, and your explanations are well written. If you post it on TESNexus, I'll post a link from the AV Uncapper page.

One small thing, though: for the 'favumax***' settings that control effective skill & attribute levels, you have the default values as 0. This is the uncapped behavior, the actual default value is 100, which reproduces the vanilla behavior.

Alright thanks.

Uploaded @ the nexus http://tesnexus.com/downloads/file.php?id=35675
User avatar
Ana Torrecilla Cabeza
 
Posts: 3427
Joined: Wed Jun 28, 2006 6:15 pm

Post » Wed Sep 01, 2010 1:45 pm

Uploaded @ the nexus http://tesnexus.com/downloads/file.php?id=35675


Thanks.
User avatar
Sylvia Luciani
 
Posts: 3380
Joined: Sun Feb 11, 2007 2:31 am

Post » Wed Sep 01, 2010 8:18 pm

Great job, thanks mate!
User avatar
Darlene DIllow
 
Posts: 3403
Joined: Fri Oct 26, 2007 5:34 am

PreviousNext

Return to IV - Oblivion