Agency-Shops Instalacja
Każdy sklep 24/7, LTD, Rob's Liquor, sklep budowlany, Ammu-Nation i stacja paliw na mapie w jednym skrypcie dla FiveM.

01Instalacja
- 1Extract Agency-Shops into your resources folder
- 2Upewnij się, że OneSync jest włączony na Twoim serwerze
- 3Add ensure Agency-Shops to server.cfg, after your framework, your inventory and oxmysql
- 4Uruchom serwer: tabele w bazie danych utworzą się przy pierwszym starcie (plik install/agency_shop.sql jest potrzebny tylko wtedy, gdy użytkownik bazy nie ma uprawnień do tworzenia tabel)
- 5Dodaj add_ace group.admin agency.shop allow, aby nadać administratorom dostęp do panelu /ashops
- 6Używasz qb-shops, esx_shops lub sklepów z ox_inventory? Usuń ich wpisy 24/7, inaczej za tą samą ladą stanie dwóch kasjerów
- 7Używasz qb-storerobbery lub podobnego skryptu? Wyłącz jeden z nich albo ustaw Config.Robbery.Enabled = false
- 8Używasz skryptu paliwa z własnymi dystrybutorami? Wyłącz w nim interakcję z dystrybutorami albo ustaw Config.GasStations.Enabled = false
- 9Standalone: uzupełnij Config.Standalone dla pieniędzy i przedmiotów (zobacz stronę konfiguracji)
- 10Opcjonalnie: wpisz adresy webhooków Discord w config_server.lua, który nigdy nie jest wysyłany do graczy
02Zależności
oxmysql (wymagane)OneSync (wymagane)QBCore, QBox lub ESX (opcjonalnie, działa standalone bez żadnego z nich)Ekwipunek (opcjonalnie: ox_inventory, qs-inventory lub z Twojego frameworka, wykrywany automatycznie)Agency Phone (opcjonalnie, dodaje Agency Pay jako metodę płatności)Agency-Notify (opcjonalnie, w przeciwnym razie sklep wyświetla własne powiadomienia)ox_target lub qb-target (opcjonalnie, w przeciwnym razie używany jest komunikat klawisza)ps-dispatch lub cd_dispatch (opcjonalnie, dla alertów o napadzie i kradzieży, w przeciwnym razie działa alert wbudowany)Skrypt paliwa (opcjonalnie: LegacyFuel, ox_fuel, cdn-fuel, ps-fuel, lc_fuel, Renewed-Fuel, okokGasStation lub qs-fuelstations, w przeciwnym razie działa wbudowany system paliwa)
03Plik SQL
Opcjonalnie: resource tworzy te tabele automatycznie podczas uruchamiania. Zaimportuj ten plik tylko wtedy, gdy konfigurujesz bazę danych ręcznie:
-- =============================================================================
-- 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`)
);
+Warto wiedzieć
Agency-Shops działa od razu po dodaniu linijki ensure. Przed pierwszym uruchomieniem warto zwrócić uwagę na cztery kwestie: kolejność uruchamiania, bazę danych, dostęp administratora oraz inne skrypty sklepów, napadów lub paliwa.
- Kolejność uruchamiania i OneSync
- Umieść ensure Agency-Shops po swoim frameworku, ekwipunku i oxmysql w server.cfg. OneSync musi być włączony, a oxmysql jest wymagany.
- Baza danych
- Tabele agency_shop_owned, agency_shop_orders, agency_shop_points, agency_shop_ledger, agency_shop_overrides oraz agency_shop_sales są tworzone przy pierwszym uruchomieniu. Plik install/agency_shop.sql jest potrzebny tylko wtedy, gdy użytkownik bazy danych nie ma uprawnień do tworzenia tabel, a opcja Config.AutoApplySql = false wyłącza krok automatyczny.
- Dostęp administratora
- Administratorzy to gracze z uprawnieniem ACE agency.shop, group.admin lub group.superadmin, albo z grupy z Config.Admin.Groups. Komenda add_ace group.admin agency.shop allow nadaje dostęp do panelu /ashops Twojej grupie administratorów. Na serwerach standalone Config.Standalone.admins zawiera listę licencji.
- Inne skrypty sklepów
- Usuń wpisy 24/7 ze skryptów qb-shops, esx_shops lub sklepów ox_inventory, inaczej za tą samą ladą stanie dwóch kasjerów. Wyłącz qb-storerobbery i podobne skrypty albo ustaw Config.Robbery.Enabled = false. W przypadku skryptu paliwa z własnymi dystrybutorami wyłącz jego interakcję z dystrybutorami lub ustaw Config.GasStations.Enabled = false.
?Często zadawane pytania
Gdzie trafiają webhooki Discord?
Do pliku config_server.lua, dla sekcji Ownership, Register, Deliveries, Shoplift oraz Robbery. Ten plik nigdy nie jest wysyłany do graczy.
Czy potrzebuję Agency Phone?
Nie. Gdy agency-phone jest uruchomiony, Agency Pay jest automatycznie oferowane przy kasie i przy dystrybutorze. Bez niego gracze płacą gotówką lub kartą.