Part 5
This commit is contained in:
parent
e377c91601
commit
5d1209b1e9
38
resources/[standalone]/am_hackgame/README.md
Normal file
38
resources/[standalone]/am_hackgame/README.md
Normal file
@ -0,0 +1,38 @@
|
||||
<!----<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- ☾ AMERICAN SCRIPT ☾ --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- -->
|
||||
|
||||
### Comments
|
||||
|
||||
American script presents an Echo Script in the most unique and fun way, that is an immersion into Roleplay.
|
||||
|
||||
### Install Am_HackGame
|
||||
|
||||
1) Drag & drop `Am_HackGame` Remember to always leave it inside FOLDER /Resources
|
||||
2) Go to your CFG server and copy this from here : `start am_hackgame` and proceed to paste it inside your CFG
|
||||
3) Restart your server and test it, inside our folder you will find Hack.lua, there you can check some things and modify.
|
||||
|
||||
### HOW TO USE
|
||||
|
||||
To add it to your Trust Script, you must copy this from below and then restart the script.
|
||||
|
||||
```lua
|
||||
exports['am_hackgame']:StartGame(function(success)
|
||||
if success then
|
||||
-- do something
|
||||
else
|
||||
-- do something
|
||||
end
|
||||
end, 3, 60) -- Here below is the amount you want, example : - (3) is the TOTAL number of figures you want the User to find. (60) - Here you must set the number of seconds the user will have to complete the hacking.
|
||||
```
|
||||
|
||||
### PREVIEW
|
||||
We have Robos where we integrate this and more in our store.
|
||||
|
||||
https://american-script.tebex.io/
|
||||
|
||||
### SUPPORT
|
||||
|
||||
https://discord.gg/VZK3zHScD8
|
57
resources/[standalone]/am_hackgame/client/hack.lua
Normal file
57
resources/[standalone]/am_hackgame/client/hack.lua
Normal file
@ -0,0 +1,57 @@
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- ☾ AMERICAN SCRIPT ☾ --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
|
||||
local QBCore = exports['qb-core']:GetCoreObject()
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- COUNTER CALLBACK --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
RegisterNUICallback('CounterCallback', function(data, cb)
|
||||
SetNuiFocus(false, false)
|
||||
Callback(data.success)
|
||||
SendNUIMessage({open = false})
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- START GAME --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
local function StartGame(callback, piezas, timer)
|
||||
Callback = callback
|
||||
SendNUIMessage({
|
||||
open = true,
|
||||
piezasencontradas = piezas,
|
||||
timer = timer,
|
||||
})
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
|
||||
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- CLOSE GAME --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
RegisterNUICallback('CloseGame', function(data, cb)
|
||||
SetNuiFocus(false, false)
|
||||
Callback(data.success)
|
||||
SendNUIMessage({open = false})
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- EXPORT --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
exports('StartGame', StartGame)
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- TEST EVENTS/COMMANDS THESE CAN BE DELETED --<!>-- --<!>-- --<!>-- --<!>--
|
||||
|
||||
RegisterCommand('TESTHACKam', function()
|
||||
exports['am_hackgame']:StartGame(function(success)
|
||||
if success then
|
||||
QBCore.Functions.Notify('GENNEMFØRT')
|
||||
else
|
||||
QBCore.Functions.Notify('Fejlet! Har du glemt hvordan man gør?!')
|
||||
end
|
||||
end, 9, 60)
|
||||
end)
|
30
resources/[standalone]/am_hackgame/fxmanifest.lua
Normal file
30
resources/[standalone]/am_hackgame/fxmanifest.lua
Normal file
@ -0,0 +1,30 @@
|
||||
----<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- ☾ AMERICAN SCRIPT ☾ --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
fx_version 'cerulean'
|
||||
|
||||
game 'gta5'
|
||||
|
||||
author 'FelipeKLFH#5810'
|
||||
|
||||
description 'DeSiGnEr AmErIcAn ScRiPtS'
|
||||
|
||||
version '1.0.2'
|
||||
|
||||
lua54 'yes'
|
||||
|
||||
ui_page 'html/index.html'
|
||||
|
||||
files {
|
||||
'html/**/*',
|
||||
'html/*.png',
|
||||
'html/bankgothic.ttf'
|
||||
}
|
||||
client_scripts {
|
||||
'client/*'
|
||||
}
|
||||
escrow_ignore {
|
||||
'client/*'
|
||||
}
|
BIN
resources/[standalone]/am_hackgame/html/LGO.png
Normal file
BIN
resources/[standalone]/am_hackgame/html/LGO.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
BIN
resources/[standalone]/am_hackgame/html/bankgothic.ttf
Normal file
BIN
resources/[standalone]/am_hackgame/html/bankgothic.ttf
Normal file
Binary file not shown.
318
resources/[standalone]/am_hackgame/html/css/main.css
Normal file
318
resources/[standalone]/am_hackgame/html/css/main.css
Normal file
@ -0,0 +1,318 @@
|
||||
/*--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- ☾ AMERICAN SCRIPT ☾ --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- */
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: bankgothic;
|
||||
src: url('../bankgothic.ttf');
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: none !important;
|
||||
margin: auto;
|
||||
font-family: 'Aldrich';
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* COMPUTER Container */
|
||||
.pc-frame {
|
||||
position: absolute;
|
||||
top: -10vh;
|
||||
left: -12vw;
|
||||
height: 82.5vh;
|
||||
width: 132vh;
|
||||
/* width: 31.3vh;
|
||||
bottom: -37vh;
|
||||
height: 63.7vh;
|
||||
left: -155.9%; */
|
||||
margin: 5vh;
|
||||
z-index: 150;
|
||||
pointer-events: none;
|
||||
animation: scaleUp 1.10s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards;
|
||||
}
|
||||
|
||||
/* Phone Container */
|
||||
.phone-frame {
|
||||
position: absolute;
|
||||
width: 31.3vh;
|
||||
bottom: -7vh;
|
||||
height: 64.1vh;
|
||||
left: -19.9%;
|
||||
/* width: 31.3vh;
|
||||
bottom: -37vh;
|
||||
height: 63.7vh;
|
||||
left: -155.9%; */
|
||||
margin: 5vh;
|
||||
z-index: 150;
|
||||
pointer-events: none;
|
||||
animation: scaleUp 1.10s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards;
|
||||
}
|
||||
|
||||
/* LOGO */
|
||||
.logo-frame {
|
||||
position: absolute;
|
||||
width: 40vh;
|
||||
bottom: 30vh;
|
||||
height: 24.1vh;
|
||||
left: -32%;
|
||||
/* width: 31.3vh;
|
||||
bottom: -37vh;
|
||||
height: 63.7vh;
|
||||
left: -155.9%; */
|
||||
margin: 5vh;
|
||||
z-index: 150;
|
||||
pointer-events: none;
|
||||
animation: scaleUp 2.10s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards;
|
||||
}
|
||||
|
||||
|
||||
#start-container {
|
||||
position: absolute;
|
||||
top: 19vh;
|
||||
left: 10vw;
|
||||
height: 60vh;
|
||||
width: 29.5vh;
|
||||
border: 5px solid rgba(31, 30, 30, 1);
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
box-shadow: 0px 9px 13px 0px rgba(0, 0, 0, 0.4);
|
||||
border-radius: 2.5vh;
|
||||
text-align: center;
|
||||
color: rgba(0,0,0,0.7);
|
||||
text-shadow:
|
||||
0px 4px 3px rgba(0,0,0,0.6),
|
||||
0px 8px 13px rgba(0,0,0,0.3),
|
||||
0px 18px 23px rgba(0,0,0,0.3);
|
||||
|
||||
background-image: url("https://assets.codepen.io/285131/paintbg.jpg");
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
animation: roadRunnerIn .5s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards;
|
||||
}
|
||||
|
||||
|
||||
.text {
|
||||
font-weight: 100;
|
||||
font-size: 28px;
|
||||
color: #fafafa;
|
||||
}
|
||||
.dud {
|
||||
color: #757575;
|
||||
}
|
||||
|
||||
|
||||
.tituleone {
|
||||
font-family: bankgothic;
|
||||
position: absolute;
|
||||
right: 0vh;
|
||||
|
||||
bottom: 34.5vh;
|
||||
color: #000000;
|
||||
height: 3vh;
|
||||
width: 30vh;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
box-shadow: 0px 9px 13px 0px rgba(0, 0, 0, 0.4);
|
||||
border-radius: 0.5vh;
|
||||
|
||||
font-size: 20px;
|
||||
line-height: 30px;
|
||||
letter-spacing: 1.7px;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
.titulesecond {
|
||||
font-family: bankgothic;
|
||||
position: absolute;
|
||||
right: 0vh;
|
||||
|
||||
bottom: 20.5vh;
|
||||
color: #000000;
|
||||
height: 3vh;
|
||||
width: 30vh;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
box-shadow: 0px 9px 13px 0px rgba(0, 0, 0, 0.4);
|
||||
border-radius: 0.5vh;
|
||||
|
||||
font-size: 20px;
|
||||
line-height: 30px;
|
||||
letter-spacing: 1.7px;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
.chipmuestra {
|
||||
font-size: 3rem;
|
||||
position: absolute;
|
||||
bottom: 12.5vh;
|
||||
right: 12vh;
|
||||
|
||||
border: transparent !important;
|
||||
background-color: transparent !important;
|
||||
color: #000000
|
||||
}
|
||||
|
||||
.progress-container .progress {
|
||||
position: absolute;
|
||||
left: 2.5vh;
|
||||
top: 30vh;
|
||||
height: 2.5vh;
|
||||
width: 0;
|
||||
border-radius: 25px;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
transition: width 0.4s ease;
|
||||
}
|
||||
|
||||
#game-container {
|
||||
position: absolute;
|
||||
top: 16vh;
|
||||
left: 22vw;
|
||||
height: 65vh;
|
||||
width: 100vh;
|
||||
border: 5px solid rgba(31, 30, 30, 1);
|
||||
border-radius: 25px;
|
||||
background-color: black;
|
||||
text-align: center;
|
||||
box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
|
||||
background-image: url("https://assets.codepen.io/285131/paintbg.jpg");
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
animation: scaleUp 1.10s cubic-bezier(0.165, 0.840, 0.440, 1.000) forwards;
|
||||
}
|
||||
|
||||
#game-area {
|
||||
position: fixed;
|
||||
margin: 3vh;
|
||||
border: transparent;
|
||||
border-radius: 25px;
|
||||
padding: 20px;
|
||||
top: 17vh;
|
||||
height: 43vh;
|
||||
width: 90vh;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
position: relative;
|
||||
height: 65vh;
|
||||
width: 100vh;
|
||||
background-color: transparent !important;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
.shadow {
|
||||
position: absolute;
|
||||
width: 200vw;
|
||||
height: 200vh;
|
||||
left: 52.5%;
|
||||
top: 52%;
|
||||
transform: translateX(-50%) translateY(-50%);
|
||||
background-image: radial-gradient(circle at center, transparent, #000 3%);
|
||||
background-color: rgba(255, 255, 255, 0.2)
|
||||
}
|
||||
|
||||
#chip {
|
||||
font-size: 2rem;
|
||||
overflow: visible;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: transparent !important;
|
||||
background-color: transparent !important;
|
||||
color: #000000
|
||||
}
|
||||
|
||||
#info-container {
|
||||
font-family: bankgothic;
|
||||
position: absolute;
|
||||
top: 54.6vh;
|
||||
left: 41vh;
|
||||
height: 10vh;
|
||||
width: 20vh;
|
||||
background-color: rgba(31, 30, 30, 1);
|
||||
border-top-left-radius: 25px;
|
||||
border-top-right-radius: 85px;
|
||||
color: rgba(255,255,255,0.8);
|
||||
text-shadow:
|
||||
0px 4px 3px rgba(0,0,0,0.6),
|
||||
0px 8px 13px rgba(0,0,0,0.3),
|
||||
0px 18px 23px rgba(0,0,0,0.3);
|
||||
text-align: center;
|
||||
padding: 0.2vh;
|
||||
font-size: 0.75rem;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
#countdown-container {
|
||||
font-family: bankgothic;
|
||||
position: absolute;
|
||||
top: 61.7vh;
|
||||
left: 41vh;
|
||||
height: 1.8vh;
|
||||
width: 14vw;
|
||||
background-color: rgba(31, 30, 30, 1);
|
||||
border-top-left-radius: 25px;
|
||||
border-top-right-radius: 25px;
|
||||
text-align: center;
|
||||
color: rgba(255,255,255,0.8);
|
||||
text-shadow:
|
||||
0px 4px 3px rgba(0,0,0,0.6),
|
||||
0px 8px 13px rgba(0,0,0,0.3),
|
||||
0px 18px 23px rgba(0,0,0,0.3);
|
||||
padding: 1vh;
|
||||
font-size: 0.75rem;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
#countdown {
|
||||
position: absolute;
|
||||
top: -0.9vh;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@keyframes roadRunnerIn {
|
||||
0% {
|
||||
transform:translateX(-1500px) skewX(30deg) scaleX(1.3);
|
||||
}
|
||||
70% {
|
||||
transform:translateX(30px) skewX(0deg) scaleX(.9);
|
||||
}
|
||||
100% {
|
||||
transform:translateX(0px) skewX(0deg) scaleX(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@keyframes scaleUp {
|
||||
0% {
|
||||
transform:scale(.8) translateY(-50px);
|
||||
opacity:0;
|
||||
}
|
||||
100% {
|
||||
transform:scale(1) translateY(0px);
|
||||
opacity:1;
|
||||
}
|
||||
}
|
||||
@keyframes blowUpContentTwo {
|
||||
0% {
|
||||
transform:scale(2);
|
||||
opacity:0;
|
||||
}
|
||||
100% {
|
||||
transform:scale(1);
|
||||
opacity:1;
|
||||
}
|
||||
}
|
66
resources/[standalone]/am_hackgame/html/index.html
Normal file
66
resources/[standalone]/am_hackgame/html/index.html
Normal file
@ -0,0 +1,66 @@
|
||||
<!----<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- ☾ AMERICAN SCRIPT ☾ --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- -->
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<!-- META -->
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>Hack GAMES + AMERICAN SCRIPT</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- FONTS -->
|
||||
<link href='https://fonts.googleapis.com/css?family=Aldrich' rel='stylesheet'>
|
||||
<!-- ICONS -->
|
||||
<link rel="stylesheet" href="path/to/font-awesome/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css">
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="./css/main.css">
|
||||
<!-- JQUERY -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="start-container" class="hidden">
|
||||
<img src="./phone-case.png" class="phone-frame">
|
||||
<img src="./LGO.png" class="logo-frame">
|
||||
|
||||
<div class="tituleone">INITIALISERER HACK</div>
|
||||
|
||||
<div class="titulesecond">Find dette indenfor</div>
|
||||
<div class="chipmuestra">
|
||||
<i class="fa-solid fa-microchip"></i>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="progress-container">
|
||||
<div class="progress"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="game-container" class="hidden">
|
||||
<img src="./laptop-png-6759.png" class="pc-frame">
|
||||
|
||||
<div id="game-area">
|
||||
<button id="chip"><i class="fa-solid fa-microchip"></i></button>
|
||||
</div>
|
||||
<div class="wrapper">
|
||||
<div class="shadow"></div>
|
||||
</div>
|
||||
<div id="info-container">
|
||||
|
||||
<div id="current-count">
|
||||
</div>
|
||||
</div>
|
||||
<div id="countdown-container">
|
||||
<div id="countdown"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- SCRIPTS -->
|
||||
<script src="./scripts/script.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
BIN
resources/[standalone]/am_hackgame/html/laptop-png-6759.png
Normal file
BIN
resources/[standalone]/am_hackgame/html/laptop-png-6759.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 128 KiB |
BIN
resources/[standalone]/am_hackgame/html/phone-case.png
Normal file
BIN
resources/[standalone]/am_hackgame/html/phone-case.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 87 KiB |
193
resources/[standalone]/am_hackgame/html/scripts/script.js
Normal file
193
resources/[standalone]/am_hackgame/html/scripts/script.js
Normal file
@ -0,0 +1,193 @@
|
||||
//--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
//--<+>-- --<+>-- --<+>-- --<+>-- ☾ AMERICAN SCRIPT ☾ --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
//--<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>-- --<+>--
|
||||
|
||||
const shadow = document.querySelector('.shadow');
|
||||
const counterInc = document.getElementById('chip');
|
||||
const curCount = document.getElementById('current-count');
|
||||
const progressbar = document.querySelector('.progress');
|
||||
const gameArea = document.getElementById('game-area');
|
||||
const chip = document.getElementById('chip');
|
||||
var counter = 0;
|
||||
var piezasencontradas = null;
|
||||
var timeleft = null;
|
||||
let countertext = 0;
|
||||
|
||||
$(document).ready(function(){
|
||||
window.addEventListener('message', function(event) {
|
||||
var data = event.data;
|
||||
if (data.open == true) {
|
||||
piezasencontradas = data.piezasencontradas
|
||||
timeleft = data.timer
|
||||
$('#start-container').removeClass('hidden');
|
||||
const changeProgress = (progress) => {
|
||||
progressbar.style.width = `${progress}%`;
|
||||
if (progress >= 90) {
|
||||
setTimeout(StartGame(piezasencontradas, timeleft), 1000);
|
||||
}
|
||||
};
|
||||
setTimeout(() => changeProgress(15), 1000);
|
||||
setTimeout(() => changeProgress(32), 2000);
|
||||
setTimeout(() => changeProgress(65), 3600);
|
||||
setTimeout(() => changeProgress(78), 4266);
|
||||
setTimeout(() => changeProgress(90), 6000);
|
||||
} else if (data.open == false) {
|
||||
$('#start-container').addClass('hidden');
|
||||
$('#game-container').addClass('hidden');
|
||||
location.reload();
|
||||
}
|
||||
$(document).keyup(function (exit) {
|
||||
if (exit.keyCode === 27) {
|
||||
CloseGame();
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
// starts game
|
||||
function StartGame() {
|
||||
$('#start-container').addClass('hidden');
|
||||
$('#game-container').removeClass('hidden');
|
||||
document.addEventListener('mousemove', (e) => {
|
||||
let x = e.clientX - (document.documentElement.clientWidth * 1.5);
|
||||
let y = e.clientY - (document.documentElement.clientHeight * 1.5);
|
||||
shadow.style.transform = 'translate(' + x + 'px, ' + y + 'px)';
|
||||
})
|
||||
var w = gameArea.offsetWidth || gameArea.style.width
|
||||
var h = gameArea.offsetHeight || gameArea.style.height
|
||||
$('#chip').click(function(){
|
||||
this.style.top = Math.round(Math.random() * h) + "px";
|
||||
this.style.left = Math.round(Math.random() * w) + "px";
|
||||
AddCounter()
|
||||
})
|
||||
StartCountdown()
|
||||
}
|
||||
|
||||
// starts countdown timer
|
||||
function StartCountdown() {
|
||||
var htmlResult = '<h2>CHIPS FOUND<h2>'+
|
||||
'<h2>'+counter+'/'+piezasencontradas+'</h2>'
|
||||
$('#info-container').html(htmlResult);
|
||||
}
|
||||
|
||||
// countdown timer
|
||||
const countdown = setInterval(function() {
|
||||
if (timeleft === 0) {
|
||||
if (counter <= piezasencontradas) {
|
||||
clearInterval(countdown);
|
||||
setTimeout(CloseGame(), 1000);
|
||||
}
|
||||
} else {
|
||||
document.getElementById("countdown").innerHTML = '<h2>'+timeleft+ 's REMAINING</h2>';
|
||||
}
|
||||
timeleft -= 1;
|
||||
}, 1000);
|
||||
|
||||
// adds counter when chip found
|
||||
function AddCounter() {
|
||||
var htmlResult = '<h2>CHIPS FOUND<h2>'+
|
||||
'<h2>'+counter+'/'+piezasencontradas+'</h2>'
|
||||
$('#info-container').html(htmlResult);
|
||||
if (counter == piezasencontradas) {
|
||||
$('#game-container').addClass('hidden');
|
||||
clearInterval(countdown);
|
||||
$.post(`https://am_hackgame/CounterCallback`, JSON.stringify({'success': true}));
|
||||
}
|
||||
}
|
||||
|
||||
// closes game
|
||||
function CloseGame() {
|
||||
$.post(`https://am_hackgame/CloseGame`, JSON.stringify({'success': false}));
|
||||
}
|
||||
|
||||
// increments counter
|
||||
const handleIncrement = () => {
|
||||
counter++;
|
||||
curCount.innerHTML = counter;
|
||||
};
|
||||
counterInc.addEventListener("click", handleIncrement);
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
class TextScramble {
|
||||
constructor(el) {
|
||||
this.el = el;
|
||||
this.chars = "!<>-_\\/[]{}—=+*^?#________";
|
||||
this.update = this.update.bind(this);
|
||||
}
|
||||
setText(newText) {
|
||||
const oldText = this.el.innerText;
|
||||
const length = Math.max(oldText.length, newText.length);
|
||||
const promise = new Promise((resolve) => (this.resolve = resolve));
|
||||
this.queue = [];
|
||||
for (let i = 0; i < length; i++) {
|
||||
const from = oldText[i] || "";
|
||||
const to = newText[i] || "";
|
||||
const start = Math.floor(Math.random() * 40);
|
||||
const end = start + Math.floor(Math.random() * 40);
|
||||
this.queue.push({ from, to, start, end });
|
||||
}
|
||||
cancelAnimationFrame(this.frameRequest);
|
||||
this.frame = 0;
|
||||
this.update();
|
||||
return promise;
|
||||
}
|
||||
update() {
|
||||
let output = "";
|
||||
let complete = 0;
|
||||
for (let i = 0, n = this.queue.length; i < n; i++) {
|
||||
let { from, to, start, end, char } = this.queue[i];
|
||||
if (this.frame >= end) {
|
||||
complete++;
|
||||
output += to;
|
||||
} else if (this.frame >= start) {
|
||||
if (!char || Math.random() < 0.28) {
|
||||
char = this.randomChar();
|
||||
this.queue[i].char = char;
|
||||
}
|
||||
output += `<span class="dud">${char}</span>`;
|
||||
} else {
|
||||
output += from;
|
||||
}
|
||||
}
|
||||
this.el.innerHTML = output;
|
||||
if (complete === this.queue.length) {
|
||||
this.resolve();
|
||||
} else {
|
||||
this.frameRequest = requestAnimationFrame(this.update);
|
||||
this.frame++;
|
||||
}
|
||||
}
|
||||
randomChar() {
|
||||
return this.chars[Math.floor(Math.random() * this.chars.length)];
|
||||
}
|
||||
}
|
||||
|
||||
const phrases = [
|
||||
"Hey,",
|
||||
"put here all the sentences",
|
||||
"that you want to cycle",
|
||||
"they will all be automatically displayed.",
|
||||
"Just",
|
||||
"Like",
|
||||
"This.",
|
||||
"Have fun :)"
|
||||
];
|
||||
|
||||
const el = document.querySelector(".text");
|
||||
const fx = new TextScramble(el);
|
||||
|
||||
|
||||
const next = () => {
|
||||
fx.setText(phrases[countertext]).then(() => {
|
||||
setTimeout(next, 800);
|
||||
});
|
||||
countertext = (countertext + 1) % phrases.length;
|
||||
};
|
||||
|
||||
next(); */
|
||||
|
152
resources/[standalone]/bob74_ipl/README.md
Normal file
152
resources/[standalone]/bob74_ipl/README.md
Normal file
@ -0,0 +1,152 @@
|
||||
# Fix holes and customize the map (Updated to The Criminal Enterprises DLC)
|
||||
|
||||
The purpose of this script is to fix the holes in the map by loading zones that aren’t loaded by default. I’ve added quite a lot of places to load, based on [Mikeeh’s script](https://forum.fivem.net/t/release-load-unloaded-ipls/5911). If you just want to fix the holes in the map, then use this resource as provided.
|
||||
|
||||
This resource has been completely rewritten from scratch since v2.0. You can customize almost every storymode and online purchasable interiors from your own resources.
|
||||
|
||||
## Download
|
||||
- Latest version: https://github.com/Bob74/bob74_ipl/releases/latest
|
||||
|
||||
- Source code: https://github.com/Bob74/bob74_ipl
|
||||
|
||||
## [Wiki](https://github.com/Bob74/bob74_ipl/wiki)
|
||||
- The Wiki has been created to help you customize your interiors as you wish. It contains every function you can use for each interior.
|
||||
- Each Wiki page has an example at the bottom of the page to show how you can use it in your own resource.
|
||||
- Also at the bottom of the Wiki will show you the default values set by `IPL_NAME.LoadDefault()`.
|
||||
|
||||
## Install
|
||||
1. Download the [latest version](https://github.com/Bob74/bob74_ipl/releases/latest).
|
||||
2. Extract `bob74_ipl.zip` and copy the `bob74_ipl` into your `resources` folder.
|
||||
3. Add `start bob74_ipl` to your your `server.cfg` file.
|
||||
|
||||
## Screenshots
|
||||
- [After Hours Album](https://imgur.com/a/Qg96l0D)
|
||||
- [Misc. Album](https://imgur.com/a/cs9Ip4d)
|
||||
- [IPL Fix Album](https://imgur.com/a/1Sfl4)
|
||||
|
||||
## Changelog
|
||||
|
||||
<details><summary>Click to view</summary>
|
||||
(DD/MM/YYYY)
|
||||
|
||||
---
|
||||
03/08/2022 - 2.1.0
|
||||
- Added "The Criminal Enterprises" support
|
||||
|
||||
02/05/2022 - 2.0.15
|
||||
- Reformatted code
|
||||
- Removed unused .gitignore
|
||||
- Bumped version in fxmanifest.lua
|
||||
- Improved performance
|
||||
|
||||
21/04/2022 - 2.0.14
|
||||
- Fix casino penthouse carpet patterns colors
|
||||
|
||||
12/02/2022 - 2.0.13a
|
||||
- Fix Music Roof
|
||||
|
||||
12/02/2022 - 2.0.13
|
||||
- Added Contract IPLs: Garage, Studio, Offices, Music Roof, Billboards
|
||||
|
||||
10/02/2022 - 2.0.12
|
||||
- Fix FIB roof
|
||||
|
||||
07/02/2022 - 2.0.11
|
||||
- Added Tuners IPLs: Garage, Meth Lab, Meetup
|
||||
|
||||
18/01/2022 - 2.0.10b
|
||||
- Change water in yachts to be non-networked.
|
||||
|
||||
01/08/2021 - 2.0.10a
|
||||
- Improved performance
|
||||
- Fixed hole in the FIB fountain
|
||||
- Fixed error appearing if casino IPL is loaded, but the game build is not sufficient
|
||||
- Fixed a few typos in the README file
|
||||
|
||||
19/07/2021 - 2.0.10
|
||||
- Added Diamond Casino IPLs: Casino, Garage, VIP garage, Penthouse
|
||||
- Import: Forced refresh of CEO Garages
|
||||
- Updated fxmanifest fx_version to cerulean
|
||||
- Updated IPL list link in fxmanifest nad removed outdated Props list and Interior ID list
|
||||
- Fixed export typo in `michael.lua`
|
||||
- Removed unnecessary space in north_yankton IPL
|
||||
|
||||
27/05/2020 - 2.0.9a
|
||||
- Fixed disabling Pillbox Hospital
|
||||
- Fixed `ResetInteriorVariables`
|
||||
|
||||
23/04/2020 - 2.0.9
|
||||
- Replaced deprecated __resource.lua with fxmanifest.lua
|
||||
- Added ferris wheel on the Del Perro Pier
|
||||
- Reformatted client.lua
|
||||
|
||||
20/10/2019 - 2.0.8
|
||||
- Nightclubs: Added dry ice emitters
|
||||
- Heist & Gunrunning: Added water to the yachts hot tubs (to enable/disable)
|
||||
- Offices: Added a way to open and close the safes
|
||||
- Facility: Added privacy glass
|
||||
- Moved Bahama Mamas and PillBox Hospital in their own files
|
||||
- Fixed error `ReleaseNamedRendertarget`
|
||||
- Cleaned and optimized the code
|
||||
|
||||
22/03/2019 - 2.0.7c
|
||||
- CEO Offices: Changed the default loaded garage to ImportCEOGarage4.Part.Garage2 in order to avoid Office glitches
|
||||
|
||||
15/01/2019 - 2.0.7b
|
||||
- Nightclubs: Fixed a typo for the fake lights
|
||||
|
||||
15/01/2019 - 2.0.7a
|
||||
- Nightclubs: Added the ability to set no podium (using `AfterHoursNightclubs.Interior.Podium.none`)
|
||||
|
||||
14/01/2019 - 2.0.7
|
||||
- Changed the way Trevor’s trailer is handled and added a Wiki entry.
|
||||
- Added a way to open or close Zancudo’s gates with a Wiki entry.
|
||||
|
||||
12/01/2019 - 2.0.6
|
||||
- Added nightclubs interior and exteriors
|
||||
- Removed Zancudo gates by default (file bob74_ipl/gtav/base.lua: RequestIpl("CS3_07_MPGates") is now commented)
|
||||
|
||||
29/12/2018 - 2.0.5a
|
||||
- Fixed the name of the BikerClubhouse1 export
|
||||
|
||||
19/12/2018 - 2.0.5
|
||||
- Fixed a typo that prevents the printers, security stuff, and cash piles to spawn in the counterfeit cash factory
|
||||
|
||||
10/11/2018 - 2.0.4
|
||||
- Fixed an issue where the clubhouse2 lower walls wouldn’t be colored on the first resource start
|
||||
- Fixed gang members names using an old format
|
||||
- Disabled the Mod shop from CEO garage 3 (ImportCEOGarage3) because it is overlapping with CEO office 3 (FinanceOffice3)
|
||||
|
||||
- 08/11/2018 - 2.0.3
|
||||
Added biker gang’s name, missions, and members pictures
|
||||
- Added CEO office organization’s name
|
||||
|
||||
05/11/2018 - 2.0.1
|
||||
- Removed overlapping Zancudo River
|
||||
- Added the trailer near Zancudo River
|
||||
|
||||
04/11/2018 - 2.0.0
|
||||
- Plugin totally rewritten
|
||||
- Support for all DLC (up to The Doomsday Heist)
|
||||
- Ability to easily customize story mode and online purchasable interiors
|
||||
- You can still use it as it is if you want IPL and interiors to be loaded, the plugin sets a default style for each one
|
||||
- Check out the Wiki to find out how: https://github.com/Bob74/bob74_ipl/wiki
|
||||
|
||||
26/06/2017
|
||||
- Added optional IPL
|
||||
- Bunkers exteriors (enabled)
|
||||
- Bunkers interior
|
||||
- CEO Offices
|
||||
- Bikers places (some are still buggy)
|
||||
- Import/Export locations
|
||||
- Removed the trick to open Lost’s safehouse since the last update already opens it
|
||||
|
||||
19/06/2017
|
||||
- Fix hole in Zancudo River
|
||||
- Fix hole in Cassidy Creek
|
||||
- Add optional graffiti on some billboards (enabled by default)
|
||||
- Opened Lost’s safehouse interior
|
||||
|
||||
14/06/2017
|
||||
- Original release
|
||||
</details>
|
178
resources/[standalone]/bob74_ipl/client.lua
Normal file
178
resources/[standalone]/bob74_ipl/client.lua
Normal file
@ -0,0 +1,178 @@
|
||||
Citizen.CreateThread(function()
|
||||
-- ====================================================================
|
||||
-- =--------------------- [GTA V: Single player] ---------------------=
|
||||
-- ====================================================================
|
||||
|
||||
-- Michael: -802.311, 175.056, 72.8446
|
||||
Michael.LoadDefault()
|
||||
|
||||
-- Simeon: -47.16170 -1115.3327 26.5
|
||||
Simeon.LoadDefault()
|
||||
|
||||
-- Franklin's aunt: -9.96562, -1438.54, 31.1015
|
||||
FranklinAunt.LoadDefault()
|
||||
|
||||
-- Franklin
|
||||
Franklin.LoadDefault()
|
||||
|
||||
-- Floyd: -1150.703, -1520.713, 10.633
|
||||
Floyd.LoadDefault()
|
||||
|
||||
-- Trevor: 1985.48132, 3828.76757, 32.5
|
||||
TrevorsTrailer.LoadDefault()
|
||||
|
||||
-- Bahama Mamas: -1388.0013, -618.41967, 30.819599
|
||||
BahamaMamas.Enable(true)
|
||||
|
||||
-- Pillbox hospital: 307.1680, -590.807, 43.280
|
||||
-- PillboxHospital.Enable(false)
|
||||
|
||||
-- Zancudo Gates (GTAO like): -1600.30100000, 2806.73100000, 18.79683000
|
||||
ZancudoGates.LoadDefault()
|
||||
|
||||
-- Other
|
||||
Ammunations.LoadDefault()
|
||||
LesterFactory.LoadDefault()
|
||||
StripClub.LoadDefault()
|
||||
|
||||
Graffitis.Enable(true)
|
||||
|
||||
-- UFO
|
||||
UFO.Hippie.Enable(false) -- 2490.47729, 3774.84351, 2414.035
|
||||
UFO.Chiliad.Enable(false) -- 501.52880000, 5593.86500000, 796.23250000
|
||||
UFO.Zancudo.Enable(false) -- -2051.99463, 3237.05835, 1456.97021
|
||||
|
||||
-- Red Carpet: 300.5927, 199.7589, 104.3776
|
||||
RedCarpet.Enable(false)
|
||||
|
||||
-- North Yankton: 3217.697, -4834.826, 111.8152
|
||||
NorthYankton.Enable(false)
|
||||
|
||||
-- ====================================================================
|
||||
-- =-------------------------- [GTA Online] --------------------------=
|
||||
-- ====================================================================
|
||||
GTAOApartmentHi1.LoadDefault() -- -35.31277 -580.4199 88.71221 (4 Integrity Way, Apt 30)
|
||||
GTAOApartmentHi2.LoadDefault() -- -1477.14 -538.7499 55.5264 (Dell Perro Heights, Apt 7)
|
||||
GTAOHouseHi1.LoadDefault() -- -169.286 486.4938 137.4436 (3655 Wild Oats Drive)
|
||||
GTAOHouseHi2.LoadDefault() -- 340.9412 437.1798 149.3925 (2044 North Conker Avenue)
|
||||
GTAOHouseHi3.LoadDefault() -- 373.023 416.105 145.7006 (2045 North Conker Avenue)
|
||||
GTAOHouseHi4.LoadDefault() -- -676.127 588.612 145.1698 (2862 Hillcrest Avenue)
|
||||
GTAOHouseHi5.LoadDefault() -- -763.107 615.906 144.1401 (2868 Hillcrest Avenue)
|
||||
GTAOHouseHi6.LoadDefault() -- -857.798 682.563 152.6529 (2874 Hillcrest Avenue)
|
||||
GTAOHouseHi7.LoadDefault() -- 120.5 549.952 184.097 (2677 Whispymound Drive)
|
||||
GTAOHouseHi8.LoadDefault() -- -1288 440.748 97.69459 (2133 Mad Wayne Thunder)
|
||||
GTAOHouseMid1.LoadDefault() -- 347.2686 -999.2955 -99.19622
|
||||
GTAOHouseLow1.LoadDefault() -- 261.4586 -998.8196 -99.00863
|
||||
|
||||
-- ====================================================================
|
||||
-- =------------------------ [DLC: High life] ------------------------=
|
||||
-- ====================================================================
|
||||
HLApartment1.LoadDefault() -- -1468.14 -541.815 73.4442 (Dell Perro Heights, Apt 4)
|
||||
HLApartment2.LoadDefault() -- -915.811 -379.432 113.6748 (Richard Majestic, Apt 2)
|
||||
HLApartment3.LoadDefault() -- -614.86 40.6783 97.60007 (Tinsel Towers, Apt 42)
|
||||
HLApartment4.LoadDefault() -- -773.407 341.766 211.397 (EclipseTowers, Apt 3)
|
||||
HLApartment5.LoadDefault() -- -18.07856 -583.6725 79.46569 (4 Integrity Way, Apt 28)
|
||||
HLApartment6.LoadDefault() -- -609.56690000 51.28212000 -183.98080
|
||||
|
||||
-- ====================================================================
|
||||
-- =-------------------------- [DLC: Heists] -------------------------=
|
||||
-- ====================================================================
|
||||
HeistCarrier.Enable(true) -- 3082.3117, -4717.1191, 15.2622
|
||||
HeistYacht.LoadDefault() -- -2043.974,-1031.582, 11.981
|
||||
|
||||
-- ====================================================================
|
||||
-- =--------------- [DLC: Executives & Other Criminals] --------------=
|
||||
-- ====================================================================
|
||||
ExecApartment1.LoadDefault() -- -787.7805 334.9232 215.8384 (EclipseTowers, Penthouse Suite 1)
|
||||
ExecApartment2.LoadDefault() -- -773.2258 322.8252 194.8862 (EclipseTowers, Penthouse Suite 2)
|
||||
ExecApartment3.LoadDefault() -- -787.7805 334.9232 186.1134 (EclipseTowers, Penthouse Suite 3)
|
||||
|
||||
-- ====================================================================
|
||||
-- =-------------------- [DLC: Finance & Felony] --------------------=
|
||||
-- ====================================================================
|
||||
FinanceOffice1.LoadDefault() -- -141.1987, -620.913, 168.8205 (Arcadius Business Centre)
|
||||
FinanceOffice2.LoadDefault() -- -75.8466, -826.9893, 243.3859 (Maze Bank Building)
|
||||
FinanceOffice3.LoadDefault() -- -1579.756, -565.0661, 108.523 (Lom Bank)
|
||||
FinanceOffice4.LoadDefault() -- -1392.667, -480.4736, 72.04217 (Maze Bank West)
|
||||
|
||||
-- ====================================================================
|
||||
-- =-------------------------- [DLC: Bikers] -------------------------=
|
||||
-- ====================================================================
|
||||
BikerCocaine.LoadDefault() -- Cocaine lockup: 1093.6, -3196.6, -38.99841
|
||||
BikerCounterfeit.LoadDefault() -- Counterfeit cash factory: 1121.897, -3195.338, -40.4025
|
||||
BikerDocumentForgery.LoadDefault() -- Document forgery: 1165, -3196.6, -39.01306
|
||||
BikerMethLab.LoadDefault() -- Meth lab: 1009.5, -3196.6, -38.99682
|
||||
BikerWeedFarm.LoadDefault() -- Weed farm: 1051.491, -3196.536, -39.14842
|
||||
BikerClubhouse1.LoadDefault() -- 1107.04, -3157.399, -37.51859
|
||||
BikerClubhouse2.LoadDefault() -- 998.4809, -3164.711, -38.90733
|
||||
|
||||
-- ====================================================================
|
||||
-- =---------------------- [DLC: Import/Export] ----------------------=
|
||||
-- ====================================================================
|
||||
ImportCEOGarage1.LoadDefault() -- Arcadius Business Centre
|
||||
ImportCEOGarage2.LoadDefault() -- Maze Bank Building /!\ Do not load parts Garage1, Garage2 and Garage3 at the same time (overlaping issues)
|
||||
ImportCEOGarage3.LoadDefault() -- Lom Bank /!\ Do not load parts Garage1, Garage2 and Garage3 at the same time (overlaping issues)
|
||||
ImportCEOGarage4.LoadDefault() -- Maze Bank West /!\ Do not load parts Garage1, Garage2 and Garage3 at the same time (overlaping issues)
|
||||
ImportVehicleWarehouse.LoadDefault() -- Vehicle warehouse: 994.5925, -3002.594, -39.64699
|
||||
|
||||
-- ====================================================================
|
||||
-- =------------------------ [DLC: Gunrunning] -----------------------=
|
||||
-- ====================================================================
|
||||
GunrunningBunker.LoadDefault() -- 892.6384, -3245.8664, -98.2645
|
||||
GunrunningYacht.LoadDefault() -- -1363.724, 6734.108, 2.44598
|
||||
|
||||
-- ====================================================================
|
||||
-- =---------------------- [DLC: Smuggler's Run] ---------------------=
|
||||
-- ====================================================================
|
||||
SmugglerHangar.LoadDefault() -- -1267.0 -3013.135 -49.5
|
||||
|
||||
-- ====================================================================
|
||||
-- =-------------------- [DLC: The Doomsday Heist] -------------------=
|
||||
-- ====================================================================
|
||||
DoomsdayFacility.LoadDefault()
|
||||
|
||||
-- ====================================================================
|
||||
-- =----------------------- [DLC: After Hours] -----------------------=
|
||||
-- ====================================================================
|
||||
AfterHoursNightclubs.LoadDefault() -- -1604.664, -3012.583, -78.000
|
||||
|
||||
-- ====================================================================
|
||||
-- =------------------- [DLC: Diamond Casino Resort] -----------------=
|
||||
-- ====================================================================
|
||||
if GetGameBuildNumber() >= 2060 then
|
||||
DiamondCasino.LoadDefault() -- 1100.000, 220.000, -50.000
|
||||
DiamondPenthouse.LoadDefault() -- 976.636, 70.295, 115.164
|
||||
end
|
||||
|
||||
-- ====================================================================
|
||||
-- =------------------- [DLC: Los Santos Tuners] ---------------------=
|
||||
-- ====================================================================
|
||||
if GetGameBuildNumber() >= 2372 then
|
||||
TunerGarage.LoadDefault() -- -1350.0, 160.0, -100.0
|
||||
TunerMethLab.LoadDefault() -- 981.9999, -143.0, -50.0
|
||||
TunerMeetup.LoadDefault() -- -2000.0, 1113.211, -25.36243
|
||||
end
|
||||
|
||||
-- ====================================================================
|
||||
-- =------------------- [DLC: Los Santos The Contract] ---------------------=
|
||||
-- ====================================================================
|
||||
if GetGameBuildNumber() >= 2545 then
|
||||
MpSecurityGarage.LoadDefault() -- -1071.4387, -77.033875, -93.525505
|
||||
MpSecurityMusicRoofTop.LoadDefault() -- -592.6896, 273.1052, 116.302444
|
||||
MpSecurityStudio.LoadDefault() -- -1000.7252, -70.559875, -98.10669
|
||||
MpSecurityBillboards.LoadDefault() -- -592.6896, 273.1052, 116.302444
|
||||
MpSecurityOffice1.LoadDefault() -- -1021.86084, -427.74564, 68.95764
|
||||
MpSecurityOffice2.LoadDefault() -- 383.4156, -59.878227, 108.4595
|
||||
MpSecurityOffice3.LoadDefault() -- -1004.23035, -761.2084, 66.99069
|
||||
MpSecurityOffice4.LoadDefault() -- -587.87213, -716.84937, 118.10156
|
||||
end
|
||||
|
||||
-- ====================================================================
|
||||
-- =------------------- [DLC: The Criminal Enterprise] ---------------------=
|
||||
-- ====================================================================
|
||||
if GetGameBuildNumber() >= 2699 then
|
||||
CriminalEnterpriseSmeonFix.LoadDefault() -- -50.2248, -1098.8325, 26.049742
|
||||
CriminalEnterpriseVehicleWarehouse.LoadDefault() -- 800.13696, -3001.4297, -65.14074
|
||||
CriminalEnterpriseWarehouse.LoadDefault() -- 849.1047, -3000.209, -45.974354
|
||||
end
|
||||
end)
|
703
resources/[standalone]/bob74_ipl/dlc_afterhours/nightclubs.lua
Normal file
703
resources/[standalone]/bob74_ipl/dlc_afterhours/nightclubs.lua
Normal file
@ -0,0 +1,703 @@
|
||||
-- Nightclub: -1604.664 -3012.583 -78.000
|
||||
exports('GetAfterHoursNightclubsObject', function()
|
||||
return AfterHoursNightclubs
|
||||
end)
|
||||
|
||||
AfterHoursNightclubs = {
|
||||
interiorId = 271617,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "ba_int_placement_ba_interior_0_dlc_int_01_ba_milo_",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(AfterHoursNightclubs.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(AfterHoursNightclubs.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
Interior = {
|
||||
Name = {
|
||||
galaxy = "Int01_ba_clubname_01",
|
||||
studio = "Int01_ba_clubname_02",
|
||||
omega = "Int01_ba_clubname_03",
|
||||
technologie = "Int01_ba_clubname_04",
|
||||
gefangnis = "Int01_ba_clubname_05",
|
||||
maisonette = "Int01_ba_clubname_06",
|
||||
tony = "Int01_ba_clubname_07",
|
||||
palace = "Int01_ba_clubname_08",
|
||||
paradise = "Int01_ba_clubname_09",
|
||||
|
||||
Set = function(name, refresh)
|
||||
AfterHoursNightclubs.Interior.Name.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, name, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Name) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Style = {
|
||||
trad = "Int01_ba_Style01",
|
||||
edgy = "Int01_ba_Style02",
|
||||
glam = "Int01_ba_Style03",
|
||||
|
||||
Set = function(style, refresh)
|
||||
AfterHoursNightclubs.Interior.Style.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Style) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Podium = {
|
||||
none = "",
|
||||
trad = "Int01_ba_style01_podium",
|
||||
edgy = "Int01_ba_style02_podium",
|
||||
glam = "Int01_ba_style03_podium",
|
||||
|
||||
Set = function(podium, refresh)
|
||||
AfterHoursNightclubs.Interior.Podium.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, podium, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Podium) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Speakers = {
|
||||
none = "",
|
||||
basic = "Int01_ba_equipment_setup",
|
||||
upgrade = {
|
||||
"Int01_ba_equipment_setup",
|
||||
"Int01_ba_equipment_upgrade"
|
||||
},
|
||||
|
||||
Set = function(speakers, refresh)
|
||||
AfterHoursNightclubs.Interior.Speakers.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, speakers, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Speakers) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Security = {
|
||||
off = "",
|
||||
on = "Int01_ba_security_upgrade",
|
||||
|
||||
Set = function(security, refresh)
|
||||
AfterHoursNightclubs.Interior.Security.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, security, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, AfterHoursNightclubs.Interior.Security.on, false, refresh)
|
||||
end
|
||||
},
|
||||
Turntables = {
|
||||
none = "",
|
||||
style01 = "Int01_ba_dj01",
|
||||
style02 = "Int01_ba_dj02",
|
||||
style03 = "Int01_ba_dj03",
|
||||
style04 = "Int01_ba_dj04",
|
||||
|
||||
Set = function(turntables, refresh)
|
||||
AfterHoursNightclubs.Interior.Turntables.Clear(false)
|
||||
|
||||
if turntables ~= "" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, turntables, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(AfterHoursNightclubs.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Turntables) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Lights = {
|
||||
Droplets = {
|
||||
yellow = "DJ_01_Lights_01",
|
||||
green = "DJ_02_Lights_01",
|
||||
white = "DJ_03_Lights_01",
|
||||
purple = "DJ_04_Lights_01",
|
||||
|
||||
Set = function(light, refresh)
|
||||
AfterHoursNightclubs.Interior.Lights.Droplets.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Lights.Droplets) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Neons = {
|
||||
yellow = "DJ_01_Lights_02",
|
||||
white = "DJ_02_Lights_02",
|
||||
purple = "DJ_03_Lights_02",
|
||||
cyan = "DJ_04_Lights_02",
|
||||
|
||||
Set = function(light, refresh)
|
||||
AfterHoursNightclubs.Interior.Lights.Neons.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Lights.Neons) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Bands = {
|
||||
yellow = "DJ_01_Lights_03",
|
||||
green = "DJ_02_Lights_03",
|
||||
white = "DJ_03_Lights_03",
|
||||
cyan = "DJ_04_Lights_03",
|
||||
|
||||
Set = function(light, refresh)
|
||||
AfterHoursNightclubs.Interior.Lights.Bands.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Lights.Bands) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Lasers = {
|
||||
yellow = "DJ_01_Lights_04",
|
||||
green = "DJ_02_Lights_04",
|
||||
white = "DJ_03_Lights_04",
|
||||
purple = "DJ_04_Lights_04",
|
||||
|
||||
Set = function(light, refresh)
|
||||
AfterHoursNightclubs.Interior.Lights.Lasers.Clear(false)
|
||||
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(AfterHoursNightclubs.Interior.Lights.Lasers) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Interior.Lights.Droplets.Clear()
|
||||
AfterHoursNightclubs.Interior.Lights.Neons.Clear()
|
||||
AfterHoursNightclubs.Interior.Lights.Bands.Clear()
|
||||
AfterHoursNightclubs.Interior.Lights.Lasers.Clear()
|
||||
end
|
||||
},
|
||||
Bar = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, "Int01_ba_bar_content", state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Int01_ba_booze_01",
|
||||
B = "Int01_ba_booze_02",
|
||||
C = "Int01_ba_booze_03",
|
||||
|
||||
Enable = function(booze, state, refresh)
|
||||
if type(booze) == "table" then
|
||||
for key, value in pairs(booze) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, booze, state, refresh)
|
||||
end
|
||||
end
|
||||
else
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, booze, state, refresh)
|
||||
end
|
||||
end
|
||||
},
|
||||
Trophy = {
|
||||
Color = {
|
||||
bronze = 0,
|
||||
silver = 1,
|
||||
gold = 2
|
||||
},
|
||||
number1 = "Int01_ba_trophy01",
|
||||
battler = "Int01_ba_trophy02",
|
||||
dancer = "Int01_ba_trophy03",
|
||||
|
||||
Enable = function(trophy, state, color, refresh)
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, trophy, state, refresh)
|
||||
SetInteriorPropColor(AfterHoursNightclubs.interiorId, trophy, color)
|
||||
end
|
||||
},
|
||||
DryIce = {
|
||||
scale = 5.0,
|
||||
Emitters = {
|
||||
{
|
||||
pos = vector3(-1602.932, -3019.1, -79.99),
|
||||
rot = vector3(0.0, -10.0, 66.0)
|
||||
},
|
||||
{
|
||||
pos = vector3(-1593.238, -3017.05, -79.99),
|
||||
rot = vector3(0.0, -10.0, 110.0)
|
||||
},
|
||||
{
|
||||
pos = vector3(-1597.134, -3008.2, -79.99),
|
||||
rot = vector3(0.0, -10.0, -122.53)
|
||||
},
|
||||
{
|
||||
pos = vector3(-1589.966, -3008.518, -79.99),
|
||||
rot = vector3(0.0, -10.0, -166.97)
|
||||
}
|
||||
},
|
||||
|
||||
Enable = function(state)
|
||||
if state then
|
||||
RequestNamedPtfxAsset("scr_ba_club")
|
||||
while not HasNamedPtfxAssetLoaded("scr_ba_club") do
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
for key, emitter in pairs(AfterHoursNightclubs.Interior.DryIce.Emitters) do
|
||||
UseParticleFxAssetNextCall("scr_ba_club")
|
||||
StartParticleFxLoopedAtCoord("scr_ba_club_smoke_machine", emitter.pos.x, emitter.pos.y, emitter.pos.z, emitter.rot.x, emitter.rot.y, emitter.rot.z, AfterHoursNightclubs.Interior.DryIce.scale, false, false, false, true)
|
||||
end
|
||||
else
|
||||
local radius = 1.0
|
||||
|
||||
for key, emitter in pairs(AfterHoursNightclubs.Interior.DryIce.Emitters) do
|
||||
RemoveParticleFxInRange(emitter.pos.x, emitter.pos.y, emitter.pos.z, radius)
|
||||
end
|
||||
end
|
||||
end,
|
||||
},
|
||||
Details = {
|
||||
clutter = "Int01_ba_Clutter", -- Clutter and graffitis
|
||||
worklamps = "Int01_ba_Worklamps", -- Work lamps + trash
|
||||
truck = "Int01_ba_deliverytruck", -- Truck parked in the garage
|
||||
dryIce = "Int01_ba_dry_ice", -- Dry ice machines (no effects)
|
||||
lightRigsOff = "light_rigs_off", -- All light rigs at once but turned off
|
||||
roofLightsOff = "Int01_ba_lightgrid_01", -- Fake lights
|
||||
floorTradLights = "Int01_ba_trad_lights", -- Floor lights meant to go with the trad style
|
||||
chest = "Int01_ba_trophy04", -- Chest on the VIP desk
|
||||
vaultAmmunations = "Int01_ba_trophy05", -- (inside vault) Ammunations
|
||||
vaultMeth = "Int01_ba_trophy07", -- (inside vault) Meth bag
|
||||
vaultFakeID = "Int01_ba_trophy08", -- (inside vault) Fake ID
|
||||
vaultWeed = "Int01_ba_trophy09", -- (inside vault) Opened weed bag
|
||||
vaultCoke = "Int01_ba_trophy10", -- (inside vault) Coke doll
|
||||
vaultCash = "Int01_ba_trophy11", -- (inside vault) Scrunched fake money
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(AfterHoursNightclubs.interiorId, details, state, refresh)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- 760, -1337, 27
|
||||
Mesa = {
|
||||
id = 0,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.Mesa.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.Mesa.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.Mesa.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- 348, -979, 30
|
||||
MissionRow = {
|
||||
id = 1,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.MissionRow.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.MissionRow.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.MissionRow.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- -118, -1260, 30
|
||||
Strawberry = {
|
||||
id = 2,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.Strawberry.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.Strawberry.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.Strawberry.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- 9, 221, 109
|
||||
VinewoodWest = {
|
||||
id = 3,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.VinewoodWest.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.VinewoodWest.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.VinewoodWest.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- 868, -2098, 31
|
||||
Cypress = {
|
||||
id = 4,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.Cypress.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.Cypress.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.Cypress.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- -1287, -647, 27
|
||||
DelPerro = {
|
||||
id = 5,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.DelPerro.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.DelPerro.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.DelPerro.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- -680, -2461, 14
|
||||
Airport = {
|
||||
id = 6,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.Airport.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.Airport.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.Airport.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- 192, -3168, 6
|
||||
Elysian = {
|
||||
id = 7,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.Elysian.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.Elysian.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.Elysian.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- 373, 254, 103
|
||||
Vinewood = {
|
||||
id = 8,
|
||||
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.Vinewood.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.Vinewood.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.Vinewood.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
-- -1171, -1150, 6
|
||||
Vespucci = {
|
||||
id = 9,
|
||||
Barrier = {
|
||||
Enable = function(state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Barrier.Enable(AfterHoursNightclubs.Vespucci.id, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
Enable = function(poster, state)
|
||||
if state == nil then
|
||||
state = true
|
||||
end
|
||||
|
||||
AfterHoursNightclubs.Posters.Enable(AfterHoursNightclubs.Vespucci.id, poster, state)
|
||||
end,
|
||||
Clear = function()
|
||||
AfterHoursNightclubs.Posters.Clear(AfterHoursNightclubs.Vespucci.id)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
Barrier = {
|
||||
barrier = "ba_barriers_caseX",
|
||||
|
||||
Enable = function(clubId, state)
|
||||
value = AfterHoursNightclubs.Barrier.barrier:gsub("caseX", "case" .. tostring(clubId))
|
||||
|
||||
EnableIpl(value, state)
|
||||
end
|
||||
},
|
||||
Posters = {
|
||||
forSale = "ba_caseX_forsale",
|
||||
dixon = "ba_caseX_dixon",
|
||||
madonna = "ba_caseX_madonna",
|
||||
solomun = "ba_caseX_solomun",
|
||||
taleOfUs = "ba_caseX_taleofus",
|
||||
|
||||
Enable = function(clubId, poster, state)
|
||||
if type(poster) == "table" then
|
||||
for key, value in pairs(poster) do
|
||||
if type(value) == "string" then
|
||||
value = value:gsub("caseX", "case" .. tostring(clubId))
|
||||
|
||||
EnableIpl(value, state)
|
||||
end
|
||||
end
|
||||
else
|
||||
poster = poster:gsub("caseX", "case" .. tostring(clubId))
|
||||
|
||||
EnableIpl(poster, state)
|
||||
end
|
||||
end,
|
||||
Clear = function(clubId)
|
||||
for key, value in pairs(AfterHoursNightclubs.Posters) do
|
||||
if type(value) == "string" then
|
||||
value = value:gsub("caseX", "case" .. tostring(clubId))
|
||||
|
||||
EnableIpl(value, false)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
-- Interior setup
|
||||
AfterHoursNightclubs.Ipl.Interior.Load()
|
||||
|
||||
AfterHoursNightclubs.Interior.Name.Set(AfterHoursNightclubs.Interior.Name.galaxy)
|
||||
AfterHoursNightclubs.Interior.Style.Set(AfterHoursNightclubs.Interior.Style.edgy)
|
||||
|
||||
AfterHoursNightclubs.Interior.Podium.Set(AfterHoursNightclubs.Interior.Podium.edgy)
|
||||
AfterHoursNightclubs.Interior.Speakers.Set(AfterHoursNightclubs.Interior.Speakers.upgrade)
|
||||
|
||||
AfterHoursNightclubs.Interior.Security.Set(AfterHoursNightclubs.Interior.Security.on)
|
||||
|
||||
AfterHoursNightclubs.Interior.Turntables.Set(AfterHoursNightclubs.Interior.Turntables.style01)
|
||||
AfterHoursNightclubs.Interior.Lights.Bands.Set(AfterHoursNightclubs.Interior.Lights.Bands.cyan)
|
||||
|
||||
AfterHoursNightclubs.Interior.Bar.Enable(true)
|
||||
|
||||
AfterHoursNightclubs.Interior.Booze.Enable(AfterHoursNightclubs.Interior.Booze, true)
|
||||
|
||||
AfterHoursNightclubs.Interior.Trophy.Enable(AfterHoursNightclubs.Interior.Trophy.number1, true, AfterHoursNightclubs.Interior.Trophy.Color.gold)
|
||||
|
||||
RefreshInterior(AfterHoursNightclubs.interiorId)
|
||||
|
||||
-- Exterior IPL
|
||||
AfterHoursNightclubs.Mesa.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.Mesa.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.Mesa.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.MissionRow.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.MissionRow.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.MissionRow.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.Strawberry.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.Strawberry.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.Strawberry.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.VinewoodWest.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.VinewoodWest.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.VinewoodWest.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.Cypress.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.Cypress.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.Cypress.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.DelPerro.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.DelPerro.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.DelPerro.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.Airport.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.Airport.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.Airport.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.Elysian.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.Elysian.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.Elysian.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.Vinewood.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.Vinewood.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.Vinewood.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
|
||||
AfterHoursNightclubs.Vespucci.Barrier.Enable(true)
|
||||
AfterHoursNightclubs.Vespucci.Posters.Enable(AfterHoursNightclubs.Posters, true)
|
||||
AfterHoursNightclubs.Vespucci.Posters.Enable(AfterHoursNightclubs.Posters.forSale, false)
|
||||
end
|
||||
}
|
388
resources/[standalone]/bob74_ipl/dlc_bikers/clubhouse1.lua
Normal file
388
resources/[standalone]/bob74_ipl/dlc_bikers/clubhouse1.lua
Normal file
@ -0,0 +1,388 @@
|
||||
-- Clubhouse1: 1107.04, -3157.399, -37.51859
|
||||
exports('GetBikerClubhouse1Object', function()
|
||||
return BikerClubhouse1
|
||||
end)
|
||||
|
||||
BikerClubhouse1 = {
|
||||
interiorId = 246273,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "bkr_biker_interior_placement_interior_0_biker_dlc_int_01_milo",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(BikerClubhouse1.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(BikerClubhouse1.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Walls = {
|
||||
brick = "walls_01",
|
||||
plain = "walls_02",
|
||||
Color = {
|
||||
sable = 0,
|
||||
yellowGray = 1,
|
||||
red = 2,
|
||||
brown = 3,
|
||||
yellow = 4,
|
||||
lightYellow = 5,
|
||||
lightYellowGray = 6,
|
||||
lightGray = 7,
|
||||
orange = 8,
|
||||
gray = 9
|
||||
},
|
||||
|
||||
Set = function(walls, color, refresh)
|
||||
if color == nil then
|
||||
color = 0
|
||||
end
|
||||
|
||||
BikerClubhouse1.Walls.Clear(false)
|
||||
|
||||
SetIplPropState(BikerClubhouse1.interiorId, walls, true, refresh)
|
||||
SetInteriorPropColor(BikerClubhouse1.interiorId, walls, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Walls.brick,
|
||||
BikerClubhouse1.Walls.plain
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Furnitures = {
|
||||
A = "furnishings_01",
|
||||
B = "furnishings_02",
|
||||
|
||||
Set = function(furn, color, refresh)
|
||||
if color == nil then
|
||||
color = 0
|
||||
end
|
||||
|
||||
BikerClubhouse1.Furnitures.Clear(false)
|
||||
|
||||
SetIplPropState(BikerClubhouse1.interiorId, furn, true, refresh)
|
||||
SetInteriorPropColor(BikerClubhouse1.interiorId, furn, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Furnitures.A,
|
||||
BikerClubhouse1.Furnitures.B
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Decoration = {
|
||||
A = "decorative_01",
|
||||
B = "decorative_02",
|
||||
|
||||
Set = function(deco, refresh)
|
||||
BikerClubhouse1.Decoration.Clear(false)
|
||||
|
||||
SetIplPropState(BikerClubhouse1.interiorId, deco, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Decoration.A,
|
||||
BikerClubhouse1.Decoration.B
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Mural = {
|
||||
none = "",
|
||||
rideFree = "mural_01",
|
||||
mods = "mural_02",
|
||||
brave = "mural_03",
|
||||
fist = "mural_04",
|
||||
forest = "mural_05",
|
||||
mods2 = "mural_06",
|
||||
rideForever = "mural_07",
|
||||
heart = "mural_08",
|
||||
route68 = "mural_09",
|
||||
|
||||
Set = function(mural, refresh)
|
||||
BikerClubhouse1.Mural.Clear(false)
|
||||
|
||||
if mural ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, mural, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Mural.rideFree,
|
||||
BikerClubhouse1.Mural.mods,
|
||||
BikerClubhouse1.Mural.brave,
|
||||
BikerClubhouse1.Mural.fist,
|
||||
BikerClubhouse1.Mural.forest,
|
||||
BikerClubhouse1.Mural.mods2,
|
||||
BikerClubhouse1.Mural.rideForever,
|
||||
BikerClubhouse1.Mural.heart,
|
||||
BikerClubhouse1.Mural.route68
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
GunLocker = {
|
||||
none = "",
|
||||
on = "gun_locker",
|
||||
off = "no_gun_locker",
|
||||
|
||||
Set = function(locker, refresh)
|
||||
BikerClubhouse1.GunLocker.Clear(false)
|
||||
|
||||
if locker ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, locker, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.GunLocker.on,
|
||||
BikerClubhouse1.GunLocker.off
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
ModBooth = {
|
||||
none = "",
|
||||
on = "mod_booth",
|
||||
off = "no_mod_booth",
|
||||
|
||||
Set = function(mod, refresh)
|
||||
BikerClubhouse1.ModBooth.Clear(false)
|
||||
|
||||
if mod ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, mod, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.ModBooth.on,
|
||||
BikerClubhouse1.ModBooth.off
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Meth = {
|
||||
none = "",
|
||||
stage1 = "meth_stash1",
|
||||
stage2 = {
|
||||
"meth_stash1",
|
||||
"meth_stash2"
|
||||
},
|
||||
stage3 = {
|
||||
"meth_stash1",
|
||||
"meth_stash2",
|
||||
"meth_stash3"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse1.Meth.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Meth.stage1,
|
||||
BikerClubhouse1.Meth.stage2,
|
||||
BikerClubhouse1.Meth.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Cash = {
|
||||
none = "",
|
||||
stage1 = "cash_stash1",
|
||||
stage2 = {
|
||||
"cash_stash1",
|
||||
"cash_stash2"
|
||||
},
|
||||
stage3 = {
|
||||
"cash_stash1",
|
||||
"cash_stash2",
|
||||
"cash_stash3"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse1.Cash.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Cash.stage1,
|
||||
BikerClubhouse1.Cash.stage2,
|
||||
BikerClubhouse1.Cash.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Weed = {
|
||||
none = "",
|
||||
stage1 = "weed_stash1",
|
||||
stage2 = {
|
||||
"weed_stash1",
|
||||
"weed_stash2"
|
||||
},
|
||||
stage3 = {
|
||||
"weed_stash1",
|
||||
"weed_stash2",
|
||||
"weed_stash3"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse1.Weed.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Weed.stage1,
|
||||
BikerClubhouse1.Weed.stage2,
|
||||
BikerClubhouse1.Weed.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Coke = {
|
||||
none = "",
|
||||
stage1 = "coke_stash1",
|
||||
stage2 = {
|
||||
"coke_stash1",
|
||||
"coke_stash2"
|
||||
},
|
||||
stage3 = {
|
||||
"coke_stash1",
|
||||
"coke_stash2",
|
||||
"coke_stash3"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse1.Coke.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Coke.stage1,
|
||||
BikerClubhouse1.Coke.stage2,
|
||||
BikerClubhouse1.Coke.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Counterfeit = {
|
||||
none = "",
|
||||
stage1 = "counterfeit_stash1",
|
||||
stage2 = {
|
||||
"counterfeit_stash1",
|
||||
"counterfeit_stash2"
|
||||
},
|
||||
stage3 = {
|
||||
"counterfeit_stash1",
|
||||
"counterfeit_stash2",
|
||||
"counterfeit_stash3"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse1.Counterfeit.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Counterfeit.stage1,
|
||||
BikerClubhouse1.Counterfeit.stage2,
|
||||
BikerClubhouse1.Counterfeit.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Documents = {
|
||||
none = "",
|
||||
stage1 = "id_stash1",
|
||||
stage2 = {
|
||||
"id_stash1",
|
||||
"id_stash2"
|
||||
},
|
||||
stage3 = {
|
||||
"id_stash1",
|
||||
"id_stash2",
|
||||
"id_stash3"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse1.Documents.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse1.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse1.interiorId, {
|
||||
BikerClubhouse1.Documents.stage1,
|
||||
BikerClubhouse1.Documents.stage2,
|
||||
BikerClubhouse1.Documents.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
BikerClubhouse1.Ipl.Interior.Load()
|
||||
|
||||
BikerClubhouse1.Walls.Set(BikerClubhouse1.Walls.plain, BikerClubhouse1.Walls.Color.brown)
|
||||
|
||||
BikerClubhouse1.Furnitures.Set(BikerClubhouse1.Furnitures.A, 3)
|
||||
BikerClubhouse1.Decoration.Set(BikerClubhouse1.Decoration.A)
|
||||
BikerClubhouse1.Mural.Set(BikerClubhouse1.Mural.rideFree)
|
||||
|
||||
BikerClubhouse1.ModBooth.Set(BikerClubhouse1.ModBooth.none)
|
||||
BikerClubhouse1.GunLocker.Set(BikerClubhouse1.GunLocker.none)
|
||||
|
||||
BikerClubhouse1.Meth.Set(BikerClubhouse1.Meth.none)
|
||||
BikerClubhouse1.Cash.Set(BikerClubhouse1.Cash.none)
|
||||
BikerClubhouse1.Coke.Set(BikerClubhouse1.Coke.none)
|
||||
BikerClubhouse1.Weed.Set(BikerClubhouse1.Weed.none)
|
||||
BikerClubhouse1.Counterfeit.Set(BikerClubhouse1.Counterfeit.none)
|
||||
BikerClubhouse1.Documents.Set(BikerClubhouse1.Documents.none)
|
||||
|
||||
RefreshInterior(BikerClubhouse1.interiorId)
|
||||
end
|
||||
}
|
402
resources/[standalone]/bob74_ipl/dlc_bikers/clubhouse2.lua
Normal file
402
resources/[standalone]/bob74_ipl/dlc_bikers/clubhouse2.lua
Normal file
@ -0,0 +1,402 @@
|
||||
-- Clubhouse2: 998.4809, -3164.711, -38.90733
|
||||
exports('GetBikerClubhouse2Object', function()
|
||||
return BikerClubhouse2
|
||||
end)
|
||||
|
||||
BikerClubhouse2 = {
|
||||
interiorId = 246529,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "bkr_biker_interior_placement_interior_1_biker_dlc_int_02_milo",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(BikerClubhouse2.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(BikerClubhouse2.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Walls = {
|
||||
brick = "walls_01",
|
||||
plain = "walls_02",
|
||||
Color = {
|
||||
greenAndGray = 1,
|
||||
multicolor = 2,
|
||||
orangeAndGray = 3,
|
||||
blue = 4,
|
||||
lightBlueAndSable = 5,
|
||||
greenAndRed = 6,
|
||||
yellowAndGray = 7,
|
||||
red = 8,
|
||||
fuchsiaAndGray = 9
|
||||
},
|
||||
|
||||
Set = function(walls, color, refresh)
|
||||
if color == nil then
|
||||
color = 0
|
||||
end
|
||||
|
||||
BikerClubhouse2.Walls.Clear(false)
|
||||
|
||||
SetIplPropState(BikerClubhouse2.interiorId, walls, true, refresh)
|
||||
SetInteriorPropColor(BikerClubhouse2.interiorId, walls, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Walls.brick,
|
||||
BikerClubhouse2.Walls.plain
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
LowerWalls = {
|
||||
default = "lower_walls_default",
|
||||
|
||||
SetColor = function(color, refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, BikerClubhouse2.LowerWalls.default, true, refresh)
|
||||
SetInteriorPropColor(BikerClubhouse2.interiorId, BikerClubhouse2.LowerWalls.default, color)
|
||||
end,
|
||||
},
|
||||
Furnitures = {
|
||||
A = "furnishings_01",
|
||||
B = "furnishings_02",
|
||||
-- Colors for "furnishings_01" only
|
||||
Color = {
|
||||
turquoise = 0,
|
||||
darkBrown = 1,
|
||||
brown = 2,
|
||||
-- 3 equal 1
|
||||
brown2 = 4,
|
||||
gray = 5,
|
||||
red = 6,
|
||||
darkGray = 7,
|
||||
black = 8,
|
||||
red2 = 9
|
||||
},
|
||||
|
||||
Set = function(furn, color, refresh)
|
||||
if color == nil then
|
||||
color = 0
|
||||
end
|
||||
|
||||
BikerClubhouse2.Furnitures.Clear(false)
|
||||
|
||||
SetIplPropState(BikerClubhouse2.interiorId, furn, true, refresh)
|
||||
SetInteriorPropColor(BikerClubhouse2.interiorId, furn, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Furnitures.A,
|
||||
BikerClubhouse2.Furnitures.B
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Decoration = {
|
||||
A = "decorative_01",
|
||||
B = "decorative_02",
|
||||
|
||||
Set = function(deco, refresh)
|
||||
BikerClubhouse2.Decoration.Clear(false)
|
||||
|
||||
SetIplPropState(BikerClubhouse2.interiorId, deco, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Decoration.A,
|
||||
BikerClubhouse2.Decoration.B
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Mural = {
|
||||
none = "",
|
||||
death1 = "mural_01",
|
||||
cityColor1 = "mural_02",
|
||||
death2 = "mural_03",
|
||||
cityColor2 = "mural_04",
|
||||
graffitis = "mural_05",
|
||||
cityColor3 = "mural_06",
|
||||
cityColor4 = "mural_07",
|
||||
cityBlack = "mural_08",
|
||||
death3 = "mural_09",
|
||||
|
||||
Set = function(mural, refresh)
|
||||
BikerClubhouse2.Mural.Clear(false)
|
||||
|
||||
if mural ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, mural, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse2.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Mural.death1,
|
||||
BikerClubhouse2.Mural.cityColor1,
|
||||
BikerClubhouse2.Mural.death2,
|
||||
BikerClubhouse2.Mural.cityColor2,
|
||||
BikerClubhouse2.Mural.graffitis,
|
||||
BikerClubhouse2.Mural.cityColor3,
|
||||
BikerClubhouse2.Mural.cityColor4,
|
||||
BikerClubhouse2.Mural.cityBlack,
|
||||
BikerClubhouse2.Mural.death3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
GunLocker = {
|
||||
on = "gun_locker",
|
||||
off = "no_gun_locker",
|
||||
|
||||
Set = function(locker, refresh)
|
||||
BikerClubhouse2.GunLocker.Clear(false)
|
||||
|
||||
if locker ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, locker, true, refresh)
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.GunLocker.on,
|
||||
BikerClubhouse2.GunLocker.off
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
ModBooth = {
|
||||
none = "",
|
||||
on = "mod_booth",
|
||||
off = "no_mod_booth",
|
||||
|
||||
Set = function(mod, refresh)
|
||||
BikerClubhouse2.ModBooth.Clear(false)
|
||||
|
||||
if mod ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, mod, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse2.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.ModBooth.on,
|
||||
BikerClubhouse2.ModBooth.off
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Meth = {
|
||||
none = "",
|
||||
stage1 = "meth_small",
|
||||
stage2 = {
|
||||
"meth_small",
|
||||
"meth_medium"
|
||||
},
|
||||
stage3 = {
|
||||
"meth_small",
|
||||
"meth_medium",
|
||||
"meth_large"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse2.Meth.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse2.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Meth.stage1,
|
||||
BikerClubhouse2.Meth.stage2,
|
||||
BikerClubhouse2.Meth.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Cash = {
|
||||
none = "",
|
||||
stage1 = "cash_small",
|
||||
stage2 = {
|
||||
"cash_small",
|
||||
"cash_medium"
|
||||
},
|
||||
stage3 = {
|
||||
"cash_small",
|
||||
"cash_medium",
|
||||
"cash_large"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse2.Cash.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse2.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Cash.stage1,
|
||||
BikerClubhouse2.Cash.stage2,
|
||||
BikerClubhouse2.Cash.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Weed = {
|
||||
none = "",
|
||||
stage1 = "weed_small",
|
||||
stage2 = {
|
||||
"weed_small",
|
||||
"weed_medium"
|
||||
},
|
||||
stage3 = {
|
||||
"weed_small",
|
||||
"weed_medium",
|
||||
"weed_large"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse2.Weed.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse2.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Weed.stage1,
|
||||
BikerClubhouse2.Weed.stage2,
|
||||
BikerClubhouse2.Weed.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Coke = {
|
||||
none = "",
|
||||
stage1 = "coke_small",
|
||||
stage2 = {
|
||||
"coke_small",
|
||||
"coke_medium"
|
||||
},
|
||||
stage3 = {
|
||||
"coke_small",
|
||||
"coke_medium",
|
||||
"coke_large"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse2.Coke.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse2.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Coke.stage1,
|
||||
BikerClubhouse2.Coke.stage2,
|
||||
BikerClubhouse2.Coke.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Counterfeit = {
|
||||
none = "",
|
||||
stage1 = "counterfeit_small",
|
||||
stage2 = {
|
||||
"counterfeit_small",
|
||||
"counterfeit_medium"
|
||||
},
|
||||
stage3 = {
|
||||
"counterfeit_small",
|
||||
"counterfeit_medium",
|
||||
"counterfeit_large"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse2.Counterfeit.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerClubhouse2.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Counterfeit.stage1,
|
||||
BikerClubhouse2.Counterfeit.stage2,
|
||||
BikerClubhouse2.Counterfeit.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Documents = {
|
||||
none = "",
|
||||
stage1 = "id_small",
|
||||
stage2 = {
|
||||
"id_small",
|
||||
"id_medium"
|
||||
},
|
||||
stage3 = {
|
||||
"id_small",
|
||||
"id_medium",
|
||||
"id_large"
|
||||
},
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerClubhouse2.Documents.Clear(false)
|
||||
|
||||
if stage ~= "" then
|
||||
SetIplPropState(BikerClubhouse2.interiorId, stage, true, refresh)
|
||||
else
|
||||
if refresh then RefreshInterior(BikerClubhouse2.interiorId) end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerClubhouse2.interiorId, {
|
||||
BikerClubhouse2.Documents.stage1,
|
||||
BikerClubhouse2.Documents.stage2,
|
||||
BikerClubhouse2.Documents.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
BikerClubhouse2.Ipl.Interior.Load()
|
||||
|
||||
BikerClubhouse2.Walls.Set(BikerClubhouse2.Walls.brick, BikerClubhouse2.Walls.Color.red)
|
||||
BikerClubhouse2.LowerWalls.SetColor(BikerClubhouse2.Walls.Color.red)
|
||||
|
||||
BikerClubhouse2.Furnitures.Set(BikerClubhouse2.Furnitures.B, BikerClubhouse2.Furnitures.Color.black)
|
||||
BikerClubhouse2.Decoration.Set(BikerClubhouse2.Decoration.B)
|
||||
BikerClubhouse2.Mural.Set(BikerClubhouse2.Mural.death3)
|
||||
|
||||
BikerClubhouse2.ModBooth.Set(BikerClubhouse2.ModBooth.off)
|
||||
BikerClubhouse2.GunLocker.Set(BikerClubhouse2.GunLocker.off)
|
||||
|
||||
BikerClubhouse2.Meth.Set(BikerClubhouse2.Meth.none)
|
||||
BikerClubhouse2.Cash.Set(BikerClubhouse2.Cash.none)
|
||||
BikerClubhouse2.Coke.Set(BikerClubhouse2.Coke.none)
|
||||
BikerClubhouse2.Weed.Set(BikerClubhouse2.Weed.none)
|
||||
BikerClubhouse2.Counterfeit.Set(BikerClubhouse2.Counterfeit.none)
|
||||
BikerClubhouse2.Documents.Set(BikerClubhouse2.Documents.none)
|
||||
|
||||
RefreshInterior(BikerClubhouse2.interiorId)
|
||||
end
|
||||
}
|
98
resources/[standalone]/bob74_ipl/dlc_bikers/cocaine.lua
Normal file
98
resources/[standalone]/bob74_ipl/dlc_bikers/cocaine.lua
Normal file
@ -0,0 +1,98 @@
|
||||
-- Cocaine lockup: 1093.6, -3196.6, -38.99841
|
||||
exports('GetBikerCocaineObject', function()
|
||||
return BikerCocaine
|
||||
end)
|
||||
|
||||
BikerCocaine = {
|
||||
interiorId = 247553,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "bkr_biker_interior_placement_interior_4_biker_dlc_int_ware03_milo",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(BikerCocaine.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(BikerCocaine.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Style = {
|
||||
none = "",
|
||||
basic = {
|
||||
"set_up",
|
||||
"equipment_basic",
|
||||
"coke_press_basic",
|
||||
"production_basic",
|
||||
"table_equipment"
|
||||
},
|
||||
upgrade = {
|
||||
"set_up",
|
||||
"equipment_upgrade",
|
||||
"coke_press_upgrade",
|
||||
"production_upgrade",
|
||||
"table_equipment_upgrade"
|
||||
},
|
||||
|
||||
Set = function(style, refresh)
|
||||
BikerCocaine.Style.Clear(false)
|
||||
|
||||
if style ~= "" then
|
||||
SetIplPropState(BikerCocaine.interiorId, style, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerCocaine.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerCocaine.interiorId, {
|
||||
BikerCocaine.Style.basic,
|
||||
BikerCocaine.Style.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Security = {
|
||||
none = "",
|
||||
basic = "security_low",
|
||||
upgrade = "security_high",
|
||||
|
||||
Set = function(security, refresh)
|
||||
BikerCocaine.Security.Clear(false)
|
||||
|
||||
if security ~= "" then
|
||||
SetIplPropState(BikerCocaine.interiorId, security, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerCocaine.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerCocaine.interiorId, {
|
||||
BikerCocaine.Security.basic,
|
||||
BikerCocaine.Security.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
cokeBasic1 = "coke_cut_01", -- On the basic tables
|
||||
cokeBasic2 = "coke_cut_02", -- On the basic tables
|
||||
cokeBasic3 = "coke_cut_03", -- On the basic tables
|
||||
cokeUpgrade1 = "coke_cut_04", -- On the upgraded tables
|
||||
cokeUpgrade2 = "coke_cut_05", -- On the upgraded tables
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(BikerCocaine.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
BikerCocaine.Ipl.Interior.Load()
|
||||
BikerCocaine.Style.Set(BikerCocaine.Style.basic)
|
||||
BikerCocaine.Security.Set(BikerCocaine.Security.none)
|
||||
|
||||
RefreshInterior(BikerCocaine.interiorId)
|
||||
end
|
||||
}
|
206
resources/[standalone]/bob74_ipl/dlc_bikers/counterfeit_cash.lua
Normal file
206
resources/[standalone]/bob74_ipl/dlc_bikers/counterfeit_cash.lua
Normal file
@ -0,0 +1,206 @@
|
||||
-- Counterfeit cash factory: 1121.897, -3195.338, -40.4025
|
||||
exports('GetBikerCounterfeitObject', function()
|
||||
return BikerCounterfeit
|
||||
end)
|
||||
|
||||
BikerCounterfeit = {
|
||||
interiorId = 247809,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "bkr_biker_interior_placement_interior_5_biker_dlc_int_ware04_milo",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(BikerCounterfeit.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(BikerCounterfeit.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Printer = {
|
||||
none = "",
|
||||
basic = "counterfeit_standard_equip_no_prod",
|
||||
basicProd = "counterfeit_standard_equip",
|
||||
upgrade = "counterfeit_upgrade_equip_no_prod",
|
||||
upgradeProd = "counterfeit_upgrade_equip",
|
||||
|
||||
Set = function(printer, refresh)
|
||||
BikerCounterfeit.Printer.Clear(false)
|
||||
|
||||
if printer ~= "" then
|
||||
SetIplPropState(BikerCounterfeit.interiorId, printer, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerCounterfeit.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerCounterfeit.interiorId, {
|
||||
BikerCounterfeit.Printer.basic,
|
||||
BikerCounterfeit.Printer.basicProd,
|
||||
BikerCounterfeit.Printer.upgrade,
|
||||
BikerCounterfeit.Printer.upgradeProd
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Security = {
|
||||
basic = "counterfeit_low_security",
|
||||
upgrade = "counterfeit_security",
|
||||
|
||||
Set = function(security, refresh)
|
||||
BikerCounterfeit.Security.Clear(false)
|
||||
|
||||
SetIplPropState(BikerCounterfeit.interiorId, security, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerCounterfeit.interiorId, {
|
||||
BikerCounterfeit.Security.basic,
|
||||
BikerCounterfeit.Security.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Dryer1 = {
|
||||
none = "",
|
||||
on = "dryera_on",
|
||||
off = "dryera_off",
|
||||
open = "dryera_open",
|
||||
|
||||
Set = function(dryer, refresh)
|
||||
BikerCounterfeit.Dryer1.Clear(false)
|
||||
|
||||
if dryer ~= "" then
|
||||
SetIplPropState(BikerCounterfeit.interiorId, dryer, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerCounterfeit.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerCounterfeit.interiorId, {
|
||||
BikerCounterfeit.Dryer1.on,
|
||||
BikerCounterfeit.Dryer1.off,
|
||||
BikerCounterfeit.Dryer1.open
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Dryer2 = {
|
||||
none = "",
|
||||
on = "dryerb_on",
|
||||
off = "dryerb_off",
|
||||
open = "dryerb_open",
|
||||
|
||||
Set = function(dryer, refresh)
|
||||
BikerCounterfeit.Dryer2.Clear(false)
|
||||
|
||||
if dryer ~= "" then
|
||||
SetIplPropState(BikerCounterfeit.interiorId, dryer, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerCounterfeit.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerCounterfeit.interiorId, {
|
||||
BikerCounterfeit.Dryer2.on,
|
||||
BikerCounterfeit.Dryer2.off,
|
||||
BikerCounterfeit.Dryer2.open
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Dryer3 = {
|
||||
none = "",
|
||||
on = "dryerc_on",
|
||||
off = "dryerc_off",
|
||||
open = "dryerc_open",
|
||||
|
||||
Set = function(dryer, refresh)
|
||||
BikerCounterfeit.Dryer3.Clear(false)
|
||||
|
||||
if dryer ~= "" then
|
||||
SetIplPropState(BikerCounterfeit.interiorId, dryer, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerCounterfeit.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerCounterfeit.interiorId, {
|
||||
BikerCounterfeit.Dryer3.on,
|
||||
BikerCounterfeit.Dryer3.off,
|
||||
BikerCounterfeit.Dryer3.open
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Dryer4 = {
|
||||
none = "",
|
||||
on = "dryerd_on",
|
||||
off = "dryerd_off",
|
||||
open = "dryerd_open",
|
||||
|
||||
Set = function(dryer, refresh)
|
||||
BikerCounterfeit.Dryer4.Clear(false)
|
||||
|
||||
if dryer ~= "" then
|
||||
SetIplPropState(BikerCounterfeit.interiorId, dryer, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerCounterfeit.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerCounterfeit.interiorId, {
|
||||
BikerCounterfeit.Dryer4.on,
|
||||
BikerCounterfeit.Dryer4.off,
|
||||
BikerCounterfeit.Dryer4.open
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
Cash10 = {
|
||||
A = "counterfeit_cashpile10a",
|
||||
B = "counterfeit_cashpile10b",
|
||||
C = "counterfeit_cashpile10c",
|
||||
D = "counterfeit_cashpile10d",
|
||||
},
|
||||
Cash20 = {
|
||||
A = "counterfeit_cashpile20a",
|
||||
B = "counterfeit_cashpile20b",
|
||||
C = "counterfeit_cashpile20c",
|
||||
D = "counterfeit_cashpile20d",
|
||||
},
|
||||
Cash100 = {
|
||||
A = "counterfeit_cashpile100a",
|
||||
B = "counterfeit_cashpile100b",
|
||||
C = "counterfeit_cashpile100c",
|
||||
D = "counterfeit_cashpile100d",
|
||||
},
|
||||
chairs = "special_chairs", -- Brown chairs at the end of the room
|
||||
cutter = "money_cutter", -- Money cutting machine
|
||||
furnitures = "counterfeit_setup", -- Paper, counting machines, cups
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(BikerCounterfeit.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
BikerCounterfeit.Ipl.Interior.Load()
|
||||
BikerCounterfeit.Printer.Set(BikerCounterfeit.Printer.basicProd)
|
||||
BikerCounterfeit.Security.Set(BikerCounterfeit.Security.upgrade)
|
||||
BikerCounterfeit.Dryer1.Set(BikerCounterfeit.Dryer1.open)
|
||||
BikerCounterfeit.Dryer2.Set(BikerCounterfeit.Dryer2.on)
|
||||
BikerCounterfeit.Dryer3.Set(BikerCounterfeit.Dryer3.on)
|
||||
BikerCounterfeit.Dryer4.Set(BikerCounterfeit.Dryer4.on)
|
||||
BikerCounterfeit.Details.Enable(BikerCounterfeit.Details.cutter, true)
|
||||
BikerCounterfeit.Details.Enable(BikerCounterfeit.Details.furnitures, true)
|
||||
BikerCounterfeit.Details.Enable(BikerCounterfeit.Details.Cash100, true)
|
||||
|
||||
RefreshInterior(BikerCounterfeit.interiorId)
|
||||
end
|
||||
}
|
107
resources/[standalone]/bob74_ipl/dlc_bikers/document_forgery.lua
Normal file
107
resources/[standalone]/bob74_ipl/dlc_bikers/document_forgery.lua
Normal file
@ -0,0 +1,107 @@
|
||||
-- Document forgery: 1165, -3196.6, -39.01306
|
||||
exports('GetBikerDocumentForgeryObject', function()
|
||||
return BikerDocumentForgery
|
||||
end)
|
||||
|
||||
BikerDocumentForgery = {
|
||||
interiorId = 246785,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "bkr_biker_interior_placement_interior_6_biker_dlc_int_ware05_milo",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(BikerDocumentForgery.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(BikerDocumentForgery.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Style = {
|
||||
basic = "interior_basic",
|
||||
upgrade = "interior_upgrade",
|
||||
|
||||
Set = function(style, refresh)
|
||||
BikerDocumentForgery.Style.Clear(false)
|
||||
|
||||
SetIplPropState(BikerDocumentForgery.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerDocumentForgery.interiorId, {
|
||||
BikerDocumentForgery.Style.basic,
|
||||
BikerDocumentForgery.Style.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Equipment = {
|
||||
none = "",
|
||||
basic = "equipment_basic",
|
||||
upgrade = "equipment_upgrade",
|
||||
|
||||
Set = function(eqpt, refresh)
|
||||
BikerDocumentForgery.Equipment.Clear(false)
|
||||
|
||||
if eqpt ~= "" then
|
||||
SetIplPropState(BikerDocumentForgery.interiorId, eqpt, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerDocumentForgery.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerDocumentForgery.interiorId, {
|
||||
BikerDocumentForgery.Equipment.basic,
|
||||
BikerDocumentForgery.Equipment.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Security = {
|
||||
basic = "security_low",
|
||||
upgrade = "security_high",
|
||||
|
||||
Set = function(security, refresh)
|
||||
BikerDocumentForgery.Security.Clear(false)
|
||||
|
||||
SetIplPropState(BikerDocumentForgery.interiorId, security, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerDocumentForgery.interiorId, {
|
||||
BikerDocumentForgery.Security.basic,
|
||||
BikerDocumentForgery.Security.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
Chairs = {
|
||||
A = "chair01",
|
||||
B = "chair02",
|
||||
C = "chair03",
|
||||
D = "chair04",
|
||||
E = "chair05",
|
||||
F = "chair06",
|
||||
G = "chair07"
|
||||
},
|
||||
production = "production", -- Papers, pencils
|
||||
furnitures = "set_up", -- Printers, shredders
|
||||
clutter = "clutter", -- Pizza boxes, cups
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(BikerDocumentForgery.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
BikerDocumentForgery.Ipl.Interior.Load()
|
||||
BikerDocumentForgery.Style.Set(BikerDocumentForgery.Style.basic)
|
||||
BikerDocumentForgery.Security.Set(BikerDocumentForgery.Security.basic)
|
||||
BikerDocumentForgery.Equipment.Set(BikerDocumentForgery.Equipment.basic)
|
||||
BikerDocumentForgery.Details.Enable(BikerDocumentForgery.Details.production, false)
|
||||
BikerDocumentForgery.Details.Enable(BikerDocumentForgery.Details.setup, false)
|
||||
BikerDocumentForgery.Details.Enable(BikerDocumentForgery.Details.clutter, false)
|
||||
BikerDocumentForgery.Details.Enable(BikerDocumentForgery.Details.Chairs, true)
|
||||
|
||||
RefreshInterior(BikerDocumentForgery.interiorId)
|
||||
end
|
||||
}
|
608
resources/[standalone]/bob74_ipl/dlc_bikers/gang.lua
Normal file
608
resources/[standalone]/bob74_ipl/dlc_bikers/gang.lua
Normal file
@ -0,0 +1,608 @@
|
||||
exports('GetBikerGangObject', function()
|
||||
return BikerGang
|
||||
end)
|
||||
|
||||
AddEventHandler('onClientResourceStop', function(res)
|
||||
if GetCurrentResourceName() ~= res then
|
||||
return
|
||||
end
|
||||
|
||||
BikerGang.Clubhouse.ClearAll()
|
||||
end)
|
||||
|
||||
BikerGang = {
|
||||
Name = {
|
||||
Colors = {
|
||||
black = 0,
|
||||
gray = 1,
|
||||
white = 2,
|
||||
orange = 3,
|
||||
red = 4,
|
||||
green = 5,
|
||||
yellow = 6,
|
||||
blue = 7
|
||||
},
|
||||
Fonts = {
|
||||
font1 = 0,
|
||||
font2 = 1,
|
||||
font3 = 2,
|
||||
font4 = 3,
|
||||
font5 = 4,
|
||||
font6 = 5,
|
||||
font7 = 6,
|
||||
font8 = 7,
|
||||
font9 = 8,
|
||||
font10 = 9,
|
||||
font11 = 10,
|
||||
font12 = 11,
|
||||
font13 = 12
|
||||
},
|
||||
name = "",
|
||||
color = 0,
|
||||
font = 0,
|
||||
|
||||
Set = function(name, color, font)
|
||||
BikerGang.Name.name = name
|
||||
BikerGang.Name.color = color
|
||||
BikerGang.Name.font = font
|
||||
BikerGang.Clubhouse.ClubName.stage = 0
|
||||
end
|
||||
},
|
||||
Emblem = {
|
||||
Logo = {
|
||||
eagle = "MPClubPreset1",
|
||||
skull = "MPClubPreset2",
|
||||
ace = "MPClubPreset3",
|
||||
brassKnuckles = "MPClubPreset4",
|
||||
UR = "MPClubPreset5",
|
||||
fox = "MPClubPreset6",
|
||||
city = "MPClubPreset7",
|
||||
dices = "MPClubPreset8",
|
||||
target = "MPClubPreset9"
|
||||
},
|
||||
emblem = "MPClubPreset1",
|
||||
rot = 90.0, -- Rotation for 0.0 to 360.0
|
||||
|
||||
Set = function(logo, rotation)
|
||||
BikerGang.Emblem.emblem = logo
|
||||
BikerGang.Emblem.rot = rotation
|
||||
BikerGang.Clubhouse.Emblem.stage = 0
|
||||
end
|
||||
},
|
||||
Clubhouse = {
|
||||
interiorId1 = 246273,
|
||||
interiorId2 = 246529,
|
||||
|
||||
Members = {
|
||||
President = {
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
renderId = -1,
|
||||
textureDict = "",
|
||||
pedheadshot = -1,
|
||||
target = "memorial_wall_president",
|
||||
prop = "bkr_prop_rt_memorial_president",
|
||||
stage = 0,
|
||||
|
||||
Init = function()
|
||||
DrawEmptyRect(BikerGang.Clubhouse.Members.President.target, BikerGang.Clubhouse.Members.President.prop)
|
||||
end,
|
||||
Enable = function(state)
|
||||
BikerGang.Clubhouse.Members.President.needToLoad = state
|
||||
end,
|
||||
Set = function(ped)
|
||||
BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.President, ped)
|
||||
end,
|
||||
Clear = function()
|
||||
BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.President)
|
||||
end
|
||||
},
|
||||
VicePresident = {
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
renderId = -1,
|
||||
textureDict = "",
|
||||
pedheadshot = -1,
|
||||
target = "memorial_wall_vice_president",
|
||||
prop = "bkr_prop_rt_memorial_vice_pres",
|
||||
stage = 0,
|
||||
|
||||
Init = function()
|
||||
DrawEmptyRect(BikerGang.Clubhouse.Members.VicePresident.target, BikerGang.Clubhouse.Members.VicePresident.prop)
|
||||
end,
|
||||
Enable = function(state)
|
||||
BikerGang.Clubhouse.Members.VicePresident.needToLoad = state
|
||||
end,
|
||||
Set = function(ped)
|
||||
BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.VicePresident, ped)
|
||||
end,
|
||||
Clear = function()
|
||||
BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.VicePresident)
|
||||
end
|
||||
},
|
||||
RoadCaptain = {
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
renderId = -1,
|
||||
textureDict = "",
|
||||
pedheadshot = -1,
|
||||
target = "memorial_wall_active_01",
|
||||
prop = "bkr_prop_rt_memorial_active_01",
|
||||
stage = 0,
|
||||
|
||||
Init = function()
|
||||
DrawEmptyRect(BikerGang.Clubhouse.Members.RoadCaptain.target, BikerGang.Clubhouse.Members.RoadCaptain.prop)
|
||||
end,
|
||||
Enable = function(state)
|
||||
BikerGang.Clubhouse.Members.RoadCaptain.needToLoad = state
|
||||
end,
|
||||
Set = function(ped)
|
||||
BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.RoadCaptain, ped)
|
||||
end,
|
||||
Clear = function()
|
||||
BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.RoadCaptain)
|
||||
end
|
||||
},
|
||||
Enforcer = {
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
renderId = -1,
|
||||
textureDict = "",
|
||||
pedheadshot = -1,
|
||||
target = "memorial_wall_active_02",
|
||||
prop = "bkr_prop_rt_memorial_active_02",
|
||||
stage = 0,
|
||||
|
||||
Init = function()
|
||||
DrawEmptyRect(BikerGang.Clubhouse.Members.Enforcer.target, BikerGang.Clubhouse.Members.Enforcer.prop)
|
||||
end,
|
||||
Enable = function(state)
|
||||
BikerGang.Clubhouse.Members.Enforcer.needToLoad = state
|
||||
end,
|
||||
Set = function(ped)
|
||||
BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.Enforcer, ped)
|
||||
end,
|
||||
Clear = function()
|
||||
BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.Enforcer)
|
||||
end
|
||||
},
|
||||
SergeantAtArms = {
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
renderId = -1,
|
||||
textureDict = "",
|
||||
pedheadshot = -1,
|
||||
target = "memorial_wall_active_03",
|
||||
prop = "bkr_prop_rt_memorial_active_03",
|
||||
stage = 0,
|
||||
|
||||
Init = function()
|
||||
DrawEmptyRect(BikerGang.Clubhouse.Members.SergeantAtArms.target, BikerGang.Clubhouse.Members.SergeantAtArms.prop)
|
||||
end,
|
||||
Enable = function(state)
|
||||
BikerGang.Clubhouse.Members.SergeantAtArms.needToLoad = state
|
||||
end,
|
||||
Set = function(ped)
|
||||
BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.SergeantAtArms, ped)
|
||||
end,
|
||||
Clear = function()
|
||||
BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.SergeantAtArms)
|
||||
end
|
||||
},
|
||||
Set = function(member, ped)
|
||||
member.Clear()
|
||||
member.pedheadshot = GetPedheadshot(ped)
|
||||
|
||||
if member.pedheadshot ~= -1 then
|
||||
member.textureDict = GetPedheadshotTxdString(member.pedheadshot)
|
||||
|
||||
local IsTextureDictLoaded = LoadStreamedTextureDict(member.textureDict)
|
||||
|
||||
if not IsTextureDictLoaded then
|
||||
Citizen.Trace("ERROR: BikerClubhouseDrawMembers - Textures dictionnary \"" .. tostring(member.textureDict) .. "\" cannot be loaded.")
|
||||
end
|
||||
else
|
||||
Citizen.Trace("ERROR: BikerClubhouseDrawMembers - PedHeadShot not ready.")
|
||||
end
|
||||
end,
|
||||
Clear = function(member)
|
||||
if IsNamedRendertargetRegistered(member.target) then
|
||||
ReleaseNamedRendertarget(GetHashKey(member.target))
|
||||
end
|
||||
|
||||
if member.pedheadshot ~= -1 then
|
||||
UnregisterPedheadshot(member.pedheadshot)
|
||||
end
|
||||
|
||||
if member.textureDict ~= "" then
|
||||
SetStreamedTextureDictAsNoLongerNeeded(member.textureDict)
|
||||
end
|
||||
|
||||
member.renderId = -1
|
||||
member.textureDict = ""
|
||||
member.pedheadshot = -1
|
||||
member.stage = 0
|
||||
end
|
||||
},
|
||||
|
||||
ClubName = {
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
target = "clubname_blackboard_01a",
|
||||
prop = "bkr_prop_clubhouse_blackboard_01a",
|
||||
renderId = -1,
|
||||
movieId = -1,
|
||||
stage = 0,
|
||||
|
||||
Init = function()
|
||||
DrawEmptyRect(BikerGang.Clubhouse.ClubName.target, BikerGang.Clubhouse.ClubName.prop)
|
||||
end,
|
||||
Enable = function(state)
|
||||
BikerGang.Clubhouse.ClubName.needToLoad = state
|
||||
end,
|
||||
Clear = function()
|
||||
if IsNamedRendertargetRegistered(BikerGang.Clubhouse.ClubName.target) then
|
||||
ReleaseNamedRendertarget(GetHashKey(BikerGang.Clubhouse.ClubName.target))
|
||||
end
|
||||
|
||||
if HasNamedScaleformMovieLoaded(BikerGang.Clubhouse.ClubName.movieId) then
|
||||
SetScaleformMovieAsNoLongerNeeded(BikerGang.Clubhouse.ClubName.movieId)
|
||||
end
|
||||
|
||||
BikerGang.Clubhouse.ClubName.renderId = -1
|
||||
BikerGang.Clubhouse.ClubName.movieId = -1
|
||||
BikerGang.Clubhouse.ClubName.stage = 0
|
||||
end
|
||||
},
|
||||
|
||||
Emblem = {
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
target = "clubhouse_table",
|
||||
prop = "bkr_prop_rt_clubhouse_table",
|
||||
renderId = -1,
|
||||
movieId = -1,
|
||||
stage = 0,
|
||||
|
||||
Enable = function(state)
|
||||
BikerGang.Clubhouse.Emblem.needToLoad = state
|
||||
end,
|
||||
Init = function()
|
||||
DrawEmptyRect(BikerGang.Clubhouse.Emblem.target, BikerGang.Clubhouse.Emblem.prop)
|
||||
end,
|
||||
Clear = function()
|
||||
if IsNamedRendertargetRegistered(BikerGang.Clubhouse.Emblem.target) then
|
||||
ReleaseNamedRendertarget(GetHashKey(BikerGang.Clubhouse.Emblem.target))
|
||||
end
|
||||
|
||||
BikerGang.Clubhouse.Emblem.renderId = -1
|
||||
BikerGang.Clubhouse.Emblem.stage = 0
|
||||
end
|
||||
},
|
||||
|
||||
MissionsWall = {
|
||||
Missions = {
|
||||
Titles = {
|
||||
byThePoundUpper = "BDEAL_DEALN",
|
||||
byThePound = "DEAL_DEALN",
|
||||
prisonerOfWarUpper = "BIGM_RESCN",
|
||||
prisonerOfWar = "CELL_BIKER_RESC",
|
||||
gunsForHire = "LR_INTRO_ST",
|
||||
weaponOfChoice = "CELL_BIKER_CK",
|
||||
gunrunningUpper = "GB_BIGUNLOAD_U",
|
||||
gunrunning = "GB_BIGUNLOAD_T",
|
||||
nineTenthsOfTheLawUpper = "SB_INTRO_TITLE",
|
||||
nineTenthsOfTheLaw = "SB_MENU_TITLE",
|
||||
jailbreakUpper = "FP_INTRO_TITLE",
|
||||
jailbreak = "FP_MENU_TITLE",
|
||||
crackedUpper = "SC_INTRO_TITLE",
|
||||
cracked = "SC_MENU_TITLE",
|
||||
fragileGoodsUpper = "DV_SH_BIG",
|
||||
fragileGoods = "DV_SH_TITLE",
|
||||
torchedUpper = "BA_SH_BIG",
|
||||
torched = "BA_SH_TITLE",
|
||||
outriderUpper = "SHU_SH_BIG",
|
||||
outrider = "SHU_SH_TITLE"
|
||||
},
|
||||
Descriptions = {
|
||||
byThePound = "DEAL_DEALND",
|
||||
prisonerOfWar = "CELL_BIKER_RESD",
|
||||
gunsForHire = "GFH_MENU_DESC",
|
||||
weaponOfChoice = "CELL_BIKER_CKD",
|
||||
gunrunning = "GB_BIGUNLOAD_D",
|
||||
nineTenthsOfTheLaw = "SB_MENU_DESC",
|
||||
jailbreak = "FP_MENU_DESC",
|
||||
cracked = "SC_MENU_DESC",
|
||||
fragileGoods = "DV_MENU_DESC",
|
||||
torched = "BA_MENU_DESC",
|
||||
outrider = "SHU_MENU_DESC"
|
||||
},
|
||||
Pictures = {
|
||||
byThePound = "CHM_IMG0", -- Pickup car parked
|
||||
prisonerOfWar = "CHM_IMG8", -- Police with man down
|
||||
gunsForHire = "CHM_IMG4", -- Limo
|
||||
weaponOfChoice = "CHM_IMG10", -- Prisoner being beaten
|
||||
gunrunning = "CHM_IMG3", -- Shipment
|
||||
nineTenthsOfTheLaw = "CHM_IMG6", -- Wheeling
|
||||
jailbreak = "CHM_IMG5", -- Prison bus
|
||||
cracked = "CHM_IMG1", -- Safe
|
||||
fragileGoods = "CHM_IMG2", -- Lost Van
|
||||
torched = "CHM_IMG9", -- Explosive crate
|
||||
outrider = "CHM_IMG7" -- Sport ride
|
||||
},
|
||||
},
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
target = "clubhouse_Plan_01a",
|
||||
prop = "bkr_prop_rt_clubhouse_plan_01a",
|
||||
renderId = -1,
|
||||
movieId = -1,
|
||||
stage = 0,
|
||||
Position = {
|
||||
none = -1,
|
||||
left = 0,
|
||||
middle = 1,
|
||||
right = 2
|
||||
},
|
||||
|
||||
Init = function()
|
||||
if not DrawEmptyRect(BikerGang.Clubhouse.MissionsWall.target, BikerGang.Clubhouse.MissionsWall.prop) then
|
||||
Citizen.Trace("ERROR: BikerGang.Clubhouse.MissionsWall.Init() - DrawEmptyRect - Timeout")
|
||||
end
|
||||
end,
|
||||
Enable = function(state)
|
||||
BikerGang.Clubhouse.MissionsWall.needToLoad = state
|
||||
end,
|
||||
SelectMission = function(position)
|
||||
if BikerGang.Clubhouse.MissionsWall.movieId ~= -1 then
|
||||
BeginScaleformMovieMethod(BikerGang.Clubhouse.MissionsWall.movieId, "SET_SELECTED_MISSION")
|
||||
PushScaleformMovieMethodParameterInt(position) -- Mission index 0 to 2 (-1 = no mission)
|
||||
EndScaleformMovieMethod()
|
||||
end
|
||||
end,
|
||||
SetMission = function(position, title, desc, textDict, x, y)
|
||||
if BikerGang.Clubhouse.MissionsWall.needToLoad then
|
||||
if not HasNamedScaleformMovieLoaded(BikerGang.Clubhouse.MissionsWall.movieId) then
|
||||
BikerGang.Clubhouse.MissionsWall.movieId = LoadScaleform("BIKER_MISSION_WALL")
|
||||
end
|
||||
|
||||
if BikerGang.Clubhouse.MissionsWall.movieId ~= -1 then
|
||||
if position > -1 then
|
||||
BeginScaleformMovieMethod(BikerGang.Clubhouse.MissionsWall.movieId, "SET_MISSION")
|
||||
PushScaleformMovieMethodParameterInt(position) -- Mission index 0 to 2 (-1 = no mission)
|
||||
PushScaleformMovieMethodParameterString(title)
|
||||
PushScaleformMovieMethodParameterString(desc)
|
||||
PushScaleformMovieMethodParameterButtonName(textDict)
|
||||
PushScaleformMovieMethodParameterFloat(x) -- Mission 0: world coordinates X
|
||||
PushScaleformMovieMethodParameterFloat(y) -- Mission 0: world coordinates Y
|
||||
EndScaleformMovieMethod()
|
||||
else
|
||||
-- Remove all missions
|
||||
for key, value in pairs(BikerGang.Clubhouse.MissionsWall.Position) do
|
||||
BikerGang.Clubhouse.MissionsWall.RemoveMission(value)
|
||||
end
|
||||
|
||||
BikerGang.Clubhouse.MissionsWall.SelectMission(BikerGang.Clubhouse.MissionsWall.Position.none)
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
RemoveMission = function(position)
|
||||
BeginScaleformMovieMethod(BikerGang.Clubhouse.MissionsWall.movieId, "HIDE_MISSION")
|
||||
PushScaleformMovieMethodParameterInt(position)
|
||||
EndScaleformMovieMethod()
|
||||
end,
|
||||
Clear = function()
|
||||
-- Removing missions
|
||||
BikerGang.Clubhouse.MissionsWall.SelectMission(BikerGang.Clubhouse.MissionsWall.Position.none)
|
||||
BikerGang.Clubhouse.MissionsWall.SetMission(BikerGang.Clubhouse.MissionsWall.Position.none)
|
||||
|
||||
-- Releasing handles
|
||||
if IsNamedRendertargetRegistered(BikerGang.Clubhouse.MissionsWall.prop) then
|
||||
ReleaseNamedRendertarget(GetHashKey(BikerGang.Clubhouse.MissionsWall.prop))
|
||||
end
|
||||
|
||||
if HasNamedScaleformMovieLoaded(BikerGang.Clubhouse.MissionsWall.movieId) then
|
||||
SetScaleformMovieAsNoLongerNeeded(BikerGang.Clubhouse.MissionsWall.movieId)
|
||||
end
|
||||
|
||||
-- Resetting
|
||||
BikerGang.Clubhouse.MissionsWall.renderId = -1
|
||||
BikerGang.Clubhouse.MissionsWall.movieId = -1
|
||||
BikerGang.Clubhouse.MissionsWall.stage = 0
|
||||
end
|
||||
},
|
||||
|
||||
ClearAll = function()
|
||||
BikerGang.Clubhouse.ClubName.Clear()
|
||||
BikerGang.Clubhouse.ClubName.loaded = false
|
||||
|
||||
BikerGang.Clubhouse.Emblem.Clear()
|
||||
BikerGang.Clubhouse.Emblem.loaded = false
|
||||
|
||||
BikerGang.Clubhouse.MissionsWall.Clear()
|
||||
BikerGang.Clubhouse.MissionsWall.loaded = false
|
||||
|
||||
for key, member in pairs(BikerGang.Clubhouse.Members) do
|
||||
if type(member) == "table" then
|
||||
member.Clear()
|
||||
member.loaded = false
|
||||
end
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
-- Removing the black texture
|
||||
BikerGang.Clubhouse.Members.President.Init()
|
||||
BikerGang.Clubhouse.Members.VicePresident.Init()
|
||||
BikerGang.Clubhouse.Members.RoadCaptain.Init()
|
||||
BikerGang.Clubhouse.Members.Enforcer.Init()
|
||||
BikerGang.Clubhouse.Members.SergeantAtArms.Init()
|
||||
|
||||
BikerGang.Clubhouse.ClubName.Init()
|
||||
BikerGang.Clubhouse.Emblem.Init()
|
||||
BikerGang.Clubhouse.MissionsWall.Init()
|
||||
|
||||
while true do
|
||||
if BikerGang.Clubhouse.ClubName.needToLoad or BikerGang.Clubhouse.Emblem.needToLoad or BikerGang.Clubhouse.MissionsWall.needToLoad or BikerGang.Clubhouse.Members.President.needToLoad or BikerGang.Clubhouse.Members.VicePresident.needToLoad or BikerGang.Clubhouse.Members.RoadCaptain.needToLoad or BikerGang.Clubhouse.Members.Enforcer.needToLoad or BikerGang.Clubhouse.Members.SergeantAtArms.needToLoad then
|
||||
-- If we are inside a clubhouse, then we load
|
||||
if Global.Biker.isInsideClubhouse1 or Global.Biker.isInsideClubhouse2 then
|
||||
-- Club name
|
||||
if BikerGang.Clubhouse.ClubName.needToLoad then
|
||||
DrawClubName(BikerGang.Name.name, BikerGang.Name.color, BikerGang.Name.font)
|
||||
|
||||
BikerGang.Clubhouse.ClubName.loaded = true
|
||||
elseif BikerGang.Clubhouse.ClubName.loaded then
|
||||
BikerGang.Clubhouse.ClubName.Clear()
|
||||
BikerGang.Clubhouse.ClubName.loaded = false
|
||||
end
|
||||
|
||||
-- Emblem
|
||||
if BikerGang.Clubhouse.Emblem.needToLoad then
|
||||
DrawEmblem(BikerGang.Emblem.emblem, BikerGang.Emblem.rot)
|
||||
|
||||
BikerGang.Clubhouse.Emblem.loaded = true
|
||||
elseif BikerGang.Clubhouse.Emblem.loaded then
|
||||
BikerGang.Clubhouse.Emblem.Clear()
|
||||
BikerGang.Clubhouse.Emblem.loaded = false
|
||||
end
|
||||
|
||||
-- Missions wall
|
||||
if BikerGang.Clubhouse.MissionsWall.needToLoad then
|
||||
DrawMissions()
|
||||
|
||||
BikerGang.Clubhouse.MissionsWall.loaded = true
|
||||
elseif BikerGang.Clubhouse.MissionsWall.loaded then
|
||||
BikerGang.Clubhouse.MissionsWall.Clear()
|
||||
BikerGang.Clubhouse.MissionsWall.loaded = false
|
||||
end
|
||||
|
||||
-- Members: President
|
||||
for key, member in pairs(BikerGang.Clubhouse.Members) do
|
||||
if type(member) == "table" then
|
||||
if member.needToLoad then
|
||||
DrawMember(member)
|
||||
member.loaded = true
|
||||
elseif member.loaded then
|
||||
member.Clear()
|
||||
member.loaded = false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Citizen.Wait(0) -- We need to call all this every frame
|
||||
else
|
||||
-- Not in a clubhouse
|
||||
Citizen.Wait(1000)
|
||||
end
|
||||
else
|
||||
-- No load needed
|
||||
Citizen.Wait(1000)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
function DrawClubName(name, color, font)
|
||||
if BikerGang.Clubhouse.ClubName.stage == 0 then
|
||||
if BikerGang.Clubhouse.ClubName.renderId == -1 then
|
||||
BikerGang.Clubhouse.ClubName.renderId = CreateNamedRenderTargetForModel(BikerGang.Clubhouse.ClubName.target, BikerGang.Clubhouse.ClubName.prop)
|
||||
end
|
||||
|
||||
if BikerGang.Clubhouse.ClubName.movieId == -1 then
|
||||
BikerGang.Clubhouse.ClubName.movieId = RequestScaleformMovie("CLUBHOUSE_NAME")
|
||||
end
|
||||
|
||||
BikerGang.Clubhouse.ClubName.stage = 1
|
||||
elseif BikerGang.Clubhouse.ClubName.stage == 1 then
|
||||
if HasScaleformMovieLoaded(BikerGang.Clubhouse.ClubName.movieId) then
|
||||
local parameters = {
|
||||
p0 = {type = "string", value = name},
|
||||
p1 = {type = "int", value = color},
|
||||
p2 = {type = "int", value = font}
|
||||
}
|
||||
|
||||
SetupScaleform(BikerGang.Clubhouse.ClubName.movieId, "SET_CLUBHOUSE_NAME", parameters)
|
||||
|
||||
BikerGang.Clubhouse.ClubName.stage = 2
|
||||
else
|
||||
BikerGang.Clubhouse.ClubName.movieId = RequestScaleformMovie("CLUBHOUSE_NAME")
|
||||
end
|
||||
elseif BikerGang.Clubhouse.ClubName.stage == 2 then
|
||||
SetTextRenderId(BikerGang.Clubhouse.ClubName.renderId)
|
||||
SetScriptGfxDrawOrder(4)
|
||||
SetScriptGfxDrawBehindPausemenu(true)
|
||||
SetScriptGfxAlign(73, 73)
|
||||
DrawScaleformMovie(BikerGang.Clubhouse.ClubName.movieId, 0.0975, 0.105, 0.235, 0.35, 255, 255, 255, 255, 0)
|
||||
SetTextRenderId(GetDefaultScriptRendertargetRenderId())
|
||||
ResetScriptGfxAlign()
|
||||
end
|
||||
end
|
||||
|
||||
function DrawEmblem(texturesDict, rotation)
|
||||
if BikerGang.Clubhouse.Emblem.stage == 0 then
|
||||
if BikerGang.Clubhouse.Emblem.renderId == -1 then
|
||||
BikerGang.Clubhouse.Emblem.renderId = CreateNamedRenderTargetForModel(BikerGang.Clubhouse.Emblem.target, BikerGang.Clubhouse.Emblem.prop)
|
||||
end
|
||||
|
||||
local IsTextureDictLoaded = LoadStreamedTextureDict(texturesDict)
|
||||
|
||||
if not IsTextureDictLoaded then
|
||||
Citizen.Trace("ERROR: DrawEmblem - Textures dictionnary cannot be loaded.")
|
||||
end
|
||||
|
||||
BikerGang.Clubhouse.Emblem.stage = 1
|
||||
elseif BikerGang.Clubhouse.Emblem.stage == 1 then
|
||||
BikerGang.Clubhouse.Emblem.renderId = CreateNamedRenderTargetForModel(BikerGang.Clubhouse.Emblem.target, BikerGang.Clubhouse.Emblem.prop)
|
||||
BikerGang.Clubhouse.Emblem.stage = 2
|
||||
elseif BikerGang.Clubhouse.Emblem.stage == 2 then
|
||||
SetTextRenderId(BikerGang.Clubhouse.Emblem.renderId)
|
||||
SetScriptGfxAlign(73, 73)
|
||||
SetScriptGfxDrawOrder(4)
|
||||
SetScriptGfxDrawBehindPausemenu(true)
|
||||
DrawInteractiveSprite(texturesDict, texturesDict, 0.5, 0.5, 1.0, 1.0, rotation, 255, 255, 255, 255);
|
||||
ResetScriptGfxAlign()
|
||||
SetTextRenderId(GetDefaultScriptRendertargetRenderId())
|
||||
end
|
||||
end
|
||||
|
||||
function DrawMissions()
|
||||
if BikerGang.Clubhouse.MissionsWall.stage == 0 then
|
||||
if BikerGang.Clubhouse.MissionsWall.renderId == -1 then
|
||||
BikerGang.Clubhouse.MissionsWall.renderId = CreateNamedRenderTargetForModel(BikerGang.Clubhouse.MissionsWall.target, BikerGang.Clubhouse.MissionsWall.prop)
|
||||
end
|
||||
|
||||
BikerGang.Clubhouse.MissionsWall.stage = 1
|
||||
elseif BikerGang.Clubhouse.MissionsWall.stage == 1 then
|
||||
if HasScaleformMovieLoaded(BikerGang.Clubhouse.MissionsWall.movieId) then
|
||||
BikerGang.Clubhouse.MissionsWall.stage = 2
|
||||
else
|
||||
BikerGang.Clubhouse.MissionsWall.movieId = RequestScaleformMovie("BIKER_MISSION_WALL")
|
||||
end
|
||||
elseif BikerGang.Clubhouse.MissionsWall.stage == 2 then
|
||||
SetTextRenderId(BikerGang.Clubhouse.MissionsWall.renderId)
|
||||
SetScriptGfxDrawOrder(4)
|
||||
SetScriptGfxDrawBehindPausemenu(false)
|
||||
DrawScaleformMovie(BikerGang.Clubhouse.MissionsWall.movieId, 0.5, 0.5, 1.0, 1.0, 255, 255, 255, 255, 0)
|
||||
SetTextRenderId(GetDefaultScriptRendertargetRenderId())
|
||||
SetScaleformFitRendertarget(BikerGang.Clubhouse.MissionsWall.movieId, true)
|
||||
end
|
||||
end
|
||||
|
||||
function DrawMember(member)
|
||||
if member.stage == 0 then
|
||||
member.stage = 1
|
||||
elseif member.stage == 1 then
|
||||
member.renderId = CreateNamedRenderTargetForModel(member.target, member.prop)
|
||||
member.stage = 2
|
||||
elseif member.stage == 2 then
|
||||
if HasStreamedTextureDictLoaded(member.textureDict) then
|
||||
SetTextRenderId(member.renderId)
|
||||
SetScriptGfxAlign(73, 73)
|
||||
DrawInteractiveSprite(member.textureDict, member.textureDict, 0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255)
|
||||
ResetScriptGfxAlign()
|
||||
SetTextRenderId(GetDefaultScriptRendertargetRenderId())
|
||||
end
|
||||
end
|
||||
end
|
87
resources/[standalone]/bob74_ipl/dlc_bikers/meth.lua
Normal file
87
resources/[standalone]/bob74_ipl/dlc_bikers/meth.lua
Normal file
@ -0,0 +1,87 @@
|
||||
-- Meth lab: 1009.5, -3196.6, -38.99682
|
||||
exports('GetBikerMethLabObject', function()
|
||||
return BikerMethLab
|
||||
end)
|
||||
|
||||
BikerMethLab = {
|
||||
interiorId = 247041,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "bkr_biker_interior_placement_interior_2_biker_dlc_int_ware01_milo",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(BikerMethLab.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(BikerMethLab.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Style = {
|
||||
none = "",
|
||||
empty = "meth_lab_empty",
|
||||
basic = {
|
||||
"meth_lab_basic",
|
||||
"meth_lab_setup"
|
||||
},
|
||||
upgrade = {
|
||||
"meth_lab_upgrade",
|
||||
"meth_lab_setup"
|
||||
},
|
||||
|
||||
Set = function(style, refresh)
|
||||
BikerMethLab.Style.Clear(false)
|
||||
|
||||
if style ~= "" then
|
||||
SetIplPropState(BikerMethLab.interiorId, style, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerMethLab.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerMethLab.interiorId, {
|
||||
BikerMethLab.Style.empty,
|
||||
BikerMethLab.Style.basic,
|
||||
BikerMethLab.Style.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Security = {
|
||||
none = "",
|
||||
upgrade = "meth_lab_security_high",
|
||||
|
||||
Set = function(security, refresh)
|
||||
BikerMethLab.Security.Clear(false)
|
||||
|
||||
if security ~= "" then
|
||||
SetIplPropState(BikerMethLab.interiorId, security, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(BikerMethLab.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerMethLab.interiorId, BikerMethLab.Security.upgrade, false, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
production = "meth_lab_production", -- Products
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(BikerMethLab.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
BikerMethLab.Ipl.Interior.Load()
|
||||
BikerMethLab.Style.Set(BikerMethLab.Style.empty)
|
||||
BikerMethLab.Security.Set(BikerMethLab.Security.none)
|
||||
BikerMethLab.Details.Enable(BikerMethLab.Details.production, false)
|
||||
|
||||
RefreshInterior(BikerMethLab.interiorId)
|
||||
end
|
||||
}
|
549
resources/[standalone]/bob74_ipl/dlc_bikers/weed.lua
Normal file
549
resources/[standalone]/bob74_ipl/dlc_bikers/weed.lua
Normal file
@ -0,0 +1,549 @@
|
||||
-- Weed farm: 1051.491, -3196.536, -39.14842
|
||||
exports('GetBikerWeedFarmObject', function()
|
||||
return BikerWeedFarm
|
||||
end)
|
||||
|
||||
BikerWeedFarm = {
|
||||
interiorId = 247297,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "bkr_biker_interior_placement_interior_3_biker_dlc_int_ware02_milo",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(BikerWeedFarm.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(BikerWeedFarm.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
},
|
||||
Style = {
|
||||
basic = "weed_standard_equip",
|
||||
upgrade = "weed_upgrade_equip",
|
||||
|
||||
Set = function(style, refresh)
|
||||
BikerWeedFarm.Style.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Style.basic,
|
||||
BikerWeedFarm.Style.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Security = {
|
||||
basic = "weed_low_security",
|
||||
upgrade = "weed_security_upgrade",
|
||||
|
||||
Set = function(security, refresh)
|
||||
BikerWeedFarm.Security.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, security, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Security.basic,
|
||||
BikerWeedFarm.Security.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Plant1 = {
|
||||
Stage = {
|
||||
small = "weed_growtha_stage1",
|
||||
medium = "weed_growtha_stage2",
|
||||
full = "weed_growtha_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant1.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant1.Stage.small,
|
||||
BikerWeedFarm.Plant1.Stage.medium,
|
||||
BikerWeedFarm.Plant1.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growtha_stage23_standard",
|
||||
upgrade = "light_growtha_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant1.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant1.Light.basic,
|
||||
BikerWeedFarm.Plant1.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hosea", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant1.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant1.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant1.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant1.Stage.Clear()
|
||||
BikerWeedFarm.Plant1.Light.Clear()
|
||||
BikerWeedFarm.Plant1.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Plant2 = {
|
||||
Stage = {
|
||||
small = "weed_growthb_stage1",
|
||||
medium = "weed_growthb_stage2",
|
||||
full = "weed_growthb_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant2.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant2.Stage.small,
|
||||
BikerWeedFarm.Plant2.Stage.medium,
|
||||
BikerWeedFarm.Plant2.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growthb_stage23_standard",
|
||||
upgrade = "light_growthb_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant2.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant2.Light.basic,
|
||||
BikerWeedFarm.Plant2.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hoseb", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant2.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant2.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant2.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant2.Stage.Clear()
|
||||
BikerWeedFarm.Plant2.Light.Clear()
|
||||
BikerWeedFarm.Plant2.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Plant3 = {
|
||||
Stage = {
|
||||
small = "weed_growthc_stage1",
|
||||
medium = "weed_growthc_stage2",
|
||||
full = "weed_growthc_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant3.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant3.Stage.small,
|
||||
BikerWeedFarm.Plant3.Stage.medium,
|
||||
BikerWeedFarm.Plant3.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growthc_stage23_standard",
|
||||
upgrade = "light_growthc_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant3.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant3.Light.basic,
|
||||
BikerWeedFarm.Plant3.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hosec", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant3.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant3.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant3.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant3.Stage.Clear()
|
||||
BikerWeedFarm.Plant3.Light.Clear()
|
||||
BikerWeedFarm.Plant3.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Plant4 = {
|
||||
Stage = {
|
||||
small = "weed_growthd_stage1",
|
||||
medium = "weed_growthd_stage2",
|
||||
full = "weed_growthd_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant4.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant4.Stage.small,
|
||||
BikerWeedFarm.Plant4.Stage.medium,
|
||||
BikerWeedFarm.Plant4.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growthd_stage23_standard",
|
||||
upgrade = "light_growthd_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant4.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant4.Light.basic,
|
||||
BikerWeedFarm.Plant4.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hosed", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant4.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant4.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant4.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant4.Stage.Clear()
|
||||
BikerWeedFarm.Plant4.Light.Clear()
|
||||
BikerWeedFarm.Plant4.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Plant5 = {
|
||||
Stage = {
|
||||
small = "weed_growthe_stage1",
|
||||
medium = "weed_growthe_stage2",
|
||||
full = "weed_growthe_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant5.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant5.Stage.small,
|
||||
BikerWeedFarm.Plant5.Stage.medium,
|
||||
BikerWeedFarm.Plant5.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growthe_stage23_standard",
|
||||
upgrade = "light_growthe_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant5.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant5.Light.basic,
|
||||
BikerWeedFarm.Plant5.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hosee", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant5.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant5.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant5.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant5.Stage.Clear()
|
||||
BikerWeedFarm.Plant5.Light.Clear()
|
||||
BikerWeedFarm.Plant5.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Plant6 = {
|
||||
Stage = {
|
||||
small = "weed_growthf_stage1",
|
||||
medium = "weed_growthf_stage2",
|
||||
full = "weed_growthf_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant6.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant6.Stage.small,
|
||||
BikerWeedFarm.Plant6.Stage.medium,
|
||||
BikerWeedFarm.Plant6.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growthf_stage23_standard",
|
||||
upgrade = "light_growthf_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant6.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant6.Light.basic,
|
||||
BikerWeedFarm.Plant6.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hosef", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant6.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant6.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant6.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant6.Stage.Clear()
|
||||
BikerWeedFarm.Plant6.Light.Clear()
|
||||
BikerWeedFarm.Plant6.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Plant7 = {
|
||||
Stage = {
|
||||
small = "weed_growthg_stage1",
|
||||
medium = "weed_growthg_stage2",
|
||||
full = "weed_growthg_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant7.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant7.Stage.small,
|
||||
BikerWeedFarm.Plant7.Stage.medium,
|
||||
BikerWeedFarm.Plant7.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growthg_stage23_standard",
|
||||
upgrade = "light_growthg_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant7.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant7.Light.basic,
|
||||
BikerWeedFarm.Plant7.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hoseg", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant7.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant7.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant7.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant7.Stage.Clear()
|
||||
BikerWeedFarm.Plant7.Light.Clear()
|
||||
BikerWeedFarm.Plant7.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Plant8 = {
|
||||
Stage = {
|
||||
small = "weed_growthh_stage1",
|
||||
medium = "weed_growthh_stage2",
|
||||
full = "weed_growthh_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant8.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant8.Stage.small,
|
||||
BikerWeedFarm.Plant8.Stage.medium,
|
||||
BikerWeedFarm.Plant8.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growthh_stage23_standard",
|
||||
upgrade = "light_growthh_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant8.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant8.Light.basic,
|
||||
BikerWeedFarm.Plant8.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hoseh", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant8.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant8.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant8.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant8.Stage.Clear()
|
||||
BikerWeedFarm.Plant8.Light.Clear()
|
||||
BikerWeedFarm.Plant8.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Plant9 = {
|
||||
Stage = {
|
||||
small = "weed_growthi_stage1",
|
||||
medium = "weed_growthi_stage2",
|
||||
full = "weed_growthi_stage3",
|
||||
|
||||
Set = function(stage, refresh)
|
||||
BikerWeedFarm.Plant9.Stage.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, stage, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant9.Stage.small,
|
||||
BikerWeedFarm.Plant9.Stage.medium,
|
||||
BikerWeedFarm.Plant9.Stage.full
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Light = {
|
||||
basic = "light_growthi_stage23_standard",
|
||||
upgrade = "light_growthi_stage23_upgrade",
|
||||
|
||||
Set = function(light, refresh)
|
||||
BikerWeedFarm.Plant9.Light.Clear(false)
|
||||
|
||||
SetIplPropState(BikerWeedFarm.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, {
|
||||
BikerWeedFarm.Plant9.Light.basic,
|
||||
BikerWeedFarm.Plant9.Light.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Hose = {
|
||||
Enable = function(state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, "weed_hosei", state, refresh)
|
||||
end
|
||||
},
|
||||
Set = function(stage, upgrade, refresh)
|
||||
BikerWeedFarm.Plant9.Stage.Set(stage, false)
|
||||
BikerWeedFarm.Plant9.Light.Set(upgrade, false)
|
||||
BikerWeedFarm.Plant9.Hose.Enable(true, true)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
BikerWeedFarm.Plant9.Stage.Clear()
|
||||
BikerWeedFarm.Plant9.Light.Clear()
|
||||
BikerWeedFarm.Plant9.Hose.Enable(false, true)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
production = "weed_production", -- Weed on the tables
|
||||
fans = "weed_set_up", -- Fans + mold buckets
|
||||
drying = "weed_drying", -- Drying weed hooked to the ceiling
|
||||
chairs = "weed_chairs", -- Chairs at the tables
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(BikerWeedFarm.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
BikerWeedFarm.Ipl.Interior.Load()
|
||||
BikerWeedFarm.Style.Set(BikerWeedFarm.Style.upgrade)
|
||||
BikerWeedFarm.Security.Set(BikerWeedFarm.Security.basic)
|
||||
BikerWeedFarm.Details.Enable(BikerWeedFarm.Details.drying, false)
|
||||
BikerWeedFarm.Details.Enable(BikerWeedFarm.Details.chairs, false)
|
||||
BikerWeedFarm.Details.Enable(BikerWeedFarm.Details.production, false)
|
||||
|
||||
BikerWeedFarm.Details.Enable({
|
||||
BikerWeedFarm.Details.production,
|
||||
BikerWeedFarm.Details.chairs,
|
||||
BikerWeedFarm.Details.drying
|
||||
}, true)
|
||||
|
||||
BikerWeedFarm.Plant1.Set(BikerWeedFarm.Plant1.Stage.medium, BikerWeedFarm.Plant1.Light.basic)
|
||||
BikerWeedFarm.Plant2.Set(BikerWeedFarm.Plant2.Stage.full, BikerWeedFarm.Plant2.Light.basic)
|
||||
BikerWeedFarm.Plant3.Set(BikerWeedFarm.Plant3.Stage.medium, BikerWeedFarm.Plant3.Light.basic)
|
||||
BikerWeedFarm.Plant4.Set(BikerWeedFarm.Plant4.Stage.full, BikerWeedFarm.Plant4.Light.basic)
|
||||
BikerWeedFarm.Plant5.Set(BikerWeedFarm.Plant5.Stage.medium, BikerWeedFarm.Plant5.Light.basic)
|
||||
BikerWeedFarm.Plant6.Set(BikerWeedFarm.Plant6.Stage.full, BikerWeedFarm.Plant6.Light.basic)
|
||||
BikerWeedFarm.Plant7.Set(BikerWeedFarm.Plant7.Stage.medium, BikerWeedFarm.Plant7.Light.basic)
|
||||
BikerWeedFarm.Plant8.Set(BikerWeedFarm.Plant8.Stage.full, BikerWeedFarm.Plant8.Light.basic)
|
||||
BikerWeedFarm.Plant9.Set(BikerWeedFarm.Plant9.Stage.full, BikerWeedFarm.Plant9.Light.basic)
|
||||
|
||||
RefreshInterior(BikerWeedFarm.interiorId)
|
||||
end
|
||||
}
|
70
resources/[standalone]/bob74_ipl/dlc_casino/casino.lua
Normal file
70
resources/[standalone]/bob74_ipl/dlc_casino/casino.lua
Normal file
@ -0,0 +1,70 @@
|
||||
exports('GetDiamondCasinoObject', function()
|
||||
return DiamondCasino
|
||||
end)
|
||||
|
||||
DiamondCasino = {
|
||||
Ipl = {
|
||||
Building = {
|
||||
ipl = {
|
||||
"hei_dlc_windows_casino",
|
||||
"hei_dlc_casino_aircon",
|
||||
"vw_dlc_casino_door",
|
||||
"hei_dlc_casino_door"
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(DiamondCasino.Ipl.Building.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(DiamondCasino.Ipl.Building.ipl, false)
|
||||
end
|
||||
},
|
||||
Main = {
|
||||
ipl = "vw_casino_main",
|
||||
|
||||
-- Normal Version: 1110.20, 216.60 -49.45
|
||||
-- Heist Version: 2490.67, -280.40, -58.71
|
||||
|
||||
Load = function()
|
||||
EnableIpl(DiamondCasino.Ipl.Main.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(DiamondCasino.Ipl.Main.ipl, false)
|
||||
end
|
||||
},
|
||||
Garage = {
|
||||
ipl = "vw_casino_garage",
|
||||
|
||||
-- Loading Bay Garage: 2536.276, -278.98, -64.722
|
||||
-- Vault Lobby: 2483.151, -278.58, -70.694
|
||||
-- Vault: 2516.765, -238.056, -70.737
|
||||
|
||||
Load = function()
|
||||
EnableIpl(DiamondCasino.Ipl.Garage.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(DiamondCasino.Ipl.Garage.ipl, false)
|
||||
end
|
||||
},
|
||||
Carpark = {
|
||||
ipl = "vw_casino_carpark",
|
||||
|
||||
-- Carpark Garage: 1380.000 200.000 -50.000
|
||||
-- VIP Carpark Garage: 1295.000 230.000 -50.000
|
||||
|
||||
Load = function()
|
||||
EnableIpl(DiamondCasino.Ipl.Carpark.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(DiamondCasino.Ipl.Carpark.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
DiamondCasino.Ipl.Building.Load()
|
||||
DiamondCasino.Ipl.Main.Load()
|
||||
DiamondCasino.Ipl.Carpark.Load()
|
||||
DiamondCasino.Ipl.Garage.Load()
|
||||
end
|
||||
}
|
335
resources/[standalone]/bob74_ipl/dlc_casino/penthouse.lua
Normal file
335
resources/[standalone]/bob74_ipl/dlc_casino/penthouse.lua
Normal file
@ -0,0 +1,335 @@
|
||||
exports('GetDiamondPenthouseObject', function()
|
||||
return DiamondPenthouse
|
||||
end)
|
||||
|
||||
-- Penthouse: 976.636 70.295 115.164
|
||||
|
||||
DiamondPenthouse = {
|
||||
interiorId = 274689,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "vw_casino_penthouse",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(DiamondPenthouse.Ipl.Interior.ipl, true)
|
||||
SetIplPropState(DiamondPenthouse.interiorId, "Set_Pent_Tint_Shell", true, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(DiamondPenthouse.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Colors = {
|
||||
default = 0,
|
||||
sharp = 1,
|
||||
vibrant = 2,
|
||||
timeless = 3
|
||||
},
|
||||
Interior = {
|
||||
Walls = {
|
||||
SetColor = function(color, refresh)
|
||||
SetInteriorEntitySetColor(DiamondPenthouse.interiorId, "Set_Pent_Tint_Shell", color)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(DiamondPenthouse.interiorId)
|
||||
end
|
||||
end
|
||||
},
|
||||
Pattern = {
|
||||
pattern01 = "Set_Pent_Pattern_01",
|
||||
pattern02 = "Set_Pent_Pattern_02",
|
||||
pattern03 = "Set_Pent_Pattern_03",
|
||||
pattern04 = "Set_Pent_Pattern_04",
|
||||
pattern05 = "Set_Pent_Pattern_05",
|
||||
pattern06 = "Set_Pent_Pattern_06",
|
||||
pattern07 = "Set_Pent_Pattern_07",
|
||||
pattern08 = "Set_Pent_Pattern_08",
|
||||
pattern09 = "Set_Pent_Pattern_09",
|
||||
|
||||
Set = function(pattern, refresh)
|
||||
DiamondPenthouse.Interior.Pattern.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, pattern, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Pattern) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end,
|
||||
SetColor = function(pattern, color, refresh)
|
||||
SetInteriorEntitySetColor(DiamondPenthouse.interiorId, pattern, color)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(DiamondPenthouse.interiorId)
|
||||
end
|
||||
end
|
||||
},
|
||||
SpaBar = {
|
||||
open = "Set_Pent_Spa_Bar_Open",
|
||||
closed = "Set_Pent_Spa_Bar_Closed",
|
||||
|
||||
Set = function(state, refresh)
|
||||
DiamondPenthouse.Interior.SpaBar.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, state, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.SpaBar) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
MediaBar = {
|
||||
open = "Set_Pent_Media_Bar_Open",
|
||||
closed = "Set_Pent_Media_Bar_Closed",
|
||||
|
||||
Set = function(state, refresh)
|
||||
DiamondPenthouse.Interior.MediaBar.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, state, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.MediaBar) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Dealer = {
|
||||
open = "Set_Pent_Dealer",
|
||||
closed = "Set_Pent_NoDealer",
|
||||
|
||||
Set = function(state, refresh)
|
||||
DiamondPenthouse.Interior.Dealer.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, state, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Dealer) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Arcade = {
|
||||
none = "",
|
||||
retro = "Set_Pent_Arcade_Retro",
|
||||
modern = "Set_Pent_Arcade_Modern",
|
||||
|
||||
Set = function(arcade, refresh)
|
||||
DiamondPenthouse.Interior.Arcade.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, arcade, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Arcade) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Clutter = {
|
||||
bar = "Set_Pent_Bar_Clutter",
|
||||
clutter01 = "Set_Pent_Clutter_01",
|
||||
clutter02 = "Set_Pent_Clutter_02",
|
||||
clutter03 = "Set_Pent_Clutter_03",
|
||||
|
||||
Set = function(clutter, refresh)
|
||||
DiamondPenthouse.Interior.Clutter.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, clutter, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Clutter) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
BarLight = {
|
||||
none = "",
|
||||
light0 = "set_pent_bar_light_0",
|
||||
light1 = "set_pent_bar_light_01",
|
||||
light2 = "set_pent_bar_light_02",
|
||||
|
||||
Set = function(light, refresh)
|
||||
DiamondPenthouse.Interior.BarLight.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, light, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.BarLight) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
BarParty = {
|
||||
none = "",
|
||||
party0 = "set_pent_bar_party_0",
|
||||
party1 = "set_pent_bar_party_1",
|
||||
party2 = "set_pent_bar_party_2",
|
||||
partyafter = "set_pent_bar_party_after",
|
||||
|
||||
Set = function(party, refresh)
|
||||
DiamondPenthouse.Interior.BarParty.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, party, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.BarParty) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Blockers = {
|
||||
Guest = {
|
||||
enabled = "Set_Pent_GUEST_BLOCKER",
|
||||
disabled = "",
|
||||
|
||||
Set = function(blocker, refresh)
|
||||
DiamondPenthouse.Interior.Blockers.Guest.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, blocker, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Blockers.Guest) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Lounge = {
|
||||
enabled = "Set_Pent_LOUNGE_BLOCKER",
|
||||
disabled = "",
|
||||
|
||||
Set = function(blocker, refresh)
|
||||
DiamondPenthouse.Interior.Blockers.Lounge.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, blocker, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Blockers.Lounge) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Office = {
|
||||
enabled = "Set_Pent_OFFICE_BLOCKER",
|
||||
disabled = "",
|
||||
|
||||
Set = function(blocker, refresh)
|
||||
DiamondPenthouse.Interior.Blockers.Office.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, blocker, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Blockers.Office) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Cinema = {
|
||||
enabled = "Set_Pent_CINE_BLOCKER",
|
||||
disabled = "",
|
||||
|
||||
Set = function(blocker, refresh)
|
||||
DiamondPenthouse.Interior.Blockers.Cinema.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, blocker, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Blockers.Cinema) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Spa = {
|
||||
enabled = "Set_Pent_SPA_BLOCKER",
|
||||
disabled = "",
|
||||
|
||||
Set = function(blocker, refresh)
|
||||
DiamondPenthouse.Interior.Blockers.Spa.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, blocker, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Blockers.Spa) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
Bar = {
|
||||
enabled = "Set_Pent_BAR_BLOCKER",
|
||||
disabled = "",
|
||||
|
||||
Set = function(blocker, refresh)
|
||||
DiamondPenthouse.Interior.Blockers.Bar.Clear(false)
|
||||
|
||||
SetIplPropState(DiamondPenthouse.interiorId, blocker, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
for key, value in pairs(DiamondPenthouse.Interior.Blockers.Bar) do
|
||||
if type(value) == "string" then
|
||||
SetIplPropState(DiamondPenthouse.interiorId, value, false, refresh)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
EnableAllBlockers = function()
|
||||
DiamondPenthouse.Interior.Blockers.Bar.Set(DiamondPenthouse.Interior.Blockers.Bar.enabled)
|
||||
DiamondPenthouse.Interior.Blockers.Guest.Set(DiamondPenthouse.Interior.Blockers.Guest.enabled)
|
||||
DiamondPenthouse.Interior.Blockers.Spa.Set(DiamondPenthouse.Interior.Blockers.Spa.enabled)
|
||||
DiamondPenthouse.Interior.Blockers.Cinema.Set(DiamondPenthouse.Interior.Blockers.Cinema.enabled)
|
||||
DiamondPenthouse.Interior.Blockers.Lounge.Set(DiamondPenthouse.Interior.Blockers.Lounge.enabled)
|
||||
DiamondPenthouse.Interior.Blockers.Office.Set(DiamondPenthouse.Interior.Blockers.Office.enabled)
|
||||
end,
|
||||
DisableAllBlockers = function()
|
||||
DiamondPenthouse.Interior.Blockers.Bar.Set(DiamondPenthouse.Interior.Blockers.Bar.disabled)
|
||||
DiamondPenthouse.Interior.Blockers.Guest.Set(DiamondPenthouse.Interior.Blockers.Guest.disabled)
|
||||
DiamondPenthouse.Interior.Blockers.Spa.Set(DiamondPenthouse.Interior.Blockers.Spa.disabled)
|
||||
DiamondPenthouse.Interior.Blockers.Cinema.Set(DiamondPenthouse.Interior.Blockers.Cinema.disabled)
|
||||
DiamondPenthouse.Interior.Blockers.Lounge.Set(DiamondPenthouse.Interior.Blockers.Lounge.disabled)
|
||||
DiamondPenthouse.Interior.Blockers.Office.Set(DiamondPenthouse.Interior.Blockers.Office.disabled)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
local styleColor = DiamondPenthouse.Colors.timless
|
||||
local stylePattern = DiamondPenthouse.Interior.Pattern.pattern09
|
||||
|
||||
DiamondPenthouse.Ipl.Interior.Load()
|
||||
|
||||
DiamondPenthouse.Interior.Walls.SetColor(styleColor)
|
||||
DiamondPenthouse.Interior.Pattern.Set(stylePattern)
|
||||
DiamondPenthouse.Interior.Pattern.SetColor(stylePattern, styleColor)
|
||||
|
||||
DiamondPenthouse.Interior.SpaBar.Set(DiamondPenthouse.Interior.SpaBar.open)
|
||||
DiamondPenthouse.Interior.MediaBar.Set(DiamondPenthouse.Interior.MediaBar.open)
|
||||
DiamondPenthouse.Interior.Dealer.Set(DiamondPenthouse.Interior.Dealer.open)
|
||||
|
||||
RefreshInterior(DiamondPenthouse.interiorId)
|
||||
end
|
||||
}
|
421
resources/[standalone]/bob74_ipl/dlc_doomsday/facility.lua
Normal file
421
resources/[standalone]/bob74_ipl/dlc_doomsday/facility.lua
Normal file
@ -0,0 +1,421 @@
|
||||
-- DoomsdayFacility: 345.00000000 4842.00000000 -60.00000000
|
||||
exports('GetDoomsdayFacilityObject', function()
|
||||
return DoomsdayFacility
|
||||
end)
|
||||
|
||||
DoomsdayFacility = {
|
||||
interiorId = 269313,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "xm_x17dlc_int_placement_interior_33_x17dlc_int_02_milo_",
|
||||
|
||||
Load = function(color)
|
||||
EnableIpl(DoomsdayFacility.Ipl.Interior.ipl, true)
|
||||
SetIplPropState(DoomsdayFacility.interiorId, "set_int_02_shell", true, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(DoomsdayFacility.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Exterior = {
|
||||
ipl = {
|
||||
"xm_hatch_01_cutscene", -- 1286.924 2846.06 49.39426
|
||||
"xm_hatch_02_cutscene", -- 18.633 2610.834 86.0
|
||||
"xm_hatch_03_cutscene", -- 2768.574 3919.924 45.82
|
||||
"xm_hatch_04_cutscene", -- 3406.90 5504.77 26.28
|
||||
"xm_hatch_06_cutscene", -- 1.90 6832.18 15.82
|
||||
"xm_hatch_07_cutscene", -- -2231.53 2418.42 12.18
|
||||
"xm_hatch_08_cutscene", -- -6.92 3327.0 41.63
|
||||
"xm_hatch_09_cutscene", -- 2073.62 1748.77 104.51
|
||||
"xm_hatch_10_cutscene", -- 1874.35 284.34 164.31
|
||||
"xm_hatch_closed", -- Closed hatches (all)
|
||||
"xm_siloentranceclosed_x17", -- Closed silo: 598.4869 5556.846 716.7615
|
||||
"xm_bunkerentrance_door", -- Bunker entrance closed door: 2050.85 2950.0 47.75
|
||||
"xm_hatches_terrain", -- Terrain adjustments for facilities (all) + silo
|
||||
"xm_hatches_terrain_lod"
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(DoomsdayFacility.Ipl.Exterior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(DoomsdayFacility.Ipl.Exterior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Colors = {
|
||||
utility = 1,
|
||||
expertise = 2,
|
||||
altitude = 3,
|
||||
power = 4,
|
||||
authority = 5,
|
||||
influence = 6,
|
||||
order = 7,
|
||||
empire = 8,
|
||||
supremacy = 9
|
||||
},
|
||||
Walls = {
|
||||
SetColor = function(color, refresh)
|
||||
SetInteriorPropColor(DoomsdayFacility.interiorId, "set_int_02_shell", color)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(DoomsdayFacility.interiorId)
|
||||
end
|
||||
end
|
||||
},
|
||||
Decals = {
|
||||
none = "",
|
||||
style01 = "set_int_02_decal_01",
|
||||
style02 = "set_int_02_decal_02",
|
||||
style03 = "set_int_02_decal_03",
|
||||
style04 = "set_int_02_decal_04",
|
||||
style05 = "set_int_02_decal_05",
|
||||
style06 = "set_int_02_decal_06",
|
||||
style07 = "set_int_02_decal_07",
|
||||
style08 = "set_int_02_decal_08",
|
||||
style09 = "set_int_02_decal_09",
|
||||
|
||||
Set = function(decal, refresh)
|
||||
DoomsdayFacility.Decals.Clear(refresh)
|
||||
|
||||
if decal ~= "" then
|
||||
SetIplPropState(DoomsdayFacility.interiorId, decal, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(DoomsdayFacility.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(DoomsdayFacility.interiorId, {
|
||||
DoomsdayFacility.Decals.style01, DoomsdayFacility.Decals.style02, DoomsdayFacility.Decals.style03,
|
||||
DoomsdayFacility.Decals.style04, DoomsdayFacility.Decals.style05, DoomsdayFacility.Decals.style06,
|
||||
DoomsdayFacility.Decals.style07, DoomsdayFacility.Decals.style08, DoomsdayFacility.Decals.style09
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Lounge = {
|
||||
utility = "set_int_02_lounge1",
|
||||
prestige = "set_int_02_lounge2",
|
||||
premier = "set_int_02_lounge3",
|
||||
|
||||
Set = function(lounge, color, refresh)
|
||||
DoomsdayFacility.Lounge.Clear(false)
|
||||
|
||||
SetIplPropState(DoomsdayFacility.interiorId, lounge, true, refresh)
|
||||
SetInteriorPropColor(DoomsdayFacility.interiorId, lounge, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(DoomsdayFacility.interiorId, {
|
||||
DoomsdayFacility.Lounge.utility,
|
||||
DoomsdayFacility.Lounge.prestige,
|
||||
DoomsdayFacility.Lounge.premier
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Sleeping = {
|
||||
none = "set_int_02_no_sleep",
|
||||
utility = "set_int_02_sleep",
|
||||
prestige = "set_int_02_sleep2",
|
||||
premier = "set_int_02_sleep3",
|
||||
|
||||
Set = function(sleep, color, refresh)
|
||||
DoomsdayFacility.Sleeping.Clear(false)
|
||||
|
||||
SetIplPropState(DoomsdayFacility.interiorId, sleep, true, refresh)
|
||||
SetInteriorPropColor(DoomsdayFacility.interiorId, sleep, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(DoomsdayFacility.interiorId, {
|
||||
DoomsdayFacility.Sleeping.none,
|
||||
DoomsdayFacility.Sleeping.utility,
|
||||
DoomsdayFacility.Sleeping.prestige,
|
||||
DoomsdayFacility.Sleeping.premier
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Security = {
|
||||
off = "set_int_02_no_security",
|
||||
on = "set_int_02_security",
|
||||
|
||||
Set = function(security, color, refresh)
|
||||
DoomsdayFacility.Security.Clear(false)
|
||||
|
||||
SetIplPropState(DoomsdayFacility.interiorId, security, true, refresh)
|
||||
SetInteriorPropColor(DoomsdayFacility.interiorId, security, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(DoomsdayFacility.interiorId, {
|
||||
DoomsdayFacility.Security.off,
|
||||
DoomsdayFacility.Security.on
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Cannon = {
|
||||
off = "set_int_02_no_cannon",
|
||||
on = "set_int_02_cannon",
|
||||
|
||||
Set = function(cannon, color, refresh)
|
||||
DoomsdayFacility.Cannon.Clear(false)
|
||||
|
||||
SetIplPropState(DoomsdayFacility.interiorId, cannon, true, refresh)
|
||||
SetInteriorPropColor(DoomsdayFacility.interiorId, cannon, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(DoomsdayFacility.interiorId, {
|
||||
DoomsdayFacility.Cannon.off,
|
||||
DoomsdayFacility.Cannon.on
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
PrivacyGlass = {
|
||||
controlModelHash = `xm_prop_x17_tem_control_01`,
|
||||
|
||||
Bedroom = {
|
||||
Enable = function(state)
|
||||
local handle = GetClosestObjectOfType(367.99, 4827.745, -59.0, 1.0, `xm_prop_x17_l_glass_03`, false, false, false)
|
||||
|
||||
if state then
|
||||
if handle == 0 then
|
||||
local model = `xm_prop_x17_l_glass_03`
|
||||
|
||||
RequestModel(model)
|
||||
while not HasModelLoaded(model) do
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
local privacyGlass = CreateObject(model, 367.99, 4827.745, -59.0, false, false, false)
|
||||
|
||||
SetEntityAsMissionEntity(privacyGlass, true, 0)
|
||||
SetEntityCollision_2(privacyGlass, false, 0)
|
||||
SetEntityInvincible(privacyGlass, true)
|
||||
SetEntityAlpha(privacyGlass, 254, false)
|
||||
end
|
||||
else
|
||||
if handle ~= 0 then
|
||||
SetEntityAsMissionEntity(handle, false, false)
|
||||
DeleteEntity(handle)
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
Control = {
|
||||
position = vector3(372.115, 4827.504, -58.47),
|
||||
rotation = vector3(0.0, 0.0, 0.0),
|
||||
|
||||
Enable = function(state)
|
||||
local handle = GetClosestObjectOfType(DoomsdayFacility.PrivacyGlass.Bedroom.Control.position.x, DoomsdayFacility.PrivacyGlass.Bedroom.Control.position.y, DoomsdayFacility.PrivacyGlass.Bedroom.Control.position.z, 1.0, DoomsdayFacility.PrivacyGlass.controlModelHash, false, false, false)
|
||||
|
||||
if state then
|
||||
if handle == 0 then
|
||||
RequestModel(DoomsdayFacility.PrivacyGlass.controlModelHash)
|
||||
while not HasModelLoaded(DoomsdayFacility.PrivacyGlass.controlModelHash) do
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
local privacyGlass = CreateObjectNoOffset(DoomsdayFacility.PrivacyGlass.controlModelHash, DoomsdayFacility.PrivacyGlass.Bedroom.Control.position.x, DoomsdayFacility.PrivacyGlass.Bedroom.Control.position.y, DoomsdayFacility.PrivacyGlass.Bedroom.Control.position.z, true, true, false)
|
||||
|
||||
SetEntityRotation(privacyGlass, DoomsdayFacility.PrivacyGlass.Bedroom.Control.rotation.x, DoomsdayFacility.PrivacyGlass.Bedroom.Control.rotation.y, DoomsdayFacility.PrivacyGlass.Bedroom.Control.rotation.z, 2, true)
|
||||
FreezeEntityPosition(privacyGlass, true)
|
||||
SetEntityAsMissionEntity(privacyGlass, false, false)
|
||||
end
|
||||
else
|
||||
if handle ~= 0 then
|
||||
SetEntityAsMissionEntity(handle, false, false)
|
||||
DeleteEntity(handle)
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
},
|
||||
Lounge = {
|
||||
Glasses = {
|
||||
{
|
||||
modelHash = `xm_prop_x17_l_door_glass_01`,
|
||||
entityHash = `xm_prop_x17_l_door_frame_01`,
|
||||
entityPos = vector3(359.22, 4846.043, -58.85)
|
||||
},
|
||||
{
|
||||
modelHash = `xm_prop_x17_l_door_glass_01`,
|
||||
entityHash = `xm_prop_x17_l_door_frame_01`,
|
||||
entityPos = vector3(369.066, 4846.273, -58.85)
|
||||
},
|
||||
{
|
||||
modelHash = `xm_prop_x17_l_glass_01`,
|
||||
entityHash = `xm_prop_x17_l_frame_01`,
|
||||
entityPos = vector3(358.843, 4845.103, -60.0)
|
||||
},
|
||||
{
|
||||
modelHash = `xm_prop_x17_l_glass_02`,
|
||||
entityHash = `xm_prop_x17_l_frame_02`,
|
||||
entityPos = vector3(366.309, 4847.281, -60.0)
|
||||
},
|
||||
{
|
||||
modelHash = `xm_prop_x17_l_glass_03`,
|
||||
entityHash = `xm_prop_x17_l_frame_03`,
|
||||
entityPos = vector3(371.194, 4841.27, -60.0)
|
||||
}
|
||||
},
|
||||
|
||||
Enable = function(state)
|
||||
for key, glass in pairs(DoomsdayFacility.PrivacyGlass.Lounge.Glasses) do
|
||||
local handle = GetClosestObjectOfType(glass.entityPos.x, glass.entityPos.y, glass.entityPos.z, 1.0, glass.modelHash, false, false, false)
|
||||
|
||||
if state then
|
||||
if handle == 0 then
|
||||
local entityToAttach = GetClosestObjectOfType(glass.entityPos.x, glass.entityPos.y, glass.entityPos.z, 1.0, glass.entityHash, false, false, false)
|
||||
|
||||
if entityToAttach ~= 0 then
|
||||
RequestModel(glass.modelHash)
|
||||
while not HasModelLoaded(glass.modelHash) do
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
local privacyGlass = CreateObject(glass.modelHash, glass.entityPos.x, glass.entityPos.y, glass.entityPos.z, false, false, false)
|
||||
|
||||
SetEntityAsMissionEntity(privacyGlass, true, false)
|
||||
SetEntityCollision_2(privacyGlass, false, 0)
|
||||
SetEntityInvincible(privacyGlass, true)
|
||||
SetEntityAlpha(privacyGlass, 254, false)
|
||||
AttachEntityToEntity(privacyGlass, entityToAttach, -1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 2, 1)
|
||||
end
|
||||
end
|
||||
else
|
||||
if handle ~= 0 then
|
||||
SetEntityAsMissionEntity(handle, false, false)
|
||||
DeleteEntity(handle)
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
Control = {
|
||||
position = vector3(367.317, 4846.729, -58.448),
|
||||
rotation = vector3(0.0, 0.0, -16.0),
|
||||
|
||||
Enable = function(state)
|
||||
local handle = GetClosestObjectOfType(DoomsdayFacility.PrivacyGlass.Lounge.Control.position.x, DoomsdayFacility.PrivacyGlass.Lounge.Control.position.y, DoomsdayFacility.PrivacyGlass.Lounge.Control.position.z, 1.0, DoomsdayFacility.PrivacyGlass.controlModelHash, false, false, false)
|
||||
|
||||
if state then
|
||||
if handle == 0 then
|
||||
RequestModel(DoomsdayFacility.PrivacyGlass.controlModelHash)
|
||||
while not HasModelLoaded(DoomsdayFacility.PrivacyGlass.controlModelHash) do
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
local privacyGlass = CreateObjectNoOffset(DoomsdayFacility.PrivacyGlass.controlModelHash, DoomsdayFacility.PrivacyGlass.Lounge.Control.position.x, DoomsdayFacility.PrivacyGlass.Lounge.Control.position.y, DoomsdayFacility.PrivacyGlass.Lounge.Control.position.z, true, true, false)
|
||||
|
||||
SetEntityRotation(privacyGlass, DoomsdayFacility.PrivacyGlass.Lounge.Control.rotation.x, DoomsdayFacility.PrivacyGlass.Lounge.Control.rotation.y, DoomsdayFacility.PrivacyGlass.Lounge.Control.rotation.z, 2, true)
|
||||
FreezeEntityPosition(privacyGlass, true)
|
||||
SetEntityAsMissionEntity(privacyGlass, false, false)
|
||||
end
|
||||
else
|
||||
if handle ~= 0 then
|
||||
SetEntityAsMissionEntity(handle, false, false)
|
||||
DeleteEntity(handle)
|
||||
end
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
},
|
||||
Details = {
|
||||
KhanjaliParts = {
|
||||
A = "Set_Int_02_Parts_Panther1",
|
||||
B = "Set_Int_02_Parts_Panther2",
|
||||
C = "Set_Int_02_Parts_Panther3"
|
||||
},
|
||||
RiotParts = {
|
||||
A = "Set_Int_02_Parts_Riot1",
|
||||
B = "Set_Int_02_Parts_Riot2",
|
||||
C = "Set_Int_02_Parts_Riot3"
|
||||
},
|
||||
ChenoParts = {
|
||||
A = "Set_Int_02_Parts_Cheno1",
|
||||
B = "Set_Int_02_Parts_Cheno2",
|
||||
C = "Set_Int_02_Parts_Cheno3"
|
||||
},
|
||||
ThrusterParts = {
|
||||
A = "Set_Int_02_Parts_Thruster1",
|
||||
B = "Set_Int_02_Parts_Thruster2",
|
||||
C = "Set_Int_02_Parts_Thruster3"
|
||||
},
|
||||
AvengerParts = {
|
||||
A = "Set_Int_02_Parts_Avenger1",
|
||||
B = "Set_Int_02_Parts_Avenger2",
|
||||
C = "Set_Int_02_Parts_Avenger3"
|
||||
},
|
||||
Outfits = {
|
||||
paramedic = "Set_Int_02_outfit_paramedic",
|
||||
morgue = "Set_Int_02_outfit_morgue",
|
||||
serverFarm = "Set_Int_02_outfit_serverfarm",
|
||||
iaa = "Set_Int_02_outfit_iaa",
|
||||
stealAvenger = "Set_Int_02_outfit_steal_avenger",
|
||||
foundry = "Set_Int_02_outfit_foundry",
|
||||
riot = "Set_Int_02_outfit_riot_van",
|
||||
stromberg = "Set_Int_02_outfit_stromberg",
|
||||
submarine = "Set_Int_02_outfit_sub_finale",
|
||||
predator = "Set_Int_02_outfit_predator",
|
||||
khanjali = "Set_Int_02_outfit_khanjali",
|
||||
volatol = "Set_Int_02_outfit_volatol"
|
||||
},
|
||||
Trophies = {
|
||||
eagle = "set_int_02_trophy1",
|
||||
iaa = "set_int_02_trophy_iaa",
|
||||
submarine = "set_int_02_trophy_sub",
|
||||
|
||||
SetColor = function(color, refresh)
|
||||
SetInteriorPropColor(DoomsdayFacility.interiorId, "set_int_02_trophy_sub", color)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(DoomsdayFacility.interiorId)
|
||||
end
|
||||
end
|
||||
},
|
||||
Clutter = {
|
||||
A = "set_int_02_clutter1",
|
||||
B = "set_int_02_clutter2",
|
||||
C = "set_int_02_clutter3",
|
||||
D = "set_int_02_clutter4",
|
||||
E = "set_int_02_clutter5"
|
||||
},
|
||||
crewEmblem = "set_int_02_crewemblem",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(DoomsdayFacility.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
DoomsdayFacility.Ipl.Exterior.Load()
|
||||
DoomsdayFacility.Ipl.Interior.Load()
|
||||
|
||||
DoomsdayFacility.Walls.SetColor(DoomsdayFacility.Colors.utility)
|
||||
DoomsdayFacility.Decals.Set(DoomsdayFacility.Decals.style01)
|
||||
DoomsdayFacility.Lounge.Set(DoomsdayFacility.Lounge.premier, DoomsdayFacility.Colors.utility)
|
||||
DoomsdayFacility.Sleeping.Set(DoomsdayFacility.Sleeping.premier, DoomsdayFacility.Colors.utility)
|
||||
DoomsdayFacility.Security.Set(DoomsdayFacility.Security.on, DoomsdayFacility.Colors.utility)
|
||||
DoomsdayFacility.Cannon.Set(DoomsdayFacility.Cannon.on, DoomsdayFacility.Colors.utility)
|
||||
|
||||
-- Privacy glass remote
|
||||
DoomsdayFacility.PrivacyGlass.Bedroom.Control.Enable(true)
|
||||
DoomsdayFacility.PrivacyGlass.Lounge.Control.Enable(true)
|
||||
|
||||
DoomsdayFacility.Details.Enable(DoomsdayFacility.Details.crewEmblem, false)
|
||||
|
||||
DoomsdayFacility.Details.Enable(DoomsdayFacility.Details.AvengerParts, true)
|
||||
|
||||
DoomsdayFacility.Details.Enable(DoomsdayFacility.Details.Outfits, true)
|
||||
|
||||
DoomsdayFacility.Details.Enable(DoomsdayFacility.Details.Trophies, true)
|
||||
DoomsdayFacility.Details.Trophies.SetColor(DoomsdayFacility.Colors.utility)
|
||||
|
||||
DoomsdayFacility.Details.Enable({
|
||||
DoomsdayFacility.Details.Clutter.A,
|
||||
DoomsdayFacility.Details.Clutter.B
|
||||
}, true)
|
||||
|
||||
RefreshInterior(DoomsdayFacility.interiorId)
|
||||
end
|
||||
}
|
136
resources/[standalone]/bob74_ipl/dlc_executive/apartment1.lua
Normal file
136
resources/[standalone]/bob74_ipl/dlc_executive/apartment1.lua
Normal file
@ -0,0 +1,136 @@
|
||||
-- Apartment 1: -787.78050000 334.92320000 215.83840000
|
||||
exports('GetExecApartment1Object', function()
|
||||
return ExecApartment1
|
||||
end)
|
||||
|
||||
ExecApartment1 = {
|
||||
currentInteriorId = -1,
|
||||
|
||||
Style = {
|
||||
Theme = {
|
||||
modern = {
|
||||
interiorId = 227329,
|
||||
ipl = "apa_v_mp_h_01_a"
|
||||
},
|
||||
moody = {
|
||||
interiorId = 228097,
|
||||
ipl = "apa_v_mp_h_02_a"
|
||||
},
|
||||
vibrant = {
|
||||
interiorId = 228865,
|
||||
ipl = "apa_v_mp_h_03_a"
|
||||
},
|
||||
sharp = {
|
||||
interiorId = 229633,
|
||||
ipl = "apa_v_mp_h_04_a"
|
||||
},
|
||||
monochrome = {
|
||||
interiorId = 230401,
|
||||
ipl = "apa_v_mp_h_05_a"
|
||||
},
|
||||
seductive = {
|
||||
interiorId = 231169,
|
||||
ipl = "apa_v_mp_h_06_a"
|
||||
},
|
||||
regal = {
|
||||
interiorId = 231937,
|
||||
ipl = "apa_v_mp_h_07_a"
|
||||
},
|
||||
aqua = {
|
||||
interiorId = 232705,
|
||||
ipl = "apa_v_mp_h_08_a"
|
||||
}
|
||||
},
|
||||
|
||||
Set = function(style, refresh)
|
||||
if type(style) == "table" then
|
||||
ExecApartment1.Style.Clear()
|
||||
ExecApartment1.currentInteriorId = style.interiorId
|
||||
|
||||
EnableIpl(style.ipl, true)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(style.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for key, value in pairs(ExecApartment1.Style.Theme) do
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Strip_A",
|
||||
"Apart_Hi_Strip_B",
|
||||
"Apart_Hi_Strip_C"
|
||||
}, false)
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Booze_A",
|
||||
"Apart_Hi_Booze_B",
|
||||
"Apart_Hi_Booze_C"
|
||||
}, false)
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Smokes_A",
|
||||
"Apart_Hi_Smokes_B",
|
||||
"Apart_Hi_Smokes_C"
|
||||
}, false, true)
|
||||
EnableIpl(value.ipl, false)
|
||||
end
|
||||
end
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(ExecApartment1.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(ExecApartment1.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
none = "",
|
||||
stage1 = "Apart_Hi_Smokes_A",
|
||||
stage2 = "Apart_Hi_Smokes_B",
|
||||
stage3 = "Apart_Hi_Smokes_C",
|
||||
|
||||
Set = function(smoke, refresh)
|
||||
ExecApartment1.Smoke.Clear(false)
|
||||
|
||||
if smoke ~= nil then
|
||||
SetIplPropState(ExecApartment1.currentInteriorId, smoke, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(ExecApartment1.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(ExecApartment1.currentInteriorId, {
|
||||
ExecApartment1.Smoke.stage1,
|
||||
ExecApartment1.Smoke.stage2,
|
||||
ExecApartment1.Smoke.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ExecApartment1.Style.Set(ExecApartment1.Style.Theme.sharp, true)
|
||||
ExecApartment1.Strip.Enable({
|
||||
ExecApartment1.Strip.A,
|
||||
ExecApartment1.Strip.B,
|
||||
ExecApartment1.Strip.C
|
||||
}, true)
|
||||
ExecApartment1.Booze.Enable({
|
||||
ExecApartment1.Booze.A,
|
||||
ExecApartment1.Booze.B,
|
||||
ExecApartment1.Booze.C
|
||||
}, true)
|
||||
ExecApartment1.Smoke.Set(ExecApartment1.Smoke.stage1, true)
|
||||
end
|
||||
}
|
135
resources/[standalone]/bob74_ipl/dlc_executive/apartment2.lua
Normal file
135
resources/[standalone]/bob74_ipl/dlc_executive/apartment2.lua
Normal file
@ -0,0 +1,135 @@
|
||||
-- Apartment 2: -773.22580000 322.82520000 194.88620000
|
||||
exports('GetExecApartment2Object', function()
|
||||
return ExecApartment2
|
||||
end)
|
||||
|
||||
ExecApartment2 = {
|
||||
currentInteriorId = -1,
|
||||
|
||||
Style = {
|
||||
Theme = {
|
||||
modern = {
|
||||
interiorId = 227585,
|
||||
ipl = "apa_v_mp_h_01_b"
|
||||
},
|
||||
moody = {
|
||||
interiorId = 228353,
|
||||
ipl = "apa_v_mp_h_02_b"
|
||||
},
|
||||
vibrant = {
|
||||
interiorId = 229121,
|
||||
ipl = "apa_v_mp_h_03_b"
|
||||
},
|
||||
sharp = {
|
||||
interiorId = 229889,
|
||||
ipl = "apa_v_mp_h_04_b"
|
||||
},
|
||||
monochrome = {
|
||||
interiorId = 230657,
|
||||
ipl = "apa_v_mp_h_05_b"
|
||||
},
|
||||
seductive = {
|
||||
interiorId = 231425,
|
||||
ipl = "apa_v_mp_h_06_b"
|
||||
},
|
||||
regal = {
|
||||
interiorId = 232193,
|
||||
ipl = "apa_v_mp_h_07_b"
|
||||
},
|
||||
aqua = {
|
||||
interiorId = 232961,
|
||||
ipl = "apa_v_mp_h_08_b"
|
||||
}
|
||||
},
|
||||
|
||||
Set = function(style, refresh)
|
||||
if type(style) == "table" then
|
||||
ExecApartment2.Style.Clear()
|
||||
ExecApartment2.currentInteriorId = style.interiorId
|
||||
|
||||
EnableIpl(style.ipl, true)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(style.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for key, value in pairs(ExecApartment2.Style.Theme) do
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Strip_A",
|
||||
"Apart_Hi_Strip_B",
|
||||
"Apart_Hi_Strip_C"}, false)
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Booze_A",
|
||||
"Apart_Hi_Booze_B",
|
||||
"Apart_Hi_Booze_C"
|
||||
}, false)
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Smokes_A",
|
||||
"Apart_Hi_Smokes_B",
|
||||
"Apart_Hi_Smokes_C"
|
||||
}, false, true)
|
||||
EnableIpl(value.ipl, false)
|
||||
end
|
||||
end
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(ExecApartment2.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(ExecApartment2.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
none = "",
|
||||
stage1 = "Apart_Hi_Smokes_A",
|
||||
stage2 = "Apart_Hi_Smokes_B",
|
||||
stage3 = "Apart_Hi_Smokes_C",
|
||||
|
||||
Set = function(smoke, refresh)
|
||||
ExecApartment2.Smoke.Clear(false)
|
||||
|
||||
if smoke ~= nil then
|
||||
SetIplPropState(ExecApartment2.currentInteriorId, smoke, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(ExecApartment2.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(ExecApartment2.currentInteriorId, {
|
||||
ExecApartment2.Smoke.stage1,
|
||||
ExecApartment2.Smoke.stage2,
|
||||
ExecApartment2.Smoke.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ExecApartment2.Style.Set(ExecApartment2.Style.Theme.seductive, true)
|
||||
ExecApartment2.Strip.Enable({
|
||||
ExecApartment2.Strip.A,
|
||||
ExecApartment2.Strip.B,
|
||||
ExecApartment2.Strip.C
|
||||
}, true)
|
||||
ExecApartment2.Booze.Enable({
|
||||
ExecApartment2.Booze.A,
|
||||
ExecApartment2.Booze.B,
|
||||
ExecApartment2.Booze.C
|
||||
}, true)
|
||||
ExecApartment2.Smoke.Set(ExecApartment2.Smoke.stage1, true)
|
||||
end
|
||||
}
|
136
resources/[standalone]/bob74_ipl/dlc_executive/apartment3.lua
Normal file
136
resources/[standalone]/bob74_ipl/dlc_executive/apartment3.lua
Normal file
@ -0,0 +1,136 @@
|
||||
-- Apartment 3: -787.78050000 334.92320000 186.11340000
|
||||
exports('GetExecApartment3Object', function()
|
||||
return ExecApartment3
|
||||
end)
|
||||
|
||||
ExecApartment3 = {
|
||||
currentInteriorId = -1,
|
||||
|
||||
Style = {
|
||||
Theme = {
|
||||
modern = {
|
||||
interiorId = 227841,
|
||||
ipl = "apa_v_mp_h_01_c"
|
||||
},
|
||||
moody = {
|
||||
interiorId = 228609,
|
||||
ipl = "apa_v_mp_h_02_c"
|
||||
},
|
||||
vibrant = {
|
||||
interiorId = 229377,
|
||||
ipl = "apa_v_mp_h_03_c"
|
||||
},
|
||||
sharp = {
|
||||
interiorId = 230145,
|
||||
ipl = "apa_v_mp_h_04_c"
|
||||
},
|
||||
monochrome = {
|
||||
interiorId = 230913,
|
||||
ipl = "apa_v_mp_h_05_c"
|
||||
},
|
||||
seductive = {
|
||||
interiorId = 231681,
|
||||
ipl = "apa_v_mp_h_06_c"
|
||||
},
|
||||
regal = {
|
||||
interiorId = 232449,
|
||||
ipl = "apa_v_mp_h_07_c"
|
||||
},
|
||||
aqua = {
|
||||
interiorId = 233217,
|
||||
ipl = "apa_v_mp_h_08_c"
|
||||
}
|
||||
},
|
||||
|
||||
Set = function(style, refresh)
|
||||
if type(style) == "table" then
|
||||
ExecApartment3.Style.Clear()
|
||||
ExecApartment3.currentInteriorId = style.interiorId
|
||||
|
||||
EnableIpl(style.ipl, true)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(style.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for key, value in pairs(ExecApartment3.Style.Theme) do
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Strip_A",
|
||||
"Apart_Hi_Strip_B",
|
||||
"Apart_Hi_Strip_C"
|
||||
}, false)
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Booze_A",
|
||||
"Apart_Hi_Booze_B",
|
||||
"Apart_Hi_Booze_C"
|
||||
}, false)
|
||||
SetIplPropState(value.interiorId, {
|
||||
"Apart_Hi_Smokes_A",
|
||||
"Apart_Hi_Smokes_B",
|
||||
"Apart_Hi_Smokes_C"
|
||||
}, false, true)
|
||||
EnableIpl(value.ipl, false)
|
||||
end
|
||||
end
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(ExecApartment3.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(ExecApartment3.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
none = "",
|
||||
stage1 = "Apart_Hi_Smokes_A",
|
||||
stage2 = "Apart_Hi_Smokes_B",
|
||||
stage3 = "Apart_Hi_Smokes_C",
|
||||
|
||||
Set = function(smoke, refresh)
|
||||
ExecApartment3.Smoke.Clear(false)
|
||||
|
||||
if smoke ~= nil then
|
||||
SetIplPropState(ExecApartment3.currentInteriorId, smoke, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(ExecApartment3.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(ExecApartment3.currentInteriorId, {
|
||||
ExecApartment3.Smoke.stage1,
|
||||
ExecApartment3.Smoke.stage2,
|
||||
ExecApartment3.Smoke.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ExecApartment3.Style.Set(ExecApartment3.Style.Theme.sharp, true)
|
||||
ExecApartment3.Strip.Enable({
|
||||
ExecApartment3.Strip.A,
|
||||
ExecApartment3.Strip.B,
|
||||
ExecApartment3.Strip.C
|
||||
}, true)
|
||||
ExecApartment3.Booze.Enable({
|
||||
ExecApartment3.Booze.A,
|
||||
ExecApartment3.Booze.B,
|
||||
ExecApartment3.Booze.C
|
||||
}, true)
|
||||
ExecApartment3.Smoke.Set(ExecApartment3.Smoke.none)
|
||||
end
|
||||
}
|
327
resources/[standalone]/bob74_ipl/dlc_finance/office1.lua
Normal file
327
resources/[standalone]/bob74_ipl/dlc_finance/office1.lua
Normal file
@ -0,0 +1,327 @@
|
||||
-- Office 1: -141.1987, -620.913, 168.8205 (Arcadius Business Centre)
|
||||
exports('GetFinanceOffice1Object', function()
|
||||
return FinanceOffice1
|
||||
end)
|
||||
|
||||
FinanceOffice1 = {
|
||||
currentInteriorId = -1,
|
||||
currentSafeDoors = {
|
||||
hashL = "",
|
||||
hashR = ""
|
||||
},
|
||||
|
||||
Style = {
|
||||
Theme = {
|
||||
warm = {
|
||||
interiorId = 236289,
|
||||
ipl = "ex_dt1_02_office_01a",
|
||||
safe = "ex_prop_safedoor_office1a"
|
||||
},
|
||||
classical = {
|
||||
interiorId = 236545,
|
||||
ipl = "ex_dt1_02_office_01b",
|
||||
safe = "ex_prop_safedoor_office1b"
|
||||
},
|
||||
vintage = {
|
||||
interiorId = 236801,
|
||||
ipl = "ex_dt1_02_office_01c",
|
||||
safe = "ex_prop_safedoor_office1c"
|
||||
},
|
||||
contrast = {
|
||||
interiorId = 237057,
|
||||
ipl = "ex_dt1_02_office_02a",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
rich = {
|
||||
interiorId = 237313,
|
||||
ipl = "ex_dt1_02_office_02b",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
cool = {
|
||||
interiorId = 237569,
|
||||
ipl = "ex_dt1_02_office_02c",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
ice = {
|
||||
interiorId = 237825,
|
||||
ipl = "ex_dt1_02_office_03a",
|
||||
safe = "ex_prop_safedoor_office3a"
|
||||
},
|
||||
conservative = {
|
||||
interiorId = 238081,
|
||||
ipl = "ex_dt1_02_office_03b",
|
||||
safe = "ex_prop_safedoor_office3a"
|
||||
},
|
||||
polished = {
|
||||
interiorId = 238337,
|
||||
ipl = "ex_dt1_02_office_03c",
|
||||
safe = "ex_prop_safedoor_office3c"
|
||||
}
|
||||
},
|
||||
Set = function(style, refresh)
|
||||
if refresh == nil then
|
||||
refresh = false
|
||||
end
|
||||
|
||||
if type(style) == "table" then
|
||||
FinanceOffice1.Style.Clear()
|
||||
FinanceOffice1.currentInteriorId = style.interiorId
|
||||
FinanceOffice1.currentSafeDoors = {
|
||||
hashL = GetHashKey(style.safe .. "_l"),
|
||||
hashR = GetHashKey(style.safe .. "_r")
|
||||
}
|
||||
|
||||
EnableIpl(style.ipl, true)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(style.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for themeKey, themeValue in pairs(FinanceOffice1.Style.Theme) do
|
||||
for swagKey, swagValue in pairs(FinanceOffice1.Swag) do
|
||||
if type(swagValue) == "table" then
|
||||
SetIplPropState(themeValue.interiorId, {
|
||||
swagValue.A,
|
||||
swagValue.B,
|
||||
swagValue.C
|
||||
}, false)
|
||||
end
|
||||
end
|
||||
|
||||
SetIplPropState(themeValue.interiorId, "office_chairs", false, false)
|
||||
SetIplPropState(themeValue.interiorId, "office_booze", false, true)
|
||||
|
||||
FinanceOffice1.currentSafeDoors = {
|
||||
hashL = 0,
|
||||
hashR = 0
|
||||
}
|
||||
|
||||
EnableIpl(themeValue.ipl, false)
|
||||
end
|
||||
end
|
||||
},
|
||||
Safe = {
|
||||
doorHeadingL = 96.0, -- Only need the heading of the Left door to get the Right ones
|
||||
Position = vector3(-124.25, -641.30, 168.870), -- Approximately between the two doors
|
||||
-- These values are checked from "doorHandler.lua" and
|
||||
isLeftDoorOpen = false,
|
||||
isRightDoorOpen = false,
|
||||
|
||||
-- Safe door API
|
||||
Open = function(doorSide)
|
||||
if doorSide:lower() == "left" then
|
||||
FinanceOffice1.Safe.isLeftDoorOpen = true
|
||||
elseif doorSide:lower() == "right" then
|
||||
FinanceOffice1.Safe.isRightDoorOpen = true
|
||||
else
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " is not a correct value. Valid values are:")
|
||||
Citizen.Trace("left right")
|
||||
end
|
||||
end,
|
||||
Close = function(doorSide)
|
||||
if doorSide:lower() == "left" then
|
||||
FinanceOffice1.Safe.isLeftDoorOpen = false
|
||||
elseif doorSide:lower() == "right" then
|
||||
FinanceOffice1.Safe.isRightDoorOpen = false
|
||||
else
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " is not a correct value. Valid values are:")
|
||||
Citizen.Trace("left right")
|
||||
end
|
||||
end,
|
||||
|
||||
-- Internal use only
|
||||
SetDoorState = function(doorSide, open)
|
||||
local doorHandle = 0
|
||||
local heading = FinanceOffice1.Safe.doorHeadingL
|
||||
|
||||
if doorSide:lower() == "left" then
|
||||
doorHandle = FinanceOffice1.Safe.GetDoorHandle(FinanceOffice1.currentSafeDoors.hashL)
|
||||
|
||||
if open then
|
||||
heading = heading - 90.0
|
||||
end
|
||||
elseif doorSide:lower() == "right" then
|
||||
doorHandle = FinanceOffice1.Safe.GetDoorHandle(FinanceOffice1.currentSafeDoors.hashR)
|
||||
heading = heading - 180
|
||||
|
||||
if open then
|
||||
heading = heading + 90.0
|
||||
end
|
||||
end
|
||||
|
||||
if doorHandle == 0 then
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " safe door handle is 0")
|
||||
return
|
||||
end
|
||||
|
||||
SetEntityHeading(doorHandle, heading)
|
||||
end,
|
||||
|
||||
-- /!\ handle changes whenever the interior is refreshed /!\
|
||||
GetDoorHandle = function(doorHash)
|
||||
local timeout = 4
|
||||
local doorHandle = GetClosestObjectOfType(FinanceOffice1.Safe.Position.x, FinanceOffice1.Safe.Position.y, FinanceOffice1.Safe.Position.z, 5.0, doorHash, false, false, false)
|
||||
|
||||
while doorHandle == 0 do
|
||||
Citizen.Wait(25)
|
||||
|
||||
doorHandle = GetClosestObjectOfType(FinanceOffice1.Safe.Position.x, FinanceOffice1.Safe.Position.y, FinanceOffice1.Safe.Position.z, 5.0, doorHash, false, false, false)
|
||||
timeout = timeout - 1
|
||||
|
||||
if timeout <= 0 then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
return doorHandle
|
||||
end
|
||||
},
|
||||
Swag = {
|
||||
Cash = {
|
||||
A = "cash_set_01",
|
||||
B = "cash_set_02",
|
||||
C = "cash_set_03",
|
||||
D = "cash_set_04",
|
||||
E = "cash_set_05",
|
||||
F = "cash_set_06",
|
||||
G = "cash_set_07",
|
||||
H = "cash_set_08",
|
||||
I = "cash_set_09",
|
||||
J = "cash_set_10",
|
||||
K = "cash_set_11",
|
||||
L = "cash_set_12",
|
||||
M = "cash_set_13",
|
||||
N = "cash_set_14",
|
||||
O = "cash_set_15",
|
||||
P = "cash_set_16",
|
||||
Q = "cash_set_17",
|
||||
R = "cash_set_18",
|
||||
S = "cash_set_19",
|
||||
T = "cash_set_20",
|
||||
U = "cash_set_21",
|
||||
V = "cash_set_22",
|
||||
W = "cash_set_23",
|
||||
X = "cash_set_24"
|
||||
},
|
||||
BoozeCigs = {
|
||||
A = "swag_booze_cigs",
|
||||
B = "swag_booze_cigs2",
|
||||
C = "swag_booze_cigs3"
|
||||
},
|
||||
Counterfeit = {
|
||||
A = "swag_counterfeit",
|
||||
B = "swag_counterfeit2",
|
||||
C = "swag_counterfeit3"
|
||||
},
|
||||
DrugBags = {
|
||||
A = "swag_drugbags",
|
||||
B = "swag_drugbags2",
|
||||
C = "swag_drugbags3"
|
||||
},
|
||||
DrugStatue = {
|
||||
A = "swag_drugstatue",
|
||||
B = "swag_drugstatue2",
|
||||
C = "swag_drugstatue3"
|
||||
},
|
||||
Electronic = {
|
||||
A = "swag_electronic",
|
||||
B = "swag_electronic2",
|
||||
C = "swag_electronic3"
|
||||
},
|
||||
FurCoats = {
|
||||
A = "swag_furcoats",
|
||||
B = "swag_furcoats2",
|
||||
C = "swag_furcoats3"
|
||||
},
|
||||
Gems = {
|
||||
A = "swag_gems",
|
||||
B = "swag_gems2",
|
||||
C = "swag_gems3"
|
||||
},
|
||||
Guns = {
|
||||
A = "swag_guns",
|
||||
B = "swag_guns2",
|
||||
C = "swag_guns3"
|
||||
},
|
||||
Ivory = {
|
||||
A = "swag_ivory",
|
||||
B = "swag_ivory2",
|
||||
C = "swag_ivory3"
|
||||
},
|
||||
Jewel = {
|
||||
A = "swag_jewelwatch",
|
||||
B = "swag_jewelwatch2",
|
||||
C = "swag_jewelwatch3"
|
||||
},
|
||||
Med = {
|
||||
A = "swag_med",
|
||||
B = "swag_med2",
|
||||
C = "swag_med3"
|
||||
},
|
||||
Painting = {
|
||||
A = "swag_art",
|
||||
B = "swag_art2",
|
||||
C = "swag_art3"
|
||||
},
|
||||
Pills = {
|
||||
A = "swag_pills",
|
||||
B = "swag_pills2",
|
||||
C = "swag_pills3"
|
||||
},
|
||||
Silver = {
|
||||
A = "swag_silver",
|
||||
B = "swag_silver2",
|
||||
C = "swag_silver3"
|
||||
},
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(FinanceOffice1.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Chairs = {
|
||||
off = "",
|
||||
on = "office_chairs",
|
||||
|
||||
Set = function(chairs, refresh)
|
||||
FinanceOffice1.Chairs.Clear(false)
|
||||
|
||||
if chairs ~= nil then
|
||||
SetIplPropState(FinanceOffice1.currentInteriorId, chairs, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FinanceOffice1.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FinanceOffice1.currentInteriorId, FinanceOffice1.Chairs.on, false, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
off = "",
|
||||
on = "office_booze",
|
||||
|
||||
Set = function(booze, refresh)
|
||||
FinanceOffice1.Booze.Clear(false)
|
||||
|
||||
if booze ~= nil then
|
||||
SetIplPropState(FinanceOffice1.currentInteriorId, booze, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FinanceOffice1.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FinanceOffice1.currentInteriorId, FinanceOffice1.Booze.on, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
FinanceOffice3.Booze.Set(FinanceOffice3.Booze.on, true)
|
||||
FinanceOffice1.Style.Set(FinanceOffice1.Style.Theme.warm, true)
|
||||
FinanceOffice1.Chairs.Set(FinanceOffice1.Chairs.on, true)
|
||||
end
|
||||
}
|
326
resources/[standalone]/bob74_ipl/dlc_finance/office2.lua
Normal file
326
resources/[standalone]/bob74_ipl/dlc_finance/office2.lua
Normal file
@ -0,0 +1,326 @@
|
||||
-- Office 2: -75.8466, -826.9893, 243.3859 (Maze Bank Building)
|
||||
exports('GetFinanceOffice2Object', function()
|
||||
return FinanceOffice2
|
||||
end)
|
||||
|
||||
FinanceOffice2 = {
|
||||
currentInteriorId = -1,
|
||||
currentSafeDoors = {
|
||||
hashL = "",
|
||||
hashR = ""
|
||||
},
|
||||
|
||||
Style = {
|
||||
Theme = {
|
||||
warm = {
|
||||
interiorId = 238593,
|
||||
ipl = "ex_dt1_11_office_01a",
|
||||
safe = "ex_prop_safedoor_office1a"
|
||||
},
|
||||
classical = {
|
||||
interiorId = 238849,
|
||||
ipl = "ex_dt1_11_office_01b",
|
||||
safe = "ex_prop_safedoor_office1b"
|
||||
},
|
||||
vintage = {
|
||||
interiorId = 239105,
|
||||
ipl = "ex_dt1_11_office_01c",
|
||||
safe = "ex_prop_safedoor_office1c"
|
||||
},
|
||||
contrast = {
|
||||
interiorId = 239361,
|
||||
ipl = "ex_dt1_11_office_02a",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
rich = {
|
||||
interiorId = 239617,
|
||||
ipl = "ex_dt1_11_office_02b",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
cool = {
|
||||
interiorId = 239873,
|
||||
ipl = "ex_dt1_11_office_02c",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
ice = {
|
||||
interiorId = 240129,
|
||||
ipl = "ex_dt1_11_office_03a",
|
||||
safe = "ex_prop_safedoor_office3a"
|
||||
},
|
||||
conservative = {
|
||||
interiorId = 240385,
|
||||
ipl = "ex_dt1_11_office_03b",
|
||||
safe = "ex_prop_safedoor_office3a"
|
||||
},
|
||||
polished = {
|
||||
interiorId = 240641,
|
||||
ipl = "ex_dt1_11_office_03c",
|
||||
safe = "ex_prop_safedoor_office3c"
|
||||
}
|
||||
},
|
||||
Set = function(style, refresh)
|
||||
if refresh == nil then
|
||||
refresh = false
|
||||
end
|
||||
|
||||
if type(style) == "table" then
|
||||
FinanceOffice2.Style.Clear()
|
||||
FinanceOffice2.currentInteriorId = style.interiorId
|
||||
FinanceOffice2.currentSafeDoors = {
|
||||
hashL = GetHashKey(style.safe .. "_l"),
|
||||
hashR = GetHashKey(style.safe .. "_r")
|
||||
}
|
||||
|
||||
EnableIpl(style.ipl, true)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(style.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for themeKey, themeValue in pairs(FinanceOffice2.Style.Theme) do
|
||||
for swagKey, swagValue in pairs(FinanceOffice2.Swag) do
|
||||
if type(swagValue) == "table" then
|
||||
SetIplPropState(themeValue.interiorId, {
|
||||
swagValue.A,
|
||||
swagValue.B,
|
||||
swagValue.C
|
||||
}, false)
|
||||
end
|
||||
end
|
||||
|
||||
SetIplPropState(themeValue.interiorId, "office_chairs", false, false)
|
||||
SetIplPropState(themeValue.interiorId, "office_booze", false, true)
|
||||
|
||||
FinanceOffice2.currentSafeDoors = {
|
||||
hashL = 0,
|
||||
hashR = 0
|
||||
}
|
||||
|
||||
EnableIpl(themeValue.ipl, false)
|
||||
end
|
||||
end
|
||||
},
|
||||
Safe = {
|
||||
doorHeadingL = 250.0, -- Only need the heading of the Left door to get the Right ones
|
||||
Position = vector3(-82.593, -801.0, 243.385), -- Approximately between the two doors
|
||||
-- These values are checked from "doorHandler.lua" and
|
||||
isLeftDoorOpen = false,
|
||||
isRightDoorOpen = false,
|
||||
|
||||
-- Safe door API
|
||||
Open = function(doorSide)
|
||||
if doorSide:lower() == "left" then
|
||||
FinanceOffice2.Safe.isLeftDoorOpen = true
|
||||
elseif doorSide:lower() == "right" then
|
||||
FinanceOffice2.Safe.isRightDoorOpen = true
|
||||
else
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " is not a correct value. Valid values are:")
|
||||
Citizen.Trace("left right")
|
||||
end
|
||||
end,
|
||||
Close = function(doorSide)
|
||||
if doorSide:lower() == "left" then
|
||||
FinanceOffice2.Safe.isLeftDoorOpen = false
|
||||
elseif doorSide:lower() == "right" then
|
||||
FinanceOffice2.Safe.isRightDoorOpen = false
|
||||
else
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " is not a correct value. Valid values are:")
|
||||
Citizen.Trace("left right")
|
||||
end
|
||||
end,
|
||||
|
||||
-- Internal use only
|
||||
SetDoorState = function(doorSide, open)
|
||||
local doorHandle = 0
|
||||
local heading = FinanceOffice2.Safe.doorHeadingL
|
||||
|
||||
if doorSide:lower() == "left" then
|
||||
doorHandle = FinanceOffice2.Safe.GetDoorHandle(FinanceOffice2.currentSafeDoors.hashL)
|
||||
|
||||
if open then
|
||||
heading = heading - 90.0
|
||||
end
|
||||
elseif doorSide:lower() == "right" then
|
||||
doorHandle = FinanceOffice2.Safe.GetDoorHandle(FinanceOffice2.currentSafeDoors.hashR)
|
||||
heading = heading - 180
|
||||
|
||||
if open then
|
||||
heading = heading + 90.0
|
||||
end
|
||||
end
|
||||
|
||||
if doorHandle == 0 then
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " safe door handle is 0")
|
||||
return
|
||||
end
|
||||
|
||||
SetEntityHeading(doorHandle, heading)
|
||||
end,
|
||||
|
||||
-- /!\ handle changes whenever the interior is refreshed /!\
|
||||
GetDoorHandle = function(doorHash)
|
||||
local timeout = 4
|
||||
local doorHandle = GetClosestObjectOfType(FinanceOffice2.Safe.Position.x, FinanceOffice2.Safe.Position.y, FinanceOffice2.Safe.Position.z, 5.0, doorHash, false, false, false)
|
||||
|
||||
while doorHandle == 0 do
|
||||
Citizen.Wait(25)
|
||||
|
||||
doorHandle = GetClosestObjectOfType(FinanceOffice2.Safe.Position.x, FinanceOffice2.Safe.Position.y, FinanceOffice2.Safe.Position.z, 5.0, doorHash, false, false, false)
|
||||
timeout = timeout - 1
|
||||
|
||||
if timeout <= 0 then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
return doorHandle
|
||||
end
|
||||
},
|
||||
Swag = {
|
||||
Cash = {
|
||||
A = "cash_set_01",
|
||||
B = "cash_set_02",
|
||||
C = "cash_set_03",
|
||||
D = "cash_set_04",
|
||||
E = "cash_set_05",
|
||||
F = "cash_set_06",
|
||||
G = "cash_set_07",
|
||||
H = "cash_set_08",
|
||||
I = "cash_set_09",
|
||||
J = "cash_set_10",
|
||||
K = "cash_set_11",
|
||||
L = "cash_set_12",
|
||||
M = "cash_set_13",
|
||||
N = "cash_set_14",
|
||||
O = "cash_set_15",
|
||||
P = "cash_set_16",
|
||||
Q = "cash_set_17",
|
||||
R = "cash_set_18",
|
||||
S = "cash_set_19",
|
||||
T = "cash_set_20",
|
||||
U = "cash_set_21",
|
||||
V = "cash_set_22",
|
||||
W = "cash_set_23",
|
||||
X = "cash_set_24"
|
||||
},
|
||||
BoozeCigs = {
|
||||
A = "swag_booze_cigs",
|
||||
B = "swag_booze_cigs2",
|
||||
C = "swag_booze_cigs3"
|
||||
},
|
||||
Counterfeit = {
|
||||
A = "swag_counterfeit",
|
||||
B = "swag_counterfeit2",
|
||||
C = "swag_counterfeit3"
|
||||
},
|
||||
DrugBags = {
|
||||
A = "swag_drugbags",
|
||||
B = "swag_drugbags2",
|
||||
C = "swag_drugbags3"
|
||||
},
|
||||
DrugStatue = {
|
||||
A = "swag_drugstatue",
|
||||
B = "swag_drugstatue2",
|
||||
C = "swag_drugstatue3"
|
||||
},
|
||||
Electronic = {
|
||||
A = "swag_electronic",
|
||||
B = "swag_electronic2",
|
||||
C = "swag_electronic3"
|
||||
},
|
||||
FurCoats = {
|
||||
A = "swag_furcoats",
|
||||
B = "swag_furcoats2",
|
||||
C = "swag_furcoats3"
|
||||
},
|
||||
Gems = {
|
||||
A = "swag_gems",
|
||||
B = "swag_gems2",
|
||||
C = "swag_gems3"
|
||||
},
|
||||
Guns = {
|
||||
A = "swag_guns",
|
||||
B = "swag_guns2",
|
||||
C = "swag_guns3"
|
||||
},
|
||||
Ivory = {
|
||||
A = "swag_ivory",
|
||||
B = "swag_ivory2",
|
||||
C = "swag_ivory3"
|
||||
},
|
||||
Jewel = {
|
||||
A = "swag_jewelwatch",
|
||||
B = "swag_jewelwatch2",
|
||||
C = "swag_jewelwatch3"
|
||||
},
|
||||
Med = {
|
||||
A = "swag_med",
|
||||
B = "swag_med2",
|
||||
C = "swag_med3"
|
||||
},
|
||||
Painting = {
|
||||
A = "swag_art",
|
||||
B = "swag_art2",
|
||||
C = "swag_art3"
|
||||
},
|
||||
Pills = {
|
||||
A = "swag_pills",
|
||||
B = "swag_pills2",
|
||||
C = "swag_pills3"
|
||||
},
|
||||
Silver = {
|
||||
A = "swag_silver",
|
||||
B = "swag_silver2",
|
||||
C = "swag_silver3"
|
||||
},
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(FinanceOffice2.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Chairs = {
|
||||
off = "",
|
||||
on = "office_chairs",
|
||||
|
||||
Set = function(chairs, refresh)
|
||||
FinanceOffice2.Chairs.Clear(false)
|
||||
|
||||
if chairs ~= nil then
|
||||
SetIplPropState(FinanceOffice2.currentInteriorId, chairs, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FinanceOffice2.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FinanceOffice2.currentInteriorId, FinanceOffice2.Chairs.on, false, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
off = "",
|
||||
on = "office_booze",
|
||||
|
||||
Set = function(booze, refresh)
|
||||
FinanceOffice2.Booze.Clear(false)
|
||||
|
||||
if booze ~= nil then
|
||||
SetIplPropState(FinanceOffice2.currentInteriorId, booze, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FinanceOffice2.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FinanceOffice2.currentInteriorId, FinanceOffice2.Booze.on, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
FinanceOffice2.Style.Set(FinanceOffice2.Style.Theme.warm)
|
||||
FinanceOffice2.Chairs.Set(FinanceOffice2.Chairs.on, true)
|
||||
end
|
||||
}
|
326
resources/[standalone]/bob74_ipl/dlc_finance/office3.lua
Normal file
326
resources/[standalone]/bob74_ipl/dlc_finance/office3.lua
Normal file
@ -0,0 +1,326 @@
|
||||
-- Office 3: -1579.756, -565.0661, 108.523 (Lom Bank)
|
||||
exports('GetFinanceOffice3Object', function()
|
||||
return FinanceOffice3
|
||||
end)
|
||||
|
||||
FinanceOffice3 = {
|
||||
currentInteriorId = -1,
|
||||
currentSafeDoors = {
|
||||
hashL = "",
|
||||
hashR = ""
|
||||
},
|
||||
|
||||
Style = {
|
||||
Theme = {
|
||||
warm = {
|
||||
interiorId = 240897,
|
||||
ipl = "ex_sm_13_office_01a",
|
||||
safe = "ex_prop_safedoor_office1a"
|
||||
},
|
||||
classical = {
|
||||
interiorId = 241153,
|
||||
ipl = "ex_sm_13_office_01b",
|
||||
safe = "ex_prop_safedoor_office1b"
|
||||
},
|
||||
vintage = {
|
||||
interiorId = 241409,
|
||||
ipl = "ex_sm_13_office_01c",
|
||||
safe = "ex_prop_safedoor_office1c"
|
||||
},
|
||||
contrast = {
|
||||
interiorId = 241665,
|
||||
ipl = "ex_sm_13_office_02a",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
rich = {
|
||||
interiorId = 241921,
|
||||
ipl = "ex_sm_13_office_02b",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
cool = {
|
||||
interiorId = 242177,
|
||||
ipl = "ex_sm_13_office_02c",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
ice = {
|
||||
interiorId = 242433,
|
||||
ipl = "ex_sm_13_office_03a",
|
||||
safe = "ex_prop_safedoor_office3a"
|
||||
},
|
||||
conservative = {
|
||||
interiorId = 242689,
|
||||
ipl = "ex_sm_13_office_03b",
|
||||
safe = "ex_prop_safedoor_office3a"
|
||||
},
|
||||
polished = {
|
||||
interiorId = 242945,
|
||||
ipl = "ex_sm_13_office_03c",
|
||||
safe = "ex_prop_safedoor_office3c"
|
||||
}
|
||||
},
|
||||
Set = function(style, refresh)
|
||||
if refresh == nil then
|
||||
refresh = false
|
||||
end
|
||||
|
||||
if type(style) == "table" then
|
||||
FinanceOffice3.Style.Clear()
|
||||
FinanceOffice3.currentInteriorId = style.interiorId
|
||||
FinanceOffice3.currentSafeDoors = {
|
||||
hashL = GetHashKey(style.safe .. "_l"),
|
||||
hashR = GetHashKey(style.safe .. "_r")
|
||||
}
|
||||
|
||||
EnableIpl(style.ipl, true)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(style.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for themeKey, themeValue in pairs(FinanceOffice3.Style.Theme) do
|
||||
for swagKey, swagValue in pairs(FinanceOffice3.Swag) do
|
||||
if type(swagValue) == "table" then
|
||||
SetIplPropState(themeValue.interiorId, {
|
||||
swagValue.A,
|
||||
swagValue.B,
|
||||
swagValue.C
|
||||
}, false)
|
||||
end
|
||||
end
|
||||
|
||||
SetIplPropState(themeValue.interiorId, "office_chairs", false, false)
|
||||
SetIplPropState(themeValue.interiorId, "office_booze", false, true)
|
||||
|
||||
FinanceOffice3.currentSafeDoors = {
|
||||
hashL = 0,
|
||||
hashR = 0
|
||||
}
|
||||
|
||||
EnableIpl(themeValue.ipl, false)
|
||||
end
|
||||
end
|
||||
},
|
||||
Safe = {
|
||||
doorHeadingL = 126.0, -- Only need the heading of the Left door to get the Right ones
|
||||
Position = vector3(-1554.08, -573.7122, 108.5272), -- Approximately between the two doors
|
||||
-- These values are checked from "doorHandler.lua" and
|
||||
isLeftDoorOpen = false,
|
||||
isRightDoorOpen = false,
|
||||
|
||||
-- Safe door API
|
||||
Open = function(doorSide)
|
||||
if doorSide:lower() == "left" then
|
||||
FinanceOffice3.Safe.isLeftDoorOpen = true
|
||||
elseif doorSide:lower() == "right" then
|
||||
FinanceOffice3.Safe.isRightDoorOpen = true
|
||||
else
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " is not a correct value. Valid values are:")
|
||||
Citizen.Trace("left right")
|
||||
end
|
||||
end,
|
||||
Close = function(doorSide)
|
||||
if doorSide:lower() == "left" then
|
||||
FinanceOffice3.Safe.isLeftDoorOpen = false
|
||||
elseif doorSide:lower() == "right" then
|
||||
FinanceOffice3.Safe.isRightDoorOpen = false
|
||||
else
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " is not a correct value. Valid values are:")
|
||||
Citizen.Trace("left right")
|
||||
end
|
||||
end,
|
||||
|
||||
-- Internal use only
|
||||
SetDoorState = function(doorSide, open)
|
||||
local doorHandle = 0
|
||||
local heading = FinanceOffice3.Safe.doorHeadingL
|
||||
|
||||
if doorSide:lower() == "left" then
|
||||
doorHandle = FinanceOffice3.Safe.GetDoorHandle(FinanceOffice3.currentSafeDoors.hashL)
|
||||
|
||||
if open then
|
||||
heading = heading - 90.0
|
||||
end
|
||||
elseif doorSide:lower() == "right" then
|
||||
doorHandle = FinanceOffice3.Safe.GetDoorHandle(FinanceOffice3.currentSafeDoors.hashR)
|
||||
heading = heading - 180
|
||||
|
||||
if open then
|
||||
heading = heading + 90.0
|
||||
end
|
||||
end
|
||||
|
||||
if doorHandle == 0 then
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " safe door handle is 0")
|
||||
return
|
||||
end
|
||||
|
||||
SetEntityHeading(doorHandle, heading)
|
||||
end,
|
||||
|
||||
-- /!\ handle changes whenever the interior is refreshed /!\
|
||||
GetDoorHandle = function(doorHash)
|
||||
local timeout = 4
|
||||
local doorHandle = GetClosestObjectOfType(FinanceOffice3.Safe.Position.x, FinanceOffice3.Safe.Position.y, FinanceOffice3.Safe.Position.z, 5.0, doorHash, false, false, false)
|
||||
|
||||
while doorHandle == 0 do
|
||||
Citizen.Wait(25)
|
||||
|
||||
doorHandle = GetClosestObjectOfType(FinanceOffice3.Safe.Position.x, FinanceOffice3.Safe.Position.y, FinanceOffice3.Safe.Position.z, 5.0, doorHash, false, false, false)
|
||||
timeout = timeout - 1
|
||||
|
||||
if timeout <= 0 then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
return doorHandle
|
||||
end
|
||||
},
|
||||
Swag = {
|
||||
Cash = {
|
||||
A = "cash_set_01",
|
||||
B = "cash_set_02",
|
||||
C = "cash_set_03",
|
||||
D = "cash_set_04",
|
||||
E = "cash_set_05",
|
||||
F = "cash_set_06",
|
||||
G = "cash_set_07",
|
||||
H = "cash_set_08",
|
||||
I = "cash_set_09",
|
||||
J = "cash_set_10",
|
||||
K = "cash_set_11",
|
||||
L = "cash_set_12",
|
||||
M = "cash_set_13",
|
||||
N = "cash_set_14",
|
||||
O = "cash_set_15",
|
||||
P = "cash_set_16",
|
||||
Q = "cash_set_17",
|
||||
R = "cash_set_18",
|
||||
S = "cash_set_19",
|
||||
T = "cash_set_20",
|
||||
U = "cash_set_21",
|
||||
V = "cash_set_22",
|
||||
W = "cash_set_23",
|
||||
X = "cash_set_24"
|
||||
},
|
||||
BoozeCigs = {
|
||||
A = "swag_booze_cigs",
|
||||
B = "swag_booze_cigs2",
|
||||
C = "swag_booze_cigs3"
|
||||
},
|
||||
Counterfeit = {
|
||||
A = "swag_counterfeit",
|
||||
B = "swag_counterfeit2",
|
||||
C = "swag_counterfeit3"
|
||||
},
|
||||
DrugBags = {
|
||||
A = "swag_drugbags",
|
||||
B = "swag_drugbags2",
|
||||
C = "swag_drugbags3"
|
||||
},
|
||||
DrugStatue = {
|
||||
A = "swag_drugstatue",
|
||||
B = "swag_drugstatue2",
|
||||
C = "swag_drugstatue3"
|
||||
},
|
||||
Electronic = {
|
||||
A = "swag_electronic",
|
||||
B = "swag_electronic2",
|
||||
C = "swag_electronic3"
|
||||
},
|
||||
FurCoats = {
|
||||
A = "swag_furcoats",
|
||||
B = "swag_furcoats2",
|
||||
C = "swag_furcoats3"
|
||||
},
|
||||
Gems = {
|
||||
A = "swag_gems",
|
||||
B = "swag_gems2",
|
||||
C = "swag_gems3"
|
||||
},
|
||||
Guns = {
|
||||
A = "swag_guns",
|
||||
B = "swag_guns2",
|
||||
C = "swag_guns3"
|
||||
},
|
||||
Ivory = {
|
||||
A = "swag_ivory",
|
||||
B = "swag_ivory2",
|
||||
C = "swag_ivory3"
|
||||
},
|
||||
Jewel = {
|
||||
A = "swag_jewelwatch",
|
||||
B = "swag_jewelwatch2",
|
||||
C = "swag_jewelwatch3"
|
||||
},
|
||||
Med = {
|
||||
A = "swag_med",
|
||||
B = "swag_med2",
|
||||
C = "swag_med3"
|
||||
},
|
||||
Painting = {
|
||||
A = "swag_art",
|
||||
B = "swag_art2",
|
||||
C = "swag_art3"
|
||||
},
|
||||
Pills = {
|
||||
A = "swag_pills",
|
||||
B = "swag_pills2",
|
||||
C = "swag_pills3"
|
||||
},
|
||||
Silver = {
|
||||
A = "swag_silver",
|
||||
B = "swag_silver2",
|
||||
C = "swag_silver3"
|
||||
},
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(FinanceOffice3.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Chairs = {
|
||||
off = "",
|
||||
on = "office_chairs",
|
||||
|
||||
Set = function(chairs, refresh)
|
||||
FinanceOffice3.Chairs.Clear(false)
|
||||
|
||||
if chairs ~= nil then
|
||||
SetIplPropState(FinanceOffice3.currentInteriorId, chairs, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FinanceOffice3.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FinanceOffice3.currentInteriorId, FinanceOffice3.Chairs.on, false, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
off = "",
|
||||
on = "office_booze",
|
||||
|
||||
Set = function(booze, refresh)
|
||||
FinanceOffice3.Booze.Clear(false)
|
||||
|
||||
if booze ~= nil then
|
||||
SetIplPropState(FinanceOffice3.currentInteriorId, booze, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FinanceOffice3.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FinanceOffice3.currentInteriorId, FinanceOffice3.Booze.on, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
FinanceOffice3.Style.Set(FinanceOffice3.Style.Theme.conservative)
|
||||
FinanceOffice3.Chairs.Set(FinanceOffice3.Chairs.on, true)
|
||||
end
|
||||
}
|
326
resources/[standalone]/bob74_ipl/dlc_finance/office4.lua
Normal file
326
resources/[standalone]/bob74_ipl/dlc_finance/office4.lua
Normal file
@ -0,0 +1,326 @@
|
||||
-- Office 4: -1392.667, -480.4736, 72.04217 (Maze Bank West)
|
||||
exports('GetFinanceOffice4Object', function()
|
||||
return FinanceOffice4
|
||||
end)
|
||||
|
||||
FinanceOffice4 = {
|
||||
currentInteriorId = -1,
|
||||
currentSafeDoors = {
|
||||
hashL = "",
|
||||
hashR = ""
|
||||
},
|
||||
|
||||
Style = {
|
||||
Theme = {
|
||||
warm = {
|
||||
interiorId = 243201,
|
||||
ipl = "ex_sm_15_office_01a",
|
||||
safe = "ex_prop_safedoor_office1a"
|
||||
},
|
||||
classical = {
|
||||
interiorId = 243457,
|
||||
ipl = "ex_sm_15_office_01b",
|
||||
safe = "ex_prop_safedoor_office1b"
|
||||
},
|
||||
vintage = {
|
||||
interiorId = 243713,
|
||||
ipl = "ex_sm_15_office_01c",
|
||||
safe = "ex_prop_safedoor_office1c"
|
||||
},
|
||||
contrast = {
|
||||
interiorId = 243969,
|
||||
ipl = "ex_sm_15_office_02a",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
rich = {
|
||||
interiorId = 244225,
|
||||
ipl = "ex_sm_15_office_02b",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
cool = {
|
||||
interiorId = 244481,
|
||||
ipl = "ex_sm_15_office_02c",
|
||||
safe = "ex_prop_safedoor_office2a"
|
||||
},
|
||||
ice = {
|
||||
interiorId = 244737,
|
||||
ipl = "ex_sm_15_office_03a",
|
||||
safe = "ex_prop_safedoor_office3a"
|
||||
},
|
||||
conservative = {
|
||||
interiorId = 244993,
|
||||
ipl = "ex_sm_15_office_03b",
|
||||
safe = "ex_prop_safedoor_office3a"
|
||||
},
|
||||
polished = {
|
||||
interiorId = 245249,
|
||||
ipl = "ex_sm_15_office_03c",
|
||||
safe = "ex_prop_safedoor_office3c"
|
||||
}
|
||||
},
|
||||
Set = function(style, refresh)
|
||||
if refresh == nil then
|
||||
refresh = false
|
||||
end
|
||||
|
||||
if type(style) == "table" then
|
||||
FinanceOffice4.Style.Clear()
|
||||
FinanceOffice4.currentInteriorId = style.interiorId
|
||||
FinanceOffice4.currentSafeDoors = {
|
||||
hashL = GetHashKey(style.safe .. "_l"),
|
||||
hashR = GetHashKey(style.safe .. "_r")
|
||||
}
|
||||
|
||||
EnableIpl(style.ipl, true)
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(style.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for themeKey, themeValue in pairs(FinanceOffice4.Style.Theme) do
|
||||
for swagKey, swagValue in pairs(FinanceOffice4.Swag) do
|
||||
if type(swagValue) == "table" then
|
||||
SetIplPropState(themeValue.interiorId, {
|
||||
swagValue.A,
|
||||
swagValue.B,
|
||||
swagValue.C
|
||||
}, false)
|
||||
end
|
||||
end
|
||||
|
||||
SetIplPropState(themeValue.interiorId, "office_chairs", false, false)
|
||||
SetIplPropState(themeValue.interiorId, "office_booze", false, true)
|
||||
|
||||
FinanceOffice4.currentSafeDoors = {
|
||||
hashL = 0,
|
||||
hashR = 0
|
||||
}
|
||||
|
||||
EnableIpl(themeValue.ipl, false)
|
||||
end
|
||||
end
|
||||
},
|
||||
Safe = {
|
||||
doorHeadingL = 188.0, -- Only need the heading of the Left door to get the Right ones
|
||||
Position = vector3(-1372.905, -462.08, 72.05), -- Approximately between the two doors
|
||||
-- These values are checked from "doorHandler.lua" and
|
||||
isLeftDoorOpen = false,
|
||||
isRightDoorOpen = false,
|
||||
|
||||
-- Safe door API
|
||||
Open = function(doorSide)
|
||||
if doorSide:lower() == "left" then
|
||||
FinanceOffice4.Safe.isLeftDoorOpen = true
|
||||
elseif doorSide:lower() == "right" then
|
||||
FinanceOffice4.Safe.isRightDoorOpen = true
|
||||
else
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " is not a correct value. Valid values are:")
|
||||
Citizen.Trace("left right")
|
||||
end
|
||||
end,
|
||||
Close = function(doorSide)
|
||||
if doorSide:lower() == "left" then
|
||||
FinanceOffice4.Safe.isLeftDoorOpen = false
|
||||
elseif doorSide:lower() == "right" then
|
||||
FinanceOffice4.Safe.isRightDoorOpen = false
|
||||
else
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " is not a correct value. Valid values are:")
|
||||
Citizen.Trace("left right")
|
||||
end
|
||||
end,
|
||||
|
||||
-- Internal use only
|
||||
SetDoorState = function(doorSide, open)
|
||||
local doorHandle = 0
|
||||
local heading = FinanceOffice4.Safe.doorHeadingL
|
||||
|
||||
if doorSide:lower() == "left" then
|
||||
doorHandle = FinanceOffice4.Safe.GetDoorHandle(FinanceOffice4.currentSafeDoors.hashL)
|
||||
|
||||
if open then
|
||||
heading = heading - 90.0
|
||||
end
|
||||
elseif doorSide:lower() == "right" then
|
||||
doorHandle = FinanceOffice4.Safe.GetDoorHandle(FinanceOffice4.currentSafeDoors.hashR)
|
||||
heading = heading - 180
|
||||
|
||||
if open then
|
||||
heading = heading + 90.0
|
||||
end
|
||||
end
|
||||
|
||||
if doorHandle == 0 then
|
||||
Citizen.Trace("[bob74_ipl] Warning: " .. doorSide .. " safe door handle is 0")
|
||||
return
|
||||
end
|
||||
|
||||
SetEntityHeading(doorHandle, heading)
|
||||
end,
|
||||
|
||||
-- /!\ handle changes whenever the interior is refreshed /!\
|
||||
GetDoorHandle = function(doorHash)
|
||||
local timeout = 4
|
||||
local doorHandle = GetClosestObjectOfType(FinanceOffice4.Safe.Position.x, FinanceOffice4.Safe.Position.y, FinanceOffice4.Safe.Position.z, 5.0, doorHash, false, false, false)
|
||||
|
||||
while doorHandle == 0 do
|
||||
Citizen.Wait(25)
|
||||
|
||||
doorHandle = GetClosestObjectOfType(FinanceOffice4.Safe.Position.x, FinanceOffice4.Safe.Position.y, FinanceOffice4.Safe.Position.z, 5.0, doorHash, false, false, false)
|
||||
timeout = timeout - 1
|
||||
|
||||
if timeout <= 0 then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
return doorHandle
|
||||
end
|
||||
},
|
||||
Swag = {
|
||||
Cash = {
|
||||
A = "cash_set_01",
|
||||
B = "cash_set_02",
|
||||
C = "cash_set_03",
|
||||
D = "cash_set_04",
|
||||
E = "cash_set_05",
|
||||
F = "cash_set_06",
|
||||
G = "cash_set_07",
|
||||
H = "cash_set_08",
|
||||
I = "cash_set_09",
|
||||
J = "cash_set_10",
|
||||
K = "cash_set_11",
|
||||
L = "cash_set_12",
|
||||
M = "cash_set_13",
|
||||
N = "cash_set_14",
|
||||
O = "cash_set_15",
|
||||
P = "cash_set_16",
|
||||
Q = "cash_set_17",
|
||||
R = "cash_set_18",
|
||||
S = "cash_set_19",
|
||||
T = "cash_set_20",
|
||||
U = "cash_set_21",
|
||||
V = "cash_set_22",
|
||||
W = "cash_set_23",
|
||||
X = "cash_set_24"
|
||||
},
|
||||
BoozeCigs = {
|
||||
A = "swag_booze_cigs",
|
||||
B = "swag_booze_cigs2",
|
||||
C = "swag_booze_cigs3"
|
||||
},
|
||||
Counterfeit = {
|
||||
A = "swag_counterfeit",
|
||||
B = "swag_counterfeit2",
|
||||
C = "swag_counterfeit3"
|
||||
},
|
||||
DrugBags = {
|
||||
A = "swag_drugbags",
|
||||
B = "swag_drugbags2",
|
||||
C = "swag_drugbags3"
|
||||
},
|
||||
DrugStatue = {
|
||||
A = "swag_drugstatue",
|
||||
B = "swag_drugstatue2",
|
||||
C = "swag_drugstatue3"
|
||||
},
|
||||
Electronic = {
|
||||
A = "swag_electronic",
|
||||
B = "swag_electronic2",
|
||||
C = "swag_electronic3"
|
||||
},
|
||||
FurCoats = {
|
||||
A = "swag_furcoats",
|
||||
B = "swag_furcoats2",
|
||||
C = "swag_furcoats3"
|
||||
},
|
||||
Gems = {
|
||||
A = "swag_gems",
|
||||
B = "swag_gems2",
|
||||
C = "swag_gems3"
|
||||
},
|
||||
Guns = {
|
||||
A = "swag_guns",
|
||||
B = "swag_guns2",
|
||||
C = "swag_guns3"
|
||||
},
|
||||
Ivory = {
|
||||
A = "swag_ivory",
|
||||
B = "swag_ivory2",
|
||||
C = "swag_ivory3"
|
||||
},
|
||||
Jewel = {
|
||||
A = "swag_jewelwatch",
|
||||
B = "swag_jewelwatch2",
|
||||
C = "swag_jewelwatch3"
|
||||
},
|
||||
Med = {
|
||||
A = "swag_med",
|
||||
B = "swag_med2",
|
||||
C = "swag_med3"
|
||||
},
|
||||
Painting = {
|
||||
A = "swag_art",
|
||||
B = "swag_art2",
|
||||
C = "swag_art3"
|
||||
},
|
||||
Pills = {
|
||||
A = "swag_pills",
|
||||
B = "swag_pills2",
|
||||
C = "swag_pills3"
|
||||
},
|
||||
Silver = {
|
||||
A = "swag_silver",
|
||||
B = "swag_silver2",
|
||||
C = "swag_silver3"
|
||||
},
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(FinanceOffice4.currentInteriorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Chairs = {
|
||||
off = "",
|
||||
on = "office_chairs",
|
||||
|
||||
Set = function(chairs, refresh)
|
||||
FinanceOffice4.Chairs.Clear(false)
|
||||
|
||||
if chairs ~= nil then
|
||||
SetIplPropState(FinanceOffice4.currentInteriorId, chairs, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FinanceOffice4.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FinanceOffice4.currentInteriorId, FinanceOffice4.Chairs.on, false, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
off = "",
|
||||
on = "office_booze",
|
||||
|
||||
Set = function(booze, refresh)
|
||||
FinanceOffice4.Booze.Clear(false)
|
||||
|
||||
if booze ~= nil then
|
||||
SetIplPropState(FinanceOffice4.currentInteriorId, booze, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FinanceOffice4.currentInteriorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FinanceOffice4.currentInteriorId, FinanceOffice4.Booze.on, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
FinanceOffice4.Style.Set(FinanceOffice4.Style.Theme.cool)
|
||||
FinanceOffice4.Chairs.Set(FinanceOffice4.Chairs.on, true)
|
||||
end
|
||||
}
|
162
resources/[standalone]/bob74_ipl/dlc_finance/organization.lua
Normal file
162
resources/[standalone]/bob74_ipl/dlc_finance/organization.lua
Normal file
@ -0,0 +1,162 @@
|
||||
exports('GetFinanceOrganizationObject', function()
|
||||
return FinanceOrganization
|
||||
end)
|
||||
|
||||
AddEventHandler('onClientResourceStop', function(res)
|
||||
if GetCurrentResourceName() ~= res then
|
||||
return
|
||||
end
|
||||
|
||||
FinanceOrganization.Office.Clear()
|
||||
end)
|
||||
|
||||
FinanceOrganization = {
|
||||
Name = {
|
||||
Colors = {
|
||||
black = 0,
|
||||
gray = 1,
|
||||
yellow = 2,
|
||||
blue = 3,
|
||||
orange = 5,
|
||||
red = 6,
|
||||
green = 7
|
||||
},
|
||||
Fonts = {
|
||||
font1 = 0,
|
||||
font2 = 1,
|
||||
font3 = 2,
|
||||
font4 = 3,
|
||||
font5 = 4,
|
||||
font6 = 5,
|
||||
font7 = 6,
|
||||
font8 = 7,
|
||||
font9 = 8,
|
||||
font10 = 9,
|
||||
font11 = 10,
|
||||
font12 = 11,
|
||||
font13 = 12
|
||||
},
|
||||
Style = {
|
||||
normal = 3,
|
||||
light = 1
|
||||
},
|
||||
name = "",
|
||||
style = 0,
|
||||
color = 0,
|
||||
font = 0,
|
||||
|
||||
Set = function(name, style, color, font)
|
||||
FinanceOrganization.Name.name = name
|
||||
FinanceOrganization.Name.style = style
|
||||
FinanceOrganization.Name.color = color
|
||||
FinanceOrganization.Name.font = font
|
||||
FinanceOrganization.Office.stage = 0
|
||||
end
|
||||
},
|
||||
Office = {
|
||||
needToLoad = false,
|
||||
loaded = false,
|
||||
target = "prop_ex_office_text",
|
||||
prop = "ex_prop_ex_office_text",
|
||||
renderId = -1,
|
||||
movieId = -1,
|
||||
stage = 0,
|
||||
|
||||
Init = function()
|
||||
DrawEmptyRect(FinanceOrganization.Office.target, FinanceOrganization.Office.prop)
|
||||
end,
|
||||
Enable = function(state)
|
||||
FinanceOrganization.Office.needToLoad = state
|
||||
end,
|
||||
Clear = function()
|
||||
if IsNamedRendertargetRegistered(FinanceOrganization.Office.target) then
|
||||
ReleaseNamedRendertarget(GetHashKey(FinanceOrganization.Office.target))
|
||||
end
|
||||
|
||||
if HasNamedScaleformMovieLoaded(FinanceOrganization.Office.movieId) then
|
||||
SetScaleformMovieAsNoLongerNeeded(FinanceOrganization.Office.movieId)
|
||||
end
|
||||
|
||||
FinanceOrganization.Office.renderId = -1
|
||||
FinanceOrganization.Office.movieId = -1
|
||||
FinanceOrganization.Office.stage = 0
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
FinanceOrganization.Office.Init()
|
||||
|
||||
while true do
|
||||
if FinanceOrganization.Office.needToLoad then
|
||||
-- Need to load
|
||||
if Global.FinanceOffices.isInsideOffice1 or Global.FinanceOffices.isInsideOffice2 or Global.FinanceOffices.isInsideOffice3 or Global.FinanceOffices.isInsideOffice4 then
|
||||
DrawOrganizationName(FinanceOrganization.Name.name, FinanceOrganization.Name.style, FinanceOrganization.Name.color, FinanceOrganization.Name.font)
|
||||
|
||||
FinanceOrganization.Office.loaded = true
|
||||
|
||||
Citizen.Wait(0) -- We need to call all this every frame
|
||||
else
|
||||
Citizen.Wait(1000) -- We are not inside an office
|
||||
end
|
||||
elseif FinanceOrganization.Office.loaded then
|
||||
-- Loaded and need to unload
|
||||
FinanceOrganization.Office.Clear()
|
||||
FinanceOrganization.Office.loaded = false
|
||||
|
||||
Citizen.Wait(1000) -- We can wait longer when we don't need to display text
|
||||
else
|
||||
-- Not needed to load
|
||||
Citizen.Wait(1000) -- We can wait longer when we don't need to display text
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
function DrawOrganizationName(name, style, color, font)
|
||||
if FinanceOrganization.Office.stage == 0 then
|
||||
if FinanceOrganization.Office.renderId == -1 then
|
||||
FinanceOrganization.Office.renderId = CreateNamedRenderTargetForModel(FinanceOrganization.Office.target, FinanceOrganization.Office.prop)
|
||||
end
|
||||
|
||||
if FinanceOrganization.Office.movieId == -1 then
|
||||
FinanceOrganization.Office.movieId = RequestScaleformMovie("ORGANISATION_NAME")
|
||||
end
|
||||
|
||||
FinanceOrganization.Office.stage = 1
|
||||
elseif FinanceOrganization.Office.stage == 1 then
|
||||
if HasScaleformMovieLoaded(FinanceOrganization.Office.movieId) then
|
||||
local parameters = {
|
||||
p0 = {
|
||||
type = "string",
|
||||
value = name
|
||||
},
|
||||
p1 = {
|
||||
type = "int",
|
||||
value = style
|
||||
},
|
||||
p2 = {
|
||||
type = "int",
|
||||
value = color
|
||||
},
|
||||
p3 = {
|
||||
type = "int",
|
||||
value = font
|
||||
}
|
||||
}
|
||||
|
||||
SetupScaleform(FinanceOrganization.Office.movieId, "SET_ORGANISATION_NAME", parameters)
|
||||
|
||||
FinanceOrganization.Office.stage = 2
|
||||
else
|
||||
FinanceOrganization.Office.movieId = RequestScaleformMovie("ORGANISATION_NAME")
|
||||
end
|
||||
elseif FinanceOrganization.Office.stage == 2 then
|
||||
SetTextRenderId(FinanceOrganization.Office.renderId)
|
||||
SetScriptGfxDrawOrder(4)
|
||||
SetScriptGfxDrawBehindPausemenu(true)
|
||||
SetScriptGfxAlign(73, 73)
|
||||
DrawScaleformMovie(FinanceOrganization.Office.movieId, 0.196, 0.245, 0.46, 0.66, 255, 255, 255, 255, 0)
|
||||
SetTextRenderId(GetDefaultScriptRendertargetRenderId())
|
||||
ResetScriptGfxAlign()
|
||||
end
|
||||
end
|
155
resources/[standalone]/bob74_ipl/dlc_gunrunning/bunkers.lua
Normal file
155
resources/[standalone]/bob74_ipl/dlc_gunrunning/bunkers.lua
Normal file
@ -0,0 +1,155 @@
|
||||
exports('GetGunrunningBunkerObject', function()
|
||||
return GunrunningBunker
|
||||
end)
|
||||
|
||||
GunrunningBunker = {
|
||||
interiorId = 258561,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "gr_grdlc_interior_placement_interior_1_grdlc_int_02_milo_",
|
||||
|
||||
-- Load interiors IPLs.
|
||||
Load = function()
|
||||
EnableIpl(GunrunningBunker.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
-- Remove interiors IPLs.
|
||||
Remove = function()
|
||||
EnableIpl(GunrunningBunker.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Exterior = {
|
||||
ipl = {
|
||||
"gr_case0_bunkerclosed", -- Desert: 848.6175, 2996.567, 45.81612
|
||||
"gr_case1_bunkerclosed",-- SmokeTree: 2126.785, 3335.04, 48.21422
|
||||
"gr_case2_bunkerclosed", -- Scrapyard: 2493.654, 3140.399, 51.28789
|
||||
"gr_case3_bunkerclosed", -- Oilfields: 481.0465, 2995.135, 43.96672
|
||||
"gr_case4_bunkerclosed", -- RatonCanyon: -391.3216, 4363.728, 58.65862
|
||||
"gr_case5_bunkerclosed", -- Grapeseed: 1823.961, 4708.14, 42.4991
|
||||
"gr_case6_bunkerclosed", -- Farmhouse: 1570.372, 2254.549, 78.89397
|
||||
"gr_case7_bunkerclosed", -- Paletto: -783.0755, 5934.686, 24.31475
|
||||
"gr_case9_bunkerclosed", -- Route68: 24.43542, 2959.705, 58.35517
|
||||
"gr_case10_bunkerclosed", -- Zancudo: -3058.714, 3329.19, 12.5844
|
||||
"gr_case11_bunkerclosed" -- Great Ocean Highway: -3180.466, 1374.192, 19.9597
|
||||
},
|
||||
|
||||
-- Load exteriors IPLs.
|
||||
Load = function()
|
||||
EnableIpl(GunrunningBunker.Ipl.Exterior.ipl, true)
|
||||
end,
|
||||
-- Remove exteriors IPLs.
|
||||
Remove = function()
|
||||
EnableIpl(GunrunningBunker.Ipl.Exterior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Style = {
|
||||
default = "Bunker_Style_A",
|
||||
blue = "Bunker_Style_B",
|
||||
yellow = "Bunker_Style_C",
|
||||
|
||||
-- Set the style (color) of the bunker.
|
||||
-- style: Wall color (values: GunrunningBunker.Style.default / GunrunningBunker.Style.blue / GunrunningBunker.Style.yellow)
|
||||
-- refresh: Reload the whole interior (values: true / false)
|
||||
Set = function(style, refresh)
|
||||
GunrunningBunker.Style.Clear(false)
|
||||
|
||||
SetIplPropState(GunrunningBunker.interiorId, style, true, refresh)
|
||||
end,
|
||||
-- Removes the style.
|
||||
-- refresh: Reload the whole interior (values: true / false)
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(GunrunningBunker.interiorId, {
|
||||
GunrunningBunker.Style.default,
|
||||
GunrunningBunker.Style.blue,
|
||||
GunrunningBunker.Style.yellow
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Tier = {
|
||||
default = "standard_bunker_set",
|
||||
upgrade = "upgrade_bunker_set",
|
||||
|
||||
-- Set the tier (quality) of the bunker.
|
||||
-- tier: Upgrade state (values: GunrunningBunker.Tier.default / GunrunningBunker.Tier.upgrade)
|
||||
-- refresh: Reload the whole interior (values: true / false)
|
||||
Set = function(tier, refresh)
|
||||
GunrunningBunker.Tier.Clear(false)
|
||||
|
||||
SetIplPropState(GunrunningBunker.interiorId, tier, true, refresh)
|
||||
end,
|
||||
-- Removes the tier.
|
||||
-- refresh: Reload the whole interior (values: true / false)
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(GunrunningBunker.interiorId, {
|
||||
GunrunningBunker.Tier.default,
|
||||
GunrunningBunker.Tier.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Security = {
|
||||
noEntryGate = "",
|
||||
default = "standard_security_set",
|
||||
upgrade = "security_upgrade",
|
||||
|
||||
-- Set the security stage of the bunker.
|
||||
-- security: Upgrade state (values: GunrunningBunker.Security.default / GunrunningBunker.Security.upgrade)
|
||||
-- refresh: Reload the whole interior (values: true / false)
|
||||
Set = function(security, refresh)
|
||||
GunrunningBunker.Security.Clear(false)
|
||||
|
||||
if security ~= "" then
|
||||
SetIplPropState(GunrunningBunker.interiorId, security, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(GunrunningBunker.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
-- Removes the security.
|
||||
-- refresh: Reload the whole interior (values: true / false)
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(GunrunningBunker.interiorId, {
|
||||
GunrunningBunker.Security.default,
|
||||
GunrunningBunker.Security.upgrade
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
office = "Office_Upgrade_set", -- Office interior
|
||||
officeLocked = "Office_blocker_set", -- Metal door blocking access to the office
|
||||
locker = "gun_locker_upgrade", -- Locker next to the office door
|
||||
rangeLights = "gun_range_lights", -- Lights next to the shooting range
|
||||
rangeWall = "gun_wall_blocker", -- Wall blocking access to the shooting range
|
||||
rangeLocked = "gun_range_blocker_set", -- Metal door blocking access to the shooting range
|
||||
schematics = "Gun_schematic_set", -- Gun schematic on the table and whiteboard
|
||||
|
||||
-- Enable or disable a detail.
|
||||
-- details: Prop to enable or disable (values: GunrunningBunker.Details.office / GunrunningBunker.Details.officeLocked / GunrunningBunker.Details.locker...)
|
||||
-- state: Enable or Disable (values: true / false)
|
||||
-- refresh: Reload the whole interior (values: true / false)
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GunrunningBunker.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GunrunningBunker.Ipl.Interior.Load()
|
||||
GunrunningBunker.Ipl.Exterior.Load()
|
||||
|
||||
GunrunningBunker.Style.Set(GunrunningBunker.Style.default)
|
||||
GunrunningBunker.Tier.Set(GunrunningBunker.Tier.default)
|
||||
GunrunningBunker.Security.Set(GunrunningBunker.Security.default)
|
||||
|
||||
GunrunningBunker.Details.Enable(GunrunningBunker.Details.office, true)
|
||||
GunrunningBunker.Details.Enable(GunrunningBunker.Details.officeLocked, false)
|
||||
GunrunningBunker.Details.Enable(GunrunningBunker.Details.locker, true)
|
||||
GunrunningBunker.Details.Enable(GunrunningBunker.Details.rangeLights, true)
|
||||
GunrunningBunker.Details.Enable(GunrunningBunker.Details.rangeWall, false)
|
||||
GunrunningBunker.Details.Enable(GunrunningBunker.Details.rangeLocked, false)
|
||||
GunrunningBunker.Details.Enable(GunrunningBunker.Details.schematics, false)
|
||||
|
||||
-- Must be called in order to spawn or remove the props
|
||||
RefreshInterior(GunrunningBunker.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/dlc_gunrunning/yacht.lua
Normal file
57
resources/[standalone]/bob74_ipl/dlc_gunrunning/yacht.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- Gunrunning Yacht: -1363.724, 6734.108, 2.44598
|
||||
exports('GetGunrunningYachtObject', function()
|
||||
return GunrunningYacht
|
||||
end)
|
||||
|
||||
GunrunningYacht = {
|
||||
ipl = {
|
||||
"gr_heist_yacht2",
|
||||
"gr_heist_yacht2_bar",
|
||||
"gr_heist_yacht2_bar_lod",
|
||||
"gr_heist_yacht2_bedrm",
|
||||
"gr_heist_yacht2_bedrm_lod",
|
||||
"gr_heist_yacht2_bridge",
|
||||
"gr_heist_yacht2_bridge_lod",
|
||||
"gr_heist_yacht2_enginrm",
|
||||
"gr_heist_yacht2_enginrm_lod",
|
||||
"gr_heist_yacht2_lod",
|
||||
"gr_heist_yacht2_lounge",
|
||||
"gr_heist_yacht2_lounge_lod",
|
||||
"gr_heist_yacht2_slod",
|
||||
},
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(GunrunningYacht.ipl, state)
|
||||
end,
|
||||
Water = {
|
||||
modelHash = `apa_mp_apa_yacht_jacuzzi_ripple1`,
|
||||
|
||||
Enable = function(state)
|
||||
local handle = GetClosestObjectOfType(-1369.0, 6736.0, 5.40, 5.0, GunrunningYacht.Water.modelHash, false, false, false)
|
||||
|
||||
if state then
|
||||
-- Enable
|
||||
if handle == 0 then
|
||||
RequestModel(GunrunningYacht.Water.modelHash)
|
||||
while not HasModelLoaded(GunrunningYacht.Water.modelHash) do
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
local water = CreateObjectNoOffset(GunrunningYacht.Water.modelHash, -1369.0, 6736.0, 5.40, false, false, false)
|
||||
|
||||
SetEntityAsMissionEntity(water, false, false)
|
||||
end
|
||||
else
|
||||
-- Disable
|
||||
if handle ~= 0 then
|
||||
SetEntityAsMissionEntity(handle, false, false)
|
||||
DeleteEntity(handle)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GunrunningYacht.Enable(true)
|
||||
end
|
||||
}
|
28
resources/[standalone]/bob74_ipl/dlc_heists/carrier.lua
Normal file
28
resources/[standalone]/bob74_ipl/dlc_heists/carrier.lua
Normal file
@ -0,0 +1,28 @@
|
||||
-- Heist Carrier: 3082.3117 -4717.1191 15.2622
|
||||
exports('GetHeistCarrierObject', function()
|
||||
return HeistCarrier
|
||||
end)
|
||||
|
||||
HeistCarrier = {
|
||||
ipl = {
|
||||
"hei_carrier",
|
||||
"hei_carrier_int1",
|
||||
"hei_carrier_int1_lod",
|
||||
"hei_carrier_int2",
|
||||
"hei_carrier_int2_lod",
|
||||
"hei_carrier_int3",
|
||||
"hei_carrier_int3_lod",
|
||||
"hei_carrier_int4",
|
||||
"hei_carrier_int4_lod",
|
||||
"hei_carrier_int5",
|
||||
"hei_carrier_int5_lod",
|
||||
"hei_carrier_int6",
|
||||
"hei_carrier_int6_lod",
|
||||
"hei_carrier_lod",
|
||||
"hei_carrier_slod"
|
||||
},
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(HeistCarrier.ipl, state)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/dlc_heists/yacht.lua
Normal file
57
resources/[standalone]/bob74_ipl/dlc_heists/yacht.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- Heist Yatch: -2043.974,-1031.582, 11.981
|
||||
exports('GetHeistYachtObject', function()
|
||||
return HeistYacht
|
||||
end)
|
||||
|
||||
HeistYacht = {
|
||||
ipl = {
|
||||
"hei_yacht_heist",
|
||||
"hei_yacht_heist_bar",
|
||||
"hei_yacht_heist_bar_lod",
|
||||
"hei_yacht_heist_bedrm",
|
||||
"hei_yacht_heist_bedrm_lod",
|
||||
"hei_yacht_heist_bridge",
|
||||
"hei_yacht_heist_bridge_lod",
|
||||
"hei_yacht_heist_enginrm",
|
||||
"hei_yacht_heist_enginrm_lod",
|
||||
"hei_yacht_heist_lod",
|
||||
"hei_yacht_heist_lounge",
|
||||
"hei_yacht_heist_lounge_lod",
|
||||
"hei_yacht_heist_slod"
|
||||
},
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(HeistYacht.ipl, state)
|
||||
end,
|
||||
Water = {
|
||||
modelHash = `apa_mp_apa_yacht_jacuzzi_ripple1`,
|
||||
|
||||
Enable = function(state)
|
||||
local handle = GetClosestObjectOfType(-2023.773, -1038.0, 5.40, 5.0, HeistYacht.Water.modelHash, false, false, false)
|
||||
|
||||
if state then
|
||||
-- Enable
|
||||
if handle == 0 then
|
||||
RequestModel(HeistYacht.Water.modelHash)
|
||||
while not HasModelLoaded(HeistYacht.Water.modelHash) do
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
local water = CreateObjectNoOffset(HeistYacht.Water.modelHash, -2023.773, -1038.0, 5.40, false, false, false)
|
||||
|
||||
SetEntityAsMissionEntity(water, false, false)
|
||||
end
|
||||
else
|
||||
-- Disable
|
||||
if handle ~= 0 then
|
||||
SetEntityAsMissionEntity(handle, false, false)
|
||||
DeleteEntity(handle)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
HeistYacht.Enable(true)
|
||||
end
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
-- Apartment 1: -1462.28100000, -539.62760000, 72.44434000
|
||||
exports('GetHLApartment1Object', function()
|
||||
return HLApartment1
|
||||
end)
|
||||
|
||||
HLApartment1 = {
|
||||
interiorId = 145921,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "mpbusiness_int_placement_interior_v_mp_apt_h_01_milo_",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(HLApartment1.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(HLApartment1.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
HLApartment1.Ipl.Interior.Load()
|
||||
HLApartment1.Strip.Enable({
|
||||
HLApartment1.Strip.A,
|
||||
HLApartment1.Strip.B,
|
||||
HLApartment1.Strip.C
|
||||
}, false)
|
||||
HLApartment1.Booze.Enable({
|
||||
HLApartment1.Booze.A,
|
||||
HLApartment1.Booze.B,
|
||||
HLApartment1.Booze.C
|
||||
}, false)
|
||||
HLApartment1.Smoke.Enable({
|
||||
HLApartment1.Smoke.A,
|
||||
HLApartment1.Smoke.B,
|
||||
HLApartment1.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(HLApartment1.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
-- Apartment 2: -914.90260000, -374.87310000, 112.6748
|
||||
exports('GetHLApartment2Object', function()
|
||||
return HLApartment2
|
||||
end)
|
||||
|
||||
HLApartment2 = {
|
||||
interiorId = 146177,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "mpbusiness_int_placement_interior_v_mp_apt_h_01_milo__1",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(HLApartment2.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(HLApartment2.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
HLApartment2.Ipl.Interior.Load()
|
||||
HLApartment2.Strip.Enable({
|
||||
HLApartment2.Strip.A,
|
||||
HLApartment2.Strip.B,
|
||||
HLApartment2.Strip.C
|
||||
}, false)
|
||||
HLApartment2.Booze.Enable({
|
||||
HLApartment2.Booze.A,
|
||||
HLApartment2.Booze.B,
|
||||
HLApartment2.Booze.C
|
||||
}, false)
|
||||
HLApartment2.Smoke.Enable({
|
||||
HLApartment2.Smoke.A,
|
||||
HLApartment2.Smoke.B,
|
||||
HLApartment2.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(HLApartment2.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
-- Apartment 3: -609.56690000, 51.28212000, 96.60023000
|
||||
exports('GetHLApartment3Object', function()
|
||||
return HLApartment3
|
||||
end)
|
||||
|
||||
HLApartment3 = {
|
||||
interiorId = 146689,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "mpbusiness_int_placement_interior_v_mp_apt_h_01_milo__2",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(HLApartment3.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(HLApartment3.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment3.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment3.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment3.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
HLApartment3.Ipl.Interior.Load()
|
||||
HLApartment3.Strip.Enable({
|
||||
HLApartment3.Strip.A,
|
||||
HLApartment3.Strip.B,
|
||||
HLApartment3.Strip.C
|
||||
}, false)
|
||||
HLApartment3.Booze.Enable({
|
||||
HLApartment3.Booze.A,
|
||||
HLApartment3.Booze.B,
|
||||
HLApartment3.Booze.C
|
||||
}, false)
|
||||
HLApartment3.Smoke.Enable({
|
||||
HLApartment3.Smoke.A,
|
||||
HLApartment3.Smoke.B,
|
||||
HLApartment3.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(HLApartment3.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
-- Apartment 4: -778.50610000, 331.31600000, 210.39720
|
||||
exports('GetHLApartment4Object', function()
|
||||
return HLApartment4
|
||||
end)
|
||||
|
||||
HLApartment4 = {
|
||||
interiorId = 146945,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "mpbusiness_int_placement_interior_v_mp_apt_h_01_milo__3",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(HLApartment4.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(HLApartment4.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment4.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment4.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment4.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
HLApartment4.Ipl.Interior.Load()
|
||||
HLApartment4.Strip.Enable({
|
||||
HLApartment4.Strip.A,
|
||||
HLApartment4.Strip.B,
|
||||
HLApartment4.Strip.C
|
||||
}, false)
|
||||
HLApartment4.Booze.Enable({
|
||||
HLApartment4.Booze.A,
|
||||
HLApartment4.Booze.B,
|
||||
HLApartment4.Booze.C
|
||||
}, false)
|
||||
HLApartment4.Smoke.Enable({
|
||||
HLApartment4.Smoke.A,
|
||||
HLApartment4.Smoke.B,
|
||||
HLApartment4.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(HLApartment4.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
-- Apartment 5: -22.61353000, -590.14320000, 78.430910
|
||||
exports('GetHLApartment5Object', function()
|
||||
return HLApartment5
|
||||
end)
|
||||
|
||||
HLApartment5 = {
|
||||
interiorId = 147201,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "mpbusiness_int_placement_interior_v_mp_apt_h_01_milo__4",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(HLApartment5.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(HLApartment5.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment5.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment5.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment5.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
HLApartment5.Ipl.Interior.Load()
|
||||
HLApartment5.Strip.Enable({
|
||||
HLApartment5.Strip.A,
|
||||
HLApartment5.Strip.B,
|
||||
HLApartment5.Strip.C
|
||||
}, false)
|
||||
HLApartment5.Booze.Enable({
|
||||
HLApartment5.Booze.A,
|
||||
HLApartment5.Booze.B,
|
||||
HLApartment5.Booze.C
|
||||
}, false)
|
||||
HLApartment5.Smoke.Enable({
|
||||
HLApartment5.Smoke.A,
|
||||
HLApartment5.Smoke.B,
|
||||
HLApartment5.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(HLApartment5.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
-- Apartment 6: -609.56690000, 51.28212000, -183.98080
|
||||
exports('GetHLApartment6Object', function()
|
||||
return HLApartment6
|
||||
end)
|
||||
|
||||
HLApartment6 = {
|
||||
interiorId = 147457,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "mpbusiness_int_placement_interior_v_mp_apt_h_01_milo__5",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(HLApartment6.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(HLApartment6.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment6.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment6.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(HLApartment6.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
HLApartment6.Ipl.Interior.Load()
|
||||
HLApartment6.Strip.Enable({
|
||||
HLApartment6.Strip.A,
|
||||
HLApartment6.Strip.B,
|
||||
HLApartment6.Strip.C
|
||||
}, false)
|
||||
HLApartment6.Booze.Enable({
|
||||
HLApartment6.Booze.A,
|
||||
HLApartment6.Booze.B,
|
||||
HLApartment6.Booze.C
|
||||
}, false)
|
||||
HLApartment6.Smoke.Enable({
|
||||
HLApartment6.Smoke.A,
|
||||
HLApartment6.Smoke.B,
|
||||
HLApartment6.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(HLApartment6.interiorId)
|
||||
end
|
||||
}
|
202
resources/[standalone]/bob74_ipl/dlc_import/garage1.lua
Normal file
202
resources/[standalone]/bob74_ipl/dlc_import/garage1.lua
Normal file
@ -0,0 +1,202 @@
|
||||
-- Garage 1: Arcadius Business Centre
|
||||
exports('GetImportCEOGarage1Object', function()
|
||||
return ImportCEOGarage1
|
||||
end)
|
||||
|
||||
ImportCEOGarage1 = {
|
||||
Part = {
|
||||
Garage1 = { -- -191.0133, -579.1428, 135.0000
|
||||
interiorId = 253441,
|
||||
ipl = "imp_dt1_02_cargarage_a"
|
||||
},
|
||||
Garage2 = { -- -117.4989, -568.1132, 135.0000
|
||||
interiorId = 253697,
|
||||
ipl = "imp_dt1_02_cargarage_b"
|
||||
},
|
||||
Garage3 = { -- -136.0780, -630.1852, 135.0000
|
||||
interiorId = 253953,
|
||||
ipl = "imp_dt1_02_cargarage_c"
|
||||
},
|
||||
ModShop = { -- -146.6166, -596.6301, 166.0000
|
||||
interiorId = 254209,
|
||||
ipl = "imp_dt1_02_modgarage"
|
||||
},
|
||||
|
||||
Load = function(part)
|
||||
EnableIpl(part.ipl, true)
|
||||
end,
|
||||
Remove = function(part)
|
||||
EnableIpl(part.ipl, false)
|
||||
end,
|
||||
Clear = function()
|
||||
EnableIpl({
|
||||
ImportCEOGarage1.Part.Garage1.ipl,
|
||||
ImportCEOGarage1.Part.Garage2.ipl,
|
||||
ImportCEOGarage1.Part.Garage3.ipl
|
||||
}, false)
|
||||
end,
|
||||
},
|
||||
Style = {
|
||||
concrete = "garage_decor_01",
|
||||
plain = "garage_decor_02",
|
||||
marble = "garage_decor_03",
|
||||
wooden = "garage_decor_04",
|
||||
|
||||
Set = function(part, style, refresh)
|
||||
ImportCEOGarage1.Style.Clear(part)
|
||||
|
||||
SetIplPropState(part.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage1.Style.concrete,
|
||||
ImportCEOGarage1.Style.plain,
|
||||
ImportCEOGarage1.Style.marble,
|
||||
ImportCEOGarage1.Style.wooden
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
Numbering = {
|
||||
none = "",
|
||||
Level1 = {
|
||||
style1 = "numbering_style01_n1",
|
||||
style2 = "numbering_style02_n1",
|
||||
style3 = "numbering_style03_n1",
|
||||
style4 = "numbering_style04_n1",
|
||||
style5 = "numbering_style05_n1",
|
||||
style6 = "numbering_style06_n1",
|
||||
style7 = "numbering_style07_n1",
|
||||
style8 = "numbering_style08_n1",
|
||||
style9 = "numbering_style09_n1"
|
||||
},
|
||||
Level2 = {
|
||||
style1 = "numbering_style01_n2",
|
||||
style2 = "numbering_style02_n2",
|
||||
style3 = "numbering_style03_n2",
|
||||
style4 = "numbering_style04_n2",
|
||||
style5 = "numbering_style05_n2",
|
||||
style6 = "numbering_style06_n2",
|
||||
style7 = "numbering_style07_n2",
|
||||
style8 = "numbering_style08_n2",
|
||||
style9 = "numbering_style09_n2"
|
||||
},
|
||||
Level3 = {
|
||||
style1 = "numbering_style01_n3",
|
||||
style2 = "numbering_style02_n3",
|
||||
style3 = "numbering_style03_n3",
|
||||
style4 = "numbering_style04_n3",
|
||||
style5 = "numbering_style05_n3",
|
||||
style6 = "numbering_style06_n3",
|
||||
style7 = "numbering_style07_n3",
|
||||
style8 = "numbering_style08_n3",
|
||||
style9 = "numbering_style09_n3"
|
||||
},
|
||||
|
||||
Set = function(part, num, refresh)
|
||||
ImportCEOGarage1.Numbering.Clear(part)
|
||||
|
||||
if num ~= nil then
|
||||
SetIplPropState(part.interiorId, num, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(part.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage1.Numbering.Level1,
|
||||
ImportCEOGarage1.Numbering.Level2,
|
||||
ImportCEOGarage1.Numbering.Level3
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
Lighting = {
|
||||
none = "",
|
||||
style1 = "lighting_option01",
|
||||
style2 = "lighting_option02",
|
||||
style3 = "lighting_option03",
|
||||
style4 = "lighting_option04",
|
||||
style5 = "lighting_option05",
|
||||
style6 = "lighting_option06",
|
||||
style7 = "lighting_option07",
|
||||
style8 = "lighting_option08",
|
||||
style9 = "lighting_option09",
|
||||
|
||||
Set = function(part, light, refresh)
|
||||
ImportCEOGarage1.Lighting.Clear(part)
|
||||
|
||||
if light ~= nil then
|
||||
SetIplPropState(part.interiorId, light, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(part.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage1.Lighting.style1, ImportCEOGarage1.Lighting.style2, ImportCEOGarage1.Lighting.style3,
|
||||
ImportCEOGarage1.Lighting.style4, ImportCEOGarage1.Lighting.style5, ImportCEOGarage1.Lighting.style6,
|
||||
ImportCEOGarage1.Lighting.style7, ImportCEOGarage1.Lighting.style8, ImportCEOGarage1.Lighting.style9
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
ModShop = {
|
||||
Floor = {
|
||||
default = "",
|
||||
city = "floor_vinyl_01",
|
||||
seabed = "floor_vinyl_02",
|
||||
aliens = "floor_vinyl_03",
|
||||
clouds = "floor_vinyl_04",
|
||||
money = "floor_vinyl_05",
|
||||
zebra = "floor_vinyl_06",
|
||||
blackWhite = "floor_vinyl_07",
|
||||
barcode = "floor_vinyl_08",
|
||||
paintbrushBW = "floor_vinyl_09",
|
||||
grid = "floor_vinyl_10",
|
||||
splashes = "floor_vinyl_11",
|
||||
squares = "floor_vinyl_12",
|
||||
mosaic = "floor_vinyl_13",
|
||||
paintbrushColor = "floor_vinyl_14",
|
||||
curvesColor = "floor_vinyl_15",
|
||||
marbleBrown = "floor_vinyl_16",
|
||||
marbleBlue = "floor_vinyl_17",
|
||||
marbleBW = "floor_vinyl_18",
|
||||
maze = "floor_vinyl_19",
|
||||
|
||||
Set = function(floor, refresh)
|
||||
ImportCEOGarage1.ModShop.Floor.Clear()
|
||||
|
||||
if floor ~= nil then
|
||||
SetIplPropState(ImportCEOGarage1.Part.ModShop.interiorId, floor, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(ImportCEOGarage1.Part.ModShop.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
SetIplPropState(ImportCEOGarage1.Part.ModShop.interiorId, {
|
||||
ImportCEOGarage1.ModShop.Floor.city, ImportCEOGarage1.ModShop.Floor.seabed, ImportCEOGarage1.ModShop.Floor.aliens,
|
||||
ImportCEOGarage1.ModShop.Floor.clouds, ImportCEOGarage1.ModShop.Floor.money, ImportCEOGarage1.ModShop.Floor.zebra,
|
||||
ImportCEOGarage1.ModShop.Floor.blackWhite, ImportCEOGarage1.ModShop.Floor.barcode, ImportCEOGarage1.ModShop.Floor.paintbrushBW,
|
||||
ImportCEOGarage1.ModShop.Floor.grid, ImportCEOGarage1.ModShop.Floor.splashes, ImportCEOGarage1.ModShop.Floor.squares,
|
||||
ImportCEOGarage1.ModShop.Floor.mosaic, ImportCEOGarage1.ModShop.Floor.paintbrushColor, ImportCEOGarage1.ModShop.Floor.curvesColor,
|
||||
ImportCEOGarage1.ModShop.Floor.marbleBrown, ImportCEOGarage1.ModShop.Floor.marbleBlue, ImportCEOGarage1.ModShop.Floor.marbleBW,
|
||||
ImportCEOGarage1.ModShop.Floor.maze
|
||||
}, false, true)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ImportCEOGarage1.Part.Load(ImportCEOGarage1.Part.Garage1)
|
||||
ImportCEOGarage1.Style.Set(ImportCEOGarage1.Part.Garage1, ImportCEOGarage1.Style.concrete)
|
||||
ImportCEOGarage1.Numbering.Set(ImportCEOGarage1.Part.Garage1, ImportCEOGarage1.Numbering.Level1.style1)
|
||||
ImportCEOGarage1.Lighting.Set(ImportCEOGarage1.Part.Garage1, ImportCEOGarage1.Lighting.style1, true)
|
||||
|
||||
ImportCEOGarage1.Part.Load(ImportCEOGarage1.Part.ModShop)
|
||||
ImportCEOGarage1.ModShop.Floor.Set(ImportCEOGarage1.ModShop.Floor.default, true)
|
||||
end
|
||||
}
|
201
resources/[standalone]/bob74_ipl/dlc_import/garage2.lua
Normal file
201
resources/[standalone]/bob74_ipl/dlc_import/garage2.lua
Normal file
@ -0,0 +1,201 @@
|
||||
-- Garage 2: Maze Bank Building
|
||||
exports('GetImportCEOGarage2Object', function()
|
||||
return ImportCEOGarage2
|
||||
end)
|
||||
|
||||
ImportCEOGarage2 = {
|
||||
Part = {
|
||||
Garage1 = { -- -84.2193, -823.0851, 221.0000
|
||||
interiorId = 254465,
|
||||
ipl = "imp_dt1_11_cargarage_a"
|
||||
},
|
||||
Garage2 = { -- -69.8627, -824.7498, 221.0000
|
||||
interiorId = 254721,
|
||||
ipl = "imp_dt1_11_cargarage_b"
|
||||
},
|
||||
Garage3 = { -- -80.4318, -813.2536, 221.0000
|
||||
interiorId = 254977,
|
||||
ipl = "imp_dt1_11_cargarage_c"
|
||||
},
|
||||
ModShop = { -- -73.9039, -821.6204, 284.0000
|
||||
interiorId = 255233,
|
||||
ipl = "imp_dt1_11_modgarage"
|
||||
},
|
||||
|
||||
Load = function(part)
|
||||
EnableIpl(part.ipl, true)
|
||||
end,
|
||||
Remove = function(part)
|
||||
EnableIpl(part.ipl, false)
|
||||
end,
|
||||
Clear = function()
|
||||
EnableIpl({
|
||||
ImportCEOGarage2.Part.Garage1.ipl,
|
||||
ImportCEOGarage2.Part.Garage2.ipl,
|
||||
ImportCEOGarage2.Part.Garage3.ipl
|
||||
}, false)
|
||||
end,
|
||||
},
|
||||
Style = {
|
||||
concrete = "garage_decor_01",
|
||||
plain = "garage_decor_02",
|
||||
marble = "garage_decor_03",
|
||||
wooden = "garage_decor_04",
|
||||
|
||||
Set = function(part, style, refresh)
|
||||
ImportCEOGarage2.Style.Clear(part)
|
||||
|
||||
SetIplPropState(part.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage2.Style.concrete,
|
||||
ImportCEOGarage2.Style.plain,
|
||||
ImportCEOGarage2.Style.marble,
|
||||
ImportCEOGarage2.Style.wooden
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
Numbering = {
|
||||
none = "",
|
||||
Level1 = {
|
||||
style1 = "numbering_style01_n1",
|
||||
style2 = "numbering_style02_n1",
|
||||
style3 = "numbering_style03_n1",
|
||||
style4 = "numbering_style04_n1",
|
||||
style5 = "numbering_style05_n1",
|
||||
style6 = "numbering_style06_n1",
|
||||
style7 = "numbering_style07_n1",
|
||||
style8 = "numbering_style08_n1",
|
||||
style9 = "numbering_style09_n1"
|
||||
},
|
||||
Level2 = {
|
||||
style1 = "numbering_style01_n2",
|
||||
style2 = "numbering_style02_n2",
|
||||
style3 = "numbering_style03_n2",
|
||||
style4 = "numbering_style04_n2",
|
||||
style5 = "numbering_style05_n2",
|
||||
style6 = "numbering_style06_n2",
|
||||
style7 = "numbering_style07_n2",
|
||||
style8 = "numbering_style08_n2",
|
||||
style9 = "numbering_style09_n2"
|
||||
},
|
||||
Level3 = {
|
||||
style1 = "numbering_style01_n3",
|
||||
style2 = "numbering_style02_n3",
|
||||
style3 = "numbering_style03_n3",
|
||||
style4 = "numbering_style04_n3",
|
||||
style5 = "numbering_style05_n3",
|
||||
style6 = "numbering_style06_n3",
|
||||
style7 = "numbering_style07_n3",
|
||||
style8 = "numbering_style08_n3",
|
||||
style9 = "numbering_style09_n3"
|
||||
},
|
||||
Set = function(part, num, refresh)
|
||||
ImportCEOGarage2.Numbering.Clear(part)
|
||||
|
||||
if num ~= nil then
|
||||
SetIplPropState(part.interiorId, num, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(part.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage2.Numbering.Level1,
|
||||
ImportCEOGarage2.Numbering.Level2,
|
||||
ImportCEOGarage2.Numbering.Level3
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
Lighting = {
|
||||
none = "",
|
||||
style1 = "lighting_option01",
|
||||
style2 = "lighting_option02",
|
||||
style3 = "lighting_option03",
|
||||
style4 = "lighting_option04",
|
||||
style5 = "lighting_option05",
|
||||
style6 = "lighting_option06",
|
||||
style7 = "lighting_option07",
|
||||
style8 = "lighting_option08",
|
||||
style9 = "lighting_option09",
|
||||
|
||||
Set = function(part, light, refresh)
|
||||
ImportCEOGarage2.Lighting.Clear(part)
|
||||
|
||||
if light ~= nil then
|
||||
SetIplPropState(part.interiorId, light, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(part.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage2.Lighting.style1, ImportCEOGarage2.Lighting.style2, ImportCEOGarage2.Lighting.style3,
|
||||
ImportCEOGarage2.Lighting.style4, ImportCEOGarage2.Lighting.style5, ImportCEOGarage2.Lighting.style6,
|
||||
ImportCEOGarage2.Lighting.style7, ImportCEOGarage2.Lighting.style8, ImportCEOGarage2.Lighting.style9
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
ModShop = {
|
||||
Floor = {
|
||||
default = "",
|
||||
city = "floor_vinyl_01",
|
||||
seabed = "floor_vinyl_02",
|
||||
aliens = "floor_vinyl_03",
|
||||
clouds = "floor_vinyl_04",
|
||||
money = "floor_vinyl_05",
|
||||
zebra = "floor_vinyl_06",
|
||||
blackWhite = "floor_vinyl_07",
|
||||
barcode = "floor_vinyl_08",
|
||||
paintbrushBW = "floor_vinyl_09",
|
||||
grid = "floor_vinyl_10",
|
||||
splashes = "floor_vinyl_11",
|
||||
squares = "floor_vinyl_12",
|
||||
mosaic = "floor_vinyl_13",
|
||||
paintbrushColor = "floor_vinyl_14",
|
||||
curvesColor = "floor_vinyl_15",
|
||||
marbleBrown = "floor_vinyl_16",
|
||||
marbleBlue = "floor_vinyl_17",
|
||||
marbleBW = "floor_vinyl_18",
|
||||
maze = "floor_vinyl_19",
|
||||
|
||||
Set = function(floor, refresh)
|
||||
ImportCEOGarage2.ModShop.Floor.Clear()
|
||||
|
||||
if floor ~= nil then
|
||||
SetIplPropState(ImportCEOGarage2.Part.ModShop.interiorId, floor, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(ImportCEOGarage2.Part.ModShop.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
SetIplPropState(ImportCEOGarage2.Part.ModShop.interiorId, {
|
||||
ImportCEOGarage2.ModShop.Floor.city, ImportCEOGarage2.ModShop.Floor.seabed, ImportCEOGarage2.ModShop.Floor.aliens,
|
||||
ImportCEOGarage2.ModShop.Floor.clouds, ImportCEOGarage2.ModShop.Floor.money, ImportCEOGarage2.ModShop.Floor.zebra,
|
||||
ImportCEOGarage2.ModShop.Floor.blackWhite, ImportCEOGarage2.ModShop.Floor.barcode, ImportCEOGarage2.ModShop.Floor.paintbrushBW,
|
||||
ImportCEOGarage2.ModShop.Floor.grid, ImportCEOGarage2.ModShop.Floor.splashes, ImportCEOGarage2.ModShop.Floor.squares,
|
||||
ImportCEOGarage2.ModShop.Floor.mosaic, ImportCEOGarage2.ModShop.Floor.paintbrushColor, ImportCEOGarage2.ModShop.Floor.curvesColor,
|
||||
ImportCEOGarage2.ModShop.Floor.marbleBrown, ImportCEOGarage2.ModShop.Floor.marbleBlue, ImportCEOGarage2.ModShop.Floor.marbleBW,
|
||||
ImportCEOGarage2.ModShop.Floor.maze
|
||||
}, false, true)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ImportCEOGarage2.Part.Load(ImportCEOGarage2.Part.Garage1)
|
||||
ImportCEOGarage2.Style.Set(ImportCEOGarage2.Part.Garage1, ImportCEOGarage2.Style.concrete, false)
|
||||
ImportCEOGarage2.Numbering.Set(ImportCEOGarage2.Part.Garage1, ImportCEOGarage2.Numbering.Level1.style1, false)
|
||||
ImportCEOGarage2.Lighting.Set(ImportCEOGarage2.Part.Garage1, ImportCEOGarage2.Lighting.style1, true)
|
||||
|
||||
ImportCEOGarage2.Part.Load(ImportCEOGarage2.Part.ModShop)
|
||||
ImportCEOGarage2.ModShop.Floor.Set(ImportCEOGarage2.ModShop.Floor.default, true)
|
||||
end
|
||||
}
|
201
resources/[standalone]/bob74_ipl/dlc_import/garage3.lua
Normal file
201
resources/[standalone]/bob74_ipl/dlc_import/garage3.lua
Normal file
@ -0,0 +1,201 @@
|
||||
-- Garage 3: Lom Bank
|
||||
exports('GetImportCEOGarage3Object', function()
|
||||
return ImportCEOGarage3
|
||||
end)
|
||||
|
||||
ImportCEOGarage3 = {
|
||||
Part = {
|
||||
Garage1 = { -- -1581.1120, -567.2450, 85.5000
|
||||
interiorId = 255489,
|
||||
ipl = "imp_sm_13_cargarage_a"
|
||||
},
|
||||
Garage2 = { -- -1568.7390, -562.0455, 85.5000
|
||||
interiorId = 255745,
|
||||
ipl = "imp_sm_13_cargarage_b"
|
||||
},
|
||||
Garage3 = { -- -1563.5570, -574.4314, 85.5000
|
||||
interiorId = 256001,
|
||||
ipl = "imp_sm_13_cargarage_c"
|
||||
},
|
||||
ModShop = { -- -1578.0230, -576.4251, 104.2000
|
||||
interiorId = 256257,
|
||||
ipl = "imp_sm_13_modgarage"
|
||||
},
|
||||
|
||||
Load = function(part)
|
||||
EnableIpl(part.ipl, true)
|
||||
end,
|
||||
Remove = function(part)
|
||||
EnableIpl(part.ipl, false)
|
||||
end,
|
||||
Clear = function()
|
||||
EnableIpl({
|
||||
ImportCEOGarage3.Part.Garage1.ipl,
|
||||
ImportCEOGarage3.Part.Garage2.ipl,
|
||||
ImportCEOGarage3.Part.Garage3.ipl
|
||||
}, false)
|
||||
end,
|
||||
},
|
||||
Style = {
|
||||
concrete = "garage_decor_01",
|
||||
plain = "garage_decor_02",
|
||||
marble = "garage_decor_03",
|
||||
wooden = "garage_decor_04",
|
||||
|
||||
Set = function(part, style, refresh)
|
||||
ImportCEOGarage3.Style.Clear(part)
|
||||
|
||||
SetIplPropState(part.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage3.Style.concrete,
|
||||
ImportCEOGarage3.Style.plain,
|
||||
ImportCEOGarage3.Style.marble,
|
||||
ImportCEOGarage3.Style.wooden
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
Numbering = {
|
||||
none = "",
|
||||
Level1 = {
|
||||
style1 = "numbering_style01_n1",
|
||||
style2 = "numbering_style02_n1",
|
||||
style3 = "numbering_style03_n1",
|
||||
style4 = "numbering_style04_n1",
|
||||
style5 = "numbering_style05_n1",
|
||||
style6 = "numbering_style06_n1",
|
||||
style7 = "numbering_style07_n1",
|
||||
style8 = "numbering_style08_n1",
|
||||
style9 = "numbering_style09_n1"
|
||||
},
|
||||
Level2 = {
|
||||
style1 = "numbering_style01_n2",
|
||||
style2 = "numbering_style02_n2",
|
||||
style3 = "numbering_style03_n2",
|
||||
style4 = "numbering_style04_n2",
|
||||
style5 = "numbering_style05_n2",
|
||||
style6 = "numbering_style06_n2",
|
||||
style7 = "numbering_style07_n2",
|
||||
style8 = "numbering_style08_n2",
|
||||
style9 = "numbering_style09_n2"
|
||||
},
|
||||
Level3 = {
|
||||
style1 = "numbering_style01_n3",
|
||||
style2 = "numbering_style02_n3",
|
||||
style3 = "numbering_style03_n3",
|
||||
style4 = "numbering_style04_n3",
|
||||
style5 = "numbering_style05_n3",
|
||||
style6 = "numbering_style06_n3",
|
||||
style7 = "numbering_style07_n3",
|
||||
style8 = "numbering_style08_n3",
|
||||
style9 = "numbering_style09_n3"
|
||||
},
|
||||
Set = function(part, num, refresh)
|
||||
ImportCEOGarage3.Numbering.Clear(part)
|
||||
|
||||
if num ~= nil then
|
||||
SetIplPropState(part.interiorId, num, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(part.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage3.Numbering.Level1,
|
||||
ImportCEOGarage3.Numbering.Level2,
|
||||
ImportCEOGarage3.Numbering.Level3
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
Lighting = {
|
||||
none = "",
|
||||
style1 = "lighting_option01",
|
||||
style2 = "lighting_option02",
|
||||
style3 = "lighting_option03",
|
||||
style4 = "lighting_option04",
|
||||
style5 = "lighting_option05",
|
||||
style6 = "lighting_option06",
|
||||
style7 = "lighting_option07",
|
||||
style8 = "lighting_option08",
|
||||
style9 = "lighting_option09",
|
||||
|
||||
Set = function(part, light, refresh)
|
||||
ImportCEOGarage3.Lighting.Clear(part)
|
||||
|
||||
if light ~= nil then
|
||||
SetIplPropState(part.interiorId, light, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(part.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage3.Lighting.style1, ImportCEOGarage3.Lighting.style2, ImportCEOGarage3.Lighting.style3,
|
||||
ImportCEOGarage3.Lighting.style4, ImportCEOGarage3.Lighting.style5, ImportCEOGarage3.Lighting.style6,
|
||||
ImportCEOGarage3.Lighting.style7, ImportCEOGarage3.Lighting.style8, ImportCEOGarage3.Lighting.style9
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
ModShop = {
|
||||
Floor = {
|
||||
default = "",
|
||||
city = "floor_vinyl_01",
|
||||
seabed = "floor_vinyl_02",
|
||||
aliens = "floor_vinyl_03",
|
||||
clouds = "floor_vinyl_04",
|
||||
money = "floor_vinyl_05",
|
||||
zebra = "floor_vinyl_06",
|
||||
blackWhite = "floor_vinyl_07",
|
||||
barcode = "floor_vinyl_08",
|
||||
paintbrushBW = "floor_vinyl_09",
|
||||
grid = "floor_vinyl_10",
|
||||
splashes = "floor_vinyl_11",
|
||||
squares = "floor_vinyl_12",
|
||||
mosaic = "floor_vinyl_13",
|
||||
paintbrushColor = "floor_vinyl_14",
|
||||
curvesColor = "floor_vinyl_15",
|
||||
marbleBrown = "floor_vinyl_16",
|
||||
marbleBlue = "floor_vinyl_17",
|
||||
marbleBW = "floor_vinyl_18",
|
||||
maze = "floor_vinyl_19",
|
||||
|
||||
Set = function(floor, refresh)
|
||||
ImportCEOGarage3.ModShop.Floor.Clear()
|
||||
|
||||
if floor ~= nil then
|
||||
SetIplPropState(ImportCEOGarage3.Part.ModShop.interiorId, floor, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(ImportCEOGarage3.Part.ModShop.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
SetIplPropState(ImportCEOGarage3.Part.ModShop.interiorId, {
|
||||
ImportCEOGarage3.ModShop.Floor.city, ImportCEOGarage3.ModShop.Floor.seabed, ImportCEOGarage3.ModShop.Floor.aliens,
|
||||
ImportCEOGarage3.ModShop.Floor.clouds, ImportCEOGarage3.ModShop.Floor.money, ImportCEOGarage3.ModShop.Floor.zebra,
|
||||
ImportCEOGarage3.ModShop.Floor.blackWhite, ImportCEOGarage3.ModShop.Floor.barcode, ImportCEOGarage3.ModShop.Floor.paintbrushBW,
|
||||
ImportCEOGarage3.ModShop.Floor.grid, ImportCEOGarage3.ModShop.Floor.splashes, ImportCEOGarage3.ModShop.Floor.squares,
|
||||
ImportCEOGarage3.ModShop.Floor.mosaic, ImportCEOGarage3.ModShop.Floor.paintbrushColor, ImportCEOGarage3.ModShop.Floor.curvesColor,
|
||||
ImportCEOGarage3.ModShop.Floor.marbleBrown, ImportCEOGarage3.ModShop.Floor.marbleBlue, ImportCEOGarage3.ModShop.Floor.marbleBW,
|
||||
ImportCEOGarage3.ModShop.Floor.maze
|
||||
}, false, true)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ImportCEOGarage3.Part.Load(ImportCEOGarage3.Part.Garage1)
|
||||
ImportCEOGarage3.Style.Set(ImportCEOGarage3.Part.Garage1, ImportCEOGarage3.Style.concrete, false)
|
||||
ImportCEOGarage3.Numbering.Set(ImportCEOGarage3.Part.Garage1, ImportCEOGarage3.Numbering.Level1.style1, false)
|
||||
ImportCEOGarage3.Lighting.Set(ImportCEOGarage3.Part.Garage1, ImportCEOGarage3.Lighting.style1, true)
|
||||
|
||||
-- No mod shop since it overlapses CEO office
|
||||
ImportCEOGarage3.Part.Remove(ImportCEOGarage3.Part.ModShop)
|
||||
end
|
||||
}
|
204
resources/[standalone]/bob74_ipl/dlc_import/garage4.lua
Normal file
204
resources/[standalone]/bob74_ipl/dlc_import/garage4.lua
Normal file
@ -0,0 +1,204 @@
|
||||
-- Garage 4: Maze Bank West
|
||||
-- Be careful, ImportCEOGarage4.Part.Garage1 and ImportCEOGarage4.Part.Garage3 overlaps with FinanceOffice4
|
||||
exports('GetImportCEOGarage4Object', function()
|
||||
return ImportCEOGarage4
|
||||
end)
|
||||
|
||||
ImportCEOGarage4 = {
|
||||
Part = {
|
||||
Garage1 = { -- -1388.8400, -478.7402, 56.1000
|
||||
interiorId = 256513,
|
||||
ipl = "imp_sm_15_cargarage_a"
|
||||
},
|
||||
Garage2 = { -- -1388.8600, -478.7574, 48.1000
|
||||
interiorId = 256769,
|
||||
ipl = "imp_sm_15_cargarage_b"
|
||||
},
|
||||
Garage3 = { -- -1374.6820, -474.3586, 56.1000
|
||||
interiorId = 257025,
|
||||
ipl = "imp_sm_15_cargarage_c"
|
||||
},
|
||||
ModShop = { -- -1391.2450, -473.9638, 77.2000
|
||||
interiorId = 257281,
|
||||
ipl = "imp_sm_15_modgarage"
|
||||
},
|
||||
|
||||
Load = function(part)
|
||||
EnableIpl(part.ipl, true)
|
||||
end,
|
||||
Remove = function(part)
|
||||
EnableIpl(part.ipl, false)
|
||||
end,
|
||||
Clear = function()
|
||||
EnableIpl({
|
||||
ImportCEOGarage4.Part.Garage1.ipl,
|
||||
ImportCEOGarage4.Part.Garage2.ipl,
|
||||
ImportCEOGarage4.Part.Garage3.ipl
|
||||
}, false)
|
||||
end
|
||||
},
|
||||
Style = {
|
||||
concrete = "garage_decor_01",
|
||||
plain = "garage_decor_02",
|
||||
marble = "garage_decor_03",
|
||||
wooden = "garage_decor_04",
|
||||
|
||||
Set = function(part, style, refresh)
|
||||
ImportCEOGarage4.Style.Clear(part)
|
||||
|
||||
SetIplPropState(part.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage4.Style.concrete,
|
||||
ImportCEOGarage4.Style.plain,
|
||||
ImportCEOGarage4.Style.marble,
|
||||
ImportCEOGarage4.Style.wooden
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
Numbering = {
|
||||
none = "",
|
||||
Level1 = {
|
||||
style1 = "numbering_style01_n1",
|
||||
style2 = "numbering_style02_n1",
|
||||
style3 = "numbering_style03_n1",
|
||||
style4 = "numbering_style04_n1",
|
||||
style5 = "numbering_style05_n1",
|
||||
style6 = "numbering_style06_n1",
|
||||
style7 = "numbering_style07_n1",
|
||||
style8 = "numbering_style08_n1",
|
||||
style9 = "numbering_style09_n1"
|
||||
},
|
||||
Level2 = {
|
||||
style1 = "numbering_style01_n2",
|
||||
style2 = "numbering_style02_n2",
|
||||
style3 = "numbering_style03_n2",
|
||||
style4 = "numbering_style04_n2",
|
||||
style5 = "numbering_style05_n2",
|
||||
style6 = "numbering_style06_n2",
|
||||
style7 = "numbering_style07_n2",
|
||||
style8 = "numbering_style08_n2",
|
||||
style9 = "numbering_style09_n2"
|
||||
},
|
||||
Level3 = {
|
||||
style1 = "numbering_style01_n3",
|
||||
style2 = "numbering_style02_n3",
|
||||
style3 = "numbering_style03_n3",
|
||||
style4 = "numbering_style04_n3",
|
||||
style5 = "numbering_style05_n3",
|
||||
style6 = "numbering_style06_n3",
|
||||
style7 = "numbering_style07_n3",
|
||||
style8 = "numbering_style08_n3",
|
||||
style9 = "numbering_style09_n3"
|
||||
},
|
||||
|
||||
Set = function(part, num, refresh)
|
||||
ImportCEOGarage4.Numbering.Clear(part)
|
||||
|
||||
if num ~= nil then
|
||||
SetIplPropState(part.interiorId, num, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(part.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage4.Numbering.Level1,
|
||||
ImportCEOGarage4.Numbering.Level2,
|
||||
ImportCEOGarage4.Numbering.Level3
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
Lighting = {
|
||||
none = "",
|
||||
style1 = "lighting_option01",
|
||||
style2 = "lighting_option02",
|
||||
style3 = "lighting_option03",
|
||||
style4 = "lighting_option04",
|
||||
style5 = "lighting_option05",
|
||||
style6 = "lighting_option06",
|
||||
style7 = "lighting_option07",
|
||||
style8 = "lighting_option08",
|
||||
style9 = "lighting_option09",
|
||||
|
||||
Set = function(part, light, refresh)
|
||||
ImportCEOGarage4.Lighting.Clear(part)
|
||||
|
||||
if light ~= nil then
|
||||
SetIplPropState(part.interiorId, light, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(part.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(part)
|
||||
SetIplPropState(part.interiorId, {
|
||||
ImportCEOGarage4.Lighting.style1, ImportCEOGarage4.Lighting.style2, ImportCEOGarage4.Lighting.style3,
|
||||
ImportCEOGarage4.Lighting.style4, ImportCEOGarage4.Lighting.style5, ImportCEOGarage4.Lighting.style6,
|
||||
ImportCEOGarage4.Lighting.style7, ImportCEOGarage4.Lighting.style8, ImportCEOGarage4.Lighting.style9
|
||||
}, false, true)
|
||||
end
|
||||
},
|
||||
ModShop = {
|
||||
Floor = {
|
||||
default = "",
|
||||
city = "floor_vinyl_01",
|
||||
seabed = "floor_vinyl_02",
|
||||
aliens = "floor_vinyl_03",
|
||||
clouds = "floor_vinyl_04",
|
||||
money = "floor_vinyl_05",
|
||||
zebra = "floor_vinyl_06",
|
||||
blackWhite = "floor_vinyl_07",
|
||||
barcode = "floor_vinyl_08",
|
||||
paintbrushBW = "floor_vinyl_09",
|
||||
grid = "floor_vinyl_10",
|
||||
splashes = "floor_vinyl_11",
|
||||
squares = "floor_vinyl_12",
|
||||
mosaic = "floor_vinyl_13",
|
||||
paintbrushColor = "floor_vinyl_14",
|
||||
curvesColor = "floor_vinyl_15",
|
||||
marbleBrown = "floor_vinyl_16",
|
||||
marbleBlue = "floor_vinyl_17",
|
||||
marbleBW = "floor_vinyl_18",
|
||||
maze = "floor_vinyl_19",
|
||||
|
||||
Set = function(floor, refresh)
|
||||
ImportCEOGarage4.ModShop.Floor.Clear()
|
||||
|
||||
if floor ~= nil then
|
||||
SetIplPropState(ImportCEOGarage4.Part.ModShop.interiorId, floor, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(ImportCEOGarage4.Part.ModShop.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
SetIplPropState(ImportCEOGarage4.Part.ModShop.interiorId, {
|
||||
ImportCEOGarage4.ModShop.Floor.city, ImportCEOGarage4.ModShop.Floor.seabed, ImportCEOGarage4.ModShop.Floor.aliens,
|
||||
ImportCEOGarage4.ModShop.Floor.clouds, ImportCEOGarage4.ModShop.Floor.money, ImportCEOGarage4.ModShop.Floor.zebra,
|
||||
ImportCEOGarage4.ModShop.Floor.blackWhite, ImportCEOGarage4.ModShop.Floor.barcode, ImportCEOGarage4.ModShop.Floor.paintbrushBW,
|
||||
ImportCEOGarage4.ModShop.Floor.grid, ImportCEOGarage4.ModShop.Floor.splashes, ImportCEOGarage4.ModShop.Floor.squares,
|
||||
ImportCEOGarage4.ModShop.Floor.mosaic, ImportCEOGarage4.ModShop.Floor.paintbrushColor, ImportCEOGarage4.ModShop.Floor.curvesColor,
|
||||
ImportCEOGarage4.ModShop.Floor.marbleBrown, ImportCEOGarage4.ModShop.Floor.marbleBlue, ImportCEOGarage4.ModShop.Floor.marbleBW,
|
||||
ImportCEOGarage4.ModShop.Floor.maze
|
||||
}, false, true)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ImportCEOGarage4.Part.Load(ImportCEOGarage4.Part.Garage2)
|
||||
|
||||
ImportCEOGarage4.Style.Set(ImportCEOGarage4.Part.Garage2, ImportCEOGarage4.Style.concrete, false)
|
||||
ImportCEOGarage4.Numbering.Set(ImportCEOGarage4.Part.Garage2, ImportCEOGarage4.Numbering.Level1.style1, false)
|
||||
ImportCEOGarage4.Lighting.Set(ImportCEOGarage4.Part.Garage2, ImportCEOGarage4.Lighting.style1, true)
|
||||
|
||||
ImportCEOGarage4.Part.Load(ImportCEOGarage4.Part.ModShop)
|
||||
ImportCEOGarage4.ModShop.Floor.Set(ImportCEOGarage4.ModShop.Floor.default, true)
|
||||
end
|
||||
}
|
@ -0,0 +1,96 @@
|
||||
-- Vehicle warehouse
|
||||
-- Upper: 994.5925, -3002.594, -39.64699
|
||||
-- Lower: 969.5376, -3000.411, -48.64689
|
||||
exports('GetImportVehicleWarehouseObject', function()
|
||||
return ImportVehicleWarehouse
|
||||
end)
|
||||
|
||||
ImportVehicleWarehouse = {
|
||||
Upper = {
|
||||
interiorId = 252673,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "imp_impexp_interior_placement_interior_1_impexp_intwaremed_milo_",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(ImportVehicleWarehouse.Upper.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(ImportVehicleWarehouse.Upper.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Style = {
|
||||
basic = "basic_style_set",
|
||||
branded = "branded_style_set",
|
||||
urban = "urban_style_set",
|
||||
|
||||
Set = function(style, refresh)
|
||||
ImportVehicleWarehouse.Upper.Style.Clear(false)
|
||||
|
||||
SetIplPropState(ImportVehicleWarehouse.Upper.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(ImportVehicleWarehouse.Upper.interiorId, {
|
||||
ImportVehicleWarehouse.Upper.Style.basic,
|
||||
ImportVehicleWarehouse.Upper.Style.branded,
|
||||
ImportVehicleWarehouse.Upper.Style.urban
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
floorHatch = "car_floor_hatch",
|
||||
doorBlocker = "door_blocker", -- Invisible wall
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(ImportVehicleWarehouse.Upper.interiorId, details, state, refresh)
|
||||
end
|
||||
}
|
||||
},
|
||||
Lower = {
|
||||
interiorId = 253185,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "imp_impexp_interior_placement_interior_3_impexp_int_02_milo_",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(ImportVehicleWarehouse.Lower.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(ImportVehicleWarehouse.Lower.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Details = {
|
||||
Pumps = {
|
||||
pump1 = "pump_01",
|
||||
pump2 = "pump_02",
|
||||
pump3 = "pump_03",
|
||||
pump4 = "pump_04",
|
||||
pump5 = "pump_05",
|
||||
pump6 = "pump_06",
|
||||
pump7 = "pump_07",
|
||||
pump8 = "pump_08"
|
||||
},
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(ImportVehicleWarehouse.Lower.interiorId, details, state, refresh)
|
||||
end
|
||||
}
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ImportVehicleWarehouse.Upper.Ipl.Interior.Load()
|
||||
ImportVehicleWarehouse.Upper.Style.Set(ImportVehicleWarehouse.Upper.Style.branded)
|
||||
ImportVehicleWarehouse.Upper.Details.Enable(ImportVehicleWarehouse.Upper.Details.floorHatch, true)
|
||||
ImportVehicleWarehouse.Upper.Details.Enable(ImportVehicleWarehouse.Upper.Details.doorBlocker, false)
|
||||
|
||||
RefreshInterior(ImportVehicleWarehouse.Upper.interiorId)
|
||||
|
||||
ImportVehicleWarehouse.Lower.Ipl.Interior.Load()
|
||||
ImportVehicleWarehouse.Lower.Details.Enable(ImportVehicleWarehouse.Lower.Details.Pumps, true)
|
||||
|
||||
RefreshInterior(ImportVehicleWarehouse.Lower.interiorId)
|
||||
end
|
||||
}
|
24
resources/[standalone]/bob74_ipl/dlc_security/billboards.lua
Normal file
24
resources/[standalone]/bob74_ipl/dlc_security/billboards.lua
Normal file
@ -0,0 +1,24 @@
|
||||
exports('GetMpSecurityBillboardsObject', function()
|
||||
return MpSecurityBillboards
|
||||
end)
|
||||
|
||||
MpSecurityBillboards = {
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'sf_billboards',
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(MpSecurityBillboards.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(MpSecurityBillboards.Ipl.Interior.ipl, false)
|
||||
end,
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
MpSecurityBillboards.Ipl.Load()
|
||||
end
|
||||
}
|
73
resources/[standalone]/bob74_ipl/dlc_security/garage.lua
Normal file
73
resources/[standalone]/bob74_ipl/dlc_security/garage.lua
Normal file
@ -0,0 +1,73 @@
|
||||
exports('GetMpSecurityGarageObject', function()
|
||||
return MpSecurityGarage
|
||||
end)
|
||||
|
||||
MpSecurityGarage = {
|
||||
InteriorId = 286721,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'sf_int_placement_sec_interior_2_dlc_garage_sec_milo_'
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(MpSecurityGarage.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(MpSecurityGarage.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Entities = {
|
||||
Entity_Set_Workshop_Wall = false,
|
||||
Entity_Set_Wallpaper_01 = false,
|
||||
Entity_Set_Wallpaper_02 = false,
|
||||
Entity_Set_Wallpaper_03 = false,
|
||||
Entity_Set_Wallpaper_04 = false,
|
||||
Entity_Set_Wallpaper_05 = false,
|
||||
Entity_Set_Wallpaper_06 = false,
|
||||
Entity_Set_Wallpaper_07 = true,
|
||||
Entity_Set_Wallpaper_08 = false,
|
||||
Entity_Set_Wallpaper_09 = false,
|
||||
Entity_Set_Art_1 = false,
|
||||
Entity_Set_Art_2 = false,
|
||||
Entity_Set_Art_3 = false,
|
||||
Entity_Set_Art_1_NoMod = false,
|
||||
Entity_Set_Art_2_NoMod = false,
|
||||
Entity_Set_Art_3_NoMod = false,
|
||||
entity_set_tints = true,
|
||||
Entity_Set_Workshop_Lights = true,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(MpSecurityGarage.Entities) do
|
||||
if entity == name then
|
||||
MpSecurityGarage.Entities[entity] = state
|
||||
MpSecurityGarage.Entities.Clear()
|
||||
MpSecurityGarage.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(MpSecurityGarage.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(MpSecurityGarage.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(MpSecurityGarage.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(MpSecurityGarage.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
MpSecurityGarage.Ipl.Load()
|
||||
MpSecurityGarage.Entities.Load()
|
||||
|
||||
RefreshInterior(MpSecurityGarage.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
exports('GetMpSecurityMusicRoofTopObject', function()
|
||||
return MpSecurityMusicRoofTop
|
||||
end)
|
||||
|
||||
MpSecurityMusicRoofTop = {
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'sf_musicrooftop'
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(MpSecurityMusicRoofTop.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(MpSecurityMusicRoofTop.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
MpSecurityMusicRoofTop.Ipl.Load()
|
||||
end
|
||||
}
|
106
resources/[standalone]/bob74_ipl/dlc_security/office1.lua
Normal file
106
resources/[standalone]/bob74_ipl/dlc_security/office1.lua
Normal file
@ -0,0 +1,106 @@
|
||||
exports('GetMpSecurityOffice1Object', function()
|
||||
return MpSecurityOffice1
|
||||
end)
|
||||
|
||||
MpSecurityOffice1 = {
|
||||
InteriorId = 287489,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'sf_fixeroffice_bh1_05'
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(MpSecurityOffice1.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(MpSecurityOffice1.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Entities = {
|
||||
Entity_Set_Armoury = false,
|
||||
Entity_Set_Standard_Office = true,
|
||||
Entity_Set_Blocker = false,
|
||||
Entity_Set_Wpaper_1 = false,
|
||||
Entity_Set_Wpaper_3 = false,
|
||||
Entity_Set_Wpaper_2 = false,
|
||||
Entity_Set_Wpaper_4 = false,
|
||||
Entity_Set_Wpaper_5 = false,
|
||||
Entity_Set_Wpaper_6 = false,
|
||||
Entity_Set_Wpaper_7 = false,
|
||||
Entity_Set_Wpaper_8 = true,
|
||||
Entity_Set_Wpaper_9 = false,
|
||||
Entity_Set_Moving = true,
|
||||
Entity_Set_Tint_AG = true,
|
||||
Entity_Set_Spare_Seats = true,
|
||||
Entity_Set_Player_Seats = true,
|
||||
Entity_Set_Player_Desk = true,
|
||||
Entity_Set_M_Golf_Intro = true,
|
||||
Entity_Set_M_Setup = true,
|
||||
Entity_Set_M_Nightclub = true,
|
||||
Entity_Set_M_Yacht = true,
|
||||
Entity_Set_M_Promoter = true,
|
||||
Entity_Set_M_Limo_Photo = true,
|
||||
Entity_Set_M_Limo_Wallet = true,
|
||||
Entity_Set_M_The_Way = true,
|
||||
Entity_Set_M_Billionaire = true,
|
||||
Entity_Set_M_Families = true,
|
||||
Entity_Set_M_Ballas = true,
|
||||
Entity_Set_M_Hood = true,
|
||||
Entity_Set_M_Fire_Booth = true,
|
||||
Entity_Set_M_50 = true,
|
||||
Entity_Set_M_Taxi = true,
|
||||
Entity_Set_M_Gone_Golfing = true,
|
||||
Entity_Set_M_Motel = true,
|
||||
Entity_Set_M_Construction = true,
|
||||
Entity_Set_M_Hit_List = true,
|
||||
Entity_Set_M_Tuner = true,
|
||||
Entity_Set_M_Attack = true,
|
||||
Entity_Set_M_Vehicles = true,
|
||||
Entity_Set_M_Trip_01 = true,
|
||||
Entity_Set_M_Trip_02 = true,
|
||||
Entity_Set_M_Trip_03 = true,
|
||||
Entity_set_disc_01 = true,
|
||||
Entity_set_disc_02 = false,
|
||||
Entity_set_disc_03 = false,
|
||||
Entity_set_disc_04 = false,
|
||||
Entity_set_disc_05 = false,
|
||||
Entity_set_disc_06 = false,
|
||||
Entity_Set_Art_1 = true,
|
||||
Entity_Set_Art_2 = false,
|
||||
Entity_Set_Art_3 = false,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(MpSecurityOffice1.Entities) do
|
||||
if entity == name then
|
||||
MpSecurityOffice1.Entities[entity] = state
|
||||
MpSecurityOffice1.Entities.Clear()
|
||||
MpSecurityOffice1.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(MpSecurityOffice1.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(MpSecurityOffice1.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(MpSecurityOffice1.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(MpSecurityOffice1.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
MpSecurityOffice1.Ipl.Load()
|
||||
MpSecurityOffice1.Entities.Load()
|
||||
|
||||
RefreshInterior(MpSecurityOffice1.interiorId)
|
||||
end
|
||||
}
|
106
resources/[standalone]/bob74_ipl/dlc_security/office2.lua
Normal file
106
resources/[standalone]/bob74_ipl/dlc_security/office2.lua
Normal file
@ -0,0 +1,106 @@
|
||||
exports('GetMpSecurityOffice2Object', function()
|
||||
return MpSecurityOffice2
|
||||
end)
|
||||
|
||||
MpSecurityOffice2 = {
|
||||
InteriorId = 288257,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'sf_fixeroffice_hw1_08'
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(MpSecurityOffice2.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(MpSecurityOffice2.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Entities = {
|
||||
Entity_Set_Armoury = true,
|
||||
Entity_Set_Standard_Office = false,
|
||||
Entity_Set_Blocker = false,
|
||||
Entity_Set_Wpaper_1 = false,
|
||||
Entity_Set_Wpaper_3 = false,
|
||||
Entity_Set_Wpaper_2 = false,
|
||||
Entity_Set_Wpaper_4 = false,
|
||||
Entity_Set_Wpaper_5 = false,
|
||||
Entity_Set_Wpaper_6 = false,
|
||||
Entity_Set_Wpaper_7 = false,
|
||||
Entity_Set_Wpaper_8 = false,
|
||||
Entity_Set_Wpaper_9 = true,
|
||||
Entity_Set_Moving = true,
|
||||
Entity_Set_Tint_AG = true,
|
||||
Entity_Set_Spare_Seats = true,
|
||||
Entity_Set_Player_Seats = true,
|
||||
Entity_Set_Player_Desk = true,
|
||||
Entity_Set_M_Golf_Intro = true,
|
||||
Entity_Set_M_Setup = true,
|
||||
Entity_Set_M_Nightclub = true,
|
||||
Entity_Set_M_Yacht = true,
|
||||
Entity_Set_M_Promoter = true,
|
||||
Entity_Set_M_Limo_Photo = true,
|
||||
Entity_Set_M_Limo_Wallet = true,
|
||||
Entity_Set_M_The_Way = true,
|
||||
Entity_Set_M_Billionaire = true,
|
||||
Entity_Set_M_Families = true,
|
||||
Entity_Set_M_Ballas = true,
|
||||
Entity_Set_M_Hood = true,
|
||||
Entity_Set_M_Fire_Booth = true,
|
||||
Entity_Set_M_50 = true,
|
||||
Entity_Set_M_Taxi = true,
|
||||
Entity_Set_M_Gone_Golfing = true,
|
||||
Entity_Set_M_Motel = true,
|
||||
Entity_Set_M_Construction = true,
|
||||
Entity_Set_M_Hit_List = true,
|
||||
Entity_Set_M_Tuner = true,
|
||||
Entity_Set_M_Attack = true,
|
||||
Entity_Set_M_Vehicles = true,
|
||||
Entity_Set_M_Trip_01 = true,
|
||||
Entity_Set_M_Trip_02 = true,
|
||||
Entity_Set_M_Trip_03 = true,
|
||||
Entity_set_disc_01 = false,
|
||||
Entity_set_disc_02 = true,
|
||||
Entity_set_disc_03 = false,
|
||||
Entity_set_disc_04 = false,
|
||||
Entity_set_disc_05 = false,
|
||||
Entity_set_disc_06 = false,
|
||||
Entity_Set_Art_1 = false,
|
||||
Entity_Set_Art_2 = true,
|
||||
Entity_Set_Art_3 = false,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(MpSecurityOffice2.Entities) do
|
||||
if entity == name then
|
||||
MpSecurityOffice2.Entities[entity] = state
|
||||
MpSecurityOffice2.Entities.Clear()
|
||||
MpSecurityOffice2.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(MpSecurityOffice2.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(MpSecurityOffice2.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(MpSecurityOffice2.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(MpSecurityOffice2.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
MpSecurityOffice2.Ipl.Load()
|
||||
|
||||
MpSecurityOffice2.Entities.Load()
|
||||
RefreshInterior(MpSecurityOffice2.interiorId)
|
||||
end
|
||||
}
|
105
resources/[standalone]/bob74_ipl/dlc_security/office3.lua
Normal file
105
resources/[standalone]/bob74_ipl/dlc_security/office3.lua
Normal file
@ -0,0 +1,105 @@
|
||||
exports('GetMpSecurityOffice3Object', function()
|
||||
return MpSecurityOffice3
|
||||
end)
|
||||
|
||||
MpSecurityOffice3 = {
|
||||
InteriorId = 288001,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'sf_fixeroffice_kt1_05'
|
||||
}
|
||||
},
|
||||
Load = function()
|
||||
EnableIpl(MpSecurityOffice3.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(MpSecurityOffice3.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Entities = {
|
||||
Entity_Set_Armoury = false,
|
||||
Entity_Set_Standard_Office = true,
|
||||
Entity_Set_Blocker = false,
|
||||
Entity_Set_Wpaper_1 = false,
|
||||
Entity_Set_Wpaper_3 = false,
|
||||
Entity_Set_Wpaper_2 = true,
|
||||
Entity_Set_Wpaper_4 = false,
|
||||
Entity_Set_Wpaper_5 = false,
|
||||
Entity_Set_Wpaper_6 = false,
|
||||
Entity_Set_Wpaper_7 = false,
|
||||
Entity_Set_Wpaper_8 = false,
|
||||
Entity_Set_Wpaper_9 = false,
|
||||
Entity_Set_Moving = true,
|
||||
Entity_Set_Tint_AG = true,
|
||||
Entity_Set_Spare_Seats = true,
|
||||
Entity_Set_Player_Seats = true,
|
||||
Entity_Set_Player_Desk = true,
|
||||
Entity_Set_M_Golf_Intro = true,
|
||||
Entity_Set_M_Setup = true,
|
||||
Entity_Set_M_Nightclub = true,
|
||||
Entity_Set_M_Yacht = true,
|
||||
Entity_Set_M_Promoter = true,
|
||||
Entity_Set_M_Limo_Photo = true,
|
||||
Entity_Set_M_Limo_Wallet = true,
|
||||
Entity_Set_M_The_Way = true,
|
||||
Entity_Set_M_Billionaire = true,
|
||||
Entity_Set_M_Families = true,
|
||||
Entity_Set_M_Ballas = true,
|
||||
Entity_Set_M_Hood = true,
|
||||
Entity_Set_M_Fire_Booth = true,
|
||||
Entity_Set_M_50 = true,
|
||||
Entity_Set_M_Taxi = true,
|
||||
Entity_Set_M_Gone_Golfing = true,
|
||||
Entity_Set_M_Motel = true,
|
||||
Entity_Set_M_Construction = true,
|
||||
Entity_Set_M_Hit_List = true,
|
||||
Entity_Set_M_Tuner = true,
|
||||
Entity_Set_M_Attack = true,
|
||||
Entity_Set_M_Vehicles = true,
|
||||
Entity_Set_M_Trip_01 = true,
|
||||
Entity_Set_M_Trip_02 = true,
|
||||
Entity_Set_M_Trip_03 = true,
|
||||
Entity_set_disc_01 = false,
|
||||
Entity_set_disc_02 = true,
|
||||
Entity_set_disc_03 = false,
|
||||
Entity_set_disc_04 = false,
|
||||
Entity_set_disc_05 = false,
|
||||
Entity_set_disc_06 = false,
|
||||
Entity_Set_Art_1 = false,
|
||||
Entity_Set_Art_2 = false,
|
||||
Entity_Set_Art_3 = true,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(MpSecurityOffice3.Entities) do
|
||||
if entity == name then
|
||||
MpSecurityOffice3.Entities[entity] = state
|
||||
MpSecurityOffice3.Entities.Clear()
|
||||
MpSecurityOffice3.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(MpSecurityOffice3.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(MpSecurityOffice3.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(MpSecurityOffice3.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(MpSecurityOffice3.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
MpSecurityOffice3.Ipl.Load()
|
||||
MpSecurityOffice3.Entities.Load()
|
||||
|
||||
RefreshInterior(MpSecurityOffice3.interiorId)
|
||||
end
|
||||
}
|
106
resources/[standalone]/bob74_ipl/dlc_security/office4.lua
Normal file
106
resources/[standalone]/bob74_ipl/dlc_security/office4.lua
Normal file
@ -0,0 +1,106 @@
|
||||
exports('GetMpSecurityOffice4Object', function()
|
||||
return MpSecurityOffice4
|
||||
end)
|
||||
|
||||
MpSecurityOffice4 = {
|
||||
InteriorId = 287745,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'sf_fixeroffice_kt1_08'
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(MpSecurityOffice4.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(MpSecurityOffice4.Ipl.Interior.ipl, false)
|
||||
end,
|
||||
},
|
||||
Entities = {
|
||||
Entity_Set_Armoury = true,
|
||||
Entity_Set_Standard_Office = false,
|
||||
Entity_Set_Blocker = false,
|
||||
Entity_Set_Wpaper_1 = false,
|
||||
Entity_Set_Wpaper_3 = true,
|
||||
Entity_Set_Wpaper_2 = false,
|
||||
Entity_Set_Wpaper_4 = false,
|
||||
Entity_Set_Wpaper_5 = false,
|
||||
Entity_Set_Wpaper_6 = false,
|
||||
Entity_Set_Wpaper_7 = false,
|
||||
Entity_Set_Wpaper_8 = false,
|
||||
Entity_Set_Wpaper_9 = false,
|
||||
Entity_Set_Moving = true,
|
||||
Entity_Set_Tint_AG = true,
|
||||
Entity_Set_Spare_Seats = true,
|
||||
Entity_Set_Player_Seats = true,
|
||||
Entity_Set_Player_Desk = true,
|
||||
Entity_Set_M_Golf_Intro = true,
|
||||
Entity_Set_M_Setup = true,
|
||||
Entity_Set_M_Nightclub = true,
|
||||
Entity_Set_M_Yacht = true,
|
||||
Entity_Set_M_Promoter = true,
|
||||
Entity_Set_M_Limo_Photo = true,
|
||||
Entity_Set_M_Limo_Wallet = true,
|
||||
Entity_Set_M_The_Way = true,
|
||||
Entity_Set_M_Billionaire = true,
|
||||
Entity_Set_M_Families = true,
|
||||
Entity_Set_M_Ballas = true,
|
||||
Entity_Set_M_Hood = true,
|
||||
Entity_Set_M_Fire_Booth = true,
|
||||
Entity_Set_M_50 = true,
|
||||
Entity_Set_M_Taxi = true,
|
||||
Entity_Set_M_Gone_Golfing = true,
|
||||
Entity_Set_M_Motel = true,
|
||||
Entity_Set_M_Construction = true,
|
||||
Entity_Set_M_Hit_List = true,
|
||||
Entity_Set_M_Tuner = true,
|
||||
Entity_Set_M_Attack = true,
|
||||
Entity_Set_M_Vehicles = true,
|
||||
Entity_Set_M_Trip_01 = true,
|
||||
Entity_Set_M_Trip_02 = true,
|
||||
Entity_Set_M_Trip_03 = true,
|
||||
Entity_set_disc_01 = false,
|
||||
Entity_set_disc_02 = false,
|
||||
Entity_set_disc_03 = false,
|
||||
Entity_set_disc_04 = false,
|
||||
Entity_set_disc_05 = true,
|
||||
Entity_set_disc_06 = false,
|
||||
Entity_Set_Art_1 = true,
|
||||
Entity_Set_Art_2 = false,
|
||||
Entity_Set_Art_3 = false,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(MpSecurityOffice4.Entities) do
|
||||
if entity == name then
|
||||
MpSecurityOffice4.Entities[entity] = state
|
||||
MpSecurityOffice4.Entities.Clear()
|
||||
MpSecurityOffice4.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(MpSecurityOffice4.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(MpSecurityOffice4.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(MpSecurityOffice4.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(MpSecurityOffice4.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
MpSecurityOffice4.Ipl.Load()
|
||||
MpSecurityOffice4.Entities.Load()
|
||||
|
||||
RefreshInterior(MpSecurityOffice4.interiorId)
|
||||
end
|
||||
}
|
60
resources/[standalone]/bob74_ipl/dlc_security/studio.lua
Normal file
60
resources/[standalone]/bob74_ipl/dlc_security/studio.lua
Normal file
@ -0,0 +1,60 @@
|
||||
exports('GetMpSecurityStudioObject', function()
|
||||
return MpSecurityStudio
|
||||
end)
|
||||
|
||||
MpSecurityStudio = {
|
||||
InteriorId = 286977,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'sf_int_placement_sec_interior_1_dlc_studio_sec_milo_ '
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(MpSecurityStudio.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(MpSecurityStudio.Ipl.Interior.ipl, false)
|
||||
end,
|
||||
},
|
||||
Entities = {
|
||||
Entity_Set_FIX_STU_EXT_P3A1 = false,
|
||||
Entity_Set_FIX_TRIP1_INT_P2 = false,
|
||||
Entity_Set_FIX_STU_EXT_P1 = false,
|
||||
Entity_Set_Fire = true,
|
||||
entity_set_default = true,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(MpSecurityStudio.Entities) do
|
||||
if entity == name then
|
||||
MpSecurityStudio.Entities[entity] = state
|
||||
MpSecurityStudio.Entities.Clear()
|
||||
MpSecurityStudio.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(MpSecurityStudio.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(MpSecurityStudio.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(MpSecurityStudio.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(MpSecurityStudio.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
MpSecurityStudio.Ipl.Load()
|
||||
MpSecurityStudio.Entities.Load()
|
||||
|
||||
RefreshInterior(MpSecurityStudio.interiorId)
|
||||
end
|
||||
}
|
333
resources/[standalone]/bob74_ipl/dlc_smuggler/hangar.lua
Normal file
333
resources/[standalone]/bob74_ipl/dlc_smuggler/hangar.lua
Normal file
@ -0,0 +1,333 @@
|
||||
-- SmugglerHangar: -1267.0 -3013.135 -49.5
|
||||
exports('GetSmugglerHangarObject', function()
|
||||
return SmugglerHangar
|
||||
end)
|
||||
|
||||
SmugglerHangar = {
|
||||
interiorId = 260353,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = "sm_smugdlc_interior_placement_interior_0_smugdlc_int_01_milo_",
|
||||
|
||||
Load = function()
|
||||
EnableIpl(SmugglerHangar.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(SmugglerHangar.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Colors = {
|
||||
colorSet1 = 1, -- sable, red, gray
|
||||
colorSet2 = 2, -- white, blue, gray
|
||||
colorSet3 = 3, -- gray, orange, blue
|
||||
colorSet4 = 4, -- gray, blue, orange
|
||||
colorSet5 = 5, -- gray, light gray, red
|
||||
colorSet6 = 6, -- yellow, gray, light gray
|
||||
colorSet7 = 7, -- light Black and white
|
||||
colorSet8 = 8, -- dark Black and white
|
||||
colorSet9 = 9 -- sable and gray
|
||||
},
|
||||
Walls = {
|
||||
default = "set_tint_shell",
|
||||
|
||||
SetColor = function(color, refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, SmugglerHangar.Walls.default, true, refresh)
|
||||
SetInteriorPropColor(SmugglerHangar.interiorId, SmugglerHangar.Walls.default, color)
|
||||
end,
|
||||
},
|
||||
Floor = {
|
||||
Style = {
|
||||
raw = "set_floor_1",
|
||||
plain = "set_floor_2",
|
||||
|
||||
Set = function(floor, refresh)
|
||||
SmugglerHangar.Floor.Style.Clear(false)
|
||||
|
||||
SetIplPropState(SmugglerHangar.interiorId, floor, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, {
|
||||
SmugglerHangar.Floor.Style.raw,
|
||||
SmugglerHangar.Floor.Style.plain
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Decals = {
|
||||
decal1 = "set_floor_decal_1",
|
||||
decal2 = "set_floor_decal_2",
|
||||
decal4 = "set_floor_decal_3",
|
||||
decal3 = "set_floor_decal_4",
|
||||
decal5 = "set_floor_decal_5",
|
||||
decal6 = "set_floor_decal_6",
|
||||
decal7 = "set_floor_decal_7",
|
||||
decal8 = "set_floor_decal_8",
|
||||
decal9 = "set_floor_decal_9",
|
||||
|
||||
Set = function(decal, color, refresh)
|
||||
if color == nil then
|
||||
color = 1
|
||||
end
|
||||
|
||||
SmugglerHangar.Floor.Decals.Clear(false)
|
||||
|
||||
SetIplPropState(SmugglerHangar.interiorId, decal, true, refresh)
|
||||
SetInteriorPropColor(SmugglerHangar.interiorId, decal, color)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, {
|
||||
SmugglerHangar.Floor.Decals.decal1,
|
||||
SmugglerHangar.Floor.Decals.decal2,
|
||||
SmugglerHangar.Floor.Decals.decal3,
|
||||
SmugglerHangar.Floor.Decals.decal4,
|
||||
SmugglerHangar.Floor.Decals.decal5,
|
||||
SmugglerHangar.Floor.Decals.decal6,
|
||||
SmugglerHangar.Floor.Decals.decal7,
|
||||
SmugglerHangar.Floor.Decals.decal8,
|
||||
SmugglerHangar.Floor.Decals.decal9
|
||||
}, false, refresh)
|
||||
end
|
||||
}
|
||||
},
|
||||
Cranes = {
|
||||
on = "set_crane_tint",
|
||||
off = "",
|
||||
|
||||
Set = function(crane, color, refresh)
|
||||
SmugglerHangar.Cranes.Clear()
|
||||
|
||||
if crane ~= "" then
|
||||
SetIplPropState(SmugglerHangar.interiorId, crane, true, refresh)
|
||||
SetInteriorPropColor(SmugglerHangar.interiorId, crane, color)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(SmugglerHangar.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, SmugglerHangar.Cranes.default, false, refresh)
|
||||
end
|
||||
},
|
||||
ModArea = {
|
||||
on = "set_modarea",
|
||||
off = "",
|
||||
|
||||
Set = function(mod, color, refresh)
|
||||
if color == nil then
|
||||
color = 1
|
||||
end
|
||||
|
||||
SmugglerHangar.ModArea.Clear(false)
|
||||
|
||||
if mod ~= "" then
|
||||
SetIplPropState(SmugglerHangar.interiorId, mod, true, refresh)
|
||||
SetInteriorPropColor(SmugglerHangar.interiorId, mod, color)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(SmugglerHangar.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, SmugglerHangar.ModArea.mod, false, refresh)
|
||||
end
|
||||
},
|
||||
Office = {
|
||||
basic = "set_office_basic",
|
||||
modern = "set_office_modern",
|
||||
traditional = "set_office_traditional",
|
||||
|
||||
Set = function(office, refresh)
|
||||
SmugglerHangar.Office.Clear(false)
|
||||
|
||||
SetIplPropState(SmugglerHangar.interiorId, office, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, {
|
||||
SmugglerHangar.Office.basic,
|
||||
SmugglerHangar.Office.modern,
|
||||
SmugglerHangar.Office.traditional
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Bedroom = {
|
||||
Style = {
|
||||
none = "",
|
||||
modern = {
|
||||
"set_bedroom_modern",
|
||||
"set_bedroom_tint"
|
||||
},
|
||||
traditional = {
|
||||
"set_bedroom_traditional",
|
||||
"set_bedroom_tint"
|
||||
},
|
||||
|
||||
Set = function(bed, color, refresh)
|
||||
if color == nil then
|
||||
color = 1
|
||||
end
|
||||
|
||||
SmugglerHangar.Bedroom.Style.Clear(false)
|
||||
|
||||
if bed ~= "" then
|
||||
SetIplPropState(SmugglerHangar.interiorId, bed, true, refresh)
|
||||
SetInteriorPropColor(SmugglerHangar.interiorId, "set_bedroom_tint", color)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(SmugglerHangar.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, {
|
||||
SmugglerHangar.Bedroom.Style.modern,
|
||||
SmugglerHangar.Bedroom.Style.traditional
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Blinds = {
|
||||
none = "",
|
||||
opened = "set_bedroom_blinds_open",
|
||||
closed = "set_bedroom_blinds_closed",
|
||||
|
||||
Set = function(blinds, refresh)
|
||||
SmugglerHangar.Bedroom.Blinds.Clear(false)
|
||||
|
||||
if blinds ~= "" then
|
||||
SetIplPropState(SmugglerHangar.interiorId, blinds, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(SmugglerHangar.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, {
|
||||
SmugglerHangar.Bedroom.Blinds.opened,
|
||||
SmugglerHangar.Bedroom.Blinds.closed
|
||||
}, false, refresh)
|
||||
end
|
||||
}
|
||||
},
|
||||
Lighting = {
|
||||
FakeLights = {
|
||||
none = "",
|
||||
yellow = 2,
|
||||
blue = 1,
|
||||
white = 0,
|
||||
|
||||
Set = function(light, refresh)
|
||||
SmugglerHangar.Lighting.FakeLights.Clear(false)
|
||||
|
||||
if light ~= "" then
|
||||
SetIplPropState(SmugglerHangar.interiorId, "set_lighting_tint_props", true, refresh)
|
||||
SetInteriorPropColor(SmugglerHangar.interiorId, "set_lighting_tint_props", light)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(SmugglerHangar.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, "set_lighting_tint_props", false, refresh)
|
||||
end
|
||||
},
|
||||
Ceiling = {
|
||||
none = "",
|
||||
yellow = "set_lighting_hangar_a",
|
||||
blue = "set_lighting_hangar_b",
|
||||
white = "set_lighting_hangar_c",
|
||||
|
||||
Set = function(light, refresh)
|
||||
SmugglerHangar.Lighting.Ceiling.Clear(false)
|
||||
|
||||
if light ~= "" then
|
||||
SetIplPropState(SmugglerHangar.interiorId, light, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(SmugglerHangar.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, {
|
||||
SmugglerHangar.Lighting.Ceiling.yellow,
|
||||
SmugglerHangar.Lighting.Ceiling.blue,
|
||||
SmugglerHangar.Lighting.Ceiling.white
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Walls = {
|
||||
none = "",
|
||||
neutral = "set_lighting_wall_neutral",
|
||||
blue = "set_lighting_wall_tint01",
|
||||
orange = "set_lighting_wall_tint02",
|
||||
lightYellow = "set_lighting_wall_tint03",
|
||||
lightYellow2 = "set_lighting_wall_tint04",
|
||||
dimmed = "set_lighting_wall_tint05",
|
||||
strongYellow = "set_lighting_wall_tint06",
|
||||
white = "set_lighting_wall_tint07",
|
||||
lightGreen = "set_lighting_wall_tint08",
|
||||
yellow = "set_lighting_wall_tint09",
|
||||
|
||||
Set = function(light, refresh)
|
||||
SmugglerHangar.Lighting.Walls.Clear(false)
|
||||
|
||||
if light ~= "" then
|
||||
SetIplPropState(SmugglerHangar.interiorId, light, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(SmugglerHangar.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, {
|
||||
SmugglerHangar.Lighting.Walls.neutral,
|
||||
SmugglerHangar.Lighting.Walls.blue,
|
||||
SmugglerHangar.Lighting.Walls.orange,
|
||||
SmugglerHangar.Lighting.Walls.lightYellow,
|
||||
SmugglerHangar.Lighting.Walls.lightYellow2,
|
||||
SmugglerHangar.Lighting.Walls.dimmed,
|
||||
SmugglerHangar.Lighting.Walls.strongYellow,
|
||||
SmugglerHangar.Lighting.Walls.white,
|
||||
SmugglerHangar.Lighting.Walls.lightGreen,
|
||||
SmugglerHangar.Lighting.Walls.yellow
|
||||
}, false, refresh)
|
||||
end
|
||||
}
|
||||
},
|
||||
Details = {
|
||||
bedroomClutter = "set_bedroom_clutter",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(SmugglerHangar.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
SmugglerHangar.Ipl.Interior.Load()
|
||||
|
||||
SmugglerHangar.Walls.SetColor(SmugglerHangar.Colors.colorSet1)
|
||||
SmugglerHangar.Cranes.Set(SmugglerHangar.Cranes.on, SmugglerHangar.Colors.colorSet1)
|
||||
SmugglerHangar.Floor.Style.Set(SmugglerHangar.Floor.Style.plain)
|
||||
SmugglerHangar.Floor.Decals.Set(SmugglerHangar.Floor.Decals.decal1, SmugglerHangar.Colors.colorSet1)
|
||||
|
||||
SmugglerHangar.Lighting.Ceiling.Set(SmugglerHangar.Lighting.Ceiling.yellow)
|
||||
SmugglerHangar.Lighting.Walls.Set(SmugglerHangar.Lighting.Walls.neutral)
|
||||
SmugglerHangar.Lighting.FakeLights.Set(SmugglerHangar.Lighting.FakeLights.yellow)
|
||||
|
||||
SmugglerHangar.ModArea.Set(SmugglerHangar.ModArea.on, SmugglerHangar.Colors.colorSet1)
|
||||
|
||||
SmugglerHangar.Office.Set(SmugglerHangar.Office.basic)
|
||||
|
||||
SmugglerHangar.Bedroom.Style.Set(SmugglerHangar.Bedroom.Style.modern, SmugglerHangar.Colors.colorSet1)
|
||||
SmugglerHangar.Bedroom.Blinds.Set(SmugglerHangar.Bedroom.Blinds.opened)
|
||||
|
||||
SmugglerHangar.Details.Enable(SmugglerHangar.Details.bedroomClutter, false)
|
||||
|
||||
RefreshInterior(SmugglerHangar.interiorId)
|
||||
end
|
||||
}
|
94
resources/[standalone]/bob74_ipl/dlc_tuner/garage.lua
Normal file
94
resources/[standalone]/bob74_ipl/dlc_tuner/garage.lua
Normal file
@ -0,0 +1,94 @@
|
||||
exports('GetTunerGarageObject', function()
|
||||
return TunerGarage
|
||||
end)
|
||||
|
||||
TunerGarage = {
|
||||
InteriorId = 285953,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'tr_tuner_shop_burton',
|
||||
'tr_tuner_shop_mesa',
|
||||
'tr_tuner_shop_mission',
|
||||
'tr_tuner_shop_rancho',
|
||||
'tr_tuner_shop_strawberry'
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(TunerGarage.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(TunerGarage.Ipl.Interior.ipl, false)
|
||||
end,
|
||||
},
|
||||
Entities = {
|
||||
entity_set_bedroom = true,
|
||||
entity_set_bedroom_empty = false,
|
||||
entity_set_bombs = true,
|
||||
entity_set_box_clutter = false,
|
||||
entity_set_cabinets = false,
|
||||
entity_set_car_lift_cutscene = true,
|
||||
entity_set_car_lift_default = true,
|
||||
entity_set_car_lift_purchase = true,
|
||||
entity_set_chalkboard = false,
|
||||
entity_set_container = false,
|
||||
entity_set_cut_seats = false,
|
||||
entity_set_def_table = false,
|
||||
entity_set_drive = true,
|
||||
entity_set_ecu = true,
|
||||
entity_set_IAA = true,
|
||||
entity_set_jammers = true,
|
||||
entity_set_laptop = true,
|
||||
entity_set_lightbox = true,
|
||||
entity_set_methLab = false,
|
||||
entity_set_plate = true,
|
||||
entity_set_scope = true,
|
||||
entity_set_style_1 = false,
|
||||
entity_set_style_2 = false,
|
||||
entity_set_style_3 = false,
|
||||
entity_set_style_4 = false,
|
||||
entity_set_style_5 = false,
|
||||
entity_set_style_6 = false,
|
||||
entity_set_style_7 = false,
|
||||
entity_set_style_8 = false,
|
||||
entity_set_style_9 = true,
|
||||
entity_set_table = false,
|
||||
entity_set_thermal = true,
|
||||
entity_set_tints = true,
|
||||
entity_set_train = true,
|
||||
entity_set_virus = true,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(TunerGarage.Entities) do
|
||||
if entity == name then
|
||||
TunerGarage.Entities[entity] = state
|
||||
TunerGarage.Entities.Clear()
|
||||
TunerGarage.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(TunerGarage.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(TunerGarage.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(TunerGarage.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(TunerGarage.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
TunerGarage.Ipl.Load()
|
||||
TunerGarage.Entities.Load()
|
||||
|
||||
RefreshInterior(TunerGarage.interiorId)
|
||||
end
|
||||
}
|
64
resources/[standalone]/bob74_ipl/dlc_tuner/meetup.lua
Normal file
64
resources/[standalone]/bob74_ipl/dlc_tuner/meetup.lua
Normal file
@ -0,0 +1,64 @@
|
||||
exports('GetTunerMeetupObject', function()
|
||||
return TunerMeetup
|
||||
end)
|
||||
|
||||
TunerMeetup = {
|
||||
InteriorId = 285697,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'tr_tuner_meetup',
|
||||
'tr_tuner_race_line'
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(TunerMeetup.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(TunerMeetup.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Entities = {
|
||||
entity_set_meet_crew = true,
|
||||
entity_set_meet_lights = true,
|
||||
entity_set_meet_lights_cheap = true,
|
||||
entity_set_player = true,
|
||||
entity_set_test_crew = false,
|
||||
entity_set_test_lights = true,
|
||||
entity_set_test_lights_cheap = true,
|
||||
entity_set_time_trial = true,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(TunerMeetup.Entities) do
|
||||
if entity == name then
|
||||
TunerMeetup.Entities[entity] = state
|
||||
TunerMeetup.Entities.Clear()
|
||||
TunerMeetup.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(TunerMeetup.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(TunerMeetup.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(TunerMeetup.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(TunerMeetup.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
TunerMeetup.Ipl.Load()
|
||||
TunerMeetup.Entities.Load()
|
||||
|
||||
RefreshInterior(TunerMeetup.interiorId)
|
||||
end
|
||||
}
|
42
resources/[standalone]/bob74_ipl/dlc_tuner/methlab.lua
Normal file
42
resources/[standalone]/bob74_ipl/dlc_tuner/methlab.lua
Normal file
@ -0,0 +1,42 @@
|
||||
exports('GetTunerMethLabObject', function()
|
||||
return TunerMethLab
|
||||
end)
|
||||
|
||||
TunerMethLab = {
|
||||
InteriorId = 284673,
|
||||
|
||||
Entities = {
|
||||
tintable_walls = true,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(TunerMethLab.Entities) do
|
||||
if entity == name then
|
||||
TunerMethLab.Entities[entity] = state
|
||||
TunerMethLab.Entities.Clear()
|
||||
TunerMethLab.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(TunerMethLab.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(TunerMethLab.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(TunerMethLab.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(TunerMethLab.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
TunerMethLab.Entities.Load()
|
||||
|
||||
SetInteriorEntitySetColor(TunerMethLab.interiorId, TunerMethLab.Entities.tintable_walls, 3)
|
||||
RefreshInterior(TunerMethLab.interiorId)
|
||||
end
|
||||
}
|
130
resources/[standalone]/bob74_ipl/fxmanifest.lua
Normal file
130
resources/[standalone]/bob74_ipl/fxmanifest.lua
Normal file
@ -0,0 +1,130 @@
|
||||
-- Resources:
|
||||
-- **********
|
||||
-- IPL list: https://wiki.rage.mp/index.php?title=Interiors_and_Locations
|
||||
|
||||
fx_version 'cerulean'
|
||||
game 'gta5'
|
||||
|
||||
author 'Bob_74'
|
||||
description 'Load and customize your map'
|
||||
version '2.0.15'
|
||||
|
||||
lua54 "yes"
|
||||
|
||||
client_scripts {
|
||||
"lib/common.lua"
|
||||
, "lib/observers/interiorIdObserver.lua"
|
||||
, "lib/observers/officeSafeDoorHandler.lua"
|
||||
, "client.lua"
|
||||
|
||||
-- GTA V
|
||||
, "gtav/base.lua" -- Base IPLs to fix holes
|
||||
, "gtav/ammunations.lua"
|
||||
, "gtav/bahama.lua"
|
||||
, "gtav/floyd.lua"
|
||||
, "gtav/franklin.lua"
|
||||
, "gtav/franklin_aunt.lua"
|
||||
, "gtav/graffitis.lua"
|
||||
-- , "gtav/pillbox_hospital.lua"
|
||||
, "gtav/lester_factory.lua"
|
||||
, "gtav/michael.lua"
|
||||
, "gtav/north_yankton.lua"
|
||||
, "gtav/red_carpet.lua"
|
||||
, "gtav/simeon.lua"
|
||||
, "gtav/stripclub.lua"
|
||||
, "gtav/trevors_trailer.lua"
|
||||
, "gtav/ufo.lua"
|
||||
, "gtav/zancudo_gates.lua"
|
||||
|
||||
-- GTA Online
|
||||
, "gta_online/apartment_hi_1.lua"
|
||||
, "gta_online/apartment_hi_2.lua"
|
||||
, "gta_online/house_hi_1.lua"
|
||||
, "gta_online/house_hi_2.lua"
|
||||
, "gta_online/house_hi_3.lua"
|
||||
, "gta_online/house_hi_4.lua"
|
||||
, "gta_online/house_hi_5.lua"
|
||||
, "gta_online/house_hi_6.lua"
|
||||
, "gta_online/house_hi_7.lua"
|
||||
, "gta_online/house_hi_8.lua"
|
||||
, "gta_online/house_mid_1.lua"
|
||||
, "gta_online/house_low_1.lua"
|
||||
|
||||
-- DLC High Life
|
||||
, "dlc_high_life/apartment1.lua"
|
||||
, "dlc_high_life/apartment2.lua"
|
||||
, "dlc_high_life/apartment3.lua"
|
||||
, "dlc_high_life/apartment4.lua"
|
||||
, "dlc_high_life/apartment5.lua"
|
||||
, "dlc_high_life/apartment6.lua"
|
||||
|
||||
-- DLC Heists
|
||||
, "dlc_heists/carrier.lua"
|
||||
, "dlc_heists/yacht.lua"
|
||||
|
||||
-- DLC Executives & Other Criminals
|
||||
, "dlc_executive/apartment1.lua"
|
||||
, "dlc_executive/apartment2.lua"
|
||||
, "dlc_executive/apartment3.lua"
|
||||
|
||||
-- DLC Finance & Felony
|
||||
, "dlc_finance/office1.lua"
|
||||
, "dlc_finance/office2.lua"
|
||||
, "dlc_finance/office3.lua"
|
||||
, "dlc_finance/office4.lua"
|
||||
, "dlc_finance/organization.lua"
|
||||
|
||||
-- DLC Bikers
|
||||
, "dlc_bikers/cocaine.lua"
|
||||
, "dlc_bikers/counterfeit_cash.lua"
|
||||
, "dlc_bikers/document_forgery.lua"
|
||||
, "dlc_bikers/meth.lua"
|
||||
, "dlc_bikers/weed.lua"
|
||||
, "dlc_bikers/clubhouse1.lua"
|
||||
, "dlc_bikers/clubhouse2.lua"
|
||||
, "dlc_bikers/gang.lua"
|
||||
|
||||
-- DLC Import/Export
|
||||
, "dlc_import/garage1.lua"
|
||||
, "dlc_import/garage2.lua"
|
||||
, "dlc_import/garage3.lua"
|
||||
, "dlc_import/garage4.lua"
|
||||
, "dlc_import/vehicle_warehouse.lua"
|
||||
|
||||
-- DLC Gunrunning
|
||||
, "dlc_gunrunning/bunkers.lua"
|
||||
, "dlc_gunrunning/yacht.lua"
|
||||
|
||||
-- DLC Smuggler's Run
|
||||
, "dlc_smuggler/hangar.lua"
|
||||
|
||||
-- DLC Doomsday Heist
|
||||
, "dlc_doomsday/facility.lua"
|
||||
|
||||
-- DLC After Hours
|
||||
, "dlc_afterhours/nightclubs.lua"
|
||||
|
||||
-- DLC Diamond Casino (Requires forced build 2060 or higher)
|
||||
, "dlc_casino/casino.lua"
|
||||
, "dlc_casino/penthouse.lua"
|
||||
|
||||
-- DLC Tuners (Requires forced build 2372 or higher)
|
||||
, "dlc_tuner/garage.lua"
|
||||
, "dlc_tuner/meetup.lua"
|
||||
, "dlc_tuner/methlab.lua"
|
||||
|
||||
-- DLC The Contract (Requires forced build 2545 or higher)
|
||||
, "dlc_security/studio.lua"
|
||||
, "dlc_security/billboards.lua"
|
||||
, "dlc_security/musicrooftop.lua"
|
||||
, "dlc_security/garage.lua"
|
||||
, "dlc_security/office1.lua"
|
||||
, "dlc_security/office2.lua"
|
||||
, "dlc_security/office3.lua"
|
||||
, "dlc_security/office4.lua"
|
||||
|
||||
-- DLC The Criminal Enterprises (Requires forced build 2699 or higher)
|
||||
, "gta_mpsum2/simeonfix.lua"
|
||||
, "gta_mpsum2/vehicle_warehouse.lua"
|
||||
, "gta_mpsum2/warehouse.lua"
|
||||
}
|
55
resources/[standalone]/bob74_ipl/gta_mpsum2/simeonfix.lua
Normal file
55
resources/[standalone]/bob74_ipl/gta_mpsum2/simeonfix.lua
Normal file
@ -0,0 +1,55 @@
|
||||
exports('GetCriminalEnterpriseSmeonFixObject', function()
|
||||
return CriminalEnterpriseSmeonFix
|
||||
end)
|
||||
|
||||
CriminalEnterpriseSmeonFix = {
|
||||
InteriorId = 7170,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'reh_simeonfix',
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(CriminalEnterpriseSmeonFix.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(CriminalEnterpriseSmeonFix.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Entities = {
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(CriminalEnterpriseSmeonFix.Entities) do
|
||||
if entity == name then
|
||||
CriminalEnterpriseSmeonFix.Entities[entity] = state
|
||||
CriminalEnterpriseSmeonFix.Entities.Clear()
|
||||
CriminalEnterpriseSmeonFix.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(CriminalEnterpriseSmeonFix.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(CriminalEnterpriseSmeonFix.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(CriminalEnterpriseSmeonFix.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(CriminalEnterpriseSmeonFix.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
CriminalEnterpriseSmeonFix.Ipl.Load()
|
||||
CriminalEnterpriseSmeonFix.Entities.Load()
|
||||
|
||||
RefreshInterior(CriminalEnterpriseSmeonFix.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
exports('GetCriminalEnterpriseVehicleWarehouseObject', function()
|
||||
return CriminalEnterpriseVehicleWarehouse
|
||||
end)
|
||||
|
||||
CriminalEnterpriseVehicleWarehouse = {
|
||||
InteriorId = 289537,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'reh_int_placement_sum2_interior_0_dlc_int_03_sum2_milo_',
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(CriminalEnterpriseVehicleWarehouse.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(CriminalEnterpriseVehicleWarehouse.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Entities = {
|
||||
entity_set_office = true,
|
||||
entity_set_light_option_1 = true,
|
||||
entity_set_light_option_2 = true,
|
||||
entity_set_light_option_3 = true,
|
||||
entity_set_tint_options = true,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(CriminalEnterpriseVehicleWarehouse.Entities) do
|
||||
if entity == name then
|
||||
CriminalEnterpriseVehicleWarehouse.Entities[entity] = state
|
||||
CriminalEnterpriseVehicleWarehouse.Entities.Clear()
|
||||
CriminalEnterpriseVehicleWarehouse.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(CriminalEnterpriseVehicleWarehouse.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(CriminalEnterpriseVehicleWarehouse.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(CriminalEnterpriseVehicleWarehouse.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(CriminalEnterpriseVehicleWarehouse.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
CriminalEnterpriseVehicleWarehouse.Ipl.Load()
|
||||
CriminalEnterpriseVehicleWarehouse.Entities.Load()
|
||||
|
||||
RefreshInterior(CriminalEnterpriseVehicleWarehouse.interiorId)
|
||||
end
|
||||
}
|
60
resources/[standalone]/bob74_ipl/gta_mpsum2/warehouse.lua
Normal file
60
resources/[standalone]/bob74_ipl/gta_mpsum2/warehouse.lua
Normal file
@ -0,0 +1,60 @@
|
||||
exports('GetCriminalEnterpriseWarehouseObject', function()
|
||||
return CriminalEnterpriseWarehouse
|
||||
end)
|
||||
|
||||
CriminalEnterpriseWarehouse = {
|
||||
InteriorId = 289793,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
'reh_int_placement_sum2_interior_1_dlc_int_04_sum2_milo_',
|
||||
}
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(CriminalEnterpriseWarehouse.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(CriminalEnterpriseWarehouse.Ipl.Interior.ipl, false)
|
||||
end
|
||||
},
|
||||
Entities = {
|
||||
entity_set_style_1 = false,
|
||||
entity_set_style_2 = false,
|
||||
entity_set_style_3 = false,
|
||||
entity_set_style_4 = false,
|
||||
entity_set_style_5 = true,
|
||||
|
||||
Set = function(name, state)
|
||||
for entity, _ in pairs(CriminalEnterpriseWarehouse.Entities) do
|
||||
if entity == name then
|
||||
CriminalEnterpriseWarehouse.Entities[entity] = state
|
||||
CriminalEnterpriseWarehouse.Entities.Clear()
|
||||
CriminalEnterpriseWarehouse.Entities.Load()
|
||||
end
|
||||
end
|
||||
end,
|
||||
Load = function()
|
||||
for entity, state in pairs(CriminalEnterpriseWarehouse.Entities) do
|
||||
if type(entity) == 'string' and state then
|
||||
ActivateInteriorEntitySet(CriminalEnterpriseWarehouse.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function()
|
||||
for entity, _ in pairs(CriminalEnterpriseWarehouse.Entities) do
|
||||
if type(entity) == 'string' then
|
||||
DeactivateInteriorEntitySet(CriminalEnterpriseWarehouse.InteriorId, entity)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
CriminalEnterpriseWarehouse.Ipl.Load()
|
||||
CriminalEnterpriseWarehouse.Entities.Load()
|
||||
|
||||
RefreshInterior(CriminalEnterpriseWarehouse.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
-- 4 Integrity Way, Apt 30
|
||||
-- High end apartment 1: -35.31277 -580.4199 88.71221
|
||||
exports('GetGTAOApartmentHi1Object', function()
|
||||
return GTAOApartmentHi1
|
||||
end)
|
||||
|
||||
GTAOApartmentHi1 = {
|
||||
interiorId = 141313,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOApartmentHi1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOApartmentHi1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOApartmentHi1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
LoadDefault = function()
|
||||
GTAOApartmentHi1.Strip.Enable({
|
||||
GTAOApartmentHi1.Strip.A,
|
||||
GTAOApartmentHi1.Strip.B,
|
||||
GTAOApartmentHi1.Strip.C
|
||||
}, false)
|
||||
GTAOApartmentHi1.Booze.Enable({
|
||||
GTAOApartmentHi1.Booze.A,
|
||||
GTAOApartmentHi1.Booze.B,
|
||||
GTAOApartmentHi1.Booze.C
|
||||
}, false)
|
||||
GTAOApartmentHi1.Smoke.Enable({
|
||||
GTAOApartmentHi1.Smoke.A,
|
||||
GTAOApartmentHi1.Smoke.B,
|
||||
GTAOApartmentHi1.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOApartmentHi1.interiorId)
|
||||
end
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
-- Dell Perro Heights, Apt 7
|
||||
-- High end apartment 2: -1477.14 -538.7499 55.5264
|
||||
exports('GetGTAOApartmentHi2Object', function()
|
||||
return GTAOApartmentHi2
|
||||
end)
|
||||
|
||||
GTAOApartmentHi2 = {
|
||||
interiorId = 145665,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOApartmentHi2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOApartmentHi2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOApartmentHi2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOApartmentHi2.Strip.Enable({
|
||||
GTAOApartmentHi2.Strip.A,
|
||||
GTAOApartmentHi2.Strip.B,
|
||||
GTAOApartmentHi2.Strip.C
|
||||
}, false)
|
||||
GTAOApartmentHi2.Booze.Enable({
|
||||
GTAOApartmentHi2.Booze.A,
|
||||
GTAOApartmentHi2.Booze.B,
|
||||
GTAOApartmentHi2.Booze.C
|
||||
}, false)
|
||||
GTAOApartmentHi2.Smoke.Enable({
|
||||
GTAOApartmentHi2.Smoke.A,
|
||||
GTAOApartmentHi2.Smoke.B,
|
||||
GTAOApartmentHi2.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOApartmentHi2.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_1.lua
Normal file
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_1.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- 3655 Wild Oats Drive
|
||||
-- High end house 1: -169.286 486.4938 137.4436
|
||||
exports('GetGTAOHouseHi1Object', function()
|
||||
return GTAOHouseHi1
|
||||
end)
|
||||
|
||||
GTAOHouseHi1 = {
|
||||
interiorId = 207105,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseHi1.Strip.Enable({
|
||||
GTAOHouseHi1.Strip.A,
|
||||
GTAOHouseHi1.Strip.B,
|
||||
GTAOHouseHi1.Strip.C
|
||||
}, false)
|
||||
GTAOHouseHi1.Booze.Enable({
|
||||
GTAOHouseHi1.Booze.A,
|
||||
GTAOHouseHi1.Booze.B,
|
||||
GTAOHouseHi1.Booze.C
|
||||
}, false)
|
||||
GTAOHouseHi1.Smoke.Enable({
|
||||
GTAOHouseHi1.Smoke.A,
|
||||
GTAOHouseHi1.Smoke.B,
|
||||
GTAOHouseHi1.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOHouseHi1.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_2.lua
Normal file
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_2.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- 2044 North Conker Avenue
|
||||
-- High end house 2: 340.9412 437.1798 149.3925
|
||||
exports('GetGTAOHouseHi2Object', function()
|
||||
return GTAOHouseHi2
|
||||
end)
|
||||
|
||||
GTAOHouseHi2 = {
|
||||
interiorId = 206081,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi2.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseHi2.Strip.Enable({
|
||||
GTAOHouseHi2.Strip.A,
|
||||
GTAOHouseHi2.Strip.B,
|
||||
GTAOHouseHi2.Strip.C
|
||||
}, false)
|
||||
GTAOHouseHi2.Booze.Enable({
|
||||
GTAOHouseHi2.Booze.A,
|
||||
GTAOHouseHi2.Booze.B,
|
||||
GTAOHouseHi2.Booze.C
|
||||
}, false)
|
||||
GTAOHouseHi2.Smoke.Enable({
|
||||
GTAOHouseHi2.Smoke.A,
|
||||
GTAOHouseHi2.Smoke.B,
|
||||
GTAOHouseHi2.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOHouseHi2.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_3.lua
Normal file
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_3.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- 2045 North Conker Avenue
|
||||
-- High end house 3: 373.023 416.105 145.7006
|
||||
exports('GetGTAOHouseHi3Object', function()
|
||||
return GTAOHouseHi3
|
||||
end)
|
||||
|
||||
GTAOHouseHi3 = {
|
||||
interiorId = 206337,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi3.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi3.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi3.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseHi3.Strip.Enable({
|
||||
GTAOHouseHi3.Strip.A,
|
||||
GTAOHouseHi3.Strip.B,
|
||||
GTAOHouseHi3.Strip.C
|
||||
}, false)
|
||||
GTAOHouseHi3.Booze.Enable({
|
||||
GTAOHouseHi3.Booze.A,
|
||||
GTAOHouseHi3.Booze.B,
|
||||
GTAOHouseHi3.Booze.C
|
||||
}, false)
|
||||
GTAOHouseHi3.Smoke.Enable({
|
||||
GTAOHouseHi3.Smoke.A,
|
||||
GTAOHouseHi3.Smoke.B,
|
||||
GTAOHouseHi3.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOHouseHi3.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_4.lua
Normal file
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_4.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- 2862 Hillcrest Avenue
|
||||
-- High end house 4: -676.127 588.612 145.1698
|
||||
exports('GetGTAOHouseHi4Object', function()
|
||||
return GTAOHouseHi4
|
||||
end)
|
||||
|
||||
GTAOHouseHi4 = {
|
||||
interiorId = 208129,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi4.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi4.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi4.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseHi4.Strip.Enable({
|
||||
GTAOHouseHi4.Strip.A,
|
||||
GTAOHouseHi4.Strip.B,
|
||||
GTAOHouseHi4.Strip.C
|
||||
}, false)
|
||||
GTAOHouseHi4.Booze.Enable({
|
||||
GTAOHouseHi4.Booze.A,
|
||||
GTAOHouseHi4.Booze.B,
|
||||
GTAOHouseHi4.Booze.C
|
||||
}, false)
|
||||
GTAOHouseHi4.Smoke.Enable({
|
||||
GTAOHouseHi4.Smoke.A,
|
||||
GTAOHouseHi4.Smoke.B,
|
||||
GTAOHouseHi4.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOHouseHi4.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_5.lua
Normal file
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_5.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- 2868 Hillcrest Avenue
|
||||
-- High end house 5: -763.107 615.906 144.1401
|
||||
exports('GetGTAOHouseHi5Object', function()
|
||||
return GTAOHouseHi5
|
||||
end)
|
||||
|
||||
GTAOHouseHi5 = {
|
||||
interiorId = 207617,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi5.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi5.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi5.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseHi5.Strip.Enable({
|
||||
GTAOHouseHi5.Strip.A,
|
||||
GTAOHouseHi5.Strip.B,
|
||||
GTAOHouseHi5.Strip.C
|
||||
}, false)
|
||||
GTAOHouseHi5.Booze.Enable({
|
||||
GTAOHouseHi5.Booze.A,
|
||||
GTAOHouseHi5.Booze.B,
|
||||
GTAOHouseHi5.Booze.C
|
||||
}, false)
|
||||
GTAOHouseHi5.Smoke.Enable({
|
||||
GTAOHouseHi5.Smoke.A,
|
||||
GTAOHouseHi5.Smoke.B,
|
||||
GTAOHouseHi5.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOHouseHi5.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_6.lua
Normal file
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_6.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- 2874 Hillcrest Avenue
|
||||
-- High end house 6: -857.798 682.563 152.6529
|
||||
exports('GetGTAOHouseHi6Object', function()
|
||||
return GTAOHouseHi6
|
||||
end)
|
||||
|
||||
GTAOHouseHi6 = {
|
||||
interiorId = 207361,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi6.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi6.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi6.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseHi6.Strip.Enable({
|
||||
GTAOHouseHi6.Strip.A,
|
||||
GTAOHouseHi6.Strip.B,
|
||||
GTAOHouseHi6.Strip.C
|
||||
}, false)
|
||||
GTAOHouseHi6.Booze.Enable({
|
||||
GTAOHouseHi6.Booze.A,
|
||||
GTAOHouseHi6.Booze.B,
|
||||
GTAOHouseHi6.Booze.C
|
||||
}, false)
|
||||
GTAOHouseHi6.Smoke.Enable({
|
||||
GTAOHouseHi6.Smoke.A,
|
||||
GTAOHouseHi6.Smoke.B,
|
||||
GTAOHouseHi6.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOHouseHi6.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_7.lua
Normal file
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_7.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- 2677 Whispymound Drive
|
||||
-- High end house 7: 120.5 549.952 184.097
|
||||
exports('GetGTAOHouseHi7Object', function()
|
||||
return GTAOHouseHi7
|
||||
end)
|
||||
|
||||
GTAOHouseHi7 = {
|
||||
interiorId = 206593,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi7.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi7.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi7.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseHi7.Strip.Enable({
|
||||
GTAOHouseHi7.Strip.A,
|
||||
GTAOHouseHi7.Strip.B,
|
||||
GTAOHouseHi7.Strip.C
|
||||
}, false)
|
||||
GTAOHouseHi7.Booze.Enable({
|
||||
GTAOHouseHi7.Booze.A,
|
||||
GTAOHouseHi7.Booze.B,
|
||||
GTAOHouseHi7.Booze.C
|
||||
}, false)
|
||||
GTAOHouseHi7.Smoke.Enable({
|
||||
GTAOHouseHi7.Smoke.A,
|
||||
GTAOHouseHi7.Smoke.B,
|
||||
GTAOHouseHi7.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOHouseHi7.interiorId)
|
||||
end
|
||||
}
|
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_8.lua
Normal file
57
resources/[standalone]/bob74_ipl/gta_online/house_hi_8.lua
Normal file
@ -0,0 +1,57 @@
|
||||
-- 2133 Mad Wayne Thunder
|
||||
-- High end house 8: -1288 440.748 97.69459
|
||||
exports('GetGTAOHouseHi8Object', function()
|
||||
return GTAOHouseHi8
|
||||
end)
|
||||
|
||||
GTAOHouseHi8 = {
|
||||
interiorId = 208385,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Hi_Strip_A",
|
||||
B = "Apart_Hi_Strip_B",
|
||||
C = "Apart_Hi_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi8.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Hi_Booze_A",
|
||||
B = "Apart_Hi_Booze_B",
|
||||
C = "Apart_Hi_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi8.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
A = "Apart_Hi_Smokes_A",
|
||||
B = "Apart_Hi_Smokes_B",
|
||||
C = "Apart_Hi_Smokes_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseHi8.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseHi8.Strip.Enable({
|
||||
GTAOHouseHi8.Strip.A,
|
||||
GTAOHouseHi8.Strip.B,
|
||||
GTAOHouseHi8.Strip.C
|
||||
}, false)
|
||||
GTAOHouseHi8.Booze.Enable({
|
||||
GTAOHouseHi8.Booze.A,
|
||||
GTAOHouseHi8.Booze.B,
|
||||
GTAOHouseHi8.Booze.C
|
||||
}, false)
|
||||
GTAOHouseHi8.Smoke.Enable({
|
||||
GTAOHouseHi8.Smoke.A,
|
||||
GTAOHouseHi8.Smoke.B,
|
||||
GTAOHouseHi8.Smoke.C
|
||||
}, false)
|
||||
|
||||
RefreshInterior(GTAOHouseHi8.interiorId)
|
||||
end
|
||||
}
|
54
resources/[standalone]/bob74_ipl/gta_online/house_low_1.lua
Normal file
54
resources/[standalone]/bob74_ipl/gta_online/house_low_1.lua
Normal file
@ -0,0 +1,54 @@
|
||||
-- Low end house 1: 261.4586 -998.8196 -99.00863
|
||||
exports('GetGTAOHouseLow1Object', function()
|
||||
return GTAOHouseLow1
|
||||
end)
|
||||
|
||||
GTAOHouseLow1 = {
|
||||
interiorId = 149761,
|
||||
Strip = {
|
||||
A = "Studio_Lo_Strip_A", B = "Studio_Lo_Strip_B", C = "Studio_Lo_Strip_C",
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseLow1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Studio_Lo_Booze_A", B = "Studio_Lo_Booze_B", C = "Studio_Lo_Booze_C",
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseLow1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
none = "", stage1 = "Studio_Lo_Smoke_A", stage2 = "Studio_Lo_Smoke_B", stage3 = "Studio_Lo_Smoke_C",
|
||||
Set = function(smoke, refresh)
|
||||
GTAOHouseLow1.Smoke.Clear(false)
|
||||
if smoke ~= nil then
|
||||
SetIplPropState(GTAOHouseLow1.interiorId, smoke, true, refresh)
|
||||
else
|
||||
if refresh then RefreshInterior(GTAOHouseLow1.interiorId) end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(GTAOHouseLow1.interiorId, {
|
||||
GTAOHouseLow1.Smoke.stage1,
|
||||
GTAOHouseLow1.Smoke.stage2,
|
||||
GTAOHouseLow1.Smoke.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseLow1.Strip.Enable({
|
||||
GTAOHouseLow1.Strip.A,
|
||||
GTAOHouseLow1.Strip.B,
|
||||
GTAOHouseLow1.Strip.C
|
||||
}, false)
|
||||
GTAOHouseLow1.Booze.Enable({
|
||||
GTAOHouseLow1.Booze.A,
|
||||
GTAOHouseLow1.Booze.B,
|
||||
GTAOHouseLow1.Booze.C
|
||||
}, false)
|
||||
GTAOHouseLow1.Smoke.Set(GTAOHouseLow1.Smoke.none)
|
||||
|
||||
RefreshInterior(GTAOHouseLow1.interiorId)
|
||||
end
|
||||
}
|
68
resources/[standalone]/bob74_ipl/gta_online/house_mid_1.lua
Normal file
68
resources/[standalone]/bob74_ipl/gta_online/house_mid_1.lua
Normal file
@ -0,0 +1,68 @@
|
||||
-- Middle end house 1: 347.2686 -999.2955 -99.19622
|
||||
exports('GetGTAOHouseMid1Object', function()
|
||||
return GTAOHouseMid1
|
||||
end)
|
||||
|
||||
GTAOHouseMid1 = {
|
||||
interiorId = 148225,
|
||||
|
||||
Strip = {
|
||||
A = "Apart_Mid_Strip_A",
|
||||
B = "Apart_Mid_Strip_B",
|
||||
C = "Apart_Mid_Strip_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseMid1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Booze = {
|
||||
A = "Apart_Mid_Booze_A",
|
||||
B = "Apart_Mid_Booze_B",
|
||||
C = "Apart_Mid_Booze_C",
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(GTAOHouseMid1.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
Smoke = {
|
||||
none = "",
|
||||
stage1 = "Apart_Mid_Smoke_A",
|
||||
stage2 = "Apart_Mid_Smoke_B",
|
||||
stage3 = "Apart_Mid_Smoke_C",
|
||||
|
||||
Set = function(smoke, refresh)
|
||||
GTAOHouseMid1.Smoke.Clear(false)
|
||||
|
||||
if smoke ~= nil then
|
||||
SetIplPropState(GTAOHouseMid1.interiorId, smoke, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(GTAOHouseMid1.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(GTAOHouseMid1.interiorId, {
|
||||
GTAOHouseMid1.Smoke.stage1,
|
||||
GTAOHouseMid1.Smoke.stage2,
|
||||
GTAOHouseMid1.Smoke.stage3
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
GTAOHouseMid1.Strip.Enable({
|
||||
GTAOHouseMid1.Strip.A,
|
||||
GTAOHouseMid1.Strip.B,
|
||||
GTAOHouseMid1.Strip.C
|
||||
}, false)
|
||||
GTAOHouseMid1.Booze.Enable({
|
||||
GTAOHouseMid1.Booze.A,
|
||||
GTAOHouseMid1.Booze.B,
|
||||
GTAOHouseMid1.Booze.C
|
||||
}, false)
|
||||
GTAOHouseMid1.Smoke.Set(GTAOHouseMid1.Smoke.none)
|
||||
|
||||
RefreshInterior(GTAOHouseMid1.interiorId)
|
||||
end
|
||||
}
|
39
resources/[standalone]/bob74_ipl/gtav/ammunations.lua
Normal file
39
resources/[standalone]/bob74_ipl/gtav/ammunations.lua
Normal file
@ -0,0 +1,39 @@
|
||||
exports('GetAmmunationsObject', function()
|
||||
return Ammunations
|
||||
end)
|
||||
|
||||
Ammunations = {
|
||||
ammunationsId = {
|
||||
140289, -- 249.8, -47.1, 70.0
|
||||
153857, -- 844.0, -1031.5, 28.2
|
||||
168193, -- -664.0, -939.2, 21.8
|
||||
164609, -- -1308.7, -391.5, 36.7
|
||||
176385, -- -3170.0, 1085.0, 20.8
|
||||
175617, -- -1116.0, 2694.1, 18.6
|
||||
200961, -- 1695.2, 3756.0, 34.7
|
||||
180481, -- -328.7, 6079.0, 31.5
|
||||
178689 -- 2569.8, 297.8, 108.7
|
||||
},
|
||||
gunclubsId = {
|
||||
137729, -- 19.1, -1110.0, 29.8
|
||||
248065 -- 811.0, -2152.0, 29.6
|
||||
},
|
||||
|
||||
Details = {
|
||||
hooks = "GunStoreHooks", -- Hooks for gun displaying
|
||||
hooksClub = "GunClubWallHooks", -- Hooks for gun displaying
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
if details == Ammunations.Details.hooks then
|
||||
SetIplPropState(Ammunations.ammunationsId, details, state, refresh)
|
||||
elseif details == Ammunations.Details.hooksClub then
|
||||
SetIplPropState(Ammunations.gunclubsId, details, state, refresh)
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
Ammunations.Details.Enable(Ammunations.Details.hooks, true, true)
|
||||
Ammunations.Details.Enable(Ammunations.Details.hooksClub, true, true)
|
||||
end
|
||||
}
|
12
resources/[standalone]/bob74_ipl/gtav/bahama.lua
Normal file
12
resources/[standalone]/bob74_ipl/gtav/bahama.lua
Normal file
@ -0,0 +1,12 @@
|
||||
-- Bahama Mamas: -1388.0013, -618.41967, 30.819599
|
||||
exports('GetBahamaMamasObject', function()
|
||||
return BahamaMamas
|
||||
end)
|
||||
|
||||
BahamaMamas = {
|
||||
ipl = "hei_sm_16_interior_v_bahama_milo_",
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(BahamaMamas.ipl, state)
|
||||
end
|
||||
}
|
109
resources/[standalone]/bob74_ipl/gtav/base.lua
Normal file
109
resources/[standalone]/bob74_ipl/gtav/base.lua
Normal file
@ -0,0 +1,109 @@
|
||||
Citizen.CreateThread(function()
|
||||
-- Heist Jewel: -637.20159 -239.16250 38.1
|
||||
RequestIpl("post_hiest_unload")
|
||||
|
||||
-- Max Renda: -585.8247, -282.72, 35.45475
|
||||
RequestIpl("refit_unload")
|
||||
|
||||
-- Heist Union Depository: 2.69689322, -667.0166, 16.1306286
|
||||
RequestIpl("FINBANK")
|
||||
|
||||
-- Morgue: 239.75195, -1360.64965, 39.53437
|
||||
RequestIpl("Coroner_Int_on")
|
||||
RequestIpl("coronertrash")
|
||||
|
||||
-- Cluckin Bell: -146.3837, 6161.5, 30.2062
|
||||
RequestIpl("CS1_02_cf_onmission1")
|
||||
RequestIpl("CS1_02_cf_onmission2")
|
||||
RequestIpl("CS1_02_cf_onmission3")
|
||||
RequestIpl("CS1_02_cf_onmission4")
|
||||
|
||||
-- Grapeseed's farm: 2447.9, 4973.4, 47.7
|
||||
RequestIpl("farm")
|
||||
RequestIpl("farmint")
|
||||
RequestIpl("farm_lod")
|
||||
RequestIpl("farm_props")
|
||||
RequestIpl("des_farmhouse")
|
||||
|
||||
-- FIB lobby: 105.4557, -745.4835, 44.7548
|
||||
RequestIpl("FIBlobby")
|
||||
|
||||
-- FIB Roof: 134.33, -745.95, 266.98
|
||||
RequestIpl("atriumglmission")
|
||||
|
||||
-- FIB Fountain 174.184, -667.902, 43.140
|
||||
RemoveIpl('dt1_05_hc_end')
|
||||
RemoveIpl('dt1_05_hc_req')
|
||||
RequestIpl('dt1_05_hc_remove')
|
||||
|
||||
-- Billboard: iFruit
|
||||
RequestIpl("FruitBB")
|
||||
RequestIpl("sc1_01_newbill")
|
||||
RequestIpl("hw1_02_newbill")
|
||||
RequestIpl("hw1_emissive_newbill")
|
||||
RequestIpl("sc1_14_newbill")
|
||||
RequestIpl("dt1_17_newbill")
|
||||
|
||||
-- Lester's factory: 716.84, -962.05, 31.59
|
||||
RequestIpl("id2_14_during_door")
|
||||
RequestIpl("id2_14_during1")
|
||||
|
||||
-- Life Invader lobby: -1047.9, -233.0, 39.0
|
||||
RequestIpl("facelobby")
|
||||
|
||||
-- Tunnels
|
||||
RequestIpl("v_tunnel_hole")
|
||||
|
||||
-- Carwash: 55.7, -1391.3, 30.5
|
||||
RequestIpl("Carwash_with_spinners")
|
||||
|
||||
-- Stadium "Fame or Shame": -248.49159240722656, -2010.509033203125, 34.57429885864258
|
||||
RequestIpl("sp1_10_real_interior")
|
||||
RequestIpl("sp1_10_real_interior_lod")
|
||||
|
||||
-- House in Banham Canyon: -3086.428, 339.2523, 6.3717
|
||||
RequestIpl("ch1_02_open")
|
||||
|
||||
-- Garage in La Mesa (autoshop): 970.27453, -1826.56982, 31.11477
|
||||
RequestIpl("bkr_bi_id1_23_door")
|
||||
|
||||
-- Vinewood Club Garage: 1200.00, -3250.00, -50.00
|
||||
RequestIpl("m23_1_garage")
|
||||
|
||||
-- 850, -3000, -50
|
||||
RequestIpl("reh_dlc_int_04_sum2")
|
||||
|
||||
-- 1000, -2750, -50
|
||||
RequestIpl("m23_2_int_warehous")
|
||||
|
||||
-- Hill Valley church - Grave: -282.46380000, 2835.84500000, 55.91446000
|
||||
RequestIpl("lr_cs6_08_grave_closed")
|
||||
|
||||
-- Lost's trailer park: 49.49379000, 3744.47200000, 46.38629000
|
||||
RequestIpl("methtrailer_grp1")
|
||||
|
||||
-- Lost safehouse: 984.1552, -95.3662, 74.50
|
||||
RequestIpl("bkr_bi_hw1_13_int")
|
||||
|
||||
-- Raton Canyon river: -1652.83, 4445.28, 2.52
|
||||
RequestIpl("CanyonRvrShallow")
|
||||
|
||||
-- Josh's house: -1117.1632080078, 303.090698, 66.52217
|
||||
RequestIpl("bh1_47_joshhse_unburnt")
|
||||
RequestIpl("bh1_47_joshhse_unburnt_lod")
|
||||
|
||||
-- Bahama Mamas: -1388.0013, -618.41967, 30.819599
|
||||
RequestIpl("hei_sm_16_interior_v_bahama_milo_")
|
||||
|
||||
-- Zancudo River (need streamed content): 86.815, 3191.649, 30.463
|
||||
RequestIpl("cs3_05_water_grp1")
|
||||
RequestIpl("cs3_05_water_grp1_lod")
|
||||
RequestIpl("trv1_trail_start")
|
||||
|
||||
-- Cassidy Creek (need streamed content): -425.677, 4433.404, 27.3253
|
||||
RequestIpl("canyonriver01")
|
||||
RequestIpl("canyonriver01_lod")
|
||||
|
||||
-- Ferris wheel
|
||||
RequestIpl("ferris_finale_anim")
|
||||
end)
|
63
resources/[standalone]/bob74_ipl/gtav/floyd.lua
Normal file
63
resources/[standalone]/bob74_ipl/gtav/floyd.lua
Normal file
@ -0,0 +1,63 @@
|
||||
exports('GetFloydObject', function()
|
||||
return Floyd
|
||||
end)
|
||||
|
||||
Floyd = {
|
||||
interiorId = 171777,
|
||||
|
||||
Style = {
|
||||
normal = {
|
||||
"swap_clean_apt",
|
||||
"layer_debra_pic",
|
||||
"layer_whiskey",
|
||||
"swap_sofa_A"
|
||||
},
|
||||
messedUp = {
|
||||
"layer_mess_A",
|
||||
"layer_mess_B",
|
||||
"layer_mess_C",
|
||||
"layer_sextoys_a",
|
||||
"swap_sofa_B",
|
||||
"swap_wade_sofa_A",
|
||||
"layer_wade_shit",
|
||||
"layer_torture"
|
||||
},
|
||||
|
||||
Set = function(style, refresh)
|
||||
Floyd.Style.Clear(false)
|
||||
|
||||
SetIplPropState(Floyd.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(Floyd.interiorId, {
|
||||
Floyd.Style.normal,
|
||||
Floyd.Style.messedUp
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
MrJam = {
|
||||
normal = "swap_mrJam_A",
|
||||
jammed = "swap_mrJam_B",
|
||||
jammedOnTable = "swap_mrJam_C",
|
||||
|
||||
Set = function(mrJam, refresh)
|
||||
Floyd.MrJam.Clear(false)
|
||||
|
||||
SetIplPropState(Floyd.interiorId, mrJam, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(Floyd.interiorId, {
|
||||
Floyd.MrJam.normal,
|
||||
Floyd.MrJam.jammed,
|
||||
Floyd.MrJam.jammedOnTable
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
Floyd.Style.Set(Floyd.Style.normal)
|
||||
Floyd.MrJam.Set(Floyd.MrJam.normal)
|
||||
|
||||
RefreshInterior(Floyd.interiorId)
|
||||
end
|
||||
}
|
73
resources/[standalone]/bob74_ipl/gtav/franklin.lua
Normal file
73
resources/[standalone]/bob74_ipl/gtav/franklin.lua
Normal file
@ -0,0 +1,73 @@
|
||||
exports('GetFranklinObject', function()
|
||||
return Franklin
|
||||
end)
|
||||
|
||||
Franklin = {
|
||||
interiorId = 206849,
|
||||
|
||||
Style = {
|
||||
empty = "",
|
||||
unpacking = "franklin_unpacking",
|
||||
settled = {
|
||||
"franklin_unpacking",
|
||||
"franklin_settled"
|
||||
},
|
||||
cardboxes = "showhome_only",
|
||||
|
||||
Set = function(style, refresh)
|
||||
Franklin.Style.Clear(false)
|
||||
|
||||
if style ~= "" then
|
||||
SetIplPropState(Franklin.interiorId, style, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(Franklin.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(Franklin.interiorId, {
|
||||
Franklin.Style.settled,
|
||||
Franklin.Style.unpacking,
|
||||
Franklin.Style.cardboxes
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
GlassDoor = {
|
||||
opened = "unlocked",
|
||||
closed = "locked",
|
||||
|
||||
Set = function(door, refresh)
|
||||
Franklin.GlassDoor.Clear(false)
|
||||
|
||||
SetIplPropState(Franklin.interiorId, door, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(Franklin.interiorId, {
|
||||
Franklin.GlassDoor.opened,
|
||||
Franklin.GlassDoor.closed
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
flyer = "progress_flyer", -- Mountain flyer on the kitchen counter
|
||||
tux = "progress_tux", -- Tuxedo suit in the wardrobe
|
||||
tshirt = "progress_tshirt", -- "I <3 LS" tshirt on the bed
|
||||
bong = "bong_and_wine", -- Bong on the table
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(Franklin.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
Franklin.Style.Set(Franklin.Style.settled)
|
||||
Franklin.GlassDoor.Set(Franklin.GlassDoor.opened)
|
||||
Franklin.Details.Enable(Franklin.Details.flyer, true)
|
||||
Franklin.Details.Enable(Franklin.Details.tux, true)
|
||||
Franklin.Details.Enable(Franklin.Details.tshirt, false)
|
||||
Franklin.Details.Enable(Franklin.Details.bong, false)
|
||||
|
||||
RefreshInterior(Franklin.interiorId)
|
||||
end
|
||||
}
|
47
resources/[standalone]/bob74_ipl/gtav/franklin_aunt.lua
Normal file
47
resources/[standalone]/bob74_ipl/gtav/franklin_aunt.lua
Normal file
@ -0,0 +1,47 @@
|
||||
exports('GetFranklinAuntObject', function()
|
||||
return FranklinAunt
|
||||
end)
|
||||
|
||||
FranklinAunt = {
|
||||
interiorId = 197889,
|
||||
|
||||
Style = {
|
||||
empty = "",
|
||||
franklinStuff = "V_57_FranklinStuff",
|
||||
franklinLeft = "V_57_Franklin_LEFT",
|
||||
|
||||
Set = function(style, refresh)
|
||||
FranklinAunt.Style.Clear(false)
|
||||
|
||||
if style ~= "" then
|
||||
SetIplPropState(FranklinAunt.interiorId, style, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(FranklinAunt.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(FranklinAunt.interiorId, {
|
||||
FranklinAunt.Style.franklinStuff,
|
||||
FranklinAunt.Style.franklinLeft
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
bandana = "V_57_GangBandana", -- Bandana on the bed
|
||||
bag = "V_57_Safari", -- Bag in the closet
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(FranklinAunt.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
FranklinAunt.Style.Set(FranklinAunt.Style.franklinLeft)
|
||||
FranklinAunt.Details.Enable(FranklinAunt.Details.bandana, false)
|
||||
FranklinAunt.Details.Enable(FranklinAunt.Details.bag, false)
|
||||
|
||||
RefreshInterior(FranklinAunt.interiorId)
|
||||
end
|
||||
}
|
14
resources/[standalone]/bob74_ipl/gtav/graffitis.lua
Normal file
14
resources/[standalone]/bob74_ipl/gtav/graffitis.lua
Normal file
@ -0,0 +1,14 @@
|
||||
exports('GetGraffitisObject', function()
|
||||
return Graffitis
|
||||
end)
|
||||
|
||||
Graffitis = {
|
||||
ipl = {
|
||||
"ch3_rd2_bishopschickengraffiti", -- 1861.28, 2402.11, 58.53
|
||||
"cs5_04_mazebillboardgraffiti", -- 2697.32, 3162.18, 58.1
|
||||
"cs5_roads_ronoilgraffiti" -- 2119.12, 3058.21, 53.25
|
||||
},
|
||||
Enable = function(state)
|
||||
EnableIpl(Graffitis.ipl, state)
|
||||
end
|
||||
}
|
31
resources/[standalone]/bob74_ipl/gtav/lester_factory.lua
Normal file
31
resources/[standalone]/bob74_ipl/gtav/lester_factory.lua
Normal file
@ -0,0 +1,31 @@
|
||||
exports('GetLesterFactoryObject', function()
|
||||
return LesterFactory
|
||||
end)
|
||||
|
||||
LesterFactory = {
|
||||
interiorId = 92674,
|
||||
|
||||
Details = {
|
||||
bluePrint = "V_53_Agency_Blueprint", -- Blueprint on the office desk
|
||||
bag = "V_35_KitBag", -- Bag under the office desk
|
||||
fireMan = "V_35_Fireman", -- Firemans helmets in the office
|
||||
armour = "V_35_Body_Armour", -- Body armor in storage
|
||||
gasMask = "Jewel_Gasmasks", -- Gas mask and suit in storage
|
||||
janitorStuff = "v_53_agency _overalls", -- Janitor stuff in the storage (yes, there is a whitespace)
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(LesterFactory.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
LesterFactory.Details.Enable(LesterFactory.Details.bluePrint, false)
|
||||
LesterFactory.Details.Enable(LesterFactory.Details.bag, false)
|
||||
LesterFactory.Details.Enable(LesterFactory.Details.fireMan, false)
|
||||
LesterFactory.Details.Enable(LesterFactory.Details.armour, false)
|
||||
LesterFactory.Details.Enable(LesterFactory.Details.gasMask, false)
|
||||
LesterFactory.Details.Enable(LesterFactory.Details.janitorStuff, false)
|
||||
|
||||
RefreshInterior(LesterFactory.interiorId)
|
||||
end
|
||||
}
|
85
resources/[standalone]/bob74_ipl/gtav/michael.lua
Normal file
85
resources/[standalone]/bob74_ipl/gtav/michael.lua
Normal file
@ -0,0 +1,85 @@
|
||||
exports('GetMichaelObject', function()
|
||||
return Michael
|
||||
end)
|
||||
|
||||
Michael = {
|
||||
interiorId = 166657,
|
||||
garageId = 166401,
|
||||
|
||||
Style = {
|
||||
normal = {
|
||||
"V_Michael_bed_tidy",
|
||||
"V_Michael_M_items",
|
||||
"V_Michael_D_items",
|
||||
"V_Michael_S_items",
|
||||
"V_Michael_L_Items"
|
||||
},
|
||||
moved = {
|
||||
"V_Michael_bed_Messy",
|
||||
"V_Michael_M_moved",
|
||||
"V_Michael_D_Moved",
|
||||
"V_Michael_L_Moved",
|
||||
"V_Michael_S_items_swap",
|
||||
"V_Michael_M_items_swap"
|
||||
},
|
||||
|
||||
Set = function(style, refresh)
|
||||
Michael.Style.Clear(false)
|
||||
|
||||
SetIplPropState(Michael.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(Michael.interiorId, {
|
||||
Michael.Style.normal,
|
||||
Michael.Style.moved
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Bed = {
|
||||
tidy = "V_Michael_bed_tidy",
|
||||
messy = "V_Michael_bed_Messy",
|
||||
|
||||
Set = function(bed, refresh)
|
||||
Michael.Bed.Clear(false)
|
||||
|
||||
SetIplPropState(Michael.interiorId, bed, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(Michael.interiorId, {
|
||||
Michael.Bed.tidy,
|
||||
Michael.Bed.messy
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Garage = {
|
||||
scuba = "V_Michael_Scuba", -- Scuba diver gear
|
||||
|
||||
Enable = function(scuba, state, refresh)
|
||||
SetIplPropState(Michael.garageId, scuba, state, refresh)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
moviePoster = "Michael_premier", -- Meltdown movie poster
|
||||
fameShamePoste = "V_Michael_FameShame", -- Next to Tracey's bed
|
||||
planeTicket = "V_Michael_plane_ticket", -- Plane ticket
|
||||
spyGlasses = "V_Michael_JewelHeist", -- On the shelf inside Michael's bedroom
|
||||
bugershot = "burgershot_yoga", -- Bag and cup in the kitchen, next to the sink
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(Michael.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
Michael.Garage.Enable(Michael.Garage.scuba, false, true)
|
||||
Michael.Style.Set(Michael.Style.normal)
|
||||
Michael.Bed.Set(Michael.Bed.tidy)
|
||||
Michael.Details.Enable(Michael.Details.moviePoster, false)
|
||||
Michael.Details.Enable(Michael.Details.fameShamePoste, false)
|
||||
Michael.Details.Enable(Michael.Details.spyGlasses, false)
|
||||
Michael.Details.Enable(Michael.Details.planeTicket, false)
|
||||
Michael.Details.Enable(Michael.Details.bugershot, false)
|
||||
|
||||
RefreshInterior(Michael.interiorId)
|
||||
end
|
||||
}
|
38
resources/[standalone]/bob74_ipl/gtav/north_yankton.lua
Normal file
38
resources/[standalone]/bob74_ipl/gtav/north_yankton.lua
Normal file
@ -0,0 +1,38 @@
|
||||
exports('GetNorthYanktonObject', function()
|
||||
return NorthYankton
|
||||
end)
|
||||
|
||||
NorthYankton = {
|
||||
ipl = {
|
||||
"prologue01",
|
||||
"prologue01c",
|
||||
"prologue01d",
|
||||
"prologue01e",
|
||||
"prologue01f",
|
||||
"prologue01g",
|
||||
"prologue01h",
|
||||
"prologue01i",
|
||||
"prologue01j",
|
||||
"prologue01k",
|
||||
"prologue01z",
|
||||
"prologue02",
|
||||
"prologue03",
|
||||
"prologue03b",
|
||||
"prologue04",
|
||||
"prologue04b",
|
||||
"prologue05",
|
||||
"prologue05b",
|
||||
"prologue06",
|
||||
"prologue06b",
|
||||
"prologue06_int",
|
||||
"prologuerd",
|
||||
"prologuerdb",
|
||||
"prologue_DistantLights",
|
||||
"prologue_LODLights",
|
||||
"prologue_m2_door"
|
||||
},
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(NorthYankton.ipl, state)
|
||||
end
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
-- Pillbox hospital: 307.1680, -590.807, 43.280
|
||||
exports('GetPillboxHospitalObject', function()
|
||||
return PillboxHospital
|
||||
end)
|
||||
|
||||
PillboxHospital = {
|
||||
ipl = "rc12b_default",
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(PillboxHospital.ipl, state)
|
||||
end
|
||||
}
|
11
resources/[standalone]/bob74_ipl/gtav/red_carpet.lua
Normal file
11
resources/[standalone]/bob74_ipl/gtav/red_carpet.lua
Normal file
@ -0,0 +1,11 @@
|
||||
exports('GetRedCarpetObject', function()
|
||||
return RedCarpet
|
||||
end)
|
||||
|
||||
RedCarpet = {
|
||||
ipl = "redCarpet",
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(RedCarpet.ipl, state)
|
||||
end
|
||||
}
|
73
resources/[standalone]/bob74_ipl/gtav/simeon.lua
Normal file
73
resources/[standalone]/bob74_ipl/gtav/simeon.lua
Normal file
@ -0,0 +1,73 @@
|
||||
exports('GetSimeonObject', function()
|
||||
return Simeon
|
||||
end)
|
||||
|
||||
Simeon = {
|
||||
interiorId = 7170,
|
||||
|
||||
Ipl = {
|
||||
Interior = {
|
||||
ipl = {
|
||||
"shr_int"
|
||||
},
|
||||
|
||||
Load = function()
|
||||
EnableIpl(Simeon.Ipl.Interior.ipl, true)
|
||||
end,
|
||||
Remove = function()
|
||||
EnableIpl(Simeon.Ipl.Interior.ipl, false)
|
||||
end
|
||||
}
|
||||
},
|
||||
Style = {
|
||||
normal = "csr_beforeMission",
|
||||
noGlass = "csr_inMission",
|
||||
destroyed = "csr_afterMissionA",
|
||||
fixed = "csr_afterMissionB",
|
||||
|
||||
Set = function(style, refresh)
|
||||
Simeon.Style.Clear(false)
|
||||
|
||||
SetIplPropState(Simeon.interiorId, style, true, refresh)
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(Simeon.interiorId, {
|
||||
Simeon.Style.normal,
|
||||
Simeon.Style.noGlass,
|
||||
Simeon.Style.destroyed,
|
||||
Simeon.Style.fixed
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
Shutter = {
|
||||
none = "",
|
||||
opened = "shutter_open",
|
||||
closed = "shutter_closed",
|
||||
|
||||
Set = function(shutter, refresh)
|
||||
Simeon.Shutter.Clear(false)
|
||||
|
||||
if shutter ~= "" then
|
||||
SetIplPropState(Simeon.interiorId, shutter, true, refresh)
|
||||
else
|
||||
if refresh then
|
||||
RefreshInterior(Simeon.interiorId)
|
||||
end
|
||||
end
|
||||
end,
|
||||
Clear = function(refresh)
|
||||
SetIplPropState(Simeon.interiorId, {
|
||||
Simeon.Shutter.opened,
|
||||
Simeon.Shutter.closed
|
||||
}, false, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
Simeon.Ipl.Interior.Load()
|
||||
Simeon.Style.Set(Simeon.Style.normal)
|
||||
Simeon.Shutter.Set(Simeon.Shutter.open)
|
||||
|
||||
RefreshInterior(Simeon.interiorId)
|
||||
end
|
||||
}
|
18
resources/[standalone]/bob74_ipl/gtav/stripclub.lua
Normal file
18
resources/[standalone]/bob74_ipl/gtav/stripclub.lua
Normal file
@ -0,0 +1,18 @@
|
||||
exports('GetStripClubObject', function()
|
||||
return StripClub
|
||||
end)
|
||||
|
||||
StripClub = {
|
||||
interiorId = 197121,
|
||||
|
||||
Mess = {
|
||||
mess = "V_19_Trevor_Mess", -- A bit of mess in the office
|
||||
Enable = function(state)
|
||||
SetIplPropState(StripClub.interiorId, StripClub.Mess.mess, state, true)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
StripClub.Mess.Enable(false)
|
||||
end
|
||||
}
|
42
resources/[standalone]/bob74_ipl/gtav/trevors_trailer.lua
Normal file
42
resources/[standalone]/bob74_ipl/gtav/trevors_trailer.lua
Normal file
@ -0,0 +1,42 @@
|
||||
exports('GetTrevorsTrailerObject', function()
|
||||
return TrevorsTrailer
|
||||
end)
|
||||
|
||||
TrevorsTrailer = {
|
||||
interiorId = 2562,
|
||||
|
||||
Interior = {
|
||||
tidy = "trevorstrailertidy",
|
||||
trash = "TrevorsTrailerTrash",
|
||||
|
||||
Set = function(interior)
|
||||
TrevorsTrailer.Interior.Clear()
|
||||
|
||||
EnableIpl(interior, true)
|
||||
end,
|
||||
Clear = function()
|
||||
EnableIpl({
|
||||
TrevorsTrailer.Interior.tidy,
|
||||
TrevorsTrailer.Interior.trash
|
||||
}, false)
|
||||
end
|
||||
},
|
||||
Details = {
|
||||
copHelmet = "V_26_Trevor_Helmet3", -- Cop helmet in the closet
|
||||
briefcase = "V_24_Trevor_Briefcase3", -- Briefcase in the main room
|
||||
michaelStuff = "V_26_Michael_Stay3", -- Michael's suit hanging on the window
|
||||
|
||||
Enable = function(details, state, refresh)
|
||||
SetIplPropState(TrevorsTrailer.interiorId, details, state, refresh)
|
||||
end
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
TrevorsTrailer.Interior.Set(TrevorsTrailer.Interior.tidy)
|
||||
TrevorsTrailer.Details.Enable(TrevorsTrailer.Details.copHelmet, false, false)
|
||||
TrevorsTrailer.Details.Enable(TrevorsTrailer.Details.briefcase, false, false)
|
||||
TrevorsTrailer.Details.Enable(TrevorsTrailer.Details.michaelStuff, false, false)
|
||||
|
||||
RefreshInterior(TrevorsTrailer.interiorId)
|
||||
end
|
||||
}
|
27
resources/[standalone]/bob74_ipl/gtav/ufo.lua
Normal file
27
resources/[standalone]/bob74_ipl/gtav/ufo.lua
Normal file
@ -0,0 +1,27 @@
|
||||
exports('GetUFOObject', function()
|
||||
return UFO
|
||||
end)
|
||||
|
||||
UFO = {
|
||||
Hippie = {
|
||||
ipl = "ufo", -- Hippie base: 2490.47729, 3774.84351, 2414.035
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(UFO.Hippie.ipl, state)
|
||||
end
|
||||
},
|
||||
Chiliad = {
|
||||
ipl = "ufo_eye", -- Chiliad: 501.5288, 5593.865, 796.2325
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(UFO.Chiliad.ipl, state)
|
||||
end
|
||||
},
|
||||
Zancudo = {
|
||||
ipl = "ufo_lod", -- Zancudo: -2051.99463, 3237.05835, 1456.97021
|
||||
|
||||
Enable = function(state)
|
||||
EnableIpl(UFO.Zancudo.ipl, state)
|
||||
end
|
||||
}
|
||||
}
|
19
resources/[standalone]/bob74_ipl/gtav/zancudo_gates.lua
Normal file
19
resources/[standalone]/bob74_ipl/gtav/zancudo_gates.lua
Normal file
@ -0,0 +1,19 @@
|
||||
-- Zancudo Gates (GTAO like): -1600.30100000 2806.73100000 18.79683000
|
||||
exports('GetZancudoGatesObject', function()
|
||||
return ZancudoGates
|
||||
end)
|
||||
|
||||
ZancudoGates = {
|
||||
Gates = {
|
||||
Open = function()
|
||||
EnableIpl("CS3_07_MPGates", false)
|
||||
end,
|
||||
Close = function()
|
||||
EnableIpl("CS3_07_MPGates", true)
|
||||
end,
|
||||
},
|
||||
|
||||
LoadDefault = function()
|
||||
ZancudoGates.Gates.Open()
|
||||
end
|
||||
}
|
272
resources/[standalone]/bob74_ipl/lib/common.lua
Normal file
272
resources/[standalone]/bob74_ipl/lib/common.lua
Normal file
@ -0,0 +1,272 @@
|
||||
-- Global variables
|
||||
Global = {
|
||||
currentInteriorId = 0,
|
||||
|
||||
-- The current interior is set to True by 'interiorIdObserver'
|
||||
Online = {
|
||||
isInsideApartmentHi1 = false,
|
||||
isInsideApartmentHi2 = false,
|
||||
isInsideHouseHi1 = false,
|
||||
isInsideHouseHi2 = false,
|
||||
isInsideHouseHi3 = false,
|
||||
isInsideHouseHi4 = false,
|
||||
isInsideHouseHi5 = false,
|
||||
isInsideHouseHi6 = false,
|
||||
isInsideHouseHi7 = false,
|
||||
isInsideHouseHi8 = false,
|
||||
isInsideHouseLow1 = false,
|
||||
isInsideHouseMid1 = false
|
||||
},
|
||||
Biker = {
|
||||
isInsideClubhouse1 = false,
|
||||
isInsideClubhouse2 = false
|
||||
},
|
||||
FinanceOffices = {
|
||||
isInsideOffice1 = false,
|
||||
isInsideOffice2 = false,
|
||||
isInsideOffice3 = false,
|
||||
isInsideOffice4 = false
|
||||
},
|
||||
HighLife = {
|
||||
isInsideApartment1 = false,
|
||||
isInsideApartment2 = false,
|
||||
isInsideApartment3 = false,
|
||||
isInsideApartment4 = false,
|
||||
isInsideApartment5 = false,
|
||||
isInsideApartment6 = false
|
||||
},
|
||||
|
||||
-- Set all interiors variables to false
|
||||
-- The loop inside 'interiorIdObserver' will set them to true
|
||||
ResetInteriorVariables = function()
|
||||
for _, parentKey in pairs{"Biker", "FinanceOffices", "HighLife"} do
|
||||
local t = Global[parentKey]
|
||||
|
||||
for key in pairs(t) do
|
||||
t[key] = false
|
||||
end
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
exports('GVariables', function()
|
||||
return Global
|
||||
end)
|
||||
|
||||
exports('EnableIpl', function(ipl, activate)
|
||||
return EnableIpl(ipl, activate)
|
||||
end)
|
||||
|
||||
exports('GetPedheadshotTexture', function(ped)
|
||||
return GetPedheadshotTexture(ped)
|
||||
end)
|
||||
|
||||
-- Load or remove IPL(s)
|
||||
function EnableIpl(ipl, activate)
|
||||
if type(ipl) == "table" then
|
||||
for key, value in pairs(ipl) do
|
||||
EnableIpl(value, activate)
|
||||
end
|
||||
else
|
||||
if activate then
|
||||
if not IsIplActive(ipl) then
|
||||
RequestIpl(ipl)
|
||||
end
|
||||
else
|
||||
if IsIplActive(ipl) then
|
||||
RemoveIpl(ipl)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Enable or disable the specified props in an interior
|
||||
function SetIplPropState(interiorId, props, state, refresh)
|
||||
if refresh == nil then
|
||||
refresh = false
|
||||
end
|
||||
|
||||
if type(interiorId) == "table" then
|
||||
for key, value in pairs(interiorId) do
|
||||
SetIplPropState(value, props, state, refresh)
|
||||
end
|
||||
else
|
||||
if type(props) == "table" then
|
||||
for key, value in pairs(props) do
|
||||
SetIplPropState(interiorId, value, state, refresh)
|
||||
end
|
||||
else
|
||||
if state then
|
||||
if not IsInteriorPropEnabled(interiorId, props) then
|
||||
EnableInteriorProp(interiorId, props)
|
||||
end
|
||||
else
|
||||
if IsInteriorPropEnabled(interiorId, props) then
|
||||
DisableInteriorProp(interiorId, props)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if refresh then
|
||||
RefreshInterior(interiorId)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function CreateNamedRenderTargetForModel(name, model)
|
||||
local handle = 0
|
||||
|
||||
if not IsNamedRendertargetRegistered(name) then
|
||||
RegisterNamedRendertarget(name, false)
|
||||
end
|
||||
|
||||
if not IsNamedRendertargetLinked(model) then
|
||||
LinkNamedRendertarget(model)
|
||||
end
|
||||
|
||||
if IsNamedRendertargetRegistered(name) then
|
||||
handle = GetNamedRendertargetRenderId(name)
|
||||
end
|
||||
|
||||
return handle
|
||||
end
|
||||
|
||||
function DrawEmptyRect(name, model)
|
||||
local step = 250
|
||||
local timeout = 5 * 1000
|
||||
local currentTime = 0
|
||||
local renderId = CreateNamedRenderTargetForModel(name, model)
|
||||
|
||||
while not IsNamedRendertargetRegistered(name) do
|
||||
Citizen.Wait(step)
|
||||
|
||||
currentTime = currentTime + step
|
||||
|
||||
if currentTime >= timeout then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
if IsNamedRendertargetRegistered(name) then
|
||||
SetTextRenderId(renderId)
|
||||
SetScriptGfxDrawOrder(4)
|
||||
DrawRect(0.5, 0.5, 1.0, 1.0, 0, 0, 0, 0)
|
||||
SetTextRenderId(GetDefaultScriptRendertargetRenderId())
|
||||
ReleaseNamedRendertarget(0, name)
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function SetupScaleform(movieId, scaleformFunction, parameters)
|
||||
BeginScaleformMovieMethod(movieId, scaleformFunction)
|
||||
ScaleformMovieMethodAddParamTextureNameString_2(name)
|
||||
|
||||
if type(parameters) == "table" then
|
||||
for i = 0, Tablelength(parameters) - 1 do
|
||||
local p = parameters["p" .. tostring(i)]
|
||||
|
||||
if p.type == "bool" then
|
||||
PushScaleformMovieMethodParameterBool(p.value)
|
||||
elseif p.type == "int" then
|
||||
PushScaleformMovieMethodParameterInt(p.value)
|
||||
elseif p.type == "float" then
|
||||
PushScaleformMovieMethodParameterFloat(p.value)
|
||||
elseif p.type == "string" then
|
||||
PushScaleformMovieMethodParameterString(p.value)
|
||||
elseif p.type == "buttonName" then
|
||||
PushScaleformMovieMethodParameterButtonName(p.value)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
EndScaleformMovieMethod()
|
||||
N_0x32f34ff7f617643b(movieId, 1)
|
||||
end
|
||||
|
||||
function LoadStreamedTextureDict(texturesDict)
|
||||
local step = 1000
|
||||
local timeout = 5 * 1000
|
||||
local currentTime = 0
|
||||
|
||||
RequestStreamedTextureDict(texturesDict, 0)
|
||||
while not HasStreamedTextureDictLoaded(texturesDict) do
|
||||
Citizen.Wait(step)
|
||||
|
||||
currentTime = currentTime + step
|
||||
|
||||
if currentTime >= timeout then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function LoadScaleform(scaleform)
|
||||
local step = 1000
|
||||
local timeout = 5 * 1000
|
||||
local currentTime = 0
|
||||
local handle = RequestScaleformMovie(scaleform)
|
||||
|
||||
while not HasScaleformMovieLoaded(handle) do
|
||||
Citizen.Wait(step)
|
||||
|
||||
currentTime = currentTime + step
|
||||
|
||||
if currentTime >= timeout then
|
||||
return -1
|
||||
end
|
||||
end
|
||||
|
||||
return handle
|
||||
end
|
||||
|
||||
function GetPedheadshot(ped)
|
||||
local step = 1000
|
||||
local timeout = 5 * 1000
|
||||
local currentTime = 0
|
||||
local pedheadshot = RegisterPedheadshot(ped)
|
||||
|
||||
while not IsPedheadshotReady(pedheadshot) do
|
||||
Citizen.Wait(step)
|
||||
|
||||
currentTime = currentTime + step
|
||||
|
||||
if currentTime >= timeout then
|
||||
return -1
|
||||
end
|
||||
end
|
||||
|
||||
return pedheadshot
|
||||
end
|
||||
|
||||
function GetPedheadshotTexture(ped)
|
||||
local textureDict = nil
|
||||
local pedheadshot = GetPedheadshot(ped)
|
||||
|
||||
if pedheadshot ~= -1 then
|
||||
textureDict = GetPedheadshotTxdString(pedheadshot)
|
||||
|
||||
local IsTextureDictLoaded = LoadStreamedTextureDict(textureDict)
|
||||
|
||||
if not IsTextureDictLoaded then
|
||||
Citizen.Trace("ERROR: GetPedheadshotTexture - Textures dictionnary \"" .. tostring(textureDict) .. "\" cannot be loaded.")
|
||||
end
|
||||
else
|
||||
Citizen.Trace("ERROR: GetPedheadshotTexture - PedHeadShot not ready.")
|
||||
end
|
||||
|
||||
return textureDict
|
||||
end
|
||||
|
||||
-- Return the number of elements of the table
|
||||
function Tablelength(T)
|
||||
local count = 0
|
||||
|
||||
for _ in pairs(T) do
|
||||
count = count + 1
|
||||
end
|
||||
|
||||
return count
|
||||
end
|
@ -0,0 +1,48 @@
|
||||
local _scanDelay = 500
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
-- /!\ To do: Find a more reliable way to get the current interior ID
|
||||
Global.currentInteriorId = GetInteriorAtCoords(GetEntityCoords(PlayerPedId()))
|
||||
|
||||
if Global.currentInteriorId == 0 then
|
||||
Global.ResetInteriorVariables()
|
||||
else
|
||||
-- Setting variables
|
||||
|
||||
-- GTA Online
|
||||
Global.Online.isInsideApartmentHi1 = (Global.currentInteriorId == GTAOApartmentHi1.interiorId)
|
||||
Global.Online.isInsideApartmentHi2 = (Global.currentInteriorId == GTAOApartmentHi2.interiorId)
|
||||
Global.Online.isInsideHouseHi1 = (Global.currentInteriorId == GTAOHouseHi1.interiorId)
|
||||
Global.Online.isInsideHouseHi2 = (Global.currentInteriorId == GTAOHouseHi2.interiorId)
|
||||
Global.Online.isInsideHouseHi3 = (Global.currentInteriorId == GTAOHouseHi3.interiorId)
|
||||
Global.Online.isInsideHouseHi4 = (Global.currentInteriorId == GTAOHouseHi4.interiorId)
|
||||
Global.Online.isInsideHouseHi5 = (Global.currentInteriorId == GTAOHouseHi5.interiorId)
|
||||
Global.Online.isInsideHouseHi6 = (Global.currentInteriorId == GTAOHouseHi6.interiorId)
|
||||
Global.Online.isInsideHouseHi7 = (Global.currentInteriorId == GTAOHouseHi7.interiorId)
|
||||
Global.Online.isInsideHouseHi8 = (Global.currentInteriorId == GTAOHouseHi8.interiorId)
|
||||
Global.Online.isInsideHouseLow1 = (Global.currentInteriorId == GTAOHouseLow1.interiorId)
|
||||
Global.Online.isInsideHouseMid1 = (Global.currentInteriorId == GTAOHouseMid1.interiorId)
|
||||
|
||||
-- DLC: High life
|
||||
Global.HighLife.isInsideApartment1 = (Global.currentInteriorId == HLApartment1.interiorId)
|
||||
Global.HighLife.isInsideApartment2 = (Global.currentInteriorId == HLApartment2.interiorId)
|
||||
Global.HighLife.isInsideApartment3 = (Global.currentInteriorId == HLApartment3.interiorId)
|
||||
Global.HighLife.isInsideApartment4 = (Global.currentInteriorId == HLApartment4.interiorId)
|
||||
Global.HighLife.isInsideApartment5 = (Global.currentInteriorId == HLApartment5.interiorId)
|
||||
Global.HighLife.isInsideApartment6 = (Global.currentInteriorId == HLApartment6.interiorId)
|
||||
|
||||
-- DLC: Bikers - Clubhouses
|
||||
Global.Biker.isInsideClubhouse1 = (Global.currentInteriorId == BikerClubhouse1.interiorId)
|
||||
Global.Biker.isInsideClubhouse2 = (Global.currentInteriorId == BikerClubhouse2.interiorId)
|
||||
|
||||
-- DLC: Finance & Felony - Offices
|
||||
Global.FinanceOffices.isInsideOffice1 = (Global.currentInteriorId == FinanceOffice1.currentInteriorId)
|
||||
Global.FinanceOffices.isInsideOffice2 = (Global.currentInteriorId == FinanceOffice2.currentInteriorId)
|
||||
Global.FinanceOffices.isInsideOffice3 = (Global.currentInteriorId == FinanceOffice3.currentInteriorId)
|
||||
Global.FinanceOffices.isInsideOffice4 = (Global.currentInteriorId == FinanceOffice4.currentInteriorId)
|
||||
end
|
||||
|
||||
Citizen.Wait(_scanDelay)
|
||||
end
|
||||
end)
|
@ -0,0 +1,47 @@
|
||||
-- Delay between each attempt to open/close the doors corresponding to their state
|
||||
local _scanDelay = 500
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
local office = 0
|
||||
|
||||
-- Search for the current office to open/close the safes doors
|
||||
if Global.FinanceOffices.isInsideOffice1 then
|
||||
office = FinanceOffice1
|
||||
elseif Global.FinanceOffices.isInsideOffice2 then
|
||||
office = FinanceOffice2
|
||||
elseif Global.FinanceOffices.isInsideOffice3 then
|
||||
office = FinanceOffice3
|
||||
elseif Global.FinanceOffices.isInsideOffice4 then
|
||||
office = FinanceOffice4
|
||||
end
|
||||
|
||||
if office ~= 0 then
|
||||
-- Office found, let's check the doors
|
||||
|
||||
-- Check left door
|
||||
doorHandle = office.Safe.GetDoorHandle(office.currentSafeDoors.hashL)
|
||||
|
||||
if doorHandle ~= 0 then
|
||||
if office.Safe.isLeftDoorOpen then
|
||||
office.Safe.SetDoorState("left", true)
|
||||
else
|
||||
office.Safe.SetDoorState("left", false)
|
||||
end
|
||||
end
|
||||
|
||||
-- Check right door
|
||||
doorHandle = office.Safe.GetDoorHandle(office.currentSafeDoors.hashR)
|
||||
|
||||
if doorHandle ~= 0 then
|
||||
if office.Safe.isRightDoorOpen then
|
||||
office.Safe.SetDoorState("right", true)
|
||||
else
|
||||
office.Safe.SetDoorState("right", false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Citizen.Wait(_scanDelay)
|
||||
end
|
||||
end)
|
48
resources/[standalone]/bt-polyzone/client/main.lua
Normal file
48
resources/[standalone]/bt-polyzone/client/main.lua
Normal file
@ -0,0 +1,48 @@
|
||||
local Zones = {}
|
||||
local insideZones = {}
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
local plyPed = PlayerPedId()
|
||||
local coord = GetEntityCoords(plyPed)
|
||||
|
||||
Citizen.Wait(500)
|
||||
|
||||
for _, zone in pairs(Zones) do
|
||||
if Zones[_]:isPointInside(coord) then
|
||||
if (not insideZones[_]) then
|
||||
insideZones[_] = true
|
||||
local insideZone = true
|
||||
Citizen.CreateThread(function()
|
||||
TriggerEvent("bt-polyzone:enter", _)
|
||||
while insideZone do
|
||||
local plyPed = PlayerPedId()
|
||||
local InZoneCoordS = GetEntityCoords(plyPed)
|
||||
|
||||
if not Zones[_]:isPointInside(InZoneCoordS) then
|
||||
insideZone = false
|
||||
insideZones[_] = false
|
||||
TriggerEvent("bt-polyzone:exit", _)
|
||||
end
|
||||
Citizen.Wait(250)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
function AddCircleZone(name, center, radius, options)
|
||||
center = vector3(center.x, center.y, center.z)
|
||||
Zones[name] = CircleZone:Create(center, radius, options)
|
||||
end
|
||||
|
||||
function AddBoxZone(name, center, length, width, options)
|
||||
center = vector3(center.x, center.y, center.z)
|
||||
Zones[name] = BoxZone:Create(center, length, width, options)
|
||||
end
|
||||
|
||||
function AddPolyZone(name, points, options)
|
||||
Zones[name] = PolyZone:Create(points, options)
|
||||
end
|
22
resources/[standalone]/bt-polyzone/fxmanifest.lua
Normal file
22
resources/[standalone]/bt-polyzone/fxmanifest.lua
Normal file
@ -0,0 +1,22 @@
|
||||
fx_version 'cerulean'
|
||||
|
||||
game 'gta5'
|
||||
|
||||
dependencies {
|
||||
"PolyZone"
|
||||
}
|
||||
|
||||
client_scripts {
|
||||
'@PolyZone/client.lua',
|
||||
'@PolyZone/BoxZone.lua',
|
||||
'@PolyZone/EntityZone.lua',
|
||||
'@PolyZone/CircleZone.lua',
|
||||
'@PolyZone/ComboZone.lua',
|
||||
'client/main.lua'
|
||||
}
|
||||
|
||||
exports {
|
||||
'AddCircleZone',
|
||||
'AddBoxZone',
|
||||
'AddPolyZone'
|
||||
}
|
674
resources/[standalone]/casinoUi/LICENSE
Normal file
674
resources/[standalone]/casinoUi/LICENSE
Normal file
@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
5
resources/[standalone]/casinoUi/README.md
Normal file
5
resources/[standalone]/casinoUi/README.md
Normal file
@ -0,0 +1,5 @@
|
||||
# casinoUi
|
||||
|
||||
edited version of dsheedes cd_drawtextui
|
||||
|
||||
- Original Creator: https://github.com/dsheedes/cd_drawtextui
|
35
resources/[standalone]/casinoUi/client/main.lua
Normal file
35
resources/[standalone]/casinoUi/client/main.lua
Normal file
@ -0,0 +1,35 @@
|
||||
RegisterNetEvent('casinoUi:ShowUI')
|
||||
AddEventHandler('casinoUi:ShowUI', function(action, text)
|
||||
SendNUIMessage({
|
||||
action = action,
|
||||
text = text,
|
||||
})
|
||||
end)
|
||||
|
||||
RegisterNetEvent('casinoUi:HideUI')
|
||||
AddEventHandler('casinoUi:HideUI', function()
|
||||
SendNUIMessage({
|
||||
action = 'hide'
|
||||
})
|
||||
end)
|
||||
|
||||
function DrawCasinoUi(action, text)
|
||||
SendNUIMessage({
|
||||
action = action,
|
||||
text = text,
|
||||
})
|
||||
end
|
||||
|
||||
function HideCasinoUi()
|
||||
SendNUIMessage({
|
||||
action = 'hide'
|
||||
})
|
||||
end
|
||||
|
||||
-- RegisterCommand('test', function()
|
||||
-- exports['casinoUi']:DrawCasinoUi('show', "Diamond Casino Blackjack</p>Balance: $5000Test</br>Bet: 10000Test")
|
||||
-- Wait(3700)
|
||||
-- exports['casinoUi']:HideCasinoUi('hide')
|
||||
-- end, false)
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user