Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Увеличение максимального уровня в Interlude
#1
Ход мыслей смотрите в теме «Таблица опыта в клиенте» (http://forum.zone-game.info/showthread.php?t=29982)

Увеличить максимальный уровень в игре с полной поддержкой клиента очень просто: достаточно иметь на руках исходный код сервера и пять минут времени. Менять что-либо в клиенте не нужно.

[Изображение: c544eed7df5fc50ecfd15bd57134b9c0.jpg]

Дело в том, что в клиенте Interlude уже заложены значения опыта для уровней выше 80, но они совершенно не совпадают со значениями опыта в базах знаний (например, http://l2wiki.com/Character_Level).

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

В сервере на Java (я правил исходный код Silentium, основанный на Acis) таблица опыта хранится в файле Experience.java (\gameserver\model\base\Experience.java).

Таблица опыта — список значений опыта, при достижении которых персонаж получает новый уровень. В оригинальном коде она заканчивается так:
[SRC="java"]4200000000L, // level 80
6299994999L[/SRC]

Из комментария понятно, что предпоследняя строка — уровень 80, следующая, по всей видимости, предел Interlude — 80 и 99.99%.

Добавим в игру 85 уровней.

Сперва заменим вышеприведенные строки в таблице опыта на следующие:
[SRC="java"]4200000000L, // level 80
6300000000L, // level 81
10500000000L, // level 82
16800000000L, // level 83
27300000000L, // level 84
44100000000L, // level 85
71400000000L // level 86[/SRC]

Любопытно, что значения опыта после 81 уровня — не что иное, как сумма опыта двух предыдущих уровней: 10500000000 (уровень 81) + 6300000000 (уровень 82) = 16800000000, что соответствует уровню 83. Видимо NC Soft не стали задумываться и заполнили неиспользуемые уровни нехитрым способом.

Что это нам дает? Это значит, что мы можем таким же способом (суммой двух предыдущих уровней) рассчитать опыт хоть до 99 уровня (внимание: я не проверял поведение выше 86 уровня).

Итак, когда мы знаем, как рассчитать опыт и обновили таблицу, изменим максимально доступный уровень. Сделать это просто: чуть ниже в коде есть строка задающая первый недоступный уровень (для 80 это 81, для 85 будет 86):
[SRC="java"]public final static byte MAX_LEVEL = 81;[/SRC]

Заменим значение на 86:
[SRC="java"]public final static byte MAX_LEVEL = 86;[/SRC]

На этом все. Компилируем сервер, запускаем и тестируем. Возможно, вам удастся подобрать значения поточнее: эти, на мой взгляд, слишком «круглые» для корейских значений (:.

Напоследок скажу, что значения опыта очень большие — докачаться до 85 уровня в Interlude будет тяжело, поэтому мой совет такой: если вы хотите добавить новые уровни на Interlude, позаботьтесь о новых местах прокачки или сделайте перерасчет рейтов на опыт после 80 уровня (можно добавить в функции добавления и вычитания опыта специальный множитель, увеличивающий число: так процент в клиенте будет тикать веселее, а числа в чате не будут в километр длиной).

Благодаря товарищу MrShyr у нас есть достоверные данные до 100 уровня!
[SRC="java"]//level 80
4200000000,
6300000000,
10500000000,
16800000000,
27300000000,
44100000000,
71400000000,
115500000000,
186900000000,
302400000000,
//level 90
489300000000,
791700000000,
1281000000000,
2072700000000,
3353700000000,
5426400000000,
8780100000000,
14206500000000,
22986600000000,
37193100000000,
100000000000000[/SRC]
Ответ
#2
подобное на уг порталах давно уже описано было.
Ответ
#3
Если бы эти цифры лежали на виду, я бы не стал их подбирать. Даже если где-то и было — это не важно: теперь есть здесь и в хорошем виде (на этом форуме я встретил как минимум 7 тем с этим вопросом).
Ответ
#4
Лично я нигде не видел, по этому и пришлось как обычно методом тыка разбираться Smile

Добавлено через 5 минут
З.Ы. Если собрались тюнить уровни, позаботьтесь о скилах, а именно о Magiclvl, который как правило на IT не качается после 74 или 76 (точно не помню) и зависит как правило от уровня проточки скила (до 85 качится если память не изменяет - хотя в случае 99 лвл это уже пофиг), что влечет за собой полное *непрохождение* магических скилов на персонажей высокого уровня.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)