
经济调整
可配置的需求、供应和价格计算调整。 不可避免的饥荒问题已修复:与食品供应相关的可持续繁荣值。 可通过"config.xml"文件进行经济参数调节。
查看大图经济调整模组 by heu3becteh
虽然我喜欢游戏中的经济系统,但仍有改进空间以实现其潜力。
我尝试让游戏中的经济系统更加真实、合理且有趣。
需求、供应、繁荣度计算变更。库存增加。 金币转换为繁荣度的机制引入,需求对繁荣度的影响。 修复了驻军饥饿等令人不快的问题:繁荣度会随着粮食储备一同下降。
本模组所引入的更改列表
- 需求必须得到满足。在原版游戏中,未满足的需求会被直接忽略。使用此模组后,未满足的需求将影响繁荣度。
- 在需求计算过程中,明确考虑了工坊的需求。在原版游戏中,需求由繁荣度决定。自 e1.4.1 版本起进行了一些改动,但我认为明确处理工坊需求更为妥当。
- 繁荣与财富(黄金)相互关联,可相互转换,没有硬编码的人工城镇黄金生成-消失机制。在原版游戏中,城镇黄金会根据繁荣度进行生成-消失,以接近黄金 = 繁荣度 * 7 的比例,每日调整 20%。
- 当食物短缺时,繁荣度会在人们饿死前下降。在原版游戏中,只有饥饿和死亡会降低繁荣度。启用此模组后,食物短缺还会额外增加食物需求。
- 所有物资的库存量均有所增加(原材料产量提升 50%,基本需求减半,装备需求增加),启用此模组后,库存通常会被划分为较多或较少,而非有或无。
- 增加更多商队以运输更多的库存货物。
- 城镇会考虑满足需求的最佳库存量(N 天的需求量),如果当前库存量低于该值,价格会高于默认值;如果当前库存量高于该值,价格则会低于默认值。 当特定类别商品有盈余时,城镇会更快地消耗商品。 价格计算的简单逻辑:基础公式为(最佳库存量 + 需求量 + 1)/(实际库存量 + 需求量 + 1),它决定了价格乘数是大于 1 还是小于 1。价格乘数分为短期(每次购买物品时计算,仅考虑当前市场情况)和长期(每日计算变化,具有一定惯性)。这与原版游戏基本相同,但基础公式为需求量 /(0.1f * 供应量 + 实际库存量 * 0.04f + 2f),其中供应量是长期因素,实际库存量是短期因素。本模组使用的公式并没有特别的优势,但你可以注意到长期因素比短期因素更重要。在本模组中,为了更好地在地图上分配货物,短期因素更为重要。
- 每日价格变动采用了与未修改游戏不同的计算公式。在原版游戏中,惯性机制通过"新值 = 旧值 * 0.85 + 新值 * 0.15"的公式实现。
- 这种计算方式存在一个缺陷:数值上升速度比下降速度快。
- 因此,如果你向城镇大量出售某种商品(数量越大效果越明显),等待每日价格变动生效后再回购,惯性公式可能导致价格在一天内大幅上涨,但之后每天最多只能线性下降 15%。
- 现实中不会有人以低价向急需某种商品的城镇出售该商品。
- 商队甚至可能从饥荒城镇购买食物,仅仅因为价格便宜。 使用此模组后,惯性公式将改为新值 = 旧值 * (新值 / 旧值)^0.2,根据变化幅度,该公式能让数值更快下降,同时增长速度也会减缓。
讨论区
启用此模组后,繁荣度的变化速度通常会加快,使经济更具动态性。
然而,虽然波动更快,但它们会逐渐接近均衡状态,这种状态可能足够稳定,但并非静止不变。
虽然一些概念上的改动可能会引发争议,但这个模组解决了原版游戏中无论如何都应该解决的一些问题。
有了这个模组,经济系统将变得活跃并能够自我平衡,无需对所有内容进行硬编码限制,或在情况出错时频繁生成和销毁物品。
这同样适用于未修改的原版游戏,本模组并未改变其核心机制,但移除了一些限制,并引入了一些新机制/应用了可考虑的修复。
1、我希望看到游戏中的经济系统能让所有资源相互转化,而不是凭空消失或出现。
2、财富的来源应该是村庄生产的原材料和工坊生产的附加值。
3、消耗财富的途径包括人类的破坏性行为、未满足的需求以及饥荒。
这个模组致力于更接近这一目标。
也许在没有限制和必要事物的生成-消失机制下,某些东西可能会出问题,但我没发现这种情况发生的可能性(除非存在某种漏洞),并且在测试期间也没有遇到类似情况。
各项设定是平衡的,如果某一方面出现问题,其他方面会将其修正。
随着补丁的推出,经济系统变得越来越好,即使没有任何模组也具备极大的趣味潜力。我希望在开发过程中,一些来自修改版的解决方案也能帮助提升原版游戏的质量。
存档兼容性
该模组不会创建任何额外的存档数据(这会导致重复保存加载时某些情况有所不同),因此不会损坏存档。
启用此模组后,需要一段时间让经济趋于稳定。
该模组会改变供需与繁荣度的关系,因此停用模组后,也需要一定时间才能使系统在不依赖模组的情况下重新恢复稳定。
模组兼容性
请检查此模组编译所针对的游戏版本。在其他游戏版本中可能无法按预期运行。
该模组构建的版本号在此模组版本中标注:1.游戏版本.特定游戏版本的模组版本。
如果您安装的版本不兼容,应该不会造成重大问题(改动不大,且我已尝试添加了一些安全措施)。
在某些情况下,在我添加这些措施之前,DisableSupplyDemandInertia 子模组应能完全消除本模组可能造成的所有持久性更改。
该模组可能会与替换(非后缀/前缀)以下相同方法的其他模组发生冲突。 这可能与依赖补给变量的模组产生冲突。 除此之外,它应该与大多数内容兼容。
- 本模组修改了估算供需关系的方法,但基础机制与原版游戏相同,结果呈现相似,除了供应变量(原为城镇物品类别的存量数量/价值并带有惯性)。在该模组中,该变量被替换为乘数,因为当它被 GetBasePriceFactor() 调用时,并未指明城镇数据。 这个模组几乎不会与任何不使用补给变量的模组产生冲突。 如果供需变量在被调用之前用于存储其他数据,此模组将出现问题。 已更改的方法:GetDailyDemandForCategory() 已替换,GetSupplyDemandForCategory() 已替换,GetBasePriceFactor() 已替换,MakeConsumption() 已替换,部分值通过字典传递至 CalculateProsperityChange()。
- 该模组在默认值后添加繁荣度变化作为后缀,使繁荣度数值更具动态性。 由于它是后缀形式,应该不会影响任何内容,也不会对任何模组造成问题。 如果繁荣度-金币变量在调用前被用于存储其他数据,此模组将出现问题。 已更改方法:CalculateProsperityChange() 后缀,GetTownGoldChange() 被替换。
- 此模组将村庄产量提升 50%。CalculateDailyProductionAmount() 后缀,将结果乘以 ProductionMultiplier = 1.5。 由于它是后缀,所以不会影响任何内容,也不会给任何模组带来问题。 如果生产变量在调用前被用于存储其他数据,此模组将会出现问题。 已更改的方法:CalculateDailyProductionAmount() 后缀。
- 此模组允许英雄最多拥有 2 支商队。 不会引发问题,它仅使得当 hero_OwnedCaravans.Count() = 1 时,SpawnCaravans() 能够返回 true。 已更改方法:SpawnCaravans() 被替换。
安装
将 zip 压缩包的内容解压到 "...\Mount & Blade II Bannerlord\Modules" 目录下。
设置
您可以在 "...\Mount & Blade II Bannerlord\Modules\EconomyTweak_h\config.xml" 文件中修改模组设置。
链接
TaleWorlds 论坛上的模组: https://forums.taleworlds.com/index.php?threads/economy-tweak.425829/
2021 年 2 月 4 日
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。