2,3楼的代码存在bug,比如第一层路过卡戎商店,商店售卖赫尔墨斯祝福,没购买的话也会消耗首次指定稀有度的次数,所以将代码进行了更新,如果已经按2,3楼修改了,要将2,3楼增加的那部分代码删掉,下面是新的修改方式,第一段代码将下面代码粘贴到图片位置
function GetRarityChances1( args )
local name = args.Name
local ignoreTempRarityBonus = args.IgnoreTempRarityBonus
local referencedTable = "BoonData"
if name == "StackUpgrade" then
referencedTable = "StackData"
elseif name == "WeaponUpgrade" then
referencedTable = "WeaponData"
elseif name == "HermesUpgrade" then
referencedTable = "HermesData"
end
local legendaryRoll = CurrentRun.Hero[referencedTable].LegendaryChance or 0
local heroicRoll = CurrentRun.Hero[referencedTable].HeroicChance or 0
local epicRoll = CurrentRun.Hero[referencedTable].EpicChance or 0
local rareRoll = CurrentRun.Hero[referencedTable].RareChance or 0
--第一个祝福等级
if CurrentRun.HasFirstBoon == nil then
CurrentRun.HasFirstBoon = false
end
if not CurrentRun.HasFirstBoon and referencedTable == "BoonData" then
legendaryRoll = 0
heroicRoll = 1 --英雄
epicRoll = 0 --史诗
rareRoll = 0 --稀有
CurrentRun.HasFirstBoon = true
end
--第一个赫尔墨斯等级
if CurrentRun.HasFirstHermesBoon == nil then
CurrentRun.HasFirstHermesBoon = false
end
if not CurrentRun.HasFirstHermesBoon and referencedTable == "HermesData" then
legendaryRoll =0
heroicRoll = 1 --英雄
epicRoll = 0 --史诗
rareRoll = 0 --稀有
CurrentRun.HasFirstHermesBoon = true
end
if CurrentRun.CurrentRoom.BoonRaritiesOverride then
legendaryRoll = CurrentRun.CurrentRoom.BoonRaritiesOverride.LegendaryChance or legendaryRoll
heroicRoll = CurrentRun.CurrentRoom.BoonRaritiesOverride.HeroicChance or heroicRoll
epicRoll = CurrentRun.CurrentRoom.BoonRaritiesOverride.EpicChance or epicRoll
rareRoll = CurrentRun.CurrentRoom.BoonRaritiesOverride.RareChance or rareRoll
elseif args.BoonRaritiesOverride then
legendaryRoll = args.BoonRaritiesOverride.LegendaryChance or legendaryRoll
heroicRoll = args.BoonRaritiesOverride.HeroicChance or heroicRoll
epicRoll = args.BoonRaritiesOverride.EpicChance or epicRoll
rareRoll = args.BoonRaritiesOverride.RareChance or rareRoll
end
local metaupgradeRareBoost = GetNumMetaUpgrades( "RareBoonDropMetaUpgrade" ) * ( MetaUpgradeData.RareBoonDropMetaUpgrade.ChangeValue - 1 )
local metaupgradeEpicBoost = GetNumMetaUpgrades( "EpicBoonDropMetaUpgrade" ) * ( MetaUpgradeData.EpicBoonDropMetaUpgrade.ChangeValue - 1 ) + GetNumMetaUpgrades( "EpicHeroicBoonMetaUpgrade" ) * ( MetaUpgradeData.EpicBoonDropMetaUpgrade.ChangeValue - 1 )
local metaupgradeLegendaryBoost = GetNumMetaUpgrades( "DuoRarityBoonDropMetaUpgrade" ) * ( MetaUpgradeData.EpicBoonDropMetaUpgrade.ChangeValue - 1 )
local metaupgradeHeroicBoost = GetNumMetaUpgrades( "EpicHeroicBoonMetaUpgrade" ) * ( MetaUpgradeData.EpicBoonDropMetaUpgrade.ChangeValue - 1 )
legendaryRoll = legendaryRoll + metaupgradeLegendaryBoost
heroicRoll = heroicRoll + metaupgradeHeroicBoost
rareRoll = rareRoll + metaupgradeRareBoost
epicRoll = epicRoll + metaupgradeEpicBoost
local rarityTraits = GetHeroTraitValues("RarityBonus", { UnlimitedOnly = ignoreTempRarityBonus })
for i, rarityTraitData in pairs(rarityTraits) do
if rarityTraitData.RequiredGod == nil or rarityTraitData.RequiredGod == name then
if rarityTraitData.RareBonus then
rareRoll = rareRoll + rarityTraitData.RareBonus
end
if rarityTraitData.EpicBonus then
epicRoll = epicRoll + rarityTraitData.EpicBonus
end
if rarityTraitData.HeroicBonus then
heroicRoll = heroicRoll + rarityTraitData.HeroicBonus
end
if rarityTraitData.LegendaryBonus then
legendaryRoll = legendaryRoll + rarityTraitData.LegendaryBonus
end
end
end
return
{
Rare = rareRoll,
Epic = epicRoll,
Heroic = heroicRoll,
Legendary = legendaryRoll,
}
end
