【发布时间】:2023-02-07 00:49:02
【问题描述】:
我正在考虑制作游戏,但想不出办法: 比方说,您想在游戏中制作可骑乘的马匹,但只有拥有某匹马匹的玩家才能骑乘。
我考虑过给马起不同的名字,然后将它们分配给玩家。显然,会有很多匹马,那么多的名字……想都别想。然后我面临一个问题:如何使过程自动化,以便每个新玩家都能毫无问题地获得他们的马?
【问题讨论】:
标签: roblox roblox-studio
我正在考虑制作游戏,但想不出办法: 比方说,您想在游戏中制作可骑乘的马匹,但只有拥有某匹马匹的玩家才能骑乘。
我考虑过给马起不同的名字,然后将它们分配给玩家。显然,会有很多匹马,那么多的名字……想都别想。然后我面临一个问题:如何使过程自动化,以便每个新玩家都能毫无问题地获得他们的马?
【问题讨论】:
标签: roblox roblox-studio
解决这个问题的几种方法:
使用数据存储并为每个用户准备一组马。马将希望以唯一的名称/ID 命名。有关数据存储文档,请参阅https://create.roblox.com/docs/scripting/data/data-stores。 每次你想检查玩家是否拥有一匹马时,你都可以查询数据存储。这样做的好处是每次玩家重新加入时都会保存它。
您还可以将玩家马匹数组保存在玩家对象内的值实例中,再次为每匹马分配一个唯一的名称/ID。然后在每次您希望检查玩家是否拥有一匹马时引用此实例。这种方法的缺点是数据不会在会话之间保存。
最后,我推荐的方法是两种方法的混合。当玩家加入时,将他们的马保存在数据存储中,但也如解决方案 2 中那样保存在值实例中。然后在游戏过程中,您可以引用该值实例。当玩家离开时和/或每隔几分钟,您可以将值实例的内容保存到数据存储区。我推荐这种方法的原因是因为您最终可能会受到可以向 Roblox 的数据存储区发出的请求数量的限制数据存储有时会变得非常复杂,尤其是涉及到pcalls 时。通常,您应该避免在短时间内发出过多的数据存储请求。
【讨论】: