Question about alvl (sorry, bad at math)

Warmongers

Diabloii.Net Member
Question about alvl (sorry, bad at math)

This is the formula for how an affix level is selected in 1.11, I think.

If (ilvl>99) then {ilvl=99}
if (qlvl>ilvl) then {ilvl=qlvl} ;** see note below
if (magic_lvl>0) then {alvl=ilvl+magic_lvl}
else
{
if (ilvl<(99-qlvl/2))
then {alvl=ilvl-qlvl/2}
else {alvl=2*ilvl-99}
}
If (alvl>99) then {alvl=99}

If this is true, then would the following example also be true?

Colossus Blade (qlvl 85)
Affix level of "The giant, +10-15 strength" (alvl 59)

Hell baal drops a magical colossus blade, which is always ilvl 99 since that is his mlvl. (the next part I might be wrong about, since it says ilvl"<(99"-qlvl/2))

So, if alvl=ilvl-qlvl/2 means affix level equals the item level minus half of the quality level, then the effective affix level of the colossus blade would be 57 (99-42=57), which means that the giant mod is impossible on any weapon in the game, since ilvl 99 is the highest? Or, does this formula only apply if the item level is 99 or above?

I probably missed something, since I've seen plenty of 300%ED+ rares with at least one cruel or master's mod on it drop from creatures far below mlvl=80.

The part where if (magic_lvl>0) then {alvl=ilvl+magic_lvl} - does magic_lvl>0 mean anything that is magical/rare/unique/set, so therefore magic_lvl1 would be magical? If so, assuming magic_lvl2 is rare, would this be the correct way that an affix spawns, both on monster drops and in cube recipes?

I put a rare fanged knife (qlvl 85 in 1.10) found from an mlvl 85 monster (so ilvl=85) with 6 PSkulls into the horadric cube and hit transmute, so the affix levels possible would be equal to 85+2, regardless of the base items' quality level?

My last question is, have the qlvls from this link: http://www.diabloii.net/items/110tc.shtml changed any in 1.11b, or are they still identical to 1.10 qlvls?

Thanks :)
 

krischan

Europe Trade Moderator
The "if (ilvl<(99-qlvl/2))" condition is not given, so the "else" case is performed, resulting in alvl=2*ilvl-99=99 and not alvl=ilvl-qlvl/2.
 

Warmongers

Diabloii.Net Member
The "if (ilvl<(99-qlvl/2))" condition is not given, so the "else" case is performed, resulting in alvl=2*ilvl-99=99 and not alvl=ilvl-qlvl/2.
I'm still a bit confused as to these two equations - when is the "if (ilvl<(99-qlvl/2))" condition used to determine the affix level, and when would the game instead choose to use alvl=2*ilvl-99? I don't know exactly what the first or second equations mean either - I guess the first means If the items' ilvl is less than 99 then its' alvl is equal to the item level minus half its' quality level? Also, does alvl=2*ilvl-99 translate into affix level equals two times the item level minus 99, so therefore an ilvl 99 item (when its' alvl is being determined using this formula) has alvl=99 because 2*ilvl-99=99 for it?

I'm wondering when the game would use the first equation or the second equation to determine the alvl of an item, since using the first one would cause the item to fall short of some alvl mods, Also if there is a mistake in my interpretion of the formulas, please let me know (I haven't done any math in years) :smiley:



 

ToThePoint

Diabloii.Net Member
not sure exactly what you are asking but for the colossus blade from baal
ilvl at start=99 qlvl = 85 of giant = 59

