IPB

Здравствуйте, гость ( Вход | Регистрация )

Зарегистрируйтесь, чтобы скрыть этот рекламный блок.
2 страниц V   1 2 >  
Ответить в эту темуОткрыть новую тему
> Генерация предметов в D2LOD 1.10 - 1.11b
and-simo
сообщение 21.04.2007 - 16:16
Сообщение #1


mods explorer
*****

Сообщений: 3040
Регистрация: 14.11.2005



ГЕНЕРАЦИЯ ПРЕДМЕТОВ В D2LOD 1.10 - 1.11
или
КАК РАБОТАЕТ РАНДОМАЙЗЕР

---------------------------------------
1. ВСТУПЛЕНИЕ
2. ТЕРМИНОЛОГИЯ
3. КОРОТКОЕ ИЗЛОЖЕНИЕ ПРОЦЕССА ДРОПА
4. ФАЙЛЫ ДАННЫХ ИГРЫ
4.1. TreasureClassEx.txt
4.2. Monstats.txt
4.3. MagicPrefix.txt и MagicSuffix.txt
4.4. Itemratio.txt
5. ЛОКАЦИИ, МОНСТРЫ И УРОВНИ ПРЕДМЕТОВ
6. ВЫБОР КАЧЕСТВА ПРЕДМЕТА
7. ОТБОР СЕТОВЫХ И УНИКАЛЬНЫХ ПРЕДМЕТОВ
8. ГЕНЕРАЦИЯ ПРЕДМЕТОВ У ПРОДАВЦОВ
9. АЗАРТНАЯ ИГРА
10. РУНЫ И ЧАРМЫ
11. КВЕСТОВЫЙ ДРОП И БАГ ANDARIEL
12. COUNTESS
13. IMBUING (НАПОЛНЕНИЕ)
14. КРАФТИНГ
15. СКИЛЛЕРЫ
16. ГЕНЕРАЦИЯ РУН В HELL FORGE
17. MAGIC FINDING
18. ИЗМЕНЕНИЯ ПО ДРОПУ В ПАТЧЕ 1.11

1. ВСТУПЛЕНИЕ

Целью большинства игроков в Диабло II является тотальное вырезание поголовья монстров, сбор с их трупов наиболее ценного шмота и с помощью последнего, воспитание и развитие боевых и магических навыков героя вплоть до уровня Бога. Многие проводят за игрой сотни и тысячи часов в поисках какой-то определенной вещи, которая поможет в достижении цели, таким образом ставя итем хантинг во главу угла.
Эта статья даст ответ на многие вопросы о предметах сквозь призму механизма генерации их в процессе игры.

2. ТЕРМИНОЛОГИЯ

Item Type — тип предмета, например короткий меч, кольцо, щит и т.д.
Item Quality — качество предмета, напр. низкое качество, нормальное, улучшенное, магический предмет, раритетный, сетовый, уникальный.
Аффиксы — это магические свойства предмета, реализуемые в приставках (prefix) и суффиксах (suffix). Надо отметить, что не все свойства предмета - аффиксы. Например, модификаторы на крафтовых предметах и некоторые спецмодификаторы на униках и сетах, типа "+60 mana" на magic ring - аффикс, а "+20% crushing blow" - аффиксом не является. Кроме того, существуют автомоды (Auto Mods) и бонусы предметов, которые также не являются аффиксами. Из первых наиболее известны свойства "+1-3 (скилл) (тип персонажа)", из вторых - "+50% Damage to Undead" на всем Blunt Weapons.
Qlvl — качество предмета, включающее в себя:
1) уровень типа предмета (прописан в weapons.txt, armor.txt и misc.txt).
2) уровень сетового или уникального предмета (прописан в UniqueItems.txt или SetItems.txt).
Ilvl — уровень предмета. Все предметы в игре имеют уровни, которые генерируются непосредственно в ходе их создания. По необъяснимым причинам Blizzard скрывает их значения от игроков. Не путай уровень предмета с необходимым уровнем (Required Level) — это разные понятия.
Mlvl — уровень монстра. Каждый монстр в игре имеет свой уровень.
Area Level — уровень локации.
Alvl — уровень аффикса, или общий уровень приставки или суффикса. Они прописаны в MagicPrefix.txt и MagicSuffix.txt в колонке "Level". Название "уровень аффикса" используется, чтобы отличать их от других "Levels".
TC — Treasure Class или попросту классы сокровищ. Все предметы в игре организованы по TC. Они рекурсивны. Это означает, что один класс сокровищ может включать в себя другие классы сокровищ. Например, дроп Баала на уровне сложности Hell будет состоять из предметов TC "Baal (H)", который в свою очередь содержит TC от "Act 5 (H) Equip B", "Act 5 (H) Junk" и "Act 5 (H) Good". Каждый из них состоит еще из нескольких других классов TC.
Clvl — уровень персонажа. Это один из немногих показателей, которые можно фактически видеть в игре.
Rarity - редкость - параметр, назначенный на каждый наборный и уникальный предмет в игре. Чем выше значение редкости предмета, тем чаще эту вещь можно найти в игре. Например, Stone of Jordan (soj) имеет Rarity=1, кольцо Manald Heal имеет Rarity=15.
SP - single player - режим одиночной игры.

3. КОРОТКОЕ ИЗЛОЖЕНИЕ ПРОЦЕССА ДРОПА

Состав предметов а также их свойства генерируются в момент убийства монстра по следующей схеме:

1. Обращение к Treasure Class (ТС)
2. Создание одной или нескольких выборок, так называемых picks, которые отбирают один вариант из нескольких содержимого всего стека TC
2.1. Одним из вариантов выборки является значение NoDrop
2.2. В каждом варианте содержится несколько предметов
3. По итогам выборки определяется тип предмета.
4. Далее стартует расчет определения качества предмета. На этом этапе отрабатывает %MF, и его значение считается с персонажа, если он сам убивает монстра, или суммируется с %MF мерка, если он наносит финальный удар.
5. Для выбранного типа предмета калькулируется ilvl
6. Если отобран тип уника или сетового предмета, создается список всех таких предметов подпадающих под этот ilvl
7. Из общего списка рандомайзер выбирает один предмет, и если он не входит в список уников или сетов, создается или магический предмет с 2х или рар с 3х дюрабилити
8. После определения типа и качества предмета генерируются аффиксы и варьируемые свойства, в случае если они присущи данному предмету.
Прим. Предметы могут быть нераспознанными, тем не менее их свойства не изменятся независимо от того, кто и когда их будет идентифицировать.
В укороченном изложении ход процесса выглядит так:
- расчет количества предметов в дропе
- выбор типов предметов
- выбор качества
- выбор определенных уников или сетовых предметов при необходимости
- выбор свойств предметов.

4. ФАЙЛЫ ДАННЫХ ИГРЫ

Многие параметры дропа хранятся в txt файлах, которые упакованы в файлы формата MPQ в директории Диабло, и могут быть просмотрены при открытии программами типа MPQView, MPQ Master и подобными в табличных текстовых редакторах (D2Excel, AFJ Tbl Edit и т.п.).

4.1. TreasureClassEx.txt

Это самый важный файл, который организовывает все предметы которые могут дропаться в систему Treasure Classes (TC).
Каждый источник предметов в игре, кроме предметов от NPC, зависит от TC.
Начнем с описания всех полей таблицы TreasureClassEx.txt.

Treasure Class — название TC, к которому обычно обращается игра.
group — идентификационный номер TC, который будет использован в процессе модернизации (апгрейда) TC согласно Mlvl.
level — уровень TC. Также используется в процессе модернизации TC.
Picks — количество повторений процесса выбора, т.н. выборки.
Unique — числовое значение модификации для шанса дропа уника от данного TC (чем больше, тем лучше).
Set — числовое значение модификации для шанса дропа сетовой вещи.
Rare — числовое значение модификации для шанса дропа раритетного предмета.
Magic — числовое значение модификации для шанса дропа магического предмета.
NoDrop — разрядный показатель пропуска дропа предметов из TC (чем выше NoDrop, тем меньше предметов генерирует TC).
Item1-Item10 — код предмета или наименование TC, откуда будет произведена выборка (коды предметов прописаны в файлах weapons.txt, armor.txt и misc.txt).
Prob1-Prob10 — разрядность отбора соответственно Item1-Item10 (чем больше, тем лучше).
SumItems, TotalProb, DropChance — поля суммирования.
Term - поле, завершающее строку, нужное только для MS Excel

Файл TreasureClassEx.txt содержит не все TC. По ходу игра добавляет довольно много дополнительных TC, называющихся ArmoXX и WeapXX, где XX - цифровые значения. Игра создает их из файлов armor.txt и wepons.txt, исходя из текущего уровня. Первый TC, Armo03, содержит все предметы экипировки с уровнями от 1 до 3: Cap, Quilted Armor, Leather Armor, Buckler, Gloves, Boots, Sash. Следующий TC, Armo06, содержит предметы с уровнями от 4 до 6, и так далее. Последний TC, Armo87, содержит все брони с уровнями от 85 до 87.
Оружие организовано в свои TC, Weap03-Weap87 тем же самым способом и по аналогичному принципу.
В этих TC показатели Prob1-Prob10 равны 3 для всех нормальных предметов, 1 для всего класса специфических предметов, 2 для assassin claws, и 1 для wands, staves и scepters. Эти значения могут быть найдены в файле ItemTypes.txt.

