如何在知道玩家用户名的时候保存玩家数据到本地(可用于数据存储跟迁移)

首先需要获取玩家的用户名或者ID,如果有ID的话可以直接跳过这一步,如果没有玩家ID的话需要让玩家提供用户名,也就是这个东西:


获取了玩家的用户名之后,在studio的控制台输入以下指令就可以把玩家的用户名转成玩家的ID
print(“ID:”… game.Players:GetUserIdFromNameAsync(“这里放玩家的用户名”))
image
在得到了玩家的ID之后,就需要使用 DataStore Editor这个插件来获取玩家当前的存档了(当然你通过GetAsync来手动拉取玩家存档也可以,不过这样十分麻烦。)
DataStore Editor插件链接在这里:DataStore Editor - Roblox
使用插件之前,你需要保证你的游戏设置的安全选项内打开了允许studio访问游戏API服务image
首先打开你的游戏项目,之后找到插件image
打开,就可以看到以下界面:image
你需要在name里面输入你存档的名称,也就是你脚本中GetDataStore后面的那个名称4HB5$F)0M7FUBU%V%0_DSA
之后你就需要输入key来获取玩家的存档image
这个key,也就是你SetAsync的内容,比如我这里就是玩家的userIDimage
在填入key之后就可以看到玩家的数据了。image
这时候,点击右上角的传出按钮,就可以把玩家当前datastrore里面的所有数据存储到本地。
image

image
这时候,我们就有了玩家的存档数据了。如果说你想要把玩家的存档数据迁移到国际服,或者其他地方,只需要
点击导入image
然后选择你存储的玩家数据的lua文件,
之后就可以发现玩家的数据已经成功上传了。但是到这一步还没有结束,为了防止你错误修改,插件里面显示的还只是临时数据,我们需要点击保存按钮image
数据才会真正的同步到服务器。
有什么问题欢迎QQ或者微信联系我,我是小马,咱们下次再见。

1 个赞

目前还有几个问题没有解决,
1是因为roblox存档的问题,除非你是有序存档,否则无法把所有玩家的存档拉出来,只能通过存储的key手动拉取存档。
2是这插件收费,而且对于本身用国服studio而且不是国际服studio的人可能不那么友好,不过官方那边好像已经把这个插件上架到国服studio了,所以都可以使用。
3是需要玩家联系来提供用户名才可以。用户名需要进入国服,打开设置点击玩家信息才能找到,注意是用户名不是displayname。而且今晚玩家就没法进国服APP了,所以还是要让玩家尽早提供自己的用户名的。

关于我们    加入我们    条款    隐私政策
©2021 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。
粤ICP备20013629号