在 LocalScript (Roblox LUA) 中创建抽象对象
Posted
技术标签:
【中文标题】在 LocalScript (Roblox LUA) 中创建抽象对象【英文标题】:Making an abstract object within a LocalScript (Roblox LUA) 【发布时间】:2017-06-15 23:39:40 【问题描述】:我正在尝试在游戏中添加金钱系统。我添加了一个脚本,当将孩子添加到播放器中时,它会在 LocalPlayer 内的 NumberValue 中提供 2500 美元。但是我不确定如何在脚本中创建 NumberValue 并且我不能使用 instance.new 因为 NumberValues 是抽象的。有什么想法吗?
编辑-这是我尝试过的一些代码,它克隆了一个预先存在的 NumberValue
function AddPlayer()
local Money = script.Parent.Money
local Clone = Money:Clone()
Clone.Parent = game.Players.LocalPlayer
Clone.Value = 2500
Clone.Name = "Money"
end
game.Players.ChildAdded:connect(AddPlayer)
【问题讨论】:
能否请您显示一些您尝试过的代码?照原样没有多大意义。 嗯,没有代码可以显示,它现在几乎是一个空函数和一个函数连接 首先,打开FilteringEnabled 并且不要对这些东西使用LocalScripts。这应该在服务器端完成 好吧,我只是假设因为它是玩家的事情,所以应该使用本地脚本。我也不是很热衷于本地脚本。现在也可以了,谢谢! 在本地处理诸如 UI 和鼠标/按键事件之类的事情时使用 LocalScripts,在处理诸如货币之类的可怕重要事情时,请将其保持在服务器端,这样人们就无法利用您的游戏。 【参考方案1】:我不知道NumberValues 是“抽象”是什么意思(澄清一下?)。但是应该没有什么可以阻止您使用Instance.new创建它
local Money = Instance.new("NumberValue")
Money.Name = "Money"
Money.Value = 2500
作为warspyking said,您应该在服务器上执行此操作,而you should have FilteringEnabled。
基本上用代码将普通脚本放在“Game.ServerScriptService”中:
game:GetService("Players").PlayerAdded:connect(function(player)
local Money = Instance.new("NumberValue")
Money.Name = "Money"
Money.Value = 2500
Money.Parent = player
end)
还需要注意的是,您应该使用PlayerAdded 而不是ChildAdded,因为PlayerAdded
仅在添加玩家时触发,而ChildAdded
也会在有人将垃圾放入Game.Players 时触发。
【讨论】:
以上是关于在 LocalScript (Roblox LUA) 中创建抽象对象的主要内容,如果未能解决你的问题,请参考以下文章