10-09-2004, 01:27 PM
A few points of clarity on this matter. This is from those that have looked at the coding of the way the game generates the affixes for the items.
For a rare item the game will select which set to generate an affix from (prefix/suffix).
Then it will build a list of those affixes that are of that type (prefix/suffix), can be used on that item type, have a level greater than or equal to the items alvl and a maxlevel that is less than or equal to the items alvl (if there is a value for this field), has a frequency greater than zero, has spawnable=1, has a version of 1 or 100 for LoD (version=1 is only for D2C and version=0 is for leagacy items prior to D2v1.07), has rare=1 AND does not have a group number equal to one that has already been applied to the item. It will then pick from these affixes based on the frequency values for the affixes in the list. This list has a maximum number of entries that it can contain (512? I forget); but this is really only of concern to modders that build very large affix tables since the games default ones are small enough to not run into this limitation.
For each succesive affix it will repeat the process by building a new list for each time that it picks an affix.
Basically the two ways of looking at it are the same, but there could arise some situations were the subtly of the difference could play a part. As such it is better to stick with knowing the way the game does actually do the process rather than possibly getting tripped up later by a misunderstanding of a minor point.
References to things like version, spawnable, rare, level, maxlevel, frequency and group are from the data fields of the files magicprefix.txt, magicsuffix.txt and automagic.txt files in the games MPQs.
For a rare item the game will select which set to generate an affix from (prefix/suffix).
Then it will build a list of those affixes that are of that type (prefix/suffix), can be used on that item type, have a level greater than or equal to the items alvl and a maxlevel that is less than or equal to the items alvl (if there is a value for this field), has a frequency greater than zero, has spawnable=1, has a version of 1 or 100 for LoD (version=1 is only for D2C and version=0 is for leagacy items prior to D2v1.07), has rare=1 AND does not have a group number equal to one that has already been applied to the item. It will then pick from these affixes based on the frequency values for the affixes in the list. This list has a maximum number of entries that it can contain (512? I forget); but this is really only of concern to modders that build very large affix tables since the games default ones are small enough to not run into this limitation.
For each succesive affix it will repeat the process by building a new list for each time that it picks an affix.
Basically the two ways of looking at it are the same, but there could arise some situations were the subtly of the difference could play a part. As such it is better to stick with knowing the way the game does actually do the process rather than possibly getting tripped up later by a misunderstanding of a minor point.
References to things like version, spawnable, rare, level, maxlevel, frequency and group are from the data fields of the files magicprefix.txt, magicsuffix.txt and automagic.txt files in the games MPQs.