- Платформа игры
- Готика 2: Возвращение 2.0 - Новый Баланс
- Ссылка на мод
- https://rpgrussia.com/forums/gotika-2-vozvraschenie-2-0-novyj-balans.517/
- Автор(ы)
-
puncleV
Дополнительные фичи:
- Можно настраивать лут таблицы
- Можно усиливать врагов в зависимости от выданного лута
- Можно что бы были мобы-чемпионы, усиленный враг, с отдельным доп лутом (можно и без лута)
Вне НБ нужно отключать автодобавление и использовать марвин команды (по разу в каждой локации ну или по желанию больше-меньше)
ExtraLootChance=65; 0-999 общий множитель, 100 - значит что вероятнсти будут 1-в-1 как в json файле, больше - чаще, ниже - реже
ChestsExtraLootChance=65; 0-999
ValueBasedStrengthMultiplier=250; Каждые 250 единиц лута увеличивают характеристики врага
; сколько чего добавляется за каждый мультиплаер (зависит от добавленного лута)
StrengthenEnemyStatsPerMultiplier=25
StrengthenEnemyDefencePerMultiplier=3
StrengthenEnemyHpPercentIncreasePerMultiplier=10
; значени указывают максимальное усиление характеристики в процентах, например значение 30 значит, что если у моба защита 50, то оно не усилится более чем на 15
StrengthenLimitHpGrowPercent=100
StrengthenLimitStatsGrowPercent=30
StrengthenLimitDefenceGrowPercent=30
ChampionChance=20; шаес появления чемпиона (из 1000)
ChampionStrengthenValue=3000; безусловное усиление чемпиона
ChampionMinStats=175;
ChampionMaxStats=1250;
ChampionMinHp=1000;
ChampionMaxHp=35000;
BossStrengthenPercent=0.1; Все что добавляется боссам умножается на это значение, дефолт - 10%, что бы не иметь супер бешенных боссов.
MaxStrengthenValue=3000; максимальное усиление врага (добавили 5000 монет, усиливаем будто добавили 3000)
MinStrengthenValue=250; минимальное усиление врагов вне зависимости от ценности лута добавленного им (добавили монетку - будем усиливать будто добавили 250)
ShouldAddLootToNpc=1;
ShouldAddLootToChests=1;
ShouldUseNpcLootForChests=0; Использовать base-loot для сундуков
Debug=0
JsonFileName=punclev-utils.json; файл, откуда брать лут таблицы, файл класть в system
В gothic.ini указать:
[PUNCLEVUTILS]
...
JsonFileName=my-super-loot-table.json
{
"weak-animals": {
"npcs": [
"RABBIT",
"GOAT",
"SHEEP",
"HAMMEL",
"MEATBUG",
"HORSE",
"CRAB",
"RIESENNATTER",
"SCHILDKROETE"
],
"loot": [
{
"chance": 25,
"chanceOutOf": 100,
"valueOverride": 5,
"maxAmount": 5,
"itemNames": [
"ITKE_LOCKPICK",
"ITMI_BOTTLE_EMPTY"
]
},
{
"chance": 1,
"chanceOutOf": 100,
"itemNames": [
"ITMI_DIAMOD",
"ITMI_EMERALD",
"ITMI_RUBY",
"ITMI_SAPPHIRE",
"ITMI_OPAL",
"ITMI_TOPAZ"
]
},
{
"chance": 5,
"chanceOutOf": 100,
"maxAmount": 3,
"itemNames": [
"ITMI_ENCHANTSTONE_FIRE",
"ITMI_ENCHANTSTONE_MAGIC",
"ITMI_ENCHANTSTONE_BLUNT",
"ITMI_ENCHANTSTONE_EDGE",
"ITMI_ENCHANTSTONE_POINT"
]
},
{
"chance": 5,
"chanceOutOf": 100,
"maxAmount": 2,
"itemNames": [
"ITSE_ERZFISCH",
"ITSE_GOLDFISCH",
"ITSE_RINGFISCH",
"ITSE_LOCKPICKFISCH"
]
},
{
"chance": 5,
"chanceOutOf": 100,
"maxAmount": 2,
"itemNames": [
"ITSL_GOLDPOCKET_NONE",
"ITSL_GOLDPOCKET_LOW"
]
},
{
"chance": 10,
"chanceOutOf": 100,
"maxAmount": 2,
"itemNames": [
"ITPO_MANA_01",
"ITPO_HEALTH_01"
]
},
{
"chance": 5,
"chanceOutOf": 100,
"maxAmount": 5,
"itemNames": [
"ITMI_SNC_SPEC_ITEM"
]
}
]
},
"all": {
"loot": [
{
"chance": 2,
"chanceOutOf": 1000,
"valueOverride": 666,
"itemNames": [
"ITMI_LOOTBOX"
]
},
{
"chance": 5,
"chanceOutOf": 10000,
"maxAmount": 2,
"itemNames": [
"ITWR_STONEPLATECOMMON_ADDON"
]
}
]
},
"trader_hunter": {
"oncePerChapter": true,
"npcs": [
"VLK_413_BOSPER",
"HUN_745_RAFFA",
"HUN_"
],
"loot": [
{
"chance": 10000,
"chanceOutOf": 10000,
"maxAmount": 150,
"amountMeansPicks": true,
"itemNames": [
"ITRW_ADDON_MAGICBOLT",
"ITRW_HOLYBOLT",
"ITRW_PIERCINGBOLT",
"ITRW_SHARPBOLT",
"ITRW_CRUSHINGBOLT",
"ITRW_EXPLOSIVEBOLT"
]
}
]
},
"champions": {
"champion": true,
"loot": [
{
"chance": 125,
"chanceOutOf": 1450,
"amountMeansPicks": true,
"maxAmount": 3,
"itemNames": [
"ITSC_CHARGEFIREBALL",
"ITSC_SHRINK",
"ITSC_HARMUNDEAD",
"ITSC_THUNDERSTORM",
"ITSC_WHIRLWIND",
"ITSC_ARMYOFDARKNESS",
"ITSC_SKULL",
"ITSC_TRFDRAGONSNAPPER"
]
}
]
},
"bosses": {
"boss": true,
"loot": [
{
"chance": 1000,
"chanceOutOf": 1000,
"valueOverride": 250,
"maxAmount": 3,
"itemNames": [
"ITMI_LOOTBOX"
]
}
]
},
"chests": {
"chest": true,
"loot": [
{
"chance": 50,
"chanceOutOf": 1000,
"maxAmount": 3,
"itemNames": [
"ITMI_LOOTBOX"
]
}
]
}
}
Можно добавлять любые ключи в корень json файла, каждый из них будет расценен как отдельная таблица, таблицы могут повторяться, уникальные тоже (например можно иметь несколько boss таблиц, каждая из которых может быть под конкретных боссов либо под всех, если оставить поле npcs пустым)
Значения полей в корне таблицы
Имя поля | Описание | Дефолт |
npcs | Список НПЦ кому лут будет выдваться, плагин ищет по вхождениям в имени, потому для большинства орков достаточно указать ["orc", "ork"] | None |
loot | Сам лут и его настройки, массив, см следующую табличку для описани элементов | None |
oncePerChapter | Должен ли лут выдаваться раз в главу (напр. торгошам) | false |
champion | Лут чемпионов | false |
boss | Лут для боссов | false |
chest | Лут в сундуки | false |
Значения полей в массиве loot
Имя поля | Описание | Дефолт |
chance | Шанс получить один предмет из списка itemNames | 10 |
chanceOutOf | Из какого числа выбираем chance | 1000 |
minAmount | Если прокнуло - добавляем минимум столько | 1 |
maxAmount | Если прокнуло - добавляем максимум столько | 1 |
itemNames | Список предметов | [] |
amountMeansPicks | maxAmount будет пытаться взять разные айтемы из списка а не добавлять N одного предмета | false |
valueOverride | Все предметы будут добавлять силу, будто бы предмет стоил столько, сколько написано в этом поле | -1 |
;;;; Все что ниже - исключительно для настройки под себя, по дефолту все и так работает +- балансно (в моем восприятии под КС) и разнообразно
ValueBasedStrengthMultiplier=250; Цена каждого добавленного мобу айтема делится на это, что бы получить доп множитель для ХП, силы, ловки, защиты (меньше - сильнее монстры становятся с каждым добавленным айтемом)
BaseStrengthMultiplierForAddedLoot=1; Вне зависимости от цены этот множитель усиливает врага (больше - сильнее монстры становятся с каждым айтемом добавленным)
StrengthenEnemyStatsPerMultiplier=25
StrengthenEnemyDefencePerMultiplier=1
StrengthenEnemyBaseHP=150; Решающий фактор в добавлении ХП за добавленный лут, чем меньше - тем больше будут ХП получать мобы с меньшим хп, но меньше хп будут получать мобы с большим хп
Формула расчета доп силы монстров за каждый добавленный предмет:
multiplier = ItemPrice / ValueBasedStrengthMultiplier + BaseStrengthMultiplierForAddedLoot
strength\agility += StrengthenEnemyStatsPerMultiplier * multiplier
health += random(...); Less HP monster have bigger boost it will receive
defence += StrengthenEnemyDefencePerMultiplier * multiplier
ExtraLootChance + ( npcHp / ExtraLootHpFactor) * ExtraLootHpFactorMultiplier;
Default value for a meatbug with 15HP: 15 + ( 15 / 400 ) * 25 = 15 OUT OF 1000 = 1.5% ;
Default value for an enemy with 10000HP: 15 + ( 10000 / 400 ) * 25 = 15 + 625 = 640 OUT OF 1000 = 64% ;
Default value for an enemy with 10000HP NOT IN HORINIS: 15 + ( 10000 / 700) * 25 = 15 + 362= 377 OUT OF 1250 = 30% ;
punclevutils LOOT_CHESTS -- добавляет лут в сундуки в текущей локе
punclevutils LOOT_NPCS -- добавляет лут неписям в текущей локе
punclevutils ADD_LOOT_TO_PLAYER -- тестовая команда, любой добавленный лут пойдет прямо в инвентарь игрока
punclevutils IGNORE_LOOT_CHECKS -- тестовая команда, убирает все проверки на добавление лута (осторожно, лут добавляется очень и очень быстро)