ed
|
@ -1,14 +0,0 @@
|
|||
fx_version 'cerulean'
|
||||
game 'gta5'
|
||||
lua54 'yes'
|
||||
|
||||
this_is_a_map "yes"
|
||||
|
||||
data_file 'AUDIO_GAMEDATA' 'audio/cinecar_audio_door_game.dat'
|
||||
|
||||
files {
|
||||
'audio/cinecar_audio_door_game.dat151.rel',
|
||||
'stream/*'
|
||||
}
|
||||
|
||||
dependency '/assetpacks'
|
|
@ -1,180 +0,0 @@
|
|||
ALTER TABLE
|
||||
`users`
|
||||
ADD
|
||||
IF NOT EXISTS `inside` VARCHAR(50) NULL DEFAULT '';
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`addon_inventory` (name, label, shared)
|
||||
VALUES
|
||||
('propery', 'Property', 0);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`datastore` (name, label, shared)
|
||||
VALUES
|
||||
('propery', 'Property', 0);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `houselocations` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'latin1_swedish_ci',
|
||||
`label` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`coords` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`owned` TINYINT(2) NULL DEFAULT NULL,
|
||||
`price` INT(11) NULL DEFAULT NULL,
|
||||
`defaultPrice` INT(11) NULL DEFAULT NULL,
|
||||
`tier` TINYINT(2) NULL DEFAULT NULL,
|
||||
`garage` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`garageShell` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`creator` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`mlo` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`ipl` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`console` INT(11) NULL DEFAULT NULL,
|
||||
`board` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`for_sale` INT(11) NULL DEFAULT '1',
|
||||
`extra_imgs` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`description` TEXT NOT NULL DEFAULT '' COLLATE 'latin1_swedish_ci',
|
||||
`creatorJob` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`blip` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`upgrades` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`apartmentCount` INT(11) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`name`) USING BTREE,
|
||||
INDEX `name` (`name`) USING BTREE,
|
||||
INDEX `id` (`id`) USING BTREE
|
||||
)
|
||||
COLLATE='latin1_swedish_ci'
|
||||
ENGINE=InnoDB
|
||||
AUTO_INCREMENT=1
|
||||
;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `player_houses` (
|
||||
`id` INT(255) NOT NULL AUTO_INCREMENT,
|
||||
`house` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`citizenid` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`owner` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`keyholders` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`stash` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`outfit` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`logout` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`decorateStash` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`charge` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`credit` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`creditPrice` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`console` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`decorateCoords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`rented` INT(11) NULL DEFAULT NULL,
|
||||
`rentPrice` INT(11) NULL DEFAULT NULL,
|
||||
`rentable` INT(11) NULL DEFAULT NULL,
|
||||
`purchasable` INT(11) NULL DEFAULT NULL,
|
||||
`vaultCodes` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `house` (`house`) USING BTREE,
|
||||
INDEX `owner` (`owner`) USING BTREE,
|
||||
INDEX `citizenid` (`citizenid`) USING BTREE
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=InnoDB
|
||||
AUTO_INCREMENT=3
|
||||
;
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `house_rents` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`house` VARCHAR(50) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci',
|
||||
`identifier` VARCHAR(80) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci',
|
||||
`payed` INT(11) NOT NULL DEFAULT '0',
|
||||
`date` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = InnoDB AUTO_INCREMENT = 1;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `house_objects` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`creator` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci',
|
||||
`model` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci',
|
||||
`coords` TEXT NOT NULL COLLATE 'latin1_swedish_ci',
|
||||
`house` VARCHAR(80) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`construction` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`created` TIMESTAMP NULL DEFAULT current_timestamp(),
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
)
|
||||
COLLATE='latin1_swedish_ci'
|
||||
ENGINE=InnoDB
|
||||
AUTO_INCREMENT=1
|
||||
;
|
||||
|
||||
|
||||
ALTER TABLE `house_objects`
|
||||
ADD IF NOT EXISTS `construction` VARCHAR(50) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `created` TIMESTAMP NULL DEFAULT current_timestamp()
|
||||
;
|
||||
|
||||
DROP TABLE IF EXISTS `house_plants`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `house_plants` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`building` varchar(50) DEFAULT NULL,
|
||||
`stage` varchar(50) DEFAULT 'stage-a',
|
||||
`sort` varchar(50) DEFAULT NULL,
|
||||
`gender` varchar(50) DEFAULT NULL,
|
||||
`food` int(11) DEFAULT 100,
|
||||
`health` int(11) DEFAULT 100,
|
||||
`progress` int(11) DEFAULT 0,
|
||||
`coords` text DEFAULT NULL,
|
||||
`plantid` varchar(50) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `building` (`building`),
|
||||
KEY `plantid` (`plantid`)
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 7123 DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
ALTER TABLE `player_houses`
|
||||
CHANGE COLUMN IF EXISTS `identifier` `owner` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci';
|
||||
|
||||
ALTER TABLE `houselocations`
|
||||
ADD IF NOT EXISTS `blip` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `upgrades` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `apartmentCount` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `creatorGotMoney` TINYINT(1) NOT NULL DEFAULT '0'
|
||||
;
|
||||
|
||||
ALTER TABLE `player_houses`
|
||||
ADD IF NOT EXISTS `rented` INT(11) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `rentPrice` INT(11) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `rentable` INT(11) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `purchasable` INT(11) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `console` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `decorateCoords` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `vaultCodes` TEXT NULL DEFAULT NULL
|
||||
;
|
||||
|
||||
ALTER TABLE `houselocations`
|
||||
DROP IF EXISTS `houseID`
|
||||
;
|
||||
|
||||
|
||||
ALTER TABLE `player_houses`
|
||||
DROP IF EXISTS `houseID`,
|
||||
DROP IF EXISTS `timer`,
|
||||
DROP IF EXISTS `insideId`
|
||||
;
|
||||
|
||||
ALTER TABLE `houselocations`
|
||||
CHANGE COLUMN `tier` `tier` SMALLINT NULL DEFAULT NULL;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `house_decorations` (
|
||||
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`house` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
|
||||
`creator` VARCHAR(70) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
|
||||
`modelName` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
|
||||
`coords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
|
||||
`rotation` TEXT NOT NULL DEFAULT '' COLLATE 'utf8mb3_general_ci',
|
||||
`inStash` TINYINT(1) NOT NULL DEFAULT '0',
|
||||
`inHouse` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`uniq` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
|
||||
`created` TIMESTAMP NULL DEFAULT NULL,
|
||||
`lightData` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `id` (`id`, `house`) USING BTREE
|
||||
)
|
||||
COLLATE='utf8mb3_general_ci'
|
||||
ENGINE=InnoDB
|
||||
AUTO_INCREMENT=1
|
||||
;
|
|
@ -1,3 +0,0 @@
|
|||
Please search for the items and follow all the documentation.
|
||||
|
||||
docs.quasar-store.com
|
|
@ -1,7 +0,0 @@
|
|||
-- IF YOU ARE NOT UPDATING YOUR OLD QS-HOUSING, MAKE SURE YOU READ THIS SQL!
|
||||
|
||||
DROP TABLE IF EXISTS `houselocations`;
|
||||
DROP TABLE IF EXISTS `player_houses`;
|
||||
DROP TABLE IF EXISTS `house_rents`;
|
||||
DROP TABLE IF EXISTS `house_objects`;
|
||||
DROP TABLE IF EXISTS `house_plants`;
|
|
@ -1,170 +0,0 @@
|
|||
ALTER TABLE
|
||||
`players`
|
||||
ADD
|
||||
IF NOT EXISTS `inside` VARCHAR(50) NULL DEFAULT '';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `houselocations` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'latin1_swedish_ci',
|
||||
`label` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`coords` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`owned` TINYINT(2) NULL DEFAULT NULL,
|
||||
`price` INT(11) NULL DEFAULT NULL,
|
||||
`defaultPrice` INT(11) NULL DEFAULT NULL,
|
||||
`tier` TINYINT(2) NULL DEFAULT NULL,
|
||||
`garage` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`garageShell` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`creator` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`mlo` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`ipl` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`console` INT(11) NULL DEFAULT NULL,
|
||||
`board` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`for_sale` INT(11) NULL DEFAULT '1',
|
||||
`extra_imgs` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`description` TEXT NOT NULL DEFAULT '' COLLATE 'latin1_swedish_ci',
|
||||
`creatorJob` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`blip` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`upgrades` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`apartmentCount` INT(11) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`name`) USING BTREE,
|
||||
INDEX `name` (`name`) USING BTREE,
|
||||
INDEX `id` (`id`) USING BTREE
|
||||
)
|
||||
COLLATE='latin1_swedish_ci'
|
||||
ENGINE=InnoDB
|
||||
AUTO_INCREMENT=1
|
||||
;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `player_houses` (
|
||||
`id` INT(255) NOT NULL AUTO_INCREMENT,
|
||||
`house` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`citizenid` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`owner` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`keyholders` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`stash` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`outfit` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`logout` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`decorateStash` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`charge` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`credit` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`creditPrice` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`console` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`decorateCoords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
`rented` INT(11) NULL DEFAULT NULL,
|
||||
`rentPrice` INT(11) NULL DEFAULT NULL,
|
||||
`rentable` INT(11) NULL DEFAULT NULL,
|
||||
`purchasable` INT(11) NULL DEFAULT NULL,
|
||||
`vaultCodes` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `house` (`house`) USING BTREE,
|
||||
INDEX `owner` (`owner`) USING BTREE,
|
||||
INDEX `citizenid` (`citizenid`) USING BTREE
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=InnoDB
|
||||
AUTO_INCREMENT=3
|
||||
;
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `house_rents` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`house` VARCHAR(50) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci',
|
||||
`identifier` VARCHAR(80) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci',
|
||||
`payed` INT(11) NOT NULL DEFAULT '0',
|
||||
`date` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = InnoDB AUTO_INCREMENT = 1;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `house_objects` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`creator` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci',
|
||||
`model` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci',
|
||||
`coords` TEXT NOT NULL COLLATE 'latin1_swedish_ci',
|
||||
`house` VARCHAR(80) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`construction` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
|
||||
`created` TIMESTAMP NULL DEFAULT current_timestamp(),
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
)
|
||||
COLLATE='latin1_swedish_ci'
|
||||
ENGINE=InnoDB
|
||||
AUTO_INCREMENT=1
|
||||
;
|
||||
|
||||
|
||||
ALTER TABLE `house_objects`
|
||||
ADD IF NOT EXISTS `construction` VARCHAR(50) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `created` TIMESTAMP NULL DEFAULT current_timestamp()
|
||||
;
|
||||
|
||||
DROP TABLE IF EXISTS `house_plants`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `house_plants` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`building` varchar(50) DEFAULT NULL,
|
||||
`stage` varchar(50) DEFAULT 'stage-a',
|
||||
`sort` varchar(50) DEFAULT NULL,
|
||||
`gender` varchar(50) DEFAULT NULL,
|
||||
`food` int(11) DEFAULT 100,
|
||||
`health` int(11) DEFAULT 100,
|
||||
`progress` int(11) DEFAULT 0,
|
||||
`coords` text DEFAULT NULL,
|
||||
`plantid` varchar(50) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `building` (`building`),
|
||||
KEY `plantid` (`plantid`)
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 7123 DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
ALTER TABLE `player_houses`
|
||||
CHANGE COLUMN IF EXISTS `identifier` `owner` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci';
|
||||
|
||||
ALTER TABLE `houselocations`
|
||||
ADD IF NOT EXISTS `blip` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `upgrades` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `apartmentCount` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `creatorGotMoney` TINYINT(1) NOT NULL DEFAULT '0'
|
||||
;
|
||||
|
||||
ALTER TABLE `player_houses`
|
||||
ADD IF NOT EXISTS `rented` INT(11) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `rentPrice` INT(11) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `rentable` INT(11) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `purchasable` INT(11) NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `console` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `decorateCoords` TEXT NULL DEFAULT NULL,
|
||||
ADD IF NOT EXISTS `vaultCodes` TEXT NULL DEFAULT NULL
|
||||
;
|
||||
|
||||
ALTER TABLE `houselocations`
|
||||
DROP IF EXISTS `houseID`
|
||||
;
|
||||
|
||||
|
||||
ALTER TABLE `player_houses`
|
||||
DROP IF EXISTS `houseID`,
|
||||
DROP IF EXISTS `timer`,
|
||||
DROP IF EXISTS `insideId`
|
||||
;
|
||||
|
||||
ALTER TABLE `houselocations`
|
||||
CHANGE COLUMN `tier` `tier` SMALLINT NULL DEFAULT NULL;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `house_decorations` (
|
||||
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`house` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
|
||||
`creator` VARCHAR(70) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
|
||||
`modelName` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8mb3_general_ci',
|
||||
`coords` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
|
||||
`rotation` TEXT NOT NULL DEFAULT '' COLLATE 'utf8mb3_general_ci',
|
||||
`inStash` TINYINT(1) NOT NULL DEFAULT '0',
|
||||
`inHouse` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`uniq` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
|
||||
`created` TIMESTAMP NULL DEFAULT NULL,
|
||||
`lightData` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `id` (`id`, `house`) USING BTREE
|
||||
)
|
||||
COLLATE='utf8mb3_general_ci'
|
||||
ENGINE=InnoDB
|
||||
AUTO_INCREMENT=1
|
||||
;
|
BIN
resources/[housing]/brutal_housing/.fxap
Normal file
1
resources/[housing]/brutal_housing/README.md
Normal file
|
@ -0,0 +1 @@
|
|||
Please follow the instructions: https://docs.brutalscripts.com
|
241
resources/[housing]/brutal_housing/cl_utils.lua
Normal file
|
@ -0,0 +1,241 @@
|
|||
ESX = Core
|
||||
QBCore = Core
|
||||
|
||||
-- Buy here: (4€+VAT) https://store.brutalscripts.com
|
||||
function notification(title, text, time, type)
|
||||
if Config.BrutalNotify then
|
||||
exports['brutal_notify']:SendAlert(title, text, time, type)
|
||||
else
|
||||
-- Put here your own notify and set the Config.BrutalNotify to false
|
||||
SetNotificationTextEntry("STRING")
|
||||
AddTextComponentString(text)
|
||||
DrawNotification(0,1)
|
||||
|
||||
-- Default ESX Notify:
|
||||
--TriggerEvent('esx:showNotification', text)
|
||||
|
||||
-- Default QB Notify:
|
||||
--TriggerEvent('QBCore:Notify', text, 'info', 5000)
|
||||
|
||||
-- OKOK Notify:
|
||||
-- exports['okokNotify']:Alert(title, text, time, type, false)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
function TextUIFunction(type, text)
|
||||
if type == 'open' then
|
||||
if Config.TextUI:lower() == 'ox_lib' then
|
||||
lib.showTextUI(text)
|
||||
elseif Config.TextUI:lower() == 'okoktextui' then
|
||||
exports['okokTextUI']:Open(text, 'darkblue', 'right')
|
||||
elseif Config.TextUI:lower() == 'esxtextui' then
|
||||
ESX.TextUI(text)
|
||||
elseif Config.TextUI:lower() == 'qbdrawtext' then
|
||||
exports['qb-core']:DrawText(text,'left')
|
||||
elseif Config.TextUI:lower() == 'brutal_textui' then
|
||||
exports['brutal_textui']:Open(text, "blue")
|
||||
end
|
||||
elseif type == 'hide' then
|
||||
if Config.TextUI:lower() == 'ox_lib' then
|
||||
lib.hideTextUI()
|
||||
elseif Config.TextUI:lower() == 'okoktextui' then
|
||||
exports['okokTextUI']:Close()
|
||||
elseif Config.TextUI:lower() == 'esxtextui' then
|
||||
ESX.HideUI()
|
||||
elseif Config.TextUI:lower() == 'qbdrawtext' then
|
||||
exports['qb-core']:HideText()
|
||||
elseif Config.TextUI:lower() == 'brutal_textui' then
|
||||
exports['brutal_textui']:Close()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function AbleToOpenThePropertiesMenu()
|
||||
local able = true
|
||||
|
||||
if Config.BrutalPoliceJob and GetResourceState("brutal_policejob") == "started" then
|
||||
if exports.brutal_policejob:IsHandcuffed() then
|
||||
able = false
|
||||
end
|
||||
end
|
||||
|
||||
if Config['Core']:upper() == 'QBCORE' then
|
||||
if GetResourceState("qb-policejob") == "started" then
|
||||
if exports["qb-policejob"]:IsHandcuffed() then
|
||||
able = false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- other blacklists can be added.
|
||||
|
||||
return able
|
||||
end
|
||||
|
||||
function OpenDressingMenu()
|
||||
if Config.Wardrobe == 'ak47_clothing' then
|
||||
exports['ak47_clothing']:openOutfit() -- if it doesn't work with this export use other event
|
||||
-- TriggerEvent('ak47_clothing:openOutfitMenu') -- Use this only if the first export doesn't work, depend of you'r version
|
||||
elseif Config.Wardrobe == 'codem_apperance' then
|
||||
TriggerEvent('codem-apperance:OpenWardrobe')
|
||||
elseif Config.Wardrobe == 'fivem_appearance' then
|
||||
exports['fivem-appearance']:openWardrobe()
|
||||
elseif Config.Wardrobe == 'illenium_appearance' then
|
||||
TriggerEvent('illenium-appearance:client:openOutfitMenu')
|
||||
elseif Config.Wardrobe == 'qb_clothing' then
|
||||
TriggerEvent('qb-clothing:client:openOutfitMenu')
|
||||
elseif Config.Wardrobe == 'raid_clothes' then
|
||||
TriggerEvent('raid_clothes:openmenu')
|
||||
elseif Config.Wardrobe == 'rcore_clothes' then
|
||||
TriggerEvent('rcore_clothes:openOutfits')
|
||||
elseif Config.Wardrobe == 'rcore_clothing' then
|
||||
TriggerEvent('rcore_clothing:openChangingRoom')
|
||||
elseif Config.Wardrobe == 'sleek_clothestore' then
|
||||
exports['sleek-clothestore']:OpenWardrobe()
|
||||
elseif Config.Wardrobe == 'tgiann_clothing' then
|
||||
TriggerEvent('tgiann-clothing:openOutfitMenu')
|
||||
end
|
||||
end
|
||||
|
||||
function setPlayerSkin(skinTable)
|
||||
if Config['Core']:upper() == 'ESX' then
|
||||
TriggerEvent('skinchanger:loadSkin', skinTable.skin)
|
||||
elseif Config['Core']:upper() == 'QBCORE' then
|
||||
TriggerEvent("qb-clothes:loadSkin", false, tonumber(skinTable.model), skinTable.skin)
|
||||
TriggerServerEvent("brutal_housing:server:qbcore-loadPlayerSkin", tonumber(skinTable.model), skinTable.skin)
|
||||
end
|
||||
end
|
||||
|
||||
function MiniGames(type, propertyID)
|
||||
if type == "raid" then
|
||||
if GetResourceState("ps-ui") == "started" then
|
||||
exports['ps-ui']:Circle(function(success)
|
||||
TriggerEvent('brutal_housing:client:raidMinigame', propertyID, success)
|
||||
end, 3, 10)
|
||||
else
|
||||
TriggerEvent('brutal_housing:client:raidMinigame', propertyID, true)
|
||||
end
|
||||
elseif type == "server-destroy" then
|
||||
if GetResourceState("ps-ui") == "started" then
|
||||
exports['ps-ui']:Scrambler(function(success)
|
||||
TriggerEvent('brutal_housing:client:serverdestroy', propertyID, success)
|
||||
end, "alphanumeric", 60, 2)
|
||||
else
|
||||
TriggerEvent('brutal_housing:client:serverdestroy', propertyID, true)
|
||||
end
|
||||
elseif type == "house-break-in-level_0" then
|
||||
if GetResourceState("ps-ui") == "started" then
|
||||
exports['ps-ui']:Scrambler(function(success)
|
||||
TriggerEvent('brutal_housing:client:breakInMinigame', propertyID, success)
|
||||
end, "alphanumeric", 60, 2)
|
||||
else
|
||||
TriggerEvent('brutal_housing:client:breakInMinigame', propertyID, true)
|
||||
end
|
||||
elseif type == "house-break-in-level_1" then
|
||||
if GetResourceState("ps-ui") == "started" then
|
||||
exports['ps-ui']:VarHack(function(success)
|
||||
TriggerEvent('brutal_housing:client:breakInMinigame', propertyID, success)
|
||||
end, 10, 30)
|
||||
else
|
||||
TriggerEvent('brutal_housing:client:breakInMinigame', propertyID, true)
|
||||
end
|
||||
elseif type == "house-break-in-level_2" then
|
||||
if GetResourceState("ps-ui") == "started" then
|
||||
exports['ps-ui']:Thermite(function(success)
|
||||
TriggerEvent('brutal_housing:client:breakInMinigame', propertyID, success)
|
||||
end, 30, 6, 10)
|
||||
else
|
||||
TriggerEvent('brutal_housing:client:breakInMinigame', propertyID, true)
|
||||
end
|
||||
elseif type == "house-break-in-level_3" then
|
||||
if GetResourceState("ps-ui") == "started" then
|
||||
exports['ps-ui']:Thermite(function(success)
|
||||
TriggerEvent('brutal_housing:client:breakInMinigame', propertyID, success)
|
||||
end, 30, 6, 10)
|
||||
else
|
||||
TriggerEvent('brutal_housing:client:breakInMinigame', propertyID, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function PoliceBurglarNotify(x,y,z, address)
|
||||
if Config.BrutalPoliceJob and GetResourceState("brutal_policejob") == "started" then
|
||||
TriggerServerEvent('brutal_policejob:server:citizencall', 'create', Config.Locales.BreakIn, {x,y,z}, address)
|
||||
else
|
||||
SendNotify(66)
|
||||
end
|
||||
end
|
||||
|
||||
function InventoryOpenFunction(propertyID, objectID)
|
||||
if Config.Inventory:lower() == 'ox_inventory' then
|
||||
if exports.ox_inventory:openInventory('stash', { id = "stash_"..propertyID.."_"..objectID}) == false then
|
||||
TriggerServerEvent('brutal_housing:server:loadStash', propertyID, objectID)
|
||||
exports.ox_inventory:openInventory('stash', { id = "stash_"..propertyID.."_"..objectID})
|
||||
end
|
||||
elseif Config.Inventory:lower() == 'qb_inventory_old' then
|
||||
TriggerServerEvent("inventory:server:OpenInventory", "stash", "stash_"..propertyID.."_"..objectID, {label = Config.Locales.Stash, maxweight = Config.Stash.Weight, slots = Config.Stash.Slots})
|
||||
TriggerEvent("inventory:client:SetCurrentStash", "stash_"..propertyID.."_"..objectID)
|
||||
elseif Config.Inventory:lower() == 'qb_inventory_new' then
|
||||
TriggerServerEvent("brutal_housing:qb-inventory:server:OpenInventory", "stash_"..propertyID.."_"..objectID, {label = Config.Locales.Stash, maxweight = Config.Stash.Weight, slots = Config.Stash.Slots})
|
||||
elseif Config.Inventory:lower() == 'quasar_inventory' then
|
||||
TriggerServerEvent("inventory:server:OpenInventory", "stash", "stash_"..propertyID.."_"..objectID, { label = Config.Locales.Stash, maxweight = Config.Stash.Weight, slots = Config.Stash.Slots })
|
||||
TriggerEvent("inventory:client:SetCurrentStash", "stash_"..propertyID.."_"..objectID)
|
||||
elseif Config.Inventory:lower() == 'codem_inventory' then
|
||||
TriggerServerEvent("inventory:server:OpenInventory", "stash", "stash_"..propertyID.."_"..objectID, { label = Config.Locales.Stash, maxweight = Config.Stash.Weight, slots = Config.Stash.Slots })
|
||||
TriggerEvent("inventory:client:SetCurrentStash", "stash_"..propertyID.."_"..objectID)
|
||||
elseif Config.Inventory:lower() == 'chezza_inventory' then
|
||||
TriggerEvent('inventory:openStorage', Config.Locales.Stash, "stash_"..propertyID.."_"..objectID, 1000, 1000)
|
||||
elseif Config.Inventory:lower() == 'core_inventory' then
|
||||
TriggerServerEvent('core_inventory:server:openInventory', "stash_"..propertyID.."_"..objectID, "big_storage")
|
||||
elseif Config.Inventory:lower() == 'origen_inventory' then
|
||||
exports.origen_inventory:openInventory("stash", "stash_"..propertyID.."_"..objectID, {label = Config.Locales.Stash, maxweight = Config.Stash.Weight, slots = Config.Stash.Slots})
|
||||
elseif Config.Inventory:lower() == 'ps-inventory' then
|
||||
if GetResourceState('ps-inventory') == "started" then
|
||||
TriggerServerEvent("ps-inventory:server:OpenInventory", "stash_"..propertyID.."_"..objectID, {label = Config.Locales.Stash, maxweight = Config.Stash.Weight, slots = Config.Stash.Slots})
|
||||
TriggerEvent("ps-inventory:client:SetCurrentStash", "stash_"..propertyID.."_"..objectID)
|
||||
else
|
||||
TriggerServerEvent("inventory:server:OpenInventory", "stash", "stash_"..propertyID.."_"..objectID, {label = Config.Locales.Stash, maxweight = Config.Stash.Weight, slots = Config.Stash.Slots})
|
||||
TriggerEvent("inventory:client:SetCurrentStash", "stash_"..propertyID.."_"..objectID)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
RegisterNetEvent('brutal_housing:client:utils:CreateVehicle')
|
||||
AddEventHandler('brutal_housing:client:utils:CreateVehicle', function(Vehicle)
|
||||
SetVehicleFuelLevel(Vehicle, 100.0)
|
||||
DecorSetFloat(Vehicle, "_FUEL_LEVEL", GetVehicleFuelLevel(Vehicle))
|
||||
|
||||
if Config['Core']:upper() == 'QBCORE' then
|
||||
TriggerEvent("vehiclekeys:client:SetOwner", QBCore.Functions.GetPlate(Vehicle))
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent('brutal_housing:client:utils:DeleteVehicle')
|
||||
AddEventHandler('brutal_housing:client:utils:DeleteVehicle', function(Vehicle)
|
||||
DeleteEntity(Vehicle)
|
||||
end)
|
||||
|
||||
function OpenMenuUtil()
|
||||
InMenu = true
|
||||
SetNuiFocus(true, true)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while InMenu do
|
||||
N_0xf4f2c0d4ee209e20() -- it's disable the AFK camera zoom
|
||||
Citizen.Wait(15000)
|
||||
end
|
||||
end)
|
||||
|
||||
DisplayRadar(false)
|
||||
end
|
||||
|
||||
function DisableMinimap()
|
||||
DisplayRadar(false)
|
||||
-- Here you can add a trigger to hide your HUD system
|
||||
end
|
||||
|
||||
function EnableMinimap()
|
||||
DisplayRadar(true)
|
||||
-- Here you can add a trigger to enable your HUD system
|
||||
end
|
BIN
resources/[housing]/brutal_housing/client/client.lua
Normal file
BIN
resources/[housing]/brutal_housing/client/nui.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- Object placement system partially based on Object Gizmo by DemiAutomatic
|
||||
-- Source: https://github.com/DemiAutomatic/object_gizmo
|
||||
-- Licensed under the MIT License
|
|
@ -0,0 +1,155 @@
|
|||
-- Credit: https://github.com/citizenfx/lua/blob/luaglm-dev/cfx/libs/scripts/examples/dataview.lua
|
||||
local dataView = setmetatable({
|
||||
EndBig = ">",
|
||||
EndLittle = "<",
|
||||
Types = {
|
||||
Int8 = { code = "i1" },
|
||||
Uint8 = { code = "I1" },
|
||||
Int16 = { code = "i2" },
|
||||
Uint16 = { code = "I2" },
|
||||
Int32 = { code = "i4" },
|
||||
Uint32 = { code = "I4" },
|
||||
Int64 = { code = "i8" },
|
||||
Uint64 = { code = "I8" },
|
||||
Float32 = { code = "f", size = 4 }, -- a float (native size)
|
||||
Float64 = { code = "d", size = 8 }, -- a double (native size)
|
||||
|
||||
LuaInt = { code = "j" }, -- a lua_Integer
|
||||
UluaInt = { code = "J" }, -- a lua_Unsigned
|
||||
LuaNum = { code = "n" }, -- a lua_Number
|
||||
String = { code = "z", size = -1, }, -- zero terminated string
|
||||
},
|
||||
|
||||
FixedTypes = {
|
||||
String = { code = "c" }, -- a fixed-sized string with n bytes
|
||||
Int = { code = "i" }, -- a signed int with n bytes
|
||||
Uint = { code = "I" }, -- an unsigned int with n bytes
|
||||
},
|
||||
}, {
|
||||
__call = function(_, length)
|
||||
return dataView.ArrayBuffer(length)
|
||||
end
|
||||
})
|
||||
dataView.__index = dataView
|
||||
|
||||
--[[ Create an ArrayBuffer with a size in bytes --]]
|
||||
function dataView.ArrayBuffer(length)
|
||||
return setmetatable({
|
||||
blob = string.blob(length),
|
||||
length = length,
|
||||
offset = 1,
|
||||
cangrow = true,
|
||||
}, dataView)
|
||||
end
|
||||
|
||||
--[[ Wrap a non-internalized string --]]
|
||||
function dataView.Wrap(blob)
|
||||
return setmetatable({
|
||||
blob = blob,
|
||||
length = blob:len(),
|
||||
offset = 1,
|
||||
cangrow = true,
|
||||
}, dataView)
|
||||
end
|
||||
|
||||
--[[ Return the underlying bytebuffer --]]
|
||||
function dataView:Buffer() return self.blob end
|
||||
function dataView:ByteLength() return self.length end
|
||||
function dataView:ByteOffset() return self.offset end
|
||||
function dataView:SubView(offset, length)
|
||||
return setmetatable({
|
||||
blob = self.blob,
|
||||
length = length or self.length,
|
||||
offset = 1 + offset,
|
||||
cangrow = false,
|
||||
}, dataView)
|
||||
end
|
||||
|
||||
--[[ Return the Endianness format character --]]
|
||||
function ef(big) return (big and dataView.EndBig) or dataView.EndLittle end
|
||||
|
||||
--[[ Helper function for setting fixed datatypes within a buffer --]]
|
||||
function packblob(self, offset, value, code)
|
||||
-- If cangrow is false the dataview represents a subview, i.e., a subset
|
||||
-- of some other string view. Ensure the references are the same before
|
||||
-- updating the subview
|
||||
local packed = self.blob:blob_pack(offset, code, value)
|
||||
if self.cangrow or packed == self.blob then
|
||||
self.blob = packed
|
||||
self.length = packed:len()
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
--[[
|
||||
Create the API by using dataView.Types
|
||||
--]]
|
||||
for label,datatype in pairs(dataView.Types) do
|
||||
if not datatype.size then -- cache fixed encoding size
|
||||
datatype.size = string.packsize(datatype.code)
|
||||
elseif datatype.size >= 0 and string.packsize(datatype.code) ~= datatype.size then
|
||||
local msg = "Pack size of %s (%d) does not match cached length: (%d)"
|
||||
error(msg:format(label, string.packsize(datatype.code), datatype.size))
|
||||
return nil
|
||||
end
|
||||
|
||||
dataView["Get" .. label] = function(self, offset, endian)
|
||||
offset = offset or 0
|
||||
if offset >= 0 then
|
||||
local o = self.offset + offset
|
||||
local v,_ = self.blob:blob_unpack(o, ef(endian) .. datatype.code)
|
||||
return v
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
dataView["Set" .. label] = function(self, offset, value, endian)
|
||||
if offset >= 0 and value then
|
||||
local o = self.offset + offset
|
||||
local v_size = (datatype.size < 0 and value:len()) or datatype.size
|
||||
if self.cangrow or ((o + (v_size - 1)) <= self.length) then
|
||||
if not packblob(self, o, value, ef(endian) .. datatype.code) then
|
||||
error("cannot grow subview")
|
||||
end
|
||||
else
|
||||
error("cannot grow dataview")
|
||||
end
|
||||
end
|
||||
return self
|
||||
end
|
||||
end
|
||||
|
||||
for label,datatype in pairs(dataView.FixedTypes) do
|
||||
datatype.size = -1 -- Ensure cached encoding size is invalidated
|
||||
|
||||
dataView["GetFixed" .. label] = function(self, offset, typelen, endian)
|
||||
if offset >= 0 then
|
||||
local o = self.offset + offset
|
||||
if (o + (typelen - 1)) <= self.length then
|
||||
local code = ef(endian) .. "c" .. tostring(typelen)
|
||||
local v,_ = self.blob:blob_unpack(o, code)
|
||||
return v
|
||||
end
|
||||
end
|
||||
return nil -- Out of bounds
|
||||
end
|
||||
|
||||
dataView["SetFixed" .. label] = function(self, offset, typelen, value, endian)
|
||||
if offset >= 0 and value then
|
||||
local o = self.offset + offset
|
||||
if self.cangrow or ((o + (typelen - 1)) <= self.length) then
|
||||
local code = ef(endian) .. "c" .. tostring(typelen)
|
||||
if not packblob(self, o, value, code) then
|
||||
error("cannot grow subview")
|
||||
end
|
||||
else
|
||||
error("cannot grow dataview")
|
||||
end
|
||||
end
|
||||
return self
|
||||
end
|
||||
end
|
||||
|
||||
return dataView
|
4
resources/[housing]/brutal_housing/client/vendor/freecam/INFO.txt
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
The original source code for freecam by Deltanic is available at this repository:
|
||||
https://github.com/Deltanic/fivem-freecam/
|
||||
|
||||
This code contains modifications and performance improvements, and is re-released under the MIT license.
|
21
resources/[housing]/brutal_housing/client/vendor/freecam/LICENSE.txt
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2021 Deltanic
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
BIN
resources/[housing]/brutal_housing/client/vendor/freecam/camera.lua
vendored
Normal file
BIN
resources/[housing]/brutal_housing/client/vendor/freecam/config.lua
vendored
Normal file
BIN
resources/[housing]/brutal_housing/client/vendor/freecam/main.lua
vendored
Normal file
BIN
resources/[housing]/brutal_housing/client/vendor/freecam/utils.lua
vendored
Normal file
417
resources/[housing]/brutal_housing/config.lua
Normal file
|
@ -0,0 +1,417 @@
|
|||
----------------------------------------------------------------------------------------------
|
||||
-------------------------------------| BRUTAL HOUSING :) |------------------------------------
|
||||
----------------------------------------------------------------------------------------------
|
||||
|
||||
--[[
|
||||
Hi, thank you for buying our script, We are very grateful!
|
||||
|
||||
For help join our Discord server: https://discord.gg/85u2u5c8q9
|
||||
More informations about the script: https://docs.brutalscripts.com
|
||||
--]]
|
||||
|
||||
Config = {
|
||||
Core = 'ESX', -- 'ESX' / 'QBCORE' | Other core setting on the 'core' folder.
|
||||
VoiceSytem = 'pma-voice', -- "pma-voice" / "mumble" / "SaltyChat"
|
||||
Inventory = 'ox_inventory', -- 'ox_inventory' / 'qb_inventory_old'/ 'qb_inventory_new' / 'quasar_inventory' / 'chezza_inventory' / 'codem_inventory' / 'core_inventory' // Custom can be add in the cl_utils.lua!!!
|
||||
Wardrobe = 'default', -- 'default' / 'ak47_clothing' / 'codem_apperance' / 'fivem_appearance' / 'illenium_appearance' / 'qb_clothing' / 'raid_clothes' / 'rcore_clothes' / 'rcore_clothing' / 'sleek_clothestore' / 'tgiann_clothing' // Custom can be add in the cl_utils.lua!!!
|
||||
TextUI = 'brutal_textui', -- false / 'brutal_textui' / 'ox_lib' / 'okokTextUI' / 'ESXTextUI' / 'QBDrawText' // Custom can be add in the cl_utils.lua!!!
|
||||
BrutalKeys = true, -- Buy here: https://store.brutalscripts.com
|
||||
BrutalPoliceJob = true, -- Buy here: https://store.brutalscripts.com | Better connection
|
||||
BrutalNotify = true, -- Buy here: (4€+VAT) https://store.brutalscripts.com | Or set up your own notify >> cl_utils.lua
|
||||
|
||||
SteamName = false, -- true = Steam name | false = character name
|
||||
AdminGroups = {'superadmin', 'admin', 'mod', 'god'},
|
||||
HousingDataPrint = true, -- Server side print, like that: Brutal Housing: Houses: 1 Apartments: 97 Garages: 9
|
||||
|
||||
DataStorage = {
|
||||
--[[
|
||||
optimized = Saves the data when the script is restarted, the server is shut down or restarted, or during a scheduled server restart.
|
||||
events: "txAdmin:events:serverShuttingDown" & "txAdmin:events:scheduledRestart" or fixed restart times.
|
||||
resource_heavy = all data will be saved immediately, this is very stressful for the server so we don't recommend using this, but the choice is up to you.
|
||||
]]--
|
||||
|
||||
Type = "resource_heavy", -- "optimized" / "resource_heavy"
|
||||
Restarts = {}, -- example: "11:59" | Save the data 1 minute before restart. Save data at 15:59 instead of 16:00
|
||||
},
|
||||
|
||||
Blips = {
|
||||
available = true,
|
||||
availableHouse = {label = "Available House", size = 0.7, sprite = 40, color = 2},
|
||||
availableGarage = {label = "Available Garage", size = 0.7, sprite = 357, color = 2},
|
||||
owned = true,
|
||||
myHouse = {label = "My House", size = 0.7, sprite = 40, color = 53},
|
||||
myGarage = {label = "My Garage", size = 0.7, sprite = 357, color = 53},
|
||||
hasKeyHouse = {label = "House", size = 0.7, sprite = 40, color = 53},
|
||||
hasKeyGarage = {label = "House", size = 0.7, sprite = 40, color = 53},
|
||||
ownedHouse = {label = "House", size = 0.7, sprite = 40, color = 1},
|
||||
ownedGarage = {label = "Garage", size = 0.7, sprite = 357, color = 1},
|
||||
police = true,
|
||||
burglarAlarm = {label = "Burglar alarm", size = 1.0, sprite = 161, color = 1},
|
||||
},
|
||||
|
||||
MaxProperties = 12, -- Maximum number of properties a player can own
|
||||
MaxObject = 50, -- Maximum placing object, 50-50 by default, outside and inside separately
|
||||
MaxBargainPercent = 5, -- Maximum bargain rate in percentage | Bargain rate i random between 0 and this value
|
||||
MaxOutsideFurnitureDistance = 50.0, -- Maximum Outside furniture distance from the door
|
||||
MaxDoorlockDistance = 50.0, -- Max doorlock distance from the property's door.
|
||||
StashLimit = 3, -- Maximum stash per property.
|
||||
InstantSalePurchasePrice = 0.9, -- 100 000$ * 0.9 = 90 000$ | The player can immediately sell his property for this much compared to the base price.
|
||||
DelayedSalePurchasePrice = 1.2, -- 100 000$ * 1.2 = 120 000$ | This is the maximum price a player can sell the house he has bought.
|
||||
DeleteInactiveProperty = {use = true, days = 45}, -- -- If use is true, the property will be deleted if the player does not use it for X days. | Only the owned ones.
|
||||
CopJobs = {"police", "sheriff"}, -- Cop jobs
|
||||
GarageUpgrade = {
|
||||
Repair = {use = true, time = 48, price = 25000}, -- The car stored in the garage will be repaired after 48hours.
|
||||
Clean = {use = true, time = 24, price = 5000} -- The car stored in the garage will be cleaned after 24hours.
|
||||
},
|
||||
|
||||
ForeclosureDebtThreshold = 1000, -- If the owner's debt exceeds $1000, the property will go into foreclosure.
|
||||
Utilities = {
|
||||
BillingCycle = 7, -- The default billing cycle for utilities is every 7 days.
|
||||
|
||||
RentalPrice = 0.004, -- 0.4% rental fee based on property price | 100,000$ * 0.004 = 400$
|
||||
ElectricityPrice = 0.0005,
|
||||
GasPrice = 0.00025,
|
||||
WaterPrice = 0.0001,
|
||||
WifiUnlockPrice = 5000, -- One-time fee
|
||||
WifiPrice = 70, -- Fix price
|
||||
},
|
||||
|
||||
NewKeyPrice = 25,
|
||||
LockReplacementPrice = 100,
|
||||
CCTVStationRepairPrice = 250,
|
||||
|
||||
Stash = {
|
||||
Slots = 100,
|
||||
Weight = 1000000,
|
||||
},
|
||||
|
||||
Security = {
|
||||
DatabaseDesroyEnabled = true, -- true / false
|
||||
Objects = {
|
||||
cameras = {"prop_cs_cctv", "prop_cctv_cam_01b"},
|
||||
databases = {"hei_prop_heist_pc_01", "prop_dyn_pc", "prop_dyn_pc_02", "prop_pc_01a", "prop_pc_02a"}
|
||||
},
|
||||
|
||||
Levels = {
|
||||
[0] = {
|
||||
alertToPolice = false,
|
||||
maxAttempts = 6,
|
||||
showIntruderName = false
|
||||
},
|
||||
[1] = {
|
||||
price = 4750,
|
||||
|
||||
alertToPolice = true,
|
||||
maxAttempts = 4,
|
||||
showIntruderName = false
|
||||
},
|
||||
[2] = {
|
||||
price = 9500,
|
||||
|
||||
alertToPolice = true,
|
||||
maxAttempts = 2,
|
||||
showIntruderName = true
|
||||
},
|
||||
[3] = {
|
||||
price = 25000,
|
||||
|
||||
alertToPolice = true,
|
||||
maxAttempts = 0, -- if it is 0, there is no chance to break into the house
|
||||
showIntruderName = true
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
BreakIn = {
|
||||
use = true,
|
||||
minimumCopsCount = 0,
|
||||
requiredItem = 'lockpick',
|
||||
removeItem = true
|
||||
},
|
||||
|
||||
Raid = {
|
||||
use = true,
|
||||
allowedJobs = {
|
||||
{ job = "police", minGrade = 0 },
|
||||
}
|
||||
},
|
||||
|
||||
RealEstateagents = {
|
||||
ProfitRatioPercent = 6, -- Profit share of the real estate agency based on the purchase price | 6 = 6% of the property price
|
||||
Jobs = {
|
||||
["dynasty"] = { -- job name
|
||||
[0] = {
|
||||
label = 'Trainee', -- Rank name
|
||||
permissions = { -- Permissions
|
||||
canManageProperties = false, -- Created property management
|
||||
balanceMenu = false -- Balance Menu
|
||||
}
|
||||
},
|
||||
[1] = {
|
||||
label = 'Agent',
|
||||
permissions = {
|
||||
canManageProperties = true,
|
||||
balanceMenu = false
|
||||
}
|
||||
},
|
||||
[2] = {
|
||||
label = 'Senior Agent',
|
||||
permissions = {
|
||||
canManageProperties = true,
|
||||
balanceMenu = true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
-- you can add more jobs too.
|
||||
}
|
||||
},
|
||||
|
||||
Commands = {
|
||||
MyProperties = {
|
||||
Command = 'myproperties',
|
||||
Suggestion = 'To manage your propertys',
|
||||
Control = '', -- Controls list: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/
|
||||
},
|
||||
|
||||
ServerDestroy = {
|
||||
Command = 'serverdestroy',
|
||||
Suggestion = 'To destroy the camera server',
|
||||
requiredItem = 'laptop'
|
||||
},
|
||||
|
||||
GetHousingVehicleBack = {
|
||||
Command = 'gethousingvehicleback', -- /gethousingvehicleback all | /gethousingvehicleback DHR 432
|
||||
Suggestion = 'To get back your vehicle(s)',
|
||||
},
|
||||
|
||||
-- Admin / Real Estate --
|
||||
|
||||
StaffMode = {
|
||||
Command = 'hstaff',
|
||||
Suggestion = 'To switch Housing Staff mode',
|
||||
},
|
||||
|
||||
Properties = {
|
||||
Command = 'properties',
|
||||
Suggestion = 'To open the propertys menu',
|
||||
},
|
||||
|
||||
CreateHouse = {
|
||||
Command = 'createhouse',
|
||||
Suggestion = 'To create a house',
|
||||
},
|
||||
|
||||
CreateGarage = {
|
||||
Command = 'creategarage',
|
||||
Suggestion = 'To create a garage',
|
||||
},
|
||||
},
|
||||
|
||||
-----------------------------------------------------------
|
||||
-----------------------| TRANSLATE |-----------------------
|
||||
-----------------------------------------------------------
|
||||
|
||||
NUILanguage = "en", -- "en", "es", "fr", "de", "pt", "it", "pl", "nl", "ru", "tr", "hu", "ro", "cs", "sv", "ar"
|
||||
|
||||
MoneyForm = '$', -- Money form
|
||||
|
||||
Locales = {
|
||||
Stash = "Stash",
|
||||
None = "None",
|
||||
AdminRemoved = "Admin removed",
|
||||
|
||||
ShellPlacement = "Shell Placement",
|
||||
DoorLocation = "Door Location",
|
||||
VehiclePlacement = "Vehicle Placement",
|
||||
FurniturePlacement = "Furniture Placement",
|
||||
|
||||
NewCoords = "Set the new coords",
|
||||
MovingFreecam = "Moving Freecam",
|
||||
GoBack = "Go Back",
|
||||
ObjectMovement = "Object movement",
|
||||
ObjectVertical = "Object Vertical Movement",
|
||||
ObjectRotate = "Object Rotate",
|
||||
FinishEditing = "Finish Editing",
|
||||
TranslateMode = "Translate Mode",
|
||||
CameraFix = "Camera Fix",
|
||||
DoneEditing = "Done Editing",
|
||||
|
||||
BreakIn = "A burglar broke into the house! Go to the designated place!",
|
||||
|
||||
Messages = {
|
||||
Rent = {title = "Rent", message = "You have started renting the property."},
|
||||
StopRent = {title = "Rental stopped", message = "The rental of the property has been stopped."},
|
||||
Purchase = {title = "Purchase", message = "You have purchased the property."},
|
||||
LevelUpgrade = {title = "Level Upgrade", message = "Success upgrade: Level"},
|
||||
BrakeIn = {title = "Break-in", message = "Someone has broken into the property:"},
|
||||
Raid = {title = "Raid", message = "Police raided the property."},
|
||||
WifiUnlock = {title = "Wifi", message = "The Wifi has been connected!"},
|
||||
CleaningUnlock = {title = "Cleaning", message = "Vehicle cleaning function now available"},
|
||||
RepairingUnlock = {title = "Repairing", message = "Vehicle repairing function now available"},
|
||||
DoorLockReplacement = {title = "Lock replacement", message = "You have successfully changed the lock on your property!"},
|
||||
Rename = {title = "Property renaming", message = "New name of the property:"},
|
||||
Unknown = "Unknown",
|
||||
},
|
||||
|
||||
CCTV = "BACK: ~INPUT_CELLPHONE_CANCEL~\nUP/DOWN: ~INPUT_CELLPHONE_UP~ & ~INPUT_CELLPHONE_DOWN~\nLEFT/RIGHT: ~INPUT_CELLPHONE_LEFT~ & ~INPUT_CELLPHONE_RIGHT~",
|
||||
CCTVSetup = "BACK: ~INPUT_CELLPHONE_CANCEL~\nUP/DOWN: ~INPUT_CELLPHONE_UP~ & ~INPUT_CELLPHONE_DOWN~\nLEFT/RIGHT: ~INPUT_CELLPHONE_LEFT~ & ~INPUT_CELLPHONE_RIGHT~\nSETUP: ~INPUT_FRONTEND_RDOWN~",
|
||||
},
|
||||
|
||||
Texts = {
|
||||
[1] = {'[E] - Storage', 38},
|
||||
[2] = {'[E] - Wardrobe', 38},
|
||||
},
|
||||
|
||||
DoorTexts = {
|
||||
["entry"] = {'E', 'Entry', 38},
|
||||
["leave"] = {'E', 'Leave', 38},
|
||||
["garage"] = {'X', 'Garage', 73},
|
||||
["house"] = {'X', 'House', 73},
|
||||
["open"] = {'G', 'Open the door', 47},
|
||||
["close"] = {'G', 'Close the door', 47},
|
||||
["purchase"] = {'E', 'Purchase menu', 38},
|
||||
["knock"] = {'E', 'Knocking', 38},
|
||||
["raid"] = {'G', 'Raid', 47},
|
||||
["breakin"] = {'G', 'Break In', 47},
|
||||
["inforeclosure"] = {'E', 'In foreclosure', 38}
|
||||
},
|
||||
|
||||
-- Notify function EDITABLE >> cl_utils.lua
|
||||
Notify = {
|
||||
[1] = {"Housing", "You can only enter with your own car!", 5000, "error"},
|
||||
[2] = {"Housing", "No more space in the garage!", 5000, "error"},
|
||||
[3] = {"Housing", "The door is closed!", 5000, "error"},
|
||||
[4] = {"Housing", "You already have a property near you, move away!", 5000, "error"},
|
||||
[5] = {"Housing", "The property name must be 3-16 characters long!", 5000, "error"},
|
||||
[6] = {"Housing", "The URL must start with 'http://' or 'https://'", 5000, "error"},
|
||||
[7] = {"Housing", "The price must be more than ZERO!", 5000, "error"},
|
||||
[8] = {"Housing", "You have entered an invalid or already used garage id!", 5000, "error"},
|
||||
[9] = {"Housing", "You have successfully created it!", 5000, "success"},
|
||||
[10] = {"Housing", "Invalid property ID!", 5000, "error"},
|
||||
[11] = {"Housing", "You don't have enough money!", 5000, "error"},
|
||||
[12] = {"Housing", "You can sell it for a maximum of 20% more than what you bought it for!", 5000, "error"},
|
||||
[13] = {"Housing", "You don't own it, so you can't sell it!", 5000, "error"},
|
||||
[14] = {"Housing", "You have successfully purchased!", 5000, "success"},
|
||||
[15] = {"Housing", "The house owner is currently unavailable. Please contact them by phone!", 5000, "error"},
|
||||
[16] = {"Housing", "You cannot park this vehicle in the garage!", 5000, "error"},
|
||||
[17] = {"Housing", "Successful payment!", 5000, "success"},
|
||||
[18] = {"Housing", "Successful upgrade!", 5000, "success"},
|
||||
[19] = {"Housing", "Someone knocked on the door!", 5000, "info"},
|
||||
[20] = {"Housing", "You knocked on the door!", 5000, "success"},
|
||||
[21] = {"Housing", "You have paid the outstanding debt on the property:", 5000, "error"},
|
||||
[22] = {"Housing", "You have successfully sold the property:", 5000, "success"},
|
||||
[23] = {"Housing", "The garage door cannot be more than 50 metres from the entrance to the house.", 5000, "error"},
|
||||
[24] = {"Housing", "Not enough money for the real estate agency!", 5000, "error"},
|
||||
[25] = {"Housing", "You do not have permission!", 5000, "error"},
|
||||
[26] = {"Housing", "You can only connect a house and a garage!", 5000, "error"},
|
||||
[27] = {"Housing", "The property is already connected!", 5000, "error"},
|
||||
[28] = {"Housing", "These two properties are not connected!", 5000, "error"},
|
||||
[29] = {"Housing", "Successful connection!", 5000, "success"},
|
||||
[30] = {"Housing", "You have successfully detached the garage!", 5000, "success"},
|
||||
[31] = {"Housing", "You've got it back:", 5000, "success"},
|
||||
[32] = {"Housing", "No vehicle to get back!", 5000, "error"},
|
||||
[33] = {"Housing", "There was a problem loading the IPL/Shell.", 5000, "error"},
|
||||
[34] = {"Housing", "You spammed the housing system, so you have been put on a 3-minute cooldown.", 5000, "error"},
|
||||
[35] = {"Housing", "You can now use the housing system again.", 5000, "success"},
|
||||
[36] = {"Housing", "Please avoid doing this again in the future.", 5000, "info"},
|
||||
[37] = {"Housing", "You cannot buy/rent more property! Maximum quantity:", 5000, "error"},
|
||||
[38] = {"Housing", "You have to wait 2 minutes because you've failed the minigame!", 5000, "error"},
|
||||
[39] = {"Housing", "You have successfully completed the minigame! The door is open!", 5000, "success"},
|
||||
[40] = {"Housing", "You failed to complete the minigame!", 5000, "error"},
|
||||
[41] = {"Housing", "You have successfully completed the minigame!", 5000, "success"},
|
||||
[42] = {"Housing", "This house has too good security, you can't break in!", 5000, "error"},
|
||||
[43] = {"Housing", "You have reached the maximum attempt!", 5000, "error"},
|
||||
[44] = {"Housing", "Not enough police in the city!", 5000, "error"},
|
||||
[45] = {"Housing", "You need a lockpick item!", 5000, "error"},
|
||||
[46] = {"Housing", "You need a laptop item!", 5000, "error"},
|
||||
[47] = {"Housing", "Invalid Player ID!", 5000, "error"},
|
||||
[48] = {"Housing", "Invalid Identifier!", 5000, "error"},
|
||||
[49] = {"Housing", "Successful modification!", 5000, "success"},
|
||||
[50] = {"Housing", "This address already exist!", 5000, "error"},
|
||||
[51] = {"Housing", "The two properties must be owned by the same person/job!", 5000, "error"},
|
||||
[52] = {"Housing", "The amount you offered is too low!", 5000, "error"},
|
||||
[53] = {"Housing", "The spawn coordinates of the vehicle must be within 15 meters of the garage door!", 5000, "error"},
|
||||
[54] = {"Housing", "You don't have property!", 5000, "error"},
|
||||
[55] = {"Housing", "Staff mode: ON", 5000, "success"},
|
||||
[56] = {"Housing", "Staff mode: OFF", 5000, "error"},
|
||||
[57] = {"Housing", "You have started to rent the property!", 5000, "success"},
|
||||
[58] = {"Housing", "You've put your property up for sale!", 5000, "success"},
|
||||
[59] = {"Housing", "You cancelled the sale!", 5000, "info"},
|
||||
[60] = {"Housing", "Invalid Price!", 5000, "error"},
|
||||
[61] = {"Housing", "You cannot buy your own property! You can cancel the sale in the Myproperties menu!", 5000, "error"},
|
||||
[62] = {"Housing", "You have stopped to rent the property!", 5000, "info"},
|
||||
[63] = {"Housing", "There is not that much money in the account!", 5000, "error"},
|
||||
[64] = {"Housing", "Successful deposit:", 5000, "success"},
|
||||
[65] = {"Housing", "Successful withdrawal:", 5000, "success"},
|
||||
[66] = {"Housing", "A burglar broke into the house! Go to the designated place!", 5000, "info"},
|
||||
[67] = {"Housing", "You have successfully deleted it!", 5000, "success"},
|
||||
[68] = {"Housing", "You cannot add a garage to an apartment/mlo!", 5000, "error"},
|
||||
[69] = {"Housing", "You cannot place objects here!", 5000, "error"},
|
||||
[70] = {"Housing", "You cannot create a house/garage near Apartment buildings!", 5000, "error"},
|
||||
[71] = {"Housing", "You have successfully renamed the property!", 5000, "success"},
|
||||
[72] = {"Housing", "You have successfully replaced the door lock!", 5000, "success"},
|
||||
[73] = {"Housing", "You have successfully bought a new key!", 5000, "success"},
|
||||
[74] = {"Housing", "Place %d car spawn coordinates inside the shell!", 5000, "info"},
|
||||
[75] = {"Housing", "You can't put a door lock that far away!", 5000, "error"},
|
||||
[76] = {"Housing", "You paid for furniture:", 5000, "info"},
|
||||
[77] = {"Housing", "You sold furniture for:", 5000, "info"},
|
||||
[78] = {"Housing", "You are too far from the object!", 5000, "error"},
|
||||
[79] = {"Housing", "You have successfully destroyed it, the owner has lost the camera data!", 5000, "error"},
|
||||
[80] = {"Housing", "You can't sit in a car!", 5000, "error"},
|
||||
[81] = {"Housing", "There is no database near you!", 5000, "error"},
|
||||
[82] = {"Housing", "This has already been destroyed!", 5000, "error"},
|
||||
[83] = {"Housing", "You have successfully repaired it!", 5000, "success"},
|
||||
[84] = {"Housing", "You cannot open the menu now!", 5000, "error"},
|
||||
[85] = {"Housing", "The property is in foreclosure! The owner must pay the bills before we can use it.", 5000, "error"},
|
||||
[86] = {"Housing", "This car is out of the garage!", 5000, "error"},
|
||||
[87] = {"Housing", "The maximum number of objects you can place:", 5000, "error"},
|
||||
[88] = {"Housing", "The garage must be empty if you want to sell the property!", 5000, "error"},
|
||||
[89] = {"Housing", "You have reached the maximum number of stashes you can place!", 5000, "error"},
|
||||
[90] = {"Housing", "You cannot put the object so far away!", 5000, "error"},
|
||||
[91] = {"Housing", "The house you were in has been deleted, so you have been teleported here!", 10000, "info"},
|
||||
},
|
||||
|
||||
Webhooks = {
|
||||
Locale = {
|
||||
['houseCreateTitle'] = "🆕 House created...",
|
||||
['houseCreateSubtitle'] = "created a house.",
|
||||
['garageCreateTitle'] = "🆕 Garage created...",
|
||||
['garageCreateSubtitle'] = "created a garage.",
|
||||
['deleteTitle'] = "❌ Deleted property...",
|
||||
['deleteSubtitle'] = "deleted a property.",
|
||||
['purchaseTitle'] = "💵 Purchased property...",
|
||||
['purchaseSubtitle'] = "purchased a property.",
|
||||
['rentTitle'] = "💵 Rented property...",
|
||||
['rentSubtitle'] = "rented a property.",
|
||||
['newOwnerTitle'] = "🔄 Change of owner...",
|
||||
['newOwnerSubtitle'] = "changed the property owner.",
|
||||
|
||||
['Identifier'] = "Identifier",
|
||||
['PropertyID'] = "Property ID",
|
||||
['Type'] = "Type",
|
||||
['Price'] = "Price",
|
||||
['Rent'] = "Rent",
|
||||
['Coords'] = "Coords",
|
||||
['Address'] = "Address",
|
||||
['Garage'] = "Garage",
|
||||
['Reason'] = "Reason",
|
||||
['PreviousOwner'] = "Previous Owner",
|
||||
['NewOwner'] = "New Owner",
|
||||
['Inactivity'] = "Since Config.DeleteInactiveProperty.use is true, this property is deleted due to inactivity.",
|
||||
|
||||
|
||||
['Time'] = "Time ⏲️"
|
||||
},
|
||||
|
||||
-- To change a webhook color you need to set the decimal value of a color, you can use this website to do that - https://www.mathsisfun.com/hexadecimal-decimal-colors.html
|
||||
Colors = {
|
||||
['houseCreateTitle'] = 65280,
|
||||
['garageCreateTitle'] = 255,
|
||||
['deleteTitle'] = 16711680,
|
||||
['purchaseTitle'] = 16776960,
|
||||
['rentTitle'] = 65535,
|
||||
['newOwnerTitle'] = 16711935,
|
||||
}
|
||||
},
|
||||
}
|
245
resources/[housing]/brutal_housing/configs/apartments.lua
Normal file
|
@ -0,0 +1,245 @@
|
|||
Config.Apartments = {
|
||||
["eclipse_tower"] = {
|
||||
Label = "Eclipse Tower",
|
||||
Address = "South Mo Milton Dr. 1.",
|
||||
SelectPanelCoords = vector4(-773.8490, 311.1882, 85.7982, 180.0),
|
||||
Coords = vector4(-773.8356, 309.6247, 85.6981, 177.2697),
|
||||
Blip = {use = true, size = 0.75, sprite = 475, color = 26},
|
||||
|
||||
Apartments = {
|
||||
{
|
||||
price = 230000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 230000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 240000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 240000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 250000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 250000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 260000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 260000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 270000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 270000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 280000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 280000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 290000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 290000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 300000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 300000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
["maze_bank_tower"] = {
|
||||
Label = "Maze Bank Tower",
|
||||
Address = "South Mo Milton Dr. 1.",
|
||||
SelectPanelCoords = vector4(-68.8102, -801.5714, 44.2273, 338.2512),
|
||||
Coords = vector4(-67.5983, -798.7274, 44.2273, 330.9335),
|
||||
Blip = {use = true, size = 0.75, sprite = 475, color = 26},
|
||||
|
||||
Apartments = {
|
||||
{
|
||||
price = 230000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 230000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 240000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 240000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 250000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 250000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 260000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 260000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 270000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 270000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 280000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 280000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 290000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 290000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 300000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
|
||||
{
|
||||
price = 300000,
|
||||
rentable = true,
|
||||
ipl = "luxury_apartment",
|
||||
basicTheme = 0
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
1774
resources/[housing]/brutal_housing/configs/furnitures.lua
Normal file
390
resources/[housing]/brutal_housing/configs/interiors.lua
Normal file
|
@ -0,0 +1,390 @@
|
|||
Config.Interiors = {
|
||||
Houses = {
|
||||
IPL = {
|
||||
["luxury_apartment"] = {
|
||||
label = "Luxury Apartment",
|
||||
themes = {
|
||||
[0] = {label = "Modern", ipl = "apa_v_mp_h_01_c", interiorId = 227841, price = 5000, coords = vector4(-787.1503, 315.7941, 187.9134, 269.1841), link = "https://i.ibb.co/KjrkDYcB/image.png", teleportToDoor = false},
|
||||
[1] = {label = "Moody", ipl = "apa_v_mp_h_02_c", interiorId = 228609, price = 5000, coords = vector4(-787.1503, 315.7941, 187.9134, 269.1841), link = "https://i.ibb.co/bcGH7W4/1.png", teleportToDoor = false},
|
||||
[2] = {label = "Vibrant", ipl = "apa_v_mp_h_03_c", interiorId = 229377, price = 5000, coords = vector4(-787.1503, 315.7941, 187.9134, 269.1841), link = "https://i.ibb.co/kVWqh6Qm/2.png", teleportToDoor = false},
|
||||
[3] = {label = "Sharp", ipl = "apa_v_mp_h_04_c", interiorId = 230145, price = 5000, coords = vector4(-787.1503, 315.7941, 187.9134, 269.1841), link = "https://i.ibb.co/wh1qcnQ9/3.png", teleportToDoor = false},
|
||||
[4] = {label = "Monochrome", ipl = "apa_v_mp_h_05_c", interiorId = 230913, price = 5000, coords = vector4(-787.1503, 315.7941, 187.9134, 269.1841), link = "https://i.ibb.co/chmmS3HH/4.png", teleportToDoor = false},
|
||||
[5] = {label = "Seductive", ipl = "apa_v_mp_h_06_c", interiorId = 231681, price = 5000, coords = vector4(-787.1503, 315.7941, 187.9134, 269.1841), link = "https://i.ibb.co/sJpwb8f6/5.png", teleportToDoor = false},
|
||||
[6] = {label = "Regal", ipl = "apa_v_mp_h_07_c", interiorId = 232449, price = 5000, coords = vector4(-787.1503, 315.7941, 187.9134, 269.1841), link = "https://i.ibb.co/TMhwQNgK/6.png", teleportToDoor = false},
|
||||
[7] = {label = "Aqua", ipl = "apa_v_mp_h_08_c", interiorId = 233217, price = 5000, coords = vector4(-787.1503, 315.7941, 187.9134, 269.1841), link = "https://i.ibb.co/4ZbxmWvs/7.png", teleportToDoor = false},
|
||||
},
|
||||
},
|
||||
|
||||
-- Apartments NO IPL --
|
||||
|
||||
["ipl_01"] = {
|
||||
label = "Low End Apartment",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(261.4586, -998.8196, -99.00863, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_02"] = {
|
||||
label = "Medium End Apartment",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(347.2686, -999.2955, -99.19622, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_03"] = {
|
||||
label = "4 Integrity Way, Apt 28",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-18.07856, -583.6725, 79.46569, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_04"] = {
|
||||
label = "4 Integrity Way, Apt 30",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-35.31277, -580.4199, 88.71221, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_05"] = {
|
||||
label = "Dell Perro Heights, Apt 4",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-1468.14, -541.815, 73.4442, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_06"] = {
|
||||
label = "Dell Perro Heights, Apt 7",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-1477.14, -538.7499, 55.5264, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_07"] = {
|
||||
label = "Richard Majestic, Apt 2",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-915.811, -379.432, 113.6748, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_08"] = {
|
||||
label = "Tinsel Towers, Apt 42",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-614.86, 40.6783, 97.60007, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_09"] = {
|
||||
label = "Eclipse Towers, Apt 3",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-773.407, 341.766, 211.397, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_10"] = {
|
||||
label = "3655 Wild Oats Drive",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-169.286, 486.4938, 137.4436, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_11"] = {
|
||||
label = "2044 North Conker Avenue",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(340.9412, 437.1798, 149.3925, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_12"] = {
|
||||
label = "2045 North Conker Avenue",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(373.023, 416.105, 145.7006, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_13"] = {
|
||||
label = "2862 Hillcrest Avenue",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-676.127, 588.612, 145.1698, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_14"] = {
|
||||
label = "2868 Hillcrest Avenue",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-763.107, 615.906, 144.1401, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_15"] = {
|
||||
label = "2874 Hillcrest Avenue",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-857.798, 682.563, 152.6529, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_16"] = {
|
||||
label = "2677 Whispymound Drive",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(120.5, 549.952, 184.097, 20.0), teleportToDoor = false},
|
||||
}
|
||||
},
|
||||
["ipl_17"] = {
|
||||
label = "2133 Mad Wayne Thunder",
|
||||
themes = {
|
||||
[0] = {label = "Basic", ipl = "", interiorId = nil, coords = vector4(-1288, 440.748, 97.69459, 20.0), teleportToDoor = false},
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
SHELL = {
|
||||
-- [FREE] K4mbi starter housing shells | Download: https://k4mb1maps.com/product/5015840
|
||||
|
||||
["shell_1"] = {
|
||||
label = "Standard Motel",
|
||||
shell = "standardmotel_shell",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_2"] = {
|
||||
label = "Warehouse 1",
|
||||
shell = "shell_warehouse1",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_3"] = {
|
||||
label = "V16 mid",
|
||||
shell = "shell_v16mid",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_4"] = {
|
||||
label = "V16 low",
|
||||
shell = "shell_v16low",
|
||||
zOffset = 1.0,
|
||||
},
|
||||
|
||||
["shell_5"] = {
|
||||
label = "Trevor",
|
||||
shell = "shell_trevor",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_6"] = {
|
||||
label = "Trailer",
|
||||
shell = "shell_trailer",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_7"] = {
|
||||
label = "Store 1",
|
||||
shell = "shell_store1",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_8"] = {
|
||||
label = "Ranch",
|
||||
shell = "shell_ranch",
|
||||
zOffset = 1.0,
|
||||
},
|
||||
|
||||
["shell_9"] = {
|
||||
label = "Office 1",
|
||||
shell = "shell_office1",
|
||||
zOffset = 1.25,
|
||||
},
|
||||
|
||||
["shell_10"] = {
|
||||
label = "Michael",
|
||||
shell = "shell_michael",
|
||||
zOffset = 3.75,
|
||||
},
|
||||
|
||||
["shell_11"] = {
|
||||
label = "Lester",
|
||||
shell = "shell_lester",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_12"] = {
|
||||
label = "Frankaunt",
|
||||
shell = "shell_frankaunt",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_13"] = {
|
||||
label = "Modern Hotel",
|
||||
shell = "modernhotel_shell",
|
||||
zOffset = 0.5,
|
||||
},
|
||||
|
||||
["shell_14"] = {
|
||||
label = "Furnitured Midapart",
|
||||
shell = "furnitured_midapart",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
["shell_15"] = {
|
||||
label = "Container",
|
||||
shell = "container_shell",
|
||||
zOffset = 0.0,
|
||||
},
|
||||
|
||||
-- [FREE] Lynx housing shells | Download: https://github.com/Lynxist/lynx_shells
|
||||
|
||||
["shell_16"] = {
|
||||
label = "T1 Furn",
|
||||
shell = "t1_furn_shell",
|
||||
zOffset = -0.75,
|
||||
},
|
||||
|
||||
["shell_17"] = {
|
||||
label = "T2 Furn",
|
||||
shell = "t2_furn_shell",
|
||||
zOffset = -1.5,
|
||||
},
|
||||
|
||||
["shell_18"] = {
|
||||
label = "T3 Furn",
|
||||
shell = "t3_furn_shell",
|
||||
zOffset = -1.5,
|
||||
},
|
||||
|
||||
["shell_19"] = {
|
||||
label = "T1 Unfurn",
|
||||
shell = "t1_unfurn_shell",
|
||||
zOffset = -0.75,
|
||||
},
|
||||
|
||||
["shell_20"] = {
|
||||
label = "T2 Unfurn",
|
||||
shell = "t2_unfurn_shell",
|
||||
zOffset = -1.5,
|
||||
},
|
||||
|
||||
["shell_21"] = {
|
||||
label = "T3 Unfurn",
|
||||
shell = "t3_unfurn_shell",
|
||||
zOffset = -1.5,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Garages = {
|
||||
IPL = {
|
||||
["garage_1"] = {
|
||||
label = "Garage I.",
|
||||
themes = {
|
||||
[0] = {
|
||||
label = "Basic",
|
||||
ipl = "",
|
||||
interiorId = nil,
|
||||
coords = vector4(178.9558, -1005.3951, -99.0000, 21.3123),
|
||||
teleportToDoor = false,
|
||||
vehicleCoords = {
|
||||
[1] = vector4(175.1855, -1003.7393, -99.4123, 181.5427),
|
||||
[2] = vector4(171.8091, -1003.7794, -99.4124, 181.3861),
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
["garage_2"] = {
|
||||
label = "Garage II.",
|
||||
themes = {
|
||||
[0] = {
|
||||
label = "Basic",
|
||||
ipl = "",
|
||||
interiorId = nil,
|
||||
coords = vector4(206.9773, -1018.5231, -99.0000, 87.2694),
|
||||
teleportToDoor = false,
|
||||
vehicleCoords = {
|
||||
[1] = vector4(194.1104, -1016.6121, -99.4099, 182.7991),
|
||||
[2] = vector4(198.2034, -1016.4313, -99.4171, 183.3609),
|
||||
[3] = vector4(203.5549, -1016.4313, -99.4116, 184.7148),
|
||||
[4] = vector4(194.4705, -1023.3527, -99.4167, 183.4615),
|
||||
[5] = vector4(198.7118, -1023.0986, -99.4170, 183.6204),
|
||||
[6] = vector4(203.6475, -1022.9459, -99.4167, 180.2281),
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
["garage_3"] = {
|
||||
label = "Garage III.",
|
||||
themes = {
|
||||
[0] = {
|
||||
label = "Basic",
|
||||
ipl = "",
|
||||
interiorId = nil,
|
||||
coords = vector4(204.5689, -999.7145, -99.0000, 96.2213),
|
||||
teleportToDoor = false,
|
||||
vehicleCoords = {
|
||||
[1] = vector4(203.1431, -997.8181, -99.4099, 180.8668),
|
||||
[2] = vector4(198.3203, -998.0093, -99.4160, 180.2940),
|
||||
[3] = vector4(194.2100, -997.9175, -99.4168, 182.2399),
|
||||
[4] = vector4(194.3332, -1004.3503, -99.4171, 181.8376),
|
||||
[5] = vector4(198.4779, -1004.2313, -99.4099, 179.6543),
|
||||
[6] = vector4(203.1758, -1004.1754, -99.4172, 181.2833),
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
["garage_4"] = {
|
||||
label = "Garage IV.",
|
||||
themes = {
|
||||
[0] = {
|
||||
label = "Basic",
|
||||
ipl = "",
|
||||
interiorId = nil,
|
||||
coords = vector4(240.6632, -1004.8735, -99.0000, 20.0),
|
||||
teleportToDoor = false,
|
||||
vehicleCoords = {
|
||||
[1] = vector4(233.8019, -1002.8353, -99.5624, 98.0763),
|
||||
[2] = vector4(233.7039, -999.4944, -99.5624, 98.7875),
|
||||
[3] = vector4(233.8993, -996.0872, -99.5627, 102.9313),
|
||||
[4] = vector4(233.8264, -992.7466, -99.5623, 105.2041),
|
||||
[5] = vector4(233.9019, -989.3083, -99.5627, 112.1547),
|
||||
[6] = vector4(233.6418, -986.1068, -99.5621, 112.8488),
|
||||
[7] = vector4(233.5690, -982.7154, -99.5625, 119.0502),
|
||||
[8] = vector4(223.4754, -977.2686, -99.4134, 239.5003),
|
||||
[9] = vector4(223.2184, -981.4578, -99.5619, 237.0337),
|
||||
[10] = vector4(223.2762, -985.4167, -99.5619, 238.9182),
|
||||
[11] = vector4(223.5789, -989.1111, -99.5622, 242.2118),
|
||||
[12] = vector4(223.3941, -992.6294, -99.5619, 245.8700),
|
||||
[13] = vector4(223.2339, -996.2072, -99.5625, 245.0806),
|
||||
[14] = vector4(223.2626, -999.9703, -99.5627, 248.0285),
|
||||
[15] = vector4(223.0869, -1003.8400, -99.5619, 246.7725),
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
["arcadius_garage"] = {
|
||||
label = "Arcadius Garage",
|
||||
themes = {
|
||||
[0] = {
|
||||
label = "Basic",
|
||||
ipl = "imp_dt1_02_cargarage_a",
|
||||
interiorId = nil,
|
||||
coords = vector4(-198.1888, -580.6741, 136.0006, 283.6408),
|
||||
teleportToDoor = false,
|
||||
vehicleCoords = {
|
||||
[1] = vector4(-173.0641, -583.9653, 135.5904, 76.3288),
|
||||
[2] = vector4(-173.9179, -577.0183, 135.5862, 119.9366),
|
||||
[3] = vector4(-179.1989, -573.1927, 135.5891, 164.5817),
|
||||
[4] = vector4(-186.1283, -573.6585, 135.5884, 205.5771),
|
||||
[5] = vector4(-190.6035, -578.9037, 135.5905, 247.4073),
|
||||
[6] = vector4(-172.9172, -584.2977, 140.9358, 74.9734),
|
||||
[7] = vector4(-173.7856, -577.0521, 140.9302, 118.4581),
|
||||
[8] = vector4(-179.3282, -572.5753, 140.9300, 162.7588),
|
||||
[9] = vector4(-186.5548, -573.2651, 140.9356, 209.7426),
|
||||
[10] = vector4(-190.8909, -579.0132, 140.9296, 251.7935),
|
||||
[11] = vector4(-172.5084, -583.9584, 146.2755, 75.6867),
|
||||
[12] = vector4(-173.6930, -577.0157, 146.2758, 118.3053),
|
||||
[13] = vector4(-179.3384, -572.6110, 146.2757, 164.0221),
|
||||
[14] = vector4(-186.6965, -573.4319, 146.2755, 211.0180),
|
||||
[15] = vector4(-190.7574, -579.1912, 146.2754, 252.5850),
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
SHELL = {
|
||||
["shell_1"] = {
|
||||
label = "GarageM",
|
||||
shell = "shell_garagem",
|
||||
maxVehicle = 8,
|
||||
zOffset = 0.0,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
73
resources/[housing]/brutal_housing/core/client-core.lua
Normal file
|
@ -0,0 +1,73 @@
|
|||
Core = nil
|
||||
defaultVoiceChannel = 0
|
||||
|
||||
if Config.VoiceSytem:upper() == 'SALTYCHAT' then
|
||||
defaultVoiceChannel = "ingame"
|
||||
end
|
||||
|
||||
if Config['Core']:upper() == 'ESX' then
|
||||
local _esx_ = 'new' -- 'new' / 'old'
|
||||
|
||||
if _esx_ then
|
||||
Core = exports['es_extended']:getSharedObject()
|
||||
else
|
||||
while Core == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) Core = obj end)
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end
|
||||
|
||||
LoadedEvent = 'esx:playerLoaded'
|
||||
ReviveEvent = 'esx_ambulancejob:revive'
|
||||
JobUpdateEvent = 'esx:setJob'
|
||||
TSCB = Core.TriggerServerCallback
|
||||
|
||||
function GetPlayerJobDatas()
|
||||
return Core.GetPlayerData().job
|
||||
end
|
||||
|
||||
function GetPlayersFunction()
|
||||
return Core.Game.GetPlayers()
|
||||
end
|
||||
|
||||
function GetVehiclePropertiesFunction(vehicle)
|
||||
return Core.Game.GetVehicleProperties(vehicle)
|
||||
end
|
||||
|
||||
function SetVehiclePropertiesFunction(vehicle, properties)
|
||||
return Core.Game.SetVehicleProperties(vehicle, properties)
|
||||
end
|
||||
|
||||
function GetClosestVehicleFunction(coords, modelFilter)
|
||||
return Core.Game.GetClosestVehicle(coords, modelFilter)
|
||||
end
|
||||
|
||||
elseif Config['Core']:upper() == 'QBCORE' then
|
||||
Core = exports['qb-core']:GetCoreObject()
|
||||
|
||||
LoadedEvent = 'QBCore:Client:OnPlayerLoaded'
|
||||
ReviveEvent = 'hospital:client:Revive'
|
||||
JobUpdateEvent = 'QBCore:Client:OnJobUpdate'
|
||||
TSCB = Core.Functions.TriggerCallback
|
||||
|
||||
function GetPlayerJobDatas()
|
||||
return Core.Functions.GetPlayerData().job
|
||||
end
|
||||
|
||||
function GetPlayersFunction()
|
||||
return Core.Functions.GetPlayers()
|
||||
end
|
||||
|
||||
function GetVehiclePropertiesFunction(vehicle)
|
||||
return Core.Functions.GetVehicleProperties(vehicle)
|
||||
end
|
||||
|
||||
function SetVehiclePropertiesFunction(vehicle, properties)
|
||||
return Core.Functions.SetVehicleProperties(vehicle, properties)
|
||||
end
|
||||
|
||||
function GetClosestVehicleFunction(coords, modelFilter)
|
||||
return Core.Functions.GetClosestVehicle(coords, modelFilter)
|
||||
end
|
||||
|
||||
end
|
274
resources/[housing]/brutal_housing/core/server-core.lua
Normal file
|
@ -0,0 +1,274 @@
|
|||
Core = nil
|
||||
|
||||
if Config['Core']:upper() == 'ESX' then
|
||||
local _esx_ = 'new' -- 'new' / 'old'
|
||||
|
||||
if _esx_ == 'new' then
|
||||
Core = exports['es_extended']:getSharedObject()
|
||||
else
|
||||
Core = nil
|
||||
TriggerEvent('esx:getSharedObject', function(obj) Core = obj end)
|
||||
while Core == nil do
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end
|
||||
|
||||
RESCB = Core.RegisterServerCallback
|
||||
GETPFI = Core.GetPlayerFromId
|
||||
RUI = Core.RegisterUsableItem
|
||||
SetJobEvent = 'esx:setJob'
|
||||
onPlayerDeath = 'esx:onPlayerDeath'
|
||||
SQLData = {
|
||||
users = 'users',
|
||||
job = 'job',
|
||||
jobs = 'jobs',
|
||||
|
||||
}
|
||||
|
||||
function GetIdentifier(source)
|
||||
local xPlayer = GETPFI(source)
|
||||
while xPlayer == nil do
|
||||
Citizen.Wait(1000)
|
||||
xPlayer = GETPFI(source)
|
||||
end
|
||||
return xPlayer.identifier
|
||||
end
|
||||
|
||||
function GetPlayerByIdentifier(identifier)
|
||||
return Core.GetPlayerFromIdentifier(identifier)
|
||||
end
|
||||
|
||||
function GetAccountMoney(source,account)
|
||||
local xPlayer = GETPFI(source)
|
||||
if account == 'bank' then
|
||||
return xPlayer.getAccount(account).money
|
||||
elseif account == 'money' then
|
||||
return xPlayer.getMoney()
|
||||
end
|
||||
end
|
||||
|
||||
function AddMoneyFunction(source, account, amount)
|
||||
local xPlayer = GETPFI(source)
|
||||
if account == 'bank' then
|
||||
xPlayer.addAccountMoney('bank', amount)
|
||||
elseif account == 'money' then
|
||||
xPlayer.addMoney(amount)
|
||||
end
|
||||
end
|
||||
|
||||
function RemoveAccountMoney(source, account, amount)
|
||||
local xPlayer = GETPFI(source)
|
||||
if account == 'bank' then
|
||||
xPlayer.removeAccountMoney('bank', amount)
|
||||
elseif account == 'money' then
|
||||
xPlayer.removeMoney(amount)
|
||||
end
|
||||
end
|
||||
|
||||
function GetItemCount(source, item)
|
||||
local xPlayer = GETPFI(source)
|
||||
|
||||
if _esx_ == 'new' then
|
||||
return xPlayer.getInventoryItem(item).count
|
||||
else
|
||||
if string.sub(item, 0, 6):lower() == 'weapon' then
|
||||
local loadoutNum, weapon = xPlayer.getWeapon(item:upper())
|
||||
|
||||
if weapon then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
else
|
||||
return xPlayer.getInventoryItem(item).count
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function RemoveItem(source, item, amount)
|
||||
local xPlayer = GETPFI(source)
|
||||
if _esx_ == 'new' then
|
||||
xPlayer.removeInventoryItem(item, amount)
|
||||
else
|
||||
if string.sub(item, 0, 6):lower() == 'weapon' then
|
||||
xPlayer.removeWeapon(item)
|
||||
else
|
||||
xPlayer.removeInventoryItem(item, amount)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function AddItem(source, item, count, info)
|
||||
local xPlayer = GETPFI(source)
|
||||
if _esx_ == 'new' then
|
||||
xPlayer.addInventoryItem(item, count, info)
|
||||
else
|
||||
if string.sub(item, 0, 6):lower() == 'weapon' then
|
||||
xPlayer.addWeapon(item, 90)
|
||||
else
|
||||
xPlayer.addInventoryItem(item, count)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function GetPlayerNameFunction(source)
|
||||
local name
|
||||
if Config.SteamName then
|
||||
name = GetPlayerName(source) or 'No Data'
|
||||
else
|
||||
local xPlayer = GETPFI(source)
|
||||
name = xPlayer.getName() or 'No Data'
|
||||
end
|
||||
return name
|
||||
end
|
||||
|
||||
function GetPlayerJob(source)
|
||||
local xPlayer = GETPFI(source)
|
||||
return xPlayer.job.name
|
||||
end
|
||||
|
||||
function CreateCoreJob(name, label, grades)
|
||||
Core.CreateJob(name, label, grades)
|
||||
end
|
||||
|
||||
function SetCoreJob(source, job, grade)
|
||||
local xPlayer = GETPFI(source)
|
||||
xPlayer.setJob(job, grade)
|
||||
end
|
||||
|
||||
function SetCoreJobOffline(identifier, job, grade)
|
||||
MySQL.update('UPDATE users SET job = ?, job_grade = ? WHERE identifier = ?', {job, grade, identifier})
|
||||
end
|
||||
|
||||
function GetPlayersFunction()
|
||||
return Core.GetPlayers()
|
||||
end
|
||||
|
||||
elseif Config['Core']:upper() == 'QBCORE' then
|
||||
|
||||
Core = exports['qb-core']:GetCoreObject()
|
||||
|
||||
RESCB = Core.Functions.CreateCallback
|
||||
GETPFI = Core.Functions.GetPlayer
|
||||
RUI = Core.Functions.CreateUseableItem
|
||||
SetJobEvent = 'QBCore:Server:SetGang'
|
||||
onPlayerDeath = GetResourceState("brutal_ambulancejob") == "started" and 'onPlayerDeath' or 'hospital:server:SetDeathStatus'
|
||||
SQLData = {
|
||||
players = 'players',
|
||||
}
|
||||
|
||||
function GetIdentifier(source)
|
||||
local xPlayer = GETPFI(source)
|
||||
while xPlayer == nil do
|
||||
Citizen.Wait(1000)
|
||||
xPlayer = GETPFI(source)
|
||||
end
|
||||
return xPlayer.PlayerData.citizenid
|
||||
end
|
||||
|
||||
function GetPlayerByIdentifier(identifier)
|
||||
return Core.Functions.GetPlayerByCitizenId(identifier)
|
||||
end
|
||||
|
||||
function GetAccountMoney(source, account)
|
||||
local xPlayer = GETPFI(source)
|
||||
if account == 'bank' then
|
||||
return xPlayer.PlayerData.money.bank
|
||||
elseif account == 'money' then
|
||||
return xPlayer.PlayerData.money.cash
|
||||
end
|
||||
end
|
||||
|
||||
function AddMoneyFunction(source, account, amount)
|
||||
local xPlayer = GETPFI(source)
|
||||
if account == 'bank' then
|
||||
xPlayer.Functions.AddMoney('bank', amount)
|
||||
elseif account == 'money' then
|
||||
xPlayer.Functions.AddMoney('cash', amount)
|
||||
end
|
||||
end
|
||||
|
||||
function RemoveAccountMoney(source, account, amount)
|
||||
local xPlayer = GETPFI(source)
|
||||
if account == 'bank' then
|
||||
xPlayer.Functions.RemoveMoney('bank', amount)
|
||||
elseif account == 'money' then
|
||||
xPlayer.Functions.RemoveMoney('cash', amount)
|
||||
end
|
||||
end
|
||||
|
||||
function GetItemCount(source, item)
|
||||
local xPlayer = GETPFI(source)
|
||||
local items = xPlayer.Functions.GetItemByName(item)
|
||||
local item_count = 0
|
||||
if items ~= nil then
|
||||
item_count = items.amount
|
||||
else
|
||||
item_count = 0
|
||||
end
|
||||
return item_count
|
||||
end
|
||||
|
||||
function RemoveItem(source, item, amount)
|
||||
local xPlayer = GETPFI(source)
|
||||
xPlayer.Functions.RemoveItem(item, amount)
|
||||
end
|
||||
|
||||
function AddItem(source, item, count, info)
|
||||
local xPlayer = GETPFI(source)
|
||||
xPlayer.Functions.AddItem(item, count, nil, info)
|
||||
end
|
||||
|
||||
function GetPlayerNameFunction(source)
|
||||
local name
|
||||
if Config.SteamName then
|
||||
name = GetPlayerName(source)
|
||||
else
|
||||
local xPlayer = GETPFI(source)
|
||||
name = xPlayer.PlayerData.charinfo.firstname..' '..xPlayer.PlayerData.charinfo.lastname
|
||||
end
|
||||
return name
|
||||
end
|
||||
|
||||
function GetPlayerJob(source)
|
||||
local xPlayer = GETPFI(source)
|
||||
return xPlayer.PlayerData.gang.name
|
||||
end
|
||||
|
||||
function CreateCoreJob(name, label, grades)
|
||||
Core.Functions.AddGang(name,
|
||||
{
|
||||
label = label,
|
||||
grades = grades,
|
||||
})
|
||||
end
|
||||
|
||||
function UpdateCoreJob(name, label, grades)
|
||||
Core.Functions.UpdateGang(name, {
|
||||
label = label,
|
||||
grades = grades,
|
||||
})
|
||||
end
|
||||
|
||||
function RemoveCoreJob(name)
|
||||
Core.Functions.RemoveGang(name)
|
||||
end
|
||||
|
||||
function SetCoreJob(source, job, grade)
|
||||
local xPlayer = GETPFI(source)
|
||||
xPlayer.Functions.SetGang(job, grade)
|
||||
end
|
||||
|
||||
function SetCoreJobOffline(identifier, job)
|
||||
local joblabel = "None"
|
||||
if Gangs[job] ~= nil and Gangs[job].label ~= nil then
|
||||
joblabel = Gangs[job].label
|
||||
end
|
||||
|
||||
MySQL.update('UPDATE players SET gang = ? WHERE citizenid = ?', {json.encode({grade = {level = 0, name = "Member"}, name = job, isboss = false, label = joblabel}), identifier})
|
||||
end
|
||||
|
||||
function GetPlayersFunction()
|
||||
return Core.Functions.GetPlayers()
|
||||
end
|
||||
end
|
72
resources/[housing]/brutal_housing/fxmanifest.lua
Normal file
|
@ -0,0 +1,72 @@
|
|||
fx_version 'cerulean'
|
||||
games { 'gta5' }
|
||||
lua54 'yes'
|
||||
|
||||
author 'Keres & Dév'
|
||||
description 'Brutal Housing - store.brutalscripts.com'
|
||||
version '1.1.5'
|
||||
|
||||
client_scripts {
|
||||
'config.lua',
|
||||
'configs/furnitures.lua',
|
||||
'configs/interiors.lua',
|
||||
'configs/apartments.lua',
|
||||
'core/client-core.lua',
|
||||
'cl_utils.lua',
|
||||
'client/*.lua',
|
||||
'client/object_placing/gizmo.lua',
|
||||
'client/vendor/freecam/utils.lua',
|
||||
'client/vendor/freecam/config.lua',
|
||||
'client/vendor/freecam/main.lua',
|
||||
'client/vendor/freecam/camera.lua'
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
'config.lua',
|
||||
'configs/furnitures.lua',
|
||||
'configs/interiors.lua',
|
||||
'configs/apartments.lua',
|
||||
'core/server-core.lua',
|
||||
'sv_utils.lua',
|
||||
'server/*.lua',
|
||||
}
|
||||
|
||||
shared_script {
|
||||
'@ox_lib/init.lua'
|
||||
}
|
||||
|
||||
ui_page "html/index.html"
|
||||
files {
|
||||
"html/index.html",
|
||||
"html/style.css",
|
||||
"html/script.js",
|
||||
"html/assets/**",
|
||||
'locales/*.json',
|
||||
'client/object_placing/dataview.lua'
|
||||
}
|
||||
|
||||
export 'hasKeyToHouse'
|
||||
export 'getPropertyID'
|
||||
|
||||
dependencies {
|
||||
'ox_lib', -- https://github.com/overextended/ox_lib/releases/latest/download/ox_lib.zip
|
||||
|
||||
'/server:5181', -- ⚠️PLEASE READ⚠️; Requires at least SERVER build 5181
|
||||
'/gameBuild:2189', -- ⚠️PLEASE READ⚠️; Requires at least GAME build 2189.
|
||||
}
|
||||
|
||||
escrow_ignore {
|
||||
'config.lua',
|
||||
'cl_utils.lua',
|
||||
'sv_utils.lua',
|
||||
'core/client-core.lua',
|
||||
'core/server-core.lua',
|
||||
'stream/*.ydr',
|
||||
'stream/*.ytyp',
|
||||
'client/object_placing/dataview.lua',
|
||||
'configs/furnitures.lua',
|
||||
'configs/interiors.lua',
|
||||
'configs/apartments.lua'
|
||||
}
|
||||
dependency '/assetpacks'
|
BIN
resources/[housing]/brutal_housing/html/assets/3d.png
Normal file
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,3 @@
|
|||
<svg width="343" height="73" viewBox="0 0 343 73" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1 36.5V17C1 8.16344 8.16344 1 17 1H86.25M342 36.5V56C342 64.8366 334.837 72 326 72H256.75" stroke="white" stroke-width="2" stroke-linecap="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 263 B |
52
resources/[housing]/brutal_housing/html/assets/arrows.svg
Normal file
|
@ -0,0 +1,52 @@
|
|||
<svg width="54" height="35" viewBox="0 0 54 35" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g filter="url(#filter0_d_229_133)">
|
||||
<mask id="path-1-inside-1_229_133" fill="white">
|
||||
<path d="M6 17.5L17.5 6L29 17.5L17.5 29L6 17.5Z"/>
|
||||
</mask>
|
||||
<path d="M29 17.5L30.4142 18.9142C31.1953 18.1332 31.1953 16.8668 30.4142 16.0858L29 17.5ZM16.0858 7.41421L27.5858 18.9142L30.4142 16.0858L18.9142 4.58579L16.0858 7.41421ZM27.5858 16.0858L16.0858 27.5858L18.9142 30.4142L30.4142 18.9142L27.5858 16.0858Z" fill="#65C95B" mask="url(#path-1-inside-1_229_133)"/>
|
||||
</g>
|
||||
<g filter="url(#filter1_d_229_133)">
|
||||
<mask id="path-3-inside-2_229_133" fill="white">
|
||||
<path d="M15.752 17.5L27.252 6L38.752 17.5L27.252 29L15.752 17.5Z"/>
|
||||
</mask>
|
||||
<path d="M38.752 17.5L40.1662 18.9142C40.9472 18.1332 40.9472 16.8668 40.1662 16.0858L38.752 17.5ZM25.8377 7.41421L37.3377 18.9142L40.1662 16.0858L28.6662 4.58579L25.8377 7.41421ZM37.3377 16.0858L25.8377 27.5858L28.6662 30.4142L40.1662 18.9142L37.3377 16.0858Z" fill="#65C95B" mask="url(#path-3-inside-2_229_133)"/>
|
||||
</g>
|
||||
<g filter="url(#filter2_d_229_133)">
|
||||
<mask id="path-5-inside-3_229_133" fill="white">
|
||||
<path d="M25.5039 17.5L37.0039 6L48.5039 17.5L37.0039 29L25.5039 17.5Z"/>
|
||||
</mask>
|
||||
<path d="M48.5039 17.5L49.9181 18.9142C50.6992 18.1332 50.6992 16.8668 49.9181 16.0858L48.5039 17.5ZM35.5897 7.41421L47.0897 18.9142L49.9181 16.0858L38.4181 4.58579L35.5897 7.41421ZM47.0897 16.0858L35.5897 27.5858L38.4181 30.4142L49.9181 18.9142L47.0897 16.0858Z" fill="#65C95B" mask="url(#path-5-inside-3_229_133)"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_229_133" x="0.7" y="0.7" width="33.6" height="33.6" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset/>
|
||||
<feGaussianBlur stdDeviation="2.65"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.395215 0 0 0 0 0.7875 0 0 0 0 0.357656 0 0 0 1 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_229_133"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_229_133" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter1_d_229_133" x="10.452" y="0.7" width="33.6" height="33.6" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset/>
|
||||
<feGaussianBlur stdDeviation="2.65"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.395215 0 0 0 0 0.7875 0 0 0 0 0.357656 0 0 0 1 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_229_133"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_229_133" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter2_d_229_133" x="20.2039" y="0.7" width="33.6" height="33.6" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset/>
|
||||
<feGaussianBlur stdDeviation="2.65"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.395215 0 0 0 0 0.7875 0 0 0 0 0.357656 0 0 0 1 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_229_133"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_229_133" result="shape"/>
|
||||
</filter>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/automobile.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/axis.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/bike.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/box.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/bubbles.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/buy.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/camera.png
Normal file
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 22 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/desktop.ini
Normal file
BIN
resources/[housing]/brutal_housing/html/assets/door.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
resources/[housing]/brutal_housing/html/assets/flash.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 7 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 5.3 KiB |