1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-08-04 20:19:07 +02:00
parent 9f8d0cf336
commit baf4c9b0a2
571 changed files with 2982 additions and 2480 deletions

Binary file not shown.

View 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 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): Install instructions (Standalone):
1. Put rtx_themepark and rtx_themepark_objects folder to your resources !!If you have base Theme Park installed, remove rtx_themepark and rtx_themepark_objects
2. Open config.lua file
3. Configure your config.lua to your preferences 1. Put rtx_themepark_dlc and rtx_themepark_dlc_objects folder to your resources
4. Upload sql sql.sql file to your mysql database. (if you want to use theme park management) 2. Open config.lua file
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', 3. Configure your config.lua to your preferences
6. Put rtx_themepark and rtx_themepark_objects to the server.cfg 4. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
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 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',
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. 6. Put rtx_themepark_dlc and rtx_themepark_dlc_objects to the server.cfg
Install instructions (QBCore): Install instructions (QBCore):
1. Put rtx_themepark and rtx_themepark_objects folder to your resources !!If you have base Theme Park installed, remove rtx_themepark and rtx_themepark_objects
2. Open config.lua file
3. Replace Config.Framework = "standalone" with Config.Framework = "qbcore" 1. Put rtx_themepark_dlc and rtx_themepark_dlc_objects folder to your resources
4. Configure your config.lua to your preferences 2. Open config.lua file
5. Upload sql sql.sql file to your mysql database. (if you want to use theme park management) 3. Replace Config.Framework = "standalone" with Config.Framework = "qbcore"
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', 4. Configure your config.lua to your preferences
7. Put rtx_themepark and rtx_themepark_objects to the server.cfg 5. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
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 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',
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. 7. Put rtx_themepark_dlc and rtx_themepark_dlc_objects to the server.cfg
Install instructions (ESX): Install instructions (ESX):
1. Put rtx_themepark and rtx_themepark_objects folder to your resources. !!If you have base Theme Park installed, remove rtx_themepark and rtx_themepark_objects
2. Open config.lua file
3. Replace Config.Framework = "standalone" with Config.Framework = "esx" 1. Put rtx_themepark_dlc and rtx_themepark_dlc_objects folder to your resources.
4. Configure your config.lua to your preferences 2. Open config.lua file
5. Upload sql sql.sql file to your mysql database. (if you want to use theme park management) 3. Replace Config.Framework = "standalone" with Config.Framework = "esx"
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', 4. Configure your config.lua to your preferences
7. Put rtx_themepark and rtx_themepark_objects to the server.cfg 5. Upload sql sql.sql file to your mysql database. (if you want to use theme park management)
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 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',
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. 7. Put rtx_themepark_dlc and rtx_themepark_dlc_objects to the server.cfg
Common issues: Common issues:
----------------------------- -----------------------------
2 Ferris wheels in Theme Park: 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 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") In bob74_ipl/gtav/base.lua at bottom remove RequestIpl("ferris_finale_anim")
From: From:
https://i.imgur.com/G8EGoYd.png https://i.imgur.com/G8EGoYd.png
To: To:
https://i.imgur.com/yM7uJbW.png https://i.imgur.com/yM7uJbW.png
----------------------------- -----------------------------
Need a key to start bumper cars: 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 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: Object names for whitelist to anticheat:
prop_cs_hotdog_02 prop_cs_hotdog_02
prop_cs_burger_01 prop_cs_burger_01
sempre_delperropier_popcorn_box prop_plastic_cup_02
sempre_delperropier_candycotton_prop sempre_delperropier_popcorn_box
sempre_delperropier_balloon_b sempre_delperropier_candycotton_prop
sempre_delperropier_balloon_g sempre_delperropier_balloon_b
sempre_delperropier_balloon_p sempre_delperropier_balloon_g
sempre_delperropier_balloon_r sempre_delperropier_balloon_p
sempre_delperropier_bus_blue_screen sempre_delperropier_balloon_r
sempre_delperropier_bus_red_screen sempre_delperropier_bus_blue_screen
sempre_delperropier_bus_target 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 License agreement / Terms of Service
----------------------------- 1. Any purchase is non-refundable.
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. 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.
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. © 2025 RTX Development, all rights reserved.

View file

