Agency-Shops Installation
Chaque 24/7, LTD, Rob's Liquor, quincaillerie, Ammu-Nation et station-service de la carte dans un seul script.

01Installation
- 1Extract Agency-Shops into your resources folder
- 2Assurez-vous que OneSync est activé sur votre serveur
- 3Add ensure Agency-Shops to server.cfg, after your framework, your inventory and oxmysql
- 4Démarrez le serveur: les tables de base de données sont créées au premier démarrage (install/agency_shop.sql est requis uniquement si votre utilisateur de base de données ne peut pas créer de tables)
- 5Ajoutez add_ace group.admin agency.shop allow pour donner accès aux admins au panneau /ashops
- 6Vous utilisez qb-shops, esx_shops ou les boutiques ox_inventory? Supprimez leurs entrées 24/7, sinon deux caissiers se trouveront derrière le même comptoir
- 7Vous utilisez qb-storerobbery ou un script similaire? Désactivez l'un d'eux, ou définissez Config.Robbery.Enabled = false
- 8Vous utilisez un script de carburant avec ses propres pompes? Désactivez ses interactions de pompe, ou définissez Config.GasStations.Enabled = false
- 9Standalone: complétez Config.Standalone pour l'argent et les objets (voir la page de configuration)
- 10Optionnel: placez vos adresses de webhook Discord dans config_server.lua, qui n'est jamais envoyé aux joueurs
02Dépendances
oxmysql (requis)OneSync (requis)QBCore, QBox ou ESX (facultatif, fonctionne en standalone sans framework)Un inventaire (optionnel: ox_inventory, qs-inventory ou celui de votre framework, détecté automatiquement)Agency Phone (optionnel, ajoute Agency Pay comme moyen de paiement)Agency-Notify (optionnel, sinon le magasin affiche ses propres messages)ox_target ou qb-target (optionnel, sinon l'invite de touche est utilisée)ps-dispatch ou cd_dispatch (optionnel, pour les alertes de braquage et de vol à l'étalage, sinon une alerte intégrée est utilisée)Un script de carburant (optionnel: LegacyFuel, ox_fuel, cdn-fuel, ps-fuel, lc_fuel, Renewed-Fuel, okokGasStation ou qs-fuelstations, sinon le système de carburant intégré fonctionne)
03Fichier SQL
Optionnel : la ressource crée ces tables elle-même au démarrage. N'importez ce fichier que si vous préparez la base de données à la main :
-- =============================================================================
-- AGENCY SHOP - database tables
-- Created automatically on start (Config.AutoApplySql = true). Run this file by
-- hand only if your database user may not create tables.
-- =============================================================================
CREATE TABLE IF NOT EXISTS `agency_shop_owned` (
`id` VARCHAR(64) NOT NULL,
`kind` VARCHAR(16) NOT NULL DEFAULT 'store',
`owner` VARCHAR(80) NOT NULL,
`owner_name` VARCHAR(120) NOT NULL DEFAULT '',
`name` VARCHAR(60) NULL DEFAULT NULL,
`balance` INT NOT NULL DEFAULT 0,
`prices` LONGTEXT NULL,
`stock` LONGTEXT NULL,
`staff` LONGTEXT NULL,
`fuel` INT NOT NULL DEFAULT 0,
`fuel_prices` LONGTEXT NULL,
`sales_total` INT NOT NULL DEFAULT 0,
`revenue_total` BIGINT NOT NULL DEFAULT 0,
`last_sale` TIMESTAMP NULL DEFAULT NULL,
`bought_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `owner` (`owner`)
);
CREATE TABLE IF NOT EXISTS `agency_shop_orders` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop` VARCHAR(64) NOT NULL,
`kind` VARCHAR(16) NOT NULL DEFAULT 'goods',
`items` LONGTEXT NULL,
`crates` INT NOT NULL DEFAULT 0,
`litres` INT NOT NULL DEFAULT 0,
`cost` INT NOT NULL DEFAULT 0,
`fee` INT NOT NULL DEFAULT 0,
`status` VARCHAR(16) NOT NULL DEFAULT 'open',
`courier` VARCHAR(80) NULL DEFAULT NULL,
`courier_name` VARCHAR(120) NULL DEFAULT NULL,
`eta` INT NULL DEFAULT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `shop` (`shop`),
KEY `status` (`status`)
);
CREATE TABLE IF NOT EXISTS `agency_shop_points` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop` VARCHAR(64) NOT NULL,
`kind` VARCHAR(16) NOT NULL,
`x` DOUBLE NOT NULL,
`y` DOUBLE NOT NULL,
`z` DOUBLE NOT NULL,
`h` DOUBLE NOT NULL DEFAULT 0,
`category` VARCHAR(40) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `shop` (`shop`)
);
CREATE TABLE IF NOT EXISTS `agency_shop_ledger` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop` VARCHAR(64) NOT NULL,
`kind` VARCHAR(24) NOT NULL,
`amount` INT NOT NULL DEFAULT 0,
`note` VARCHAR(160) NULL DEFAULT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `shop` (`shop`)
);
-- What admins change with /ashops: catalogs and store settings, laid over config.lua.
CREATE TABLE IF NOT EXISTS `agency_shop_overrides` (
`kind` VARCHAR(16) NOT NULL,
`id` VARCHAR(64) NOT NULL,
`data` LONGTEXT NULL,
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`kind`, `id`)
);
-- Every sale of an owned store or station, line by line: the owner's analytics.
CREATE TABLE IF NOT EXISTS `agency_shop_sales` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop` VARCHAR(64) NOT NULL,
`sale` VARCHAR(24) NOT NULL,
`item` VARCHAR(64) NOT NULL,
`qty` INT NOT NULL DEFAULT 0,
`amount` INT NOT NULL DEFAULT 0,
`account` VARCHAR(16) NOT NULL DEFAULT 'cash',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `shop_time` (`shop`, `created_at`)
);
+Bon à savoir
Agency-Shops fonctionne dès l'ajout de la ligne ensure. Quatre points méritent d'être vérifiés avant le premier démarrage: l'ordre de démarrage, la base de données, l'accès admin et les autres scripts de boutique, de braquage ou de carburant.
- Ordre de démarrage et OneSync
- Placez ensure Agency-Shops après votre framework, votre inventaire et oxmysql dans server.cfg. OneSync doit être activé et oxmysql est requis.
- Base de données
- Les tables agency_shop_owned, agency_shop_orders, agency_shop_points, agency_shop_ledger, agency_shop_overrides et agency_shop_sales sont créées au premier démarrage. install/agency_shop.sql est uniquement requis si votre utilisateur de base de données ne peut pas créer de tables, et Config.AutoApplySql = false désactive cette étape automatique.
- Accès administrateur
- Les administrateurs sont les joueurs disposant de l'ACE agency.shop, group.admin ou group.superadmin, ou d'un groupe défini dans Config.Admin.Groups. add_ace group.admin agency.shop allow accorde l'accès au panneau /ashops à votre groupe d'administration. Sur les serveurs autonomes, Config.Standalone.admins liste les licences.
- Autres scripts de magasins
- Supprimez les entrées 24/7 de qb-shops, esx_shops ou des magasins de ox_inventory, sinon deux caissiers apparaîtront derrière le même comptoir. Désactivez qb-storerobbery et les scripts similaires, ou définissez Config.Robbery.Enabled = false. Pour un script de carburant disposant de ses propres pompes, désactivez l'interaction avec ses pompes ou définissez Config.GasStations.Enabled = false.
?Questions fréquentes
Où vont les webhooks Discord ?
Dans config_server.lua, pour Propriété, Caisse, Livraisons, Vol à l'étalage et Braquage. Ce fichier n'est jamais envoyé aux joueurs.
Ai-je besoin de Agency Phone ?
Non. Si agency-phone est lancé, Agency Pay est proposé automatiquement à la caisse et à la pompe. Sans cela, les joueurs paient en liquide ou par carte.