为什么它不会从我的背包中移除我的物品
Why won't it remove my items from my Backpack
我要切入正题。每当此脚本执行时:
local hotkey = Enum.KeyCode.P
local plr = game.Players.LocalPlayer
local char = plr.Character
local backpackItems = plr.Backpack:GetChildren()
local UIS = game:GetService("UserInputService")
local open = false
UIS.InputBegan:Connect(function(key, gp)
if key.KeyCode == hotkey then
char.UpperTorso.CFrame = CFrame.new(132.109, -84.7, 22.002)
local takenItemsStorageFolder = Instance.new("Folder")
takenItemsStorageFolder.Parent = game.ReplicatedStorage
takenItemsStorageFolder.Name = "Removed Items From ".. plr.Name
backpackItems.Parent = takenItemsStorageFolder
end
end)
它会将你的玩家传送到地图上的某个位置,但是涉及变量“backpackItems”和“takenItemsStorageFolder 的行" 正在尝试移除玩家背包中的 tools/items。但是脚本不会在执行时完成此操作。
一些其他信息:
此脚本位于 ScreenGui 中的 TextLabel 中。
(如果需要更多信息)
我在这里看到两个问题:
您在脚本首次执行时创建了一个 table 背包物品。稍后当按下“P”按钮时,您希望将这些对象移动到 takenItemsStorageFolder。但此时 Backpack 文件夹中可能会有不同的项目。
您正在尝试将 backpackItems table 作为 takenItemsStorageFolder 对象的父级,但这不适用于 table。相反,您必须遍历实际对象(背包的子对象)和每个对象的父对象。
所以作为解决方案而不是
backpackItems.Parent = takenItemsStorageFolder
我建议你这样做:
for i,v in pairs(plr.Backpack:GetChildren()) do
v.Parent = takenItemsStorageFolder
end
我要切入正题。每当此脚本执行时:
local hotkey = Enum.KeyCode.P
local plr = game.Players.LocalPlayer
local char = plr.Character
local backpackItems = plr.Backpack:GetChildren()
local UIS = game:GetService("UserInputService")
local open = false
UIS.InputBegan:Connect(function(key, gp)
if key.KeyCode == hotkey then
char.UpperTorso.CFrame = CFrame.new(132.109, -84.7, 22.002)
local takenItemsStorageFolder = Instance.new("Folder")
takenItemsStorageFolder.Parent = game.ReplicatedStorage
takenItemsStorageFolder.Name = "Removed Items From ".. plr.Name
backpackItems.Parent = takenItemsStorageFolder
end
end)
它会将你的玩家传送到地图上的某个位置,但是涉及变量“backpackItems”和“takenItemsStorageFolder 的行" 正在尝试移除玩家背包中的 tools/items。但是脚本不会在执行时完成此操作。
一些其他信息:
此脚本位于 ScreenGui 中的 TextLabel 中。 (如果需要更多信息)
我在这里看到两个问题:
您在脚本首次执行时创建了一个 table 背包物品。稍后当按下“P”按钮时,您希望将这些对象移动到 takenItemsStorageFolder。但此时 Backpack 文件夹中可能会有不同的项目。
您正在尝试将 backpackItems table 作为 takenItemsStorageFolder 对象的父级,但这不适用于 table。相反,您必须遍历实际对象(背包的子对象)和每个对象的父对象。
所以作为解决方案而不是
backpackItems.Parent = takenItemsStorageFolder
我建议你这样做:
for i,v in pairs(plr.Backpack:GetChildren()) do
v.Parent = takenItemsStorageFolder
end