星级系统

星级系统

将生物可拥有的星级无限扩展!升级生物、鱼类、树木。添加修饰符,调整生成物,控制战利品规模。修改生物属性,生成巨大的BOSS。

游戏玩法

星级等级系统

[img]https://github.com/MidnightsFX/Valheim_Star_Levels_Expanded/blob/master/art/TitleHeader.png?raw=true[/img]

星级等级系统扩展了《英灵神殿》的星级系统,并允许进行广泛的定制。

功能:

  • 扩展生物星级等级(最高可达你想要的任意等级)
    • 所有生物及其装备的大小配置
  • 对所有生物属性进行精细控制
    • 生命值、伤害、体型、速度、攻击速度,以及基础值和每级增加值
    • 对所有元素的抗性或弱点
  • 任何生物都能获得独特的配色
    • 每级配色适用于任何生物
    • 批量颜色生成器,用于定义整个颜色等级范围
  • 所有生物的独特词缀,分为多个不同类别(Boss、主要、次要)
    • 基于词缀的生物名称
    • 基于词缀的星级图标
    • 词缀的视觉效果
    • 每级词缀的精细配置和调整
  • 所有生物掉落物的缩放、精细控制和配置
    • 对单个掉落项进行不同比例的缩放
    • 根据生物等级修改掉落几率
    • 添加、移除、更改所有掉落物
  • 世界周围的缩放
    • 提升鱼的等级!
    • 等级按比例缩放的鸟类
    • 等级按比例缩放的树木

如有bug要报告或只想聊聊这个模组?欢迎加入Discord或访问GitHub。

