如何制作基础系统? -- Roblox Lua
Posted
技术标签:
【中文标题】如何制作基础系统? -- Roblox Lua【英文标题】:How to make a base system? -- Roblox Lua 【发布时间】:2022-01-24 02:06:12 【问题描述】:我正在尝试创建一个系统,当玩家加入时,他们会获得一个基地,然后其他玩家就无法使用该基地。
这是我在脚本的父模块中的模块:
local Functions =
function Functions.findOpenBase(plr)
local bases = workspace.Bases
for i,v in pairs(bases:GetChildren()) do
if v:IsA("Part") then
print("Searching..")
if plr.alreadyOwnsBase.Value == false then
if v.Owner.Value ~= nil then
print("Base found!")
v.Owner.Value = plr.Name
plr.alreadyOwnsBase.Value = true
else
warn("error")
plr:Kick("error finding base, Please Rejoin.")
end
end
else
print("cannot claim another base")
end
end
end
return Functions
然后这是我的处理程序脚本:
local module = require(script.Functions)
game.Players.PlayerAdded:Connect(function(plr)
local alreadyOwnsBase = Instance.new("BoolValue", plr)
alreadyOwnsBase.Name = "alreadyOwnsBase"
alreadyOwnsBase.Value = false
if plr then
module.findOpenBase(plr)
print(plr.Name)
end
end)
有什么解决办法吗?
【问题讨论】:
错误是2个玩家加入时只有一个被分配了一个基地 【参考方案1】:对我来说,脚本中的模块:
local Functions =
function Functions.findOpenBase(plr)
-- check it first.
if plr.alreadyOwnsBase.Value == false then
local bases = workspace.Bases
for i,v in pairs(bases:GetChildren()) do
print("Searching..")
if v:IsA("Part") then
if v.Owner.Value ~= nil then
print("Base found!")
v.Owner.Value = plr.Name
plr.alreadyOwnsBase.Value = true
-- get it, jump the loop
break
end
else
print("cannot claim another base")
end
end
end
-- and plr.alreadyOwnsBase.Value is the flag of the result
if plr.alreadyOwnsBase.Value == false then
warn("error")
plr:Kick("error finding base, Please Rejoin.")
end
end
return Functions
和处理程序脚本:
local module = require(script.Functions)
game.Players.PlayerAdded:Connect(function(plr)
local alreadyOwnsBase = Instance.new("BoolValue", plr)
alreadyOwnsBase.Name = "alreadyOwnsBase"
alreadyOwnsBase.Value = false
if plr then
module.findOpenBase(plr)
-- check the flag
if plr.alreadyOwnsBase.Value then
print(plr.Name)
end
end
end)
【讨论】:
那行不通 所以,当你跑到plr:Kick("errorfinding base, Please Rejoin.")时,你应该创建一个新的base。以上是关于如何制作基础系统? -- Roblox Lua的主要内容,如果未能解决你的问题,请参考以下文章
在 LocalScript (Roblox LUA) 中创建抽象对象