Теперь рассмотрим процесс отбора предметов из TC.

Все монстры имеют классы, прописанные в файле monstats.txt. Когда ты убиваешь монстра в уровне сложности Normal, игра просто использует его TC для выборки дропа. Однако на уровнях Nightmare и Hell данный TC может апгрейдиться. Определяя TC для монстра, игра выбирает самый высокий уровень TC в группе, которая является равной или ниже чем Mlvl. Если нет подходящей группы для TC этого монстра, тогда TC не модернизируется, а подклассы TC, включенные в отобранный TC в этом случае не апгрейдятся.

Выбирая из TC игра делает одну или несколько попыток генерации предметов согласно значению в поле Picks. Каждый pick производит выборку из нескольких возможностей, в которые включается NoDrop, не являющийся пустым полем, и каждый непустой элемент из ячеек Item1-Item10. Шанс на каждый выбор равен X/Sum, где X - соответствующее значение из полей Prob1-Prob10 для Item1-Item10, или значение NoDrop для выбора NoDrop, а Sum - сумма значений всех ячеек(NoDrop+Prob1+Prob2 +... +Prob10).

Если в течение этого процесса игра выбирает другой TC, то будет инициирован тот же самый цикл для него, вместе с другим циклом для недавно отобранного TC, затем следующий и следующий, до тех пор, пока не будет отобран или предмет или NoDrop.

В мультиплеере значения NoDrop снижены:

NewNoDrop=int (ProbSum / (1 / ((NoDrop / (NoDrop+ProbSum)) ^N)-1))

где N=int (1+AdditionalPlayers/2+ClosePartiedPlayers/2),

AdditionalPlayers — количество игроков на момент смерти монстра,
ClosePartiedPlayers — число игроков в партии, включая находящихся не далее чем на два экрана,
ProbSum=Prob1+Prob2+Prob3 +... +Prob10,
int — оператор исключения дробной части числа.

В режиме одиночной игры команда /playersX устанавливает количество эмулируемых игроков, например, команда /players8 устанавливает значение N=4.

Рассмотрим пример, в котором в качестве жертвы выступит обыкновенный невинный чертенок по имени Devilkin в локации The Pit А1 на уровне сложности Hell в режиме /players8 (или в полной игре в Battle.net).Уровень монстра Mlvl=85. В файле monstats.txt Devilkin фигурирует под именем "fallen3". Неуникальные монстры из группы fallen3 дропают предметы из TC "Act 1 (H) H2H B" на сложности Hell.
В файле TreasureClassEx.txt "Act 1 (H) H2H B" TC имеет group=7 и level=66. Поскольку Mlvl=85, TC апгрейдится до TC "Act 5 (H) H2H C" , который имеет level=85 (меньше или равный mlvl).
Таким образом Devilkin в локации The Pit дропает предметы из TC "Act 5 (H) H2H C".
Одна выборка (pick) производит отбор из возможностей :
* NoDrop (100);
* gld (21);
* Act 5 (H) Equip C (16);
* Act 1 (H) Junk (21);
* Act 5 (H) Good (2).
Числа в скобках - вероятности.
Вычисляем NewNoDrop:
ProbSum=21+16+21+2=60.
NoDrop=100.
N=4.
NewNoDrop = int (60 / (1 / ((100 / (100+60)) ^4)-1)) = 11.

Таким образом Devilkin из этой локации имеет возможности:
* 11/71 - вообще ничего не дать;
* 21/71 - отделаться только золотом;
* 16/71 - дропнуть предмет из TC Act 5 (H) Equip C;
* 21/71 - дропнуть барахло из TC Act 1 (H) Junk;
* 2/71 - дропнуть вещь из TC Act 5 (H) Good.

Предположим, что рандомайзер решил остановиться на дропе из ТС "Act 5 (H) Equip C".
В таком случае имеем: Picks=1, NoDrop=0,
Item1 = "weap81", Prob1=2,
Item2 = "armo81", Prob2=1,
Item3 = "weap84", Prob3=6,
Item4 = "armo84", Prob4=3,
Item5 = "weap87", Prob5=14,
Item6 = "armo87", Prob6=7,
Item7 = "weap87", Prob7=1,
Item8 = "armo87", Prob8=1,
Item9 = "Act 5 (H) Equip B", Prob9=1530.
Отметим, что дважды упоминаемый ТС weap87 и armo87 не является ошибочным.

Таким образом этот TC имеет возможности:
* 2/1565 для дропа из weap81;
* 1/1565 для дропа из armo81;
* 6/1565 для дропа из weap84;
* 3/1565 для дропа из armo84;
* 15/1565 для дропа из weap87;
* 8/1565 для дропа из armo87;
* 1530/1565 для дропа из ТС "Act 5 (H) Equip B".

Рассмотрим возможность дропа из ТС armo87. Этот TC имеет picks=1, NoDrop=0,
Item1="Diadem", Prob1=3,
Item2="Corona", Prob2=3,
Item3="Sacred Armor", Prob3=3,
Item4="Ogre Gauntlets", Prob4=3,
Item5="Myrmidon Greaves", Prob5=3,
Item6="Colossus Girdle", Prob6=3,
Item7="Dream Spirit", Prob7=1,
Item8="Guardian Crown", Prob8=1,
Item9="Vortex Shield", Prob9=1,
Item10="Bloodlord Skull", Prob10=1.

Таким образом armo87 включает вероятности выпадения:

* 3/22 - Diadem;
* 3/22 - Corona;
* 3/22 - Sacred Armor;
* 3/22 - Ogre Gauntlets;
* 3/22 - Myrmidon Greaves;
* 3/22 - Colossus Girdle;
* 1/22 - Dream Spirit;
* 1/22 - Guardian Crown;
* 1/22 - Vortex Shield;
* 1/22 - Bloodlord Skull.


4.2 Monstats.txt

Этот файл содержит информацию о монстрах. А так как именно монстры являются основными носителями и источниками дропа, познакомимся с Monstats.txt поближе.

Id — внутреннее обозначение типа монстра (игра обращается к монстру, используя это поле).
NameStr — фактическое имя монстра или ссылка на табличное название для увязки с местоположением.
rangedtype — значение 1 для монстров с дистанционной атакой, без значения - для остальных.
minion1 и minion2 — тип миньона для монстра, например нормальный Fallen Shaman обычно имеет нормальных fallens в качестве миньонов.
PartyMin-PartyMax — диапазон для количества фаворитов.
MinGrp-MaxGrp — диапазон количества нормальных монстров в одной группе.
Velocity — скорость ходьбы.
Run — скорость бега.
Level — уровень монстра в сложности Normal.
Level (N) — только для боссов, и уровни монстров в сложности Nightmare.
Level (H) — только для боссов, и уровни монстров в сложности Hell.
lUndead — значение 1 для low undeads.
hUndead — значение 1 для high undeads.
Прим: high Undead не могут быть подняты поднимающими нежить заклинаниями, а low Undead - могут.
demon — значение 1 для демонов.
boss — значение 1 для боссов. Они сохраняют свои mlvl в трудностях Nightmare и Hell.
Drain, Drain(N), Drain(H) — эффективность утечки жизни и маны по уровням сложности в процентах.
coldeffect, coldeffect (N), coldeffect (H) — воздействие холода и эффективность замораживания по уровням сложности в процентах.
ResDm, ResDm (N), ResDm (H) — сопротивление повреждениям по уровням сложности в процентах.
ResMa, ResMa (N), ResMa (H) — сопротивление магии.
ResFi, ResFi (N), ResFi (H) — сопротивление огню.
ResLi, ResLi (N), ResLi (H) — сопротивление молнии.
ResCo, ResCo (N), ResCo (H) — сопротивление холоду.
ResPo, ResPo (N), ResPo (H) — сопротивление воздействию яда.
ToBlock, ToBlock (N), ToBlock (H) — шанс блокирования.
Crit — шанс критического удара (5% для всех).
TreasureClass1 — TC нормального монстра в сложности Normal.
TreasureClass2 — TC монстра чемпиона в сложности Normal.
TreasureClass3 — TC уникального монстра в сложности Normal (не-квестовый дроп).
TreasureClass4 — TC уникального монстра в сложности Normal (квестовый дроп).
TreasureClass1 (N) — TC нормального монстра в сложности Nightmare.
TreasureClass2 (N) — TC монстра чемпиона в сложности Nightmare.
TreasureClass3 (N) — TC уникального монстра в сложности Nightmare (не-квестовый дроп).
TreasureClass4 (N) — TC уникального монстра в сложности Nightmare (квестовый дроп).
TreasureClass1 (H) — TC нормального монстра в сложности Hell.
TreasureClass2 (H) — TC монстра чемпиона в сложности Hell.
TreasureClass3 (H) — TC уникального монстра в сложности Hell (не-квестовый дроп).
TreasureClass4 (H) — TC уникального монстра в сложности Hell (квестовый дроп).
TCQuestId и TCQuestCP — значения для спецквестового дропа (Mephisto Soulstone).

