Цитата(AmberSoler @ 28 May 2010, 23:58)
Sag, привет! Про алгоритм построения дерева вторичных навыков спроси. Памятник при жизни поставят офлайнеры!

Нет там никакого секрета. Есть навыки, приходящие "по расписанию" - школа магии на уровнях, кратных 4м, мудрость на кратных 6и. Может ещё что-то есть. Всё остальное - рандом. "дерева" никакого не строится, это только кажется. Используется генератор псевдослучайных чисел (ГПСЧ) с зерном, хранимым отдельно для каждого героя.
Обычный бесхитростный ГПСЧ устроен очень просто. Это функция, которая получает на вход число ("зерно"), умножает его на некую большую константу, находит остаток от деления на другую большую константу и возвращает полученное число, которое будет использоваться игрой, а также будет использовано как зерно при следующем обращении к генератору. Оно внешне ничуть не похоже на исходное, т.е.
выглядит случайным, но на самом деле подсунув в ГПСЧ дважды одно и то-же зерно мы дважды получим одинаковые результаты. Даже одинаковые цепочки результатов.
Когда происходит левелап, происходит следующее:
1. составляется список тех навыков, которые можно повысить (т.е. базовые и продвинутые)
2. составляется список возможных новых навыков (не взятых ранее, не запрещённых для класса (как некромантия, например), не запрещённых картоделом)
3. если список из п.1 не пустой, то дёргается ГПСЧ, и из списка в левую кнопку выбирается навык
4. если список из п.1 пустой, то дёргается ГПСЧ, и из списка п.2 берётся навык для левой кнопки. При этом из списка он изымается.
5. ГПСЧ генерит следующее число, и по нему выбирается навык для правой кнопки из списка 2.
Примерно так это происходит (я упростил, разумеется; для простоты проигнорированы навыки по расписанию и ситуации, когда уже все слоты забиты и т.д.).
Это моё мнение, основанное на наблюдениях и знаниях об устройстве и особенностях ГПСЧ. Я ничего не реверсил, но спорю на свой монитор, что это ваше супертаинственное всемогущее непостижимое "дерево умений" - не более, чем стандартное 32хбитное число и три строчки кода.
Простите за оффтоп.
Не приставайте с тов. Смедстаду с запареной ерундой.