Симулятор заточки и корейского рандома

Заточка в старых хрониках времён генератора «случайных чисел» 2003 года: генератор выдаёт число, и если оно меньше шанса, заточка успешна — нет, держи кристаллы. Колесо показывает, куда легло число, а график рядом — саму последовательность, из которой оно взято.

Что точим
Генератор

Все шаги

ШагШанс успехаШанс провала Дойти с +0 Что при провале

Как это работало

Формула из Visual Studio

Под заточкой лежала обычная функция rand() из библиотеки Microsoft (2003–2005), с которой игру и собирали:

state = state × 214013 + 2531011
roll  = (state >> 16) & 32767   → 0…32767
шанс  = roll ÷ 32767 × 100      → 0…100 %

Соль — количество тактов с момента старта машины. Та же соль даёт ту же цепочку от первого числа до последнего: «корейский рандом» написали не корейцы, а разработчики Windows.

Оружие мага дороже вдвое

Физическое и магическое оружие точатся по разным таблицам: с +3 до +14 у физического 70 % за попытку, у магического — 40 %. Броня устроена иначе: ровной полки нет вовсе, каждый следующий плюс тяжелее предыдущего — 66,67 %, 33,33 %, 25 %, 20 %, 16,67 % и дальше вниз до 7,69 % на +14.

А на +15 у всех троих происходит одно и то же: шанс делится пополам. У физического оружия 70 % превращаются в 35, у магического 40 в 20, у брони 7,69 % — в 3,57 и дальше до 2,78 % на +19. Выше +20 не поднимает уже ничто: там ноль. У цельной брони лестница сдвинута на ступень (до +4 безопасно), но её половинки после +15 свои, поэтому это не просто сдвинутый ряд брони.

Миф о плоских 66 %

«Броня точится с шансом 66 % на каждый плюс» — самое живучее утверждение про заточку, и родилось оно не в игре, а в эмуляторах. В исходниках aCis (Interlude) шанс шага считается как 0,66текущий − 2 при настройке EnchantChanceArmor = 0.66: 66 % на +3, 43,6 на +4, 28,7 на +5. Другие сборки идут ещё дальше и берут одно плоское число на все ступени.

Но 0,66n — это не шанс шага, это накопительный шанс дойти до ступени, если каждый шаг стоит 66 %. То есть эмулятор подставил в роль пошагового шанса кривую «дойти с +0». Забавно, что в комментарии над этим самым кодом описана правильная розничная лестница — «2/3 на +4, 1/3 на +5, 1/4 на +6…», ровно та, что в таблице выше.

Отличить эти две модели легко по колонке «Дойти с +0»: у настоящей лестницы она падает быстрее, чем степень двух третей, потому что тяжелеет сам шаг, а не только их количество.

Один генератор на весь мир

Числа не бросаются заново под каждое действие: сервер идёт по одной последовательности, и каждое событие — удар, расчёт крита, спойл, заточка — забирает из неё следующее значение. Поэтому число, которое «ваше», мог вытянуть кто угодно: пока вы наводите мышь на свиток, чужие удары двигают очередь. На графике это фон, который бежит сам по себе.

Откуда берутся волны

К предыдущему значению каждый раз прибавляется одно и то же — примерно два с половиной миллиона, — и обрезается хвост. Такой генератор дешёв, но неравномерен: числа идут волнами, и после нескольких высоких значений подряд следующее чаще оказывается низким. Отсюда обе известные тактики: набить подряд провалов (высокие числа) и точить на спаде — или следить за критами, которым, наоборот, нужны низкие числа, и точить, пока идёт полоса.

Ни одна не даёт гарантии: очередь общая, и «дно волны» достаётся тому, кто нажал первым.

Почему сегодня так не делают

Современные игры берут генераторы, у которых предсказуемых волн нет вовсе: PCG, Xoshiro, а там, где на кону деньги, — крипто-стойкие (ChaCha20, AES-CTR) с солью от энтропии системы. Соседние броски независимы, и «ловить волну» не в чем. Переключите генератор наверху, чтобы увидеть разницу: график перестаёт быть линией и становится шумом, а тактики «набить провалов» и «поймать спад» перестают работать вовсе.

Гарантий это не добавляет: заточка и там, и там остаётся одним броском, а страховка в Lineage 2 всегда была другой — безопасные ступени и благословенные свитки, которые не ломают вещь.

Шансы взяты не на глаз и не из эмулятора: это script/itemenchant.txt из экстендера MyExt64, которым патчится розничный l2server (Gracia Final) — там четыре группы: физическое оружие, магическое, обычная броня и цельная. Бижутерия идёт по группе брони — ожерелья, серьги и кольца точатся по её лестнице, поэтому и кнопка на них одна. Событийные свитки — отдельная группа с плоскими 80 % аж до +23, здесь их нет. В датапаке l2j (High Five) та же лестница записана без деления пополам после +15 — то есть эмулятор на верхних плюсах вдвое щедрее розницы; мы показываем розницу.