If (ilvl>99) then {ilvl=99} (its not more than so does nothing)
if (qlvl>ilvl) then {ilvl=qlvl} (85 isn't more than 99 so does nothing)
if (magic_lvl>0) then {alvl=ilvl+magic_lvl} (magic level is for circlets etc i think so does nothing in this case)
else (do this bit instead cos magic level stuff isn't more than zero cos not a circlet type)
{
if (ilvl<(99-qlvl/2)) 99-qlvl/2 is 99-42.5 rounded is 57
then {alvl=ilvl-qlvl/2} ilvl99 isn't less than 56.5 so dont do this part
else {alvl=2*ilvl-99} instead do this so alvl = 2*99-99 = 99 = can choose any lvl of affix on a colossus blade from baal
}
If (alvl>99) then {alvl=99} (this part follows from the circlet part so that if the magic level took the alvl above 99 it would drop back to 99)

warmongers said:
I'm wondering when the game would use the first equation or the second equation to determine the alvl of an item, since using the first one would cause the item to fall short of some alvl mods
the game uses the formulae depending on the exact conditions at the time - if it wasn't a colossus blade from baal but instead a dagger from nm meph it would use qlvl= 3 and ilvl = 75 (iirc)
so
If (ilvl>99) then {ilvl=99} (its not more than so does nothing)
if (qlvl>ilvl) then {ilvl=qlvl} (3 isn't more than 75 so does nothing)
if (magic_lvl>0) then {alvl=ilvl+magic_lvl} (magic level is for circlets etc i think so does nothing in this case)
else (do this bit below instead cos magic level stuff isn't more than zero cos not a circlet type)
{
if (ilvl<(99-qlvl/2)) 99-qlvl/2 is 1.5 rounded down to 1 is 98
then {alvl=ilvl-qlvl/2} ilvl75 IS less than 98 so alvl = 75-1.5 rounded to 1 is 74
else {alvl=2*ilvl-99} it did satify the condition so dont do this part
}
If (alvl>99) then {alvl=99}
this time the alvl was changed with the other condition
im not sure if its maths or programming that in making it hard

basic form is
if conditionsatisfied
do action1
else
do action2
if condition is satisfied then action 1 is done then that part is finished and action 2 skipped
if condition isn't satisfied then action1 skipped and action 2 done instead then its done
the {} show the parts that are joined

dunno if this is what is being asked or not but its a free post! :rolleyes:

edit : for fanged the ilvl changes at some point so it can have an extra step (other thing i wrote isn't right i dont think)

hopefully this is right as a bit rushed
 

Warmongers

Diabloii.Net Member
not sure exactly what you are asking but for the colossus blade from baal
ilvl at start=99 qlvl = 85 of giant = 59

If (ilvl>99) then {ilvl=99} (its not more than so does nothing)
if (qlvl>ilvl) then {ilvl=qlvl} (85 isn't more than 99 so does nothing)
if (magic_lvl>0) then {alvl=ilvl+magic_lvl} (magic level is for circlets etc i think so does nothing in this case)
else (do this bit instead cos magic level stuff isn't more than zero cos not a circlet type)
{
if (ilvl<(99-qlvl/2)) 99-qlvl/2 is 99-42.5 rounded is 57
then {alvl=ilvl-qlvl/2} ilvl99 isn't less than 56.5 so dont do this part
else {alvl=2*ilvl-99} instead do this so alvl = 2*99-99 = 99 = can choose any lvl of affix on a colossus blade from baal
}
If (alvl>99) then {alvl=99} (this part follows from the circlet part so that if the magic level took the alvl above 99 it would drop back to 99)


the game uses the formulae depending on the exact conditions at the time - if it wasn't a colossus blade from baal but instead a dagger from nm meph it would use qlvl= 3 and ilvl = 75 (iirc)
so
If (ilvl>99) then {ilvl=99} (its not more than so does nothing)
if (qlvl>ilvl) then {ilvl=qlvl} (3 isn't more than 75 so does nothing)
if (magic_lvl>0) then {alvl=ilvl+magic_lvl} (magic level is for circlets etc i think so does nothing in this case)
else (do this bit below instead cos magic level stuff isn't more than zero cos not a circlet type)
{
if (ilvl<(99-qlvl/2)) 99-qlvl/2 is 1.5 rounded down to 1 is 98
then {alvl=ilvl-qlvl/2} ilvl75 IS less than 98 so alvl = 75-1.5 rounded to 1 is 74
else {alvl=2*ilvl-99} it did satify the condition so dont do this part
}
If (alvl>99) then {alvl=99}
this time the alvl was changed with the other condition
im not sure if its maths or programming that in making it hard

basic form is
if conditionsatisfied
do action1
else
do action2
if condition is satisfied then action 1 is done then that part is finished and action 2 skipped
if condition isn't satisfied then action1 skipped and action 2 done instead then its done
the {} show the parts that are joined

dunno if this is what is being asked or not but its a free post! :rolleyes:

edit : for fanged qlvl is 83 and initial ilvl 85 but the cube recipe alters the ilvl before going into that process by a formula which i cant remember off hand and am being pestered irl atm (has 0.4 in it and lowers it anyway) so first get that ilvl then do process normally - someone will probably tell you the formula before im back

hopefully this is right as a bit rushed
Thank you, that completely answered the question that was being asked :)



 

ToThePoint

Diabloii.Net Member
Thank you, that completely answered the question that was being asked :)
no probs hopefully its right too :)

edit: other thing i wrote was right so from arreat summit for that rare cube recipe
ilvl = [0.4ilvl]+[0.4cvl] [] = round down
assuming lvl 90 cuber and ilvl 85 drop get ilvl= 36+34= 70

so when it hits the 2nd step
if (qlvl>ilvl) then {ilvl=qlvl} so ilvl 70 is replaced with new value of ilvl 83
..
..
if (ilvl<(99-qlvl/2)) 83 isn't less than 58 so
then {alvl=ilvl-qlvl/2} <- skip
else {alvl=2*ilvl-99} <-- instead do this, so alvl then becomes 2*83-99 = 67



 

Warmongers

Diabloii.Net Member
no probs hopefully its right too :)

edit: other thing i wrote was right so from arreat summit for that rare cube recipe
ilvl = [0.4ilvl]+[0.4cvl] [] = round down
assuming lvl 90 cuber and ilvl 85 drop get ilvl= 36+34= 70

so when it hits the 2nd step
if (qlvl>ilvl) then {ilvl=qlvl} so ilvl 70 is replaced with new value of ilvl 83
..
..
if (ilvl<(99-qlvl/2)) 83 isn't less than 58 so
then {alvl=ilvl-qlvl/2} <- skip
else {alvl=2*ilvl-99} <-- instead do this, so alvl then becomes 2*83-99 = 67
Ok, cool. Does this mean that if I have already rolled it once and it becomes ilvl 67, when I roll it again it automatically becomes the equivalent of ilvl 83 again for the actual point where the affix level is selected, regardless of the ilvl of the initial find or the subsequent rolls? I think that's what I made of it, which means it really doesn't matter what ilvl the initial item is, it will always be able to get good affixes if the qlvl is high enough to negate the ilvl?



 

ToThePoint

Diabloii.Net Member
yeah as long as qlvl is high the ilvl will always be reset to this high figure in the alvl selections.
so in this case ilvl doesn't matter
 
Top