FiveM 赛博朋克风格 高级汽车商店系统

FiveM 赛博朋克风格 高级汽车商店系统

高级汽车经销商系统 FiveM 服务器具有现代 UI、高级车辆定制以及与流行框架的无缝集成。

✨ 特征

  • 🎨 赛博朋克风格的现代 UI,动画流畅
  • 🚗 包含详细规格的广泛车辆目录
  • 🎮 交互式 3D 车辆预览,可 360° 旋转
  • 🎨 高级色彩定制系统
  • 💰 多种支付方式(现金/银行)
  • 🚘 带存放功能的试驾系统
  • 📊 实时车辆规格显示
  • 🔍 高级搜索和过滤系统
  • 📱 适合所有屏幕尺寸的响应式设计
  • 🔒 安全的交易系统
  • 🏷️ 车辆类别和子类别
  • 📦 库存管理系统
  • 🎮 游戏手柄和键盘支持
  • 🔔 通知系统

🖼️ 预览

fbfad909ae20250501104237

📥 安装

  1. 下载最新版本
  2. 提取到你的 resources 文件夹es-vehicleshop
  3. 添加到您的 server.cfgensure es-vehicleshop
  4. 重新启动服务器

⌨️ 默认控件

  • 打开菜单: (Near dealership)E
  • 关闭菜单:ESC
  • 旋转车辆:或鼠标拖动Q/E
  • 试驾:(选择车辆时)T

🛠️ 配置

