"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,
// 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;
}
}
Автор темы | Похожие темы | Форум | Ответов | Дата |
---|---|---|---|---|
![]() |
FAQ FAQ на мод EthernalBreeze (G2: Возвращение 2.0) | Новый Баланс - FAQ / Мануалы | 0 |
Похожие темы |
---|
FAQ FAQ на мод EthernalBreeze (G2: Возвращение 2.0) |