ed
BIN
resources/[defaultmaps]/rtx_themepark_dlc/.fxap
Normal file
|
@ -1,83 +1,78 @@
|
|||
Thank you for purchasing rtx_themepark we're grateful for your support. If you'd ever have a question and / or need our help, please reach out to us by sending an email or go ahead and create a ticket on our discord: https://discord.gg/P6KdaDpgAk
|
||||
|
||||
|
||||
Install instructions (Standalone):
|
||||
1. Put rtx_themepark and rtx_themepark_objects folder to your resources
|
||||
2. Open config.lua file
|
||||
3. Configure your config.lua to your preferences
|
||||
4. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
|
||||
5. Open fxmanifest.lua and edit it same like on this screenshot (https://i.imgur.com/LWaYxz7.png) remove -- from line 11, or replace line 11 with '@oxmysql/lib/MySQL.lua',
|
||||
6. Put rtx_themepark and rtx_themepark_objects to the server.cfg
|
||||
7. If you want custom ped routes in the park, also put rtx_scenarios to your resources and also put rtx_scenarios to the server.cfg
|
||||
8. If you have any maps around Del Perro Pier, please check our [Compatibility with other maps] folder to see if any files need to be replaced.
|
||||
|
||||
Install instructions (QBCore):
|
||||
1. Put rtx_themepark and rtx_themepark_objects folder to your resources
|
||||
2. Open config.lua file
|
||||
3. Replace Config.Framework = "standalone" with Config.Framework = "qbcore"
|
||||
4. Configure your config.lua to your preferences
|
||||
5. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
|
||||
6. Open fxmanifest.lua and edit it same like on this screenshot (https://i.imgur.com/LWaYxz7.png) remove -- from line 11, or replace line 11 with '@oxmysql/lib/MySQL.lua',
|
||||
7. Put rtx_themepark and rtx_themepark_objects to the server.cfg
|
||||
8. If you want custom ped routes in the park, also put rtx_scenarios to your resources and also put rtx_scenarios to the server.cfg
|
||||
9. If you have any maps around Del Perro Pier, please check our [Compatibility with other maps] folder to see if any files need to be replaced.
|
||||
|
||||
Install instructions (ESX):
|
||||
1. Put rtx_themepark and rtx_themepark_objects folder to your resources.
|
||||
2. Open config.lua file
|
||||
3. Replace Config.Framework = "standalone" with Config.Framework = "esx"
|
||||
4. Configure your config.lua to your preferences
|
||||
5. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
|
||||
6. Open fxmanifest.lua and edit it same like on this screenshot (https://i.imgur.com/yoULcX4.png) remove -- from line 10, or replace line 10 with '@mysql-async/lib/MySQL.lua',
|
||||
7. Put rtx_themepark and rtx_themepark_objects to the server.cfg
|
||||
8. If you want custom ped routes in the park, also put rtx_scenarios to your resources and also put rtx_scenarios to the server.cfg
|
||||
9. If you have any maps around Del Perro Pier, please check our [Compatibility with other maps] folder to see if any files need to be replaced.
|
||||
|
||||
Common issues:
|
||||
|
||||
-----------------------------
|
||||
2 Ferris wheels in Theme Park:
|
||||
|
||||
If you see 2 Ferris Wheel, it is because you have some IPL loader on the server that loads the old wheel, you need to disable this IPL, here is an example how to disable the old Ferris Wheel in bob74_ipl
|
||||
|
||||
In bob74_ipl/gtav/base.lua at bottom remove RequestIpl("ferris_finale_anim")
|
||||
|
||||
From:
|
||||
https://i.imgur.com/G8EGoYd.png
|
||||
|
||||
To:
|
||||
https://i.imgur.com/yM7uJbW.png
|
||||
|
||||
-----------------------------
|
||||
Need a key to start bumper cars:
|
||||
|
||||
You need to add to your script with vehicle keys, the whitelist for our vehicle, the vehicle name is: rtxbumper
|
||||
|
||||
-----------------------------
|
||||
Object names for whitelist to anticheat:
|
||||
|
||||
prop_cs_hotdog_02
|
||||
prop_cs_burger_01
|
||||
sempre_delperropier_popcorn_box
|
||||
sempre_delperropier_candycotton_prop
|
||||
sempre_delperropier_balloon_b
|
||||
sempre_delperropier_balloon_g
|
||||
sempre_delperropier_balloon_p
|
||||
sempre_delperropier_balloon_r
|
||||
sempre_delperropier_bus_blue_screen
|
||||
sempre_delperropier_bus_red_screen
|
||||
sempre_delperropier_bus_target
|
||||
|
||||
You can to stream just one scenarios resource on the server which means if you have any other scenarios resource then just take pier.ymt from our scenarios resource and replace it in scenarios resource that you currently have.
|
||||
-----------------------------
|
||||
1) if you want to edit the logo of top of the Detonator, just replace our big logo in sempre_delperropier.ytd
|
||||
-----------------------------
|
||||
Open signs floating in the air - this problem is because NVE and sadly we cannot do anything about it. Open signs are obviously deleted but NVE somehow adds them on its own.
|
||||
|
||||
|
||||
License agreement / Terms of Service
|
||||
1. Any purchase is non-refundable.
|
||||
2. Each product is to be used on a singular server, with the exception of a test server.
|
||||
3. Any form of redistribution of our content is considered copyright infringement.
|
||||
4. If any of these rules are broken, legal actions can be taken.
|
||||
Thank you for purchasing rtx_themepark_dlc we're grateful for your support. If you'd ever have a question and / or need our help, please reach out to us by sending an email or go ahead and create a ticket on our discord: https://discord.gg/P6KdaDpgAk
|
||||
|
||||
|
||||
Install instructions (Standalone):
|
||||
!!If you have base Theme Park installed, remove rtx_themepark and rtx_themepark_objects
|
||||
|
||||
1. Put rtx_themepark_dlc and rtx_themepark_dlc_objects folder to your resources
|
||||
2. Open config.lua file
|
||||
3. Configure your config.lua to your preferences
|
||||
4. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
|
||||
5. Open fxmanifest.lua and edit it same like on this screenshot (https://i.imgur.com/LWaYxz7.png) remove -- from line 11, or replace line 11 with '@oxmysql/lib/MySQL.lua',
|
||||
6. Put rtx_themepark_dlc and rtx_themepark_dlc_objects to the server.cfg
|
||||
|
||||
Install instructions (QBCore):
|
||||
!!If you have base Theme Park installed, remove rtx_themepark and rtx_themepark_objects
|
||||
|
||||
1. Put rtx_themepark_dlc and rtx_themepark_dlc_objects folder to your resources
|
||||
2. Open config.lua file
|
||||
3. Replace Config.Framework = "standalone" with Config.Framework = "qbcore"
|
||||
4. Configure your config.lua to your preferences
|
||||
5. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
|
||||
6. Open fxmanifest.lua and edit it same like on this screenshot (https://i.imgur.com/LWaYxz7.png) remove -- from line 11, or replace line 11 with '@oxmysql/lib/MySQL.lua',
|
||||
7. Put rtx_themepark_dlc and rtx_themepark_dlc_objects to the server.cfg
|
||||
|
||||
Install instructions (ESX):
|
||||
!!If you have base Theme Park installed, remove rtx_themepark and rtx_themepark_objects
|
||||
|
||||
1. Put rtx_themepark_dlc and rtx_themepark_dlc_objects folder to your resources.
|
||||
2. Open config.lua file
|
||||
3. Replace Config.Framework = "standalone" with Config.Framework = "esx"
|
||||
4. Configure your config.lua to your preferences
|
||||
5. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
|
||||
6. Open fxmanifest.lua and edit it same like on this screenshot (https://i.imgur.com/yoULcX4.png) remove -- from line 10, or replace line 10 with '@mysql-async/lib/MySQL.lua',
|
||||
7. Put rtx_themepark_dlc and rtx_themepark_dlc_objects to the server.cfg
|
||||
|
||||
Common issues:
|
||||
|
||||
-----------------------------
|
||||
2 Ferris wheels in Theme Park:
|
||||
|
||||
If you see 2 Ferris Wheel, it is because you have some IPL loader on the server that loads the old wheel, you need to disable this IPL, here is an example how to disable the old Ferris Wheel in bob74_ipl
|
||||
|
||||
In bob74_ipl/gtav/base.lua at bottom remove RequestIpl("ferris_finale_anim")
|
||||
|
||||
From:
|
||||
https://i.imgur.com/G8EGoYd.png
|
||||
|
||||
To:
|
||||
https://i.imgur.com/yM7uJbW.png
|
||||
|
||||
-----------------------------
|
||||
Need a key to start bumper cars:
|
||||
|
||||
You need to add to your script with vehicle keys, the whitelist for our vehicle, the vehicle name is: rtxbumper
|
||||
|
||||
-----------------------------
|
||||
Object names for whitelist to anticheat:
|
||||
|
||||
prop_cs_hotdog_02
|
||||
prop_cs_burger_01
|
||||
prop_plastic_cup_02
|
||||
sempre_delperropier_popcorn_box
|
||||
sempre_delperropier_candycotton_prop
|
||||
sempre_delperropier_balloon_b
|
||||
sempre_delperropier_balloon_g
|
||||
sempre_delperropier_balloon_p
|
||||
sempre_delperropier_balloon_r
|
||||
sempre_delperropier_bus_blue_screen
|
||||
sempre_delperropier_bus_red_screen
|
||||
sempre_delperropier_bus_target
|
||||
|
||||
|
||||
License agreement / Terms of Service
|
||||
1. Any purchase is non-refundable.
|
||||
2. Each product is to be used on a singular server, with the exception of a test server.
|
||||
3. Any form of redistribution of our content is considered copyright infringement.
|
||||
4. If any of these rules are broken, legal actions can be taken.
|
||||
© 2025 RTX Development, all rights reserved.
|
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr1.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr2.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr3.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr4.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr5.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr6.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr7.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr8.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/attr9.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr10.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr11.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr12.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr13.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr14.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr15.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr16.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr17.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/dlc/attr18.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/main.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/paths1.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/paths2.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/paths3.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/client/sound.lua
Normal file
|
@ -1,69 +1,90 @@
|
|||
fx_version 'cerulean'
|
||||
|
||||
game 'gta5'
|
||||
|
||||
description 'RTX THEME PARK'
|
||||
|
||||
version '60.0'
|
||||
|
||||
server_scripts {
|
||||
--'@mysql-async/lib/MySQL.lua', -- enable this and remove oxmysql line (line 11) if you use mysql-async (only enable this for qbcore/esx framework)
|
||||
--'@oxmysql/lib/MySQL.lua', -- enable this and remove mysql async line (line 10) if you use oxmysql (only enable this for qbcore/esx framework)
|
||||
'config.lua',
|
||||
'language/main.lua',
|
||||
'server/main.lua',
|
||||
'server/attr1.lua',
|
||||
'server/attr2.lua',
|
||||
'server/attr3.lua',
|
||||
'server/attr4.lua',
|
||||
'server/attr5.lua',
|
||||
'server/attr6.lua',
|
||||
'server/attr7.lua',
|
||||
'server/attr8.lua',
|
||||
'server/attr9.lua',
|
||||
'server/other.lua'
|
||||
}
|
||||
|
||||
client_scripts {
|
||||
'config.lua',
|
||||
'language/main.lua',
|
||||
'client/main.lua',
|
||||
'client/sound.lua',
|
||||
'client/paths.lua',
|
||||
'client/attr1.lua',
|
||||
'client/attr2.lua',
|
||||
'client/attr3.lua',
|
||||
'client/attr4.lua',
|
||||
'client/attr5.lua',
|
||||
'client/attr6.lua',
|
||||
'client/attr7.lua',
|
||||
'client/attr8.lua',
|
||||
'client/attr9.lua'
|
||||
fx_version 'cerulean'
|
||||
|
||||
game 'gta5'
|
||||
|
||||
description 'RTX THEME PARK DLC'
|
||||
|
||||
version '50.0'
|
||||
|
||||
server_scripts {
|
||||
--'@mysql-async/lib/MySQL.lua', -- enable this and remove oxmysql line (line 11) if you use mysql-async (only enable this for qbcore/esx framework)
|
||||
--'@oxmysql/lib/MySQL.lua', -- enable this and remove mysql async line (line 10) if you use oxmysql (only enable this for qbcore/esx framework)
|
||||
'config.lua',
|
||||
'language/main.lua',
|
||||
'server/main.lua',
|
||||
'server/attr1.lua',
|
||||
'server/attr2.lua',
|
||||
'server/attr3.lua',
|
||||
'server/attr4.lua',
|
||||
'server/attr5.lua',
|
||||
'server/attr6.lua',
|
||||
'server/attr7.lua',
|
||||
'server/attr8.lua',
|
||||
'server/attr9.lua',
|
||||
'server/dlc/attr10.lua',
|
||||
'server/dlc/attr11.lua',
|
||||
'server/dlc/attr12.lua',
|
||||
'server/dlc/attr13.lua',
|
||||
'server/dlc/attr14.lua',
|
||||
'server/dlc/attr15.lua',
|
||||
'server/dlc/attr16.lua',
|
||||
'server/dlc/attr17.lua',
|
||||
'server/dlc/attr18.lua',
|
||||
'server/other.lua'
|
||||
}
|
||||
|
||||
files {
|
||||
'html/ui.html',
|
||||
'html/styles.css',
|
||||
'html/scripts.js',
|
||||
'html/sound.js',
|
||||
'html/debounce.min.js',
|
||||
'html/jquery.connections.js',
|
||||
'html/BebasNeueBold.ttf',
|
||||
'html/NakaraRegular.ttf',
|
||||
'html/img/*.png'
|
||||
}
|
||||
|
||||
exports {
|
||||
'IsPlayerOnRide', -- exports["rtx_themepark"]:IsPlayerOnRide() -- it will return if player is on some theme park ride
|
||||
}
|
||||
|
||||
ui_page 'html/ui.html'
|
||||
|
||||
lua54 'yes'
|
||||
|
||||
escrow_ignore {
|
||||
'config.lua',
|
||||
'language/main.lua',
|
||||
'server/other.lua'
|
||||
client_scripts {
|
||||
'config.lua',
|
||||
'language/main.lua',
|
||||
'client/main.lua',
|
||||
'client/sound.lua',
|
||||
'client/paths1.lua',
|
||||
'client/paths2.lua',
|
||||
'client/paths3.lua',
|
||||
'client/attr1.lua',
|
||||
'client/attr2.lua',
|
||||
'client/attr3.lua',
|
||||
'client/attr4.lua',
|
||||
'client/attr5.lua',
|
||||
'client/attr6.lua',
|
||||
'client/attr7.lua',
|
||||
'client/attr8.lua',
|
||||
'client/attr9.lua',
|
||||
'client/dlc/attr10.lua',
|
||||
'client/dlc/attr11.lua',
|
||||
'client/dlc/attr12.lua',
|
||||
'client/dlc/attr13.lua',
|
||||
'client/dlc/attr14.lua',
|
||||
'client/dlc/attr15.lua',
|
||||
'client/dlc/attr16.lua',
|
||||
'client/dlc/attr17.lua',
|
||||
'client/dlc/attr18.lua',
|
||||
}
|
||||
|
||||
files {
|
||||
'html/ui.html',
|
||||
'html/styles.css',
|
||||
'html/scripts.js',
|
||||
'html/sound.js',
|
||||
'html/debounce.min.js',
|
||||
'html/jquery.connections.js',
|
||||
'html/BebasNeueBold.ttf',
|
||||
'html/NakaraRegular.ttf',
|
||||
'html/img/*.png',
|
||||
'html/sounds/*.mp3'
|
||||
}
|
||||
|
||||
exports {
|
||||
'IsPlayerOnRide', -- exports["rtx_themepark_dlc"]:IsPlayerOnRide() -- it will return if player is on some theme park ride
|
||||
}
|
||||
|
||||
ui_page 'html/ui.html'
|
||||
|
||||
lua54 'yes'
|
||||
|
||||
escrow_ignore {
|
||||
'config.lua',
|
||||
'language/main.lua',
|
||||
'server/other.lua'
|
||||
}
|
||||
dependency '/assetpacks'
|
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 757 B After Width: | Height: | Size: 757 B |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
@ -1,6 +1,16 @@
|
|||
var volumeslider = document.getElementById("volumesliderdata");
|
||||
|
||||
var themeparkresourcename = "rtx_themepark";
|
||||
var themeparkresourcename = "rtx_themepark_dlc";
|
||||
|
||||
var soundhandlerhaunted = new Howl({
|
||||
src: "sounds/sound1.mp3",
|
||||
volume: 0.2,
|
||||
});
|
||||
|
||||
var soundhandler2haunted = new Howl({
|
||||
src: "sounds/sound1.mp3",
|
||||
volume: 0.2,
|
||||
});
|
||||
|
||||
function closeMain() {
|
||||
$("body").css("display", "none");
|
||||
|
@ -40,6 +50,8 @@ $(".closemusicurl").click(function(){
|
|||
$("#attractionurlshow").hide();
|
||||
});
|
||||
|
||||
|
||||
|
||||
window.addEventListener('message', function (event) {
|
||||
|
||||
var item = event.data;
|
||||
|
@ -231,56 +243,7 @@ window.addEventListener('message', function (event) {
|
|||
$("#attractionshow").hide();
|
||||
$("#parkattractionshow").hide();
|
||||
$("#attractionurlshow").hide();
|
||||
$("#parkmanagmentshow").fadeIn("slow");
|
||||
$('#parkmanagmentattraction1').connections({
|
||||
to: '#parkattractionconnector1',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction2').connections({
|
||||
to: '#parkattractionconnector2',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction3').connections({
|
||||
to: '#parkattractionconnector3',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction4').connections({
|
||||
to: '#parkattractionconnector4',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction5').connections({
|
||||
to: '#parkattractionconnector5',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction6').connections({
|
||||
to: '#parkattractionconnector6',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction7').connections({
|
||||
to: '#parkattractionconnector7',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction8').connections({
|
||||
to: '#parkattractionconnector8',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction9').connections({
|
||||
to: '#parkattractionconnector9',
|
||||
'class': 'related'
|
||||
});
|
||||
|
||||
$('#parkmanagmentattraction10').connections({
|
||||
to: '#parkattractionconnector10',
|
||||
'class': 'related'
|
||||
});
|
||||
$("#parkmanagmentshow").fadeIn("slow");
|
||||
}
|
||||
|
||||
if (item.message == "updateparkbalance") {
|
||||
|
@ -339,6 +302,16 @@ window.addEventListener('message', function (event) {
|
|||
$("#attractionanimtextshow").show();
|
||||
} else {
|
||||
$("#attractionanimtextshow").hide();
|
||||
}
|
||||
if (item.attractionbumperchange == true) {
|
||||
$("#attractioncamtextshow").show();
|
||||
} else {
|
||||
$("#attractioncamtextshow").hide();
|
||||
}
|
||||
if (item.rollercoastercamchange == true) {
|
||||
$("#attractioncamtextshow2").show();
|
||||
} else {
|
||||
$("#attractioncamtextshow2").hide();
|
||||
}
|
||||
$("#attractionshow").show();
|
||||
}
|
||||
|
@ -414,16 +387,6 @@ window.addEventListener('message', function (event) {
|
|||
if (item.message == "hidemanagmentmenu") {
|
||||
$("#parkmanagmentmainshow").hide();
|
||||
$("#parkmanagmentshow").hide();
|
||||
$('#parkmanagmentattraction1').connections('remove');
|
||||
$('#parkmanagmentattraction2').connections('remove');
|
||||
$('#parkmanagmentattraction3').connections('remove');
|
||||
$('#parkmanagmentattraction4').connections('remove');
|
||||
$('#parkmanagmentattraction5').connections('remove');
|
||||
$('#parkmanagmentattraction6').connections('remove');
|
||||
$('#parkmanagmentattraction7').connections('remove');
|
||||
$('#parkmanagmentattraction8').connections('remove');
|
||||
$('#parkmanagmentattraction9').connections('remove');
|
||||
$('#parkmanagmentattraction10').connections('remove');
|
||||
}
|
||||
|
||||
if (item.message == "hideshooter") {
|
||||
|
@ -448,6 +411,26 @@ window.addEventListener('message', function (event) {
|
|||
let root = document.documentElement;
|
||||
root.style.setProperty('--color', item.interfacecolordata);
|
||||
}
|
||||
|
||||
if (item.message == "playsoundhaunted") {
|
||||
soundhandlerhaunted.stop()
|
||||
soundhandlerhaunted.volume(item.soundvolume);
|
||||
soundhandlerhaunted._src = item.soundsrc;
|
||||
soundhandlerhaunted.load();
|
||||
soundhandlerhaunted.play();
|
||||
}
|
||||
|
||||
if (item.message == "playsound2haunted") {
|
||||
soundhandler2haunted.stop()
|
||||
soundhandler2haunted.volume(item.soundvolume);
|
||||
soundhandler2haunted._src = item.soundsrc;
|
||||
soundhandler2haunted.load();
|
||||
soundhandler2haunted.play();
|
||||
}
|
||||
|
||||
if (item.message == "stopsoundhaunted") {
|
||||
soundhandlerhaunted.stop()
|
||||
}
|
||||
|
||||
if (item.message == "updateattractionmusiclabel") {
|
||||
document.getElementsByClassName("parkattractioncontrolmusictextdata")[0].innerHTML = item.musiclabel;
|
||||
|
@ -493,7 +476,7 @@ $(".parkmanagmentsettingsbutton").click(function () {
|
|||
$.post('https://'+themeparkresourcename+'/parkmanagmentsattractions', JSON.stringify({}));
|
||||
});
|
||||
|
||||
for (let int1data = 1; int1data < 11; int1data++) {
|
||||
for (let int1data = 1; int1data < 20; int1data++) {
|
||||
$("#parkattractionopendata" + int1data + "").click(function () {
|
||||
if (document.getElementById("parkattractionopendata" + int1data + "").checked == false){
|
||||
document.getElementById("parkattractionopendata" + int1data + "").checked = false;
|
|
@ -1,236 +1,236 @@
|
|||
var themeparkresourcename = "rtx_themepark";
|
||||
var soundhandler = {}
|
||||
var soundcheckerhandler = {}
|
||||
|
||||
window.addEventListener('message', function (event) {
|
||||
|
||||
var item = event.data;
|
||||
|
||||
|
||||
if (item.message == "playsoundattraction") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
$("body").append("<div id='"+ item.soundid +"'></div>");
|
||||
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
|
||||
|
||||
startSeconds:Number,
|
||||
videoId: item.soundsrc,
|
||||
origin: window.location.href,
|
||||
enablejsapi: 1,
|
||||
width: "0",
|
||||
height: "0",
|
||||
playerVars: {
|
||||
playsinline: 1,
|
||||
controls: 0,
|
||||
},
|
||||
events: {
|
||||
'onReady': function(event){
|
||||
event.target.unMute();
|
||||
event.target.setVolume(item.soundvolume);
|
||||
event.target.playVideo();
|
||||
},
|
||||
'onError': function(event){
|
||||
},
|
||||
'onStateChange': function(event){
|
||||
if (event.data == YT.PlayerState.PLAYING) {
|
||||
|
||||
}
|
||||
if (event.data == YT.PlayerState.ENDED) {
|
||||
}
|
||||
if (event.data == YT.PlayerState.ENDED) {
|
||||
soundhandler[item.soundid].seekTo(0);
|
||||
soundhandler[item.soundid].playVideo();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (typeof soundhandler[item.soundid].setVolume === 'function') {
|
||||
soundhandler[item.soundid].setVolume(item.soundvolume);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.message == "playsound") {
|
||||
if (item.soundcategory == "youtube") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
$("body").append("<div id='"+ item.soundid +"'></div>");
|
||||
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
|
||||
|
||||
startSeconds:Number,
|
||||
videoId: item.soundsrc,
|
||||
origin: window.location.href,
|
||||
enablejsapi: 1,
|
||||
width: "0",
|
||||
height: "0",
|
||||
playerVars: {
|
||||
playsinline: 1,
|
||||
controls: 0,
|
||||
},
|
||||
events: {
|
||||
'onReady': function(event){
|
||||
event.target.unMute();
|
||||
event.target.setVolume(item.soundvolume);
|
||||
event.target.playVideo();
|
||||
},
|
||||
'onError': function(event){
|
||||
$.post('https://'+themeparkresourcename+'/sounderror', JSON.stringify({
|
||||
soundid: item.soundid
|
||||
}));
|
||||
},
|
||||
'onStateChange': function(event){
|
||||
if (event.data == YT.PlayerState.PLAYING) {
|
||||
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
||||
soundid: item.soundid,
|
||||
soundname: soundhandler[item.soundid].getVideoData().title,
|
||||
soundtime: soundhandler[item.soundid].getCurrentTime(),
|
||||
soundtimemax: soundhandler[item.soundid].getDuration()
|
||||
}));
|
||||
}
|
||||
if (event.data == YT.PlayerState.ENDED) {
|
||||
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
|
||||
soundid: item.soundid
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (typeof soundhandler[item.soundid].setVolume === 'function') {
|
||||
soundhandler[item.soundid].setVolume(item.soundvolume);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
soundhandler[item.soundid] = new Howl({
|
||||
src: item.soundsrc,
|
||||
volume: item.soundvolume,
|
||||
loop: false,
|
||||
html5: true,
|
||||
onplay: function(){
|
||||
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
||||
soundid: item.soundid,
|
||||
soundname: "MP3",
|
||||
soundtime: soundhandler[item.soundid].seek(),
|
||||
soundtimemax: soundhandler[item.soundid].duration()
|
||||
}));
|
||||
},
|
||||
onend: function() {
|
||||
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
|
||||
soundid: item.soundid
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
||||
soundhandler[item.soundid].play();
|
||||
} else {
|
||||
if (typeof soundhandler[item.soundid].volume === 'function') {
|
||||
soundhandler[item.soundid].volume(item.soundvolume);
|
||||
}
|
||||
if (soundhandler[item.soundid].playing() == false) {
|
||||
soundhandler[item.soundid].play();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.message == "checkmusicurl") {
|
||||
$("body").append("<div id='videourlcheckyoutube'></div>");
|
||||
soundcheckerhandler["videourlcheckyoutube"] = new YT.Player("videourlcheckyoutube", {
|
||||
startSeconds:Number,
|
||||
videoId: item.soundsrc,
|
||||
origin: window.location.href,
|
||||
enablejsapi: 1,
|
||||
width: "0",
|
||||
height: "0",
|
||||
playerVars: {
|
||||
playsinline: 1,
|
||||
controls: 0,
|
||||
},
|
||||
events: {
|
||||
'onReady': function(event){
|
||||
event.target.setVolume(0);
|
||||
event.target.playVideo();
|
||||
},
|
||||
'onError': function(event){
|
||||
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
|
||||
soundallowed: false,
|
||||
}));
|
||||
soundcheckerhandler["videourlcheckyoutube"].stopVideo();
|
||||
soundcheckerhandler["videourlcheckyoutube"].destroy();
|
||||
soundcheckerhandler["videourlcheckyoutube"] = null;
|
||||
},
|
||||
'onStateChange': function(event){
|
||||
if (event.data == YT.PlayerState.PLAYING) {
|
||||
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
|
||||
soundallowed: true,
|
||||
}));
|
||||
soundcheckerhandler["videourlcheckyoutube"].stopVideo();
|
||||
soundcheckerhandler["videourlcheckyoutube"].destroy();
|
||||
soundcheckerhandler["videourlcheckyoutube"] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (item.message == "updatesounddata") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
} else {
|
||||
if (item.soundcategorytype == "youtube") {
|
||||
if (soundhandler[item.soundid].getPlayerState() == 1) {
|
||||
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
||||
soundid: item.soundid,
|
||||
soundname: soundhandler[item.soundid].getVideoData().title,
|
||||
soundtime: soundhandler[item.soundid].getCurrentTime(),
|
||||
soundtimemax: soundhandler[item.soundid].getDuration()
|
||||
}));
|
||||
}
|
||||
} else {
|
||||
if (soundhandler[item.soundid].playing() == true) {
|
||||
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
||||
soundid: item.soundid,
|
||||
soundname: "MP3",
|
||||
soundtime: soundhandler[item.soundid].seek(),
|
||||
soundtimemax: soundhandler[item.soundid].duration()
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item.message == "setsoundtime") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
} else {
|
||||
if (item.soundcategorytype == "youtube") {
|
||||
soundhandler[item.soundid].seekTo(item.timedata);
|
||||
} else {
|
||||
soundhandler[item.soundid].seek(item.timedata);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item.message == "stopsound") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
} else {
|
||||
if (item.soundcategorytype == "youtube") {
|
||||
soundhandler[item.soundid].stopVideo();
|
||||
soundhandler[item.soundid].destroy();
|
||||
soundhandler[item.soundid] = null;
|
||||
$("#'"+ item.soundid +"'").remove();
|
||||
} else {
|
||||
soundhandler[item.soundid].stop()
|
||||
soundhandler[item.soundid] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.message == "stopsoundattraction") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
} else {
|
||||
soundhandler[item.soundid].stopVideo();
|
||||
soundhandler[item.soundid].destroy();
|
||||
soundhandler[item.soundid] = null;
|
||||
}
|
||||
}
|
||||
if (item.message == "updateinterfacedata") {
|
||||
themeparkresourcename = item.themeparkresourcenamedata;
|
||||
let root = document.documentElement;
|
||||
root.style.setProperty('--color', item.interfacecolordata);
|
||||
}
|
||||
var themeparkresourcename = "rtx_themepark";
|
||||
var soundhandler = {}
|
||||
var soundcheckerhandler = {}
|
||||
|
||||
window.addEventListener('message', function (event) {
|
||||
|
||||
var item = event.data;
|
||||
|
||||
|
||||
if (item.message == "playsoundattraction") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
$("body").append("<div id='"+ item.soundid +"'></div>");
|
||||
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
|
||||
|
||||
startSeconds:Number,
|
||||
videoId: item.soundsrc,
|
||||
origin: window.location.href,
|
||||
enablejsapi: 1,
|
||||
width: "0",
|
||||
height: "0",
|
||||
playerVars: {
|
||||
playsinline: 1,
|
||||
controls: 0,
|
||||
},
|
||||
events: {
|
||||
'onReady': function(event){
|
||||
event.target.unMute();
|
||||
event.target.setVolume(item.soundvolume);
|
||||
event.target.playVideo();
|
||||
},
|
||||
'onError': function(event){
|
||||
},
|
||||
'onStateChange': function(event){
|
||||
if (event.data == YT.PlayerState.PLAYING) {
|
||||
|
||||
}
|
||||
if (event.data == YT.PlayerState.ENDED) {
|
||||
}
|
||||
if (event.data == YT.PlayerState.ENDED) {
|
||||
soundhandler[item.soundid].seekTo(0);
|
||||
soundhandler[item.soundid].playVideo();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (typeof soundhandler[item.soundid].setVolume === 'function') {
|
||||
soundhandler[item.soundid].setVolume(item.soundvolume);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.message == "playsound") {
|
||||
if (item.soundcategory == "youtube") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
$("body").append("<div id='"+ item.soundid +"'></div>");
|
||||
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
|
||||
|
||||
startSeconds:Number,
|
||||
videoId: item.soundsrc,
|
||||
origin: window.location.href,
|
||||
enablejsapi: 1,
|
||||
width: "0",
|
||||
height: "0",
|
||||
playerVars: {
|
||||
playsinline: 1,
|
||||
controls: 0,
|
||||
},
|
||||
events: {
|
||||
'onReady': function(event){
|
||||
event.target.unMute();
|
||||
event.target.setVolume(item.soundvolume);
|
||||
event.target.playVideo();
|
||||
},
|
||||
'onError': function(event){
|
||||
$.post('https://'+themeparkresourcename+'/sounderror', JSON.stringify({
|
||||
soundid: item.soundid
|
||||
}));
|
||||
},
|
||||
'onStateChange': function(event){
|
||||
if (event.data == YT.PlayerState.PLAYING) {
|
||||
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
||||
soundid: item.soundid,
|
||||
soundname: soundhandler[item.soundid].getVideoData().title,
|
||||
soundtime: soundhandler[item.soundid].getCurrentTime(),
|
||||
soundtimemax: soundhandler[item.soundid].getDuration()
|
||||
}));
|
||||
}
|
||||
if (event.data == YT.PlayerState.ENDED) {
|
||||
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
|
||||
soundid: item.soundid
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (typeof soundhandler[item.soundid].setVolume === 'function') {
|
||||
soundhandler[item.soundid].setVolume(item.soundvolume);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
soundhandler[item.soundid] = new Howl({
|
||||
src: item.soundsrc,
|
||||
volume: item.soundvolume,
|
||||
loop: false,
|
||||
html5: true,
|
||||
onplay: function(){
|
||||
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
||||
soundid: item.soundid,
|
||||
soundname: "MP3",
|
||||
soundtime: soundhandler[item.soundid].seek(),
|
||||
soundtimemax: soundhandler[item.soundid].duration()
|
||||
}));
|
||||
},
|
||||
onend: function() {
|
||||
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
|
||||
soundid: item.soundid
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
||||
soundhandler[item.soundid].play();
|
||||
} else {
|
||||
if (typeof soundhandler[item.soundid].volume === 'function') {
|
||||
soundhandler[item.soundid].volume(item.soundvolume);
|
||||
}
|
||||
if (soundhandler[item.soundid].playing() == false) {
|
||||
soundhandler[item.soundid].play();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.message == "checkmusicurl") {
|
||||
$("body").append("<div id='videourlcheckyoutube'></div>");
|
||||
soundcheckerhandler["videourlcheckyoutube"] = new YT.Player("videourlcheckyoutube", {
|
||||
startSeconds:Number,
|
||||
videoId: item.soundsrc,
|
||||
origin: window.location.href,
|
||||
enablejsapi: 1,
|
||||
width: "0",
|
||||
height: "0",
|
||||
playerVars: {
|
||||
playsinline: 1,
|
||||
controls: 0,
|
||||
},
|
||||
events: {
|
||||
'onReady': function(event){
|
||||
event.target.setVolume(0);
|
||||
event.target.playVideo();
|
||||
},
|
||||
'onError': function(event){
|
||||
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
|
||||
soundallowed: false,
|
||||
}));
|
||||
soundcheckerhandler["videourlcheckyoutube"].stopVideo();
|
||||
soundcheckerhandler["videourlcheckyoutube"].destroy();
|
||||
soundcheckerhandler["videourlcheckyoutube"] = null;
|
||||
},
|
||||
'onStateChange': function(event){
|
||||
if (event.data == YT.PlayerState.PLAYING) {
|
||||
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
|
||||
soundallowed: true,
|
||||
}));
|
||||
soundcheckerhandler["videourlcheckyoutube"].stopVideo();
|
||||
soundcheckerhandler["videourlcheckyoutube"].destroy();
|
||||
soundcheckerhandler["videourlcheckyoutube"] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (item.message == "updatesounddata") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
} else {
|
||||
if (item.soundcategorytype == "youtube") {
|
||||
if (soundhandler[item.soundid].getPlayerState() == 1) {
|
||||
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
||||
soundid: item.soundid,
|
||||
soundname: soundhandler[item.soundid].getVideoData().title,
|
||||
soundtime: soundhandler[item.soundid].getCurrentTime(),
|
||||
soundtimemax: soundhandler[item.soundid].getDuration()
|
||||
}));
|
||||
}
|
||||
} else {
|
||||
if (soundhandler[item.soundid].playing() == true) {
|
||||
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
|
||||
soundid: item.soundid,
|
||||
soundname: "MP3",
|
||||
soundtime: soundhandler[item.soundid].seek(),
|
||||
soundtimemax: soundhandler[item.soundid].duration()
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item.message == "setsoundtime") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
} else {
|
||||
if (item.soundcategorytype == "youtube") {
|
||||
soundhandler[item.soundid].seekTo(item.timedata);
|
||||
} else {
|
||||
soundhandler[item.soundid].seek(item.timedata);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item.message == "stopsound") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
} else {
|
||||
if (item.soundcategorytype == "youtube") {
|
||||
soundhandler[item.soundid].stopVideo();
|
||||
soundhandler[item.soundid].destroy();
|
||||
soundhandler[item.soundid] = null;
|
||||
$("#'"+ item.soundid +"'").remove();
|
||||
} else {
|
||||
soundhandler[item.soundid].stop()
|
||||
soundhandler[item.soundid] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.message == "stopsoundattraction") {
|
||||
if (soundhandler[item.soundid] == undefined) {
|
||||
} else {
|
||||
soundhandler[item.soundid].stopVideo();
|
||||
soundhandler[item.soundid].destroy();
|
||||
soundhandler[item.soundid] = null;
|
||||
}
|
||||
}
|
||||
if (item.message == "updateinterfacedata") {
|
||||
themeparkresourcename = item.themeparkresourcenamedata;
|
||||
let root = document.documentElement;
|
||||
root.style.setProperty('--color', item.interfacecolordata);
|
||||
}
|
||||
});
|
BIN
resources/[defaultmaps]/rtx_themepark_dlc/html/sounds/ritual.mp3
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/html/sounds/valak.mp3
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/html/sounds/zombie.mp3
Normal file
|
@ -979,21 +979,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector1 {
|
||||
width: 1%;
|
||||
height: 1.0%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 44%;
|
||||
left: 38%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction2 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1015,21 +1000,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector2 {
|
||||
width: 1%;
|
||||
height: 1%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 37%;
|
||||
left: 37%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction3 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1051,21 +1021,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector3 {
|
||||
width: 1%;
|
||||
height: 1%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 30.5%;
|
||||
left: 50%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction4 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1087,21 +1042,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector4 {
|
||||
width: 1%;
|
||||
height: 1%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 37%;
|
||||
left: 43%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction5 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1123,21 +1063,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector5 {
|
||||
width: 1%;
|
||||
height: 1%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 38.5%;
|
||||
left: 58%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction6 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1159,21 +1084,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector6 {
|
||||
width: 1%;
|
||||
height: 1%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 58%;
|
||||
left: 37%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction7 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1195,21 +1105,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector7 {
|
||||
width: 1%;
|
||||
height: 1%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 60%;
|
||||
left: 60%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction8 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1231,21 +1126,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector8 {
|
||||
width: 1%;
|
||||
height: 1%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 68%;
|
||||
left: 49.8%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction9 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1267,21 +1147,6 @@ input[type=range]:focus {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkattractionconnector9 {
|
||||
width: 1%;
|
||||
height: 1%;
|
||||
background-color: rgba(255, 255, 255, 1.0);
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 47%;
|
||||
left: 58%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction10 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1318,6 +1183,196 @@ input[type=range]:focus {
|
|||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction11 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 30%;
|
||||
left: 10%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction12 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 30%;
|
||||
left: 30%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction13 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 30%;
|
||||
left: 50%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction14 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 30%;
|
||||
left: 70%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
|
||||
#parkmanagmentattraction15 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 30%;
|
||||
left: 90%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction16 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 70%;
|
||||
left: 20%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction17 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 70%;
|
||||
left: 40%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction18 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 70%;
|
||||
left: 60%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
#parkmanagmentattraction19 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 3px solid var(--color);
|
||||
color: #ffffff;
|
||||
font-size: 35px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 70%;
|
||||
left: 80%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
z-index: 9999999;
|
||||
width: 12%;
|
||||
height: 10%;
|
||||
border-radius: 5px;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
.parkattractionname {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
|
@ -1663,6 +1718,52 @@ connection {
|
|||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
.attractioncamtext {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 95%;
|
||||
left: 50%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 22px;
|
||||
color: #ffffff;
|
||||
text-align:center;
|
||||
font-family: BebasNeueBold;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#attractioncamtextkey {
|
||||
font-size: 22px;
|
||||
color: var(--color);
|
||||
text-align:center;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
.attractioncamtext2 {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
top: 92%;
|
||||
left: 50%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 22px;
|
||||
color: #ffffff;
|
||||
text-align:center;
|
||||
font-family: BebasNeueBold;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#attractioncamtextkey2 {
|
||||
font-size: 22px;
|
||||
color: var(--color);
|
||||
text-align:center;
|
||||
font-family: BebasNeueBold;
|
||||
}
|
||||
|
||||
.attractionleavetext {
|
||||
position: absolute;
|
||||
margin: 0;
|
|
@ -86,9 +86,7 @@
|
|||
<input type="checkbox" id="parkattractionopendata1">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector1">
|
||||
</div>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction2">
|
||||
<div class="parkattractionname">Top Scan</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
|
@ -97,9 +95,7 @@
|
|||
<input type="checkbox" id="parkattractionopendata2">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector2">
|
||||
</div>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction3">
|
||||
<div class="parkattractionname">Roller coaster</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
|
@ -108,9 +104,7 @@
|
|||
<input type="checkbox" id="parkattractionopendata3">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector3">
|
||||
</div>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction4">
|
||||
<div class="parkattractionname">Shooting Range</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
|
@ -119,9 +113,7 @@
|
|||
<input type="checkbox" id="parkattractionopendata4">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector4">
|
||||
</div>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction5">
|
||||
<div class="parkattractionname">Shooting Range</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
|
@ -131,8 +123,6 @@
|
|||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector5">
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction6">
|
||||
<div class="parkattractionname">Bumper Cars</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
|
@ -141,8 +131,6 @@
|
|||
<input type="checkbox" id="parkattractionopendata6">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector6">
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction7">
|
||||
<div class="parkattractionname">Vortex</div>
|
||||
|
@ -152,8 +140,6 @@
|
|||
<input type="checkbox" id="parkattractionopendata7">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector7">
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction8">
|
||||
<div class="parkattractionname">Ferris wheel</div>
|
||||
|
@ -163,9 +149,7 @@
|
|||
<input type="checkbox" id="parkattractionopendata8">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector8">
|
||||
</div>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction9">
|
||||
<div class="parkattractionname">Detonator</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
|
@ -174,9 +158,7 @@
|
|||
<input type="checkbox" id="parkattractionopendata9">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector9">
|
||||
</div>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction10">
|
||||
<div class="parkattractionname">Boat</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
|
@ -186,8 +168,87 @@
|
|||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattractionconnector" id="parkattractionconnector10">
|
||||
<div class="parkattraction" id="parkmanagmentattraction11">
|
||||
<div class="parkattractionname">Prater</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata11">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction12">
|
||||
<div class="parkattractionname">Break Dance</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata12">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction13">
|
||||
<div class="parkattractionname">Slingshot</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata13">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction14">
|
||||
<div class="parkattractionname">Carousel</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata14">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction15">
|
||||
<div class="parkattractionname">Extasy</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata15">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction16">
|
||||
<div class="parkattractionname">Spinride</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata16">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction17">
|
||||
<div class="parkattractionname">Hauntedhouse</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata17">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction18">
|
||||
<div class="parkattractionname">Rollercoaster 2</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata18">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="parkattraction" id="parkmanagmentattraction19">
|
||||
<div class="parkattractionname">Cannon</div>
|
||||
<div class="parkattractiontextclose">Close</div>
|
||||
<div class="parkattractiontextopen">Open</div>
|
||||
<label class="parkattractionopeninput">
|
||||
<input type="checkbox" id="parkattractionopendata19">
|
||||
<span class="parkattractionopeninputslider"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="attractionbuyticket-container" id="attractionbuyticketshow">
|
||||
<img class="closeattractionbuyticket" src="img/close2.png" style="width:25px;height:25px" alt="attractionbuyticket"/>
|
||||
|
@ -205,6 +266,8 @@
|
|||
<div class="iteminhandtextthrow">Press <span id="iteminhandtextthrowkey">G</span> to pass the item to the player</div>
|
||||
</div>
|
||||
<div class="attraction-container" id="attractionshow">
|
||||
<div class="attractioncamtext2" id="attractioncamtextshow2">Press <span id="attractioncamtextkey">B</span> to change the camera</div>
|
||||
<div class="attractioncamtext" id="attractioncamtextshow">Press <span id="attractioncamtextkey">B</span> to change the camera</div>
|
||||
<div class="attractionanimtext" id="attractionanimtextshow">Press <span id="attractionanimtextkey">E</span> to change the animation</div>
|
||||
<div class="attractionleavetext">Press <span id="attractionleavetextkey">F</span> to exit the attraction</div>
|
||||
</div>
|
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr1.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr2.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr3.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr4.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr5.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr6.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr7.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr8.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/attr9.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr10.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr11.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr12.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr13.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr14.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr15.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr16.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr17.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/dlc/attr18.lua
Normal file
BIN
resources/[defaultmaps]/rtx_themepark_dlc/server/main.lua
Normal file
|
@ -1,346 +1,346 @@
|
|||
function AddMoneyRTX(playersource, moneydata)
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.addMoney(moneydata)
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.Functions.AddMoney('cash', moneydata)
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here money add funciton
|
||||
end
|
||||
end
|
||||
|
||||
function RemoveMoneyRTX(playersource, moneydata)
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.removeMoney(moneydata)
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.Functions.RemoveMoney('cash', moneydata)
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here money remove funciton
|
||||
end
|
||||
end
|
||||
|
||||
function GetMoneyRTX(playersource)
|
||||
local moneydata = 0
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
moneydata = xPlayer.getMoney()
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
moneydata = xPlayer.Functions.GetMoney('cash')
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
moneydata = 99999999999
|
||||
-- add here money get funciton
|
||||
end
|
||||
return moneydata
|
||||
end
|
||||
|
||||
function GiveShootingRangeRewardToPlayer(playersource, prizeiddata)
|
||||
local prizegamehandler = Config.ShootingRangePrizes[prizeiddata]
|
||||
if prizegamehandler.prizetype == "money" then
|
||||
AddMoneyRTX(playersource, prizegamehandler.prizedata)
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("prizerewardmoney", prizegamehandler.prizedata))
|
||||
end
|
||||
end
|
||||
|
||||
function GetPlayerIdentifierRTX(playersource)
|
||||
local playeridentifierdata = ""
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
playeridentifierdata = xPlayer.identifier
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
playeridentifierdata = xPlayer.PlayerData.citizenid
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
playeridentifierdata = GetPlayerIdentifiers(playersource)[1]
|
||||
end
|
||||
return playeridentifierdata
|
||||
end
|
||||
|
||||
function GetPlayerPermissionsManagment(playersource)
|
||||
local playerallowed = false
|
||||
if Config.ThemeParkOwnedSettings.acepermissionsforusemanagmentmenu.enable == true then
|
||||
if IsPlayerAceAllowed(playersource, Config.ThemeParkOwnedSettings.acepermissionsforusemanagmentmenu.permission) then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
if Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.enable == true then
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
if xPlayer.job.name == Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.jobname then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
if xPlayer.PlayerData.job.name == Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.jobname then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here your job check function
|
||||
end
|
||||
end
|
||||
if Config.ThemeParkOwnedSettings.identifierspermissionsforusemanagmentmenu == true then
|
||||
local licensedata = "unknown"
|
||||
local steamdata = "unknown"
|
||||
local xboxdata = "unknown"
|
||||
local livedata = "unknown"
|
||||
local discorddata = "unknown"
|
||||
local ipdata = "unknown"
|
||||
for i, licensehandler in ipairs(GetPlayerIdentifiers(playersource)) do
|
||||
if string.sub(licensehandler, 1,string.len("steam:")) == "steam:" then
|
||||
steamdata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("license:")) == "license:" then
|
||||
licensedata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("live:")) == "live:" then
|
||||
livedata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("xbl:")) == "xbl:" then
|
||||
xboxdata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("discord:")) == "discord:" then
|
||||
discorddata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("ip:")) == "ip:" then
|
||||
ipdata = tostring(licensehandler)
|
||||
end
|
||||
end
|
||||
for i, permissionhandler in ipairs(Config.ThemeParkOwnedSettings.permissionsviaidentifiers) do
|
||||
if permissionhandler.permissiontype == "license" then
|
||||
if permissionhandler.permisisondata == licensedata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "steam" then
|
||||
if permissionhandler.permisisondata == steamdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "xbox" then
|
||||
if permissionhandler.permisisondata == xboxdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "live" then
|
||||
if permissionhandler.permisisondata == livedata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "discord" then
|
||||
if permissionhandler.permisisondata == discorddata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "ip" then
|
||||
if permissionhandler.permisisondata == ipdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return playerallowed
|
||||
end
|
||||
|
||||
function GetPlayerPermissionsControlAttraction(playersource)
|
||||
local playerallowed = false
|
||||
if Config.ThemeParkControlMachineSettings.acepermissionsforusecontrolmenu.enable == true then
|
||||
if IsPlayerAceAllowed(playersource, Config.ThemeParkControlMachineSettings.acepermissionsforusecontrolmenu.permission) then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
if Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.enable == true then
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
if xPlayer.job.name == Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.jobname then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
if xPlayer.PlayerData.job.name == Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.jobname then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here your job check function
|
||||
end
|
||||
end
|
||||
if Config.ThemeParkControlMachineSettings.identifierspermissionsforcontrolmenu == true then
|
||||
local licensedata = "unknown"
|
||||
local steamdata = "unknown"
|
||||
local xboxdata = "unknown"
|
||||
local livedata = "unknown"
|
||||
local discorddata = "unknown"
|
||||
local ipdata = "unknown"
|
||||
for i, licensehandler in ipairs(GetPlayerIdentifiers(playersource)) do
|
||||
if string.sub(licensehandler, 1,string.len("steam:")) == "steam:" then
|
||||
steamdata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("license:")) == "license:" then
|
||||
licensedata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("live:")) == "live:" then
|
||||
livedata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("xbl:")) == "xbl:" then
|
||||
xboxdata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("discord:")) == "discord:" then
|
||||
discorddata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("ip:")) == "ip:" then
|
||||
ipdata = tostring(licensehandler)
|
||||
end
|
||||
end
|
||||
for i, permissionhandler in ipairs(Config.ThemeParkControlMachineSettings.permissionsviaidentifiers) do
|
||||
if permissionhandler.permissiontype == "license" then
|
||||
if permissionhandler.permisisondata == licensedata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "steam" then
|
||||
if permissionhandler.permisisondata == steamdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "xbox" then
|
||||
if permissionhandler.permisisondata == xboxdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "live" then
|
||||
if permissionhandler.permisisondata == livedata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "discord" then
|
||||
if permissionhandler.permisisondata == discorddata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "ip" then
|
||||
if permissionhandler.permisisondata == ipdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return playerallowed
|
||||
end
|
||||
|
||||
if Config.ThemeParkPass then
|
||||
if Config.Framework == "esx" then
|
||||
ESX.RegisterUsableItem("themeparkpass", function(source)
|
||||
local playersource = source
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.removeInventoryItem("themeparkpass", 1)
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("themeparkpassactivated", Config.ThemeParkPassTime))
|
||||
TriggerClientEvent("rtx_themepark:Global:ThemeParkPassActivate", playersource)
|
||||
end
|
||||
end)
|
||||
elseif Config.Framework == "qbcore" then
|
||||
QBCore.Functions.CreateUseableItem("themeparkpass", function(source, item)
|
||||
local playersource = source
|
||||
local Player = QBCore.Functions.GetPlayer(playersource)
|
||||
if Player then
|
||||
Player.Functions.RemoveItem("themeparkpass", 1)
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("themeparkpassactivated", Config.ThemeParkPassTime))
|
||||
TriggerClientEvent("rtx_themepark:Global:ThemeParkPassActivate", playersource)
|
||||
end
|
||||
end)
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here your usable item funciton
|
||||
end
|
||||
end
|
||||
|
||||
if Config.Framework == "esx" then
|
||||
RegisterCommand("enablethemepark", function(source, args, raw)
|
||||
local playersource = source
|
||||
if playersource == 0 then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
print(Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
print(Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
else
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
local playergroup = xPlayer.getGroup()
|
||||
if playergroup == "admin" or playergroup == "superadmin" then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
elseif Config.Framework == "qbcore" then
|
||||
RegisterCommand("enablethemepark", function(source, args, raw)
|
||||
local playersource = source
|
||||
if playersource == 0 then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
print(Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
print(Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
else
|
||||
if QBCore.Functions.HasPermission(playersource, 'admin') or QBCore.Functions.HasPermission(playersource, 'god') then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
elseif Config.Framework == "standalone" then
|
||||
RegisterCommand("enablethemepark", function(source, args, raw)
|
||||
local playersource = source
|
||||
if playersource == 0 then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
print(Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
print(Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
else
|
||||
end
|
||||
end)
|
||||
function AddMoneyRTX(playersource, moneydata)
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.addMoney(moneydata)
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.Functions.AddMoney('cash', moneydata)
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here money add funciton
|
||||
end
|
||||
end
|
||||
|
||||
function RemoveMoneyRTX(playersource, moneydata)
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.removeMoney(moneydata)
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.Functions.RemoveMoney('cash', moneydata)
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here money remove funciton
|
||||
end
|
||||
end
|
||||
|
||||
function GetMoneyRTX(playersource)
|
||||
local moneydata = 0
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
moneydata = xPlayer.getMoney()
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
moneydata = xPlayer.Functions.GetMoney('cash')
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
moneydata = 99999999999
|
||||
-- add here money get funciton
|
||||
end
|
||||
return moneydata
|
||||
end
|
||||
|
||||
function GiveShootingRangeRewardToPlayer(playersource, prizeiddata)
|
||||
local prizegamehandler = Config.ShootingRangePrizes[prizeiddata]
|
||||
if prizegamehandler.prizetype == "money" then
|
||||
AddMoneyRTX(playersource, prizegamehandler.prizedata)
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("prizerewardmoney", prizegamehandler.prizedata))
|
||||
end
|
||||
end
|
||||
|
||||
function GetPlayerIdentifierRTX(playersource)
|
||||
local playeridentifierdata = ""
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
playeridentifierdata = xPlayer.identifier
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
playeridentifierdata = xPlayer.PlayerData.citizenid
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
playeridentifierdata = GetPlayerIdentifiers(playersource)[1]
|
||||
end
|
||||
return playeridentifierdata
|
||||
end
|
||||
|
||||
function GetPlayerPermissionsManagment(playersource)
|
||||
local playerallowed = false
|
||||
if Config.ThemeParkOwnedSettings.acepermissionsforusemanagmentmenu.enable == true then
|
||||
if IsPlayerAceAllowed(playersource, Config.ThemeParkOwnedSettings.acepermissionsforusemanagmentmenu.permission) then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
if Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.enable == true then
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
if xPlayer.job.name == Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.jobname then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
if xPlayer.PlayerData.job.name == Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.jobname then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here your job check function
|
||||
end
|
||||
end
|
||||
if Config.ThemeParkOwnedSettings.identifierspermissionsforusemanagmentmenu == true then
|
||||
local licensedata = "unknown"
|
||||
local steamdata = "unknown"
|
||||
local xboxdata = "unknown"
|
||||
local livedata = "unknown"
|
||||
local discorddata = "unknown"
|
||||
local ipdata = "unknown"
|
||||
for i, licensehandler in ipairs(GetPlayerIdentifiers(playersource)) do
|
||||
if string.sub(licensehandler, 1,string.len("steam:")) == "steam:" then
|
||||
steamdata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("license:")) == "license:" then
|
||||
licensedata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("live:")) == "live:" then
|
||||
livedata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("xbl:")) == "xbl:" then
|
||||
xboxdata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("discord:")) == "discord:" then
|
||||
discorddata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("ip:")) == "ip:" then
|
||||
ipdata = tostring(licensehandler)
|
||||
end
|
||||
end
|
||||
for i, permissionhandler in ipairs(Config.ThemeParkOwnedSettings.permissionsviaidentifiers) do
|
||||
if permissionhandler.permissiontype == "license" then
|
||||
if permissionhandler.permisisondata == licensedata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "steam" then
|
||||
if permissionhandler.permisisondata == steamdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "xbox" then
|
||||
if permissionhandler.permisisondata == xboxdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "live" then
|
||||
if permissionhandler.permisisondata == livedata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "discord" then
|
||||
if permissionhandler.permisisondata == discorddata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "ip" then
|
||||
if permissionhandler.permisisondata == ipdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return playerallowed
|
||||
end
|
||||
|
||||
function GetPlayerPermissionsControlAttraction(playersource)
|
||||
local playerallowed = false
|
||||
if Config.ThemeParkControlMachineSettings.acepermissionsforusecontrolmenu.enable == true then
|
||||
if IsPlayerAceAllowed(playersource, Config.ThemeParkControlMachineSettings.acepermissionsforusecontrolmenu.permission) then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
if Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.enable == true then
|
||||
if Config.Framework == "esx" then
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
if xPlayer.job.name == Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.jobname then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
elseif Config.Framework == "qbcore" then
|
||||
local xPlayer = QBCore.Functions.GetPlayer(playersource)
|
||||
if xPlayer then
|
||||
if xPlayer.PlayerData.job.name == Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.jobname then
|
||||
playerallowed = true
|
||||
end
|
||||
end
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here your job check function
|
||||
end
|
||||
end
|
||||
if Config.ThemeParkControlMachineSettings.identifierspermissionsforcontrolmenu == true then
|
||||
local licensedata = "unknown"
|
||||
local steamdata = "unknown"
|
||||
local xboxdata = "unknown"
|
||||
local livedata = "unknown"
|
||||
local discorddata = "unknown"
|
||||
local ipdata = "unknown"
|
||||
for i, licensehandler in ipairs(GetPlayerIdentifiers(playersource)) do
|
||||
if string.sub(licensehandler, 1,string.len("steam:")) == "steam:" then
|
||||
steamdata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("license:")) == "license:" then
|
||||
licensedata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("live:")) == "live:" then
|
||||
livedata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("xbl:")) == "xbl:" then
|
||||
xboxdata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("discord:")) == "discord:" then
|
||||
discorddata = tostring(licensehandler)
|
||||
elseif string.sub(licensehandler, 1,string.len("ip:")) == "ip:" then
|
||||
ipdata = tostring(licensehandler)
|
||||
end
|
||||
end
|
||||
for i, permissionhandler in ipairs(Config.ThemeParkControlMachineSettings.permissionsviaidentifiers) do
|
||||
if permissionhandler.permissiontype == "license" then
|
||||
if permissionhandler.permisisondata == licensedata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "steam" then
|
||||
if permissionhandler.permisisondata == steamdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "xbox" then
|
||||
if permissionhandler.permisisondata == xboxdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "live" then
|
||||
if permissionhandler.permisisondata == livedata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "discord" then
|
||||
if permissionhandler.permisisondata == discorddata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if permissionhandler.permissiontype == "ip" then
|
||||
if permissionhandler.permisisondata == ipdata then
|
||||
playerallowed = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return playerallowed
|
||||
end
|
||||
|
||||
if Config.ThemeParkPass then
|
||||
if Config.Framework == "esx" then
|
||||
ESX.RegisterUsableItem("themeparkpass", function(source)
|
||||
local playersource = source
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
if xPlayer then
|
||||
xPlayer.removeInventoryItem("themeparkpass", 1)
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("themeparkpassactivated", Config.ThemeParkPassTime))
|
||||
TriggerClientEvent("rtx_themepark:Global:ThemeParkPassActivate", playersource)
|
||||
end
|
||||
end)
|
||||
elseif Config.Framework == "qbcore" then
|
||||
QBCore.Functions.CreateUseableItem("themeparkpass", function(source, item)
|
||||
local playersource = source
|
||||
local Player = QBCore.Functions.GetPlayer(playersource)
|
||||
if Player then
|
||||
Player.Functions.RemoveItem("themeparkpass", 1)
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("themeparkpassactivated", Config.ThemeParkPassTime))
|
||||
TriggerClientEvent("rtx_themepark:Global:ThemeParkPassActivate", playersource)
|
||||
end
|
||||
end)
|
||||
elseif Config.Framework == "standalone" then
|
||||
-- add here your usable item funciton
|
||||
end
|
||||
end
|
||||
|
||||
if Config.Framework == "esx" then
|
||||
RegisterCommand("enablethemepark", function(source, args, raw)
|
||||
local playersource = source
|
||||
if playersource == 0 then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
print(Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
print(Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
else
|
||||
local xPlayer = ESX.GetPlayerFromId(playersource)
|
||||
local playergroup = xPlayer.getGroup()
|
||||
if playergroup == "admin" or playergroup == "superadmin" then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
elseif Config.Framework == "qbcore" then
|
||||
RegisterCommand("enablethemepark", function(source, args, raw)
|
||||
local playersource = source
|
||||
if playersource == 0 then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
print(Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
print(Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
else
|
||||
if QBCore.Functions.HasPermission(playersource, 'admin') or QBCore.Functions.HasPermission(playersource, 'god') then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
elseif Config.Framework == "standalone" then
|
||||
RegisterCommand("enablethemepark", function(source, args, raw)
|
||||
local playersource = source
|
||||
if playersource == 0 then
|
||||
if themeparkdisabled == true then
|
||||
themeparkdisabled = false
|
||||
print(Language[Config.Language]["themeparkallowed"])
|
||||
else
|
||||
themeparkdisabled = true
|
||||
print(Language[Config.Language]["themeparkblocked"])
|
||||
end
|
||||
else
|
||||
end
|
||||
end)
|
||||
end
|
BIN
resources/[defaultmaps]/rtx_themepark_dlc_objects/.fxap
Normal file
|
@ -1,61 +1,61 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<CVehicleModelInfoVariation>
|
||||
<variationData>
|
||||
<Item>
|
||||
<modelName>rtxbumper</modelName>
|
||||
<colors>
|
||||
<Item>
|
||||
<indices content="char_array">
|
||||
22
|
||||
22
|
||||
21
|
||||
22
|
||||
0
|
||||
35
|
||||
</indices>
|
||||
<liveries>
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
</liveries>
|
||||
</Item>
|
||||
</colors>
|
||||
<kits>
|
||||
</kits>
|
||||
<windowsWithExposedEdges />
|
||||
<plateProbabilities>
|
||||
<Probabilities>
|
||||
<Item>
|
||||
<Name>Standard White</Name>
|
||||
<Value value="100" />
|
||||
</Item>
|
||||
</Probabilities>
|
||||
</plateProbabilities>
|
||||
<lightSettings value="1" />
|
||||
<sirenSettings value="0" />
|
||||
</Item>
|
||||
</variationData>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<CVehicleModelInfoVariation>
|
||||
<variationData>
|
||||
<Item>
|
||||
<modelName>rtxbumper</modelName>
|
||||
<colors>
|
||||
<Item>
|
||||
<indices content="char_array">
|
||||
22
|
||||
22
|
||||
21
|
||||
22
|
||||
0
|
||||
35
|
||||
</indices>
|
||||
<liveries>
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
<Item value="false" />
|
||||
</liveries>
|
||||
</Item>
|
||||
</colors>
|
||||
<kits>
|
||||
</kits>
|
||||
<windowsWithExposedEdges />
|
||||
<plateProbabilities>
|
||||
<Probabilities>
|
||||
<Item>
|
||||
<Name>Standard White</Name>
|
||||
<Value value="100" />
|
||||
</Item>
|
||||
</Probabilities>
|
||||
</plateProbabilities>
|
||||
<lightSettings value="1" />
|
||||
<sirenSettings value="0" />
|
||||
</Item>
|
||||
</variationData>
|
||||
</CVehicleModelInfoVariation>
|
BIN
resources/[defaultmaps]/rtx_themepark_dlc_objects/client.lua
Normal file
|
@ -1,59 +1,79 @@
|
|||
fx_version 'adamant'
|
||||
|
||||
game 'gta5'
|
||||
|
||||
description 'RTX THEME PARK OBJECTS'
|
||||
|
||||
version '20.0'
|
||||
|
||||
files {
|
||||
'vehicles.meta',
|
||||
'carvariations.meta',
|
||||
'handling.meta',
|
||||
}
|
||||
|
||||
this_is_a_map 'yes'
|
||||
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_blue_screen.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_red_screen.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_target.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_boat_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_b.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_g.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_p.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_r.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_candycotton_prop.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_detonator_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_detonator_sedacka_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_detonator_zavirani.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_gbooster_rameno_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_gbooster_sedacka_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_gbooster_zakladna_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_popcorn_box.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_topscan_rameno_2_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_topscan_zakladna_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_vortex_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_vortex_anim_sedacka.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_vortex_zavirani.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko_g.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko_b.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko_p.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_control.ytyp'
|
||||
|
||||
|
||||
data_file 'HANDLING_FILE' 'handling.meta'
|
||||
data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
|
||||
data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
|
||||
|
||||
client_script 'vehicle_names.lua'
|
||||
|
||||
escrow_ignore {
|
||||
'stream/sempre_delperropier.ytd'
|
||||
}
|
||||
|
||||
fx_version 'adamant'
|
||||
|
||||
game 'gta5'
|
||||
|
||||
description 'RTX THEME PARK DLC OBJECTS'
|
||||
|
||||
version '10.0'
|
||||
|
||||
files {
|
||||
'vehicles.meta',
|
||||
'carvariations.meta',
|
||||
'handling.meta',
|
||||
}
|
||||
|
||||
this_is_a_map 'yes'
|
||||
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_blue_screen.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_red_screen.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_target.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_boat_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_b.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_g.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_p.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_r.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_candycotton_prop.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_detonator_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_detonator_sedacka_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_detonator_zavirani.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_gbooster_rameno_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_gbooster_sedacka_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_gbooster_zakladna_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_popcorn_box.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_topscan_rameno_2_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_topscan_zakladna_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_vortex_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_vortex_anim_sedacka.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_vortex_zavirani.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko_g.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko_b.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko_p.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_control.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_auticko_01_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_auticko_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_svetylka_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_svetylka_anim_2.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_tocici_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_tocici_anim_2.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_tocici_auticka_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_cannon_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_dlc_attractions.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_extasy_base_anim_1.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_extasy_base_anim_2.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_extasy_base_tocici_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_prater_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_prater_kolotoc_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_slingshot_sedacka_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_slingshot_zakladna_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_spinride_arm_anim.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_spinride_base_anim_2.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_hauntedhouse_vozik.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_hauntedhouse_annabelle.ytyp'
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_rollercoaster_vozik.ytyp'
|
||||
|
||||
data_file 'HANDLING_FILE' 'handling.meta'
|
||||
data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
|
||||
data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
|
||||
|
||||
client_script 'vehicle_names.lua'
|
||||
|
||||
escrow_ignore {
|
||||
'stream/sempre_delperropier.ytd'
|
||||
}
|
||||
|
||||
lua54 'yes'
|
||||
dependency '/assetpacks'
|
|
@ -1,65 +1,65 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<CHandlingDataMgr>
|
||||
<HandlingData>
|
||||
<Item type="CHandlingData">
|
||||
<handlingName>RTXBUMPER</handlingName>
|
||||
<fMass value="500.000000" />
|
||||
<fInitialDragCoeff value="9.750000" />
|
||||
<fPercentSubmerged value="85.000000" />
|
||||
<vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.3050000" />
|
||||
<vecInertiaMultiplier x="1.000000" y="1.000000" z="1.000000" />
|
||||
<fDriveBiasFront value="0.000000" />
|
||||
<nInitialDriveGears value="1" />
|
||||
<fInitialDriveForce value="0.50000" />
|
||||
<fDriveInertia value="1.000000" />
|
||||
<fClutchChangeRateScaleUpShift value="2.000000" />
|
||||
<fClutchChangeRateScaleDownShift value="2.000000" />
|
||||
<fInitialDriveMaxFlatVel value="60.000000" />
|
||||
<fBrakeForce value="0.350000" />
|
||||
<fBrakeBiasFront value="0.400000" />
|
||||
<fHandBrakeForce value="0.680000" />
|
||||
<fSteeringLock value="45.00000" />
|
||||
<fTractionCurveMax value="2.850000" />
|
||||
<fTractionCurveMin value="2.750000" />
|
||||
<fTractionCurveLateral value="15.5000000" />
|
||||
<fTractionSpringDeltaMax value="0.00000" />
|
||||
<fLowSpeedTractionLossMult value="1.00000" />
|
||||
<fCamberStiffnesss value="3.000000" />
|
||||
<fTractionBiasFront value="0.495000" />
|
||||
<fTractionLossMult value="0.000000" />
|
||||
<fSuspensionForce value="1.10000" />
|
||||
<fSuspensionCompDamp value="1.500000" />
|
||||
<fSuspensionReboundDamp value="2.200000" />
|
||||
<fSuspensionUpperLimit value="0.0350000" />
|
||||
<fSuspensionLowerLimit value="-0.300000" />
|
||||
<fSuspensionRaise value="-0.0401200" />
|
||||
<fSuspensionBiasFront value="0.500000" />
|
||||
<fAntiRollBarForce value="0.600000" />
|
||||
<fAntiRollBarBiasFront value="0.400000" />
|
||||
<fRollCentreHeightFront value="0.420000" />
|
||||
<fRollCentreHeightRear value="0.420000" />
|
||||
<fCollisionDamageMult value="0.000000" />
|
||||
<fWeaponDamageMult value="0.000000" />
|
||||
<fDeformationDamageMult value="0.500000" />
|
||||
<fEngineDamageMult value="0.00000" />
|
||||
<fPetrolTankVolume value="80.000000" />
|
||||
<fOilVolume value="8.000000" />
|
||||
<fSeatOffsetDistX value="0.000000" />
|
||||
<fSeatOffsetDistY value="0.000000" />
|
||||
<fSeatOffsetDistZ value="-0.050000" />
|
||||
<nMonetaryValue value="50000" />
|
||||
<strModelFlags>2010104</strModelFlags>
|
||||
<strHandlingFlags>0</strHandlingFlags>
|
||||
<strDamageFlags>0</strDamageFlags>
|
||||
<AIHandling>AVERAGE</AIHandling>
|
||||
<SubHandlingData>
|
||||
<Item type="CCarHandlingData">
|
||||
<strAdvancedFlags>14000000</strAdvancedFlags>
|
||||
</Item>
|
||||
<Item type="NULL" />
|
||||
<Item type="NULL" />
|
||||
</SubHandlingData>
|
||||
</Item>
|
||||
</HandlingData>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<CHandlingDataMgr>
|
||||
<HandlingData>
|
||||
<Item type="CHandlingData">
|
||||
<handlingName>RTXBUMPER</handlingName>
|
||||
<fMass value="500.000000" />
|
||||
<fInitialDragCoeff value="9.750000" />
|
||||
<fPercentSubmerged value="85.000000" />
|
||||
<vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.3050000" />
|
||||
<vecInertiaMultiplier x="1.000000" y="1.000000" z="1.000000" />
|
||||
<fDriveBiasFront value="0.000000" />
|
||||
<nInitialDriveGears value="1" />
|
||||
<fInitialDriveForce value="0.50000" />
|
||||
<fDriveInertia value="1.000000" />
|
||||
<fClutchChangeRateScaleUpShift value="2.000000" />
|
||||
<fClutchChangeRateScaleDownShift value="2.000000" />
|
||||
<fInitialDriveMaxFlatVel value="60.000000" />
|
||||
<fBrakeForce value="0.350000" />
|
||||
<fBrakeBiasFront value="0.400000" />
|
||||
<fHandBrakeForce value="0.680000" />
|
||||
<fSteeringLock value="45.00000" />
|
||||
<fTractionCurveMax value="2.850000" />
|
||||
<fTractionCurveMin value="2.750000" />
|
||||
<fTractionCurveLateral value="15.5000000" />
|
||||
<fTractionSpringDeltaMax value="0.00000" />
|
||||
<fLowSpeedTractionLossMult value="1.00000" />
|
||||
<fCamberStiffnesss value="3.000000" />
|
||||
<fTractionBiasFront value="0.495000" />
|
||||
<fTractionLossMult value="0.000000" />
|
||||
<fSuspensionForce value="1.10000" />
|
||||
<fSuspensionCompDamp value="1.500000" />
|
||||
<fSuspensionReboundDamp value="2.200000" />
|
||||
<fSuspensionUpperLimit value="0.0350000" />
|
||||
<fSuspensionLowerLimit value="-0.300000" />
|
||||
<fSuspensionRaise value="-0.0401200" />
|
||||
<fSuspensionBiasFront value="0.500000" />
|
||||
<fAntiRollBarForce value="0.600000" />
|
||||
<fAntiRollBarBiasFront value="0.400000" />
|
||||
<fRollCentreHeightFront value="0.420000" />
|
||||
<fRollCentreHeightRear value="0.420000" />
|
||||
<fCollisionDamageMult value="0.000000" />
|
||||
<fWeaponDamageMult value="0.000000" />
|
||||
<fDeformationDamageMult value="0.500000" />
|
||||
<fEngineDamageMult value="0.00000" />
|
||||
<fPetrolTankVolume value="80.000000" />
|
||||
<fOilVolume value="8.000000" />
|
||||
<fSeatOffsetDistX value="0.000000" />
|
||||
<fSeatOffsetDistY value="0.000000" />
|
||||
<fSeatOffsetDistZ value="-0.050000" />
|
||||
<nMonetaryValue value="50000" />
|
||||
<strModelFlags>2010104</strModelFlags>
|
||||
<strHandlingFlags>0</strHandlingFlags>
|
||||
<strDamageFlags>0</strDamageFlags>
|
||||
<AIHandling>AVERAGE</AIHandling>
|
||||
<SubHandlingData>
|
||||
<Item type="CCarHandlingData">
|
||||
<strAdvancedFlags>14000000</strAdvancedFlags>
|
||||
</Item>
|
||||
<Item type="NULL" />
|
||||
<Item type="NULL" />
|
||||
</SubHandlingData>
|
||||
</Item>
|
||||
</HandlingData>
|
||||
</CHandlingDataMgr>
|