饥荒Mod 开发(十七):手动保存和加载,无限重生

饥荒Mod 开发(十六):五格装备栏
饥荒Mod 开发(十八):Mod 添加配置选项

饥荒游戏会自动保存,本来是一个好的机制,但是当角色死亡的时候存档会被删除,又要从头开始,有可能一不小心玩了很久的档就直接给整没了,又或者是打怪没爆好东西, 需要SL 大法。打怪之前手动保存一下,如果没有 掉落 有用的物品可以手动加载,一直到掉落有用的物品的时候。

手动保存

当我们按下 键盘 F5 的时候可以触发保存,在modmain.lua 增加下面代码

lua 复制代码
GLOBAL.TheInput:AddKeyHandler(function(key, down)
   if key == GLOBAL.KEY_F5 and not down then
        GLOBAL.GetPlayer().components.autosaver:DoSave()
    end
end)

进入游戏之后,按下F5 按键即可手动保存

手动加载

按下F6键可以触发手动加载

lua 复制代码
GLOBAL.TheInput:AddKeyHandler(function(key, down)
    if key == GLOBAL.KEY_F5 and not down then
        GLOBAL.GetPlayer().components.autosaver:DoSave()
    elseif key == GLOBAL.KEY_F6 and not down then
        GLOBAL.Settings.save_slot = GLOBAL.SaveGameIndex.saveslot
        GLOBAL.SetPause(true)
        GLOBAL.StartNextInstance({reset_action=GLOBAL.RESET_ACTION.LOAD_SLOT, save_slot = GLOBAL.SaveGameIndex:GetCurrentSaveSlot()}, true)
        GLOBAL.SetPause(false)   
    end
end)

死亡不删档

需要重写删档函数,当角色死亡的时候,重新加载游戏回到上一个存档。在modmain.lua 文件中添加下面代码

lua 复制代码
-- 重写全局的SaveIndex对象上方法 EraseCurrent
function GLOBAL.SaveIndex:EraseCurrent(cb)
    -- 获取当前的玩家,并在2秒后执行一个任务
    GLOBAL.GetPlayer():DoTaskInTime(2, function()
        -- 使前端界面进行淡出
        GLOBAL.TheFrontEnd:Fade(false,1)
    end )
    -- 获取当前的玩家,并在5秒后执行一个任务
    GLOBAL.GetPlayer():DoTaskInTime(5, function()
        -- 启动下一个实例,重置动作为加载存档,存档槽为当前的存档槽
        GLOBAL.StartNextInstance({reset_action=GLOBAL.RESET_ACTION.LOAD_SLOT, save_slot = GLOBAL.SaveGameIndex:GetCurrentSaveSlot()}, true)
    end )
end

上面代码添加完成之后角色就会无限重生,每次死亡都会回到上一次的存档。

相关推荐
魔术师Dix8 小时前
一个轮子:Luban Skill 制作演示
游戏·unity·ai编程
极客侃科技9 小时前
游戏本办公两用笔记本推荐,来酷斗战者 战7000P 酷睿版兼顾两种需求
游戏
ownkss10 小时前
游戏买量素材测试方法:核心逻辑、执行步骤与关键指标
游戏
山东布谷网络科技1 天前
靠“社交+游戏”突围:中东语聊APP前景预测与低成本运营案例
人工智能·游戏
郝学胜-神的一滴1 天前
[简化版 GAMES 104] 现代游戏引擎 04:从0到1构建你的游戏世界
c++·游戏·unity·游戏引擎·软件工程·unreal engine
灼灼其华tzl1 天前
飞机大战游戏1
游戏
爱勇宝1 天前
《完蛋!我被男同学包围了》为什么会火?不只是因为“高中生玩票”
游戏·游戏开发
中国搜索直付通1 天前
游戏车机端支付通道,会是下一个被低估的合规战场吗?
java·大数据·开发语言·人工智能·游戏
humors2212 天前
支付宝游戏频道《灵画师》体验
游戏·介绍·体验·攻略·灵画师·试玩
智购科技自动售卖机厂家2 天前
从STM32到RK3588——自动售货机嵌入式主控方案的架构演进~YH
stm32·嵌入式硬件·物联网·架构·lua·零售·symfony