Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 114
  • 0
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
Новости Моддеры Oblivion Remastered нашли способ внедрения абсолютно любых скриптов
  • 220
  • 1
Сообщество моддинга Oblivion Remastered (ORM) переживает настоящий расцвет. После долгих месяцев работы, энтузиасты научили игру работать с мощным скриптовым языком Lua, открыв перед создателями...
Новости Tainted Grail: The Fall of Avalon — Польская «Skyrim» теперь официально
  • 1.597
  • 24
23 мая 2025 после двух лет успешного раннего доступа в Steam польская студия Questline наконец представила свою фэнтези-RPG в полной версии. Tainted Grail: The Fall of Avalon доступна на ПК...
EthernalBreeze

EthernalBreeze 3.05 (BUILD 6.4.6)

Нет прав доступа на загрузку
Сей мод направлен на расширение Нового Баланса в формат Дьяблоида и схожих рпг игр.

DanilaDNL

Наемник
Участник форума
Регистрация
2 Май 2018
Сообщения
861
Реакции
230
Баллы
126
Лучшие ответы
0
Господа , у меня вопрос . На волынах при дропе иногда пишут (гнезд 5) что это за гнезда и где взять гемы для инкрустации или для чего они вообще нужны?
Пока не реализовано. Забей
 

Noweonex

Новичок
Участник форума
Регистрация
4 Дек 2022
Сообщения
5
Реакции
0
Баллы
6
Лучшие ответы
0

Icefist

Наемник
Участник форума
Регистрация
7 Фев 2018
Сообщения
893
Реакции
209
Баллы
136
Лучшие ответы
1
Спасибо а то пробегал все до Ирдората как дурак и ничего не нашел. Думал что рандомный спаун мобов нпс с гемами где-то уже завалил
А мог бы не то что до Ирдората, а ещё до старта игры посмотреть ФАК вопрос 38 и не мучить себя сомнениями ..
 

cajunq

Новичок
Участник форума
Регистрация
17 Окт 2023
Сообщения
17
Реакции
1
Баллы
7
Лучшие ответы
0

Noweonex

Новичок
Участник форума
Регистрация
4 Дек 2022
Сообщения
5
Реакции
0
Баллы
6
Лучшие ответы
0
Автор
Автор
StonedWizzard

StonedWizzard

Рыцарь
Участник форума
Регистрация
10 Июн 2013
Сообщения
2.159
Реакции
1.884
Баллы
384
Лучшие ответы
0

Маза Фаза

Житель города
Участник форума
Регистрация
29 Ноя 2013
Сообщения
204
Реакции
83
Баллы
51
Лучшие ответы
4
такой вопрос возник, а где в генераторе предметов можно найти множители требований к предметам? Хочу слегка понизить их
Искал в ItemGeneratorConfigs, но не понял какое там значение нужно редактировать (были мысли по StatMin/StatMax или StatValueMin/Max, но не понял это оно или нет)
 
Автор
Автор
StonedWizzard

StonedWizzard

Рыцарь
Участник форума
Регистрация
10 Июн 2013
Сообщения
2.159
Реакции
1.884
Баллы
384
Лучшие ответы
0
такой вопрос возник, а где в генераторе предметов можно найти множители требований к предметам? Хочу слегка понизить их
Искал в ItemGeneratorConfigs, но не понял какое там значение нужно редактировать (были мысли по StatMin/StatMax или StatValueMin/Max, но не понял это оно или нет)
Есть глобальные множители:
JSON:
  "ConditionStaticMult": 0.1,
  "BaseConditionStaticMult": 0.5,
  "ConditionPerLevelMult": 0.02,
  "ConditionPerRankMult": 1.0,
  "BaseConditionPerLevelMult": 0.001,
  "BaseConditionPerRankMult": 0.25,
  "ExtraConditionChanceBase": 25.0,
  "ExtraConditionChancePerRankMult": 20.0,
  "ExtraConditionChancePerLevelMult": 0.25,
Тут смотри какой именно множитель нужен.
BaseCondition*** - отвечают за изменение базового, уже имеющегося требования на вещи
ConditionPerLevelMult*** - отвечают за дополнительные генерируемые требования

