我一直收到这个错误,我不知道它是什么

I keep getting this error and I don't know what it is

好的,我制作了一个提供随机武器的 roblox 脚本,它是用 Lua 编写的 我一直收到这个错误

script.Parent.MouseButton1Click:connect(function(player)
   local BackPack = player.BackPack
   wait(0.5)
   if player.Leaderstats.Money >= 100 then
      local randomizer = math.random(0,10)
      if randomizer == 1 then
         local knife1 = game.Lighting.CookieKnife:Clone()
         knife1.Parent = BackPack
      elseif randomizer == 2 then
         local knife2 = game.Lighting.Cleaver:Clone()
         knife2.Parent = BackPack
      elseif randomizer == 3 then
         local knife3 = game.Lighting.RustyCleaver:Clone()
         knife3.Parent = BackPack
      elseif randomizer == 4 then
         local knife4 = game.Lighting.WhiteCleaver:Clone()
         knife4.Parent = BackPack
      elseif randomizer == 5 then
         local knife5 = game.Lighting["Sparkley Knife"]:Clone()
         knife5.Parent = BackPack   
      elseif randomizer == 6 then
         local knife6 = game.Lighting.CommonKnife:Clone()
         knife6.Parent = BackPack
      elseif randomizer == 7 then
         local knife7 = game.Lighting.CommonKnife:Clone()
         knife7.Parent = BackPack
      elseif randomizer == 8 then
         local knife8 = game.Lighting.CookieKnife:Clone()
         knife8.Parent = BackPack
      elseif randomizer == 9 then
         local knife9 = game.Lighting.ExpensiveKnife:Clone()
         knife9.Parent = BackPack
      elseif randomizer == 10 then
         local knife10 = game.Lighting.CookieKnife:Clone()
         knife10.Parent = BackPack
      end
   end  
end)

好的,我制作了一个提供随机武器的 roblox 脚本,它是用 Lua 编写的 我一直收到这个错误

12:40:50.574 - Players.Player1.PlayerGui.Shop.Main.Frame.RCK.randomweapons2:2: attempt to index global 'player' (a nil value) 12:40:50.575 - Stack Begin 12:40:50.576 - Script 'Players.Player1.PlayerGui.Shop.Main.Frame.RCK.randomweapons2', Line 2 12:40:50.576 - Stack End

.MouseButton1Click 事件没有将 player 作为参数传递,将 player 定义为 game.Players.LocalPlayer 就可以避免你遇到的问题faced with 定义为 player 是一个 nil 值,因为没有参数随事件传递。如果你的理由是因为它是一个 surface/billboard GUI,那么只需将 GUI 作为玩家 PlayerGui 的父级(将其放入 StarterGui)并将 GUI 的装饰设置为它所在的部分以前在。这是固定代码:

local player = game.Players.LocalPlayer
script.Parent.MouseButton1Click:connect(function()
   local BackPack = player.BackPack
   wait(0.5)
   if player.Leaderstats.Money >= 100 then
      local randomizer = math.random(0,10)
      if randomizer == 1 then
         local knife1 = game.Lighting.CookieKnife:Clone()
         knife1.Parent = BackPack
      elseif randomizer == 2 then
         local knife2 = game.Lighting.Cleaver:Clone()
         knife2.Parent = BackPack
      elseif randomizer == 3 then
         local knife3 = game.Lighting.RustyCleaver:Clone()
         knife3.Parent = BackPack
      elseif randomizer == 4 then
         local knife4 = game.Lighting.WhiteCleaver:Clone()
         knife4.Parent = BackPack
      elseif randomizer == 5 then
         local knife5 = game.Lighting["Sparkley Knife"]:Clone()
         knife5.Parent = BackPack   
      elseif randomizer == 6 then
         local knife6 = game.Lighting.CommonKnife:Clone()
         knife6.Parent = BackPack
      elseif randomizer == 7 then
         local knife7 = game.Lighting.CommonKnife:Clone()
         knife7.Parent = BackPack
      elseif randomizer == 8 then
         local knife8 = game.Lighting.CookieKnife:Clone()
         knife8.Parent = BackPack
      elseif randomizer == 9 then
         local knife9 = game.Lighting.ExpensiveKnife:Clone()
         knife9.Parent = BackPack
      elseif randomizer == 10 then
         local knife10 = game.Lighting.CookieKnife:Clone()
         knife10.Parent = BackPack
      end
   end  
end)

希望对您有所帮助!