@ -1,69 +1,90 @@
fx_version 'cerulean' fx_version 'cerulean'
game 'gta5' game 'gta5'
description 'RTX THEME PARK' description 'RTX THEME PARK DLC'
version '60.0' version '50.0'
server_scripts { 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) --'@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) --'@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', 'config.lua',
'language/main.lua', 'language/main.lua',
'server/main.lua', 'server/main.lua',
'server/attr1.lua', 'server/attr1.lua',
'server/attr2.lua', 'server/attr2.lua',
'server/attr3.lua', 'server/attr3.lua',
'server/attr4.lua', 'server/attr4.lua',
'server/attr5.lua', 'server/attr5.lua',
'server/attr6.lua', 'server/attr6.lua',
'server/attr7.lua', 'server/attr7.lua',
'server/attr8.lua', 'server/attr8.lua',
'server/attr9.lua', 'server/attr9.lua',
'server/other.lua' 'server/dlc/attr10.lua',
} 'server/dlc/attr11.lua',
'server/dlc/attr12.lua',
client_scripts { 'server/dlc/attr13.lua',
'config.lua', 'server/dlc/attr14.lua',
'language/main.lua', 'server/dlc/attr15.lua',
'client/main.lua', 'server/dlc/attr16.lua',
'client/sound.lua', 'server/dlc/attr17.lua',
'client/paths.lua', 'server/dlc/attr18.lua',
'client/attr1.lua', 'server/other.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'
} }
files { client_scripts {
'html/ui.html', 'config.lua',
'html/styles.css', 'language/main.lua',
'html/scripts.js', 'client/main.lua',
'html/sound.js', 'client/sound.lua',
'html/debounce.min.js', 'client/paths1.lua',
'html/jquery.connections.js', 'client/paths2.lua',
'html/BebasNeueBold.ttf', 'client/paths3.lua',
'html/NakaraRegular.ttf', 'client/attr1.lua',
'html/img/*.png' 'client/attr2.lua',
} 'client/attr3.lua',
'client/attr4.lua',
exports { 'client/attr5.lua',
'IsPlayerOnRide', -- exports["rtx_themepark"]:IsPlayerOnRide() -- it will return if player is on some theme park ride 'client/attr6.lua',
} 'client/attr7.lua',
'client/attr8.lua',
ui_page 'html/ui.html' 'client/attr9.lua',
'client/dlc/attr10.lua',
lua54 'yes' 'client/dlc/attr11.lua',
'client/dlc/attr12.lua',
escrow_ignore { 'client/dlc/attr13.lua',
'config.lua', 'client/dlc/attr14.lua',
'language/main.lua', 'client/dlc/attr15.lua',
'server/other.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' dependency '/assetpacks'

View file

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

View file

@ -1,6 +1,16 @@
var volumeslider = document.getElementById("volumesliderdata"); 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() { function closeMain() {
$("body").css("display", "none"); $("body").css("display", "none");
@ -40,6 +50,8 @@ $(".closemusicurl").click(function(){
$("#attractionurlshow").hide(); $("#attractionurlshow").hide();
}); });
window.addEventListener('message', function (event) { window.addEventListener('message', function (event) {
var item = event.data; var item = event.data;
@ -231,56 +243,7 @@ window.addEventListener('message', function (event) {
$("#attractionshow").hide(); $("#attractionshow").hide();
$("#parkattractionshow").hide(); $("#parkattractionshow").hide();
$("#attractionurlshow").hide(); $("#attractionurlshow").hide();
$("#parkmanagmentshow").fadeIn("slow"); $("#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'
});
} }
if (item.message == "updateparkbalance") { if (item.message == "updateparkbalance") {
@ -339,6 +302,16 @@ window.addEventListener('message', function (event) {
$("#attractionanimtextshow").show(); $("#attractionanimtextshow").show();
} else { } else {
$("#attractionanimtextshow").hide(); $("#attractionanimtextshow").hide();
}
if (item.attractionbumperchange == true) {
$("#attractioncamtextshow").show();
} else {
$("#attractioncamtextshow").hide();
}
if (item.rollercoastercamchange == true) {
$("#attractioncamtextshow2").show();
} else {
$("#attractioncamtextshow2").hide();
} }
$("#attractionshow").show(); $("#attractionshow").show();
} }
@ -414,16 +387,6 @@ window.addEventListener('message', function (event) {
if (item.message == "hidemanagmentmenu") { if (item.message == "hidemanagmentmenu") {
$("#parkmanagmentmainshow").hide(); $("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").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") { if (item.message == "hideshooter") {
@ -448,6 +411,26 @@ window.addEventListener('message', function (event) {
let root = document.documentElement; let root = document.documentElement;
root.style.setProperty('--color', item.interfacecolordata); 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") { if (item.message == "updateattractionmusiclabel") {
document.getElementsByClassName("parkattractioncontrolmusictextdata")[0].innerHTML = item.musiclabel; document.getElementsByClassName("parkattractioncontrolmusictextdata")[0].innerHTML = item.musiclabel;
@ -493,7 +476,7 @@ $(".parkmanagmentsettingsbutton").click(function () {
$.post('https://'+themeparkresourcename+'/parkmanagmentsattractions', JSON.stringify({})); $.post('https://'+themeparkresourcename+'/parkmanagmentsattractions', JSON.stringify({}));
}); });
for (let int1data = 1; int1data < 11; int1data++) { for (let int1data = 1; int1data < 20; int1data++) {
$("#parkattractionopendata" + int1data + "").click(function () { $("#parkattractionopendata" + int1data + "").click(function () {
if (document.getElementById("parkattractionopendata" + int1data + "").checked == false){ if (document.getElementById("parkattractionopendata" + int1data + "").checked == false){
document.getElementById("parkattractionopendata" + int1data + "").checked = false; document.getElementById("parkattractionopendata" + int1data + "").checked = false;

View file

@ -1,236 +1,236 @@
var themeparkresourcename = "rtx_themepark"; var themeparkresourcename = "rtx_themepark";
var soundhandler = {} var soundhandler = {}
var soundcheckerhandler = {} var soundcheckerhandler = {}
window.addEventListener('message', function (event) { window.addEventListener('message', function (event) {
var item = event.data; var item = event.data;
if (item.message == "playsoundattraction") { if (item.message == "playsoundattraction") {
if (soundhandler[item.soundid] == undefined) { if (soundhandler[item.soundid] == undefined) {
$("body").append("<div id='"+ item.soundid +"'></div>"); $("body").append("<div id='"+ item.soundid +"'></div>");
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", { soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
startSeconds:Number, startSeconds:Number,
videoId: item.soundsrc, videoId: item.soundsrc,
origin: window.location.href, origin: window.location.href,
enablejsapi: 1, enablejsapi: 1,
width: "0", width: "0",
height: "0", height: "0",
playerVars: { playerVars: {
playsinline: 1, playsinline: 1,
controls: 0, controls: 0,
}, },
events: { events: {
'onReady': function(event){ 'onReady': function(event){
event.target.unMute(); event.target.unMute();
event.target.setVolume(item.soundvolume); event.target.setVolume(item.soundvolume);
event.target.playVideo(); event.target.playVideo();
}, },
'onError': function(event){ 'onError': function(event){
}, },
'onStateChange': function(event){ 'onStateChange': function(event){
if (event.data == YT.PlayerState.PLAYING) { if (event.data == YT.PlayerState.PLAYING) {
} }
if (event.data == YT.PlayerState.ENDED) { if (event.data == YT.PlayerState.ENDED) {
} }
if (event.data == YT.PlayerState.ENDED) { if (event.data == YT.PlayerState.ENDED) {
soundhandler[item.soundid].seekTo(0); soundhandler[item.soundid].seekTo(0);
soundhandler[item.soundid].playVideo(); soundhandler[item.soundid].playVideo();
} }
} }
} }
}); });
} else { } else {
if (typeof soundhandler[item.soundid].setVolume === 'function') { if (typeof soundhandler[item.soundid].setVolume === 'function') {
soundhandler[item.soundid].setVolume(item.soundvolume); soundhandler[item.soundid].setVolume(item.soundvolume);
} }
} }
} }
if (item.message == "playsound") { if (item.message == "playsound") {
if (item.soundcategory == "youtube") { if (item.soundcategory == "youtube") {
if (soundhandler[item.soundid] == undefined) { if (soundhandler[item.soundid] == undefined) {
$("body").append("<div id='"+ item.soundid +"'></div>"); $("body").append("<div id='"+ item.soundid +"'></div>");
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", { soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
startSeconds:Number, startSeconds:Number,
videoId: item.soundsrc, videoId: item.soundsrc,
origin: window.location.href, origin: window.location.href,
enablejsapi: 1, enablejsapi: 1,
width: "0", width: "0",
height: "0", height: "0",
playerVars: { playerVars: {
playsinline: 1, playsinline: 1,
controls: 0, controls: 0,
}, },
events: { events: {
'onReady': function(event){ 'onReady': function(event){
event.target.unMute(); event.target.unMute();
event.target.setVolume(item.soundvolume); event.target.setVolume(item.soundvolume);
event.target.playVideo(); event.target.playVideo();
}, },
'onError': function(event){ 'onError': function(event){
$.post('https://'+themeparkresourcename+'/sounderror', JSON.stringify({ $.post('https://'+themeparkresourcename+'/sounderror', JSON.stringify({
soundid: item.soundid soundid: item.soundid
})); }));
}, },
'onStateChange': function(event){ 'onStateChange': function(event){
if (event.data == YT.PlayerState.PLAYING) { if (event.data == YT.PlayerState.PLAYING) {
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({ $.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
soundid: item.soundid, soundid: item.soundid,
soundname: soundhandler[item.soundid].getVideoData().title, soundname: soundhandler[item.soundid].getVideoData().title,
soundtime: soundhandler[item.soundid].getCurrentTime(), soundtime: soundhandler[item.soundid].getCurrentTime(),
soundtimemax: soundhandler[item.soundid].getDuration() soundtimemax: soundhandler[item.soundid].getDuration()
})); }));
} }
if (event.data == YT.PlayerState.ENDED) { if (event.data == YT.PlayerState.ENDED) {
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({ $.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
soundid: item.soundid soundid: item.soundid
})); }));
} }
} }
} }
}); });
} else { } else {
if (typeof soundhandler[item.soundid].setVolume === 'function') { if (typeof soundhandler[item.soundid].setVolume === 'function') {
soundhandler[item.soundid].setVolume(item.soundvolume); soundhandler[item.soundid].setVolume(item.soundvolume);
} }
} }
} else { } else {
if (soundhandler[item.soundid] == undefined) { if (soundhandler[item.soundid] == undefined) {
soundhandler[item.soundid] = new Howl({ soundhandler[item.soundid] = new Howl({
src: item.soundsrc, src: item.soundsrc,
volume: item.soundvolume, volume: item.soundvolume,
loop: false, loop: false,
html5: true, html5: true,
onplay: function(){ onplay: function(){
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({ $.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
soundid: item.soundid, soundid: item.soundid,
soundname: "MP3", soundname: "MP3",
soundtime: soundhandler[item.soundid].seek(), soundtime: soundhandler[item.soundid].seek(),
soundtimemax: soundhandler[item.soundid].duration() soundtimemax: soundhandler[item.soundid].duration()
})); }));
}, },
onend: function() { onend: function() {
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({ $.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
soundid: item.soundid soundid: item.soundid
})); }));
} }
}); });
soundhandler[item.soundid].play(); soundhandler[item.soundid].play();
} else { } else {
if (typeof soundhandler[item.soundid].volume === 'function') { if (typeof soundhandler[item.soundid].volume === 'function') {
soundhandler[item.soundid].volume(item.soundvolume); soundhandler[item.soundid].volume(item.soundvolume);
} }
if (soundhandler[item.soundid].playing() == false) { if (soundhandler[item.soundid].playing() == false) {
soundhandler[item.soundid].play(); soundhandler[item.soundid].play();
} }
} }
} }
} }
if (item.message == "checkmusicurl") { if (item.message == "checkmusicurl") {
$("body").append("<div id='videourlcheckyoutube'></div>"); $("body").append("<div id='videourlcheckyoutube'></div>");
soundcheckerhandler["videourlcheckyoutube"] = new YT.Player("videourlcheckyoutube", { soundcheckerhandler["videourlcheckyoutube"] = new YT.Player("videourlcheckyoutube", {
startSeconds:Number, startSeconds:Number,
videoId: item.soundsrc, videoId: item.soundsrc,
origin: window.location.href, origin: window.location.href,
enablejsapi: 1, enablejsapi: 1,
width: "0", width: "0",
height: "0", height: "0",
playerVars: { playerVars: {
playsinline: 1, playsinline: 1,
controls: 0, controls: 0,
}, },
events: { events: {
'onReady': function(event){ 'onReady': function(event){
event.target.setVolume(0); event.target.setVolume(0);
event.target.playVideo(); event.target.playVideo();
}, },
'onError': function(event){ 'onError': function(event){
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({ $.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
soundallowed: false, soundallowed: false,
})); }));
soundcheckerhandler["videourlcheckyoutube"].stopVideo(); soundcheckerhandler["videourlcheckyoutube"].stopVideo();
soundcheckerhandler["videourlcheckyoutube"].destroy(); soundcheckerhandler["videourlcheckyoutube"].destroy();
soundcheckerhandler["videourlcheckyoutube"] = null; soundcheckerhandler["videourlcheckyoutube"] = null;
}, },
'onStateChange': function(event){ 'onStateChange': function(event){
if (event.data == YT.PlayerState.PLAYING) { if (event.data == YT.PlayerState.PLAYING) {
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({ $.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
soundallowed: true, soundallowed: true,
})); }));
soundcheckerhandler["videourlcheckyoutube"].stopVideo(); soundcheckerhandler["videourlcheckyoutube"].stopVideo();
soundcheckerhandler["videourlcheckyoutube"].destroy(); soundcheckerhandler["videourlcheckyoutube"].destroy();
soundcheckerhandler["videourlcheckyoutube"] = null; soundcheckerhandler["videourlcheckyoutube"] = null;
} }
} }
} }
}); });
} }
if (item.message == "updatesounddata") { if (item.message == "updatesounddata") {
if (soundhandler[item.soundid] == undefined) { if (soundhandler[item.soundid] == undefined) {
} else { } else {
if (item.soundcategorytype == "youtube") { if (item.soundcategorytype == "youtube") {
if (soundhandler[item.soundid].getPlayerState() == 1) { if (soundhandler[item.soundid].getPlayerState() == 1) {
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({ $.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
soundid: item.soundid, soundid: item.soundid,
soundname: soundhandler[item.soundid].getVideoData().title, soundname: soundhandler[item.soundid].getVideoData().title,
soundtime: soundhandler[item.soundid].getCurrentTime(), soundtime: soundhandler[item.soundid].getCurrentTime(),
soundtimemax: soundhandler[item.soundid].getDuration() soundtimemax: soundhandler[item.soundid].getDuration()
})); }));
} }
} else { } else {
if (soundhandler[item.soundid].playing() == true) { if (soundhandler[item.soundid].playing() == true) {
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({ $.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
soundid: item.soundid, soundid: item.soundid,
soundname: "MP3", soundname: "MP3",
soundtime: soundhandler[item.soundid].seek(), soundtime: soundhandler[item.soundid].seek(),
soundtimemax: soundhandler[item.soundid].duration() soundtimemax: soundhandler[item.soundid].duration()
})); }));
} }
} }
} }
} }
if (item.message == "setsoundtime") { if (item.message == "setsoundtime") {
if (soundhandler[item.soundid] == undefined) { if (soundhandler[item.soundid] == undefined) {
} else { } else {
if (item.soundcategorytype == "youtube") { if (item.soundcategorytype == "youtube") {
soundhandler[item.soundid].seekTo(item.timedata); soundhandler[item.soundid].seekTo(item.timedata);
} else { } else {
soundhandler[item.soundid].seek(item.timedata); soundhandler[item.soundid].seek(item.timedata);
} }
} }
} }
if (item.message == "stopsound") { if (item.message == "stopsound") {
if (soundhandler[item.soundid] == undefined) { if (soundhandler[item.soundid] == undefined) {
} else { } else {
if (item.soundcategorytype == "youtube") { if (item.soundcategorytype == "youtube") {
soundhandler[item.soundid].stopVideo(); soundhandler[item.soundid].stopVideo();
soundhandler[item.soundid].destroy(); soundhandler[item.soundid].destroy();
soundhandler[item.soundid] = null; soundhandler[item.soundid] = null;
$("#'"+ item.soundid +"'").remove(); $("#'"+ item.soundid +"'").remove();
} else { } else {
soundhandler[item.soundid].stop() soundhandler[item.soundid].stop()
soundhandler[item.soundid] = null; soundhandler[item.soundid] = null;
} }
} }
} }
if (item.message == "stopsoundattraction") { if (item.message == "stopsoundattraction") {
if (soundhandler[item.soundid] == undefined) { if (soundhandler[item.soundid] == undefined) {
} else { } else {
soundhandler[item.soundid].stopVideo(); soundhandler[item.soundid].stopVideo();
soundhandler[item.soundid].destroy(); soundhandler[item.soundid].destroy();
soundhandler[item.soundid] = null; soundhandler[item.soundid] = null;
} }
} }
if (item.message == "updateinterfacedata") { if (item.message == "updateinterfacedata") {
themeparkresourcename = item.themeparkresourcenamedata; themeparkresourcename = item.themeparkresourcenamedata;
let root = document.documentElement; let root = document.documentElement;
root.style.setProperty('--color', item.interfacecolordata); root.style.setProperty('--color', item.interfacecolordata);
} }
}); });