4.3 Magicprefix.txt и Magicsuffix.txt

Эти два файла содержит все аффиксы, доступные в игре.

Name — имя аффикса.
version — 0 для Классики, 100 для LoD.
spawnable — 1 для доступных аффиксов, 0 для аффиксов, которые не могут появиться в игре.
rare — 1 для аффиксов, которые могут появиться на раритетных предметах, 0 только для магических аффиксов.
level — минимальный уровень аффикса предмета, который может иметь этот аффикс.
maxlevel — максимальный уровень аффикса предмета, который может иметь этот аффикс.
levelreq — минимальный необходимый уровень персонажа для того, чтобы использовать предмет с этим аффиксом.
classspecific — класс, для которого этот аффикс будет работать, — ama, sor, nec, pal, bar, dru или ass. Например, приставка "Arch-Angel's" добавит навыки только для волшебницы.
classlevelreq — минимальный необходимый уровень персонажа для того, чтобы использовать предмет с этим аффиксом. Хотя обычно значение levelreq превалирует. Стоит отметить, что classlevelreq - это требуемый уровень для определенного класса персонажа. Для данного класса превалировать будет именно он.
frequency — частота появления в игре этого аффикса (0 для предметов, которые не могут быть отобраны вообще).
group — группа Id для того, чтобы выбирать аффиксы для раритетных и крафтовых вещей. Они не могут иметь больше одного аффикса на группу.
mod1code, mod2code, mod3code — коды эффектов этого аффикса. Эти коды обращаются к внутренним игровым функциям.
mod1param, mod2param, mod3param — параметры для функций аффикса. Например, poison duration, cold duration в фреймах, индексы умений.
mod1min, mod2min, mod3min — минимальные параметры для функции аффикса.
mod1max, mod2max, mod3max — максимальные параметры для функции аффикса.
transform — значение 1 для аффиксов цветовой замены на основных предметах.
transformcolor — цветовой код для аффиксов цветовой замены. Например, "dgld" - темно-золотой, "lpur" - светло-фиолетовый цвета.
itype1, itype2, itype3, itype4, itype5, itype6, itype7 — виды и коды типов предметов, на которые может применяться этот аффикс. Эти коды находятся в файлах armor.txt, weapon.txt, misc.txt и ItemTypes.txt.
etype1, etype2, etype3, etype4, etype5, etype6, etype7 — виды и коды типов предметов, на которые не может применяться этот аффикс.
divide, multiply, add — значения изменения цен на предметы.


4.4. itemratio.txt

Это самый важный файл для определения качества предмета. Сначала рассмотрим описание полей в нем, а затем приступим к механизму расчета качества

Function — описание строки.
Version — 0 для Классики, 1 для LOD.
Uber — 1 для исключительных и элитных вещей, 0 для нормальных предметов.
Class Specific — значение 1 для класс-специфик предметов, 0 для всех остальных.
Unique — основное значение шанса для уникальных предметов (1:Unique).
UniqueDivisor — значение для изменения основного шанса для уникальных предметов.
UniqueMin — минимальное значение в вычислении шанса для уникального предмета.
Rare — основное значение шанса для редких предметов.
RareDivisor — значение для изменения основного шанса для раритетных предметов.
RareMin — минимальное значение в вычислении шанса для раритетного предмета.
Set — основное значение шанса для сетовых предметов.
SetDivisor — значение для изменения основного шанса для сетовых предметов.
SetMin — минимальное значение в вычислении шанса для сетового предмета.
Magic — основное значение шанса для магических предметов.
MagicDivisor — значение для изменения основного шанса для магических предметов.
MagicMin — минимальное значение в вычислении шанса для магического предмета.
HiQuality — основное значение шанса для высококачественных предметов.
HiQualityDivisor — значение для изменения основного шанса для высококачественных предметов.
Normal — основное значение шанса для нормальных предметов.
NormalDivisor — значение для изменения основного шанса для нормальных предметов.

Файл itemratio.txt содержит две строки для классической игры (normal и exceptional предметы) и четыре строки для LОD:
1) не-класс-специфические нормальные предметы,
2) не-класс-специфические exceptional и elite предметы,
3) нормальные класс-специфические предметы,
4) exceptional и elite класс-специфик предметы.
Игра выбирает корректную строку, используя Version, Uber поля Class Specific перед стартом вычислений.

Игра выбирает качество предмета, только когда уже известен его уровень и тип. Сначала предмет проверяется по уникальному качеству. Если проверка проходит успешно, игра останавливает алгоритм расчета и создает или уникальный предмет или раритетный с тройным показателем прочности, или магическую/нормальную вещь, если этот тип предмета не может быть раритетным. Если результат проверки неудачен, запускается проверка для сетового предмета тем же способом, затем на раритет, магическую, и нормальные вещи, до тех пор, пока не будет достигнут приемлемый результат. Если все выборки не приведут к успеху, создается низкокачественное изделие.

Алгоритм проверки качества:

1) Поиск надлежащей строки в itemratio.txt.
2) Chance = (BaseChance - ((ilvl-qlvl) / Divisor)) * 128
3) if (проверка качества для уникального, сетового или раритетного предмета), EffectiveMF = MF*Factor / (MF + Factor)
else EffectiveMF = MF
4) Chance = Chance* 100 / (100 + EffectiveMF).
5) if (Chance 6) FinalChance = Chance-(Chance*QualityFactor/1024)
7) if (RND [FinalChance]<128) return Success
else return Fail

Здесь:
BaseChance — значение ячеек для уникального, раритетного, сетового, магического, высококачественного и нормального изделий в itemratio.txt.
ilvl — уровень предмета, обычно ilvl=mlvl.
qlvl — качественный уровень типа предмета.
Divisor — значение делителя из ячеек UniqueDivisor, RareDivisor, SetDivisor, MagicDivisor, HiQualityDivisor и NormalDivisor в itemratio.txt.
MinChance — значение из UniqueMin, RareMin, SetMin, MagicMin в itemratio.txt. Для высококачественных и нормальных изделий MinChance=0.
QualityFactor — значения показателей из Unique, Set, Rare, Magic полей файла TreasureClassEx.txt для TC монстра, который дропает этот предмет.

5. ЛОКАЦИИ, МОНСТРЫ И УРОВНИ ПРЕДМЕТОВ

Как игра рассчитывает уровни монстров в процессе создания карты?
В нормальном уровне сложности всем нормальным монстрам установлены уровни, которые могут быть найдены в файле monstats.txt. В Nightmare и Hell все нормальные монстры имеют уровни, эквивалентные уровням локаций, где они размещены и проживают.
Уровни локаций отражены в файле Levels.txt.
Монстры-чемпионы получают бонус +2 к их уровням. Уникальные монстры и их миньоны получают бонус +3 к их уровням.
Есть несколько исключений из этого правила. Боссам, которые имеют значение boss=1 в файле monstats.txt, установлен фиксированный уровень, и они не могут апгрейдить свой уровень.
Вот их полный список:

Код:
Id NameStr Level Level(N) Level(H)
andariel Andariel 12 49 75
duriel Duriel 22 55 88
radament Radament16 49 83
mephisto Mephisto 26 59 87
diablo Diablo 40 62 94
summonerSummoner18 55 80
izual Izual 29 60 86
bloodravenBloodraven10 43 88
griswold Griswold 5 39 84
nihlathakbossNihlathak65 70 92
baalcrab Baal 60 75 99
putriddefiler1Putrid Defiler 35 61 80
putriddefiler2Wretched Defiler37 62 81
putriddefiler3Fetid Defiler 38 63 82
putriddefiler4Rancid Defiler 39 64 83
putriddefiler5Rank Defiler 40 65 84

------------------------------------------------------
Все Uber - боссы имеют уровень 110.

6. ВЫБОР КАЧЕСТВА ПРЕДМЕТА

Предметы, которые дропают монстры, имеют уровень, равный уровню монстра. Уровень качества эквивалентен уровню типа предмета. Процентный показатель Magic Find (MF) берется с параметров экипировки игрока. Показатели фактора возвратного уменьшения MF - 250 для уникальных, 500 для сетовых и 600 для раритетных предметов (более подробно в п.16). Все другие значения берутся из itemratio.txt, кроме показателя качества монстра. Последний является максимальным значением из ячеек Unique, Set, Rare, Magic файла TreasureClassEx.txt для всех TC, которые сканируются игрой в поиске определенного типа изделия.
В самом крайнем случае игрок имеет всего лишь 128/FinalChance шанс на удачу.

Рассмотрим пример.

