2

存储服务用于存储玩家的数据,在玩家下次进游戏时可以读取这些数据

使用存储服务做一个登录次数的提示,步骤如下:

第一步:
在界面初始化中创建2D界面容器,并在容器下创建文本控件和一个按钮控件,调整控件的位置和大小,方便观察。文本框用来显示玩家登录时提示的文字,按钮用来点击更新和保存登录次数数值。界面如下:

image.png

第二步:
在玩家初始化->玩家初始化脚本下增加客户端脚本。

1.png

代码如下:

local uipanel = GameUI.欢迎--获取界面容器
local uitxt = uipanel.登陆--获取登录按钮
local savebutton = uipanel.保存--获取保存按钮
MessageEvent.ClientEventCallBack("显示欢迎界面"):Connect(function(loadtime)--显示登录提示界面的
    local person = Players:GetLocalPlayer()--获取玩家 
    uitxt.Text = "尊敬的"..person.Name.."欢迎第"..loadtime.."次登陆游戏!"--设置显示文本
end)
savebutton.OnClick:Connect(function()--保存按钮点击触发保存游戏方法
    uipanel.IsVisable = false--关闭界面
    MessageEvent.FireServer("保存游戏")--发送消息至服务器保存游戏    
end)

第三步:
在服务器逻辑中增加服务器代码:

Players.PlayerAdded:Connect(function(Uid) --玩家加载时触发
    local player = Players:GetPlayerByUserId(Uid)--获取玩家实体
    local timeplay = RWObject.Create("IntValue")--插入一个整数值
    local key = Uid.."timeplay"--定义一个key
    timeplay.Name = "TimePlay"
    local  saveValue = PlayerStoreData:GetValue(Uid, key)
    if saveValue then--获取存储在服务器中的值
        timeplay.Value = PlayerStoreData:GetValue(Uid, key)
        print("获取存储值")
    else
        timeplay.Value = 1
        print("自定义存储值")
    end
    PlayerStoreData:SetValue(Uid, key, timeplay.Value)--重新设置存储在服务器中的值
    timeplay.Parent = WorkSpace
    player.AvatarAdded:Connect(function(avatar)  -- 角色被加载显示客户端
        MessageEvent.FireClient(Uid,"显示欢迎界面",timeplay.Value)
    end)
end)
function SaveTime(plrid)--定义保存游戏次数的方法
    local key = plrid.."timeplay"--定义一个key
    WorkSpace:WaitForChild("TimePlay").Value = WorkSpace:WaitForChild("TimePlay").Value + 1--值加1
    PlayerStoreData:SetValue(plrid, key, WorkSpace.TimePlay.Value)--重新设置存储在服务器中的值
end
MessageEvent.ServerEventCallBack("保存游戏"):Connect(SaveTime)--接收消息后执行保存方法

第四步:
存储的服务测试需要将游戏发布后再手机端进行测试。点击编辑界面z左上角的发布按钮,并跟随步骤将游戏发布。

image.png
image.png

第五步:打开手机端APP,在我的中找到发布的游戏,进入游戏。

WZ01.jpg

第六步:观察提示的登录次数,然后点击按钮。之后点击左上角的齿轮按钮退出游戏。然后再次进入游戏,观察提示的登录次数。
图片.png


Reworld
38 声望18 粉丝

《Reworld重启世界》是一款专为年轻人打造的游戏创造和社交平台,它由两部分组成:一部分是PC端的游戏编辑器,作为创作者的生产工具;另一部分是移动端的游戏社区,作为玩家的社交平台。