这段代码在游戏开始时在地图上的某个区域内生成100只鸡,但其中一只玩家已经收集了所有的100只鸡,没有剩余的鸡可以收集,所以我想知道如何重新生成另外100只鸡,一旦剩余的鸡数量降到10只,那么玩家将有一个连续数量的鸡收集,希望这是有意义的,提前谢谢。jp
local newChicken = game.ServerStorage:FindFirstChild("ChickenOnePart")
local TopLeftCorner = Vector3.new(-187.64, 20.679, 106.2)
local BottomRightCorner = Vector3.new(201.12, 20.679, -241.45)
local numberOfChickens = 100
local counter = 0
local singleTonRandom = Random.new(tick())
local function GetRandom(Min,Max)
return singleTonRandom:NextNumber(Min,Max)
end
while counter < numberOfChickens do
local chicken = newChicken:Clone()
chicken.Anchored = true
chicken.Parent = game.Workspace
chicken.Name = "Chicken"
chicken.Position = Vector3.new(
GetRandom(TopLeftCorner.X,BottomRightCorner.X),
4,
GetRandom(TopLeftCorner.Z,BottomRightCorner.Z)
)
counter = counter + 1
end 这段代码在玩家每次触摸一只鸡时将计数器加1。我能从这里得到当前的鸡肉数量吗?
if hitPart.Name == "Chicken" then
event:FireServer(hitPart)
local currentcount = playerGUI.ChickenGui.ChickenCounter.Text
playerGUI.ChickenGui.ChickenCounter.Text = currentcount + 1
hitPart:Destroy()
debounce = true
wait(0.1)
debounce = false
end
end)这是用于更新前导的代码。
local event = Instance.new("RemoteEvent")
event.Name = "CurrencyAdd"
event.Parent = game.ReplicatedStorage
event.OnServerEvent:Connect(function(plr,part)
local currency = plr.leaderstats.Chickens
currency.Value = currency.Value + 1
end)
game.Players.PlayerAdded:Connect(function(plr)
local ls = Instance.new("Folder")
ls.Name = "leaderstats"
local m = Instance.new("IntValue",ls)
m.Name = "Chickens"
ls.Parent = plr
local cash = Instance.new("IntValue",ls)
cash.Name = "Cash"
end)@Piglet,谢谢你,我有点理解,这是你的意思吗?
local newChicken = game.ServerStorage:FindFirstChild("ChickenOnePart")
local TopLeftCorner = Vector3.new(-187.64, 20.679, 106.2)
local BottomRightCorner = Vector3.new(201.12, 20.679, -241.45)
local numberOfChickens = 100
local counter = 0
local singleTonRandom = Random.new(tick())
local function GetRandom(Min,Max)
return singleTonRandom:NextNumber(Min,Max)
end
for counter = 1, numberOfChickens do
local chicken = newChicken:Clone()
chicken.Anchored = true
chicken.Parent = game.Workspace
chicken.Name = "Chicken"
chicken.Position = Vector3.new(
GetRandom(TopLeftCorner.X,BottomRightCorner.X),
4,
GetRandom(TopLeftCorner.Z,BottomRightCorner.Z)
)
counter = counter + 1
end
function AddChicken(num)
for count = 10, num do
local chicken = newChicken:Clone()
chicken.Anchored = true
chicken.Parent = game.Workspace
chicken.Name = "Chicken"
chicken.Position = Vector3.new(
GetRandom(TopLeftCorner.X,BottomRightCorner.X),
4,
GetRandom(TopLeftCorner.Z,BottomRightCorner.Z)
)
end
end
AddChicken(90)很抱歉,我只是在学习这一切
发布于 2020-07-28 12:58:37
基本上,只需将while循环放在自己的函数中,然后在鸡的数量低于某个阈值时调用该函数,就像调用GetRandom将鸡放在适当的位置一样:
function GenerateChickens()
while counter < numberOfChickens do
local chicken = newChicken:Clone()
chicken.Anchored = true
chicken.Parent = game.Workspace
chicken.Name = "Chicken"
chicken.Position = Vector3.new(
GetRandom(TopLeftCorner.X,BottomRightCorner.X),
4,
GetRandom(TopLeftCorner.Z,BottomRightCorner.Z)
)
counter = counter + 1
end
end我不知道您如何获得当前的鸡肉数量,但这应该是一个很好的开始。
发布于 2020-07-28 18:48:19
由于这样的循环非常常见,因此有一种比以下形式更短的形式:
local counter = 0
while counter < numberOfChickens do
-- ...
counter = counter + 1
end这可以使用数字for循环来编写
for counter = 1, numberOfChickens do
-- ...
end当只剩下10只鸡的时候,再加100只鸡,就像你建议的那样,你会得到110只鸡。所以如果你想在地图上有100只鸡,你应该加90。
要做到这一点,您应该检查鸡肉计数,每当鸡被移走。一旦你的条件为真,你就应该调用一个函数来添加一定数量的鸡。
function AddChicken(num)
for count = 1, num do
local chicken = newChicken:Clone()
chicken.Anchored = true
chicken.Parent = game.Workspace
chicken.Name = "Chicken"
chicken.Position = Vector3.new(
GetRandom(TopLeftCorner.X,BottomRightCorner.X),
4,
GetRandom(TopLeftCorner.Z,BottomRightCorner.Z)
)
end
end只需确保函数在newChicken的作用域内
https://stackoverflow.com/questions/63126665
复制相似问题