Agency-Shops Instalação
Cada 24/7, LTD, Rob's Liquor, loja de ferragens, Ammu-Nation e posto de combustível no mapa em um único script.

01Instalação
- 1Extract Agency-Shops into your resources folder
- 2Certifique-se de que o OneSync está ativado no seu servidor
- 3Add ensure Agency-Shops to server.cfg, after your framework, your inventory and oxmysql
- 4Inicie o servidor: as tabelas do banco de dados são criadas na primeira inicialização (install/agency_shop.sql só é necessário se o usuário do banco de dados não puder criar tabelas)
- 5Adicione add_ace group.admin agency.shop allow para conceder aos admins acesso ao painel /ashops
- 6Usa qb-shops, esx_shops ou as lojas do ox_inventory? Remova as entradas de 24/7 deles, ou dois caixas ficarão atrás do mesmo balcão
- 7Usa qb-storerobbery ou um script semelhante? Desative um deles ou defina Config.Robbery.Enabled = false
- 8Usa um script de combustível com bombas próprias? Desative a interação com as bombas dele ou defina Config.GasStations.Enabled = false
- 9Standalone: preencha Config.Standalone para dinheiro e itens (consulte a página de configuração)
- 10Opcional: insira os endereços de webhook do Discord em config_server.lua, que nunca é enviado aos jogadores
02Dependências
oxmysql (obrigatório)OneSync (obrigatório)QBCore, QBox ou ESX (opcional, sem nenhum funciona em modo standalone)Um inventário (opcional: ox_inventory, qs-inventory ou o do seu framework, detetado automaticamente)Agency Phone (opcional, adiciona o Agency Pay como forma de pagamento)Agency-Notify (opcional, caso contrário a loja exibe suas próprias mensagens)ox_target ou qb-target (opcional, caso contrário o aviso de tecla é usado)ps-dispatch ou cd_dispatch (opcional, para alertas de assalto e furto, caso contrário um alerta integrado é usado)Um script de combustível (opcional: LegacyFuel, ox_fuel, cdn-fuel, ps-fuel, lc_fuel, Renewed-Fuel, okokGasStation ou qs-fuelstations, caso contrário o sistema de combustível integrado funciona)
03Arquivo SQL
Opcional: o recurso cria estas tabelas sozinho ao iniciar. Importe este arquivo só se você preparar o banco de dados manualmente:
-- =============================================================================
-- 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`)
);
+Bom saber
O Agency-Shops funciona logo após a linha ensure. Quatro pontos merecem atenção antes da primeira inicialização: a ordem de inicialização, o banco de dados, o acesso de admin e outros scripts de loja, assalto ou combustível.
- Ordem de Inicialização e OneSync
- Coloque ensure Agency-Shops após o seu framework, seu inventário e oxmysql no server.cfg. O OneSync deve estar ativado e o oxmysql é obrigatório.
- Base de dados
- As tabelas agency_shop_owned, agency_shop_orders, agency_shop_points, agency_shop_ledger, agency_shop_overrides e agency_shop_sales são criadas na primeira inicialização. install/agency_shop.sql só é necessário quando o seu utilizador da base de dados não pode criar tabelas, e Config.AutoApplySql = false desativa a etapa automática.
- Acesso de Administrador
- Administradores são jogadores com o ACE agency.shop, group.admin ou group.superadmin, ou um grupo de Config.Admin.Groups. add_ace group.admin agency.shop allow concede o painel /ashops ao seu grupo de administração. Em servidores standalone, Config.Standalone.admins lista as licenças.
- Outros Scripts de Lojas
- Remova as entradas 24/7 de qb-shops, esx_shops ou das lojas do ox_inventory, caso contrário dois operadores de caixa ficam atrás do mesmo balcão. Desative qb-storerobbery e scripts semelhantes, ou defina Config.Robbery.Enabled = false. Para um script de combustível com bombas próprias, desative a interação das bombas ou defina Config.GasStations.Enabled = false.
?Perguntas frequentes
Onde entram os webhooks do Discord?
Em config_server.lua, para Ownership, Register, Deliveries, Shoplift e Robbery. Esse ficheiro nunca é enviado aos jogadores.
Preciso do Agency Phone?
Não. Quando o agency-phone está ativo, o Agency Pay é disponibilizado automaticamente no caixa e na bomba. Sem ele, os jogadores pagam com dinheiro ou cartão.