Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game.Players
- Players.PlayerAdded:Connect(function(player)
- local playerData = workspace.PlayerData:Clone()
- playerData.Parent = player
- playerData.Name = "Data"
- player.CharacterAdded:Connect(function(char)
- -- reset every time the character respawns
- for _, stackValue in playerData.Stacks:GetChildren() do
- stackValue.Value = 0
- end
- local itemStack = Instance.new("Folder")
- itemStack.Name = "ItemStack"
- itemStack.Parent = char
- end)
- end)
- for _, vm in workspace.VendingMachines:GetChildren() do
- local proxPrompt = vm:FindFirstChild("ProximityPrompt", true):: ProximityPrompt
- proxPrompt.Triggered:Connect(function(player)
- local character = player.Character
- local itemStack: Folder = character.ItemStack
- local itemStackArray: {Model} = character.ItemStack:GetChildren()
- local stackSize = #itemStackArray
- local item = vm:FindFirstChildOfClass("Model")
- local newItem = item:Clone()
- local itemValue = player.Data.Stacks[newItem.Name]
- if itemValue.Value >= 5 then
- return
- end
- local finalPivot
- if stackSize >= 1 then
- local previousItem = itemStackArray[stackSize] :: Model
- local prevItemPivot = previousItem:GetPivot()
- local prevItemSizeY = previousItem:GetExtentsSize().Y
- local newItemSizeY = newItem:GetExtentsSize().Y
- finalPivot = prevItemPivot * CFrame.new(0, (prevItemSizeY + newItemSizeY) / 2, 0)
- else
- local offsetInfrontOfPlayer = character:GetPivot().LookVector * 2.5
- finalPivot = CFrame.new(character:GetPivot().Position + offsetInfrontOfPlayer)
- end
- newItem:PivotTo(finalPivot)
- local wc = Instance.new("WeldConstraint")
- wc.Part0 = newItem.PrimaryPart
- wc.Part1 = character.UpperTorso
- wc.Parent = newItem.PrimaryPart
- itemValue.Value += 1
- newItem.Parent = itemStack
- end)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement