Опыт
Опыт за моба берётся напрямую из mob_db и умножается на серверный рейт (у нас 1×). Число убийств до следующего уровня = опыт-до-уровня (из exp-таблицы класса) делить на опыт за моба. Никакого штрафа за разницу уровней в этом форке нет.
Два опыта отдельно
В Ragnarok Online ты растёшь, убивая монстров и собирая с них опыт (EXP). Но опытов на самом деле ДВА, и считаются они отдельно: Base EXP качает твой базовый уровень (Base Level, максимум 99) — это HP, SP и базовые статы, — а Job EXP качает уровень профессии (Job Level, максимум 50) — это скилл-поинты и немного бонусных статов от класса. Каждый убитый моб даёт тебе обе порции опыта одновременно, но в две разные «копилки». Поэтому персонаж может быть, например, Base 70 / Job 40 — это нормально, два счётчика живут своей жизнью.
Рейт 1×
uaRO — это сервер с рейтами 1×/1×/1×. Рейт — это множитель опыта, формула простая: EXP_за_моба = base_exp_моба × рейт / 100. На рейте 1× (то есть 100/100 = 1) ты получаешь РОВНО столько опыта, сколько записано в базе движка для этого моба. На условном сервере 5× тот же моб дал бы впятеро больше. У нас множителя нет — всё честно, как в классике.
Сколько убийств
Чтобы понять, сколько мобов надо убить до следующего уровня, смотри exp-таблицу своего класса: там для каждого уровня записано, сколько опыта нужно накопить для перехода на следующий. Это число РАСТЁТ с каждым уровнем — на 2-й уровень нужно совсем чуть-чуть, а на 51-й уже сотни тысяч. Формула количества убийств: kills = ceil(опыт_до_следующего_уровня / опыт_за_моба). Слово ceil означает «округлить вверх»: если вышло 4,2 моба — это 5 мобов, ведь неполного убийства не бывает.
Без штрафа за уровни
Очень важная особенность именно этого pre-renewal форка: тут НЕТ штрафа за разницу уровней. На многих серверах персонаж 99-го уровня за слабого моба получает копейки, потому что «моб ниже тебя». У НАС этого нет: и персонаж 1-го уровня, и персонаж 99-го за того же Poring получат одинаковый опыт — те же base_exp и job_exp из базы. Это значит, что ты можешь спокойно фармить «низких» удобных мобов и не бояться, что опыт срежут. Выбор цели — это вопрос твоей выживаемости и скорости убийства, а не штрафов.
Излишек сгорает
И ещё одно правило, которое спасает от путаницы: multi_level_up выключен. Одно убийство может поднять тебя максимум на +1 уровень, даже если моб дал опыта «на два уровня вперёд». Излишек просто обрезается. Поэтому не удивляйся, если после жирного кила шкала опыта показывает не 130%, а ровно полный уровень и чуть сверху — остальное сгорело. Вывод для новичка: качай ОБА опыта (Base даёт выживаемость, Job даёт скиллы — без скиллов ты беспомощен), не гонись за «жирными» мобами ради излишка, и помни, что удобный фарм низких мобов тут не наказывается.
gain = mob.base_exp × baseRate / 100 (1× → без змін)
- baseRate
- серверный множитель Base EXP (у нас 1× = 100)
kills = ceil( nextLevelExp / gain )
- nextLevelExp
- опыт, нужный для следующего уровня (exp-таблица класса)
| Дешёвый моб | Poring base_exp = 2; 1→2 = 9 exp | 5× |
| Средний моб | Wolf base_exp = 329; 50→51 = 115,254 exp | 351× |
У Poring base_exp 2. На рейте 1× это и остаётся 2 Base EXP за убийство. До 2-го уровня в exp-таблице надо накопить 9 опыта. Считаем убийства: ceil(9 / 2) = ceil(4,5) = 5. То есть ровно 5 убитых Poring — и ты на 2-м уровне. Пока числа маленькие, уровни летят быстро.
Grinding Wolf даёт base_exp 329 (на 1× = 329 Base EXP). Переход с 50-го на 51-й уровень стоит аж 115254 опыта. Убийств: ceil(115254 / 329) = ceil(350,3) = 351. Почувствуй разницу: на 2-й уровень — 5 килов, на 51-й — 351. Именно так работает рост exp-таблицы: чем выше уровень, тем длиннее «дорожка».
Тот же Grinding Wolf даёт ещё и job_exp отдельно — скажем, 247 Job EXP за убийство. Если до следующего Job Level надо 24700 опыта, то это ceil(24700 / 247) = 100 убийств. Обрати внимание: ты фармишь одного и того же моба, но Base и Job заполняются в РАЗНОМ темпе — поэтому твои Base 51 и Job-уровень почти никогда не совпадают в числах.
- Ключевые пороги и числа, которые стоит держать в голове: — Base Level максимум 99, Job Level максимум 50. Дошёл до предела — опыт этого типа больше ничего не даёт. — Рейт на uaRO = 1×: EXP_за_моба = base_exp × 100 / 100 = base_exp. Никаких множителей. — Стоимость следующего уровня растёт с каждым уровнем: первые уровни — единицы и десятки опыта, 50→51 — уже больше ста тысяч. — Одно убийство = максимум +1 уровень (multi_level_up off). Излишек опыта сгорает. — Нет штрафа за разницу уровней: моб даёт одинаковый опыт персонажу 1-го и 99-го уровня. — Формула убийств: kills = ceil(опыт_до_уровня / опыт_за_моба) — всегда округляй вверх.
- Типичные ошибки новичков: — Качать только Base и забивать на Job. Без Job Level у тебя нет скилл-поинтов — а значит и боевых скиллов. Высокий Base без скиллов — это беспомощный персонаж. — Искать «жирных» мобов ради излишка опыта. Из-за выключенного multi_level_up лишний опыт сверх одного уровня просто обрезается — переплата ничего не даёт. — Думать, что на uaRO есть штраф за низких мобов. Его НЕТ. Фармить удобных слабых мобов тут абсолютно выгодно — опыт не режется. — Брать рейт-формулы с других серверов. У нас 1×, множителя нет; число из базы движка — и есть твой опыт. — Путать Base и Job EXP. Это две отдельные копилки, которые заполняются в разном темпе от одного и того же моба.
Формулы сверены с движком uAthena (pre-renewal, Episode 11.2).