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

本文介绍如何通过Mod开发扩展饥荒的装备栏,从原本的3格增加到5格,详细讲解了从准备贴图、加载资源到修改装备位置的整个过程,特别处理了项链和背包的装备逻辑,以及解决"重生护符"的特殊问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

饥荒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"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值