Config = {}
Config.Framework = "<a target="_blank" href="https://f.gtafivem.com/tag/qbcore/" title="View all posts in QBCore">QBCore</a>"
Config.Discord = "" -- https://discord.com/developers/applications
Config.TestDrivePrice = 250
function randomNumber(length)
local result = ""
for i = 1, length do
result = result .. math.random(0,9)
end
return result
end
function randomCharacter(length)
local charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
local result = ""
for i = 1, length do
local rand = math.random(1, #charset)
result = result .. string.sub(charset, rand, rand)
end
return result
end
Config.Vehicles = {
['categories'] = {
{
name = "Zentorno",
model = "zentorno",
brand = "Pegassi",
price = 2350000,
category = "super",
stock = 10,
specs = {
speed = 345,
acceleration = 2.8,
handling = 9.2,
fuelCapacity = 80
}
},
{
name = "T20",
model = "t20",
brand = "Progen",
price = 2200000,
category = "super",
stock = 5,
specs = {
speed = 338,
acceleration = 2.7,
handling = 8.8,
fuelCapacity = 75
}
},
{
name = "Sultan RS",
model = "sultanrs",
brand = "Karin",
price = 850000,
category = "sports",
stock = 15,
specs = {
speed = 305,
acceleration = 3.2,
handling = 7.9,
fuelCapacity = 65
}
},
{
name = "Elegy RH8",
model = "elegy",
brand = "Annis",
price = 750000,
category = "sports",
stock = 20,
specs = {
speed = 295,
acceleration = 3.4,
handling = 8.5,
fuelCapacity = 60
}
},
{
name = "Dominator",
model = "dominator",
brand = "Vapid",
price = 450000,
category = "muscle",
stock = 25,
specs = {
speed = 280,
acceleration = 3.8,
handling = 6.8,
fuelCapacity = 90
}
},
{
name = "Turismo R",
model = "turismor",
brand = "Grotti",
price = 1950000,
category = "super",
stock = 8,
specs = {
speed = 335,
acceleration = 2.9,
handling = 9.0,
fuelCapacity = 78
}
},
{
name = "Adder",
model = "adder",
brand = "Truffade",
price = 2100000,
category = "super",
stock = 3,
specs = {
speed = 340,
acceleration = 3.0,
handling = 8.5,
fuelCapacity = 85
}
},
{
name = "Comet SR",
model = "comet5",
brand = "Pfister",
price = 950000,
category = "sports",
stock = 12,
specs = {
speed = 315,
acceleration = 3.1,
handling = 8.8,
fuelCapacity = 70
}
},
{
name = "Banshee 900R",
model = "banshee2",
brand = "Bravado",
price = 1100000,
category = "sports",
stock = 10,
specs = {
speed = 320,
acceleration = 3.0,
handling = 8.0,
fuelCapacity = 72
}
},
{
name = "Gauntlet Hellfire",
model = "gauntlet4",
brand = "Bravado",
price = 875000,
category = "muscle",
stock = 18,
specs = {
speed = 310,
acceleration = 3.4,
handling = 7.0,
fuelCapacity = 88
}
},
{
name = "Drafter",
model = "drafter",
brand = "Obey",
price = 780000,
category = "sports",
stock = 15,
specs = {
speed = 300,
acceleration = 3.3,
handling = 8.2,
fuelCapacity = 68
}
},
{
name = "XA-21",
model = "xa21",
brand = "Ocelot",
price = 1850000,
category = "super",
stock = 8,
specs = {
speed = 330,
acceleration = 2.8,
handling = 9.1,
fuelCapacity = 75
}
},
{
name = "Itali GTO",
model = "italigto",
brand = "Grotti",
price = 1650000,
category = "sports",
stock = 10,
specs = {
speed = 325,
acceleration = 3.0,
handling = 8.9,
fuelCapacity = 72
}
},
{
name = "Bison",
model = "bison",
brand = "Bravado",
price = 350000,
category = "offroad",
stock = 25,
specs = {
speed = 270,
acceleration = 4.0,
handling = 6.5,
fuelCapacity = 95
}
},
{
name = "Dubsta",
model = "dubsta",
brand = "Benefactor",
price = 450000,
category = "suv",
stock = 20,
specs = {
speed = 275,
acceleration = 3.9,
handling = 6.8,
fuelCapacity = 100
}
},
{
name = "Hakuchou",
model = "hakuchou",
brand = "Shitzu",
price = 380000,
category = "motorcycle",
stock = 15,
specs = {
speed = 330,
acceleration = 2.5,
handling = 7.5,
fuelCapacity = 40
}
},
{
name = "Tempesta",
model = "tempesta",
brand = "Pegassi",
price = 1800000,
category = "super",
stock = 7,
specs = {
speed = 330,
acceleration = 2.9,
handling = 9.3,
fuelCapacity = 76
}
},
{
name = "Tornado",
model = "tornado",
brand = "Declasse",
price = 280000,
category = "sportsclassic",
stock = 15,
specs = {
speed = 240,
acceleration = 4.8,
handling = 5.5,
fuelCapacity = 70
}
},
{
name = "Osiris",
model = "osiris",
brand = "Pegassi",
price = 1800000,
category = "super",
stock = 6,
specs = {
speed = 335,
acceleration = 2.8,
handling = 9.0,
fuelCapacity = 77
}
},
{
name = "GT500",
model = "gt500",
brand = "Grotti",
price = 900000,
category = "sportsclassic",
stock = 10,
specs = {
speed = 290,
acceleration = 3.6,
handling = 7.8,
fuelCapacity = 65
}
}
},
['types'] = {
{ id = 1, value = "all", label = "ALL VEHICLES" },
{ id = 2, value = "hypercar", label = "HYPERCAR" },
{ id = 3, value = "super", label = "SUPER" },
{ id = 4, value = "sports", label = "SPORTS" },
{ id = 5, value = "tuner", label = "TUNER" },
{ id = 6, value = "jdm", label = "JDM" },
{ id = 7, value = "drift", label = "DRIFT" },
{ id = 8, value = "rally", label = "RALLY" },
{ id = 9, value = "race", label = "RACE" },
{ id = 10, value = "luxury", label = "LUXURY" },
{ id = 11, value = "luxurysuv", label = "LUXURY SUV" },
{ id = 12, value = "suv", label = "SUV" },
{ id = 13, value = "muscle", label = "MUSCLE" },
{ id = 14, value = "classicsport", label = "CLASSIC SPORT" },
{ id = 15, value = "sportsclassic", label = "CLASSIC" },
{ id = 16, value = "electric", label = "ELECTRIC" },
{ id = 17, value = "concept", label = "CONCEPT" },
{ id = 18, value = "limited", label = "LIMITED" },
{ id = 19, value = "vintage", label = "VINTAGE" },
{ id = 20, value = "offroad", label = "OFFROAD" },
{ id = 21, value = "motorcycle", label = "MOTORCYCLE" },
{ id = 22, value = "compact", label = "COMPACT" }
},
['colors'] = {
{ name = "Black", hex = "#0F0F0F" },
{ name = "White", hex = "#FFFFFF" },
{ name = "Red", hex = "#C00E1A" },
{ name = "Blue", hex = "#0E3FC0" },
{ name = "Green", hex = "#0EC044" },
{ name = "Yellow", hex = "#C0BD0E" },
{ name = "Orange", hex = "#C0680E" },
{ name = "Purple", hex = "#6E0EC0" },
{ name = "Pink", hex = "#C00E97" },
{ name = "Gray", hex = "#5A5A5A" }
}
}
CustomizeCamera = function(self)
isOpen = not self
DisplayHud(isOpen)
DisplayRadar(isOpen)
end
Config.GetVehFuel = function(Veh)
return GetVehicleFuelLevel(Veh)
end
Config.Carkeys = function(Plate, vehicle)
if Config.Framework == "QBCore" then
TriggerServerEvent('qb-vehiclekeys:server:AcquireVehicleKeys', Plate)
TriggerEvent('vehiclekeys:client:SetOwner', Plate)
TriggerServerEvent('qb-vehiclekeys:server:SetVehicleOwner', Plate)
SetVehicleEngineOn(vehicle, true, true, false)
else
TriggerEvent('vehiclekeys:client:SetOwner', Plate)
SetVehicleEngineOn(vehicle, true, true, false)
end
end
CustomizePlate = function()
return string.upper(randomNumber(2) .. randomCharacter(3) .. randomNumber(3))
end
Config.Locations = {
{
type = 'car',
coords = vector3(-34.53, -1102.94, 25.42),
hash = "a_m_o_soucent_01",
heading = 170.00,
marker = "VEHICLE SHOWROOM",
interactionText = "~w~[E] Purchase Vehicle",
blip = {
["active"] = true,
["name"] = "Car Dealership",
["colour"] = 4,
["id"] = 56
},
NuiCarViewSpawnPosition = vector4(-47.777, -1097.021, 22.422, 0.0),
NuiCarViewCameraPosition = {
posX = -45.777,
posY = -1102.021 + 10,
posZ = 25.422 + 2,
rotX = -20.0,
rotY = 0,
rotZ = 160.0,
fov = 60.00
},
TestDriveTime = 60,
TestDriveSpawnPosition = vector4(-874.34, -3226.6, 13.22, 60.82),
BuyCarSpawnPositions = {
[1] = vector4(-10.6716, -1096.76, 26.183, 100.5),
[2] = vector4(-11.4883, -1099.59, 26.180, 100.5),
[3] = vector4(-12.4124, -1102.35, 26.183, 100.5),
[4] = vector4(-13.0040, -1105.23, 26.179, 100.5),
[5] = vector4(-14.5665, -1108.37, 26.183, 100.5)
},
},
}
EYES = {
Functions = {
CreateBlips = function()
for k,v in pairs(Config.Locations) do
if v.blip["active"] then
local blip = AddBlipForCoord(v.coords)
SetBlipSprite(blip, v.blip["id"])
SetBlipScale(blip, 0.5)
SetBlipAsShortRange(blip, true)
SetBlipColour(blip, v.blip["colour"])
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(v.blip["name"])
EndTextCommandSetBlipName(blip)
end
end
end
}
}
function GetFramework()
local Get = nil
if Config.Framework == "ESX" then
while Get == nil do
TriggerEvent('esx:getSharedObject', function(Set) Get = Set end)
Citizen.Wait(0)
end
elseif Config.Framework == "NewESX" then
Get = exports['es_extended']:getSharedObject()
elseif Config.Framework == "QBCore" then
Get = exports["qb-core"]:GetCoreObject()
elseif Config.Framework == "OldQBCore" then
while Get == nil do
TriggerEvent('QBCore:GetObject', function(Set) Get = Set end)
Citizen.Wait(200)
end
end
return Get
end
Config = {}

Config.Framework = "<a target="_blank" href="https://f.gtafivem.com/tag/qbcore/" title="View all posts in QBCore">QBCore</a>"
Config.Discord = "" -- https://discord.com/developers/applications
Config.TestDrivePrice = 250 

function randomNumber(length)
    local result = ""
    for i = 1, length do
        result = result .. math.random(0,9)
    end
    return result
end

function randomCharacter(length)
    local charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    local result = ""
    for i = 1, length do
        local rand = math.random(1, #charset)
        result = result .. string.sub(charset, rand, rand)
    end
    return result
end

Config.Vehicles = {
    ['categories'] = {
        {
            name = "Zentorno",
            model = "zentorno",
            brand = "Pegassi",
            price = 2350000,
            category = "super",
            stock = 10,
            specs = {
                speed = 345,
                acceleration = 2.8,
                handling = 9.2,
                fuelCapacity = 80
            }
        },
        {
            name = "T20",
            model = "t20",
            brand = "Progen",
            price = 2200000,
            category = "super",
            stock = 5,
            specs = {
                speed = 338,
                acceleration = 2.7,
                handling = 8.8,
                fuelCapacity = 75
            }
        },
        {
            name = "Sultan RS",
            model = "sultanrs",
            brand = "Karin",
            price = 850000,
            category = "sports",
            stock = 15,
            specs = {
                speed = 305,
                acceleration = 3.2,
                handling = 7.9,
                fuelCapacity = 65
            }
        },
        {
            name = "Elegy RH8",
            model = "elegy",
            brand = "Annis",
            price = 750000,
            category = "sports",
            stock = 20,
            specs = {
                speed = 295,
                acceleration = 3.4,
                handling = 8.5,
                fuelCapacity = 60
            }
        },
        {
            name = "Dominator",
            model = "dominator",
            brand = "Vapid",
            price = 450000,
            category = "muscle",
            stock = 25,
            specs = {
                speed = 280,
                acceleration = 3.8,
                handling = 6.8,
                fuelCapacity = 90
            }
        },
        {
            name = "Turismo R",
            model = "turismor",
            brand = "Grotti",
            price = 1950000,
            category = "super",
            stock = 8,
            specs = {
                speed = 335,
                acceleration = 2.9,
                handling = 9.0,
                fuelCapacity = 78
            }
        },
        {
            name = "Adder",
            model = "adder",
            brand = "Truffade",
            price = 2100000,
            category = "super",
            stock = 3,
            specs = {
                speed = 340,
                acceleration = 3.0,
                handling = 8.5,
                fuelCapacity = 85
            }
        },
        {
            name = "Comet SR",
            model = "comet5",
            brand = "Pfister",
            price = 950000,
            category = "sports",
            stock = 12,
            specs = {
                speed = 315,
                acceleration = 3.1,
                handling = 8.8,
                fuelCapacity = 70
            }
        },
        {
            name = "Banshee 900R",
            model = "banshee2",
            brand = "Bravado",
            price = 1100000,
            category = "sports",
            stock = 10,
            specs = {
                speed = 320,
                acceleration = 3.0,
                handling = 8.0,
                fuelCapacity = 72
            }
        },
        {
            name = "Gauntlet Hellfire",
            model = "gauntlet4",
            brand = "Bravado",
            price = 875000,
            category = "muscle",
            stock = 18,
            specs = {
                speed = 310,
                acceleration = 3.4,
                handling = 7.0,
                fuelCapacity = 88
            }
        },
        {
            name = "Drafter",
            model = "drafter",
            brand = "Obey",
            price = 780000,
            category = "sports",
            stock = 15,
            specs = {
                speed = 300,
                acceleration = 3.3,
                handling = 8.2,
                fuelCapacity = 68
            }
        },
        {
            name = "XA-21",
            model = "xa21",
            brand = "Ocelot",
            price = 1850000,
            category = "super",
            stock = 8,
            specs = {
                speed = 330,
                acceleration = 2.8,
                handling = 9.1,
                fuelCapacity = 75
            }
        },
        {
            name = "Itali GTO",
            model = "italigto",
            brand = "Grotti",
            price = 1650000,
            category = "sports",
            stock = 10,
            specs = {
                speed = 325,
                acceleration = 3.0,
                handling = 8.9,
                fuelCapacity = 72
            }
        },
        {
            name = "Bison",
            model = "bison",
            brand = "Bravado",
            price = 350000,
            category = "offroad",
            stock = 25,
            specs = {
                speed = 270,
                acceleration = 4.0,
                handling = 6.5,
                fuelCapacity = 95
            }
        },
        {
            name = "Dubsta",
            model = "dubsta",
            brand = "Benefactor",
            price = 450000,
            category = "suv",
            stock = 20,
            specs = {
                speed = 275,
                acceleration = 3.9,
                handling = 6.8,
                fuelCapacity = 100
            }
        },
        {
            name = "Hakuchou",
            model = "hakuchou",
            brand = "Shitzu",
            price = 380000,
            category = "motorcycle",
            stock = 15,
            specs = {
                speed = 330,
                acceleration = 2.5,
                handling = 7.5,
                fuelCapacity = 40
            }
        },
        {
            name = "Tempesta",
            model = "tempesta",
            brand = "Pegassi",
            price = 1800000,
            category = "super",
            stock = 7,
            specs = {
                speed = 330,
                acceleration = 2.9,
                handling = 9.3,
                fuelCapacity = 76
            }
        },
        {
            name = "Tornado",
            model = "tornado",
            brand = "Declasse",
            price = 280000,
            category = "sportsclassic",
            stock = 15,
            specs = {
                speed = 240,
                acceleration = 4.8,
                handling = 5.5,
                fuelCapacity = 70
            }
        },
        {
            name = "Osiris",
            model = "osiris",
            brand = "Pegassi",
            price = 1800000,
            category = "super",
            stock = 6,
            specs = {
                speed = 335,
                acceleration = 2.8,
                handling = 9.0,
                fuelCapacity = 77
            }
        },
        {
            name = "GT500",
            model = "gt500",
            brand = "Grotti",
            price = 900000,
            category = "sportsclassic",
            stock = 10,
            specs = {
                speed = 290,
                acceleration = 3.6,
                handling = 7.8,
                fuelCapacity = 65
            }
        }
    },
    ['types'] = {
        { id = 1, value = "all", label = "ALL VEHICLES" },
        { id = 2, value = "hypercar", label = "HYPERCAR" },
        { id = 3, value = "super", label = "SUPER" },
        { id = 4, value = "sports", label = "SPORTS" },
        { id = 5, value = "tuner", label = "TUNER" },
        { id = 6, value = "jdm", label = "JDM" },
        { id = 7, value = "drift", label = "DRIFT" },
        { id = 8, value = "rally", label = "RALLY" },
        { id = 9, value = "race", label = "RACE" },
        { id = 10, value = "luxury", label = "LUXURY" },
        { id = 11, value = "luxurysuv", label = "LUXURY SUV" },
        { id = 12, value = "suv", label = "SUV" },
        { id = 13, value = "muscle", label = "MUSCLE" },
        { id = 14, value = "classicsport", label = "CLASSIC SPORT" },
        { id = 15, value = "sportsclassic", label = "CLASSIC" },
        { id = 16, value = "electric", label = "ELECTRIC" },
        { id = 17, value = "concept", label = "CONCEPT" },
        { id = 18, value = "limited", label = "LIMITED" },
        { id = 19, value = "vintage", label = "VINTAGE" },
        { id = 20, value = "offroad", label = "OFFROAD" },
        { id = 21, value = "motorcycle", label = "MOTORCYCLE" },
        { id = 22, value = "compact", label = "COMPACT" }
    },
    ['colors'] = {
        { name = "Black", hex = "#0F0F0F" },
        { name = "White", hex = "#FFFFFF" },
        { name = "Red", hex = "#C00E1A" },
        { name = "Blue", hex = "#0E3FC0" },
        { name = "Green", hex = "#0EC044" },
        { name = "Yellow", hex = "#C0BD0E" },
        { name = "Orange", hex = "#C0680E" },
        { name = "Purple", hex = "#6E0EC0" },
        { name = "Pink", hex = "#C00E97" },
        { name = "Gray", hex = "#5A5A5A" }
    }
}

CustomizeCamera = function(self)
    isOpen = not self
    DisplayHud(isOpen)
    DisplayRadar(isOpen)
end

Config.GetVehFuel = function(Veh)
    return GetVehicleFuelLevel(Veh)
end

Config.Carkeys = function(Plate, vehicle)
    if Config.Framework == "QBCore" then
        TriggerServerEvent('qb-vehiclekeys:server:AcquireVehicleKeys', Plate)
        TriggerEvent('vehiclekeys:client:SetOwner', Plate)
        TriggerServerEvent('qb-vehiclekeys:server:SetVehicleOwner', Plate)
        SetVehicleEngineOn(vehicle, true, true, false)
    else
        TriggerEvent('vehiclekeys:client:SetOwner', Plate)
        SetVehicleEngineOn(vehicle, true, true, false)
    end
end

CustomizePlate = function()
    return string.upper(randomNumber(2) .. randomCharacter(3) .. randomNumber(3))
end

Config.Locations = {
    { 
        type = 'car',
        coords = vector3(-34.53, -1102.94, 25.42),
        hash = "a_m_o_soucent_01", 
        heading = 170.00, 
        marker = "VEHICLE SHOWROOM",
        interactionText = "~w~[E] Purchase Vehicle",
        blip = {
            ["active"] = true,
            ["name"] = "Car Dealership",
            ["colour"] = 4,
            ["id"] = 56
        },  
        NuiCarViewSpawnPosition = vector4(-47.777, -1097.021, 22.422, 0.0),
        NuiCarViewCameraPosition = {
            posX = -45.777,
            posY = -1102.021 + 10, 
            posZ = 25.422 + 2,
            rotX = -20.0, 
            rotY = 0,
            rotZ = 160.0, 
            fov = 60.00 
        },
        TestDriveTime = 60,
        TestDriveSpawnPosition = vector4(-874.34, -3226.6, 13.22, 60.82),
        BuyCarSpawnPositions = {
            [1] = vector4(-10.6716, -1096.76, 26.183, 100.5),
            [2] = vector4(-11.4883, -1099.59, 26.180, 100.5),
            [3] = vector4(-12.4124, -1102.35, 26.183, 100.5),
            [4] = vector4(-13.0040, -1105.23, 26.179, 100.5),
            [5] = vector4(-14.5665, -1108.37, 26.183, 100.5)
        },
    }, 
}

EYES = {
    Functions = {
        CreateBlips = function()
            for k,v in pairs(Config.Locations) do
                if v.blip["active"] then
                    local blip = AddBlipForCoord(v.coords)
                    SetBlipSprite(blip, v.blip["id"])
                    SetBlipScale(blip, 0.5)
                    SetBlipAsShortRange(blip, true)
                    SetBlipColour(blip, v.blip["colour"])
                    BeginTextCommandSetBlipName("STRING")
                    AddTextComponentString(v.blip["name"])
                    EndTextCommandSetBlipName(blip)
                end
            end
        end
    }
}


function GetFramework()
    local Get = nil
    if Config.Framework == "ESX" then
        while Get == nil do
            TriggerEvent('esx:getSharedObject', function(Set) Get = Set end)
            Citizen.Wait(0)
        end
    elseif Config.Framework == "NewESX" then
        Get = exports['es_extended']:getSharedObject()
    elseif Config.Framework == "QBCore" then
        Get = exports["qb-core"]:GetCoreObject()
    elseif Config.Framework == "OldQBCore" then
        while Get == nil do
            TriggerEvent('QBCore:GetObject', function(Set) Get = Set end)
            Citizen.Wait(200)
        end
    end
    return Get
end
Config = {} Config.Framework = "QBCore" Config.Discord = "" -- https://discord.com/developers/applications Config.TestDrivePrice = 250 function randomNumber(length) local result = "" for i = 1, length do result = result .. math.random(0,9) end return result end function randomCharacter(length) local charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" local result = "" for i = 1, length do local rand = math.random(1, #charset) result = result .. string.sub(charset, rand, rand) end return result end Config.Vehicles = { ['categories'] = { { name = "Zentorno", model = "zentorno", brand = "Pegassi", price = 2350000, category = "super", stock = 10, specs = { speed = 345, acceleration = 2.8, handling = 9.2, fuelCapacity = 80 } }, { name = "T20", model = "t20", brand = "Progen", price = 2200000, category = "super", stock = 5, specs = { speed = 338, acceleration = 2.7, handling = 8.8, fuelCapacity = 75 } }, { name = "Sultan RS", model = "sultanrs", brand = "Karin", price = 850000, category = "sports", stock = 15, specs = { speed = 305, acceleration = 3.2, handling = 7.9, fuelCapacity = 65 } }, { name = "Elegy RH8", model = "elegy", brand = "Annis", price = 750000, category = "sports", stock = 20, specs = { speed = 295, acceleration = 3.4, handling = 8.5, fuelCapacity = 60 } }, { name = "Dominator", model = "dominator", brand = "Vapid", price = 450000, category = "muscle", stock = 25, specs = { speed = 280, acceleration = 3.8, handling = 6.8, fuelCapacity = 90 } }, { name = "Turismo R", model = "turismor", brand = "Grotti", price = 1950000, category = "super", stock = 8, specs = { speed = 335, acceleration = 2.9, handling = 9.0, fuelCapacity = 78 } }, { name = "Adder", model = "adder", brand = "Truffade", price = 2100000, category = "super", stock = 3, specs = { speed = 340, acceleration = 3.0, handling = 8.5, fuelCapacity = 85 } }, { name = "Comet SR", model = "comet5", brand = "Pfister", price = 950000, category = "sports", stock = 12, specs = { speed = 315, acceleration = 3.1, handling = 8.8, fuelCapacity = 70 } }, { name = "Banshee 900R", model = "banshee2", brand = "Bravado", price = 1100000, category = "sports", stock = 10, specs = { speed = 320, acceleration = 3.0, handling = 8.0, fuelCapacity = 72 } }, { name = "Gauntlet Hellfire", model = "gauntlet4", brand = "Bravado", price = 875000, category = "muscle", stock = 18, specs = { speed = 310, acceleration = 3.4, handling = 7.0, fuelCapacity = 88 } }, { name = "Drafter", model = "drafter", brand = "Obey", price = 780000, category = "sports", stock = 15, specs = { speed = 300, acceleration = 3.3, handling = 8.2, fuelCapacity = 68 } }, { name = "XA-21", model = "xa21", brand = "Ocelot", price = 1850000, category = "super", stock = 8, specs = { speed = 330, acceleration = 2.8, handling = 9.1, fuelCapacity = 75 } }, { name = "Itali GTO", model = "italigto", brand = "Grotti", price = 1650000, category = "sports", stock = 10, specs = { speed = 325, acceleration = 3.0, handling = 8.9, fuelCapacity = 72 } }, { name = "Bison", model = "bison", brand = "Bravado", price = 350000, category = "offroad", stock = 25, specs = { speed = 270, acceleration = 4.0, handling = 6.5, fuelCapacity = 95 } }, { name = "Dubsta", model = "dubsta", brand = "Benefactor", price = 450000, category = "suv", stock = 20, specs = { speed = 275, acceleration = 3.9, handling = 6.8, fuelCapacity = 100 } }, { name = "Hakuchou", model = "hakuchou", brand = "Shitzu", price = 380000, category = "motorcycle", stock = 15, specs = { speed = 330, acceleration = 2.5, handling = 7.5, fuelCapacity = 40 } }, { name = "Tempesta", model = "tempesta", brand = "Pegassi", price = 1800000, category = "super", stock = 7, specs = { speed = 330, acceleration = 2.9, handling = 9.3, fuelCapacity = 76 } }, { name = "Tornado", model = "tornado", brand = "Declasse", price = 280000, category = "sportsclassic", stock = 15, specs = { speed = 240, acceleration = 4.8, handling = 5.5, fuelCapacity = 70 } }, { name = "Osiris", model = "osiris", brand = "Pegassi", price = 1800000, category = "super", stock = 6, specs = { speed = 335, acceleration = 2.8, handling = 9.0, fuelCapacity = 77 } }, { name = "GT500", model = "gt500", brand = "Grotti", price = 900000, category = "sportsclassic", stock = 10, specs = { speed = 290, acceleration = 3.6, handling = 7.8, fuelCapacity = 65 } } }, ['types'] = { { id = 1, value = "all", label = "ALL VEHICLES" }, { id = 2, value = "hypercar", label = "HYPERCAR" }, { id = 3, value = "super", label = "SUPER" }, { id = 4, value = "sports", label = "SPORTS" }, { id = 5, value = "tuner", label = "TUNER" }, { id = 6, value = "jdm", label = "JDM" }, { id = 7, value = "drift", label = "DRIFT" }, { id = 8, value = "rally", label = "RALLY" }, { id = 9, value = "race", label = "RACE" }, { id = 10, value = "luxury", label = "LUXURY" }, { id = 11, value = "luxurysuv", label = "LUXURY SUV" }, { id = 12, value = "suv", label = "SUV" }, { id = 13, value = "muscle", label = "MUSCLE" }, { id = 14, value = "classicsport", label = "CLASSIC SPORT" }, { id = 15, value = "sportsclassic", label = "CLASSIC" }, { id = 16, value = "electric", label = "ELECTRIC" }, { id = 17, value = "concept", label = "CONCEPT" }, { id = 18, value = "limited", label = "LIMITED" }, { id = 19, value = "vintage", label = "VINTAGE" }, { id = 20, value = "offroad", label = "OFFROAD" }, { id = 21, value = "motorcycle", label = "MOTORCYCLE" }, { id = 22, value = "compact", label = "COMPACT" } }, ['colors'] = { { name = "Black", hex = "#0F0F0F" }, { name = "White", hex = "#FFFFFF" }, { name = "Red", hex = "#C00E1A" }, { name = "Blue", hex = "#0E3FC0" }, { name = "Green", hex = "#0EC044" }, { name = "Yellow", hex = "#C0BD0E" }, { name = "Orange", hex = "#C0680E" }, { name = "Purple", hex = "#6E0EC0" }, { name = "Pink", hex = "#C00E97" }, { name = "Gray", hex = "#5A5A5A" } } } CustomizeCamera = function(self) isOpen = not self DisplayHud(isOpen) DisplayRadar(isOpen) end Config.GetVehFuel = function(Veh) return GetVehicleFuelLevel(Veh) end Config.Carkeys = function(Plate, vehicle) if Config.Framework == "QBCore" then TriggerServerEvent('qb-vehiclekeys:server:AcquireVehicleKeys', Plate) TriggerEvent('vehiclekeys:client:SetOwner', Plate) TriggerServerEvent('qb-vehiclekeys:server:SetVehicleOwner', Plate) SetVehicleEngineOn(vehicle, true, true, false) else TriggerEvent('vehiclekeys:client:SetOwner', Plate) SetVehicleEngineOn(vehicle, true, true, false) end end CustomizePlate = function() return string.upper(randomNumber(2) .. randomCharacter(3) .. randomNumber(3)) end Config.Locations = { { type = 'car', coords = vector3(-34.53, -1102.94, 25.42), hash = "a_m_o_soucent_01", heading = 170.00, marker = "VEHICLE SHOWROOM", interactionText = "~w~[E] Purchase Vehicle", blip = { ["active"] = true, ["name"] = "Car Dealership", ["colour"] = 4, ["id"] = 56 }, NuiCarViewSpawnPosition = vector4(-47.777, -1097.021, 22.422, 0.0), NuiCarViewCameraPosition = { posX = -45.777, posY = -1102.021 + 10, posZ = 25.422 + 2, rotX = -20.0, rotY = 0, rotZ = 160.0, fov = 60.00 }, TestDriveTime = 60, TestDriveSpawnPosition = vector4(-874.34, -3226.6, 13.22, 60.82), BuyCarSpawnPositions = { [1] = vector4(-10.6716, -1096.76, 26.183, 100.5), [2] = vector4(-11.4883, -1099.59, 26.180, 100.5), [3] = vector4(-12.4124, -1102.35, 26.183, 100.5), [4] = vector4(-13.0040, -1105.23, 26.179, 100.5), [5] = vector4(-14.5665, -1108.37, 26.183, 100.5) }, }, } EYES = { Functions = { CreateBlips = function() for k,v in pairs(Config.Locations) do if v.blip["active"] then local blip = AddBlipForCoord(v.coords) SetBlipSprite(blip, v.blip["id"]) SetBlipScale(blip, 0.5) SetBlipAsShortRange(blip, true) SetBlipColour(blip, v.blip["colour"]) BeginTextCommandSetBlipName("STRING") AddTextComponentString(v.blip["name"]) EndTextCommandSetBlipName(blip) end end end } } function GetFramework() local Get = nil if Config.Framework == "ESX" then while Get == nil do TriggerEvent('esx:getSharedObject', function(Set) Get = Set end) Citizen.Wait(0) end elseif Config.Framework == "NewESX" then Get = exports['es_extended']:getSharedObject() elseif Config.Framework == "QBCore" then Get = exports["qb-core"]:GetCoreObject() elseif Config.Framework == "OldQBCore" then while Get == nil do TriggerEvent('QBCore:GetObject', function(Set) Get = Set end) Citizen.Wait(200) end end return Get end

 

🔧 命令

  • /carshop– 打开汽车商店菜单
  • /testdrive– 开始试用
  • /buycar– 购买指定车辆

💡 用法

  1. 接近汽车经销商标记
  2. 按下可打开菜单E
  3. 按类别浏览车辆
  4. 自定义车辆颜色
  5. 查看详细规格
  6. 购买或试驾车辆
  7. 使用首选付款方式完成交易
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 共4条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容