fixing scripts
This commit is contained in:
@@ -632,3 +632,14 @@ Capacity 520
|
||||
CanAttachToOthers false
|
||||
Weapons WATER,FOAM,PRESSURE
|
||||
}
|
||||
|
||||
|
||||
{[TruckInfo]
|
||||
Model ftanker
|
||||
AttachOffset -1,0.65,0.2
|
||||
OtherAttachOffset -1,0.8,-0.2
|
||||
HelpTextOffset -1.205,0.7,0.4
|
||||
Capacity 120
|
||||
CanAttachToOthers false
|
||||
Weapons WATER,FOAM,PRESSURE
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
@@ -0,0 +1,22 @@
|
||||
# Tanker Water Script
|
||||
|
||||
Tanker water release script for the Free Mode Designs LTD Tanker
|
||||
|
||||
# How to use
|
||||
|
||||
- Ensure the spawncode in the config.lua is the same as the vehicle spawn code
|
||||
- When sat in the vehicle, run the command /fillpool,
|
||||
- When you want to empty the pool, run the command /emptypool
|
||||
|
||||
# Future Developments
|
||||
|
||||
In the future, I would like to be able to link it up with some other products to allow for refilling of engines etc from the tanker.
|
||||
|
||||
If anyone wants to contribute to the project please feel free to shoot me a DM on discord @ JackTheDev
|
||||
|
||||
# Contact us
|
||||
|
||||
- Website -> [https://www.freemodedesigns.shop](https://www.freemodedesigns.shop)
|
||||
- Discord -> [https://discord.gg/fmd](https://discord.gg/fmd)
|
||||
- Email - > jackthedev@freemodedesigns.shop
|
||||
|
||||
@@ -0,0 +1,206 @@
|
||||
local display = false
|
||||
local fillingUp = false
|
||||
|
||||
local currentVeh
|
||||
local txdDetail
|
||||
local duiObjDetail
|
||||
local duiDetail
|
||||
local txDetail
|
||||
|
||||
local txdBump
|
||||
local duiObjBump
|
||||
local duiBump
|
||||
local txBump
|
||||
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Citizen.Wait(1)
|
||||
if display then
|
||||
-- If ped gets out of vehicle
|
||||
if not IsPedSittingInAnyVehicle(PlayerPedId()) then
|
||||
SetDisplay(false)
|
||||
end
|
||||
elseif IsPedSittingInAnyVehicle(PlayerPedId()) and not display and fillingUp then
|
||||
|
||||
local currentVeh = GetDisplayNameFromVehicleModel(GetEntityModel(GetVehiclePedIsIn(PlayerPedId(), false)))
|
||||
local inVehicle = false
|
||||
|
||||
if currentVeh == config.spawnCodes then
|
||||
inVehicle = true
|
||||
end
|
||||
|
||||
if inVehicle then
|
||||
SetDisplay(true)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Commands
|
||||
RegisterCommand("fillpool", function()
|
||||
local ped = PlayerPedId()
|
||||
local pedCoords = GetEntityCoords(ped)
|
||||
currentVeh = GetDisplayNameFromVehicleModel(GetEntityModel(GetVehiclePedIsIn(ped, false)))
|
||||
local vehEntity = GetVehiclePedIsIn(GetPlayerPed(-1), false)
|
||||
local inVehicle = False
|
||||
|
||||
for _, data in pairs(config.spawnCode) do
|
||||
if data == currentVeh then
|
||||
inVehicle = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if inVehicle then
|
||||
if IsVehicleAConvertible(vehEntity, false) == 1 then
|
||||
fillingUp = true
|
||||
|
||||
if config.useUI then
|
||||
SetDisplay(true)
|
||||
SendNUIMessage({
|
||||
waterType = "filling"
|
||||
})
|
||||
end
|
||||
|
||||
TriggerServerEvent("setWaterTexture")
|
||||
|
||||
SetConvertibleRoof(vehEntity)
|
||||
LowerConvertibleRoof(vehEntity, false)
|
||||
|
||||
SetVehicleModKit(vehEntity, 0)
|
||||
SetVehicleMod(vehEntity, 37, GetNumVehicleMods(vehEntity, 37)-1, false)
|
||||
|
||||
TriggerServerEvent("createWaterParticles", vehEntity)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
Citizen.Wait(50000) -- 50 Seconds
|
||||
|
||||
fillingUp = false
|
||||
end)
|
||||
|
||||
end
|
||||
else
|
||||
notify("You need to be in the tanker truck to do this!")
|
||||
end
|
||||
|
||||
end,false)
|
||||
|
||||
|
||||
RegisterCommand("emptypool", function()
|
||||
local ped = PlayerPedId()
|
||||
local pedCoords = GetEntityCoords(ped)
|
||||
local currentVeh = GetDisplayNameFromVehicleModel(GetEntityModel(GetVehiclePedIsIn(ped, false)))
|
||||
local vehEntity = GetVehiclePedIsIn(GetPlayerPed(-1), false)
|
||||
local inVehicle = False
|
||||
|
||||
|
||||
for _, data in pairs(config.spawnCode) do
|
||||
if data == currentVeh then
|
||||
inVehicle = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if inVehicle then
|
||||
if not fillingUp then
|
||||
if IsVehicleAConvertible(vehEntity, false) == 1 then
|
||||
fillingUp = false
|
||||
|
||||
if config.useUI then
|
||||
SetDisplay(true)
|
||||
SendNUIMessage({
|
||||
waterType = "emptying"
|
||||
})
|
||||
end
|
||||
|
||||
local state = GetConvertibleRoofState(vehEntity)
|
||||
|
||||
if state ~= 0 then
|
||||
SetConvertibleRoof(vehEntity)
|
||||
RaiseConvertibleRoof(vehEntity, false)
|
||||
end
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
Citizen.Wait(50000) -- 50 Seconds
|
||||
|
||||
TriggerServerEvent("resetWaterTexture")
|
||||
end)
|
||||
|
||||
end
|
||||
else
|
||||
notify("You need to wait to complete filling up before emptying.")
|
||||
end
|
||||
else
|
||||
notify("You need to be in the tanker truck to do this!")
|
||||
end
|
||||
|
||||
end,false)
|
||||
|
||||
|
||||
RegisterNetEvent("waterParticles")
|
||||
AddEventHandler("waterParticles", function(vehEntity)
|
||||
|
||||
local waterSpoutBone = config.bone
|
||||
local boneSpoutIndex = GetEntityBoneIndexByName(vehEntity, waterSpoutBone)
|
||||
|
||||
if boneSpoutIndex ~= -1 then
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
UseParticleFxAssetNextCall('core')
|
||||
waterSpout = StartParticleFxLoopedOnEntityBone('water_cannon_jet', vehEntity, 0, 0, 0 , 180.0, 0.0, 0.0, boneSpoutIndex, 0.50, false, false, false)
|
||||
Citizen.Wait(50000) -- 50 Seconds
|
||||
StopParticleFxLooped(waterSpout)
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
RegisterNetEvent("updateTexture")
|
||||
AddEventHandler("updateTexture", function(toggle)
|
||||
|
||||
if toggle then
|
||||
|
||||
-- Detail
|
||||
txdDetail = CreateRuntimeTxd("duiTxdDetail")
|
||||
duiObjDetail = CreateDui(config.detailTexture, config.detailSizeX, config.detailSizeY)
|
||||
_G.duiObjDetail = duiObjDetail
|
||||
duiDetail = GetDuiHandle(duiObjDetail)
|
||||
txDetail = CreateRuntimeTextureFromDuiHandle(txdDetail, 'duiTexDetail', duiDetail)
|
||||
AddReplaceTexture(currentVeh, config.detailTextureName, 'duiTxdDetail', 'duiTexDetail')
|
||||
|
||||
-- Bump
|
||||
txdBump = CreateRuntimeTxd("duiTxdBump")
|
||||
duiObjBump = CreateDui(config.bumpTexture, config.bumpSizeX, config.bumpSizeY)
|
||||
_G.duiObjBump = duiObjBump
|
||||
duiBump = GetDuiHandle(duiObjBump)
|
||||
txBump = CreateRuntimeTextureFromDuiHandle(txdBump, 'duiTexBump', duiBump)
|
||||
AddReplaceTexture(currentVeh, config.bumpTextureName, 'duiTxdBump', 'duiTexBump')
|
||||
|
||||
else
|
||||
|
||||
RemoveReplaceTexture(currentVeh, config.detailTextureName)
|
||||
RemoveReplaceTexture(currentVeh, config.bumpTextureName)
|
||||
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
|
||||
function notify(str)
|
||||
BeginTextCommandThefeedPost("STRING")
|
||||
AddTextComponentSubstringPlayerName(str)
|
||||
EndTextCommandThefeedPostTicker(true, false)
|
||||
end
|
||||
|
||||
|
||||
function SetDisplay(bool)
|
||||
display = bool
|
||||
SendNUIMessage({
|
||||
type = "ui",
|
||||
status = bool,
|
||||
})
|
||||
end
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 336 KiB |
@@ -0,0 +1,151 @@
|
||||
body {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
#container {
|
||||
position: absolute;
|
||||
left: 1735px;
|
||||
top: 10px;
|
||||
background-color: rgb(44, 44, 44, 0);
|
||||
}
|
||||
|
||||
.turnOffImage {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.turnOnImage {
|
||||
opacity: 100;
|
||||
}
|
||||
|
||||
#image {
|
||||
height: 300px;
|
||||
width: 175px;
|
||||
}
|
||||
|
||||
#light1 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 62px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light2 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 86px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light3 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 108px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light4 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 130px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light5 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 152px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light6 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 174px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light7 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 194px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light8 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 216px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light1 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 62px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light2 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 86px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light3 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 108px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light4 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 130px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light5 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 152px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light6 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 174px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light7 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 194px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#light8 {
|
||||
position: absolute;
|
||||
left: 52px;
|
||||
top: 216px;
|
||||
height: 20px;
|
||||
width: 70px;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="reset.css" type="text/css" />
|
||||
<link rel="stylesheet" href="index.css" type="text/css" />
|
||||
<script src="nui://game/ui/jquery.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
<p id="test"></p>
|
||||
<p id="test2"></p>
|
||||
|
||||
<img src="imgs/water.png" id="image" />
|
||||
<img src="imgs/lights.png" id="light1" />
|
||||
<img src="imgs/lights.png" id="light2" />
|
||||
<img src="imgs/lights.png" id="light3" />
|
||||
<img src="imgs/lights.png" id="light4" />
|
||||
<img src="imgs/lights.png" id="light5" />
|
||||
<img src="imgs/lights.png" id="light6" />
|
||||
<img src="imgs/lights.png" id="light7" />
|
||||
<img src="imgs/lights.png" id="light8" />
|
||||
</div>
|
||||
<script src="./index.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,72 @@
|
||||
$(function () {
|
||||
function display(bool) {
|
||||
if (bool) {
|
||||
$('#container').show();
|
||||
} else {
|
||||
$('#container').hide();
|
||||
}
|
||||
}
|
||||
|
||||
display(false);
|
||||
|
||||
function decreaseLights() {
|
||||
let counter = 6;
|
||||
let counter2 = 0;
|
||||
|
||||
for (let i = 51; i > 0; i--) {
|
||||
setTimeout(function () {
|
||||
if (50 - i == counter) {
|
||||
counter = counter + 6;
|
||||
counter2++;
|
||||
|
||||
document.getElementById('light' + counter2).className =
|
||||
'turnOffImage';
|
||||
}
|
||||
}, (51 - i) * 1000);
|
||||
}
|
||||
|
||||
display(false);
|
||||
}
|
||||
|
||||
function increaseLights() {
|
||||
let counter = 6;
|
||||
let counter2 = 8;
|
||||
|
||||
for (let i = 1; i < 9; i++) {
|
||||
document.getElementById('light' + i).className = 'turnOffImage';
|
||||
}
|
||||
|
||||
for (let i = 51; i > 0; i--) {
|
||||
setTimeout(function () {
|
||||
if (50 - i == counter) {
|
||||
counter = counter + 6;
|
||||
|
||||
document.getElementById('light' + counter2).className = 'turnOnImage';
|
||||
|
||||
counter2--;
|
||||
}
|
||||
}, (51 - i) * 1000);
|
||||
}
|
||||
|
||||
display(false);
|
||||
}
|
||||
|
||||
window.addEventListener('message', function (event) {
|
||||
var item = event.data;
|
||||
if (item.type === 'ui') {
|
||||
if (item.status == true) {
|
||||
display(true);
|
||||
} else {
|
||||
display(false);
|
||||
}
|
||||
} else {
|
||||
if (item.waterType === 'filling') {
|
||||
decreaseLights();
|
||||
} else {
|
||||
if (item.waterType === 'emptying') {
|
||||
increaseLights();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,129 @@
|
||||
/* http://meyerweb.com/eric/tools/css/reset/
|
||||
v2.0 | 20110126
|
||||
License: none (public domain)
|
||||
*/
|
||||
|
||||
html,
|
||||
body,
|
||||
div,
|
||||
span,
|
||||
applet,
|
||||
object,
|
||||
iframe,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
p,
|
||||
blockquote,
|
||||
pre,
|
||||
a,
|
||||
abbr,
|
||||
acronym,
|
||||
address,
|
||||
big,
|
||||
cite,
|
||||
code,
|
||||
del,
|
||||
dfn,
|
||||
em,
|
||||
img,
|
||||
ins,
|
||||
kbd,
|
||||
q,
|
||||
s,
|
||||
samp,
|
||||
small,
|
||||
strike,
|
||||
strong,
|
||||
sub,
|
||||
sup,
|
||||
tt,
|
||||
var,
|
||||
b,
|
||||
u,
|
||||
i,
|
||||
center,
|
||||
dl,
|
||||
dt,
|
||||
dd,
|
||||
ol,
|
||||
ul,
|
||||
li,
|
||||
fieldset,
|
||||
form,
|
||||
label,
|
||||
legend,
|
||||
table,
|
||||
caption,
|
||||
tbody,
|
||||
tfoot,
|
||||
thead,
|
||||
tr,
|
||||
th,
|
||||
td,
|
||||
article,
|
||||
aside,
|
||||
canvas,
|
||||
details,
|
||||
embed,
|
||||
figure,
|
||||
figcaption,
|
||||
footer,
|
||||
header,
|
||||
hgroup,
|
||||
menu,
|
||||
nav,
|
||||
output,
|
||||
ruby,
|
||||
section,
|
||||
summary,
|
||||
time,
|
||||
mark,
|
||||
audio,
|
||||
video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article,
|
||||
aside,
|
||||
details,
|
||||
figcaption,
|
||||
figure,
|
||||
footer,
|
||||
header,
|
||||
hgroup,
|
||||
menu,
|
||||
nav,
|
||||
section {
|
||||
display: block;
|
||||
}
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
ol,
|
||||
ul {
|
||||
list-style: none;
|
||||
}
|
||||
blockquote,
|
||||
q {
|
||||
quotes: none;
|
||||
}
|
||||
blockquote:before,
|
||||
blockquote:after,
|
||||
q:before,
|
||||
q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
config = {}
|
||||
|
||||
-- Add more to this if you are using the same truck with different spawn codes.
|
||||
config.spawnCode = {
|
||||
"ftanker",
|
||||
"ftanker2"
|
||||
}
|
||||
config.useUI = true
|
||||
|
||||
-- !!!! DO NOT CHANGE ANYTHING BELOW THIS !!!! --
|
||||
config.resourceName = "tanker_water"
|
||||
config.bone = "misc_z"
|
||||
|
||||
|
||||
-- Detail texture
|
||||
|
||||
config.detailTextureName = "water_sign_1"
|
||||
config.detailTexture = "https://cdn.shopify.com/s/files/1/0526/1030/2149/files/water.gif?v=1714823830"
|
||||
config.detailSizeX = 32
|
||||
config.detailSizeY = 32
|
||||
|
||||
-- Bump Texture
|
||||
|
||||
config.bumpTextureName = "waterbump_sign_1"
|
||||
config.bumpTexture = "https://cdn.shopify.com/s/files/1/0526/1030/2149/files/water_bump.gif?v=1714823842"
|
||||
config.bumpSizeX = 32
|
||||
config.bumpSizeY = 32
|
||||
@@ -0,0 +1,26 @@
|
||||
fx_version 'cerulean'
|
||||
games { 'gta5' }
|
||||
|
||||
|
||||
client_scripts {
|
||||
'client/client.lua'
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'server/server.lua'
|
||||
}
|
||||
|
||||
shared_script {
|
||||
'config.lua'
|
||||
}
|
||||
|
||||
ui_page 'client/html/index.html'
|
||||
files {
|
||||
'client/html/index.html',
|
||||
'client/html/index.js',
|
||||
'client/html/index.css',
|
||||
'client/html/reset.css',
|
||||
'client/html/imgs/water.png',
|
||||
'client/html/imgs/lights.png',
|
||||
'grill.png'
|
||||
}
|
||||
@@ -0,0 +1,228 @@
|
||||
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
|
||||
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
|
||||
CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
|
||||
|
||||
1. DEFINITIONS
|
||||
|
||||
"Contribution" means:
|
||||
|
||||
a) in the case of the initial Contributor, the initial code and
|
||||
|
||||
documentation distributed under this Agreement, and
|
||||
|
||||
b) in the case of each subsequent Contributor:
|
||||
|
||||
i) changes to the Program, and
|
||||
|
||||
ii) additions to the Program;
|
||||
|
||||
where such changes and/or additions to the Program originate from and are
|
||||
|
||||
distributed by that particular Contributor. A Contribution 'originates' from a
|
||||
Contributor if it was added to the Program by such Contributor itself or anyone
|
||||
acting on such Contributor's behalf. Contributions do not include additions to
|
||||
the Program which: (i) are separate modules of software distributed in
|
||||
conjunction with the Program under their own license agreement, and (ii) are not
|
||||
derivative works of the Program.
|
||||
|
||||
"Contributor" means any person or entity that distributes the Program.
|
||||
|
||||
"Licensed Patents " mean patent claims licensable by a Contributor which are
|
||||
necessarily infringed by the use or sale of its Contribution alone or when
|
||||
combined with the Program.
|
||||
|
||||
"Program" means the Contributions distributed in accordance with this Agreement.
|
||||
|
||||
"Recipient" means anyone who receives the Program under this Agreement,
|
||||
including all Contributors.
|
||||
|
||||
2. GRANT OF RIGHTS
|
||||
|
||||
a) Subject to the terms of this Agreement, each Contributor hereby grants
|
||||
|
||||
Recipient a non-exclusive, worldwide, royalty-free copyright license to
|
||||
reproduce, prepare derivative works of, publicly display, publicly perform,
|
||||
distribute and sublicense the Contribution of such Contributor, if any, and such
|
||||
derivative works, in source code and object code form.
|
||||
|
||||
b) Subject to the terms of this Agreement, each Contributor hereby grants
|
||||
|
||||
Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
|
||||
Patents to make, use, sell, offer to sell, import and otherwise transfer the
|
||||
Contribution of such Contributor, if any, in source code and object code form.
|
||||
This patent license shall apply to the combination of the Contribution and the
|
||||
Program if, at the time the Contribution is added by the Contributor, such
|
||||
addition of the Contribution causes such combination to be covered by the
|
||||
Licensed Patents. The patent license shall not apply to any other combinations
|
||||
which include the Contribution. No hardware per se is licensed hereunder.
|
||||
|
||||
c) Recipient understands that although each Contributor grants the licenses
|
||||
|
||||
to its Contributions set forth herein, no assurances are provided by any
|
||||
Contributor that the Program does not infringe the patent or other intellectual
|
||||
property rights of any other entity. Each Contributor disclaims any liability to
|
||||
Recipient for claims brought by any other entity based on infringement of
|
||||
intellectual property rights or otherwise. As a condition to exercising the
|
||||
rights and licenses granted hereunder, each Recipient hereby assumes sole
|
||||
responsibility to secure any other intellectual property rights needed, if any.
|
||||
For example, if a third party patent license is required to allow Recipient to
|
||||
distribute the Program, it is Recipient's responsibility to acquire that license
|
||||
before distributing the Program.
|
||||
|
||||
d) Each Contributor represents that to its knowledge it has sufficient
|
||||
|
||||
copyright rights in its Contribution, if any, to grant the copyright license set
|
||||
forth in this Agreement.
|
||||
|
||||
3. REQUIREMENTS
|
||||
|
||||
A Contributor may choose to distribute the Program in object code form under its
|
||||
own license agreement, provided that:
|
||||
|
||||
a) it complies with the terms and conditions of this Agreement; and
|
||||
|
||||
b) its license agreement:
|
||||
|
||||
i) effectively disclaims on behalf of all Contributors all warranties and
|
||||
|
||||
conditions, express and implied, including warranties or conditions of title and
|
||||
non-infringement, and implied warranties or conditions of merchantability and
|
||||
fitness for a particular purpose;
|
||||
|
||||
ii) effectively excludes on behalf of all Contributors all liability for
|
||||
|
||||
damages, including direct, indirect, special, incidental and consequential
|
||||
damages, such as lost profits;
|
||||
|
||||
iii) states that any provisions which differ from this Agreement are offered
|
||||
|
||||
by that Contributor alone and not by any other party; and
|
||||
|
||||
iv) states that source code for the Program is available from such
|
||||
|
||||
Contributor, and informs licensees how to obtain it in a reasonable manner on or
|
||||
through a medium customarily used for software exchange.
|
||||
|
||||
When the Program is made available in source code form:
|
||||
|
||||
a) it must be made available under this Agreement; and
|
||||
|
||||
b) a copy of this Agreement must be included with each copy of the Program.
|
||||
|
||||
Contributors may not remove or alter any copyright notices contained within the
|
||||
Program.
|
||||
|
||||
Each Contributor must identify itself as the originator of its Contribution, if
|
||||
any, in a manner that reasonably allows subsequent Recipients to identify the
|
||||
originator of the Contribution.
|
||||
|
||||
4. COMMERCIAL DISTRIBUTION
|
||||
|
||||
Commercial distributors of software may accept certain responsibilities with
|
||||
respect to end users, business partners and the like. While this license is
|
||||
intended to facilitate the commercial use of the Program, the Contributor who
|
||||
includes the Program in a commercial product offering should do so in a manner
|
||||
which does not create potential liability for other Contributors. Therefore, if
|
||||
a Contributor includes the Program in a commercial product offering, such
|
||||
Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
|
||||
every other Contributor ("Indemnified Contributor") against any losses, damages
|
||||
and costs (collectively "Losses") arising from claims, lawsuits and other legal
|
||||
actions brought by a third party against the Indemnified Contributor to the
|
||||
extent caused by the acts or omissions of such Commercial Contributor in
|
||||
connection with its distribution of the Program in a commercial product
|
||||
offering. The obligations in this section do not apply to any claims or Losses
|
||||
relating to any actual or alleged intellectual property infringement. In order
|
||||
to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
|
||||
Contributor in writing of such claim, and b) allow the Commercial Contributor to
|
||||
control, and cooperate with the Commercial Contributor in, the defense and any
|
||||
related settlement negotiations. The Indemnified Contributor may participate in
|
||||
any such claim at its own expense.
|
||||
|
||||
For example, a Contributor might include the Program in a commercial product
|
||||
offering, Product X. That Contributor is then a Commercial Contributor. If that
|
||||
Commercial Contributor then makes performance claims, or offers warranties
|
||||
related to Product X, those performance claims and warranties are such
|
||||
Commercial Contributor's responsibility alone. Under this section, the
|
||||
Commercial Contributor would have to defend claims against the other
|
||||
Contributors related to those performance claims and warranties, and if a court
|
||||
requires any other Contributor to pay any damages as a result, the Commercial
|
||||
Contributor must pay those damages.
|
||||
|
||||
5. NO WARRANTY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
|
||||
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
|
||||
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
|
||||
Recipient is solely responsible for determining the appropriateness of using and
|
||||
distributing the Program and assumes all risks associated with its exercise of
|
||||
rights under this Agreement, including but not limited to the risks and costs of
|
||||
program errors, compliance with applicable laws, damage to or loss of data,
|
||||
programs or equipment, and unavailability or interruption of operations.
|
||||
|
||||
6. DISCLAIMER OF LIABILITY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
|
||||
CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
|
||||
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
|
||||
GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. GENERAL
|
||||
|
||||
If any provision of this Agreement is invalid or unenforceable under applicable
|
||||
law, it shall not affect the validity or enforceability of the remainder of the
|
||||
terms of this Agreement, and without further action by the parties hereto, such
|
||||
provision shall be reformed to the minimum extent necessary to make such
|
||||
provision valid and enforceable.
|
||||
|
||||
If Recipient institutes patent litigation against a Contributor with respect to
|
||||
a patent applicable to software (including a cross-claim or counterclaim in a
|
||||
lawsuit), then any patent licenses granted by that Contributor to such Recipient
|
||||
under this Agreement shall terminate as of the date such litigation is filed. In
|
||||
addition, if Recipient institutes patent litigation against any entity
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
|
||||
itself (excluding combinations of the Program with other software or hardware)
|
||||
infringes such Recipient's patent(s), then such Recipient's rights granted under
|
||||
Section 2(b) shall terminate as of the date such litigation is filed.
|
||||
|
||||
All Recipient's rights under this Agreement shall terminate if it fails to
|
||||
comply with any of the material terms or conditions of this Agreement and does
|
||||
not cure such failure in a reasonable period of time after becoming aware of
|
||||
such noncompliance. If all Recipient's rights under this Agreement terminate,
|
||||
Recipient agrees to cease use and distribution of the Program as soon as
|
||||
reasonably practicable. However, Recipient's obligations under this Agreement
|
||||
and any licenses granted by Recipient relating to the Program shall continue and
|
||||
survive.
|
||||
|
||||
Everyone is permitted to copy and distribute copies of this Agreement, but in
|
||||
order to avoid inconsistency the Agreement is copyrighted and may only be
|
||||
modified in the following manner. The Agreement Steward reserves the right to
|
||||
publish new versions (including revisions) of this Agreement from time to time.
|
||||
No one other than the Agreement Steward has the right to modify this Agreement.
|
||||
IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
|
||||
as the Agreement Steward to a suitable separate entity. Each new version of the
|
||||
Agreement will be given a distinguishing version number. The Program (including
|
||||
Contributions) may always be distributed subject to the version of the Agreement
|
||||
under which it was received. In addition, after a new version of the Agreement
|
||||
is published, Contributor may elect to distribute the Program (including its
|
||||
Contributions) under the new version. Except as expressly stated in Sections
|
||||
2(a) and 2(b) above, Recipient receives no rights or licenses to the
|
||||
intellectual property of any Contributor under this Agreement, whether
|
||||
expressly, by implication, estoppel or otherwise. All rights in the Program not
|
||||
expressly granted under this Agreement are reserved.
|
||||
|
||||
These Terms shall be governed by, and construed in accordance with, English law.
|
||||
The parties irrevocably agree that the courts of England shall
|
||||
(Subject to the paragraph below) have exclusive jurisdiction to settle any dispute
|
||||
which may arise out of, under, or in connection with these Terms or the legal
|
||||
relationship established by them, and for these purposes irrevocably submit all
|
||||
disputes to the jurisdiction of the English Courts.
|
||||
|
||||
For the exclusive benefit of Free Mode Designs LTD, Free Mode Designs LTD shall
|
||||
also retain the right to bring proceedings as to the substance of the matter in
|
||||
the courts of your county of your residence or, where these Terms are entered
|
||||
into in the course of your trade or profession, the county of your principal
|
||||
place of business.
|
||||
@@ -0,0 +1,22 @@
|
||||
AddEventHandler('onResourceStart', function(resourceName)
|
||||
if (GetCurrentResourceName() ~= config.resourceName ) then
|
||||
print("\n\n\n^8TANKER_WATER SCRIPT ERROR ^3\n\nPLEASE ENSURE THE NAME OF THE RESOURCE MATCHES THE NAME IN THE CONFIG.LUA^7\n\n\n")
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("createWaterParticles")
|
||||
AddEventHandler("createWaterParticles", function(vehEntity)
|
||||
TriggerClientEvent("waterParticles", -1, vehEntity)
|
||||
end)
|
||||
|
||||
RegisterNetEvent("setWaterTexture")
|
||||
AddEventHandler("setWaterTexture", function()
|
||||
TriggerClientEvent("updateTexture", -1, true)
|
||||
end)
|
||||
|
||||
|
||||
RegisterNetEvent("resetWaterTexture")
|
||||
AddEventHandler("resetWaterTexture", function()
|
||||
TriggerClientEvent("updateTexture", -1, false)
|
||||
end)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||
@@ -191,6 +191,7 @@ ensure EGRP-Notifications
|
||||
ensure firehose
|
||||
ensure firehook
|
||||
ensure firehosemodels
|
||||
ensure tanker_water-main
|
||||
ensure dpemotes-master
|
||||
ensure RageUI
|
||||
ensure lvc
|
||||
|
||||
Reference in New Issue
Block a user