Если что, то для большего понимания что и как работает:
C++:
// conditions change
        float conditionsMult = GeneratorConfigs.ConditionStaticMult + (itemLevel * GeneratorConfigs.ConditionPerLevelMult) + (itemRank * GeneratorConfigs.ConditionPerRankMult);
        float baseConditionMult = GeneratorConfigs.BaseConditionStaticMult + (itemLevel * GeneratorConfigs.BaseConditionPerLevelMult) + (itemRank * GeneratorConfigs.BaseConditionPerRankMult);
        if (conditionsMult < 0.1f) conditionsMult = 0.1f;
        if (baseConditionMult < 0.5f) baseConditionMult = 0.5f;
        int extraCondChance = 10 * (GeneratorConfigs.ExtraConditionChanceBase + (itemLevel * GeneratorConfigs.ExtraConditionChancePerLevelMult) + (itemRank * GeneratorConfigs.ExtraConditionChancePerRankMult));
        bool extraCondAdded = false;
        
        for (int i = 0; i < EnchantConditionsMax; i++)
        {
            enchantment->CondAtr[i] = item->cond_atr[i];
            enchantment->CondValue[i] = item->cond_value[i];

            // item have condition in this cell
            if (item->cond_atr[i] > 0)
            {
                ItemCondition* condData = GetConditionData(item->cond_atr[i]);
                if (condData)
                {
                    enchantment->CondValue[i] *= baseConditionMult;
                    enchantment->CondValue[i] = enchantment->CondValue[i] > condData->HardCap ? condData->HardCap :
                        (enchantment->CondValue[i] <= 0 ? 1 : enchantment->CondValue[i]);
                }
            }
            else if ((item->cond_atr[i] == 0) && !extraCondAdded)
            {
                if (extraCondChance < (rand() % 1000)) continue;

                ItemCondition* condData = GetRandomConditionData(enchantment->Type, item->cond_atr[0], item->cond_atr[1], item->cond_atr[2]);
                if (condData)
                {
                    int tmpLvl = itemLevel + (itemRank * 10);
                    int condVal = GetRandomRange(tmpLvl * condData->PerLevelMin, tmpLvl * condData->PerLevelMax) * conditionsMult;
                    condVal = condVal > condData->HardCap ? condData->HardCap :
                        condVal <= 0 ? 1 : condVal;
                    enchantment->CondAtr[i] = condData->Id;
                    enchantment->CondValue[i] = condVal;
                    extraCondAdded = true;
                }
            }
        }

        // make sure to add requirement if no any present
        if ((enchantment->CondAtr[0] == 0) && (enchantment->CondAtr[1] == 0) && (enchantment->CondAtr[2] == 0))
        {
            ItemCondition* condData = GetRandomConditionData(enchantment->Type, enchantment->CondAtr[0], enchantment->CondAtr[1], enchantment->CondAtr[2]);
            int i = (enchantment->CondAtr[0] == 0) ? 0 :
                (enchantment->CondAtr[1] == 0) ? 1 :
                (enchantment->CondAtr[2] == 0) ? 2 : Invalid;

            if(i == Invalid)
                DEBUG_MSG("ProcessItemEmbeddedStats - condition index is Invalid!");

            if (condData && (i != Invalid))
            {
                int tmpLvl = itemLevel + (itemRank * 10);
                int condVal = GetRandomRange(tmpLvl * condData->PerLevelMin, tmpLvl * condData->PerLevelMax) * conditionsMult;
                condVal = condVal > condData->HardCap ? condData->HardCap :
                    condVal <= 0 ? 1 : condVal;
                enchantment->CondAtr[i] = condData->Id;
                enchantment->CondValue[i] = condVal;
            }
        }
 

khellzhao

Труженик
Участник форума
Регистрация
22 Ноя 2021
Сообщения
358
Реакции
131
Баллы
63
Лучшие ответы
0
@StonedWizzard проблемы (если подтвеждены) со щитом смотрел? Может так же дать опцию для множителя 0-ххх для набора ЭЩ?
 
Автор темы Похожие темы Форум Ответов Дата
Icefist Новый Баланс - FAQ / Мануалы 0
Сверху Снизу