Новости Релиз Of Ash and Steel состоится 6 ноября
  • 8.075
  • 12
Of Ash and Steel: атмосферный экшен выходит 6 ноября 6 ноября станет важной датой для поклонников сложных и атмосферных игр - именно в этот день состоится релиз долгожданного проекта Of Ash and...
Новости В Of Ash and Steel начался закрытый плейтест
  • 11.839
  • 12
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 6.164
  • 2
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
EthernalBreeze

EthernalBreeze 3.0.6 (BUILD 7.0.1)

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

DanilaDNL

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

Noweonex

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

Icefist

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

cajunq

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

Noweonex

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

StonedWizzard

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

Маза Фаза

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

StonedWizzard

Рыцарь
Участник форума
Регистрация
10 Июн 2013
Сообщения
2.484
Реакции
2.277
Баллы
434
Лучшие ответы
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
Сообщения
430
Реакции
220
Баллы
83
Лучшие ответы
0
@StonedWizzard проблемы (если подтвеждены) со щитом смотрел? Может так же дать опцию для множителя 0-ххх для набора ЭЩ?
 
Сверху Снизу