Хелльный Баал дропает Unearthed Wand (MF=200%).
Проверка на уник:
1) Use line #5, "Uber".
2) ilvl=99 (от monstats.txt), qlvl=86 (от weapons.txt), BaseChance=400 (для уника от itemratio.txt), Divisor=1.
Chance = (BaseChance - ((ilvl-qlvl) / Divisor)) * 128=49536.
3) Factor=250 по уникальному качеству.
EffectiveMF=MF*Factor / (MF+Factor) =111.
4) Шанс = Chance* 100 / (100 + EffectiveMF) =23476
5) Chance< MinChance (false, because 23476>6400).
6) QualityFactor=983 для Хелл Баала (из TreasureClassEx.txt).
FinalChance=Chance-(Chance*QualityFactor/1024) =939.

Если игра сгенерирует случайное число в диапазоне от 0 до (FinalChance-1) области (rnd [FinalChance] function), которое будет менее 128, генерируется Unearthed Wand. Таким образом, шанс получения уникальной Unearthed Wand равен 128:939.
Если же процесс генерирования уника Unearthed Wand окончился неудачно, то рандомайзер продолжит попытку в производстве сетового предмета, раритетного и так далее.

Для некоторых видов предметов, а также если уровень монстра ниже чем уровень качества уника или сета из выборки, генерируется изделие с повышенной прочностью (магический предмет х2, раритетный предмет х3 durability).

Так, в случае нахождения Bramble Mitts игра проверяет могут ли они быть уникальными (действительно ли есть такой уник из данного типа предметов, не имеет значения в этот момент), и если проверка неудачна, тогда процесс повторяется относительно сета, рара и так далее.

7. ОТБОР СЕТОВЫХ И УНИКАЛЬНЫХ ПРЕДМЕТОВ

Предположим, что после предыдущих шагов игра выбрала определенный тип предмета и качество по пунктам уника или сета. После этого закрывается список всех возможных предметов с этим типом и качеством, которые имеют качественный уровень меньше или равный Ilvl изделия. Далее сценарий может разворачиваться по нескольким вариантам:

1) Если в этом списке нет соответствующего предмета, игра производит высококачественное изделие повышенной прочности.
2) Если имеется только один предмет этого типа, игра безусловно отбирает предмет в дроп.
3) Если несколько предметов отвечают требованиям списка, то рандомно выбирается один согласно редкости. Шанс для дропаемого предмета в этом случае - ItemRarity/TotalRarity
где TotalRarity - сумма rarity всех предметов в списке.

Рассмотрим три примера по каждому варианту.

Пример №1. Сложность Hell. Пиндль в предсмертной записке обещает дропнуть Spiderweb Sash. Пояс проходит по списку уникальных предметов. Игра создает список всех уникальных Spiderweb Sash, у которых Qlvl меньше или равно Ilvl (Qlvl<=86). Результирующий список оказывается...пустым, поскольку из уникальных поясов вида Spiderweb Sash имеется только Arachnid Mesh с Qlvl="87", который Пиндль, будучи монстром 86 уровня дропнуть никак не сможет. Точно так же игра не сможет произвести рарный Spiderweb Sash с 3х прочностью. Этот пример еще раз показывает жадность, коварство и безнравственность Пиндля.

Пример №2. Адский Пиндль решает повысить свою репутацию, дропнув Sacred Armor.
Данный тип присутствует в списке уников. Игра создает список всех уникальных Sacred Armor, которые имеют Qlvl<=86. В результирующем списке будет находиться один предмет прошедший все ограничения. Это Templar's Might. Другая бронька из класса уников Sacred Armor под названием Tyrael's Might не дропнется по причине превышения Qlvl (87).

Пример №3. Хелл Пиндль принимает твердое решение дропнуть рулезное уникальное кольцо. Игра создает список всех уникальных колец, которые имеют Qlvl<=86. В результирующем списке будут находиться 9 колечек, отвечающих Qlvl ="86". Выборка производится суммированием rarity всех изделий из списка: 15+15+1+1+10+10+3+1+3=59. Таким образом,получить кольцо Nature's Peace имеем шанс 3/59, а SoJ всего 1/59. А такие малопривлекательные кольца, как Nagel, Manald, Raven или Dwarf кольца имеют общий шанс на выпадение 50/59.

8. ГЕНЕРАЦИЯ ПРЕДМЕТОВ У ПРОДАВЦОВ

Почти вся торговая информация хранится в файлах weapons.txt и armor.txt .

Все продающиеся предметы в магазинах имеют ilvl=clvl+5. В сложности Normal по ilvl установлены ограничения: 12 для акта 1, 20 для акта 2, 28 для акта 3, 36 для акта 4, и 45 для акта 5. В Nm и H уровни предметов не капятся.

После того, как игра вычислила ilvl, выбирается тип предмета и запускается алгоритм придания качества. Все предметы с ilvl> =25 будут иметь магические качества.

На сложности Normal:
1) Создание списка всех нормальных типов предметов, которые имеют положительное значение в поле *Max или в *MagicMax соответствующего продавца в файлах weаpons.txt, armor.txt и misc.txt (например CharsiMax, GheedMax, CharsiMagicMax), кроме предметов, которые имеют qlvl выше чем ilvl.
2) Исключение всех магических предметов, которые имеют ilvl<*MagicLvl (напр. CharsiMagicLvl).

На сложности Nightmare:
1) Создание списка всех нормальных типов предметов, которые имеют положительное значение в поле *Max или в *MagicMax соответствующего продавца и NightmareUpgrade="xxx", кроме предметов, которые имеют qlvl выше чем ilvl.
2) Для всех предметов, которые имеют положительное значение в поле *Max или в *MagicMax и NightmareUpgrade = "xxx", и тех, которые имеют шанс апгрейдиться по формуле (ilvl*64+4000)/100000 в процентах до exceptional и добавляются к списку.
3) Для всех нормальных предметов, которые имеют положительное значение в поле *Max или в *MagicMax соответствующего продавца, добавляются к предметам списка, коды которых находятся в поле NightmareUpgrade, кроме NightmareUpgrade = "xxx".
4) Исключение все магических предметов, которые имеют ilvl<*MagicLvl (например CharsiMagicLvl).

На сложности Hell:
1) Создание списка всех нормальных типов предметов, которые имеют положительное значение в поле *Max или в *MagicMax соответствующего продавца и HellUpgrade = "xxx", кроме предметов, которые имеют qlvl выше чем ilvl.
2) Для всех предметов, которые имеют положительное значение в поле *Max или в *MagicMax которые имеют шанс апгрейдиться по формуле (ilvl*128+5000)/100000, в процентах до exceptional и добавляются к списку.
3) Для всех предметов, которые имеют положительное значение в поле *Max или в *MagicMax и HellUpgrade = "xxx",которые имеют шанс апгрейдиться по формуле (ilvl*16+1000)/100000, в процентах до elite и добавляются к списку.
4) Для всех нормальных предметов, которые имеют положительное значение в поле *Max или в *MagicMax соответствующего продавца, добавляются к списку предметов, коды которых находятся в поле HellUpgrade, кроме HellUpgrade = "xxx".
5) Исключение всех магических предметов, которые имеют ilvl<*MagicLvl (например CharsiMagicLvl).

Игра не будет генерировать exceptional или elite предметы, если clvl<25.

Примечание 1. В уровнях сложности nightmare и hell ты не увидишь предметы, которые имеют коды типов предметов в полях NightmareUpgrade и HellUpgrade, например Large Axe, Club, Wand.
Примечание 2. После clvl> =20 все предметы спаунятся с магическими качествами. Однако большинство продавцов имеет MagicLvl=255 для многих предметов. Так что такие предметы спауниться не будут.

9. АЗАРТНАЯ ИГРА (ГЕМБЛИНГ)

Типы изделий, которые доступными для азартной игры, напрямую определяются clvl. Список доступных предметов можно просмотреть на
http://www.battle.net/diablo2exp/basics/gambling.shtml

Уровни предметов определяются уравнением:
ilvl = clvl + rnd [10] - 5
(то есть от clvl-5 до clvl+4)

Шансы гемблинга:
Уникальный предмет: 1/2000
Сетовый предмет: 1/1000
Раритетный предмет: 1/10
Магический предмет: 1797/2000

Уравнения, используемые для определения, действительно ли изделие станет исключительным или элитным:
exceptional = 1 + (ilvl - excep qlvl) * 90 / 100
elite = 1 + (ilvl - elite qlvl) * 33 / 100

Magic Find никоим образом не влияет на азартную игру.

Аффиксы генерируются обычным порядком.

10. РУНЫ И ЧАРМЫ

Руны, чармы и драгоценные камни не являются специальными предметами, — они генерируются как все остальные изделия. Вся информация о них хранится в файле TreasureClassEx.txt.

Суть в том, что они являются немного "особенными" - тот факт, что все такие предметы обычно объединяются в один ТС, например Hell Baal дропает все свои кольца, амулеты, руны, чармы и драгоценные камни из ТС "Act 5 (H) Good".

