Agency-Shops Installation
Jeder 24/7, LTD, Rob's Liquor, Baumarkt, Ammu-Nation und jede Tankstelle auf der Karte in einem Skript für FiveM.

01Installation
- 1Extract Agency-Shops into your resources folder
- 2Stelle sicher, dass OneSync auf deinem Server aktiviert ist
- 3Add ensure Agency-Shops to server.cfg, after your framework, your inventory and oxmysql
- 4Starte den Server: Die Datenbanktabellen werden beim ersten Start erstellt (install/agency_shop.sql wird nur benötigt, wenn dein Datenbankbenutzer keine Tabellen erstellen darf)
- 5Füge add_ace group.admin agency.shop allow hinzu, um Admins das /ashops-Panel freizuschalten
- 6Nutzt du qb-shops, esx_shops oder die ox_inventory-Shops? Entferne deren 24/7-Einträge, da sonst zwei Kassierer hinter derselben Theke stehen
- 7Nutzt du qb-storerobbery oder ein ähnliches Skript? Schalte eines davon ab oder setze Config.Robbery.Enabled = false
- 8Nutzt du ein Kraftstoffskript mit eigenen Zapfsäulen? Deaktiviere dessen Zapfsäulen-Interaktion oder setze Config.GasStations.Enabled = false
- 9Standalone: Fülle Config.Standalone für Geld und Items aus (siehe Konfigurationsseite)
- 10Optional: Trage deine Discord-Webhook-Adressen in config_server.lua ein, die niemals an Spieler gesendet wird
02Abhängigkeiten
oxmysql (erforderlich)OneSync (erforderlich)QBCore, QBox oder ESX (optional, ohne Framework läuft es standalone)Ein Inventar (optional: ox_inventory, qs-inventory oder das deines Frameworks, wird automatisch erkannt)Agency Phone (optional, fügt Agency Pay als Zahlungsmethode hinzu)Agency-Notify (optional, andernfalls zeigt der Shop eigene Benachrichtigungen an)ox_target oder qb-target (optional, andernfalls wird die Tastenaufforderung genutzt)ps-dispatch oder cd_dispatch (optional, für Raub- und Ladendiebstahl-Meldungen, andernfalls wird eine integrierte Meldung verwendet)Ein Kraftstoffskript (optional: LegacyFuel, ox_fuel, cdn-fuel, ps-fuel, lc_fuel, Renewed-Fuel, okokGasStation oder qs-fuelstations, andernfalls läuft das integrierte Kraftstoffsystem)
03SQL Datei
Optional: Die Resource legt diese Tabellen beim Start selbst an. Importiere die Datei nur, wenn du die Datenbank von Hand einrichtest:
-- =============================================================================
-- 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`)
);
+Gut zu wissen
Agency-Shops funktioniert direkt nach der ensure-Zeile. Vier Punkte sind vor dem ersten Start einen Blick wert: die Startreihenfolge, die Datenbank, Admin-Zugriff und andere Shop-, Raub- oder Kraftstoffskripte.
- Startreihenfolge und OneSync
- Platziere ensure Agency-Shops nach deinem Framework, deinem Inventar und oxmysql in der server.cfg. OneSync muss aktiviert sein und oxmysql ist erforderlich.
- Datenbank
- Die Tabellen agency_shop_owned, agency_shop_orders, agency_shop_points, agency_shop_ledger, agency_shop_overrides und agency_shop_sales werden beim ersten Start erstellt. install/agency_shop.sql wird nur benötigt, wenn dein Datenbank-Benutzer keine Tabellen erstellen darf, und Config.AutoApplySql = false schaltet den automatischen Schritt aus.
- Admin-Zugriff
- Admins sind Spieler mit der ACE agency.shop, group.admin oder group.superadmin, oder einer Gruppe aus Config.Admin.Groups. add_ace group.admin agency.shop allow gibt deiner Admin-Gruppe Zugriff auf das /ashops-Panel. Auf Standalone-Servern listet Config.Standalone.admins Lizenzen auf.
- Andere Shop-Skripte
- Entferne die 24/7-Einträge von qb-shops, esx_shops oder den ox_inventory-Shops, da sonst zwei Kassierer hinter derselben Theke stehen. Schalte qb-storerobbery und ähnliche Skripte aus oder setze Config.Robbery.Enabled = false. Schalte bei einem Treibstoff-Skript mit eigenen Zapfsäulen dessen Zapfsäulen-Interaktion aus oder setze Config.GasStations.Enabled = false.
?Häufige Fragen
Wohin kommen die Discord-Webhooks?
In die config_server.lua, für Ownership, Register, Deliveries, Shoplift und Robbery. Diese Datei wird niemals an Spieler gesendet.
Brauche ich Agency Phone?
Nein. Wenn agency-phone läuft, wird Agency Pay an der Kasse und an der Zapfsäule automatisch angeboten. Ohne zahlen Spieler mit Bargeld oder Karte.