#i need help with a script i can't sell an model / tool
1 messages · Page 1 of 1 (latest)
can you set your obs output file type to mp4 and btw i need script @timber pollen
Ok yay sure
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local network = ReplicatedStorage:WaitForChild("Network", 3)
local notifyEvent = network:WaitForChild("Notify", 3)
local Objects = workspace:FindFirstChild("Objects"):GetChildren()
local function ObjectSelected(player: Player, object: Model)
assert(object and player, "Object or player hasn't got received correctly")
local character = player.Character
local objectHandle = object:FindFirstChild("Zone", true)
if not objectHandle then warn("you got no zone part in", object) end
objectHandle.Name = "Handle"
local newTool = Instance.new("Tool")
newTool:SetAttribute("Prix", object:GetAttribute("Prix"))
newTool.Name = object.Name
newTool.CanBeDropped = false
local aerm = character:FindFirstChild("Right Arm") :: BasePart
for _, instance : Instance in object:GetChildren() do
instance.Anchored = false
instance.Parent = newTool
end
newTool.Parent = character
notifyEvent:FireClient(player, "success", "You can now use this object", 3)
end
local function SetupObjectPress(object: Model)
assert(object, "erm...")
local zone = object:FindFirstChild("Zone")
if not zone then warn("Couldn't find a suited zone for object", object.Name); return end
local clickDetector = object:FindFirstChildOfClass("ClickDetector")
if not clickDetector then
clickDetector = Instance.new("ClickDetector")
clickDetector.MaxActivationDistance = object:GetAttribute("MaxRange") or 15
clickDetector.Parent = zone
end
clickDetector.MouseClick:Connect(function(player)
ObjectSelected(player, object)
end)
end
for _, object in ipairs(Objects) do
task.spawn(SetupObjectPress, object)
--!native
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local network = ReplicatedStorage:WaitForChild("Network", 3)
local notifyEvent = network:WaitForChild("Notify", 3)
local Utils = ServerStorage:FindFirstChild("Utils")
local SellItemConf = require(Utils:FindFirstChild("SellableItemsConfig"))
local SellHitbox = workspace:FindFirstChild("Sell")
local debounce: { [Model]: boolean } = {}
function OnHitboxTouched(hit)
local model = hit
while model and not model:IsA("Model,Tool") and model.Parent do
model = model.Parent
end
if not model or not model:IsA("Model") then return end
if debounce[model] then return end
debounce[model] = true
if not SellItemConf.IsSellable(model) then
debounce[model] = nil
return
end
local ownerValue = model:FindFirstChild("OwnerPlayer")
local player
if ownerValue and ownerValue:IsA("ObjectValue") and ownerValue.Value then
player = Players:GetPlayerFromCharacter(ownerValue.Value)
if not player then
warn("Couldn't receive a proper player...")
debounce[model] = nil
return
end
else
debounce[model] = nil
return
end
local price = SellItemConf.GetSellPrice(model)
if not price then
debounce[model] = nil
return
end
local leaderstats = player:FindFirstChild("leaderstats")
local money = leaderstats and leaderstats:FindFirstChild("argent")
if not money then
debounce[model] = nil
return
end
z notifyEvent:FireClient(player, "completed", ("gained €" .. price .. " from selling" .. model.Name))
money.Value += price
model:Destroy()
debounce[model] = nil
end
SellHitbox.Touched:Connect(OnHitboxTouched)
now you have the sell script and the script
Sell script