View file

@ -979,21 +979,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction2 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1015,21 +1000,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction3 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1051,21 +1021,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction4 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1087,21 +1042,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction5 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1123,21 +1063,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction6 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1159,21 +1084,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction7 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1195,21 +1105,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction8 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1231,21 +1126,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction9 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1267,21 +1147,6 @@ input[type=range]:focus {
font-family: BebasNeueBold; 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 { #parkmanagmentattraction10 {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1318,6 +1183,196 @@ input[type=range]:focus {
border-radius: 5px; 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 { .parkattractionname {
position: absolute; position: absolute;
margin: 0; margin: 0;
@ -1663,6 +1718,52 @@ connection {
font-family: BebasNeueBold; 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 { .attractionleavetext {
position: absolute; position: absolute;
margin: 0; margin: 0;

View file

@ -86,9 +86,7 @@
<input type="checkbox" id="parkattractionopendata1"> <input type="checkbox" id="parkattractionopendata1">
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div> </div>
<div class="parkattractionconnector" id="parkattractionconnector1">
</div>
<div class="parkattraction" id="parkmanagmentattraction2"> <div class="parkattraction" id="parkmanagmentattraction2">
<div class="parkattractionname">Top Scan</div> <div class="parkattractionname">Top Scan</div>
<div class="parkattractiontextclose">Close</div> <div class="parkattractiontextclose">Close</div>
@ -97,9 +95,7 @@
<input type="checkbox" id="parkattractionopendata2"> <input type="checkbox" id="parkattractionopendata2">
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div> </div>
<div class="parkattractionconnector" id="parkattractionconnector2">
</div>
<div class="parkattraction" id="parkmanagmentattraction3"> <div class="parkattraction" id="parkmanagmentattraction3">
<div class="parkattractionname">Roller coaster</div> <div class="parkattractionname">Roller coaster</div>
<div class="parkattractiontextclose">Close</div> <div class="parkattractiontextclose">Close</div>
@ -108,9 +104,7 @@
<input type="checkbox" id="parkattractionopendata3"> <input type="checkbox" id="parkattractionopendata3">
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div> </div>
<div class="parkattractionconnector" id="parkattractionconnector3">
</div>
<div class="parkattraction" id="parkmanagmentattraction4"> <div class="parkattraction" id="parkmanagmentattraction4">
<div class="parkattractionname">Shooting Range</div> <div class="parkattractionname">Shooting Range</div>
<div class="parkattractiontextclose">Close</div> <div class="parkattractiontextclose">Close</div>
@ -119,9 +113,7 @@
<input type="checkbox" id="parkattractionopendata4"> <input type="checkbox" id="parkattractionopendata4">
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div> </div>
<div class="parkattractionconnector" id="parkattractionconnector4">
</div>
<div class="parkattraction" id="parkmanagmentattraction5"> <div class="parkattraction" id="parkmanagmentattraction5">
<div class="parkattractionname">Shooting Range</div> <div class="parkattractionname">Shooting Range</div>
<div class="parkattractiontextclose">Close</div> <div class="parkattractiontextclose">Close</div>
@ -131,8 +123,6 @@
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div> </div>
<div class="parkattractionconnector" id="parkattractionconnector5">
</div>
<div class="parkattraction" id="parkmanagmentattraction6"> <div class="parkattraction" id="parkmanagmentattraction6">
<div class="parkattractionname">Bumper Cars</div> <div class="parkattractionname">Bumper Cars</div>
<div class="parkattractiontextclose">Close</div> <div class="parkattractiontextclose">Close</div>
@ -141,8 +131,6 @@
<input type="checkbox" id="parkattractionopendata6"> <input type="checkbox" id="parkattractionopendata6">
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div>
<div class="parkattractionconnector" id="parkattractionconnector6">
</div> </div>
<div class="parkattraction" id="parkmanagmentattraction7"> <div class="parkattraction" id="parkmanagmentattraction7">
<div class="parkattractionname">Vortex</div> <div class="parkattractionname">Vortex</div>
@ -152,8 +140,6 @@
<input type="checkbox" id="parkattractionopendata7"> <input type="checkbox" id="parkattractionopendata7">
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div>
<div class="parkattractionconnector" id="parkattractionconnector7">
</div> </div>
<div class="parkattraction" id="parkmanagmentattraction8"> <div class="parkattraction" id="parkmanagmentattraction8">
<div class="parkattractionname">Ferris wheel</div> <div class="parkattractionname">Ferris wheel</div>
@ -163,9 +149,7 @@
<input type="checkbox" id="parkattractionopendata8"> <input type="checkbox" id="parkattractionopendata8">
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div> </div>
<div class="parkattractionconnector" id="parkattractionconnector8">
</div>
<div class="parkattraction" id="parkmanagmentattraction9"> <div class="parkattraction" id="parkmanagmentattraction9">
<div class="parkattractionname">Detonator</div> <div class="parkattractionname">Detonator</div>
<div class="parkattractiontextclose">Close</div> <div class="parkattractiontextclose">Close</div>
@ -174,9 +158,7 @@
<input type="checkbox" id="parkattractionopendata9"> <input type="checkbox" id="parkattractionopendata9">
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div> </div>
<div class="parkattractionconnector" id="parkattractionconnector9">
</div>
<div class="parkattraction" id="parkmanagmentattraction10"> <div class="parkattraction" id="parkmanagmentattraction10">
<div class="parkattractionname">Boat</div> <div class="parkattractionname">Boat</div>
<div class="parkattractiontextclose">Close</div> <div class="parkattractiontextclose">Close</div>
@ -186,8 +168,87 @@
<span class="parkattractionopeninputslider"></span> <span class="parkattractionopeninputslider"></span>
</label> </label>
</div> </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>
<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>
<div class="attractionbuyticket-container" id="attractionbuyticketshow"> <div class="attractionbuyticket-container" id="attractionbuyticketshow">
<img class="closeattractionbuyticket" src="img/close2.png" style="width:25px;height:25px" alt="attractionbuyticket"/> <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 class="iteminhandtextthrow">Press <span id="iteminhandtextthrowkey">G</span> to pass the item to the player</div>
</div> </div>
<div class="attraction-container" id="attractionshow"> <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="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 class="attractionleavetext">Press <span id="attractionleavetextkey">F</span> to exit the attraction</div>
</div> </div>

View file

@ -1,346 +1,346 @@
function AddMoneyRTX(playersource, moneydata) function AddMoneyRTX(playersource, moneydata)
if Config.Framework == "esx" then if Config.Framework == "esx" then
local xPlayer = ESX.GetPlayerFromId(playersource) local xPlayer = ESX.GetPlayerFromId(playersource)
if xPlayer then if xPlayer then
xPlayer.addMoney(moneydata) xPlayer.addMoney(moneydata)
end end
elseif Config.Framework == "qbcore" then elseif Config.Framework == "qbcore" then
local xPlayer = QBCore.Functions.GetPlayer(playersource) local xPlayer = QBCore.Functions.GetPlayer(playersource)
if xPlayer then if xPlayer then
xPlayer.Functions.AddMoney('cash', moneydata) xPlayer.Functions.AddMoney('cash', moneydata)
end end
elseif Config.Framework == "standalone" then elseif Config.Framework == "standalone" then
-- add here money add funciton -- add here money add funciton
end end
end end
function RemoveMoneyRTX(playersource, moneydata) function RemoveMoneyRTX(playersource, moneydata)
if Config.Framework == "esx" then if Config.Framework == "esx" then
local xPlayer = ESX.GetPlayerFromId(playersource) local xPlayer = ESX.GetPlayerFromId(playersource)
if xPlayer then if xPlayer then
xPlayer.removeMoney(moneydata) xPlayer.removeMoney(moneydata)
end end
elseif Config.Framework == "qbcore" then elseif Config.Framework == "qbcore" then
local xPlayer = QBCore.Functions.GetPlayer(playersource) local xPlayer = QBCore.Functions.GetPlayer(playersource)
if xPlayer then if xPlayer then
xPlayer.Functions.RemoveMoney('cash', moneydata) xPlayer.Functions.RemoveMoney('cash', moneydata)
end end
elseif Config.Framework == "standalone" then elseif Config.Framework == "standalone" then
-- add here money remove funciton -- add here money remove funciton
end end
end end
function GetMoneyRTX(playersource) function GetMoneyRTX(playersource)
local moneydata = 0 local moneydata = 0
if Config.Framework == "esx" then if Config.Framework == "esx" then
local xPlayer = ESX.GetPlayerFromId(playersource) local xPlayer = ESX.GetPlayerFromId(playersource)
if xPlayer then if xPlayer then
moneydata = xPlayer.getMoney() moneydata = xPlayer.getMoney()
end end
elseif Config.Framework == "qbcore" then elseif Config.Framework == "qbcore" then
local xPlayer = QBCore.Functions.GetPlayer(playersource) local xPlayer = QBCore.Functions.GetPlayer(playersource)
if xPlayer then if xPlayer then
moneydata = xPlayer.Functions.GetMoney('cash') moneydata = xPlayer.Functions.GetMoney('cash')
end end
elseif Config.Framework == "standalone" then elseif Config.Framework == "standalone" then
moneydata = 99999999999 moneydata = 99999999999
-- add here money get funciton -- add here money get funciton
end end
return moneydata return moneydata
end end
function GiveShootingRangeRewardToPlayer(playersource, prizeiddata) function GiveShootingRangeRewardToPlayer(playersource, prizeiddata)
local prizegamehandler = Config.ShootingRangePrizes[prizeiddata] local prizegamehandler = Config.ShootingRangePrizes[prizeiddata]
if prizegamehandler.prizetype == "money" then if prizegamehandler.prizetype == "money" then
AddMoneyRTX(playersource, prizegamehandler.prizedata) AddMoneyRTX(playersource, prizegamehandler.prizedata)
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("prizerewardmoney", prizegamehandler.prizedata)) TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("prizerewardmoney", prizegamehandler.prizedata))
end end
end end
function GetPlayerIdentifierRTX(playersource) function GetPlayerIdentifierRTX(playersource)
local playeridentifierdata = "" local playeridentifierdata = ""
if Config.Framework == "esx" then if Config.Framework == "esx" then
local xPlayer = ESX.GetPlayerFromId(playersource) local xPlayer = ESX.GetPlayerFromId(playersource)
if xPlayer then if xPlayer then
playeridentifierdata = xPlayer.identifier playeridentifierdata = xPlayer.identifier
end end
elseif Config.Framework == "qbcore" then elseif Config.Framework == "qbcore" then
local xPlayer = QBCore.Functions.GetPlayer(playersource) local xPlayer = QBCore.Functions.GetPlayer(playersource)
if xPlayer then if xPlayer then
playeridentifierdata = xPlayer.PlayerData.citizenid playeridentifierdata = xPlayer.PlayerData.citizenid
end end
elseif Config.Framework == "standalone" then elseif Config.Framework == "standalone" then
playeridentifierdata = GetPlayerIdentifiers(playersource)[1] playeridentifierdata = GetPlayerIdentifiers(playersource)[1]
end end
return playeridentifierdata return playeridentifierdata
end end
function GetPlayerPermissionsManagment(playersource) function GetPlayerPermissionsManagment(playersource)
local playerallowed = false local playerallowed = false
if Config.ThemeParkOwnedSettings.acepermissionsforusemanagmentmenu.enable == true then if Config.ThemeParkOwnedSettings.acepermissionsforusemanagmentmenu.enable == true then
if IsPlayerAceAllowed(playersource, Config.ThemeParkOwnedSettings.acepermissionsforusemanagmentmenu.permission) then if IsPlayerAceAllowed(playersource, Config.ThemeParkOwnedSettings.acepermissionsforusemanagmentmenu.permission) then
playerallowed = true playerallowed = true
end end
end end
if Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.enable == true then if Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.enable == true then
if Config.Framework == "esx" then if Config.Framework == "esx" then
local xPlayer = ESX.GetPlayerFromId(playersource) local xPlayer = ESX.GetPlayerFromId(playersource)
if xPlayer then if xPlayer then
if xPlayer.job.name == Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.jobname then if xPlayer.job.name == Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.jobname then
playerallowed = true playerallowed = true
end end
end end
elseif Config.Framework == "qbcore" then elseif Config.Framework == "qbcore" then
local xPlayer = QBCore.Functions.GetPlayer(playersource) local xPlayer = QBCore.Functions.GetPlayer(playersource)
if xPlayer then if xPlayer then
if xPlayer.PlayerData.job.name == Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.jobname then if xPlayer.PlayerData.job.name == Config.ThemeParkOwnedSettings.jobpermissionsforusemanagmentmenu.jobname then
playerallowed = true playerallowed = true
end end
end end
elseif Config.Framework == "standalone" then elseif Config.Framework == "standalone" then
-- add here your job check function -- add here your job check function
end end
end end
if Config.ThemeParkOwnedSettings.identifierspermissionsforusemanagmentmenu == true then if Config.ThemeParkOwnedSettings.identifierspermissionsforusemanagmentmenu == true then
local licensedata = "unknown" local licensedata = "unknown"
local steamdata = "unknown" local steamdata = "unknown"
local xboxdata = "unknown" local xboxdata = "unknown"
local livedata = "unknown" local livedata = "unknown"
local discorddata = "unknown" local discorddata = "unknown"
local ipdata = "unknown" local ipdata = "unknown"
for i, licensehandler in ipairs(GetPlayerIdentifiers(playersource)) do for i, licensehandler in ipairs(GetPlayerIdentifiers(playersource)) do
if string.sub(licensehandler, 1,string.len("steam:")) == "steam:" then if string.sub(licensehandler, 1,string.len("steam:")) == "steam:" then
steamdata = tostring(licensehandler) steamdata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("license:")) == "license:" then elseif string.sub(licensehandler, 1,string.len("license:")) == "license:" then
licensedata = tostring(licensehandler) licensedata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("live:")) == "live:" then elseif string.sub(licensehandler, 1,string.len("live:")) == "live:" then
livedata = tostring(licensehandler) livedata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("xbl:")) == "xbl:" then elseif string.sub(licensehandler, 1,string.len("xbl:")) == "xbl:" then
xboxdata = tostring(licensehandler) xboxdata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("discord:")) == "discord:" then elseif string.sub(licensehandler, 1,string.len("discord:")) == "discord:" then
discorddata = tostring(licensehandler) discorddata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("ip:")) == "ip:" then elseif string.sub(licensehandler, 1,string.len("ip:")) == "ip:" then
ipdata = tostring(licensehandler) ipdata = tostring(licensehandler)
end end
end end
for i, permissionhandler in ipairs(Config.ThemeParkOwnedSettings.permissionsviaidentifiers) do for i, permissionhandler in ipairs(Config.ThemeParkOwnedSettings.permissionsviaidentifiers) do
if permissionhandler.permissiontype == "license" then if permissionhandler.permissiontype == "license" then
if permissionhandler.permisisondata == licensedata then if permissionhandler.permisisondata == licensedata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "steam" then if permissionhandler.permissiontype == "steam" then
if permissionhandler.permisisondata == steamdata then if permissionhandler.permisisondata == steamdata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "xbox" then if permissionhandler.permissiontype == "xbox" then
if permissionhandler.permisisondata == xboxdata then if permissionhandler.permisisondata == xboxdata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "live" then if permissionhandler.permissiontype == "live" then
if permissionhandler.permisisondata == livedata then if permissionhandler.permisisondata == livedata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "discord" then if permissionhandler.permissiontype == "discord" then
if permissionhandler.permisisondata == discorddata then if permissionhandler.permisisondata == discorddata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "ip" then if permissionhandler.permissiontype == "ip" then
if permissionhandler.permisisondata == ipdata then if permissionhandler.permisisondata == ipdata then
playerallowed = true playerallowed = true
break break
end end
end end
end end
end end
return playerallowed return playerallowed
end end
function GetPlayerPermissionsControlAttraction(playersource) function GetPlayerPermissionsControlAttraction(playersource)
local playerallowed = false local playerallowed = false
if Config.ThemeParkControlMachineSettings.acepermissionsforusecontrolmenu.enable == true then if Config.ThemeParkControlMachineSettings.acepermissionsforusecontrolmenu.enable == true then
if IsPlayerAceAllowed(playersource, Config.ThemeParkControlMachineSettings.acepermissionsforusecontrolmenu.permission) then if IsPlayerAceAllowed(playersource, Config.ThemeParkControlMachineSettings.acepermissionsforusecontrolmenu.permission) then
playerallowed = true playerallowed = true
end end
end end
if Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.enable == true then if Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.enable == true then
if Config.Framework == "esx" then if Config.Framework == "esx" then
local xPlayer = ESX.GetPlayerFromId(playersource) local xPlayer = ESX.GetPlayerFromId(playersource)
if xPlayer then if xPlayer then
if xPlayer.job.name == Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.jobname then if xPlayer.job.name == Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.jobname then
playerallowed = true playerallowed = true
end end
end end
elseif Config.Framework == "qbcore" then elseif Config.Framework == "qbcore" then
local xPlayer = QBCore.Functions.GetPlayer(playersource) local xPlayer = QBCore.Functions.GetPlayer(playersource)
if xPlayer then if xPlayer then
if xPlayer.PlayerData.job.name == Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.jobname then if xPlayer.PlayerData.job.name == Config.ThemeParkControlMachineSettings.jobpermissionsforusecontrolmenu.jobname then
playerallowed = true playerallowed = true
end end
end end
elseif Config.Framework == "standalone" then elseif Config.Framework == "standalone" then
-- add here your job check function -- add here your job check function
end end
end end
if Config.ThemeParkControlMachineSettings.identifierspermissionsforcontrolmenu == true then if Config.ThemeParkControlMachineSettings.identifierspermissionsforcontrolmenu == true then
local licensedata = "unknown" local licensedata = "unknown"
local steamdata = "unknown" local steamdata = "unknown"
local xboxdata = "unknown" local xboxdata = "unknown"
local livedata = "unknown" local livedata = "unknown"
local discorddata = "unknown" local discorddata = "unknown"
local ipdata = "unknown" local ipdata = "unknown"
for i, licensehandler in ipairs(GetPlayerIdentifiers(playersource)) do for i, licensehandler in ipairs(GetPlayerIdentifiers(playersource)) do
if string.sub(licensehandler, 1,string.len("steam:")) == "steam:" then if string.sub(licensehandler, 1,string.len("steam:")) == "steam:" then
steamdata = tostring(licensehandler) steamdata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("license:")) == "license:" then elseif string.sub(licensehandler, 1,string.len("license:")) == "license:" then
licensedata = tostring(licensehandler) licensedata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("live:")) == "live:" then elseif string.sub(licensehandler, 1,string.len("live:")) == "live:" then
livedata = tostring(licensehandler) livedata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("xbl:")) == "xbl:" then elseif string.sub(licensehandler, 1,string.len("xbl:")) == "xbl:" then
xboxdata = tostring(licensehandler) xboxdata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("discord:")) == "discord:" then elseif string.sub(licensehandler, 1,string.len("discord:")) == "discord:" then
discorddata = tostring(licensehandler) discorddata = tostring(licensehandler)
elseif string.sub(licensehandler, 1,string.len("ip:")) == "ip:" then elseif string.sub(licensehandler, 1,string.len("ip:")) == "ip:" then
ipdata = tostring(licensehandler) ipdata = tostring(licensehandler)
end end
end end
for i, permissionhandler in ipairs(Config.ThemeParkControlMachineSettings.permissionsviaidentifiers) do for i, permissionhandler in ipairs(Config.ThemeParkControlMachineSettings.permissionsviaidentifiers) do
if permissionhandler.permissiontype == "license" then if permissionhandler.permissiontype == "license" then
if permissionhandler.permisisondata == licensedata then if permissionhandler.permisisondata == licensedata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "steam" then if permissionhandler.permissiontype == "steam" then
if permissionhandler.permisisondata == steamdata then if permissionhandler.permisisondata == steamdata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "xbox" then if permissionhandler.permissiontype == "xbox" then
if permissionhandler.permisisondata == xboxdata then if permissionhandler.permisisondata == xboxdata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "live" then if permissionhandler.permissiontype == "live" then
if permissionhandler.permisisondata == livedata then if permissionhandler.permisisondata == livedata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "discord" then if permissionhandler.permissiontype == "discord" then
if permissionhandler.permisisondata == discorddata then if permissionhandler.permisisondata == discorddata then
playerallowed = true playerallowed = true
break break
end end
end end
if permissionhandler.permissiontype == "ip" then if permissionhandler.permissiontype == "ip" then
if permissionhandler.permisisondata == ipdata then if permissionhandler.permisisondata == ipdata then
playerallowed = true playerallowed = true
break break
end end
end end
end end
end end
return playerallowed return playerallowed
end end
if Config.ThemeParkPass then if Config.ThemeParkPass then
if Config.Framework == "esx" then if Config.Framework == "esx" then
ESX.RegisterUsableItem("themeparkpass", function(source) ESX.RegisterUsableItem("themeparkpass", function(source)
local playersource = source local playersource = source
local xPlayer = ESX.GetPlayerFromId(playersource) local xPlayer = ESX.GetPlayerFromId(playersource)
if xPlayer then if xPlayer then
xPlayer.removeInventoryItem("themeparkpass", 1) xPlayer.removeInventoryItem("themeparkpass", 1)
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("themeparkpassactivated", Config.ThemeParkPassTime)) TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("themeparkpassactivated", Config.ThemeParkPassTime))
TriggerClientEvent("rtx_themepark:Global:ThemeParkPassActivate", playersource) TriggerClientEvent("rtx_themepark:Global:ThemeParkPassActivate", playersource)
end end
end) end)
elseif Config.Framework == "qbcore" then elseif Config.Framework == "qbcore" then
QBCore.Functions.CreateUseableItem("themeparkpass", function(source, item) QBCore.Functions.CreateUseableItem("themeparkpass", function(source, item)
local playersource = source local playersource = source
local Player = QBCore.Functions.GetPlayer(playersource) local Player = QBCore.Functions.GetPlayer(playersource)
if Player then if Player then
Player.Functions.RemoveItem("themeparkpass", 1) Player.Functions.RemoveItem("themeparkpass", 1)
TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("themeparkpassactivated", Config.ThemeParkPassTime)) TriggerClientEvent("rtx_themepark:Notify", playersource, LanguageFile("themeparkpassactivated", Config.ThemeParkPassTime))
TriggerClientEvent("rtx_themepark:Global:ThemeParkPassActivate", playersource) TriggerClientEvent("rtx_themepark:Global:ThemeParkPassActivate", playersource)
end end
end) end)
elseif Config.Framework == "standalone" then elseif Config.Framework == "standalone" then
-- add here your usable item funciton -- add here your usable item funciton
end end
end end
if Config.Framework == "esx" then if Config.Framework == "esx" then
RegisterCommand("enablethemepark", function(source, args, raw) RegisterCommand("enablethemepark", function(source, args, raw)
local playersource = source local playersource = source
if playersource == 0 then if playersource == 0 then
if themeparkdisabled == true then if themeparkdisabled == true then
themeparkdisabled = false themeparkdisabled = false
print(Language[Config.Language]["themeparkallowed"]) print(Language[Config.Language]["themeparkallowed"])
else else
themeparkdisabled = true themeparkdisabled = true
print(Language[Config.Language]["themeparkblocked"]) print(Language[Config.Language]["themeparkblocked"])
end end
else else
local xPlayer = ESX.GetPlayerFromId(playersource) local xPlayer = ESX.GetPlayerFromId(playersource)
local playergroup = xPlayer.getGroup() local playergroup = xPlayer.getGroup()
if playergroup == "admin" or playergroup == "superadmin" then if playergroup == "admin" or playergroup == "superadmin" then
if themeparkdisabled == true then if themeparkdisabled == true then
themeparkdisabled = false themeparkdisabled = false
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkallowed"]) TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkallowed"])
else else
themeparkdisabled = true themeparkdisabled = true
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkblocked"]) TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkblocked"])
end end
end end
end end
end) end)
elseif Config.Framework == "qbcore" then elseif Config.Framework == "qbcore" then
RegisterCommand("enablethemepark", function(source, args, raw) RegisterCommand("enablethemepark", function(source, args, raw)
local playersource = source local playersource = source
if playersource == 0 then if playersource == 0 then
if themeparkdisabled == true then if themeparkdisabled == true then
themeparkdisabled = false themeparkdisabled = false
print(Language[Config.Language]["themeparkallowed"]) print(Language[Config.Language]["themeparkallowed"])
else else
themeparkdisabled = true themeparkdisabled = true
print(Language[Config.Language]["themeparkblocked"]) print(Language[Config.Language]["themeparkblocked"])
end end
else else
if QBCore.Functions.HasPermission(playersource, 'admin') or QBCore.Functions.HasPermission(playersource, 'god') then if QBCore.Functions.HasPermission(playersource, 'admin') or QBCore.Functions.HasPermission(playersource, 'god') then
if themeparkdisabled == true then if themeparkdisabled == true then
themeparkdisabled = false themeparkdisabled = false
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkallowed"]) TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkallowed"])
else else
themeparkdisabled = true themeparkdisabled = true
TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkblocked"]) TriggerClientEvent("rtx_themepark:Notify", playersource, Language[Config.Language]["themeparkblocked"])
end end
end end
end end
end) end)
elseif Config.Framework == "standalone" then elseif Config.Framework == "standalone" then
RegisterCommand("enablethemepark", function(source, args, raw) RegisterCommand("enablethemepark", function(source, args, raw)
local playersource = source local playersource = source
if playersource == 0 then if playersource == 0 then
if themeparkdisabled == true then if themeparkdisabled == true then
themeparkdisabled = false themeparkdisabled = false
print(Language[Config.Language]["themeparkallowed"]) print(Language[Config.Language]["themeparkallowed"])
else else
themeparkdisabled = true themeparkdisabled = true
print(Language[Config.Language]["themeparkblocked"]) print(Language[Config.Language]["themeparkblocked"])
end end
else else
end end
end) end)
end end