Рассмотрим несколько примеров генерации рун, чармов и камней-минералов.

Пример 1. Хельный Меф.

Посмотрим как Меф относится к делу дропа драгоценностей, рун, минералов и почему собственно он дропает их весьма редко.
Как можно увидеть в TreasureClassEx.txt, Мефисто делает 7 выборок из ТС "Mephisto (H)". Каждая выборка имеет шанс 3/80 (~3.75 %) дропа из ТС "Act 4 (H) Good", который содержит все руны, чармы и драгоценные камни, которые он может дать.
TC "Act 4 (H) Good" имеет 1 выборку от следующих TC:

Шанс дропа 60/130 из ТС "Jewelry C",
4/130 - из ТС "Chipped Gem",
10/130 - "Flawed Gem",
14/130 - "Normal Gem",
28/130 - "Flawless Gem",
14/130 - "Runes 16".

TC "Runes 16" имеет шанс дропа 2/47274 r32 (Cham Rune), 3/47274 шанс дропа r31 (Jah Rune) и 47269/47274 шанс дропа из ТС "Runes 15" (другие руны).

Суммируем шансы:

Шанс, что Меф дропнет по крайней мере одну руну Cham в p1 игре,
1-(1-((3/80) * (14/130) * (2/47274))) ^7 = ~0.0001196 %
(фактически это вычисление немного упрощено и неполно, потому что Меф может иметь 6 выборок, последняя седьмая будет пропущена, если он сгенерирует 6 предметов из 6 выборок.)

Пример 2. Hell Cow

Нормальная Hell Cow имеет Mlvl=81 на сложности Hell и генерирует дроп из TC "Cow (H)".
TC "Cow (H)" содержит 1 выборку из ТС "Act 5 (H) Good" с шансом 3/160 в режиме players1 (~1.88 %).
TC "Act 5 (H) Good" имеет 1 выборку из следующих TC со следующими возможностями:

60/130 - "Jewelry C",
4/130 - "Chipped Gem",
10/130 - "Flawed Gem",
14/130 - "Normal Gem",
28/130 - "Flawless Gem",
14/130 - "Runes 17".

Соответственно, Hell Cow имеет приблизительно 0.87 % (это - (3/160) * (60/130)), шанс дропнуть Jewelry (кольцо, амулет, драгоценный камень или чарм), 0.4 %, чтобы дропнуть flawless gem и 0.2 % для руны.

Пример 3. Specter in Hell Worldstone Keep Level 3
Монстр типа Specter имеет больше шансов дропа драгоценностей, драгоценные камни и рун, чем любой другой монстр.
Specter в этой локации имеет Mlvl=85 и дропает из ТС "Act 1 (H) Wraith B", который апгрейдится до ТС "Act 5 (H) Wraith C".
TC "Act 5 (H) Wraith C" имеет 1 выборку из ТС "Act 5 (H) Good" с шансом 4/104 (~3.85 %).
Содержание этого TC приведено в предыдущем примере.

Пример 4. Death Lord in Hell Worldstone Keep Level 3.

Death Lord не силен в дропе рун. Этот пример приводится для сравнения его дропа с Cow и Wraith.
Death Lord (bloodlord5), имеет Mlvl=85 и дропает из ТС "Act 5 (H) H2H C". Выборка производится из того же самого TC как в предыдущих примерах, "Act 5 (H) Good", но только с шансом 2/160 (~1.25 %). Результат намного ниже.

11. КВЕСТОВЫЙ ДРОП И БАГ ANDARIEL

Если окинуть файл monstats.txt пристальным взглядом, можно заметить, что для каждого монстра есть четыре колонки TC для каждого уровня сложности игры. Для Hell - это TreasureClass1 (H), TreasureClass2 (H), TreasureClass3 (H) и TreasureClass4 (H). Это обусловлено тем, что дроп нормальных монстров, чемпионов, уникальных и Актовых Боссов генерируется из различных TC. Например Dark Stalkers в локации The Pit level 1 на сложности Hell имеют базовый ТС "Act 1 (H) H2H C", когда они нормальны, "Act 1 (H) Champ C" - когда они чемпионы и "Act 1 (H) Unique C", когда они уникальны (не забывай, что TC апгрейдится согласно их Mlvl).

Колонка TreasureClass4(*) заполнена только для Актовых Боссов. Когда Вы убиваете их, заканчивая квест, это означает, что в самый первый раз на этом уровне сложности, они генерируют дроп из TreasureClass4(*). После выполнения и закрытия квеста, дроп Актовых Боссов производится из TreasureClass3(*), который обычно имеет немного худшее наполнение хорошими предметами.

В патче 1.10 есть интересная ошибка. После того, как ты отформатируешь Andariel и переговоришь с любым NPC (как это обычно делается), она продолжает генерировать дроп из ее квестового ТС после каждой ликвидации. Хотя в Баттлнете баг пофиксен, тем не менее в сингле он остался.
Скрины иллюстрируют два последовательных рана на Анди по этой схеме.





12. COUNTESS

Нет никакой особой необходимости объяснять ее дроп в отдельной главе, он не является особенным. Однако игроки обычно акцентируют внимание на нем, потому что Графиня - превосходный источник рун среднего уровня.

Рассмотрим ее дроп более детально. Она имеет свой собственный TC, "Countess" в Normal, "Countess (N)" в сложности Nightmare и "Countess (H)" на Hell.

Остановимся на самом интересном TC, "Countess (H)", другие аналогичны.
"Countess (H)" ВСЕГДА выдает один дроп из ТС "Countess Item (H)" и второй из ТС "Countess Rune (H)".
TC "Countess Item (H)" может иметь 5 выборок из ТС "Act 2 (H) Good" с шансом 3/67 на каждого игрока как в режиме /players1.
TC "Act 2 (H) Good" может иметь одну выборку из ТС "Runes 14" с шансом 14/130.
TC "Countess Rune (H)" может иметь 3 выборки из ТС "Runes 12" с шансом 15/20 на каждого игрока как в режиме /players1.
ТС "Runes 14" содержит все руны до LO включительно.
ТС "Runes 12" содержат все руны до IST включительно.

Так, Графиня на хелле имеет шанс 1-(1-(3/67) * (14/130)) ^5 = 2.39 % дропнуть по крайней мере одну руну из диапазона El-Lo , и (1-(5/20) ^3) = 98 %, чтобы дропнуть по крайней мере одну руну из диапазона El-Ist. Именно поэтому раны на Countess настолько популярны.

13.IMBUING

Imbuing - награда, которую дает Charsi за выполнение квеста в 1 акте. Требуется предмет нормального качества (при этом программа не обращает внимания, если предмет Low Quality или Superior), который путем "наполнения" трансформируется в раритетный предмет.
Imbuing квест не должен исполняться перонажем ниже 8 clvl.
Уровень предмета, получающегося в ходе "наполнения" рассчитывается по формуле:
clvl + 4 = ilvl
Принимая во внимание, что уровень "наполняемого" предмета на выходе зависит от уровня персонажа, имеет смысл придержать артефакт от Чарси до достижения clvl повыше в разумных пределах, и возможного нахождения наиболее подходящего предмета для "наполнения" его раритетными свойствами, тем более что разрешенные аффиксы также будут более качественными. Но: ряду предметов на практике все равно, кто именно принесет их Чарси. Дело в том, что ilvl предмета не может быть ниже qlvl. Кроме того, ряд предметов имеют специфическую характеристику magic_lvl, фактически – бонус некоторых классов предметов, повышающий возможный уровень аффиксов на данном предмете. Цитата с Arreat Summit:
All Wands, Staffs and Orbs have magic_lvl=1. Circlets have magic_lvl=3, Coronets have magic_lvl=8, Tiaras have magic_lvl=13, Diadems have magic_lvl=18.
Таким образом, если мы попытаемся получить награду у Чарси мулом 8 уровня, принеся ей Диадему (естественно, найденную другим персонажем), максимальный уровень аффиксов на ней будет qlvl+magic_lvl+4=85+18+4=107, который капится на 99, т.е. и на такой Диадеме будут доступны все возможные для данного класса предметов аффиксы.

14. КРАФТИНГ

