local QBCore = exports['qb-core']:GetCoreObject() local PlayerJob = {} local SellerPed = {} local itemkategorileri function yuklemebasla() local blip for k, v in pairs(Config.Locations) do if not SellerPed[k] then SellerPed[k] = {} end local current = v.pedhash current = type(current) == 'string' and GetHashKey(current) or current RequestModel(current) while not HasModelLoaded(current) do Wait(0) end SellerPed[k] = CreatePed(0, current, v.pedlocation.x, v.pedlocation.y, v.pedlocation.z - 1, v.pedlocation.w, false, false) FreezeEntityPosition(SellerPed[k], true) SetEntityInvincible(SellerPed[k], true) SetBlockingOfNonTemporaryEvents(SellerPed[k], true) TaskPlayAnim(SellerPed[k], "anim@amb@clubhouse@mini@darts@", "wait_idle", 8.0, -8.0, -1, 0, 0, 0, 0) if v.jobname ~= nil then exports["qb-target"]:AddTargetEntity(SellerPed[k], { options = { { type = 'client', action = function() TriggerEvent("alizadevseller:sellmenu", v.itemcategory, v.menuHeader) -- menuHeader eklendi end, label = v.targetLabel, icon = v.targetIcon, job = v.jobname, }, }, distance = v.distance }) else exports["qb-target"]:AddTargetEntity(SellerPed[k], { options = { { type = 'client', action = function() TriggerEvent("alizadevseller:sellmenu", v.itemcategory, v.menuHeader) end, label = v.targetLabel, icon = v.targetIcon, }, }, distance = v.distance }) end if v.blip then blip = AddBlipForCoord(vector3(v.pedlocation.x, v.pedlocation.y, v.pedlocation.z)) SetBlipSprite(blip, v.blipsprite) SetBlipColour(blip, v.blipcolor) SetBlipScale(blip, 0.6) SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName("STRING") AddTextComponentString(v.label) EndTextCommandSetBlipName(blip) end end end RegisterNetEvent('QBCore:Client:OnPlayerLoaded') AddEventHandler('QBCore:Client:OnPlayerLoaded', function() local PlayerData = QBCore.Functions.GetPlayerData() end) Citizen.CreateThread(function() yuklemebasla() end) RegisterNetEvent("alizadevseller:sellmenu", function(kategori, baslik) Wait(100) local sellinglist = {} sellinglist[#sellinglist + 1] = { isMenuHeader = true, header = baslik or "Satış", -- Eğer baslik nil ise varsayılan değer kullan icon = '' } -- Kategori kontrolü ekleyelim if not Config.Kategoriler[kategori] then -- QBCore.Functions.Notify("Geçersiz kategori", "error") return end for k,v in pairs(Config.Kategoriler[kategori]) do sellinglist[#sellinglist + 1] = { header = v.label, txt = v.price.."$", params = { event = 'alizadevseller:selltonpc', args = { item = v.name, label = v.label, preice = v.price, markedbills = v.blackmoney } } } end exports['qb-menu']:openMenu(sellinglist) end) RegisterNetEvent('alizadevseller:selltonpc', function(data) QBCore.Functions.TriggerCallback('miktar', function(result) if result then TriggerEvent('inventory:client:ItemBox', QBCore.Shared.Items[data.item], "remove", result) local earnings = result * data.preice if data.markedbills then QBCore.Functions.Notify(string.format(Config.Locales['success_sale_blackmoney'], data.label, earnings), "success") else QBCore.Functions.Notify(string.format(Config.Locales['success_sale'], data.label, earnings), "success") end TriggerServerEvent('alizadevseller:logSale', data.label, result, earnings, data.markedbills) elseif not result then QBCore.Functions.Notify(Config.Locales['no_items'], "error") end end, data) end)