View file

@ -1,61 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfoVariation> <CVehicleModelInfoVariation>
<variationData> <variationData>
<Item> <Item>
<modelName>rtxbumper</modelName> <modelName>rtxbumper</modelName>
<colors> <colors>
<Item> <Item>
<indices content="char_array"> <indices content="char_array">
22 22
22 22
21 21
22 22
0 0
35 35
</indices> </indices>
<liveries> <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" /> <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> </liveries>
</Item> </Item>
</colors> </colors>
<kits> <kits>
</kits> </kits>
<windowsWithExposedEdges /> <windowsWithExposedEdges />
<plateProbabilities> <plateProbabilities>
<Probabilities> <Probabilities>
<Item> <Item>
<Name>Standard White</Name> <Name>Standard White</Name>
<Value value="100" /> <Value value="100" />
</Item> </Item>
</Probabilities> </Probabilities>
</plateProbabilities> </plateProbabilities>
<lightSettings value="1" /> <lightSettings value="1" />
<sirenSettings value="0" /> <sirenSettings value="0" />
</Item> </Item>
</variationData> </variationData>
</CVehicleModelInfoVariation> </CVehicleModelInfoVariation>

View file

@ -1,59 +1,79 @@
fx_version 'adamant' fx_version 'adamant'
game 'gta5' game 'gta5'
description 'RTX THEME PARK OBJECTS' description 'RTX THEME PARK DLC OBJECTS'
version '20.0' version '10.0'
files { files {
'vehicles.meta', 'vehicles.meta',
'carvariations.meta', 'carvariations.meta',
'handling.meta', 'handling.meta',
} }
this_is_a_map 'yes' this_is_a_map 'yes'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier.ytyp' 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.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_anim.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_blue_screen.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_bus_red_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_bus_target.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_boat_anim.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_b.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_g.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_p.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_balloon_r.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_candycotton_prop.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_detonator_anim.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_sedacka_anim.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_detonator_zavirani.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_rameno_anim.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_gbooster_sedacka_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_gbooster_zakladna_anim.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_popcorn_box.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_rameno_2_anim.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_topscan_zakladna_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.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_vortex_anim_sedacka.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_vortex_zavirani.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko.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_g.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_autodrom_auticko_b.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_autodrom_auticko_p.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_control.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 'HANDLING_FILE' 'handling.meta' data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_svetylka_anim.ytyp'
data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta' data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_svetylka_anim_2.ytyp'
data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta' 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'
client_script 'vehicle_names.lua' data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_breakdance_tocici_auticka_anim.ytyp'
data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_cannon_anim.ytyp'
escrow_ignore { data_file 'DLC_ITYP_REQUEST' 'stream/sempre_delperropier_dlc_attractions.ytyp'
'stream/sempre_delperropier.ytd' 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' lua54 'yes'
dependency '/assetpacks' dependency '/assetpacks'

View file

@ -1,65 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CHandlingDataMgr> <CHandlingDataMgr>
<HandlingData> <HandlingData>
<Item type="CHandlingData"> <Item type="CHandlingData">
<handlingName>RTXBUMPER</handlingName> <handlingName>RTXBUMPER</handlingName>
<fMass value="500.000000" /> <fMass value="500.000000" />
<fInitialDragCoeff value="9.750000" /> <fInitialDragCoeff value="9.750000" />
<fPercentSubmerged value="85.000000" /> <fPercentSubmerged value="85.000000" />
<vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.3050000" /> <vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.3050000" />
<vecInertiaMultiplier x="1.000000" y="1.000000" z="1.000000" /> <vecInertiaMultiplier x="1.000000" y="1.000000" z="1.000000" />
<fDriveBiasFront value="0.000000" /> <fDriveBiasFront value="0.000000" />
<nInitialDriveGears value="1" /> <nInitialDriveGears value="1" />
<fInitialDriveForce value="0.50000" /> <fInitialDriveForce value="0.50000" />
<fDriveInertia value="1.000000" /> <fDriveInertia value="1.000000" />
<fClutchChangeRateScaleUpShift value="2.000000" /> <fClutchChangeRateScaleUpShift value="2.000000" />
<fClutchChangeRateScaleDownShift value="2.000000" /> <fClutchChangeRateScaleDownShift value="2.000000" />
<fInitialDriveMaxFlatVel value="60.000000" /> <fInitialDriveMaxFlatVel value="60.000000" />
<fBrakeForce value="0.350000" /> <fBrakeForce value="0.350000" />
<fBrakeBiasFront value="0.400000" /> <fBrakeBiasFront value="0.400000" />
<fHandBrakeForce value="0.680000" /> <fHandBrakeForce value="0.680000" />
<fSteeringLock value="45.00000" /> <fSteeringLock value="45.00000" />
<fTractionCurveMax value="2.850000" /> <fTractionCurveMax value="2.850000" />
<fTractionCurveMin value="2.750000" /> <fTractionCurveMin value="2.750000" />
<fTractionCurveLateral value="15.5000000" /> <fTractionCurveLateral value="15.5000000" />
<fTractionSpringDeltaMax value="0.00000" /> <fTractionSpringDeltaMax value="0.00000" />
<fLowSpeedTractionLossMult value="1.00000" /> <fLowSpeedTractionLossMult value="1.00000" />
<fCamberStiffnesss value="3.000000" /> <fCamberStiffnesss value="3.000000" />
<fTractionBiasFront value="0.495000" /> <fTractionBiasFront value="0.495000" />
<fTractionLossMult value="0.000000" /> <fTractionLossMult value="0.000000" />
<fSuspensionForce value="1.10000" /> <fSuspensionForce value="1.10000" />
<fSuspensionCompDamp value="1.500000" /> <fSuspensionCompDamp value="1.500000" />
<fSuspensionReboundDamp value="2.200000" /> <fSuspensionReboundDamp value="2.200000" />
<fSuspensionUpperLimit value="0.0350000" /> <fSuspensionUpperLimit value="0.0350000" />
<fSuspensionLowerLimit value="-0.300000" /> <fSuspensionLowerLimit value="-0.300000" />
<fSuspensionRaise value="-0.0401200" /> <fSuspensionRaise value="-0.0401200" />
<fSuspensionBiasFront value="0.500000" /> <fSuspensionBiasFront value="0.500000" />
<fAntiRollBarForce value="0.600000" /> <fAntiRollBarForce value="0.600000" />
<fAntiRollBarBiasFront value="0.400000" /> <fAntiRollBarBiasFront value="0.400000" />
<fRollCentreHeightFront value="0.420000" /> <fRollCentreHeightFront value="0.420000" />
<fRollCentreHeightRear value="0.420000" /> <fRollCentreHeightRear value="0.420000" />
<fCollisionDamageMult value="0.000000" /> <fCollisionDamageMult value="0.000000" />
<fWeaponDamageMult value="0.000000" /> <fWeaponDamageMult value="0.000000" />
<fDeformationDamageMult value="0.500000" /> <fDeformationDamageMult value="0.500000" />
<fEngineDamageMult value="0.00000" /> <fEngineDamageMult value="0.00000" />
<fPetrolTankVolume value="80.000000" /> <fPetrolTankVolume value="80.000000" />
<fOilVolume value="8.000000" /> <fOilVolume value="8.000000" />
<fSeatOffsetDistX value="0.000000" /> <fSeatOffsetDistX value="0.000000" />
<fSeatOffsetDistY value="0.000000" /> <fSeatOffsetDistY value="0.000000" />
<fSeatOffsetDistZ value="-0.050000" /> <fSeatOffsetDistZ value="-0.050000" />
<nMonetaryValue value="50000" /> <nMonetaryValue value="50000" />
<strModelFlags>2010104</strModelFlags> <strModelFlags>2010104</strModelFlags>
<strHandlingFlags>0</strHandlingFlags> <strHandlingFlags>0</strHandlingFlags>
<strDamageFlags>0</strDamageFlags> <strDamageFlags>0</strDamageFlags>
<AIHandling>AVERAGE</AIHandling> <AIHandling>AVERAGE</AIHandling>
<SubHandlingData> <SubHandlingData>
<Item type="CCarHandlingData"> <Item type="CCarHandlingData">
<strAdvancedFlags>14000000</strAdvancedFlags> <strAdvancedFlags>14000000</strAdvancedFlags>
</Item> </Item>
<Item type="NULL" /> <Item type="NULL" />
<Item type="NULL" /> <Item type="NULL" />
</SubHandlingData> </SubHandlingData>
</Item> </Item>
</HandlingData> </HandlingData>
</CHandlingDataMgr> </CHandlingDataMgr>

Some files were not shown because too many files have changed in this diff Show more