Vehicle Keys usa ocho ítems de inventario. Cada nombre se lee de config/main.lua, así que puedes renombrar cualquiera; renómbralo también en tu inventario, o dejarán de coincidir.
Ítem | Campo del config | Usable | Qué hace |
|---|---|---|---|
|
| Sí | Cierra o abre el coche cuya matrícula lleva. No debe apilarse, para que cada llave conserve su propia matrícula. |
|
| Sí | La llave maestra: cierra o abre el vehículo más cercano y da a los admins acceso a todos los coches mientras la llevan. |
|
| Sí | Inicia la ganzúa en el vehículo cerrado más cercano. |
|
| Sí | Lo mismo, y puede saltarse el requisito de policía. |
|
| Sí | Coloca el número de matrícula que lleva en el vehículo más cercano. No debe apilarse. |
|
| No | Hay que llevarlo encima para cambiar una matrícula. Nunca se gasta. |
|
| Sí | El propio rastreador: se instala en el vehículo más cercano y se gasta. Al quitar un rastreador, se recupera. |
|
| Sí | El receptor portátil: abre la lista de coches rastreados. También es necesario para |
Qué lleva una llave#
Cada llave se crea con estos metadatos, y es lo que lee cada comprobación:
{
plate = 'ABC 123', -- upper-case, trimmed
model = 'SULTAN', -- the vehicle's name, upper-case
description = 'SULTAN ABC 123' -- what the inventory shows
}Un ítem de matrícula sigue la misma idea: { plate = 'XYZ 789', description = 'XYZ 789' }. Las matrículas compradas en la tienda de copias vienen con un número nuevo que aún no es de nadie, y en ox_inventory cualquier matrícula creada sin número recibe uno automáticamente.
Definiciones de ítems#
Elige tu inventario, pega el bloque en su lista de ítems y reinicia el inventario. Añade una imagen con el nombre de cada ítem (vehiclekeys.png, plate.png…) a la carpeta de imágenes del inventario.
Añade a ox_inventory/data/items.lua. La matrícula, el GPS y el rastreador se usan a través de los exports propios del script, configurados con client.export:
['vehiclekeys'] = {
label = 'Vehicle Keys',
weight = 0,
stack = false,
close = true,
description = 'Keys to a vehicle',
},
['adminvehiclekey'] = {
label = 'Admin Vehicle Key',
weight = 0,
stack = false,
close = true,
description = 'Master key that opens any vehicle',
},
['carlockpick'] = {
label = 'Lockpick',
weight = 500,
stack = true,
close = true,
description = 'Used to break into vehicles',
},
['caradvancedlockpick'] = {
label = 'Advanced Lockpick',
weight = 500,
stack = true,
close = true,
description = 'A sturdier lockpick for tougher locks',
},
['plate'] = {
label = 'License Plate',
weight = 500,
stack = false,
close = true,
consume = 0,
description = 'A vehicle license plate',
client = {
export = 'qs-vehiclekeys.usePlate',
},
},
['screwdriver'] = {
label = 'Screwdriver',
weight = 500,
stack = true,
close = true,
description = 'Handy for swapping plates',
},
['vehiclegps'] = {
label = 'Vehicle GPS',
weight = 500,
stack = true,
close = true,
consume = 0,
description = 'Installs a GPS tracker on a vehicle',
client = {
export = 'qs-vehiclekeys.useGps',
},
},
['vehicletracker'] = {
label = 'Vehicle Tracker',
weight = 500,
stack = true,
close = true,
consume = 0,
description = 'Locates a tracked vehicle',
client = {
export = 'qs-vehiclekeys.useTracker',
},
},En ESX y QBCore, las llaves y las ganzúas se registran como usables a través del framework, así que no necesitan export. Un servidor standalone no tiene framework con el que registrarlas; dales también un export a esas tres:
-- standalone only
client = { export = 'qs-vehiclekeys.useKey' }, -- inside 'vehiclekeys'
client = { export = 'qs-vehiclekeys.useLockpick' }, -- inside 'carlockpick'
client = { export = 'qs-vehiclekeys.useAdvancedLockpick' }, -- inside 'caradvancedlockpick'Las imágenes van en ox_inventory/web/images/.
Añade a qb-core/shared/items.lua. unique = true en la llave mantiene cada llave en su propia ranura con su propia matrícula:
['vehiclekeys'] = { ['name'] = 'vehiclekeys', ['label'] = 'Vehicle Keys', ['weight'] = 0, ['type'] = 'item', ['image'] = 'vehiclekeys.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Keys to a vehicle' },
['adminvehiclekey'] = { ['name'] = 'adminvehiclekey', ['label'] = 'Admin Vehicle Key', ['weight'] = 0, ['type'] = 'item', ['image'] = 'adminvehiclekey.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Master key that opens any vehicle' },
['carlockpick'] = { ['name'] = 'carlockpick', ['label'] = 'Lockpick', ['weight'] = 500, ['type'] = 'item', ['image'] = 'carlockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Used to break into vehicles' },
['caradvancedlockpick'] = { ['name'] = 'caradvancedlockpick', ['label'] = 'Advanced Lockpick', ['weight'] = 500, ['type'] = 'item', ['image'] = 'caradvancedlockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A sturdier lockpick for tougher locks' },
['plate'] = { ['name'] = 'plate', ['label'] = 'License Plate', ['weight'] = 500, ['type'] = 'item', ['image'] = 'plate.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A vehicle license plate' },
['screwdriver'] = { ['name'] = 'screwdriver', ['label'] = 'Screwdriver', ['weight'] = 500, ['type'] = 'item', ['image'] = 'screwdriver.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Handy for swapping plates' },
['vehiclegps'] = { ['name'] = 'vehiclegps', ['label'] = 'Vehicle GPS', ['weight'] = 500, ['type'] = 'item', ['image'] = 'vehiclegps.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Installs a GPS tracker on a vehicle' },
['vehicletracker'] = { ['name'] = 'vehicletracker', ['label'] = 'Vehicle Tracker', ['weight'] = 500, ['type'] = 'item', ['image'] = 'vehicletracker.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Locates a tracked vehicle' },Las imágenes van en qb-inventory/html/images/.
Añade a qs-inventory/shared/items.lua:
['vehiclekeys'] = { ['name'] = 'vehiclekeys', ['label'] = 'Vehicle Keys', ['weight'] = 0, ['type'] = 'item', ['image'] = 'vehiclekeys.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Keys to a vehicle' },
['adminvehiclekey'] = { ['name'] = 'adminvehiclekey', ['label'] = 'Admin Vehicle Key', ['weight'] = 0, ['type'] = 'item', ['image'] = 'adminvehiclekey.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Master key that opens any vehicle' },
['carlockpick'] = { ['name'] = 'carlockpick', ['label'] = 'Lockpick', ['weight'] = 500, ['type'] = 'item', ['image'] = 'carlockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Used to break into vehicles' },
['caradvancedlockpick'] = { ['name'] = 'caradvancedlockpick', ['label'] = 'Advanced Lockpick', ['weight'] = 500, ['type'] = 'item', ['image'] = 'caradvancedlockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A sturdier lockpick for tougher locks' },
['plate'] = { ['name'] = 'plate', ['label'] = 'License Plate', ['weight'] = 500, ['type'] = 'item', ['image'] = 'plate.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A vehicle license plate' },
['screwdriver'] = { ['name'] = 'screwdriver', ['label'] = 'Screwdriver', ['weight'] = 500, ['type'] = 'item', ['image'] = 'screwdriver.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Handy for swapping plates' },
['vehiclegps'] = { ['name'] = 'vehiclegps', ['label'] = 'Vehicle GPS', ['weight'] = 500, ['type'] = 'item', ['image'] = 'vehiclegps.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Installs a GPS tracker on a vehicle' },
['vehicletracker'] = { ['name'] = 'vehicletracker', ['label'] = 'Vehicle Tracker', ['weight'] = 500, ['type'] = 'item', ['image'] = 'vehicletracker.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Locates a tracked vehicle' },Las imágenes van en qs-inventory/html/images/.
codem-inventory y tgiann-inventory se usan a través de las funciones de ítems propias de tu framework. Registra los mismos ocho ítems en la lista de ítems de ese inventario, con estas tres reglas:
vehiclekeysyplateno deben apilarse, para que cada uno conserve sus metadatos.Todos los ítems excepto el destornillador son usables.
El inventario debe guardar metadatos de ítems: sin ellos, las llaves no abren nada.
Dónde los consiguen los jugadores#
Ítem | Origen |
|---|---|
| Hacer un puente o robar a un conductor NPC (mientras el config entregue llaves), una transferencia de llave de otro jugador, la tienda de copias, el NPC de recuperación, |
| La tienda de copias vende ambos. Cambiar una matrícula también devuelve la antigua como ítem de matrícula. |
| No los vende el script: ponlos en una tienda, un banco de crafteo o un trabajo de tu elección. Reserva la llave maestra para el staff. |



