Comandos#
Dealership Creator registra dos comandos en el juego y un conjunto de comandos de consola. Los del juego respetan los permisos; los de consola existen para explicar lo que está pensando el script y para arreglar cosas cuando no puedes entrar al juego.
Comando | Dónde | Descripción |
|---|---|---|
| En el juego | Abre la ventana del jugador: los concesionarios de los que un jugador es dueño o en los que trabaja, sus planes de financiación y sus preferencias. Asignado a |
| En el juego | Abre la ventana del creador. Solo administradores — cualquier otra persona ve la pantalla de acceso con su identificador y la línea para concedérselo. El nombre es |
| Consola | Si el jugador |
| Consola | Cuáles de los nueve permisos de tienda tiene ese jugador en ese concesionario, y por qué. |
| Consola | Recorre cada filtro entre un jugador y una sala de exposición — activada, permitida, abierta, con stock, lo bastante cerca — y nombra el que se cerró. |
| Consola | Cada concesionario: lo que contiene la base de datos, lo que contiene la caché y lo que recibe un cliente. |
| Consola | Por concesionario, por qué aparece o no un punto de venta de recompra. |
| Consola del cliente (F8) | Lo que este cliente cree sobre el mostrador de cada concesionario — dónde está, de qué tipo es y si se registró. |
| Consola | Vuelve a leer los ajustes, los concesionarios o ambos desde la base de datos sin reiniciar. |
| Consola | Envía un embed de prueba a cada canal de Discord de Config.Webhooks que tenga una URL, e indica cuáles aceptó Discord. |
| Consola | Elimina todas las tablas de Dealership Creator y las reconstruye con el contenido inicial. |
dbresetelimina todos los concesionarios, ventas, miembros del personal y ajustes de Dealership Creator, y no se puede deshacer. Se niega a ejecutarse desde el juego, sin la palabraconfirm, y a menos que la depuración esté activada — configuraConfig.Debug = true, o inicia el servidor con la convarqs-dealership:debug 1. Úsalo en un servidor de pruebas.
<id> es el id de servidor del jugador — el número junto a su nombre en la lista de jugadores.
Exports del cliente#
Para abrir la interfaz o una sala de exposición desde tus propios scripts — un prop de portátil, un menú radial, una app del teléfono — y para consultar sobre un vehículo.
Abrir y cerrar la interfaz
exports['qs-dealership']:OpenUi() -- the player's window
exports['qs-dealership']:OpenUi('admin') -- the creator's window
exports['qs-dealership']:CloseUi()
exports['qs-dealership']:ToggleUi()
local open = exports['qs-dealership']:IsUiOpen()
-- Open on a given section, e.g. one shop's sales desk
exports['qs-dealership']:Navigate('manage', '3:sales')Salas de exposición
exports['qs-dealership']:OpenDealership(dealershipId) -- walk the player into a showroom
exports['qs-dealership']:CloseDealership()
local browsing = exports['qs-dealership']:IsBrowsing()
local list = exports['qs-dealership']:GetDealerships()¿Es un vehículo temporal?
Llámalo desde un garaje, un taller de tuning o un desguace para rechazar los coches de reposición y de prueba de conducción.
exports['qs-dealership']:IsTemporaryVehicle(vehicle) -- restock run OR test drive
exports['qs-dealership']:IsMissionVehicle(vehicle) -- restock runs only
exports['qs-dealership']:IsTestDriveVehicle(vehicle) -- test drives onlyCada uno lee un state bag replicado, así que responde correctamente para un coche que conduce otra persona, y sigue respondiendo si se reinicia el recurso.
Notificaciones y datos del jugador
exports['qs-dealership']:Notify({
type = 'success', -- success · error · warning · info
title = 'Deal closed',
description = 'The Adder is yours.',
duration = 5000,
})
local player = exports['qs-dealership']:GetPlayerData()Muebles
-- Add a piece to a category of the furnishing catalogue from another resource
exports['qs-dealership']:AddFurniture('chair', {
label = 'Leather bench',
object = 'prop_bench_01a',
price = 450,
})
local decorating = exports['qs-dealership']:inDecorate()Exports del servidor#
Cómo otro recurso controla Dealership Creator — un coche de recompensa, un atraco que roba stock, un script de trabajo que comprueba quién trabaja dónde.
GiveVehicle
Registra un vehículo a un jugador a través del framework que esté instalado — el mismo puente que usa una compra, así que acaba en el mismo garaje que un coche comprado.
local plate = exports['qs-dealership']:GiveVehicle(source, {
model = 'adder',
plate = 'WINNER01', -- optional, generated from the plate format if omitted
props = {}, -- optional vehicle properties
garage = 'pillboxgarage', -- optional, defaults to the Default garage setting
})
-- returns the plate, or falseConcesionarios y stock
local all = exports['qs-dealership']:GetDealerships()
local shop = exports['qs-dealership']:GetDealership(3)
local stock = exports['qs-dealership']:GetStock(3)
-- Move a stock level: a heist that steals one, an event that hands one over.
-- Returns false when the shop does not sell it or the level would go out of range.
exports['qs-dealership']:MoveStock(3, 'adder', -1)Personal y permisos
local staff = exports['qs-dealership']:IsDealershipStaff(source, 3)
local mask = exports['qs-dealership']:GetStoreMask(source, 3) -- the shop rights as a bitmask
local admin = exports['qs-dealership']:IsAdmin(source)
local can = exports['qs-dealership']:PlayerHasPermission(source, 'dealership.catalog')
local ok = exports['qs-dealership']:HasPermission(mask, 'store.sell')
local names = exports['qs-dealership']:DecodePermissions(mask, 'store') -- { 'sell', 'stock', ... }RegisterPermissions, PermissionNamespaces y PermissionMask exponen la misma disposición de bits a otro recurso, para que pueda compartirla en lugar de inventar una segunda.
Ajustes y el framework
local tax = exports['qs-dealership']:GetSetting('dealership.taxPercent', 0)
local framework = exports['qs-dealership']:GetFramework()
exports['qs-dealership']:Notify(source, { type = 'info', title = 'Your order arrived' })Sobre los errores#
Cada callback que puede rechazar devuelve una clave de locale, no una frase: error.no_permission, error.outside_zone, error.dealership_no_funds. Es deliberado — el mismo fallo se lee en el idioma de cada jugador, en los cinco. Registra la clave en tus propios scripts y tradúcela con los textos de locales/.