[url=https://discord.gg/Dmr9PQTy9m][img]https://i.imgur.com/uE6umQE.png[/img][/url] [url=https://github.com/MidnightsFX/Valheim_Star_Levels_Expanded][img]https://i.imgur.com/lvbP5OF.png[/img][/url]

下面是一些你可能看到的示例,以及这个模组能做什么。

[img]https://github.com/MidnightsFX/Valheim_Star_Levels_Expanded/blob/master/art/Header.png?raw=true[/img]

功能

注意:在Nexus完全支持Markdown之前,建议查看GitHub上的README

等级、等级、更多等级 (LevelSettings.yaml)

你想让生物拥有更多等级,但又不想在游戏开始时被一只100级的野猪秒杀? 那么,我这里有适合你的配置文件。

等级设置允许配置生物升级几率、生物属性、最大等级、基于距离中心点的升级几率提升——以及针对所有这些的以生物群系为基准的配置。

想要一些帮助来计算和构建等级定义?看看这个工具

生物群系配置

让我们看看你可以用这个做些什么,最好从默认的“所有”生物群系配置开始(默认情况下适用于所有生物)。

以下是默认示例配置的一部分,让我们逐步了解每项的作用。

All:
distanceScaleModifier: 1.5         # 距离环缩放的影响(1.5表示应用150%的加成值)
spawnRateModifier: 1.5             # 每种生物的生成率提高50%(1.5),意味着每次生成有50%的几率生成2只生物
creatureBaseValueModifiers:        # 这些值修改该生物群系中所有生物的基础属性(例如,所有生物)
BaseHealth: 1                    # 所有生物的默认生命值为100%(1),低于1的数字降低生命值,高于1的数字增加生命值(2表示所有事物200%生命值)
BaseDamage: 1                    # 所有生物的默认伤害为100%(1)
Speed: 1                         # 所有生物的默认移动速度为100%(1)
Size: 1                          # 所有生物的默认大小为100%(1)
creaturePerLevelValueModifiers:    # 每级修改器按等级应用,例如每颗星会给生物这个值
HealthPerLevel: 0.4              # 每颗星提供40%的额外生命值(0.4)
DamagePerLevel: 0.1              # 每颗星提供10%的额外伤害(0.1)
SpeedPerLevel: 0                 # 每颗星不增加速度(0)
SizePerLevel: 0.1                # 每颗星使生物大10%(0.1)
damageRecievedModifiers:           # 伤害减免或增加
Poison: 1.5                      # 所有生物受到毒药伤害增加50%(1.5)(包括玩家)

注意:creaturePerLevelValueModifiers不适用于角色。但是,damageRecievedModifiers是适用的。

特定生物群系的配置可用于覆盖默认的“所有”配置,例如,这里的灰烬大陆最大等级被设为26,距离修改器减少50%:

AshLands:
biomeMaxLevelOverride: 26
distanceScaleModifier: 0.5

生物配置

特定生物的配置允许你覆盖生物群系定义中设置的内容,从而更精细地控制特定生物应该如何修改。

让我们看看这个生物定义:

Troll:                                # 生物预制件名称,必须完全匹配,可以使用VNEI、Wiki或Jotunn预制件文档查找
customCreatureLevelUpChance:        # 设置此特定生物的升级几率,覆盖默认值,仍可通过距离加成修改
1: 100                            # 保证1级
2: 50                             # 50%几率达到2级
3: 5                              # 5%几率达到3级
creatureMaxLevelOverride: 11        # 覆盖此生物的最大等级(11,而不是生物群系默认值)
creatureBaseValueModifiers:         # 覆盖此生物的基础属性修改器,低于1的值降低属性,高于1的值增加属性
BaseHealth: 1.05                  # 基础生命值增加5%
BaseDamage: 0.95                  # 基础伤害减少5%
Speed: 1.05                       # 速度增加5%
Size: 1.05                        # 体型增加5%
AttackSpeed: 1.05                 # 攻击速度增加5%
creaturePerLevelValueModifiers:     # 此生物的每级属性修改器,乘以生物等级并应用于总属性值
HealthPerLevel: 0.3               # 每颗星提供30%的额外生命值
DamagePerLevel: 0.05              # 每颗星提供5%的额外伤害
SizePerLevel: 0.005               # 每颗星提供0.5%的额外体型
requiredModifiers:                  # 此生物无论等级、几率或词缀限制,都会始终携带这些词缀生成,但仍计入最大词缀数量
Poison: Major                     # 巨魔将始终带着毒药主要词缀生成,词缀名称可在Modifiers.yaml及其类别中找到

升级几率

这是生物在每个节点升级几率的定义。

它与距离缩放修改器和distanceLevelBonus协同工作,距离等级加成适用于落入带有加成的距离类别的生物。 例如:

distanceLevelBonus:
1250:
1: 25

如果生物距离中心点至少1250米,则所有生物达到第一颗星的几率增加25%。此值随后根据生物群系设置进行修改。 在我们的示例生物群系文件中,距离修改器的值为1.5,因此1.5 x 25 = 37.5 将是达到1级的加成。

如果总加成和基础值超过100,则该等级将得到保证,满足该条件的每个生物至少为该等级。 你可以在后面的一些距离加成中看到这一点,这些加成逐渐提高了生物的保证生成等级:

5000:
1: 100
2: 100      # 距离中心点至少5000米的所有生物都将达到2级+
3: 75
4: 50
5: 25
6: 15

你也可以使用distanceLevelBonus来增加额外的等级,使得某些距离必须达到才能生成更高级别的敌人。

defaultCreatureLevelUpChance:
1: 20
2: 15
distanceLevelBonus:
1250:
1: 25
2: 15
3: 5
5000:
1: 100
2: 100
3: 75
4: 50

使用上述配置,距离起点最近、范围在1250米以内的区域只能生成1级和2级的生物。在1250米到5000米之间的区域,生物可以生成到3级。超过5000米的范围,生物可以生成到4级。

现在,我们已经介绍了许多关于升级几率的加成,但让我们也看看基础值。 星级等级系统的默认配置有一个相对较大的生成范围——这受到生物群系配置的限制。

defaultCreatureLevelUpChance定义所有生物的升级几率,但这可能受到生物群系配置的限制,也可能被其他因素(如距离中心点的加成)增加。

defaultCreatureLevelUpChance:
1: 20
2: 15
3: 12
4: 10
5: 8
6: 6.5
7: 5
8: 3.5
9: 1.5
10: 1
11: 0.5
12: 0.25

配色 (Colorization.yaml)

在原版游戏中,很少有生物在升级时可以改变颜色。星级等级系统改变了这一点。 几乎所有生物都可以改变颜色,但需要注意的是,有些生物(例如亚格鲁斯)的着色效果不佳,通常不太明显。

有两种不同的方式可以为生物应用配色值。

  • 特定生物的配色定义。这些定义分为默认定义(适用于任何没有更具体条目的生物)和角色特定条目。这些定义将在指定的等级应用于特定的生物。
    Greydwarf:
    1:
    hue: -0.06
    saturation: 0.1
    value: 0.05
    
  • 颜色范围定义。这些是颜色范围,会被分割并基于起始点和终点之间的范围生成逐渐变化的颜色模式。
    DefaultGenerator:
    - characterSpecific: false
    startColorDef:
    hue: 0.07130837
    saturation: 0.05205864
    value: 0.01721987
    endColorDef:
    hue: -0.07488244
    saturation: 0.09342755
    value: -0.1008582
    rangeStart: 1
    rangeEnd: 15
    
    在此示例中,从1级到15级的默认颜色范围将形成从hue 0.07130837到-0.07488244等的颜色范围。如果你想查看生成器的输出,可以启用调试标志,将生成的配色配置转储到文件中。你可以用这个来手动挑选颜色值等。

战利品配置

星级等级系统提供全面的可选配置,以详细控制所有战利品掉落。战利品配置可以在LootSettings.yaml文件中找到。

你可能会发现查看SLS系统内已有的掉落物很有用。 你可以通过使用游戏内控制台命令 sls-dump-loottables 来转储所有战利品掉落的调试配置(以当前状态),输出到SLS配置文件夹中的LootTablesDump.yaml文件。

配置战利品掉落有三个核心部分,但如果你希望微调战利品配置,还有许多选项可供修改。

  • characterSpecificLoot | 管理所有角色相关的战利品掉落
  • nonCharacterSpecificLoot | 控制所有非角色相关的战利品掉落
  • distanceLootModifier | 允许战利品随距离缩放,类似于距离等级缩放的工作方式

角色特定战利品配置

让我们看看角色特定的战利品掉落。以下是示例配置之一,用于解决一个特定挑战。 Oozer死亡时会生成粘液怪,其数量随生物等级缩放。但是,当你有一个非常高等级的Oozer时,你最终可能会得到20、30甚至更多的粘液怪。 这几乎无法应对。该配置通过几种方式解决了这个问题,最后的 drop: 条目是针对粘液怪的,最小生成2个,最大生成2个。但会根据BlobElite (Oozer)的等级进行缩放,不过该缩放上限为最大6个掉落,并且每级仅缩放0.5。因此每隔一级,最多可以生成6个粘液怪。

另一个有用的条目是TrophyBlob的掉落,它有0.1 (10%)的发生几率,但每级会缩放x0.01,所以一个5级的几率是(0.01 x 5) = 0.05 (5%)更高。 这可以与掉落数量结合使用,以缩放该条目的掉落数量,因此5级可能掉落更多奖杯。但是,这通过设置maxScaledAmount: 1已禁用。

characterSpecificLoot:
BlobElite:
- drop:
prefab: Ooze
min: 2
max: 3
levelMultiplier: true
amountScaleFactor: 0.5
- drop:
prefab: IronScrap
chance: 0.33
levelMultiplier: true
amountScaleFactor: 0.2
- drop:
prefab: TrophyBlob
chance: 0.1
levelMultiplier: true
chanceScaleFactor: 0.01
maxScaledAmount: 1
- drop:
prefab: Blob
min: 2
max: 2
levelMultiplier: true
amountScaleFactor: 0.5
maxScaledAmount: 6

非角色特定战利品配置

此部分允许你详细配置所有与非生物相关的战利品。其结构与角色战利品配置类似。 你可以使用它来修改或向任何现有可掉落战利品的对象添加战利品。例如,掉落的冰柱。此配置使它们有几率掉落水晶。 几率随等级缩放(是的,无生命的物体也可以升级,如树木、岩石或可破坏物,具体取决于类型)。如果此处未定义战利品配置,则会应用来自主配置文件的通用配置值:PerLevelDestructibleLootScale、PerLevelMineRockLootScale和PerLevelTreeLootScale,以及它们的最大等级值。 等级缩放可以通过设置 dontScale: true 来忽略。

nonCharacterSpecificLoot:
caverock_ice_stalagtite_falling:
- drop:
prefab: crystal
chance: 0.3
min: 1
max: 3
dontScale: true
EvilHeart_Forest:
- drop:
prefab: AncientSeed
onePerPlayer: true
levelMultiplier: true
maxScaledAmount: 3

距离战利品修改器

这与角色距离修改器类似,它会根据距离给条目的最小和最大掉落数量增加一个加成。 战利品环不会在地图上绘制,但其行为与角色距离环完全相同(如果对象大于x距离且小于下一个距离,则会获得该加成)。

distanceLootModifier:
1250:
minAmountScaleFactorBonus: 1.02
maxAmountScaleFactorBonus: 1.02

词缀

也许你已经尝试过CLLC的词缀,或者怪物词缀?两者都为游戏增加了急需的多样性。 星级等级系统的词缀设计得非常灵活,无论是在配置上还是在效果上。

不过,有许多词缀,可能不太清楚每个词缀的作用。所以,首先是一个表格,列出所有当前的词缀及其工作方式。

词缀分为三类:Boss、主要和次要。这允许自定义词缀的随机选择过程,以及对出现在Boss与次要生物上的词缀进行单独调整。

Boss词缀

这些词缀默认仅适用于Boss。

  • [b]BossSummoner[/b] - 定期召唤仆从生物,直至达到一定上限。 配置:BasePower = 最大召唤数量, PerlevelPower = 召唤间隔时间, BiomeObjects = 生物群系特定仆从(预制件名称)
  • [b]SoulEater[/b] - 当附近有其他生物死亡时,生物会增强力量和体型。生物会轻微治疗。 配置:PerlevelPower = 获得多少生命值和伤害
  • [b]LifeLink[/b] - 生物将受到的部分伤害转移给区域内的另一个生物。 配置:BasePower = 基础伤害转移,PerLevelPower = 基于等级的额外伤害转移
  • [b]ResistPierce[/b] - 减少生物受到的穿刺伤害(如弓箭)。 配置:BasePower = 基础伤害减免,PerLevelPower = 每生物等级授予的额外伤害减免
  • [b]Brutal[/b] - 增加生物的攻击速度。 配置:BasePower = 按基础值增加攻击速度,PerLevelPower = 每级按数值增加攻击速度

主要词缀

这些词缀大多数生物都可以获得,通常是影响较大的词缀。

  • [b]Brutal[/b] - 增加生物的攻击速度。 配置:BasePower = 增加攻击速度,PerLevelIncrease = 每级增加攻击速度
  • [b]Fire[/b] - 增加火焰伤害。 配置:BasePower = 增加总伤害的百分比,PerLevelIncrease = 每级增加的额外伤害
  • [b]Frost[/b] - 增加冰冻伤害。 配置:BasePower = 增加总伤害的百分比,PerLevelIncrease = 每级增加的额外伤害
  • [b]Poison[/b] - 增加毒药伤害。 配置:BasePower = 增加总伤害的百分比,PerLevelIncrease = 每级增加的额外伤害
  • [b]Lightning[/b] - 增加闪电伤害。 配置:BasePower = 增加总伤害的百分比,PerLevelIncrease = 每级增加的额外伤害
  • [b]Elemental Chaos[/b] - 每次击中随机类型的元素伤害。 配置:BasePower = 增加总伤害的百分比,PerLevelIncrease = 每级增加的额外伤害
  • [b]Splitter[/b] - 生物死亡时会生成替代品。配置值被组合,每整一个值,就额外生成一个生物。 配置:BasePower = 生成替代品的生物数量,PerLevelIncrease = 增加的值,用于提供更多生成机会
  • [b]ResistPierce[/b] - 减少受到的穿刺伤害。 配置:BasePower = 基础伤害减免,PerLevelIncrease = 每级额外伤害减免
  • [b]ResistSlash[/b] - 减少受到的劈砍伤害。 配置:BasePower = 基础伤害减免,PerLevelIncrease = 每级额外伤害减免
  • [b]ResistBlunt[/b] - 减少受到的钝击伤害。 配置:BasePower = 基础伤害减免,PerLevelIncrease = 每级额外伤害减免

次要词缀

这些词缀大多数生物都可以获得,通常直接影响较小,但同样危险。

  • [b]FireNova[/b] - 死亡时爆炸,伤害周围一切。 配置:BasePower = 爆炸的基础伤害,基于生物伤害,PerLevelPower = 每级增加的伤害
  • [b]PoisonNova[/b] - 死亡时爆炸,伤害周围一切。 配置:BasePower = 爆炸的基础伤害,基于生物伤害,PerLevelPower = 每级增加的伤害
  • [b]Lootbags[/b] - 使生物生命值翻倍,移动速度提高25%,掉落更多战利品。 配置:BasePower = 增加掉落物,PerLevelPower = 每级按数值增加掉落物
  • [b]Alert[/b] - 增加生物的听觉范围。 配置:BasePower = 增加听觉,PerLevelPower = 每级按数值增加听觉
  • [b]Big[/b] - 增加生物的体型和生命值。 配置:BasePower = 增加生命值和体型,PerLevelPower = 每级按数值增加生命值和体型
  • [b]Fast[/b] - 增加生物的速度。 配置:BasePower = 增加移动速度,PerLevelPower = 每级按数值增加速度
  • [b]Evolving[/b] - 击杀X个生物后,该生物提升一个等级。 配置:BasePower = 所需的基础击杀数,PerLevelIncrease = 每级额外的击杀数
  • [b]StaminaDrain[/b] - 生物的攻击会消耗你的耐力。 配置:BasePower = 消耗量,PerLevelPower = 每级增加的消耗量
  • [b]EitrDrain[/b] - 生物的攻击会消耗你的Eitr。 配置:BasePower = 消耗量,PerLevelPower = 每级增加的消耗量
  • [b]ResistFire[/b] - 减少受到的火焰伤害。 配置:BasePower = 基础伤害减免,PerLevelIncrease = 每级额外伤害减免
  • [b]ResistFrost[/b] - 减少受到的冰冻伤害。 配置:BasePower = 基础伤害减免,PerLevelIncrease = 每级额外伤害减免
  • [b]ResistPoison[/b] - 减少受到的毒药伤害。 配置:BasePower = 基础伤害减免,PerLevelIncrease = 每级额外伤害减免
  • [b]ResistSpirit[/b] - 减少受到的精神伤害。 配置:BasePower = 基础伤害减免,PerLevelIncrease = 每级额外伤害减免

本地化

模组中的所有内容都可以本地化。我接受社区翻译!如果你想贡献本地化或改进它们,请在Discord上联系。

否则,本地化文件位于 Bepinex/config/StarLevelSystems/localizations,可以使用 Jotunn的语言特定名称 创建新语言。

终端命令

星级等级系统提供了一些用于调试、测试和清理的终端命令。

  • [b]sls-killall [range:500][/b] - 杀死指定范围内的生物(默认500米),跳过玩家和驯服生物。
  • [b]sls-give-modifier [modifier_type:major] [modifier_name:fire][/b] - 给附近的生物指定的词缀(必须非常接近)。
  • [b]sls-dump-loottables[/b] - 将所有战利品表配置以SLS格式转储到 Bepinex/config/StarLevelSystems/LootTablesDump.yaml

API 使用 (WIP)

星级等级系统提供了一个公共API供其他模组交互。 该API目前允许读取、修改和管理生物属性修改器、颜色和等级。 查看API文档此处

我的其他一些模组

我也直接为Epic Loot做出贡献!如果你喜欢新功能和Bug修复,随时欢迎反馈。

安装(手动)

模组化的《英灵神殿》需要Bepinex来加载模组。如果你以前没有模组化过,或者想简化模组游戏的过程,我建议使用模组管理器。 Gale 是一个优秀的模组管理器。手动下载,安装并启动它。

如果你要手动操作,你需要确保已经安装了 来自Thunderstore的Bepinex,它包含了必要的配置。

准备好安装模组后,它们必须首先解压缩,然后放入 Bepinex/plugins 文件夹。

兼容性

  • 此模组与 Creature Level and Loot Control 不兼容(它们做的事情相同)

正在为以下模组开发兼容性:

  • CarryMeMaster
  • PortablePals

计划功能

此模组仍在积极开发中,尚未被视为完成。

计划功能:

  • 对现有词缀进行改进
  • 新词缀!
  • 对更多事物进行等级缩放
  • 通用和生物群系特定的战利品倍率
  • 一个Nemesis或迷你Boss生成系统
  • 基于Boss击杀的世界等级系统