#i need help with a script i can't sell an model / tool

1 messages · Page 1 of 1 (latest)

timber pollen
#

if u need the script ask me :D

tender zenith
#

can you set your obs output file type to mp4 and btw i need script @timber pollen

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