В любом рецепте крафтинга всегда используются следующие компоненты:
- 1 Перфектный минерал
- 1 Джевел
- 1 Руна
- 1 Магический предмет (имеется в виду только "синий" предмет).
Важнейшим аспектом в крафтинге является уровень персонажа (clvl), поскольку он непосредственно влияет на уровень аффикса (alvl) получаемого изделия. А так как уровень героя и уровень предмета находятся в тесной связи, то они и определяют качество изделия на выходе. Шансы на получение аффиксов по уровням обрабатываемых предметов таков:
- ilvl 1-30 = 40% шанс на 1 аффикс и 20% на 2,3 или 4 аффикса
- ilvl 31-50 = 60% на 2 аффикса и 20% на 3 или 4
- ilvl 51-70 = 80% на 3 аффикса и 20% на 4 аффикса
- ilvl 71+ = 100% шанс получить все 4 аффикса.
Уровень предмета расчитывается по формуле
ilvl = int(.5 * clvl) + int(.5 * ilvl).
где int() - соответствующие округленные значения.
Аффиксы управляют необходимым уровнем крафтового предмета по формуле:
rlvl = rlvl(высшего аффикса)+ 10 + 3 x (количество других аффиксов).
Таким образом, уровень персонажа не только обусловливает уровень аффикса и их количество, но и влияет на reqlvl изделия.
Приданные свойства изделиям, номинально получаемые по группам:
Hit Power - персонаж при нанесении повреждения от монстра имеет 5% шанс кастануть Frost Nova 4 уровня, плюс атакующий получает некоторое физическое повреждение.
Blood - 1-4% жизни воруется с удара (расчет от базового параметра без учета бонусов с экипировки), плюс 10-20 к жизни.
Safety - снижение получаемых повреждений, плюс % к определенному резисту.
Caster - регенерация маны, плюс 10-20 к мане.

15. СКИЛЛЕРЫ

Чармы типа Grand часто используются в рецептах с 3 перфектными минералами с целью получения + 1 к ветке умений персонажа какого-либо класса в префикс. Так как навешивание этой приставки срабатывает на чарме от ilvl = 50 и более, то перед варкой в Кубе Хорадрика будет нелишним удостовериться, что Grand charm имеет именно 50 или больший уровень.
Шанс получить +skills равен 1/28.

Варка Small charm с целью изменения аффиксов оптимальна в зависимости от того, какой именно чарм вы хотите получить. Если с префиксом Fine (+10-20 To Attack Rating, +1-3 To Maximum Damage), то с ilvl = 28. Если вы стремитесь получить госу-чармик 20 life 17 mana, вам понадобится исходник с ilvl=48. Еще один широко известный Pestilent Small Charm of Anthrax с гигантским уроном ядом требует аж ilvl=88.

16. ГЕНЕРАЦИЯ РУН В HELL FORGE

Hellforge - второй квест в Акте IV. На уровне сложности Normal в результате выполнения квеста происходит дроп рун диапазона El-Amn, на сложности Nightmare - Sol-Um, на сложности Hell - Hel-Gul. Шанс дропа для каждой руны = 1/11.

17. MAGIC FINDING

Magic Finding (MF) заслуживает специальной главы, потому что все, что ты можешь сделать, чтобы увеличить возможность найти приличные вещи от определенного монстра в игре, заключается только в повышении %MF.

Что такое MF?
Это свойство "+ Х% Better Chance of Getting Magic Item", которое может быть найдено на многих предметах в игре.

Что делает MF?
Он увеличивает твой шанс нахождения магических, раритетных, сетовых и уникальных предметов. 100% MF не дает гарантии, что все предметы, которые ты найдешь, будут магическими. Это означает, что шанс найденного премета оказаться магическим будет удвоен. MF имеет свойство так называемого "возвратного уменьшения".

Что такое возвратное уменьшение?
Расчет эффективности MF производится по формуле:
Effective MF = (MF*Factor) / (MF+Factor),
где Factor=250 для уникальных предметов, 500 для сетовых и 600 для раритетных.
То есть, с каждым шагом увеличения MF, темп прироста значения Effective MF уменьшается.
Например, если повышение MF от 100 до 200% дает увеличение Effective MF на 40%, то MF с 900 до 1000% - добавляет к Effective MF всего лишь 5%.

Есть ли потолок по MF?
Да, но неявный. Когда ты увеличиваешь значение MF, шанс найти уникальные, сетовые, раритетные или магические предметы возрастает. Однако ограничение скрывается в другом. Например, Актовый Босс может дропнуть уник с максимальной вероятностью всего в 50 % (вычисляется из itemratio.txt по формуле:
128 / (6400-(6400*983/1024))
Фактически ты никогда не достигнешь этого предела.
Исходя из результатов исследований, оптимальным MF следует считать 350%.

Как MF работает с рунами?
Никак. MF начинает работать с того момента, когда тип предмета уже отобран. Так с повышением %MF ты не будешь получать ни больше рун, ни больше оружия, брони, и т.д.

Помогает ли MF при гемблинге?
Нет.

Работает ли MF с наемниками?
Да. Когда ты убиваешь монстра, считается только твой %MF. Когда наемник наносит финальный удар, то %MF суммируется (%MF наемника + %MF игрока).

Влияет ли количество игроков в игре на повышение шанса выпадения уникальных предметов?
Нет, увеличивается лишь количество предметов в дропе. Только %MF увеличивает шанс нахождения уникального предмета.

Работает ли MF на сундуках?
Да, MF действует на дроп от сундуков, валунов, трупов, урн, бочек и т.д. Хотя и специальные (искрящиеся, а также сундуки, находящиеся в фиксированных местах, например, сундук за Мефисто) сундуки имеют фиксированные шансы по качеству дропа.

Насколько точно работает MF?
Повышение возможности предмета быть unique/set/rare/magic оценивается по формуле EffectiveMF/100. Например, Баал, при дропе Unearthed Wand имеет шанс 128/1984 сгенерировать предмет в уникальном варианте если ты имеешь MF = 0%, и шанс 128/992 , когда у тебя MF = 167%.

18. ИЗМЕНЕНИЯ ПО ДРОПУ В ПАТЧЕ 1.11

Насколько известно, патч 1.11 относительно дропа внес немного изменений. Более всего обновления затронули новых Убер Боссов.
Также в игре:
— Fangskin больше не дропает предметы на сложности Hell
— Countess, Summoner и Nihlathak дропают специальные ключи, при этом их остальной дроп немного снижен.

and-simo©2007

CREDITS:
PELion - дополнения по разделам
True Mage - правка и дополнения по разделам

При подготовке статьи использовались ресурсы:
http://www.diabloii.net/
http://www.phrozenkeep.it-point.com/
http://www.lurkerlounge.com/
__________________

Сообщение отредактировал and-simo - 03.05.2007 - 13:27


--------------------
Армия баранов под предводительством льва сильнее армии львов под предводительством барана.
©Военоначальник Харбий, афинянин.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
DarkBenLaden
сообщение 21.04.2007 - 16:27
Сообщение #2


Champion
****

Сообщений: 2312
Регистрация: 30.06.2006



2and-simo бальшущий респект thumbsup.gif будет куда посылать нубов. Потрудился на славу respect.gif


--------------------
One of Keepers of Inspiration

icq 2II94O48I
darkbenladenсабачкаmail.ru
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
KMR
сообщение 21.04.2007 - 16:27
Сообщение #3


Государев муж
*****

Сообщений: 4139
Регистрация: 30.08.2006



2Pelion закрепи плз темку
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
FrozenDevil
сообщение 21.04.2007 - 18:34
Сообщение #4


Conqueror
*****

Сообщений: 3298
Регистрация: 01.05.2006



Автору огромный респект respect.gif
ЗЫ а есть какие-нить изменения по сравнению с версией на бру?
Цитата(Begemоt @ 21.04.2007 - 17:27) *
2Pelion закрепи плз темку
+1
а еще лучше в статьи ее


--------------------
One of BRF
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
and-simo
сообщение 21.04.2007 - 18:59
Сообщение #5


mods explorer
*****

Сообщений: 3040
Регистрация: 14.11.2005



2FrozenDevil:
как на бру редактировал последний раз, так и есть.


--------------------
Армия баранов под предводительством льва сильнее армии львов под предводительством барана.
©Военоначальник Харбий, афинянин.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
PELion
сообщение 21.04.2007 - 19:14
Сообщение #6


Cow Tirael
*****

Сообщений: 4861
Регистрация: 13.03.2005



Так, предупреждаю сразу: флуд буду не просто тереть, варны и баны обеспечены (не поленюсь подключить Фиша и Дому). После расставления всех точек над "ё" тему закрою и перемещу в Статьи. Лично от себя: данный труд после статей Эрадана по некру и дру (после - в основном в смысле времени smile.gif ) считаю наиболее продвинутыми на ДЗ по Д2:ЛоД.
2and-simo: Я собираюсь "половить баги" (опечатки, орфография и т.д.) в статье. Отловленные исправлю. Надеюсь, не возражаешь? smile.gif


--------------------
Три самурая
Сутки сидят в распасах.
Фудзи растет.

One of 100%DTGtB
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
and-simo
сообщение 21.04.2007 - 19:39
Сообщение #7


mods explorer
*****

Сообщений: 3040
Регистрация: 14.11.2005



2PELion:
NP


--------------------
Армия баранов под предводительством льва сильнее армии львов под предводительством барана.
©Военоначальник Харбий, афинянин.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
Black_Corsair
сообщение 11.06.2007 - 11:11
Сообщение #8


Diablo III fan
******

Сообщений: 6348
Регистрация: 16.06.2006



Pestilent Small Charm of Anthrax - это что же, на нем 150 урона ядом? или сколько? я смотрел в разделе суффиксы.
Однако у меня есть 5 смолок с названием Toxic charm (дают +100 урон ядом), но Toxic в суффиксах нет, он есть в префиксах, но для оружия.
150 урона ядом никогда не встречал на смолках sad.gif

непонятно.


--------------------
[img]http://bit.ly/yTWHrU[/img]
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
and-simo
сообщение 11.06.2007 - 13:21
Сообщение #9


mods explorer
*****

Сообщений: 3040
Регистрация: 14.11.2005



2Black_Corsair:
Префикс pestilent получается при варке чарма от 94 lvl.
Pestilent Small Charm of Anthrax - 451 poison damage over 12 seconds. Шанс получения = 1/33397.


--------------------
Армия баранов под предводительством льва сильнее армии львов под предводительством барана.
©Военоначальник Харбий, афинянин.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
BlackSorrow
сообщение 11.06.2007 - 14:56
Сообщение #10


( ° ͜ʖ͡°)
*****

Сообщений: 4516
Регистрация: 26.03.2005



Цитата
Nihlathak дропают специальные ключи, при этом их остальной дроп немного снижен.

А остался ли шанс дробнуть Виндфорс?

2and-simo: Спасибо, буду изучать


--------------------
КОМАНD@
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
4p)Wik
сообщение 30.06.2007 - 23:35
Сообщение #11


