Stage Tables
Активный0.0
Установок
Последнее обновление
Версии
Stage Tables
Данный мод предлагает систему для создания взвешенных таблиц случайного распределения игровых стадий. Перед использованием настоятельно рекомендуется ознакомиться с основами модификации Game Stages, если вы не знаете, что это такое. Основная концепция заключается в том, что создатели сборок могут определять набор стадий, а затем с помощью специальной команды выдавать игрокам случайные стадии из этой таблицы. Для эффективного применения потребуется базовое понимание скриптового языка CraftTweaker.
Команды
- /stagetable - отображает список всех доступных команд мода
- /stagetable dump - генерирует файл с детализированной информацией о всех таблицах стадий
- /stagetable award <игрок> <таблица> - пытается выдать указанному игроку случайную стадию из выбранной таблицы
- /stagetable silentaward <игрок> <таблица> - аналогично предыдущей команде, но без уведомления игрока
Основные понятия
- Таблица стадий - именованная таблица, содержащая записи о стадиях
- Запись стадии - элемент таблицы, содержащий информацию о выдаваемой стадии, значении веса и списке условий
- Условие стадии - требование, которое должно быть выполнено для возможности получения игроком соответствующей записи
Взвешенная случайность
Система весов представляет собой механизм вероятностей, где разные исходы имеют неравные шансы выпадения. Процентная вероятность конкретного исхода вычисляется делением веса этой записи на суммарный вес всех элементов таблицы. К примеру, если запись имеет вес 1, а общий вес таблицы составляет 9, то вероятность выпадения будет равна 10%. Такая система особенно полезна, когда требуется гибкость в наборе возможных результатов. Для наглядного представления данных можно использовать команду dump, которая сформирует визуализированные таблицы.
Работа с CraftTweaker
Пример скрипта, демонстрирующий различные возможности мода:
// Основные импорты, используемые в скрипте
import crafttweaker.player.IPlayer;
// Создание новой таблицы стадий с названием exampleTable
val testTable = stageTables.createTable("exampleTable");
// Создание новой записи для стадии "one" с весом 5
val entryOne = testTable.createEntry("one", 5);
// Создание новой записи для стадии "two" с весом 5
val entryTwo = testTable.createEntry("two", 5);
// Блокировка выбора записи entryTwo, пока игрок не имеет стадии "four"
entryTwo.addStageCondition("four");
// Создание новой записи для стадии "three" с весом 1
val entryThree = testTable.createTable("three", 1);
// Добавление пользовательского условия для получения этой записи с использованием ZenScript
// В данном случае - только если игрок находится в творческом режиме
entryThree.addCondition(function(player as IPlayer) {
return player.creative;
});