饥荒Mod 开发(十六):五格装备栏

饥荒Mod 开发(十五):小地图显示物品
饥荒Mod 开发(十七):手动保存和加载,无限重生
源码
饥荒中的装备栏只有3个实在太少了,手,头,身体。 身体上装备的物品会有冲突,很多不能一起装备,比如 衣服,项链,背包等。 而这三种物品又有自己不同的功能,所以急需扩展饥荒的装备栏,让游戏更丰富。
下图是饥荒目前的装备栏。

在这里插入图片描述

修改之后的效果图
在这里插入图片描述

准备贴图

这个png图片中包含了两个装备栏贴图,可以打开slots5.xml文件看到里面定义了两个。
在这里插入图片描述

加载资源文件

在modmian.lua 文件中加载资源

Assets = 
{
   
    Asset("IMAGE", "images/inventoryimages/slots5.tex"),
	Asset("ATLAS", "images/inventoryimages/slots5.xml"),
}

注入装备槽创建

默认情况下 装备槽只有3个,我们需要在主界面创建的过程中额外多创建2个槽。所以需要拦截 界面的创建

-- 增加两个物品栏
GLOBAL.EQUIPSLOTS.BACK = "back" -- 定义背包插槽
GLOBAL.EQUIPSLOTS.NECK = "neck" -- 定义项链插槽

-- 对"playerhud"类进行后构造
AddClassPostConstruct("screens/playerhud", function(self) 
    -- 保存原始的SetMainCharacter函数
    local oldfn = self.SetMainCharacter
    -- 重写SetMainCharacter函数
    function self:SetMainCharacter(maincharacter,...)
        -- 调用原始的SetMainCharacter函数
        oldfn(self, maincharacter,...)
        -- 检查是否可以注入
        if not(self.controls and self.controls.inv) then
            print("ERROR: Can't inject in screens/playerhud.")
            return
        end
        -- 添加背包插槽
        self.controls.inv:AddEquipSlot(GLOBAL.EQUIPSLOTS.BACK, "images/inventoryimages/slots5.xml", "back.tex")
  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值