如何调用复制存储中的函数



所以我试图根据玩家所在的团队为他们提供不同的武器。我试图通过创建一个实例字符串值并将其添加到ReplicatedStorage中玩家名称的文件夹中来实现这一点,但它只会在玩家一侧更新,而不会在服务器上更新。我试图通过在ReplicatedStorage中制作一个脚本并调用名为handleTeams的函数来解决这个问题,但我总是收到一个错误,说handleTeams不是脚本的子级。

LocalScript(LocalScript((玩家>玩家1>玩家界面>插入对象>团队>俄罗斯(

local p = script.Parent.Parent.Parent.Parent.Parent.Name
script.Parent.MouseButton1Click:Connect(function()
game.Players[p].TeamColor = BrickColor.new("Really blue")
game.Workspace[p].Humanoid.Health = 0
script.Parent.Parent.Parent.Enabled = false

local Player = Instance.new("Folder")
local GameTag = Instance.new("StringValue")
GameTag.Value = "USA"
GameTag.Name = "TeamName"

Player.Name = game.Players:FindFirstChild(p).Name
script.Parent.Parent.Parent.Parent.Parent.Parent.Parent.ReplicatedStorage.Script(Player, GameTag)
end)

TeamGear(脚本((工作区>TeamGear(

function onSpawned(plr) 
if script.Parent.Parent.ReplicatedStorage.Teams[plr.Name].TeamName == "Russia" then
local tools = script.Parent.Parent.Teams.Russia:GetChildren()
for _,c in pairs(tools) do 
c:Clone().Parent = plr.Backpack 
end 
end
if script.Parent.Parent.ReplicatedStorage.Teams[plr.Name].TeamName == "USA" then
local tools = script.Parent.Parent.Teams.USA:GetChildren()
for _,c in pairs(tools) do 
c:Clone().Parent = plr.Backpack 
end 
end
end 

脚本(Script((ReplicatedStorage>Script(

function handleTeams(player, tag)
player.Parent = script.Parent.Teams
tag.Parent = player
end

如果您想在ReplicatedStorage中定义一个可以从其他脚本调用的脚本,它必须是ModuleScript

例如,如果你想在CCD_ 5中有一个脚本;Hello World";,然后你可以创建一个ModuleScript(而不是脚本(,如下所示:

ReplicatedStorage > ModuleScript

local module = {}
function module.Hello()
print("Hello, World!")
end
return module

然后从LocalScript或Script中,你可以这样称呼它:

local HelloModule = require(game.ReplicatedStorage:WaitForChild("ModuleScript"))
HelloModule.Hello()

相关内容

  • 没有找到相关文章

最新更新