Новичок
*

Сообщений: 7
Регистрация: 27.07.2005



Цитата
5. ЛОКАЦИИ, МОНСТРЫ И УРОВНИ ПРЕДМЕТОВ

Как игра рассчитывает уровни монстров в процессе создания карты?
В нормальном уровне сложности всем нормальным монстрам установлены уровни, которые могут быть найдены в файле monstats.txt. В Nightmare и Hell все нормальные монстры имеют уровни, эквивалентные уровням локаций, где они размещены и проживают.
Уровни локаций отражены в файле Levels.txt.
Монстры-чемпионы получают бонус +2 к их уровням. Уникальные монстры и их миньоны получают бонус +3 к их уровням.
Есть несколько исключений из этого правила. Боссам, которые имеют значение boss=1 в файле monstats.txt, установлен фиксированный уровень, и они не могут апгрейдить свой уровень.

Всегда mlvl= Alvl если Alvl>=mlvl из monstats.txt, и равен mlvl из monstats.txt если Alvl<mlvl из monstats.txt.
При изменении mlvl локацией относительно mlvl из monstats.txt, пересчитывается TC монстра.
Данная поправка не имеет смысла для оригинальных monstats.txt&Levels.txt, однако для модов важна rolleyes.gif

И кстати сам механизм генерации предметов нераскрыт, расписаны только шансы относительно значений Probxx.

Сообщение отредактировал 4p)Wik - 30.06.2007 - 23:40
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
Black_Corsair
сообщение 01.07.2007 - 00:25
Сообщение #12


Diablo III fan
******

Сообщений: 6348
Регистрация: 16.06.2006



Цитата(and-simo @ 21.04.2007 - 17:16) *
Чармы типа Grand часто используются в рецептах с 3 перфектными минералам

Кстати оригинальный вариант перевода пгемсов.
Если будут нубы, сразу спросят, ыыыы, че за минералы такие? smartass.gif


--------------------
[img]http://bit.ly/yTWHrU[/img]
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
alt0172
сообщение 01.07.2007 - 19:05
Сообщение #13


Guardian
*******

Сообщений: 11230
Регистрация: 01.03.2004



что имеется в виду под
Цитата
сам механизм генерации предметов
?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
tubaretkin
сообщение 01.07.2007 - 20:22
Сообщение #14


вСЕ РУССКИЕ - УБЛЮДКИ
******

Сообщений: 8978
Регистрация: 23.04.2007



Почерпнул немного нового по поводу варки чармочек. Автор спасибо.


--------------------
твоя мама атакована
Я считаю, что в текущей ситуации, единственный выход - убивать украинских детей и насиловать их матерей. (с) Gaudin
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
4p)Wik
сообщение 02.07.2007 - 02:34
Сообщение #15


Новичок
*

Сообщений: 7
Регистрация: 27.07.2005



to Alt+0172:
Не написано как именно рандомайзер выбирает ту или иную шмотку.
Написано в какой последовательности генерятся характерестики шмотки, но вот как именно они генерятся так и не сказано.
Желательно видеть алгоритмы.
Например для вычисления максимально допустимого аффикса на не сетовой/уникальной шмотки используется следующий алгоритм:
If (lvl>0)
{
inputilvl = lvl
}
else
{
if (plvl+ilvl >0)
{
inputilvl=int(plvl*clvl/100)+int(ilvl*inputilvl/100)
}
}

if (inputilvl>99)
{
inputilvl = 99
}

if (qlvl>inputilvl)
{
inputilvl = qlvl
}


if (maglvl>0)
{
alvl = maglvl+inputilvl
}
else
{
if (inputilvl<99-int(qlvl/2))
{
alvl = inputilvl - int(qlvl/2)
}
else
{
alvl = inputilvl*2 - 99
}
}

if (alvl>99)
{
alvl = 99
}
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
and-simo
сообщение 02.07.2007 - 03:26
Сообщение #16


mods explorer
*****

Сообщений: 3040
Регистрация: 14.11.2005



24p)Wik:
Веселая бы получилась статья, если в нее залить все алгоритмы вычислений на все виды предметов в игре. А уж по познавательности ей бы цены не было. Не говоря о читабельности laugh.gif


--------------------
Армия баранов под предводительством льва сильнее армии львов под предводительством барана.
©Военоначальник Харбий, афинянин.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
SuPeRRo!
сообщение 02.07.2007 - 03:28
Сообщение #17


это просто ебануца
******

Сообщений: 6727
Регистрация: 14.03.2005



Чуваг, просто А***ННО! респект и уважуха, мало того что текст огромный, так ещё и читать приятно. Супер. будем черпать инфу.


--------------------
Продай почку - купи мозг.

pochkapochka.ru
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
Bladef1st
сообщение 02.07.2007 - 03:51
Сообщение #18


С нами Путин и Христос!
Иконка группы

Сообщений: 115043
Регистрация: 13.07.2003
BattleTag: Bladef1st#2121



Да, зачотная статья, респект.
Такой вопрос - когда варишь скиллеры, имеет ли значение уровень персонажа, который варит? Или можно и мулом 1 лвл варить?


--------------------
PSN: Bladefist
-----------------
Нужно начать с себя, чтобы что-то изменить. Я вот у себя в подъезде ссать перестал. Хожу в соседний подъезд. Если каждый будет так поступать, то потихоньку мы сделаем Русь лучше! ©
-----------------
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
and-simo
сообщение 02.07.2007 - 09:13
Сообщение #19


mods explorer
*****

Сообщений: 3040
Регистрация: 14.11.2005



2Bladef1st:
Не имеет. Только Ilvl.


--------------------
Армия баранов под предводительством льва сильнее армии львов под предводительством барана.
©Военоначальник Харбий, афинянин.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
4p)Wik
сообщение 02.07.2007 - 14:29
Сообщение #20


Новичок
*

Сообщений: 7
Регистрация: 27.07.2005



Цитата("and-simo")
2 4p)Wik:
Веселая бы получилась статья, если в нее залить все алгоритмы вычислений на все виды предметов в игре. А уж по познавательности ей бы цены не было. Не говоря о читабельности

А алгоритм генерации базовой шмотки универсален. И без него нахрена людям знать содержимое TreasureClassEx.txt и т.д. ? Где и что падает давно расписано в мулерах и ресурсах типа d2data.net.
С каких локаций брать чармы на варку тоже расписано в соответствующих гайдах.

Фактически написано по каким формулам посчитаны шансы дропа. Теперь будем знать как атма считает шанс дропа smile.gif круто smile.gif бесполезно,но круто smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
alt0172
сообщение 02.07.2007 - 17:12
Сообщение #21


Guardian
*******

Сообщений: 11230
Регистрация: 01.03.2004



Цитата
Где и что падает давно расписано в мулерах и ресурсах типа d2data.net.
В общем-то, все из этой статьи уже давно расписано (напр. файлгайд по Itemratio с фрозенкипа) и даже больше, чем тут есть. НО в разных местах и по кусочку. Здесь все вместе.

Цитата
бесполезно,но круто
к описанию алгоритмов это относится в гораздо большей степени.

зы:
Цитата
как именно рандомайзер выбирает ту или иную шмотку
гмм. Ну есть в т.н. ptGame два DWORD'а, (20..23 и 24..27 байты от начала ptGame, нумерация с нуля. Какие значения там при старте игры -хз), которые при каждой генерации "случайных чисел" в игре
- берутся как аргумент,
- потом над ними проделываются определенные операции
- результат записывается обратно (т.е. старые значения заменяются)
- этот же результат делится к примеру на 100. Остаток от деления будет "рандомным числом" от нуля до 99 (включительно).

