While a lot of information is available on skills, one peice of information that is lacking is the affect each attribute level has on a skill. What I'm trying to accomplish is to first define all of the affected attributes from 0-16, and then determine the formula associated to get that result. As this information is compiled, it will be made available to everyone. In particular, my hope is that it will be useful to sites hosting skill databases, and programmers of applications such as character builders.
If you are interested in helping, I'm looking for two types of volunteers:
1) People who can gather the stats for each attribute level on a skill.
2) People who can help determine the formula used.
If you would like to participate, please use to following link to see where we are at, and what information we need. Please send any information to [email protected] in plain text or rich text formats, or post them on this thread.
How to calculate a formula:
Primarily, we're looking for people who are good at math, but to a degree it requries playing around with numbers.
1) Determine the change. First, you need to determine what the changed values are for each attribute point. In this example, I'll use Chaos Storm. One of the values that is affected is as follows from 0-12:
5, 6, 6, 7, 7, 8, 9, 9 , 10, 10, 11, 12, 12
It changes for each point:
-> 1 0 1 0 1 1 0 1 0 1 1 0
This represents an increase of one point every 3 out of 5 times.
2) Determining the formula. I know it's 3/5, so I make it simple:
$n / 5 = 1/5 and * 3 for the 3/1 of it.
3) More formula information. Rounding, ceiling and floor values. There are three ways you can handle the fractions. You can either round it (.5 and higher is up), or you can use ceiling and floor value. Ceiling values mean if there is any fraction it is automatically rounded up. Floor values are for all fractions rounded down (dropped basically).
When to use each:
* In this example, I used round, because the increase follows the numbers:
round(($n / 5) * 3, 0)
The ", 0" is used to make it round to a full number (as opposed to .1 or .01).
* Take the floor and ceiling functions. In this example the progression goes:
10, 15, 21, 26, 32, 37, 43, 48 , 54, 59, 65, 70, 76
-> 5 6 5 6 5 6 5 6 5 6
So, it always increase 5, and then every other time it increases an additional point. So, what I need to do is automatically multiple $n by 5, but then take $n / 2 and only round up on the evens.
floor($n * 5 + ($n / 2))
If the first value would have been a 6 increase instead of 5, I would have used ceiling.
Elementalist
Mesmer
Monk
Necromancer
Ranger
Warrior
Skill Statistics
Deviant
Calimar
contact me at [email protected] with data, I'll get you the formula if there's one. Or try to =)
I've been thinking to do the same but lack the time to collect all the data.
I've been thinking to do the same but lack the time to collect all the data.
arredondo
Great idea, but add a 17 attribute column to all the classes, and add 17, 18, and 19 attribute columns to the Necro page. Some weapon mods give a bonus of +1 to attributes (20% chance or less), and the Necro skill Awaken the Blood gives a +2 to Curses and Blood skills for a long period of time.
Also consider a comments column to briefly label each number's significance with a single word. For instance, Mesmer's Hex Breaker at 0 is 60,10. The comment would be "Time, Damage" which explains that it lasts 60 seconds and causes 10 damage when triggered. If you're pressed for space, consider that to probably 95% of the intended audience, a brief comment would be more useful than listing the formula after all the numbers are in.
Also consider a comments column to briefly label each number's significance with a single word. For instance, Mesmer's Hex Breaker at 0 is 60,10. The comment would be "Time, Damage" which explains that it lasts 60 seconds and causes 10 damage when triggered. If you're pressed for space, consider that to probably 95% of the intended audience, a brief comment would be more useful than listing the formula after all the numbers are in.
Cranky
But the problem with added a 17,18,19 collumn is that the skills themselves do not show you the values, and thus must be determined experimentally. Seems pointless to me. But if you're really that curious, I think you could just use the formula if you wanted to know an estimate.
arredondo
If finding out 17, 18, and 19 values is pointless then the entire project is pointless (which it is not). Many people already max out their lines at 16 for various classes, and I've found myself a few times wondering how much AtB and weapon/foci modifiers would help my character at these extended values. 100% info is always better than 95% info.
With that said, a lot of experimentation could be fun. I'll try and get some data for the Mesmer line when I get some time. For the 17 attribute, get a PvP made character with a +1 Weapon and a +1 Focus item (both 20% chance), then conduct controlled tests. It's not too difficult.
With that said, a lot of experimentation could be fun. I'll try and get some data for the Mesmer line when I get some time. For the 17 attribute, get a PvP made character with a +1 Weapon and a +1 Focus item (both 20% chance), then conduct controlled tests. It's not too difficult.
Deviant
Well, the primary idea behind calculating up to 16 is to get a large sampling of the rate of increase. Some skills I've noticed go in a cycle of 8. So, you need the full 16 to get an accurate formula. Once you have the formula, you could apply an attribute level of 17, 18, 19, etc, and get an accurate number.
theclam
Don't all skills work the exact same way? I am almost completely sure that the formula is the same:
Code:
AttLvl*((TwelveNum-ZeroNum)/12)+ZeroNum=N
Attlvl=The level of your Attribute
TwelveNum=What duration/damage/healing/etc the skill has at Attribute level 12
ZeroNum=What duration/damage/healing/etc the skill has at Attribute level 0
N=What duration/damage/healing/etc the skill has when the Attribute level is equal to Attlvl
Code:
EDIT:
I tested this out with Troll Unguent with the actual results and my formula
Code:
Lvl-actual-expected lvl0-3-3 lvl1-3-3.5 lvl2-4-4 lvl3-4-4.5 lvl4-5-5 lvl5-5-5.5 lvl6-6-6 lvl7-6-6.5 lvl8-7-7 lvl9-7-7.5 lvl10-8-8 lvl11-8-8.5 lvl12-9-9 lvl13-9-9.5 lvl14-10-10 lvl15-10-10.5 lvl16-10-11 It appears that, in this case, it's rounded down. However, lvl16 should be at 11 if my formula holds true. Still, that could be because health regeneration is capped at +10 or maybe Troll Unguent is capped at +10.
Now I'll try Quickening Zephyr:
Code:Spirit Level Lvl-actual-expected lvl0-1-1 lvl1-2-1.58 lvl2-2-2.17 lvl3-3-2.75 lvl4-3-3.33 lvl5-4-3.92 lvl6-5-4.5 lvl7-5-5.08 lvl8-6-5.67 lvl9-6-6.25 lvl10-7-6.83 lvl11-8-7.42 lvl12-8-8 lvl13-9-8.58 lvl14-9-9.17 lvl15-10-9.75 lvl16-11-10.33 Spirit Duration lvl0-30-30 lvl1-38-38 lvl2-46-46 lvl3-54-54 lvl4-62-62 lvl5-70-70 lvl6-78-78 lvl7-86-86 lvl8-94-94 lvl9-102-102 lvl10-110-110 lvl11-118-118 lvl12-126-126 lvl13-134-134 lvl14-142-142 lvl15-150-150 lvl16-158-158 It appears that my formula is correct, at least in these three variables. However, the rounding is strange. Troll Unguent is rounded down from .5 to 0, every single time. This could be rounding down every time or rounding to the nearest integer (but down at .5). Quickening Zephyr is rounded the nearest integer, but unlike Troll Unguent, it is rounded up at .5. I'm guessing that rounding is always to the nearest integer, but Troll Unguent was programmed in a strange fashion. If someone wants to crunch some more numbers, they can, but I'm too lazy to do any more.
Deviant
Someone included a generic formula on the same post on TGH:
((value @ attrib 12) - (value @ attrib 0) / 12 ) * attrib level + (value @ attrib 0)
I'm certainly willing to verify that with each skill, once all the attribute levels for each skill are done.
((value @ attrib 12) - (value @ attrib 0) / 12 ) * attrib level + (value @ attrib 0)
I'm certainly willing to verify that with each skill, once all the attribute levels for each skill are done.
Rajamic
Part of the problem here is that you are assuming that the formulas they use all result in integer values at 0 and 12. That is not necessarily the case.
For example, if Troll is 3.15 at attribute 0, and increases by .49 each attribute level, you will get the correct numbers if you round down (I found this with educated guesses and trial and error). You could come up with plenty of other formulas that would work with just slightly different numbers.
With Quickening Zephyr's level, the increase can be seen more easily. Every 5 attribute levels, it increases 3 points, so .6 points per attribute level. With this pattern, the X.0 is right after the point where there is only one attribute level with a given value (such as level 1, level 6, level 11 all have X.0). This means that level 0 is at X.0 - .6, or Y.4. So attribute 0 value is 1.4, and it increases by .6 each level, again rounding the result down.
As for the rounding, assuming I am right about using decimals, how you round in irrelavant, just stay consistant about it. If you want to round to the nearest, just add 0.5 to the attribute zero number. If you want to round up, add another 0.49 to the zero number on top of that 0.5.
The problem with this? Well, you need to know all the values in order to test it, so it won't help you find much of anything. Could be useful if writing a utility program for skills and character setups, though.
For example, if Troll is 3.15 at attribute 0, and increases by .49 each attribute level, you will get the correct numbers if you round down (I found this with educated guesses and trial and error). You could come up with plenty of other formulas that would work with just slightly different numbers.
With Quickening Zephyr's level, the increase can be seen more easily. Every 5 attribute levels, it increases 3 points, so .6 points per attribute level. With this pattern, the X.0 is right after the point where there is only one attribute level with a given value (such as level 1, level 6, level 11 all have X.0). This means that level 0 is at X.0 - .6, or Y.4. So attribute 0 value is 1.4, and it increases by .6 each level, again rounding the result down.
As for the rounding, assuming I am right about using decimals, how you round in irrelavant, just stay consistant about it. If you want to round to the nearest, just add 0.5 to the attribute zero number. If you want to round up, add another 0.49 to the zero number on top of that 0.5.
The problem with this? Well, you need to know all the values in order to test it, so it won't help you find much of anything. Could be useful if writing a utility program for skills and character setups, though.