饥荒Mod 开发(十一):修改物品堆叠

饥荒Mod 开发(十):制作一把AOE武器
饥荒Mod 开发(十二):一键制作

饥荒中物品栏有限,要拾取的物品有很多,经常装不下要忍痛丢掉各种东西,即使可以将物品放在仓库但是使用不方便,所以可以将物品的堆叠个数设置大一些,这样 一种物品无论多少只需要占用一个格式,节省空间。

同一个物品占用多个格子

堆叠组件

为什么有的物品可以放在一个格子,有个物品却不能,比如树枝,草,种子可以放在一个格子,但是兔子, 鸟就只能单独的房一个格子呢?主要是因为树枝,草,种子等有 "stackable" 组件,这个组件就说明物品可以堆叠,并且可以设置堆叠的个数。默认是20个

// D:\WeGameApps\rail_apps\饥荒:单机版(2000013)\data\scripts\components\stackable.lua

1.1 种子的堆叠设置

1.2 粪肥的堆叠设置

粪肥没有设置最大堆叠个数,所以默认是20个

修改物品堆叠个数

从上面可以看出每一种物品的堆叠个数都是在源码中设置的,我们不能直接修改源码,但是我们可以通过注入的方式来间接修改物品组件的属性,我们可以将最大堆叠个数修改为999。在modmain.lua 中增加下面代码

lua 复制代码
--监听所有预制物的构造
AddPrefabPostInitAny(function(inst)
    --如果可以堆叠
    if inst.components.stackable then
        --设置最大堆叠999
        inst.components.stackable.maxsize = 999
    end
end)

使物品可堆叠

有些物品是无法堆叠的,比如 鸟,乌鸦等, 根据上面的介绍是因为物品没有堆叠组件,所以只需要给物品添加堆叠组件,并且设置最大堆叠次数就可以。

lua 复制代码
--监听所有预制物的构造
AddPrefabPostInitAny(function(inst)
    --如果可以堆叠
    if inst.components.stackable then
        --设置最大堆叠999
        inst.components.stackable.maxsize = 999
    else 
        --如果不可以堆叠,添加堆叠组件并设置最大堆叠个数999个
        inst:AddComponent("stackable") 
        inst.components.stackable.maxsize = 999
    end
end)

通过上面简单的修改就可以将物品的堆叠个数设置为999, 大大减少了物品栏的使用

相关推荐
全职计算机毕业设计1 天前
设计属于自己的古代纸币 古代纸币H5交互设计游戏
游戏
共享家95271 天前
打造AI智能”成语接龙“游戏
前端·javascript·人工智能·python·游戏·html
云边散步1 天前
godot2D游戏教程系列二(5)
笔记·学习·游戏·游戏开发
CCIE-Yasuo1 天前
高性能游戏本“三角洲行动瞬间卡顿”与“英雄联盟网络卡死”双疑难杂症:全链路诊断与根除报告(后面都有工具清单)
网络·游戏·排故
TESmart碲视1 天前
如何用一套键盘鼠标切换多个输入设备?TESmart KVM热键工作原理深度解析.一份涵盖设计原理、使用方法与兼容性的完整技术指南
游戏·macos·计算机外设·kvm切换器·双屏kvm切换器
云边散步1 天前
godot2D游戏教程系列二(6)
学习·游戏·游戏开发
User_芊芊君子1 天前
2026年1月UU远程深度测评:远控综合实力首选,全功能覆盖下的性能与体验双重突破
人工智能·游戏·ai·测评
2501_901147832 天前
跳跃游戏 II | 贪心算法最优解(最少跳跃次数)
算法·游戏·贪心算法
想做后端的前端2 天前
Lua的热更新
开发语言·lua
Axis tech2 天前
Xsens虚拟动作捕捉技术在影视、游戏、动画中的应用
游戏