Ну а дальше игра держит в памяти список итемкодов, и выбирает "случайный" элемент из соотв. списка (соответсвие определяется по Treasureclassex и наверное itemtypes. точно не проверял).

Сообщение отредактировал Alt+0172 - 02.07.2007 - 17:18
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
4p)Wik
сообщение 02.07.2007 - 20:00
Сообщение #22


Новичок
*

Сообщений: 7
Регистрация: 27.07.2005



Вот смотри- ты почти полностью выложил один из основных алгоритмов д2,и уместил его в 7 строчек rolleyes.gif

Цитата
к описанию алгоритмов это относится в гораздо большей степени.

Если вы беретесь описывать механику генерации шмота, то писать надо полностью(ну конечно не доходя при этом до маразма.) Тема сама по себе интересна очень малому количеству людей относительно % играющих. Кто захочет- тот осилит, а остальные заюзают Атму или какойнит аналог.

Цитата
Ну а дальше игра держит в памяти список итемкодов, и выбирает "случайный" элемент из соотв. списка (соответсвие определяется по Treasureclassex и наверное itemtypes. точно не проверял).

Ну список итемкодов она получает после того как "пройдется" по TreasureClassEx.txt&&(Armor.txt||Weapons.txt||Misc.txt) рандомайзером Picks раз. itemtypes.txt нужен вроде только для получения Rarity.

Кстати алгоритм подсчета Affixlvl включите в статью- он важен для всего что связано с варкой шмоток, и особенно для крафтинга.

Сообщение отредактировал 4p)Wik - 02.07.2007 - 20:04
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
tubaretkin
сообщение 02.07.2007 - 20:50
Сообщение #23


вСЕ РУССКИЕ - УБЛЮДКИ
******

Сообщений: 8978
Регистрация: 23.04.2007



24p)Wik: ты че програмером у близзард работал?


--------------------
твоя мама атакована
Я считаю, что в текущей ситуации, единственный выход - убивать украинских детей и насиловать их матерей. (с) Gaudin
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
alt0172
сообщение 02.07.2007 - 22:44
Сообщение #24


Guardian
*******

Сообщений: 11230
Регистрация: 01.03.2004



24p)Wik:
Цитата
Кстати алгоритм подсчета Affixlvl включите в статью- он важен для всего что связано с варкой шмоток, и особенно для крафтинга.
+1 любопытные фичи на этой основе можно сделать (типа катара 2асса скиллс 3мастери). Правда основная масса "крафтов" приходится на частные случаи, когда можно эти формулы и не знать (грандчармы, амули и кольца - везде affixlvl == ilvl)

Цитата
Ну список итемкодов она получает после того как "пройдется" по TreasureClassEx.txt&&(Armor.txt||Weapons.txt||Misc.txt) рандомайзером Picks раз. itemtypes.txt нужен вроде только для получения Rarity.
Тогда уж не Armor.txt||Weapons.txt||Misc.txt а items.bin tongue.gif хотя тут может и не items.bin, а генерируемые при запуске таблицы (weap3..weap85 и с армором) смотрятся.

Цитата
Если вы беретесь описывать механику генерации шмота, то писать надо полностью(ну конечно не доходя при этом до маразма.) Тема сама по себе интересна очень малому количеству людей относительно % играющих. Кто захочет- тот осилит, а остальные заюзают Атму или какойнит аналог.
в итоге будет "бесполезно, но круто". Хотя польза может быть в удовлетворении любопытства

зы: respect.gif

зы2: "items.bin"- надеюсь правильно название вспомнил

Сообщение отредактировал Alt+0172 - 02.07.2007 - 22:47
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
4p)Wik
сообщение 02.07.2007 - 23:29
Сообщение #25


Новичок
*

Сообщений: 7
Регистрация: 27.07.2005



Цитата
Правда основная масса "крафтов" приходится на частные случаи, когда можно эти формулы и не знать (грандчармы, амули и кольца - везде affixlvl == ilvl)

Ну кроме кастерских амулей и колец с даблличем есть и перчи с нокбэком и т.д... которых не намного меньше "частных случаев".
А чармы крафтить нельзя tongue.gif

Цитата
Тогда уж не Armor.txt||Weapons.txt||Misc.txt а items.bin хотя тут может и не items.bin, а генерируемые при запуске таблицы (weap3..weap85 и с армором) смотрятся.

Если быть точнее,то armor.bin weapons.bin misc.bin... Текстовики парсятся в бинарики при запуске д2.
Без специальных директив к лоадеру- хранятся только в оперативке.

з.ы.ы Кстати TreasureClassEx.txt, это шаблон выборки из TC сгенерированного из Armor.txt Weapons.txt Misc.txt при запуске д2.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
True Mage
сообщение 03.07.2007 - 07:02
Сообщение #26


BFE Regis Inferni
Иконка группы

Сообщений: 14489
Регистрация: 08.09.2005
BattleTag: TrueMage#2627



Цитата(4p)Wik @ 03.07.2007 - 02:29) *
Цитата
Тогда уж не Armor.txt||Weapons.txt||Misc.txt а items.bin хотя тут может и не items.bin, а генерируемые при запуске таблицы (weap3..weap85 и с армором) смотрятся.

Если быть точнее,то armor.bin weapons.bin misc.bin...

А если уж быть еще точнее, то из хранящейся в оперативной памяти объединенной мастер-таблицы, созданной путем объединения этих файлов.
Цитата
з.ы.ы Кстати TreasureClassEx.txt, это шаблон выборки из TC сгенерированного из Armor.txt Weapons.txt Misc.txt при запуске д2.

Что бы эта фраза значила?

Ну и, разумеется, при генерации дропа из itemtypes берется значительно больше, чем просто rarity.


--------------------
"— Кажется, настало время добавить немного злобы, Док.
— В этом и есть мой секрет, Кэп. Я зол постоянно." (с)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
4p)Wik
сообщение 03.07.2007 - 13:32
Сообщение #27


Новичок
*

Сообщений: 7
Регистрация: 27.07.2005



Цитата
А если уж быть еще точнее, то из хранящейся в оперативной памяти объединенной мастер-таблицы, созданной путем объединения этих файлов.

Они обьединяются ? blink.gif правда, да ? кто бы мог подумать... елки палки...

Цитата
Ну и, разумеется, при генерации дропа из itemtypes берется значительно больше, чем просто rarity.

Нда ? например ? (тока не надо про сокеты,которые определяются при генерации аффиксов, и про коды,которые читаются 1 раз для группировки по TC...)

Цитата
Что бы эта фраза значила?

TreasureClassEx содержит в себе различные сочетания групп ТС, а то ЧТО содержится в отдельно взятой группе- его не "интересует" т.к. веши по ТС группируются при старте игры по ilvl и типу (armor,weap), за исключением банок гемов и прочей мелочи которая прописывается в TreasureClassEx по той причине что их невозможно сгуппировать в TC из за ilvl=0.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
True Mage
сообщение 03.07.2007 - 13:48
Сообщение #28


BFE Regis Inferni
Иконка группы

Сообщений: 14489
Регистрация: 08.09.2005
BattleTag: TrueMage#2627



Цитата(4p)Wik @ 03.07.2007 - 16:32) *
Они обьединяются ? blink.gif правда, да ? кто бы мог подумать... елки палки...

Да, они объединяются.
Цитата
Нда ? например ? (тока не надо про сокеты,которые определяются при генерации аффиксов, и про коды,которые читаются 1 раз для группировки по TC...)

Я имел в виду, например, флаг TreasureClass, определяющий принадлежность к autoTC. Хотя если ты имеешь в виду обращения к этому файлу "at runtime" именно в момент определения дропа с конкретного монстра, то тогда да, обращений вроде больше нет.

Кстати, если ты считаешь себя настолько подкованным в том, что касается работы внутренних механизмов игры на уровне кода, то мог бы и присоединиться. wink.gif


--------------------
"— Кажется, настало время добавить немного злобы, Док.
— В этом и есть мой секрет, Кэп. Я зол постоянно." (с)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
4p)Wik
сообщение 04.07.2007 - 10:44
Сообщение #29


Новичок
*

Сообщений: 7
Регистрация: 27.07.2005



Цитата
Да, они объединяются.



Цитата
Кстати, если ты считаешь себя настолько подкованным в том, что касается работы внутренних механизмов игры на уровне кода, то мог бы и присоединиться.

nn,thnx.
Хобби аналогичное с проффесией... не, мне думается эта слишком жестка получится... blink.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0
Night_Entertainm...
сообщение 10.07.2007 - 22:21
Сообщение #30


зам фин дир и не ипет
****

Сообщений: 1363
Регистрация: 02.02.2003
BattleTag: iampw#2204



Мда авторам гайдов явно делать нехрена biggrin.gif. Не пойму зачем велосипед изобретать?


--------------------
--------------------
This post is powered by P.W. [Night_Entertainment].
--------------------
--------------------
DZCS *PW
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщенияВставить ник в форму быстрого ответа
0

2 страниц V   1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Рейтинг@Mail.ru
Сейчас: 21.11.17 - 05:47