01安装
- 1解压 Agency-Gangs 到你的 resources 文件夹
- 2在 server.cfg 中添加 ensure Agency-Gangs,置于框架、背包系统和 oxmysql 之后
- 3启动服务器:数据库表会在首次启动时自动创建(仅当数据库用户无建表权限时才需要 sql/install.sql)
- 4将 install/images 中的5张物品图片复制到背包系统的图片文件夹中
- 5ox_inventory:将 README 中的5个物品添加到 ox_inventory/data/items.lua。QBCore 和 QBox 背包在运行时动态获取物品,ESX 执行 sql/install.sql 末尾的 INSERT
- 6通过 add_ace group.admin agency.gangs allow 为管理员授予面板权限
- 7在游戏中输入 /agangs 打开面板,创建帮派并在帮派编辑器中放置藏身处交互点,或在导入页面导入已有帮派
02依赖项
oxmysql(必需)OneSync (必需)QBCore、QBox 或 ESX(可选,没有框架时以独立模式运行)背包系统(可选:ox_inventory, qb-inventory, ps-inventory, lj-inventory, jpr-inventory, qs-inventory 或 codem-inventory,自动识别)Agency Phone 与 Agency Pad(可选,添加 Gangs 应用)Agency Housing(可选,帮派据点)Agency Blackmarket(可选,帮派折扣与帮派银行支付)Agency-Garage 或 jg-advancedgarages(可选,帮派车库停放成员个人载具)ox_target 或 qb-target (可选,否则使用按键提示)Agency-Notify(可选,未启用时使用框架默认通知)Agency-Companion(可选且免费:通过 /app 将脚本与 Agency Companion 应用关联)
03SQL 文件
可选:资源启动时会自动创建这些数据表。只有在手动配置数据库时才需要导入此文件:
-- Agency Gangs: the script creates these tables by itself on the first start.
-- Run this file only if your database user may not create tables.
CREATE TABLE IF NOT EXISTS `agency_gangs` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`label` VARCHAR(64) NOT NULL,
`leader` VARCHAR(64) NULL,
`bank` BIGINT NOT NULL DEFAULT 0,
`dirty` BIGINT NOT NULL DEFAULT 0,
`xp` INT NOT NULL DEFAULT 0,
`data` LONGTEXT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_gang_members` (
`identifier` VARCHAR(64) NOT NULL,
`gang_id` INT NOT NULL,
`grade` INT NOT NULL DEFAULT 0,
`name` VARCHAR(100) NULL,
`joined_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`last_seen` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`identifier`),
KEY `gang_id` (`gang_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_gang_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`gang_id` INT NOT NULL,
`category` VARCHAR(20) NOT NULL,
`actor` VARCHAR(100) NULL,
`message` VARCHAR(255) NOT NULL,
`amount` BIGINT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `gang_id` (`gang_id`, `id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_gang_territories` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`label` VARCHAR(64) NOT NULL,
`x` DOUBLE NOT NULL, `y` DOUBLE NOT NULL, `z` DOUBLE NOT NULL,
`radius` DOUBLE NOT NULL DEFAULT 150,
`income` INT NOT NULL DEFAULT 0,
`owner` INT NULL DEFAULT NULL,
`captured_at` INT NULL DEFAULT NULL,
`data` LONGTEXT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_gang_graffiti` (
`id` INT NOT NULL AUTO_INCREMENT,
`gang_id` INT NOT NULL,
`x` DOUBLE NOT NULL, `y` DOUBLE NOT NULL, `z` DOUBLE NOT NULL,
`nx` DOUBLE NOT NULL, `ny` DOUBLE NOT NULL, `nz` DOUBLE NOT NULL,
`territory` INT NULL DEFAULT NULL,
`created_at` INT NOT NULL,
`text` VARCHAR(24) NULL,
`style` VARCHAR(12) NULL,
`size` VARCHAR(2) NULL,
PRIMARY KEY (`id`),
KEY `gang_id` (`gang_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_gang_wars` (
`id` INT NOT NULL AUTO_INCREMENT,
`kind` VARCHAR(10) NOT NULL,
`attacker` INT NULL, `defender` INT NULL,
`wager` BIGINT NOT NULL DEFAULT 0,
`status` VARCHAR(12) NOT NULL,
`started` INT NULL, `ends` INT NULL,
`winner` INT NULL,
`data` LONGTEXT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ESX only: the new items (QBCore / QBox get them automatically, ox_inventory see README).
-- INSERT IGNORE INTO `items` (`name`, `label`, `weight`) VALUES
-- ('spraycan', 'Spray Can', 1), ('spray_remover', 'Spray Remover', 1), ('zipties', 'Zip Ties', 1),
-- ('head_bag', 'Head Bag', 1), ('gang_contract', 'Gang Contract', 1);
