【求助】关于无视保存永久更改的一些问题



  • 如题,我想实现玩家和一个npc对话了解他的名字后将靠近他会显示的名字从 “???“ 变为 ”灰心哥“ 的功能。
    目前我使用的思路是在npc头上加一个文字框,然后对话后改变文字显示内容。但只要场景切换再回来文字框会重新变为”???“。
    我想知道有没有办法可以对话一次之后就一直改变的办法。

    向各位大佬请教一下方法或思路。如果有前人发过同类型帖子有解决办法,也可以指个路,谢谢。



  • @用户110530052 这个问题其实能涉及到很多东西,最多可以深入到程序设计思路方面;不过,对于这个具体的问题,有一些简单的思路可以参考:
    1.如果只是需要场景切换保持不变,可以给对象添加“保持状态”能力;这个能力的官方教程: https://evkworld.cn/learn/252 ,它的作用就是在场景重载时保持之前的状态
    2.这种方法可能在重启游戏后失效,如果需要永久保存,则应单独将对象的状态保存下来,并且在每次场景重载时刷新其状态。
    例如,你的文本需要从???改为“灰心哥”,那么可以使用数组、静态变量等方式保存其状态,可以在数组中添加一个元素,并自己定义其值的映射关系,例如1为显示“灰心哥”,-1为显示???
    然后,每次重新加载存档或场景时,比较这个元素的值,然后根据这个值来设置文本内容;
    最后,当你靠近NPC时会自动更改文本,这个时候需要更改数组和文本,并且将数组内容通过本地储存组件保存下来,这样下次启动游戏时就可以再次读取回之前的数值。



  • @zjxdiu 感谢大佬提供的思路
    问题已经解决,目前我使用的方法是在场景切换后存档,再次进入场景读档,这样玩家在本场景内操作可以保存。



  • @zjxdiu 但我刚刚在用存档实现功能时把一个存档死档了(就是让玩家离开场景存档,再次进入时读取。我的失误让玩家角色不可以移动,导致在预览中第二次进入场景后没办法操控)
    并且我用这个办法处理 灰心哥 名字,在我退出预览甚至退出唤境后再次预览,没有???就直接是 灰心哥 名字了。我类似一个玩家在不断推进游戏进度,而不是一个开发者可以从强制的存档之前从头开始游戏。
    第一个问题我是修改了存档名字绕过去的,然后就面临了第二种情况。我想知道有没有什么办法可以在预览时是全新的游戏,与可以删除废弃的存档数据?



  • @用户110530052 这个主要看你是怎么实现存档功能的了;如果使用的是系统里的保存和读取,我记得在保存时有一个输入存档名称,这个可以用于重置当前已保存的存档:先使用单幕预览进入其他场景,然后使用一个按钮或者某种动作,在还未读档的情况下将已经存在的存档覆盖掉,应该就能实现重置的效果;系统的条件里也有一个“处于预览模式时”,可以用于控制后续的动作(例如当处于预览时就不读档、不存档)。
    不过,相对来说我可能更推荐使用本地储存组件来实现存档,但是实现起来比较麻烦,不如直接保存和读取方便。





  • @用户110530052 undefined



  • @用户110530052 undefined



  • 按照图一的方法,我试了一下,结果地图场景开始时直接跳到图一的页面了。
    预览状态中 选项找到了,回头试试这个选项。
    存档方案可行但到后面会十分臃肿不方便,如果不行的话还是试试大佬你的数组方案。



  • @草汁 这里的写法有点问题,我印象中本地储存和存档动作是两个独立的功能,清除储存的动作应该不能重置存档。
    存档和读取相当于是给游戏创建快照,读取的时候就是恢复快照,连带着所有的状态(甚至可能包括事件进行到了哪里);而本地储存则只能自己使用事件,一次存储一个键值对,使用的时候需要手动获取



  • 这个在对话框引用全局变量更简单,用法是 @[全局变量]


登录后回复