01安装
- 1将 Agency-Housing 解压到 resources 文件夹
- 2如尚未安装,请安装 PolyZone
- 3在 server.cfg 中 oxmysql 之后添加 ensure PolyZone 和 ensure Agency-Housing
- 4启动服务器:首次启动时会自动创建数据库表
- 5查看控制台:会显示检测到的框架,或提示 Running standalone
- 6可选:add_ace group.admin agency.housing allow 用于授予创建器权限
- 7独立模式:在 Config.Standalone 中填写金钱和管理员设置(见配置页面)
- 8从 1.0 更新:替换整个文件夹,将你的设置迁移到新的 config.lua 中,然后重启一次资源;数据库会自动更新。
- 9更新后,以管理员身份运行一次 /ahousethumbs,为新家具生成预览图。
02依赖项
oxmysql(必需)PolyZone(必需,地块边界基于它构建)QBCore、QBox 或 ESX(可选,没有框架时以独立模式运行)用于储物的背包系统(可选:ox_inventory、qb-inventory、qs、ps、lj 或 jpr)illenium-appearance 或 qb-clothing(可选,否则使用内置衣柜)车库脚本(可选:Agency-Garage、jg-advancedgarages 或 qb-garages,会自动识别)用于 Housing 应用的手机(可选:Agency Phone、Agency Pad、lb-phone 或 qs-smartphone-pro)
03SQL 文件
可选:资源启动时会自动创建这些数据表。只有在手动配置数据库时才需要导入此文件:
-- =====================================================
-- Agency Housing: database tables
-- =====================================================
--
-- Optional. Agency-Housing creates all of these on start and adds any column an
-- older database is missing, so a fresh server needs no import. Run this by
-- hand only if your database user is not allowed to create tables.
--
-- Safe to run more than once: CREATE TABLE IF NOT EXISTS leaves an existing
-- table and its data alone. Works on MariaDB and MySQL 8.
--
-- If you changed Config.TableName, change `agency_houses` below to match.
-- Houses, their owners, keys and everything placed in them.
CREATE TABLE IF NOT EXISTS `agency_houses` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`shell` VARCHAR(64) NOT NULL,
`price` INT NOT NULL DEFAULT 0,
`entrance` LONGTEXT NOT NULL,
`interior` LONGTEXT DEFAULT NULL,
`owner` VARCHAR(80) DEFAULT NULL,
`owner_name` VARCHAR(100) DEFAULT NULL,
`locked` TINYINT(1) NOT NULL DEFAULT 1,
`for_sale` TINYINT(1) NOT NULL DEFAULT 1,
`show_blip` TINYINT(1) NOT NULL DEFAULT 1,
`keys` LONGTEXT DEFAULT NULL,
`created_by` VARCHAR(100) DEFAULT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`garage` LONGTEXT DEFAULT NULL,
`exit_point` LONGTEXT DEFAULT NULL,
`stash_point` LONGTEXT DEFAULT NULL,
`wardrobe_point` LONGTEXT DEFAULT NULL,
`zone` LONGTEXT DEFAULT NULL,
`kind` VARCHAR(16) NOT NULL DEFAULT 'interior',
`furniture` LONGTEXT DEFAULT NULL,
`upgrades` LONGTEXT DEFAULT NULL,
`cameras` LONGTEXT DEFAULT NULL,
`doors` LONGTEXT DEFAULT NULL,
`blip` LONGTEXT DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `owner` (`owner`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Who disconnected inside which house, so they are put back on rejoin.
CREATE TABLE IF NOT EXISTS `agency_house_inside` (
`identifier` VARCHAR(80) NOT NULL,
`house_id` INT NOT NULL,
`since` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`identifier`),
KEY `house_id` (`house_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Outfits of the built-in wardrobe.
CREATE TABLE IF NOT EXISTS `agency_house_outfits` (
`id` INT NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(80) NOT NULL,
`name` VARCHAR(40) NOT NULL,
`model` INT NOT NULL,
`data` LONGTEXT NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Agency Companion app: this server's id and the linked phones.
CREATE TABLE IF NOT EXISTS `agency_housing_cmp_meta` (
`k` VARCHAR(64) NOT NULL PRIMARY KEY,
`v` TEXT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_housing_cmp_devices` (
`id` INT NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`player_name` VARCHAR(80) DEFAULT NULL,
`token_hash` CHAR(64) NOT NULL,
`device_name` VARCHAR(64) DEFAULT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`last_seen` TIMESTAMP NULL DEFAULT NULL,
`revoked` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `token_hash` (`token_hash`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
