Inicio › Documentación › Instalación · origen_graffiti

Instalación · origen_graffiti

1. SQL

Ejecuta sql/install.sql o deja que el recurso cree la tabla automáticamente en el primer arranque:

sql
CREATE TABLE IF NOT EXISTS `graffiti_tags` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `quad_data` LONGTEXT NOT NULL,
  `strokes_data` LONGTEXT NOT NULL,
  `created_by` VARCHAR(64) NULL DEFAULT NULL,
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `center_x` DOUBLE NULL DEFAULT NULL,
  `center_y` DOUBLE NULL DEFAULT NULL,
  `center_z` DOUBLE NULL DEFAULT NULL,
  `image_url` VARCHAR(768) NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_graffiti_center` (`center_x`, `center_y`, `center_z`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2. API key de Fivemanage

Añade esto a tu server.cfg:

text
set graffiti_fivemanage_key "YOUR_API_KEY_HERE"

La API key no debe estar en el código fuente. Defínela únicamente desde server.cfg. Consigue tu clave en docs.fivemanage.com.

3. Objetos

Añade los dos objetos necesarios a tu inventario. Solo hacen falta graffiti_spray y graffiti_eraser.

ox_inventory — data/items.lua

lua
['graffiti_spray'] = {
    label       = 'Spray Paint',
    weight      = 300,
    stack       = false,
    close       = true,
    description = 'A can of spray paint. Color and durability stored in metadata.',
    client      = { image = 'graffiti_spray.png' },
},
 
['graffiti_eraser'] = {
    label       = 'Graffiti Eraser',
    weight      = 200,
    stack       = false,
    close       = true,
    description = 'Removes graffiti strokes from a canvas. Has limited uses.',
    client      = { image = 'graffiti_eraser.png' },
},

qb-core / qbx-core — qb-core/shared/items.lua

lua
['graffiti_spray'] = {
    name        = 'graffiti_spray',
    label       = 'Spray Paint',
    weight      = 300,
    type        = 'item',
    image       = 'graffiti_spray.png',
    unique      = true,
    useable     = true,
    shouldClose = true,
    combinable  = nil,
    description = 'A can of spray paint. Color and durability stored in metadata.',
},
 
['graffiti_eraser'] = {
    name        = 'graffiti_eraser',
    label       = 'Graffiti Eraser',
    weight      = 200,
    type        = 'item',
    image       = 'graffiti_eraser.png',
    unique      = true,
    useable     = true,
    shouldClose = true,
    combinable  = nil,
    description = 'Removes graffiti strokes from a canvas. Has limited uses.',
},

ESX — SQL

sql
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES
    ('graffiti_spray',  'Spray Paint',     300, 0, 1),
    ('graffiti_eraser', 'Graffiti Eraser', 200, 0, 1);

Referencia de metadatos de los objetos

Ambos objetos llevan metadatos que la tienda asigna automáticamente en el momento de la compra:

Objeto Campo Descripción
graffiti_spray metadata.color Cadena de color hexadecimal, p. ej. #CC2222. nil = spray de color libre
graffiti_spray metadata.durability Entero de 0 a 100, disminuye a medida que pintas
graffiti_eraser metadata.durability Entero de 0 a 100, disminuye con cada uso al borrar

4. server.cfg

text
ensure origen_graffiti