所以我试图根据玩家所在的团队为他们提供不同的武器。我试图通过创建一个实例字符串值并将其添加到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()