Accueil › Documentation › Installation · origen_graffiti

Installation · origen_graffiti

1. SQL

Exécute sql/install.sql ou laisse la ressource créer la table automatiquement au premier démarrage :

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. Clé API Fivemanage

Ajoute ceci à ton server.cfg :

text
set graffiti_fivemanage_key "YOUR_API_KEY_HERE"

La clé API ne doit pas figurer dans le code source. Définis-la uniquement via server.cfg. Obtiens ta clé sur docs.fivemanage.com.

3. Objets

Ajoute les deux objets nécessaires à ton inventaire. Seuls graffiti_spray et graffiti_eraser sont requis.

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);

Référence des métadonnées des objets

Les deux objets portent des métadonnées définies automatiquement par la boutique au moment de l’achat :

Objet Champ Description
graffiti_spray metadata.color Chaîne de couleur hexadécimale, p. ex. #CC2222. nil = bombe de couleur libre
graffiti_spray metadata.durability Entier de 0 à 100, diminue au fur et à mesure que tu peins
graffiti_eraser metadata.durability Entier de 0 à 100, diminue à chaque utilisation pour effacer

4. server.cfg

text
ensure origen_graffiti