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

@ -0,0 +1,78 @@
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.

View file

@ -0,0 +1,972 @@
Config = {}
Config.Framework = "standalone" -- types (standalone, qbcore, esx)
Config.ESXFramework = {
newversion = true, -- use this if you using new esx version (if you get error with old esxsharedobjectmethod in console)
getsharedobject = "esx:getSharedObject",
resourcename = "es_extended"
}
Config.QBCoreFrameworkResourceName = "qb-core" -- qb-core resource name, change this if you have different name of main resource of qbcore
Config.OxInventory = false -- enable this if you use ox_inventory
Config.InterfaceColor = "#ff66ff" -- change interface color, color must be in hex
Config.Language = "English" -- text language from code (English, German, French, Italian, Spanish, Portuguese)
Config.ThemeParkCanBeOwned = false -- enable this if you want to want to have theme park for sell for players - settings for management can be found in Config.ThemeParkOwnedSettings
Config.ThemeParkControlAttractions = false -- enable this function if you want to control the attractions manually (after enabling this function, the attractions will no longer turn on automatically) - settings for control attractions can be found in Config.ThemeParkControlMachineSettings
Config.ThemeParkTicketMachineSettings = {usedistance = 2.0, usekey = "E"}
Config.ThemeParkItemsSettings = {givedistance = 2.0, givekey = "G", throwkey = "F", buydistance = 2.0, buykey = "E"}
Config.MaximumParkDistance = 1000.0 -- distance of view of attractions
Config.Target = false -- enable this if you want use target Do not turn on the target, it will work the day after the release.
Config.Targettype = "qtarget" -- types - qtarget, qbtarget, oxtarget
Config.TargetIcons = {managmenticon = "fa-solid fa-bars-progress", ticketicon = "fa-solid fa-cart-shopping", buyicon = "fa-solid fa-cart-shopping", seaticon = "fa-solid fa-chair", controlicon = "fa-solid fa-bars-progress"}
Config.TargetSystemsNames = {qtarget = "qtarget", qbtarget = "qb-target", oxtarget = "ox_target"}
Config.ThemeParkInteractionSystem = 1 -- 1 == Our custom interact system, 2 == 3D Text Interact, 3 == Gta V Online Interaction Style
Config.ThemeParkSeatKey = "E" -- theme park key for sit
Config.ThemeParkExitKey = "F" -- theme park key for exit
Config.ThemeParkAnimChangeKey = "E" -- theme park key for change anim
Config.ThemeParkDisableExit = false -- turn this feature on if you don't want players to leave the attraction during the ride.
Config.ThemeParkPass = false -- -- enable this if you want use theme park pass item, you need create item with name "themeparkpass" in your inventory/framework, also for standalone you need create usable item, example is in server/other.lua
Config.ThemeParkPassTime = 10 -- time when normal theme park expire when player use it (in minutes)
Config.ThemeParkAttractionFallChance = false -- enable this feature if you want the chance that the player will fall from the attraction, you can set the chance in Config.ThemeParkFallSettings
Config.ThemeParkDisabledByDefault = false -- enable this feature if you want to disable all attractions when the server starts, to enable attractions you have to enable them via the /enablethemepark command which is for administrators. (permissions for this command is in other.lua file)
Config.ThemeParkDisableTicketSystem = false -- enable this feature if you want free entry to all attractions
Config.AttractionsSettings = {
gforce = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 1.5, -- distance for use attraction
waitforplayers = 20000, -- in miliseconds
exitcoords = {coords = vector3(-1640.03, -1075.81, 12.15), heading = 52.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.0, -- attraction speed, default speed is 1.0
maxrounds = 10, -- change this you want more rounds at maximum speed (changing this number to a higher number will change the duration of the attraction)
},
topscan = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 1.5, -- distance for use attraction
waitforplayers = 20000, -- in miliseconds
exitcoords = {coords = vector3(-1619.91, -1073.14, 12.01), heading = 345.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.0, -- attraction speed, default speed is 1.0
maxrounds = 20, -- change this you want more rounds at maximum speed (changing this number to a higher number will change the duration of the attraction)
normalstyle = true, -- change this if you want different style of top scan (Top Scan starts spinning at a different angle)
},
vortex = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 1.5, -- distance for use attraction
waitforplayers = 20000, -- in miliseconds
exitcoords = {coords = vector3(-1702.23, -1105.6, 12.15), heading = 321.5}, -- coordinates for exit the attraction
animcooldown = 1000,
ticketprice = 10, -- price for ticket
speedmodifier = 1.0, -- attraction speed, default speed is 1.0
maxrounds = 2, -- change this you want more rounds at maximum speed (changing this number to a higher number will change the duration of the attraction)
},
detonator = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 1.5, -- distance for use attraction
waitforplayers = 20000, -- in miliseconds
exitcoords = {coords = vector3(-1685.04, -1115.26, 12.15), heading = 352.5}, -- coordinates for exit the attraction
ticketprice = 10, -- price for ticket
speedmodifier = 1.0, -- attraction speed, default speed is 1.0
timeontop = 10000, -- in miliseconds (the time that the detonator will wait at the top before going down.)
},
boat = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 1.5, -- distance for use attraction
waitforplayers = 20000, -- in miliseconds
exitcoords = {coords = vector3(-1660.67, -1115.0, 12.04), heading = 50.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.0, -- attraction speed, default speed is 1.0
maxrounds = 5, -- change this you want more rounds at maximum speed (changing this number to a higher number will change the duration of the attraction)
},
bumpercars = {
disable = false, -- enable this if you dont want to use this attraction
bumperdespawncoords = {coords = vector3(-1639.6, -1067.51, 12.5), heading = 230.0}, -- coordinates for exit the attraction
buydistance = 1.5, -- distance for buy ticket
seatdistance = 2.0, -- distance for seat as a passenger.
minminutes = 1, -- minimum minutes in bumper cars
maxminutes = 10, -- max minutes in bumper cars
priceperminute = 10, -- price for ticket per minute
maxplayers = 15, -- maximum number of players for bumper cars
bumperusekey = "E", -- bumper cars key for seat as a passenger.
bumperleavekey = "E",-- bumper cars key for leave bumper cars
disablebumperkeyboard = true, -- turning off the keyboard when driving bumper cars
},
ferris = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.5, -- distance for use attraction
waitforplayers = 20000, -- in miliseconds
ferrisseatanimcooldown = 1000, -- in miliseconds
ferrisseatwait = 5000, -- in miliseconds
ferrisexitcoords = {coords = vector3(-1686.27, -1098.77, 12.5), heading = 140.0}, -- coordinates for exit the attraction
ticketprice = 10, -- price for ticket
},
shootingrange = { -- If you have some script which block weapons, you can add some bypass to allow weapon_musket to be used withount inventory item use, we also trigger this event when shooting range is started TriggerEvent("rtx_themepark:Shooter:Started", true) and when shooting range ends TriggerEvent("rtx_themepark:Shooter:Started", false), you can create event handler for our event in your script
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
maxtargets = 5, -- maximum number of targets
defaultspeed = 0.010, -- base speed of targets
maxspeed = 0.035, -- max speed of targets
maxpeektargets = 50, -- maximum number of target hits
maxmistakes = 5, -- maximum number of mistakes before cancellation
timetoshoot = 5, -- maximum number of seconds to hit the target
shootingrangeweapon = "weapon_musket", -- weapon name which you want to use in shootin range
ticketprice = 10, -- price for ticket
shootingrangeusekey = "E", -- shooting range key for start game.
},
rollercoaster = {
disable = false, -- enable this if you dont want to use this attraction
soundeffect = true, -- enable this if you want sound effects for rollercoaster
usedistance = 2.0, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1, -- attraction speed, default speed is 1 (for roller coaster always increase the numbers by 1 digit, do not use decimal numbers)
},
prater = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 1.5, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
exitcoords = {coords = vector3(-1640.03, -1075.81, 12.15), heading = 52.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.0, -- attraction speed, default speed is 1.0
attractiontime = 60, -- it will stop in 60 seconds
},
brakedance = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
exitcoords = {coords = vector3(-1640.03, -1075.81, 12.15), heading = 52.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.5, -- attraction speed, default speed is 1.0
maxrounds = 10, -- change this you want more rounds at maximum speed (changing this number to a higher number will change the duration of the attraction)
musicvolume = 40,
musicmaxdistance = 50.0,
changecamera = "B", -- camera change bind.
attractiontime = 60, -- it will stop in 60 seconds
},
slingshot = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
exitcoords = {coords = vector3(-1640.03, -1075.81, 12.15), heading = 52.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.0, -- attraction speed, default speed is 1.0
maxrounds = 5, -- change this you want more rounds at maximum speed (changing this number to a higher number will change the duration of the attraction)
},
carousel = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
exitcoords = {coords = vector3(-1640.03, -1075.81, 12.15), heading = 52.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.0, -- attraction speed, default speed is 1.0
attractiontime = 60, -- it will stop in 60 seconds
},
extasy = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
exitcoords = {coords = vector3(-1640.03, -1075.81, 12.15), heading = 52.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.5, -- attraction speed, default speed is 1.0
maxrounds = 10, -- change this you want more rounds at maximum speed (changing this number to a higher number will change the duration of the attraction)
musicvolume = 40,
musicmaxdistance = 50.0,
changecamera = "B", -- camera change bind.
attractiontime = 60, -- it will stop in 60 seconds
},
spinride = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
exitcoords = {coords = vector3(-1640.03, -1075.81, 12.15), heading = 52.5}, -- coordinates for exit the attraction
animcooldown = 1000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1.5, -- attraction speed, default speed is 1.0
maxrounds = 10, -- change this you want more rounds at maximum speed (changing this number to a higher number will change the duration of the attraction)
musicvolume = 40,
musicmaxdistance = 50.0,
changecamera = "B", -- camera change bind.
attractiontime = 60, -- it will stop in 60 seconds
},
hauntedhouse = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1, -- attraction speed, default speed is 1 (for roller coaster always increase the numbers by 1 digit, do not use decimal numbers)
sound = true,
},
rollercoaster2 = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
waitforplayers = 5000, -- in miliseconds
ticketprice = 10, -- price for ticket
speedmodifier = 1, -- attraction speed, default speed is 1 (for roller coaster always increase the numbers by 1 digit, do not use decimal numbers)
sound = true,
},
cannon = {
disable = false, -- enable this if you dont want to use this attraction
usedistance = 2.0, -- distance for use attraction
ticketprice = 10, -- price for ticket
disableexplosion = true, -- turn this on if you want to disable the explosion for example because of anticheat
},
}
Config.AttractionsMusic = {
["gforce"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1638.08, -1078.77, 40.45), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=K6pUfRCWkJg"},
{musicurl = "https://www.youtube.com/watch?v=EiN8adj6Yxk"},
{musicurl = "https://www.youtube.com/watch?v=HQEXOMjyQ-A"},
},
},
["topscan"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1635.18, -1095.14, 35.75), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://youtu.be/FIzqO1oxnOY?si=5EasnFZ-CAmNu1td"},
{musicurl = "https://youtu.be/Kv4Tnsz8wn0?si=lkm7f_LSSnZU6llV"},
{musicurl = "https://youtu.be/Dhn5NYR9vXE?si=nkYysah5Suf2xrkf"},
},
},
["vortex"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1711.15, -1116.4, 14.0), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=7BqyPAAhLZE"},
{musicurl = "https://www.youtube.com/watch?v=jzR9XS1vyiI"},
{musicurl = "https://www.youtube.com/watch?v=mu8c13Rkj50"},
},
},
["detonator"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1689.36, -1130.81, 35.1), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=eVGf7XhGeKk"},
{musicurl = "https://youtu.be/GpiOnf47zfw?si=uO1i7YkSl_vVKT47"},
{musicurl = "https://www.youtube.com/watch?v=XwxLwG2_Sxk"},
},
},
["boat"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1656.05, -1120.58, 20.49), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://youtu.be/uirdzltJOlc?si=L4TrNaPsZWKp1FKD"},
{musicurl = "https://www.youtube.com/watch?v=dfgJYRdNwDE"},
{musicurl = "https://youtu.be/XFshyenXjsg?si=m_7mRlE4qjTFRJU-"},
{musicurl = "https://youtu.be/xgWDbkHrI8A?si=HzbpxJEfabD4gCTb"},
},
},
["bumpercars"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1655.44, -1056.54, 14.09), -- coords for music
maxdistance = 40.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=AUkp2LiN6JU"},
{musicurl = "https://youtu.be/aSSNGTSeqCI?si=H7Q5HVYGm8fniOv1"},
{musicurl = "https://youtu.be/TaZp1538ShI?si=8ZIM2B09jvHZsM8v"},
{musicurl = "https://www.youtube.com/watch?v=-GVHOPW3mxM"},
{musicurl = "https://youtu.be/ziX_f7rdFD4?si=QSnYTlD_1YBCsxn1"},
{musicurl = "https://youtu.be/rw6oxwOOTNM?si=wxBxjagkgMKCkZWj"},
},
},
["ferris"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1683.14, -1096.15, 39.67), -- coords for music
maxdistance = 50.0, -- max distance for music
musicvolume = 40, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=mAEJNDzHCtM"},
{musicurl = "https://www.youtube.com/watch?v=GY4Jk6t4Ljg"},
{musicurl = "https://www.youtube.com/watch?v=3TBSvuWYHwM"},
},
},
["rollercoaster"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1646.03, -1127.34, 18.21), -- coords for music
maxdistance = 50.0, -- max distance for music
musicvolume = 40, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=SC7XrlhRTco"},
{musicurl = "https://youtu.be/n6BgM5G8Hp8?si=4iP25aT-VC-VFy5b"},
{musicurl = "https://youtu.be/eVGf7XhGeKk?si=IcosjKwvMQxi130L"},
},
},
["prater"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1611.79, -1107.07, 51.62), -- coords for music
maxdistance = 50.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=mB8JEqCFJys"},
{musicurl = "https://www.youtube.com/watch?v=nkzPvART7Vo"},
{musicurl = "https://www.youtube.com/watch?v=CgeleP7nWN0"},
},
},
["breakdance"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1574.25, -1114.6, 13.27), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=56xSs4jJLCY"},
{musicurl = "https://www.youtube.com/watch?v=sVIJ8nu1OUY"},
{musicurl = "https://www.youtube.com/watch?v=n61OFC-UxBY"},
{musicurl = "https://youtu.be/eIpLAwON_R4?si=8XFS_Ohr12kcvHds"},
{musicurl = "https://youtu.be/SrfqYVRqB98?si=K0yTYxqwi0TAIHov"},
{musicurl = "https://youtu.be/sDW9y1WL59M?si=0i4qRXwOavemT_Bh"},
{musicurl = "https://www.youtube.com/watch?v=yV8tm-ZPdpE"},
{musicurl = "https://youtu.be/s2EtWJHRjQU?si=HIUHDlMbONtz6k_f"},
{musicurl = "https://www.youtube.com/watch?v=3eNCSxMYSrs"},
{musicurl = "https://www.youtube.com/watch?v=U4PHnUr_5kY"},
{musicurl = "https://youtu.be/IZeFcTonOjI?si=bhwWxcvi484DQdW0"},
{musicurl = "https://youtu.be/p2Mfr50zwVs?si=vLI4Y-ysamNKB2QX"},
{musicurl = "https://youtu.be/UT8cmozrUFw?si=whO0K04dBnpUe5cO"},
{musicurl = "https://youtu.be/CLchHmZxqic?si=v0YqLbK5fBzhp35P"},
{musicurl = "https://www.youtube.com/watch?v=AYmi8vqiRi0"},
{musicurl = "https://youtu.be/hEiZF78d4NE?si=lxdy1A745D-_z3FD"},
},
},
["slingshot"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1584.81, -1082.94, 52.68), -- coords for music
maxdistance = 50.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=uOHdmVmJYsU"},
{musicurl = "https://www.youtube.com/watch?v=6ibspykTbaM"},
{musicurl = "https://www.youtube.com/watch?v=VVtnscexMhU"},
},
},
["carousel"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1630.82, -1169.31, 12.68), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://youtu.be/ed-CymQpsAU?si=7a6Pl9-2FXWzEoUk0"},
{musicurl = "https://youtu.be/bLjfV2gIIic?si=WzlfR1Xamri62GOa"},
{musicurl = "https://youtu.be/9HFQ82mHkNQ?si=bf8yuXDL9WDia9Lt"},
{musicurl = "https://youtu.be/CtNPIGWWt80?si=hrzV8Ne1bWK17Hxy"},
},
},
["extasy"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1633.65, -1137.71, 16.9), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=vKxGXYiXcqs"},
{musicurl = "https://www.youtube.com/watch?v=hSLlHUBBqvY"},
{musicurl = "https://www.youtube.com/watch?v=gPMn50SpOuI"},
},
},
["spinride"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1658.11, -1172.23, 33.26), -- coords for music
maxdistance = 30.0, -- max distance for music
musicvolume = 30, -- max volume for music
playlist = {
{musicurl = "https://www.youtube.com/watch?v=To13f6NOOFM"},
{musicurl = "https://www.youtube.com/watch?v=rapOi7-_CHE"},
{musicurl = "https://www.youtube.com/watch?v=xOe-8lBYtXE"},
},
},
["rollercoaster2"] = {
disable = false, -- enable this if you dont want to play music for this attraction
coords = vector3(-1610.44, -1219.53, 34.99), -- coords for music be/-qSPKz9Rlk¨)
maxdistance = 70.0, -- max distance for music
musicvolume = 20, -- max volume for music
playlist = {
{musicurl = "https://youtu.be/-qSPKz9RlkA?si=cS_BiLga5R-_nSId"},
{musicurl = "https://youtu.be/w1Smzzw_w7Q?si=mBYpm37Wyc4xUVAT"},
{musicurl = "https://www.youtube.com/watch?v=J3kXe5wm8FM"},
},
},
}
Config.ThemeParkBlip = {
blip = true, -- enable this if you want display blip on map
blipcoords = vector3(-1646.97, -1083.27, 12.15), -- location of blip
blipiconid = 266, -- icon type
blipdisplay = 4, -- icon display
blipcolor = 3, -- icon color
blipshortrange = true, -- icon range
blipscale = 1.0, -- icon scale
bliptext = "Theme Park", -- text of blip
}
Config.ThemeParkFallSettings = {
fallchance = 10, -- in percentage 1-1000
fallchancecheck = 5, -- in seconds (for example it will trigger fall chance every 10 seconds when player is on the attraction)
attractions = {
gforce = true, -- enable this if you want to have chance to fall from this attraction
topscan = true, -- enable this if you want to have chance to fall from this attraction
vortex = true, -- enable this if you want to have chance to fall from this attraction
detonator = true, -- enable this if you want to have chance to fall from this attraction
boat = true, -- enable this if you want to have chance to fall from this attraction
rollercoaster = true, -- enable this if you want to have chance to fall from this attraction
prater = true, -- enable this if you want to have chance to fall from this attraction
brakedance = true, -- enable this if you want to have chance to fall from this attraction
slingshot = true, -- enable this if you want to have chance to fall from this attraction
carousel = true, -- enable this if you want to have chance to fall from this attraction
extasy = true, -- enable this if you want to have chance to fall from this attraction
spinride = true, -- enable this if you want to have chance to fall from this attraction
rollercoaster2 = true, -- enable this if you want to have chance to fall from this attraction
},
}
Config.ThemeParkOwnedSettings = {
enablepermissionsystem = false, -- enable this if you want use permissions system via ace, job, identifier (if you enable this function, theme park can no longer be purchased normally)
themeparkcoords = vector3(-1631.3, -1055.77, 13.63), -- coordinates for theme park managment
themeparkprice = 10000, -- price of theme park
themeparkdistance = 2.0, -- distance for theme park managment
themeparkmaxtransferdistance = 2.0, -- maxdistance for transfer theme park
sellmultipler = 0.5, -- sell multipler
ticketmultipler = 0.5, -- the amount the theme park will receive from the ticket
itemmultipler = 0.5, -- the amount the theme park will receive from the item
openmanagmentkey = "E", -- key for open managment menu
disablesell = false, -- enable this if you want disable sell function from managment menu
disabletransfer = false, -- enable this if you want disable transfer function from managment menu
acepermissionsforusemanagmentmenu = {enable = false, permission = "themepark.managment"}, -- enable this if you want to use ace permissions
jobpermissionsforusemanagmentmenu = {enable = false, jobname = "themepark"}, -- enable this if you want to use job permissions (you need create job with name themepark or change the job title to something else)
identifierspermissionsforusemanagmentmenu = false, -- enable this if you want to use identifiers permissions
permissionsviaidentifiers = { -- permisisontypes - license, steam, xbox, live, discord, ip
{permissiontype = "steam", permisisondata = "steam:11000013cc73739"}, -- this is example line
},
}
Config.ThemeParkControlMachineSettings = {
usedistance = 2.0, -- distance for theme park control attraction
usekey = "E", -- key for open control attraction menu
acepermissionsforusecontrolmenu = {enable = false, permission = "themepark.managment"}, -- enable this if you want to use ace permissions
jobpermissionsforusecontrolmenu = {enable = false, jobname = "themepark"}, -- enable this if you want to use job permissions (you need create job with name themepark or change the job title to something else)
identifierspermissionsforcontrolmenu = false, -- enable this if you want to use identifiers permissions
permissionsviaidentifiers = { -- permisisontypes - license, steam, xbox, live, discord, ip
{permissiontype = "steam", permisisondata = "steam:11000013cc73739"}, -- this is example line
},
attractions = {
vortex = {
coords = vector3(-1698.095, -1117.094, 13.12525), -- location of control machine
rotation = vector3(0.0, 0.0, 140.0), -- rotation of control machine
label = "VORTEX", -- label of control machine
musiccoords = vector3(-1711.15, -1116.4, 14.0), -- location of music
musicmaxdistance = 40.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
disablesmoke = false, -- enable this if you want disable smoke
smokecolor = {r = 255, g = 255, b = 255}, -- default color of smoke
smokelocations = {
{coords = vector3(-1704.8, -1115.56, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1706.36, -1120.65, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1711.06, -1123.14, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1716.15, -1121.588, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1718.64, -1116.88, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1717.08, -1111.8, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1712.34, -1109.28, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1707.3, -1110.86, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1707.3, -1110.86, 14.12), scale = 1.50, handler = nil},
{coords = vector3(-1711.24, -1115.81, 14.12), scale = 2.0, handler = nil},
},
},
bumpercars = {
coords = vector3(-1634.112, -1056.608, 13.65577), -- location of control machine
rotation = vector3(0.0, 0.0, 50.0), -- rotation of control machine
label = "BUMPER CARS", -- label of control machine
musiccoords = vector3(-1655.44, -1056.54, 14.0), -- location of music
musicmaxdistance = 80.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
disablesmoke = false, -- enable this if you want disable smoke
smokecolor = {r = 255, g = 255, b = 255}, -- default color of smoke
smokelocations = {
{coords = vector3(-1648.12, -1048.92, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1657.14, -1059.94, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1663.79, -1068.07, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1669.39, -1074.92, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1632.91, -1042.48, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1663.57, -1050.88, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1649.68, -1061.85, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1662.39, -1076.57, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1675.04, -1070.14, 14.0), scale = 5.0, handler = nil},
{coords = vector3(-1643.33, -1053.85, 14.0), scale = 5.0, handler = nil},
},
},
boat = {
coords = vector3(-1653.704, -1115.887, 15.036606), -- location of control machine
rotation = vector3(0.0, 0.0, 215.0), -- rotation of control machine
label = "BOAT", -- label of control machine
musiccoords = vector3(-1656.05, -1120.58, 20.49), -- location of music
musicmaxdistance = 40.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
disablesmoke = false, -- enable this if you want disable smoke
smokecolor = {r = 255, g = 255, b = 255}, -- default color of smoke
smokelocations = {
{coords = vector3(-1655.72, -1119.99, 15.4), scale = 2.0, handler = nil},
{coords = vector3(-1659.06, -1122.29, 15.69), scale = 2.0, handler = nil},
{coords = vector3(-1653.65, -1118.78, 15.4), scale = 2.0, handler = nil},
},
},
rollercoaster = {
coords = vector3(-1643.912, -1121.273, 17.34224), -- location of control machine
rotation = vector3(0.0, 0.0, -40.0), -- rotation of control machine
label = "ROLLERCOASTER", -- label of control machine
musiccoords = vector3(-1646.03, -1127.34, 18.21), -- location of music
musicmaxdistance = 40.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
detonator = {
coords = vector3(-1690.872, -1137.998, 12.9149), -- location of control machine
rotation = vector3(0.0, 0.0, -15.0), -- rotation of control machine
label = "DETONATOR", -- label of control machine
musiccoords = vector3(-1689.36, -1130.81, 35.1), -- location of music
musicmaxdistance = 40.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
gforce = {
coords = vector3(-1643.50, -1082.98, 12.13256), -- location of control machine
rotation = vector3(0.0, 0.0, 230.0), -- rotation of control machine
label = "G-FORCE", -- label of control machine
musiccoords = vector3(-1638.08, -1078.77, 40.45), -- location of music
musicmaxdistance = 40.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
topscan = {
coords = vector3(-1628.918, -1074.719, 12.05341), -- location of control machine
rotation = vector3(0.0, 0.0, 210.0), -- rotation of control machine
label = "TOP SCAN", -- label of control machine
musiccoords = vector3(-1635.18, -1095.14, 35.75), -- location of music
musicmaxdistance = 40.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
ferris = {
coords = vector3(-1679.532, -1099.854, 13.11942), -- location of control machine
rotation = vector3(0.0, 0.0, 320.0), -- rotation of control machine
label = "FERRIS WHEEL", -- label of control machine
musiccoords = vector3(-1683.14, -1096.15, 39.67), -- location of music
musicmaxdistance = 40.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
prater = {
coords = vector3(-1604.7699, -1117.0010, 12.05341), -- location of control machine
rotation = vector3(0.0, 0.0, 49.1917), -- rotation of control machine
label = "PRATER", -- label of control machine
musiccoords = vector3(-1611.79, -1107.07, 51.62), -- location of music
musicmaxdistance = 50.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
brakedance = {
coords = vector3(-1594.3899, -1114.7417, 12.05341), -- location of control machine
rotation = vector3(0.0, 0.0, 268.9210), -- rotation of control machine
label = "BREAK DANCE", -- label of control machine
musiccoords = vector3(-1574.25, -1114.6, 13.27), -- location of music
musicmaxdistance = 30.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
slingshot = {
coords = vector3(-1587.7870, -1088.3650, 12.05341), -- location of control machine
rotation = vector3(0.0, 0.0, 322.14270), -- rotation of control machine
label = "SLINGSHOT", -- label of control machine
musiccoords = vector3(-1584.81, -1082.94, 52.68), -- location of music
musicmaxdistance = 50.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
carousel = {
coords = vector3(-1625.6858, -1161.9131, 12.05341), -- location of control machine
rotation = vector3(0.0, 0.0, 155.4782), -- rotation of control machine
label = "CAROUSEL", -- label of control machine
musiccoords = vector3(-1630.82, -1169.31, 12.68), -- location of music
musicmaxdistance = 30.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
extasy = {
coords = vector3(-1635.0575, -1148.8358, 12.5), -- location of control machine
rotation = vector3(0.0, 0.0, 358.9469), -- rotation of control machine
label = "EXTASY", -- label of control machine
musiccoords = vector3(-1633.65, -1137.71, 16.9), -- location of music
musicmaxdistance = 30.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
spinride = {
coords = vector3(-1645.6586, -1174.2965, 12.05341), -- location of control machine
rotation = vector3(0.0, 0.0, 47.4081), -- rotation of control machine
label = "SPINRIDE", -- label of control machine
musiccoords = vector3(-1658.11, -1172.23, 33.26), -- location of music
musicmaxdistance = 30.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
hauntedhouse = {
coords = vector3(-1601.0016, -1137.1254, 13.2), -- location of control machine
rotation = vector3(0.0, 0.0, 229.98840), -- rotation of control machine
label = "HAUNTEDHOUSE", -- label of control machine
disablemusic = true, -- enable this if you want disable music
},
rollercoaster2 = {
coords = vector3(-1621.8944, -1184.1340, 12.05341), -- location of control machine
rotation = vector3(0.0, 0.0, 230.5453), -- rotation of control machine
label = "ROLLERCOASTER 2", -- label of control machine
musiccoords = vector3(-1610.44, -1219.53, 34.99), -- location of music
musicmaxdistance = 70.0, -- distance of music
disablemusic = false, -- enable this if you want disable music
},
cannon = {
coords = vector3(-1651.1173, -1193.6877, 14.20), -- location of control machine
rotation = vector3(0.0, 0.0, 140.0), -- rotation of control machine
label = "CANNON", -- label of control machine
disablemusic = true, -- enable this if you want disable music
},
},
}
Config.BumperCarsSpawnPoints = {
{coords = vector3(-1665.37, -1084.3, 11.69), heading = 321.5, radius = 2.0},
{coords = vector3(-1667.66, -1082.97, 11.69), heading = 321.5, radius = 2.0},
{coords = vector3(-1670.72, -1080.28, 11.69), heading = 321.5, radius = 2.0},
{coords = vector3(-1674.36, -1077.16, 11.69), heading = 321.5, radius = 2.0},
{coords = vector3(-1678.63, -1074.1, 11.69), heading = 321.5, radius = 2.0},
{coords = vector3(-1681.51, -1071.07, 11.69), heading = 321.5, radius = 2.0},
{coords = vector3(-1628.0, -1042.7, 11.69), heading = 138.0, radius = 2.0},
{coords = vector3(-1631.84, -1039.84, 11.69), heading = 138.0, radius = 2.0},
{coords = vector3(-1633.76, -1037.89, 11.69), heading = 138.0, radius = 2.0},
{coords = vector3(-1637.09, -1034.9, 11.69), heading = 138.0, radius = 2.0},
{coords = vector3(-1643.35, -1029.65, 11.69), heading = 138.0, radius = 2.0},
{coords = vector3(-1646.13, -1027.44, 11.69), heading = 138.0, radius = 2.0},
}
Config.Stands = {
{
coords = vector3(-1647.5, -1085.73, 12.14),
standtype = "hotdog", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1649.97, -1090.43, 12.12),
standtype = "balloon", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1647.4, -1093.0, 12.08),
standtype = "popcorn", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1635.26, -1103.84, 12.02),
standtype = "cotton", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1616.14, -1056.79, 12.07),
standtype = "balloon", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1618.93, -1060.0, 12.07),
standtype = "popcorn", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1623.27, -1066.29, 12.07),
standtype = "hotdog", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1613.03, -1047.15, 12.11),
standtype = "cotton", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1667.91, -1145.63, 12.01),
standtype = "cotton", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1676.21, -1148.22, 12.01),
standtype = "popcorn", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1683.27, -1149.94, 12.01),
standtype = "balloon", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1696.45, -1098.79, 12.15),
standtype = "balloon", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1694.0, -1100.81, 12.15),
standtype = "hotdog", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1689.2, -1104.85, 12.15),
standtype = "popcorn", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1682.61, -1109.75, 12.15),
standtype = "cotton", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1617.53, -1044.0, 12.15),
standtype = "burger", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1638.56, -1113.89, 12.02),
standtype = "burger", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1691.91, -1111.48, 12.15),
standtype = "burger", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1594.92, -1068.34, 12.56),
standtype = "burger", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1603.84, -1124.47, 12.01),
standtype = "balloon", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1610.33, -1132.26, 12.01),
standtype = "popcorn", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(1616.89, -1140.2, 12.01),
standtype = "cotton", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1651.83, -1145.89, 12.56),
standtype = "burger", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1603.56, -1164.56, 12.56),
standtype = "hotdog", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
{
coords = vector3(-1628.93, -1118.66, 12.56),
standtype = "juice", -- hotdog, popcorn, cotton, balloon, burger, juice
itemprice = 5,
},
}
Config.ShootingRangePrizes = {
{ -- score number
minimumscore = 10, -- minimum score
prizetype = "money", -- prize type (you need add your types yourself in server/other.lua
prizedata = 100, -- prize data example money amount
prizelabel = "Money", -- prize label
},
{ -- score number
minimumscore = 100, -- minimum score
prizetype = "money", -- prize type (you need add your types yourself in server/other.lua
prizedata = 1000, -- prize data example money amount
prizelabel = "Money", -- prize label
},
}
Config.PlayerLoadedEvent = { -- load methods of theme park
esx = "esx:playerLoaded",
qbcore = "QBCore:Client:OnPlayerLoaded",
standalone = "playerLoaded",
customevent = true, -- enable this if you dont want load theme park after player loaded to server. (enable this for example for servers with multicharacter)
standaloneevent = false, -- enable this if you dont want load theme park after player loaded to server. (for standalone version)
}
function DrawText3D(x, y, z, text)
local onScreen,_x,_y=World3dToScreen2d(x,y,z)
local px,py,pz=table.unpack(GetGameplayCamCoords())
if onScreen then
SetTextScale(0.35, 0.35)
SetTextFont(4)
SetTextProportional(1)
SetTextColour(255, 255, 255, 255)
SetTextEntry("STRING")
SetTextCentre(1)
AddTextComponentString(text)
DrawText(_x,_y)
local factor = (string.len(text)) / 240
DrawRect(_x, _y + 0.0125, 0.015 + factor, 0.03, 255, 102, 255, 150)
end
end
function Notify(text)
exports["rtx_notify"]:Notify("Theme Park", text, 5000, "info") -- if you get error in this line its because you dont use our notify system buy it here https://rtx.tebex.io/package/5402098 or you can use some other notify system just replace this notify line with your notify system
--exports["mythic_notify"]:SendAlert("inform", text, 5000)
end
function AddBumperKey(vehicle, plate, model)
-- if you use some vehicle key system, add here your function for add keys (name of vehicle is rtxbumper)
end
function RemoveBumperKey(vehicle, plate, model)
-- if you use some vehicle key system, add here your function for remove keys (name of vehicle is rtxbumper)
end
function IncreaseHunger(itemtype)
if itemtype == "hotdog" then
-- You can add here your function for decrease hunger
elseif itemtype == "burger" then
-- You can add here your function for decrease hunger
elseif itemtype == "juice" then
-- You can add here your function for decrease hunger/thirst
end
end
-- If you want to add your own target system / interaction system, edit these functions.
function AddTargetZone(targettype, targetnamedata, targettypedata, targetheading, targetdistance, targetlabel, targeticon, targetevent)
if Config.Targettype == "qtarget" then
if targettype == "coords" then
local targetcoordsdata = vector3(targettypedata.x, targettypedata.y, targettypedata.z+0.5)
exports[Config.TargetSystemsNames.qtarget]:AddBoxZone(targetnamedata, targetcoordsdata, 2.5, 2.5, {
name = targetnamedata,
heading = targetheading,
debugPoly = false,
minZ = targetcoordsdata.z-1.5,
maxZ = targetcoordsdata.z+1.5,
}, {
options = {
{
event = targetevent,
icon = targeticon,
label = targetlabel
},
},
distance = targetdistance
})
else
exports[Config.TargetSystemsNames.qtarget]:AddTargetModel({GetHashKey(targettypedata)}, {
options = {
{
name = targetnamedata,
event = targetevent,
icon = targeticon,
label = targetlabel,
},
},
distance = targetdistance
})
end
elseif Config.Targettype == "qbtarget" then
if targettype == "coords" then
local targetcoordsdata = vector3(targettypedata.x, targettypedata.y, targettypedata.z+0.5)
exports[Config.TargetSystemsNames.qbtarget]:AddBoxZone(targetnamedata, targetcoordsdata, 2.5, 2.5, {
name = targetnamedata,
heading = targetheading,
debugPoly = false,
minZ = targetcoordsdata.z-1.5,
maxZ = targetcoordsdata.z+1.5,
}, {
options = {
{
type = "client",
action = function(entity)
TriggerEvent(targetevent)
end,
icon = targeticon,
label = targetlabel,
},
},
distance = targetdistance
})
else
exports[Config.TargetSystemsNames.qbtarget]:AddTargetModel({GetHashKey(targettypedata)}, {
options = {
{
name = targetnamedata,
event = targetevent,
icon = targeticon,
label = targetlabel,
},
},
distance = targetdistance
})
end
elseif Config.Targettype == "oxtarget" then
if targettype == "coords" then
local targetcoordsdata = vector3(targettypedata.x, targettypedata.y, targettypedata.z+0.5)
exports[Config.TargetSystemsNames.oxtarget]:addBoxZone({
coords = targetcoordsdata,
size = vec3(2, 2, 2),
rotation = targetheading,
options = {
{
name = targetnamedata,
event = targetevent,
icon = targeticon,
distance = targetdistance,
label = targetlabel,
canInteract = function(entity, distance, coords, name)
return true
end
}
}
})
else
exports[Config.TargetSystemsNames.oxtarget]:addModel(GetHashKey(targettypedata), {
{
name = targetnamedata,
event = targetevent,
icon = targeticon,
label = targetlabel,
}
})
end
end
end

View file

@ -0,0 +1,90 @@
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'
}
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'

View file

@ -0,0 +1,9 @@
/*
* jQuery throttle / debounce - v1.1 - 3/7/2010
* http://benalman.com/projects/jquery-throttle-debounce-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this);

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,250 @@
(function($) {
$.fn.connections = function(options) {
if (options === "update") {
return processConnections(update, this);
} else if (options === "remove") {
return processConnections(destroy, this);
} else {
options = $.extend(
true,
{
borderClasses: {},
class: "connection",
css: {},
from: this,
tag: "connection",
to: this,
within: ":root"
},
options
);
connect(options);
return this;
}
};
$.event.special.connections = {
teardown: function(namespaces) {
processConnections(destroy, $(this));
}
};
var connect = function(options) {
var borderClasses = options.borderClasses;
var tag = options.tag;
var end1 = $(options.from);
var end2 = $(options.to);
var within = $(options.within);
delete options.borderClasses;
delete options.tag;
delete options.from;
delete options.to;
delete options.within;
within.each(function() {
var container = this;
var done = new Array();
end1.each(function() {
var node = this;
done.push(this);
end2.not(done).each(function() {
createConnection(
container,
[node, this],
tag,
borderClasses,
options
);
});
});
});
};
var createConnection = function(
container,
nodes,
tag,
borderClasses,
options
) {
var css = $.extend({ position: "absolute" }, options.css);
var connection = $("<" + tag + "/>", options).css(css);
connection.appendTo(container);
var border_w = (connection.outerWidth() - connection.innerWidth()) / 2;
var border_h = (connection.outerHeight() - connection.innerHeight()) / 2;
if (border_w <= 0 && border_h <= 0) {
border_w = border_h = 1;
}
var data = {
borderClasses: borderClasses,
border_h: border_h,
border_w: border_w,
node_from: $(nodes[0]),
node_to: $(nodes[1]),
nodes_dom: nodes,
css: css
};
if ("none" === connection.css("border-top-style")) {
data.css.borderStyle = "solid";
}
$.data(connection.get(0), "connection", data);
$.data(connection.get(0), "connections", [connection.get(0)]);
for (var i = 0; i < 2; i++) {
var connections = connection.add($.data(nodes[i], "connections")).get();
$.data(nodes[i], "connections", connections);
if (connections.length == 1) {
$(nodes[i]).on("connections.connections", false);
}
}
update(connection.get(0));
};
var destroy = function(connection) {
var nodes = $.data(connection, "connection").nodes_dom;
for (var i = 0; i < 2; i++) {
var connections = $($.data(nodes[i], "connections"))
.not(connection)
.get();
$.data(nodes[i], "connections", connections);
}
$(connection).remove();
};
var getState = function(data) {
data.rect_from = data.nodes_dom[0].getBoundingClientRect();
data.rect_to = data.nodes_dom[1].getBoundingClientRect();
var cached = data.cache;
data.cache = [
data.rect_from.top,
data.rect_from.right,
data.rect_from.bottom,
data.rect_from.left,
data.rect_to.top,
data.rect_to.right,
data.rect_to.bottom,
data.rect_to.left
];
data.hidden =
0 === (data.cache[0] | data.cache[1] | data.cache[2] | data.cache[3]) ||
0 === (data.cache[4] | data.cache[5] | data.cache[6] | data.cache[7]);
data.unmodified = true;
if (cached === undefined) {
return (data.unmodified = false);
}
for (var i = 0; i < 8; i++) {
if (cached[i] !== data.cache[i]) {
return (data.unmodified = false);
}
}
};
var update = function(connection) {
var data = $.data(connection, "connection");
getState(data);
if (data.unmodified) {
return;
}
var border_h = data.border_h;
var border_w = data.border_w;
var from = data.rect_from;
var to = data.rect_to;
var b = (from.bottom + from.top) / 2;
var r = (to.left + to.right) / 2;
var t = (to.bottom + to.top) / 2;
var l = (from.left + from.right) / 2;
var h = ["right", "left"];
if (l > r) {
h = ["left", "right"];
var x = Math.max(r - border_w / 2, Math.min(from.right, to.right));
r = l + border_w / 2;
l = x;
} else {
l -= border_w / 2;
r = Math.min(r + border_w / 2, Math.max(from.left, to.left));
}
var v = ["bottom", "top"];
if (t > b) {
v = ["top", "bottom"];
var x = Math.max(b - border_h / 2, Math.min(from.bottom, to.bottom));
b = t + border_h / 2;
t = x;
} else {
b = Math.min(b, Math.max(from.top, to.top));
t -= border_h / 2;
}
var width = r - l;
var height = b - t;
if (width < border_w) {
t = Math.max(t, Math.min(from.bottom, to.bottom));
b = Math.min(b, Math.max(from.top, to.top));
l = Math.max(from.left, to.left);
r = Math.min(from.right, to.right);
r = l = (l + r - border_w) / 2;
}
if (height < border_h) {
l = Math.max(l, Math.min(from.right, to.right));
r = Math.min(r, Math.max(from.left, to.left));
t = Math.max(from.top, to.top);
b = Math.min(from.bottom, to.bottom);
b = t = (t + b - border_h) / 2;
}
width = r - l;
height = b - t;
width <= 0 && (border_h = 0);
height <= 0 && (border_w = 0);
var style =
"border-" +
v[0] +
"-" +
h[0] +
"-radius: 0;" +
"border-" +
v[0] +
"-" +
h[1] +
"-radius: 0;" +
"border-" +
v[1] +
"-" +
h[0] +
"-radius: 0;";
(border_h <= 0 || border_w <= 0) &&
(style += "border-" + v[1] + "-" + h[1] + "-radius: 0;");
if (data.hidden) {
style += "display: none;";
} else {
data.css["border-" + v[0] + "-width"] = 0;
data.css["border-" + h[0] + "-width"] = 0;
data.css["border-" + v[1] + "-width"] = border_h;
data.css["border-" + h[1] + "-width"] = border_w;
var current_rect = connection.getBoundingClientRect();
data.css.left = connection.offsetLeft + l - current_rect.left;
data.css.top = connection.offsetTop + t - current_rect.top;
data.css.width = width - border_w;
data.css.height = height - border_h;
}
var bc = data.borderClasses;
$(connection)
.removeClass(bc[v[0]])
.removeClass(bc[h[0]])
.addClass(bc[v[1]])
.addClass(bc[h[1]])
.attr("style", style)
.css(data.css);
};
var processConnections = function(method, elements) {
return elements.each(function() {
var connections = $.data(this, "connections");
if (connections instanceof Array) {
for (var i = 0, len = connections.length; i < len; i++) {
method(connections[i]);
}
}
});
};
})(jQuery);

View file

@ -0,0 +1,560 @@
var volumeslider = document.getElementById("volumesliderdata");
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");
}
function openMain() {
$("body").css("display", "block");
}
const colorToHex = (color) => {
const hexadecimal = color.toString(16);
return hexadecimal.length == 1 ? "0" + hexadecimal : hexadecimal;
}
const RGBtoHex = (red, green, blue) => {
return "#" + colorToHex(red) + colorToHex(green) + colorToHex(blue);
}
$(".closebumpercarsbuy").click(function(){
$.post('https://'+themeparkresourcename+'/closebumper', JSON.stringify({}));
});
$(".closeparkbuy").click(function(){
$.post('https://'+themeparkresourcename+'/closemanagment', JSON.stringify({}));
});
$(".closeattractionbuyticket").click(function(){
$.post('https://'+themeparkresourcename+'/closethemeparkticket', JSON.stringify({}));
});
$(".closeparkattractionmenu").click(function(){
$.post('https://'+themeparkresourcename+'/closecontrolmenu', JSON.stringify({}));
});
$(".closemusicurl").click(function(){
$("#attractionurlshow").hide();
});
window.addEventListener('message', function (event) {
var item = event.data;
if (item.message == "infonotifyshow") {
document.getElementsByClassName("infonotifytext")[0].innerHTML = item.infonotifytext;
openMain();
$("#infonotifyshow").show();
}
if (item.message == "bumpercarsbuyshow") {
openMain();
var inputhandler = document.getElementById("bumpercarstimesliderdata");
inputhandler.setAttribute("max", item.bumpermaxminutesdata);
inputhandler.setAttribute("min", item.bumperminminutesdata);
$("#gymentrypricesliderdata").val(item.bumperminminutesdata);
document.getElementById("bumpercarstimeminutedata").innerHTML = item.bumperminminutesdata;
document.getElementById("bumpercarspricedata").innerHTML = item.bumperpricedata;
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shooterendshow").hide();
$("#shootershow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#bumpercarsbuyshow").show();
}
if (item.message == "bumperbuyupdateprice") {
document.getElementById("bumpercarspricedata").innerHTML = item.bumperpricedata;
}
if (item.message == "bumpercarsshow") {
openMain();
if (item.bumperdriver == true) {
$("#bumpercartimetextshow").show();
} else {
$("#bumpercartimetextshow").hide();
}
document.getElementById("bumpercarleavetextkey").innerHTML = item.bumperleavekeydata;
$("#bumpercarsbuyshow").hide();
$("#ferrisshow").hide();
$("#shooterendshow").hide();
$("#shootershow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#bumpercarmainshow").show();
}
if (item.message == "bumperupdatetime") {
document.getElementById("bumpercartimetextdata").innerHTML = item.bumpertimedata;
}
if (item.message == "ferrisshow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#ferrisshow").show();
}
if (item.message == "shootershow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#shootershow").show();
document.getElementById("shootershottextdata").innerHTML = item.shootsdata;
document.getElementById("shootermissestextdata").innerHTML = item.missdata;
document.getElementById("shootertimetextdata").innerHTML = item.timedata;
}
if (item.message == "shooterhit") {
document.getElementById("shootertexthitdata").innerHTML = item.hittext;
$("#shootertexthitshow").fadeIn("fast");
setTimeout(function() {
$("#shootertexthitshow").fadeOut("fast");
}, 1000);
}
if (item.message == "shooterendshow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#shooterendshow").show();
document.getElementById("shooterendshootstextdata").innerHTML = item.shootsdata;
document.getElementById("shooterendmissestextdata").innerHTML = item.missdata;
$("#shooterendshow").fadeIn("slow");
setTimeout(function() {
$("#shooterendshow").fadeOut("slow");
}, 2500);
}
if (item.message == "parkbuyshow") {
openMain();
document.getElementById("parkbuytextpricedata").innerHTML = item.parkprice;
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#parkbuyshow").show();
}
if (item.message == "parkmanagmentmainshow") {
openMain();
document.getElementById("parkmanagmentwithdrawmoneytextdata").innerHTML = item.parkbalance;
if (item.selldisable == true) {
$("#showsellpark").hide();
} else {
$("#showownerparkmain").show();
$("#showsellpark").show();
}
if (item.transferdisable == true) {
$("#showtransferpark").hide();
} else {
$("#showownerparkmain").show();
$("#showtransferpark").show();
}
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#parkmanagmentmainshow").fadeIn("slow");
}
if (item.message == "parkmanagmentshow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#parkmanagmentshow").fadeIn("slow");
}
if (item.message == "updateparkbalance") {
document.getElementById("parkmanagmentwithdrawmoneytextdata").innerHTML = item.parkbalance;
}
if (item.message == "attractionbuyticketshow") {
openMain();
document.getElementById("attractionpricedata").innerHTML = item.ticketprice;
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#attractionbuyticketshow").show();
}
if (item.message == "iteminhandshow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionbuyticketshow").hide();
$("#attractionshow").hide();
$("#iteminhandshow").show();
}
if (item.message == "attractionhow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
if (item.attractionanimchange == true) {
$("#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();
}
if (item.message == "parkattractionshow") {
openMain();
volumeslider.value = item.musicvolumedata;
document.getElementsByClassName("parkattractioncontroltext")[0].innerHTML = item.attractionname;
if(item.musicdisabled == true) {
$("#parkshowmusic").hide();
} else {
$("#parkshowmusic").show();
}
if(item.smokedisabled == true) {
$("#parkshowsmoke").hide();
} else {
$("#parkshowsmoke").show();
var colorreformated = RGBtoHex(item.smokecolor.r, item.smokecolor.g, item.smokecolor.b);
$("#color-picker").spectrum("set", colorreformated);
}
if(item.turndisabled == true) {
$("#parkshowturn").hide();
} else {
$("#parkshowturn").show();
}
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionurlshow").hide();
$("#parkattractionshow").show();
}
if (item.message == "hidebumperpay") {
$("#bumpercarsbuyshow").hide();
}
if (item.message == "hidebumpercars") {
$("#bumpercarmainshow").hide();
}
if (item.message == "hideferris") {
$("#ferrisshow").hide();
}
if (item.message == "hideparkbuy") {
$("#parkbuyshow").hide();
}
if (item.message == "hideiteminhand") {
$("#iteminhandshow").hide();
}
if (item.message == "hideattraction") {
$("#attractionshow").hide();
}
if (item.message == "changeattractionstatus") {
if(item.attractionhandler == 1) {
document.getElementById(item.attractionstatusname).checked = true;
} else {
document.getElementById(item.attractionstatusname).checked = false;
}
}
if (item.message == "hidemanagmentmenu") {
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
}
if (item.message == "hideshooter") {
$("#shootershow").hide();
}
if (item.message == "hideticket") {
$("#attractionbuyticketshow").hide();
}
if (item.message == "hideattractioncontrol") {
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
}
if (item.message == "hide") {
$("#infonotifyshow").hide();
}
if (item.message == "updateinterfacedata") {
themeparkresourcename = item.themeparkresourcenamedata;
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;
}
document.onkeyup = function (data) {
if (open) {
if (data.which == 27) {
$.post('https://'+themeparkresourcename+'/closemanagment', JSON.stringify({}));
}
}
};
});
function bumpercarstimesliderupdate(e) {
document.getElementById("bumpercarstimeminutedata").innerHTML = e.value;
$.post('https://'+themeparkresourcename+'/calculatepricebumper', JSON.stringify({
bumperselectedminutes: e.value
}));
}
$(".bumpercarsbuybutton").click(function () {
$.post('https://'+themeparkresourcename+'/payforbumper', JSON.stringify({}));
});
$(".buttonparkbuy").click(function () {
$.post('https://'+themeparkresourcename+'/buythemepark', JSON.stringify({}));
});
$(".parkmanagmentwithdrawbutton").click(function () {
$.post('https://'+themeparkresourcename+'/withdrawthemepark', JSON.stringify({}));
});
$(".parkmanagmentownershipsellbutton").click(function () {
$.post('https://'+themeparkresourcename+'/sellthemepark', JSON.stringify({}));
});
$(".parkmanagmentownershipstransferbutton").click(function () {
$.post('https://'+themeparkresourcename+'/transferthemepark', JSON.stringify({}));
});
$(".parkmanagmentsettingsbutton").click(function () {
$.post('https://'+themeparkresourcename+'/parkmanagmentsattractions', JSON.stringify({}));
});
for (let int1data = 1; int1data < 20; int1data++) {
$("#parkattractionopendata" + int1data + "").click(function () {
if (document.getElementById("parkattractionopendata" + int1data + "").checked == false){
document.getElementById("parkattractionopendata" + int1data + "").checked = false;
$.post('https://'+themeparkresourcename+'/updateattractionstatus', JSON.stringify({
attractionid: int1data,
attractionstatushandler: false
}));
}
else {
document.getElementById("parkattractionopendata" + int1data + "").checked = true;
$.post('https://'+themeparkresourcename+'/updateattractionstatus', JSON.stringify({
attractionid: int1data,
attractionstatushandler: true
}));
}
});
}
$('#color-picker').spectrum({
type: "newtype",
preferredFormat: "rgb",
showInput: true,
showPalette: false,
allowEmpty:false,
showAlpha: false,
showButtons: false,
change: function(){
var colorhexdata = $("#color-picker").spectrum("get");
var colorrgbdata = colorhexdata.toRgb()
$.post('https://'+themeparkresourcename+'/updatesmokecolor', JSON.stringify({
colorR: colorrgbdata.r,
colorG: colorrgbdata.g,
colorB: colorrgbdata.b,
}));
},
});
$(".attractionbuyticketbutton").click(function () {
$.post('https://'+themeparkresourcename+'/buythemeparkticket', JSON.stringify({}));
});
$(".buttonsmokestart").click(function () {
$.post('https://'+themeparkresourcename+'/smokecontrol', JSON.stringify({
smokehandler: true
}));
});
$(".buttonsmokestop").click(function () {
$.post('https://'+themeparkresourcename+'/smokecontrol', JSON.stringify({
smokehandler: false
}));
});
$(".buttonmusicplay").click(function () {
$("#musicinputdata").val("");
$("#attractionurlshow").show();
});
$(".buttonmusicstop").click(function () {
$.post('https://'+themeparkresourcename+'/stopmusic', JSON.stringify({}));
});
$(".buttonstartattraction").click(function () {
$.post('https://'+themeparkresourcename+'/startattraction', JSON.stringify({}));
});
$(".buttonplaynewmusic").click(function () {
$("#attractionurlshow").hide();
$.post('https://'+themeparkresourcename+'/attractionnewurl', JSON.stringify({
musicurldata: $("#musicinputdata").val().trim()
}));
});
function volumechange(e) {
$.post('https://'+themeparkresourcename+'/volumechange', JSON.stringify({
volumedata: e.value
}));
}

View file

@ -0,0 +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);
}
});

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,315 @@
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.1.1/howler.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="https://kit-pro.fontawesome.com/releases/v6.2.0/css/pro.min.css">
<link rel="stylesheet" href="styles.css" type="text/css">
<script src="https://code.jquery.com/jquery-3.6.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://s.ytimg.com/yts/jsbin/www-widgetapi-vflJJaNgk/www-widgetapi.js"></script>
<script src="https://www.youtube.com/iframe_api"></script>
<script src="https://cdn.jsdelivr.net/npm/spectrum-colorpicker2/dist/spectrum.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/spectrum-colorpicker2/dist/spectrum.min.css">
</head>
<body>
<div class="full-screen">
<div class="infonotify-container" id="infonotifyshow">
<div class="infonotifytext">Text</div>
</div>
<div class="bumpercarsbuy-container" id="bumpercarsbuyshow">
<img class="closebumpercarsbuy" src="img/close.png" style="width:25px;height:25px" alt="closebumpercarsbuy"/>
<div class="logobumpercars">
<img id="logobumpercars" src="img/bumpercarslogo.png" style="width:220px;height:120px" alt="Logo">
</div>
<div class="bumpercarstimelengthtextmain">length of ride</div>
<div class="bumpercarstimesliderline">
</div>
<input type="range" min="1" max="15" value="1" class="bumpercarstimeslider" id="bumpercarstimesliderdata" onchange="bumpercarstimesliderupdate(this)">
<div class="bumpercarstimelengthtext"><span id="bumpercarstimeminutedata">1</span> minutes</div>
<div class="bumpercarspricetext">Current price<br>$<span id="bumpercarspricedata">100</span></div>
<div class="bumpercarsbuybutton">Pay for a ride</div>
</div>
<div class="bumpercarmain-container" id="bumpercarmainshow">
<div class="bumpercartimetext" id="bumpercartimetextshow"><span id="bumpercartimetextdata">100</span> seconds remaining</div>
<div class="bumpercarleavetext">Press <span id="bumpercarleavetextkey">E</span> to exit the bumper car</div>
</div>
<div class="ferrismain-container" id="ferrisshow">
<div class="ferrisanimtext">Press <span id="ferrisanimtextkey">E</span> to change the animation</div>
<div class="ferrisleavetext">Press <span id="ferrisleavetextkey">F</span> to exit the ferris wheel</div>
</div>
<div class="shooter-container" id="shootershow">
<div class="shootershottext">Shoots: <span id="shootershottextdata">0</span></div>
<div class="shootermissestext">Misses: <span id="shootermissestextdata">0</span></div>
<div class="shootertimetext"><span id="shootertimetextdata">0</span> seconds left</div>
<div class="shootertexthit" id="shootertexthitshow">You <span id="shootertexthitdata">hit</span> target</div>
</div>
<div class="shooterend-container" id="shooterendshow">
<div class="shooterendmaintext">Shooting Range</div>
<div class="shooterendtext">Game Over</div>
<div class="shooterendshootstext">Shoots: <span id="shooterendshootstextdata">0</span></div>
<div class="shooterendmissestext">Misses: <span id="shooterendmissestextdata">0</span></div>
</div>
<div class="parkbuy-container" id="parkbuyshow">
<div class="headerparkbuy">
<div class="headerparkbuytext">THEME PARK</div>
<img class="closeparkbuy" src="img/close.png" style="width:25px;height:25px"/>
</div>
<div class="parkbuytext">THEME PARK PRICE</div>
<div class="parkbuytextprice">$<span id="parkbuytextpricedata">100</span></div>
<div class="buttonparkbuy">BUY THEME PARK</div>
</div>
<div class="parkmanagmentmain-container" id="parkmanagmentmainshow">
<div class="parkmanagmentmaincontainer">
<div id="showownerparkmain">
<div class="parkmanagmentownershiptext">Theme Park OWNERSHIP</div>
<div class="parkmanagmentownershiptextinfo">Setting up ownership of your theme park</div>
</div>
<div id="showsellpark">
<div class="parkmanagmentownershipsellbutton">SELL PARK</div>
</div>
<div id="showtransferpark">
<div class="parkmanagmentownershipstransferbutton">TRANSFER PARK</div>
</div>
<div class="parkmanagmentsettingstext">Theme Park SETTINGS</div>
<div class="parkmanagmentsettingstextinfo">Setting up your theme park attraction</div>
<div class="parkmanagmentsettingsbutton">Settings</div>
<div class="parkmanagmentwithdrawtext">Theme Park Balance</div>
<div class="parkmanagmentwithdrawmoneytext">$<span id="parkmanagmentwithdrawmoneytextdata">100</span></div>
<div class="parkmanagmentwithdrawbutton">Withdraw</div>
</div>
</div>
<div class="parkmanagment-container" id="parkmanagmentshow">
<div class="parkattraction" id="parkmanagmentattraction1">
<div class="parkattractionname">G-Force</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata1">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction2">
<div class="parkattractionname">Top Scan</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata2">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction3">
<div class="parkattractionname">Roller coaster</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata3">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction4">
<div class="parkattractionname">Shooting Range</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata4">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction5">
<div class="parkattractionname">Shooting Range</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata5">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction6">
<div class="parkattractionname">Bumper Cars</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata6">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction7">
<div class="parkattractionname">Vortex</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata7">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction8">
<div class="parkattractionname">Ferris wheel</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata8">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction9">
<div class="parkattractionname">Detonator</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata9">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction10">
<div class="parkattractionname">Boat</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata10">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<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"/>
<div class="logobuyticket">
<img id="logobuyticket" src="img/pierlogo.png" style="width:350px;height:180px" alt="Logo">
</div>
<div class="attractionbuytickettextpricemain">Ticket Price</div>
<div class="attractionbuytickettextprice">$<span id="attractionpricedata">1000</span></div>
<div class="attractionbuyticketbutton">
<div class="attractionbuytickettext">BUY TICKET</div>
</div>
</div>
<div class="iteminhand-container" id="iteminhandshow">
<div class="iteminhandtextgive">Press <span id="iteminhandtextgivekey">F</span> to throw the item</div>
<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>
<div class="parkattraction-container" id="parkattractionshow">
<img class="closeparkattractionmenu" src="img/close.png" style="width:25px;height:25px" alt="closeattractionmenu"/>
<div class="parkattractioncontroltext">VORTEX</div>
<div id="parkshowmusic">
<div class="parkattractioncontrolmusictext">CURRENT MUSIC</div>
<div class="parkattractioncontrolmusictextdata"></div>
<div class="parkattractioncontrolmusicvolumetext">VOLUME</div>
<div class="volumeslidercontainer">
<div class="volumeicon1"><i class="fas fa-volume-down" id="pinkcolortv"></i></div>
<div class="volumeicon2"><i class="fas fa-volume-up" id="pinkcolortv"></i></div>
<div class="volumeslideline">
</div>
<input type="range" min="1" max="100" value="100" class="volumeslider" id="volumesliderdata" onchange="volumechange(this)">
</div>
<div class="buttonmusicplay">PLAY MUSIC</div>
<div class="buttonmusicstop">STOP MUSIC</div>
</div>
<div id="parkshowsmoke">
<div class="parkattractioncontrolsmokecolortext">SMOKE COLOR</div>
<div class="colorchanger">
<input class="pickercolor" id="color-picker" value="#ff66ff"/>
</div>
<div class="buttonsmokestart">START SMOKE</div>
<div class="buttonsmokestop">STOP SMOKE</div>
</div>
<div id="parkshowturn">
<div class="buttonstartattraction">START ATTRACTION</div>
</div>
</div>
<div class="attractionurl-container" id="attractionurlshow">
<img class="closemusicurl" src="img/close.png" style="width:22px;height:20px" alt="closemusicmenu"/>
<input id="musicinputdata" class="musicinput" placeholder="MUSIC URL" type="text">
<div class="musicurlmaintext">ATTRACTION MUSIC</div>
<div class="buttonplaynewmusic">PLAY MUSIC</div>
</div>
</div>
<script src="jquery.connections.js" type="text/javascript"></script>
<script src="scripts.js" type="text/javascript"></script>
<script src="sound.js" type="text/javascript"></script>
<script src="debounce.min.js" type="text/javascript"></script>
</body>

View file

@ -0,0 +1,591 @@
Language = {
["English"] = {
["pressforuseseat"] = "Press ["..Config.ThemeParkSeatKey.."] for use seat",
["pressforuseseatinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> for use seat",
["pressforuseseatinteractclassic"] = "Press ~INPUT_CONTEXT~ for use seat",
["bindgforceseatuse"] = "GFORCE Use",
["bindtopscanseatuse"] = "Top Scan Use",
["bindvortexseatuse"] = "Vortex Use",
["binddetonatorseatuse"] = "Detonator Use",
["bindboatseatuse"] = "Boat Use",
["pressforbuyticket"] = "Press ["..Config.ThemeParkTicketMachineSettings.usekey.."] for buy ticket",
["pressforbuyticketinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> buy ticket",
["pressforbuyticketinteractclassic"] = "Press ~INPUT_CONTEXT~ buy ticket",
["bindbuyticket"] = "Buy Ticket",
["bumpermaxplayers"] = "There is already a maximum number of players in bumper cars",
["bumperticketpurchased"] = "You purchased ticket for bumper cars",
["pressforusebumper"] = "Press ["..Config.AttractionsSettings.bumpercars.bumperusekey.."] for use seat",
["pressforusebumperinteract"] = "Press <span id='infobindcolor'>"..Config.AttractionsSettings.bumpercars.bumperusekey.."</span> for use seat",
["pressforusebumperinteractclassic"] = "Press ~INPUT_CONTEXT~ for use seat",
["bindusebumper"] = "Use Bumper",
["bindleavebumper"] = "Leave Bumper",
["bumperridend"] = "Your ride is over",
["bindferrisseatuse"] = "Use Ferris Wheel",
["bindferrisanimchange"] = "Change Ferris Wheel Anim",
["bindferrisexit"] = "Exit Ferris Wheel",
["ferrismoving"] = "You can't get on since the wheel hasn't stopped yet",
["pressforuseticketferris"] = "Press ["..Config.ThemeParkSeatKey.."] for use seat",
["pressforuseticketferrisinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> use seat",
["pressforuseticketferrisinteractclassic"] = "Press ~INPUT_CONTEXT~ use seat",
["binduseferris"] = "Buy Ticket",
["prizerewardmoney"] = "You won $%s from Shooting Range",
["pressforuseshootingrange"] = "Press ["..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."] for play game",
["pressforuseshootingrangeinteract"] = "Press <span id='infobindcolor'>"..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."</span> for play game",
["pressforuseshootingrangeinteractclassic"] = "Press ~INPUT_CONTEXT~ for play game",
["playshootingrange"] = "Play Shooting Range",
["pressforbuythemepark"] = "Press ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] for open buy menu",
["pressforbuythemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> for open buy menu",
["pressforbuythemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for open buy menu",
["pressformanagmentthemepark"] = "Press ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] for open managment",
["pressformanagmentthemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> for open managment",
["pressformanagmentthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for open managment",
["openthemeparkmanagment"] = "Theme Park Managment Menu",
["nomoneyenoughthemeparkbuy"] = "You dont have enough money for buy this theme park",
["youboughtthemepark"] = "You bought theme park for $%s",
["nomoneywithdrawthemepark"] = "You have no money to withdraw in your theme park",
["youwithdrawthemepark"] = "You withdraw $%s from theme park",
["noplayernearbymanagment"] = "No player nearby for theme park",
["youtransferthemepark"] = "You transfer your theme park to nearby player",
["themeparkransferredto"] = "Player has transferred theme park to you",
["yousoldthemepark"] = "You sold your theme park for $%s",
["attractionclosed"] = "This attraction is closed.",
["pressforbuyticketthemepark"] = "Press ["..Config.ThemeParkTicketMachineSettings.usekey.."] for buy ticket",
["pressforbuyticketthemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> for buy ticket",
["pressforbuyticketthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for buy ticket",
["openthemeparkticket"] = "Theme Park Ticket Menu",
["nomoneyenoughthemeparkattraction"] = "You dont have $%s to pay for a ticket for this attraction",
["ticketthemeparkbought"] = "You paid $%s for a ticket for an attraction",
["noplayernearbyitem"] = "No player nearby for give item",
["thisplayerhaveitem"] = "This player already has an item in hand",
["giveplayeritem"] = "Give item",
["throwitem"] = "Throw item",
["pressforbuyitemthemepark"] = "Press ["..Config.ThemeParkItemsSettings.buykey.."] for buy %s",
["pressforbuyitemthemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkItemsSettings.buykey.."</span> for buy %s",
["pressforbuyitemthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for buy %s",
["hotdog"] = "Hot dog",
["popcorn"] = "Popcorn",
["cotton"] = "Cotton Candy",
["balloon"] = "Balloon",
["burger"] = "Burger",
["buyitem"] = "Buy item",
["youhaveitemalready"] = "You already have an item in your hand",
["nomoneyenoughthemeparkitem"] = "You dont have $%s to pay for a %s",
["itemthemeparkbought"] = "You paid $%s for a %s",
["iteminhand"] = "You cannot enter the attraction because you have an item in your hand",
["bindrollercoasterseatuse"] = "Rollercoaster Use",
["bindrollercoasteranimchange"] = "Change Rollercoaster Anim",
["bindattractionanimchange"] = "Change Attraction Anim",
["bindattractionexitkey"] = "Exit Attraction",
["pressforcontrolthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for control attraction",
["pressforcontrolthemepark"] = "Press ["..Config.ThemeParkControlMachineSettings.usekey.."] for control attraction",
["pressforcontrolthemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkControlMachineSettings.usekey.."</span> for control attraction",
["controlattraction"] = "Control Attraction",
["notsupported"] = "This url is not supported",
["youtubeblock"] = "YouTube has banned this song from being played on the radio",
["attractioncontrolled"] = "Someone already controls this attraction",
["nopermission"] = "You are not authorised to operate the attractions",
["youstartedattraction"] = "You turned on the %s attraction",
["attractioninprogress"] = "Attraction is already started",
["inprogress"] = "Attraction is already moving",
["themeparkpassactivated"] = "You used a Theme Park Pass, which expires in %s minutes",
["themeparkpassexpired"] = "Your Theme Park Pass has expired",
["themeparkfall"] = "You fell off the attraction",
["themeparkallowed"] = "You allowed access to the Theme Park attractions",
["themeparkblocked"] = "You blocked access to the Theme Park attractions",
["bindseatuse"] = "Attraction Use",
["leaveattraciton"] = "Attraction Leave",
["attractioninprogress"] = "Attraction is already started",
["attractioncamera"] = "Change camera",
},
["German"] = {
["pressforuseseat"] = "Drücke ["..Config.ThemeParkSeatKey.."] um dich zu setzen",
["pressforuseseatinteract"] = "Drücke <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> um dich zu setzen",
["pressforuseseatinteractclassic"] = "Drücke ~INPUT_CONTEXT~ um dich zu setzen",
["bindgforceseatuse"] = "GFORCE Benutzen",
["bindtopscanseatuse"] = "Top Scan Benutzen",
["bindvortexseatuse"] = "Vortex Benutzen",
["binddetonatorseatuse"] = "Freifallturm Benutzen",
["bindboatseatuse"] = "Schiffschaukel Benutzen",
["pressforbuyticket"] = "Drücke ["..Config.ThemeParkTicketMachineSettings.usekey.."] um ein Ticket zu kaufen",
["pressforbuyticketinteract"] = "Drücke <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> um ein Ticket für den Autoscooter zu kaufen",
["pressforbuyticketinteractclassic"] = "Drücke ~INPUT_CONTEXT~ Um ein Ticket zu kaufen",
["bindbuyticket"] = "Ticket kaufen",
["bumpermaxplayers"] = "Der Autoscooter ist Bereits voll besetzt",
["bumperticketpurchased"] = "Du hast ein Ticket für den Autoscooter Gekauft",
["pressforusebumper"] = "Drücke ["..Config.AttractionsSettings.bumpercars.bumperusekey.."] um dich zu setzen",
["pressforusebumperinteract"] = "Drücke <span id='infobindcolor'>"..Config.AttractionsSettings.bumpercars.bumperusekey.."</span> um dich zu setzen",
["pressforusebumperinteractclassic"] = "Drücke ~INPUT_CONTEXT~ um dich zu setzen",
["bindusebumper"] = "Autoscooter nutzen",
["bindleavebumper"] = "Autoscooter verlassen",
["bumperridend"] = "Deine Fahrt ist vorbei",
["bindferrisseatuse"] = "Riesenrad benutzen",
["bindferrisanimchange"] = "Riesenrad Animation wechseln",
["bindferrisexit"] = "Riesenrad verlassen",
["ferrismoving"] = "Das Riesenrad ist noch nicht stehengeblieben warte etwas",
["pressforuseticketferris"] = "Drücke ["..Config.ThemeParkSeatKey.."] um dich zu setzen",
["pressforuseticketferrisinteract"] = "Drücke <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> um dich zu setzen",
["pressforuseticketferrisinteractclassic"] = "Drücke ~INPUT_CONTEXT~ um dich zu setzen",
["binduseferris"] = "Ticket kaufen",
["prizerewardmoney"] = "Du hast %s$ vom Schießstand gewonnen",
["pressforuseshootingrange"] = "Drücke ["..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."] um eine runde zu spielen",
["pressforuseshootingrangeinteract"] = "Drücke <span id='infobindcolor'>"..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."</span> um eine runde zu spielen",
["pressforuseshootingrangeinteractclassic"] = "Drücke ~INPUT_CONTEXT~ um eine runde zu spielen",
["playshootingrange"] = "Schießstand Spielen",
["pressforbuythemepark"] = "Drücke ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] um das Kaufmenü zu öffnen",
["pressforbuythemeparkinteract"] = "Drücken <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> um das Kaufmenü zu öffnen",
["pressforbuythemeparkinteractclassic"] = "Drücken ~INPUT_CONTEXT~ um das Kaufmenü zu öffnen",
["pressformanagmentthemepark"] = "Drücke ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] um auf das Parkmanagement zuzugreifen",
["pressformanagmentthemeparkinteract"] = "Drücke <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> um auf das Parkmanagement zuzugreifen",
["pressformanagmentthemeparkinteractclassic"] = "Drücke ~INPUT_CONTEXT~ um auf das Parkmanagement zuzugreifen",
["openthemeparkmanagment"] = "Freizeitpark Managementmenü",
["nomoneyenoughthemeparkbuy"] = "Du hast nicht genug Geld um diesen Freizeitpark zu kaufen",
["youboughtthemepark"] = "Du hast den Freizeitpark für %s$ gekauft",
["nomoneywithdrawthemepark"] = "You have no money to withdraw in your theme park",
["youwithdrawthemepark"] = "Du hast %s$ vom Firmenkonto abgebucht",
["noplayernearbymanagment"] = "Es ist kein Spieler in der Nähe",
["youtransferthemepark"] = "Du hast den Park zu dem Spieler in deiner nähe übergeben",
["themeparkransferredto"] = "Ein Spieler hat dir den Freizeitpark gegeben",
["yousoldthemepark"] = "Du hast deinen Freizeitpark für %s$ verkauft",
["attractionclosed"] = "Diese Attraktion ist Geschlossen.",
["pressforbuyticketthemepark"] = "Drücke ["..Config.ThemeParkTicketMachineSettings.usekey.."] um ein Ticket zu kaufen",
["pressforbuyticketthemeparkinteract"] = "Drücke <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> um ein Ticket zu kaufen",
["pressforbuyticketthemeparkinteractclassic"] = "Drücke ~INPUT_CONTEXT~ um ein Ticket zu kaufen",
["openthemeparkticket"] = "Freizeitpark Ticket Menü",
["nomoneyenoughthemeparkattraction"] = "Du fehlen $%s um dir ein Ticket für diese Attraktion zu kaufen",
["ticketthemeparkbought"] = "Du hast $%s für ein Ticket bezahlt",
["noplayernearbyitem"] = "Kein Spieler in der nähe",
["thisplayerhaveitem"] = "Diese Person hat dieses Item schon",
["giveplayeritem"] = "Item Geben",
["throwitem"] = "Item Wegwerfen",
["pressforbuyitemthemepark"] = "Drücke ["..Config.ThemeParkItemsSettings.buykey.."] für %s Kaufen",
["pressforbuyitemthemeparkinteract"] = "Drücke <span id='infobindcolor'>"..Config.ThemeParkItemsSettings.buykey.."</span> für %s Kaufen",
["pressforbuyitemthemeparkinteractclassic"] = "Drücke ~INPUT_CONTEXT~ für %s Kaufen",
["hotdog"] = "Hot dog",
["popcorn"] = "Popcorn",
["cotton"] = "Zuckerwatte",
["balloon"] = "Ballon",
["burger"] = "Burger",
["buyitem"] = "Item kaufen",
["youhaveitemalready"] = "Du hast dieses item schon in deiner Hand !",
["nomoneyenoughthemeparkitem"] = "Du hast keine $%s um ein %s zu kaufen",
["itemthemeparkbought"] = "Du hast $%s für ein %s bezahlt",
["iteminhand"] = "Du kannst diese Attraktion nicht betreten da du ein Item in der hand Hast",
["bindrollercoasterseatuse"] = "Achterbahn fahren",
["bindrollercoasteranimchange"] = "Achterbahn Animation wechseln",
["bindattractionanimchange"] = "Attraktion Animation wechseln",
["bindattractionexitkey"] = "Attraktion verlassen",
["pressforcontrolthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for control attraction",
["pressforcontrolthemepark"] = "Press ["..Config.ThemeParkControlMachineSettings.usekey.."] for control attraction",
["pressforcontrolthemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkControlMachineSettings.usekey.."</span> for control attraction",
["controlattraction"] = "Control Attraction",
["notsupported"] = "This url is not supported",
["youtubeblock"] = "YouTube has banned this song from being played on the radio",
["attractioncontrolled"] = "Someone already controls this attraction",
["nopermission"] = "You are not authorised to operate the attractions",
["youstartedattraction"] = "You turned on the %s attraction",
["attractioninprogress"] = "Attraction is already started",
["inprogress"] = "Attraction is already moving",
["themeparkpassactivated"] = "You used a Theme Park Pass, which expires in %s minutes",
["themeparkpassexpired"] = "Your Theme Park Pass has expired",
["themeparkfall"] = "You fell off the attraction",
["themeparkallowed"] = "You allowed access to the Theme Park attractions",
["themeparkblocked"] = "You blocked access to the Theme Park attractions",
["bindseatuse"] = "Attraction Use",
["leaveattraciton"] = "Attraction Leave",
["attractioninprogress"] = "Attraction is already started",
["attractioncamera"] = "Change camera",
},
["French"] = {
["pressforuseseat"] = "Appuyez ["..Config.ThemeParkSeatKey.."] pour vous asseoir",
["pressforuseseatinteract"] = "Appuyez <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> pour vous asseoir",
["pressforuseseatinteractclassic"] = "Appuyez ~INPUT_CONTEXT~ pour vous asseoir",
["bindgforceseatuse"] = "GFORCE Use",
["bindtopscanseatuse"] = "Top Scan Use",
["bindvortexseatuse"] = "Vortex Use",
["binddetonatorseatuse"] = "Detonator Use",
["bindboatseatuse"] = "Boat Use",
["pressforbuyticket"] = "Appuyez ["..Config.ThemeParkTicketMachineSettings.usekey.."] pour acheter un billet",
["pressforbuyticketinteract"] = "Appuyez <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> pour acheter un billet",
["pressforbuyticketinteractclassic"] = "Appuyez ~INPUT_CONTEXT~ pour acheter un billet",
["bindbuyticket"] = "Acheter un billet",
["bumpermaxplayers"] = "Il y a déjà 10 personnes dans les autos-tamponneuses",
["bumperticketpurchased"] = "Vous avez acheter un billet pour les autos-tamponneuses",
["pressforusebumper"] = "Appuyez ["..Config.AttractionsSettings.bumpercars.bumperusekey.."] pour vous asseoir",
["pressforusebumperinteract"] = "Appuyez <span id='infobindcolor'>"..Config.AttractionsSettings.bumpercars.bumperusekey.."</span> pour vous asseoir",
["pressforusebumperinteractclassic"] = "Appuyez ~INPUT_CONTEXT~ pour vous asseoir",
["bindusebumper"] = "Utilisez voiture",
["bindleavebumper"] = "Quitter voiture",
["bumperridend"] = "Le manège est temriné",
["bindferrisseatuse"] = "Entrer dans la grande roue",
["bindferrisanimchange"] = "Changer l'animation de vos mains",
["bindferrisexit"] = "Quitter la grande roue",
["ferrismoving"] = "Vous ne pouvez pas embarquer tant que la roue n'est pas immobile",
["pressforuseticketferris"] = "Appuyez ["..Config.ThemeParkSeatKey.."] pour vous asseoir",
["pressforuseticketferrisinteract"] = "Appuyez <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> pour vous asseoir",
["pressforuseticketferrisinteractclassic"] = "Appuyez ~INPUT_CONTEXT~ pour vous asseoir",
["binduseferris"] = "Acheter un billet",
["prizerewardmoney"] = "Vous avez gagné %s au concours de tir",
["pressforuseshootingrange"] = "Appuyez ["..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."] pour jouer une partie",
["pressforuseshootingrangeinteract"] = "Appuyez <span id='infobindcolor'>"..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."</span> pour jouer une partie",
["pressforuseshootingrangeinteractclassic"] = "Appuyez ~INPUT_CONTEXT~ pour jouer une partie",
["playshootingrange"] = "Jouer au jeu de tir",
["pressforbuythemepark"] = "Appuyez ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] pour ouvrir le menu",
["pressforbuythemeparkinteract"] = "Appuyez <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> pour ouvrir le menu",
["pressforbuythemeparkinteractclassic"] = "Appuyez ~INPUT_CONTEXT~ pour ouvrir le menu",
["pressformanagmentthemepark"] = "Appuyez ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] pour gérer le parc",
["pressformanagmentthemeparkinteract"] = "Appuyez <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> pour gérer le parc",
["pressformanagmentthemeparkinteractclassic"] = "Appuyez ~INPUT_CONTEXT~ pour gérer le parc",
["openthemeparkmanagment"] = "Menu de gestion pour le parc",
["nomoneyenoughthemeparkbuy"] = "Vous n'avez pas assez d'argent pour acheter le parc",
["youboughtthemepark"] = "Vous avez acheter le parc pour %s$",
["nomoneywithdrawthemepark"] = "Vous avez retirer de l'argent du parc",
["youwithdrawthemepark"] = "Vous avez retiré %s$ de votre parc",
["noplayernearbymanagment"] = "Aucun citoyen autour de vous",
["youtransferthemepark"] = "Vous avez transféré le parc au citoyen le plus près de vous",
["themeparkransferredto"] = "Le citoyen vous a transféré le parc",
["yousoldthemepark"] = "Vous avez vendu le parc pour %s$",
["attractionclosed"] = "Cet attraction est fermé",
["pressforbuyticketthemepark"] = "Appuyez ["..Config.ThemeParkTicketMachineSettings.usekey.."] pour acheter un billet",
["pressforbuyticketthemeparkinteract"] = "Appuyez <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> pour acheter un billet",
["pressforbuyticketthemeparkinteractclassic"] = "Appuyez ~INPUT_CONTEXT~ pour acheter un billet",
["openthemeparkticket"] = "Tickets pour le parc d'attraction",
["nomoneyenoughthemeparkattraction"] = "Vous n'avez pas %s$ pour acheter un billet pour cet attraction",
["ticketthemeparkbought"] = "Vous avez payé %s$ pour un ticket pour cet attraction",
["noplayernearbyitem"] = "Aucun citoyen près de vous",
["thisplayerhaveitem"] = "Le citoyen près de vous a déjà quelque chose dans les mains",
["giveplayeritem"] = "Donner un objet",
["throwitem"] = "Lancer un objet",
["pressforbuyitemthemepark"] = "Appuyer ["..Config.ThemeParkItemsSettings.buykey.."] pour acheter %s",
["pressforbuyitemthemeparkinteract"] = "Appuyer <span id='infobindcolor'>"..Config.ThemeParkItemsSettings.buykey.."</span> pour acheter %s",
["pressforbuyitemthemeparkinteractclassic"] = "Appuyer ~INPUT_CONTEXT~ pour acheter %s",
["hotdog"] = "Hot dog",
["popcorn"] = "Popcorn",
["cotton"] = "Barbe à papa",
["balloon"] = "Balon",
["burger"] = "Hamburger",
["buyitem"] = "Acheter",
["youhaveitemalready"] = "Vous avez déjà un objet dans les mains",
["nomoneyenoughthemeparkitem"] = "Vous n'avez pas %s$ pour acheter %s",
["itemthemeparkbought"] = "Vous avez payé %s$ pour un %s",
["iteminhand"] = "Vous ne pouvez pas entrer dans l'attraction parce que vous avez un item dans les mains",
["bindrollercoasterseatuse"] = "Montagne russer Use",
["bindrollercoasteranimchange"] = "Changer animation de vos mains",
["bindattractionanimchange"] = "Changer animation de vos mains",
["bindattractionexitkey"] = "Sortir de l'attraction",
["pressforcontrolthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for control attraction",
["pressforcontrolthemepark"] = "Press ["..Config.ThemeParkControlMachineSettings.usekey.."] for control attraction",
["pressforcontrolthemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkControlMachineSettings.usekey.."</span> for control attraction",
["controlattraction"] = "Control Attraction",
["notsupported"] = "This url is not supported",
["youtubeblock"] = "YouTube has banned this song from being played on the radio",
["attractioncontrolled"] = "Someone already controls this attraction",
["nopermission"] = "You are not authorised to operate the attractions",
["youstartedattraction"] = "You turned on the %s attraction",
["attractioninprogress"] = "Attraction is already started",
["inprogress"] = "Attraction is already moving",
["themeparkpassactivated"] = "You used a Theme Park Pass, which expires in %s minutes",
["themeparkpassexpired"] = "Your Theme Park Pass has expired",
["themeparkfall"] = "You fell off the attraction",
["themeparkallowed"] = "You allowed access to the Theme Park attractions",
["themeparkblocked"] = "You blocked access to the Theme Park attractions",
["bindseatuse"] = "Attraction Use",
["leaveattraciton"] = "Attraction Leave",
["attractioninprogress"] = "Attraction is already started",
["attractioncamera"] = "Change camera",
},
["Italian"] = {
["pressforuseseat"] = "Spingere ["..Config.ThemeParkSeatKey.."] per sedere",
["pressforuseseatinteract"] = "Spingere <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> per sedere",
["pressforuseseatinteractclassic"] = "Spingere ~INPUT_CONTEXT~ per sedere",
["bindgforceseatuse"] = "Usare GFORCE",
["bindtopscanseatuse"] = "Usare Top Scan",
["bindvortexseatuse"] = "Usare Vortex",
["binddetonatorseatuse"] = "Usare Detonator",
["bindboatseatuse"] = "Usare Barca ",
["pressforbuyticket"] = "Spingere ["..Config.ThemeParkTicketMachineSettings.usekey.."] per comprare ",
["pressforbuyticketinteract"] = "Spingere <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> comprare biglietto",
["pressforbuyticketinteractclassic"] = "Spingere ~INPUT_CONTEXT~ comprare biglietto",
["bindbuyticket"] = "Comprare biglietto",
["bumpermaxplayers"] = "C'è già massimo giocatori in autoscontri",
["bumperticketpurchased"] = "Hai comprato il biglietto per gli autoscontri",
["pressforusebumper"] = "Spingere ["..Config.AttractionsSettings.bumpercars.bumperusekey.."] per sedere",
["pressforusebumperinteract"] = "Spingere <span id='infobindcolor'>"..Config.AttractionsSettings.bumpercars.bumperusekey.."</span> per sedere",
["pressforusebumperinteractclassic"] = "Spingere ~INPUT_CONTEXT~ per sedere",
["bindusebumper"] = "Usare Bumper",
["bindleavebumper"] = "Lasciare Bumper",
["bumperridend"] = "La tua corsa è finita",
["bindferrisseatuse"] = "Usare Ruota panoramica",
["bindferrisanimchange"] = "Cambia l'animazione della Ruota panoramica",
["bindferrisexit"] = "Uscire Ferris Wheel",
["ferrismoving"] = "Non puoi salire perché la ruota non si è ancora fermata",
["pressforuseticketferris"] = "Spingere ["..Config.ThemeParkSeatKey.."] per sedere",
["pressforuseticketferrisinteract"] = "Spingere <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> per sedere",
["pressforuseticketferrisinteractclassic"] = "Spingere ~INPUT_CONTEXT~ per sedere",
["binduseferris"] = "Comprare biglietto",
["prizerewardmoney"] = "Hai vinto $%s dal poligono di tiro",
["pressforuseshootingrange"] = "Spingere ["..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."] per giocare",
["pressforuseshootingrangeinteract"] = "Spingere <span id='infobindcolor'>"..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."</span> per giocare",
["pressforuseshootingrangeinteractclassic"] = "Spingere ~INPUT_CONTEXT~ per giocare",
["playshootingrange"] = "Gioca al poligono di tiro",
["pressforbuythemepark"] = "Spingere ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] per aprire il menu",
["pressforbuythemeparkinteract"] = "Spingere <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> per aprire il menu",
["pressforbuythemeparkinteractclassic"] = "Spingere ~INPUT_CONTEXT~ per aprire il menu",
["pressformanagmentthemepark"] = "Spingere ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] for open managment",
["pressformanagmentthemeparkinteract"] = "Spingere <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> for open managment",
["pressformanagmentthemeparkinteractclassic"] = "Spingere ~INPUT_CONTEXT~ per la gestione aperta",
["openthemeparkmanagment"] = "Menu Gestione parchi a tema",
["nomoneyenoughthemeparkbuy"] = "Non hai abbastanza soldi per comprare questo parco a tema",
["youboughtthemepark"] = "Hai comprato un parco a tema per $%s",
["nomoneywithdrawthemepark"] = "Non avete denaro da prelevare nel vostro parco a tema",
["youwithdrawthemepark"] = "Prelevate $%s dal parco a tema",
["noplayernearbymanagment"] = "Nessun giocatore nelle vicinanze per il parco a tema",
["youtransferthemepark"] = "Trasferite il vostro parco a tema al giocatore vicino",
["themeparkransferredto"] = "Il giocatore ha trasferito il parco a tema a voi",
["yousoldthemepark"] = "Hai venduto il tuo parco a tema per $%s",
["attractionclosed"] = "Questa attrazione è chiusa.",
["pressforbuyticketthemepark"] = "Spingere ["..Config.ThemeParkTicketMachineSettings.usekey.."] for comprare biglietto",
["pressforbuyticketthemeparkinteract"] = "Spingere <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> per comprare biglietto",
["pressforbuyticketthemeparkinteractclassic"] = "Spingere ~INPUT_CONTEXT~ per comprare biglietto",
["openthemeparkticket"] = "Parco Tematico Biglietto Menu",
["nomoneyenoughthemeparkattraction"] = "Non hai $%s per comprare un biglietto per questa attrazione",
["ticketthemeparkbought"] = "Hai pagato $%s per un biglietto per un'attrazione",
["noplayernearbyitem"] = "Nessun giocatore nelle vicinanze per dare oggetto",
["thisplayerhaveitem"] = "Questo giocatore ha già un oggetto in mano",
["giveplayeritem"] = "Dare oggetto",
["throwitem"] = "Lancia oggetto",
["pressforbuyitemthemepark"] = "Spingere ["..Config.ThemeParkItemsSettings.buykey.."] per comprare %s",
["pressforbuyitemthemeparkinteract"] = "Spingere <span id='infobindcolor'>"..Config.ThemeParkItemsSettings.buykey.."</span> per comprare %s",
["pressforbuyitemthemeparkinteractclassic"] = "Spingere ~INPUT_CONTEXT~ per comprare %s",
["hotdog"] = "Hot dog",
["popcorn"] = "Popcorn",
["cotton"] = "Zucchero filato",
["balloon"] = "Palloncino",
["burger"] = "Burger",
["buyitem"] = "comprare oggetto",
["youhaveitemalready"] = "Hai già un oggetto in mano",
["nomoneyenoughthemeparkitem"] = "Non hai $%s per pagare %s",
["itemthemeparkbought"] = "Hai pagato $%s per %s",
["iteminhand"] = "Non puoi entrare nell'attrazione perché hai un oggetto in mano",
["bindrollercoasterseatuse"] = "Usare montagne russe",
["bindrollercoasteranimchange"] = "Cambia l'animazione delle montagne russe",
["bindattractionanimchange"] = "Cambia l'animazione dell'attrazione",
["bindattractionexitkey"] = "Uscire Attraction",
["pressforcontrolthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for control attraction",
["pressforcontrolthemepark"] = "Press ["..Config.ThemeParkControlMachineSettings.usekey.."] for control attraction",
["pressforcontrolthemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkControlMachineSettings.usekey.."</span> for control attraction",
["controlattraction"] = "Control Attraction",
["notsupported"] = "This url is not supported",
["youtubeblock"] = "YouTube has banned this song from being played on the radio",
["attractioncontrolled"] = "Someone already controls this attraction",
["nopermission"] = "You are not authorised to operate the attractions",
["youstartedattraction"] = "You turned on the %s attraction",
["attractioninprogress"] = "Attraction is already started",
["inprogress"] = "Attraction is already moving",
["themeparkpassactivated"] = "You used a Theme Park Pass, which expires in %s minutes",
["themeparkpassexpired"] = "Your Theme Park Pass has expired",
["themeparkfall"] = "You fell off the attraction",
["themeparkallowed"] = "You allowed access to the Theme Park attractions",
["themeparkblocked"] = "You blocked access to the Theme Park attractions",
["bindseatuse"] = "Attraction Use",
["leaveattraciton"] = "Attraction Leave",
["attractioninprogress"] = "Attraction is already started",
["attractioncamera"] = "Change camera",
},
["Spanish"] = {
["pressforuseseat"] = "Presiona ["..Config.ThemeParkSeatKey.."] para usar el asiento",
["pressforuseseatinteract"] = "Presiona <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> para usar el asiento",
["pressforuseseatinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para usar el asiento",
["bindgforceseatuse"] = "GFORCE Usar",
["bindtopscanseatuse"] = "Usar Top Scan",
["bindvortexseatuse"] = "Usar Vortex",
["binddetonatorseatuse"] = "Usar Detonator",
["bindboatseatuse"] = "Usar Boat",
["pressforbuyticket"] = "Presiona ["..Config.ThemeParkTicketMachineSettings.usekey.."] para comprar un ticket",
["pressforbuyticketinteract"] = "Presiona <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> para comprar un ticket",
["pressforbuyticketinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para comprar un ticket",
["bindbuyticket"] = "Comprar ticket",
["bumpermaxplayers"] = "Ya hay un número máximo de jugadores en los coches de choque",
["bumperticketpurchased"] = "Has comprado un ticket para los coches de choque",
["pressforusebumper"] = "Presiona ["..Config.AttractionsSettings.bumpercars.bumperusekey.."] para usar el asiento",
["pressforusebumperinteract"] = "Presiona <span id='infobindcolor'>"..Config.AttractionsSettings.bumpercars.bumperusekey.."</span> para usar el asiento",
["pressforusebumperinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para usar el asiento",
["bindusebumper"] = "Usar Bumper",
["bindleavebumper"] = "Dejar Bumper",
["bumperridend"] = "Tu viaje se ha acabado",
["bindferrisseatuse"] = "Usar noria",
["bindferrisanimchange"] = "Cambiar la animación Ferris Wheel",
["bindferrisexit"] = "Salir del Ferris Wheel",
["ferrismoving"] = "No puedes montarte en la noria hasta que no pare",
["pressforuseticketferris"] = "Presiona ["..Config.ThemeParkSeatKey.."] para usar el asiento",
["pressforuseticketferrisinteract"] = "Presiona <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> para usar el asiento",
["pressforuseticketferrisinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para usar el asiento",
["binduseferris"] = "Comprar ticket",
["prizerewardmoney"] = "Has ganado $%s en el campo de tiro",
["pressforuseshootingrange"] = "Presiona ["..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."] para jugar al juego",
["pressforuseshootingrangeinteract"] = "Presiona <span id='infobindcolor'>"..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."</span> para jugar al juego",
["pressforuseshootingrangeinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para jugar al juego",
["playshootingrange"] = "Jugar al campo de tiro",
["pressforbuythemepark"] = "Presiona ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] para abrir el menú de compra",
["pressforbuythemeparkinteract"] = "Presiona <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> para abrir el menú de compra",
["pressforbuythemeparkinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para abrir el menú de compra",
["pressformanagmentthemepark"] = "Presiona ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] para abrir al menú de dirección",
["pressformanagmentthemeparkinteract"] = "Presiona <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> para abrir al menú de dirección",
["pressformanagmentthemeparkinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para abrir al menú de dirección",
["openthemeparkmanagment"] = "Menú de direccion del parque de atracciones",
["nomoneyenoughthemeparkbuy"] = "No tienes suficiente dinero para comprar el parque de atracciones",
["youboughtthemepark"] = "Has comprado el parque de atracciones por $%s",
["nomoneywithdrawthemepark"] = "No tienes suficiente dinero para sacar en tu parque de atracciones",
["youwithdrawthemepark"] = "Has sacado $%s del parque de atracciones",
["noplayernearbymanagment"] = "Ningún jugador cercano para el parque de atracciones",
["youtransferthemepark"] = "Has transferido tu parque de atracciones al jugador más cercano",
["themeparkransferredto"] = "El jugador te ha transferido el parque de atracciones",
["yousoldthemepark"] = "Has vendido tu parque de atracciones por $%s",
["attractionclosed"] = "Esta atracción está cerrada.",
["pressforbuyticketthemepark"] = "Presiona ["..Config.ThemeParkTicketMachineSettings.usekey.."] para comprar un ticket",
["pressforbuyticketthemeparkinteract"] = "Presiona <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> para comprar un ticket",
["pressforbuyticketthemeparkinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para comprar el ticket",
["openthemeparkticket"] = "Menú de tickets del parque de atraccionesTheme Park Ticket Menu",
["nomoneyenoughthemeparkattraction"] = "No tienes $%s para pagar un ticket para esta atracción",
["ticketthemeparkbought"] = "Has pagado $%s un ticket para una atracción",
["noplayernearbyitem"] = "Ningún jugador cercano para dar el ítem",
["thisplayerhaveitem"] = "Este jugador tiene ya un ítem en la mano",
["giveplayeritem"] = "Dar ítem",
["throwitem"] = "Lanzar ítem",
["pressforbuyitemthemepark"] = "Presiona ["..Config.ThemeParkItemsSettings.buykey.."] para comprar %s",
["pressforbuyitemthemeparkinteract"] = "Presiona <span id='infobindcolor'>"..Config.ThemeParkItemsSettings.buykey.."</span> para comprar %s",
["pressforbuyitemthemeparkinteractclassic"] = "Presiona ~INPUT_CONTEXT~ para comprar %s",
["hotdog"] = "Perrito caliente",
["popcorn"] = "Palomitas",
["cotton"] = "Algodón de azúcar",
["balloon"] = "Globo",
["burger"] = "Hamburguesa",
["buyitem"] = "Comprar ítem",
["youhaveitemalready"] = "Ya tienes un ítem en tu mano",
["nomoneyenoughthemeparkitem"] = "No tienes $%s para pagar un %s",
["itemthemeparkbought"] = "Has pagado $%s por %s",
["iteminhand"] = "No puedes entrar a la atracción porque tienes un ítem en tu mano",
["bindrollercoasterseatuse"] = "Usar montaña rusa",
["bindrollercoasteranimchange"] = "Cambiar animación de la montaña rusa",
["bindattractionanimchange"] = "Cambiar animación de la atracción",
["bindattractionexitkey"] = "Salir de la atracción",
["pressforcontrolthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ for control attraction",
["pressforcontrolthemepark"] = "Press ["..Config.ThemeParkControlMachineSettings.usekey.."] for control attraction",
["pressforcontrolthemeparkinteract"] = "Press <span id='infobindcolor'>"..Config.ThemeParkControlMachineSettings.usekey.."</span> for control attraction",
["controlattraction"] = "Control Attraction",
["notsupported"] = "This url is not supported",
["youtubeblock"] = "YouTube has banned this song from being played on the radio",
["attractioncontrolled"] = "Someone already controls this attraction",
["nopermission"] = "You are not authorised to operate the attractions",
["youstartedattraction"] = "You turned on the %s attraction",
["attractioninprogress"] = "Attraction is already started",
["inprogress"] = "Attraction is already moving",
["themeparkpassactivated"] = "You used a Theme Park Pass, which expires in %s minutes",
["themeparkpassexpired"] = "Your Theme Park Pass has expired",
["themeparkfall"] = "You fell off the attraction",
["themeparkallowed"] = "You allowed access to the Theme Park attractions",
["themeparkblocked"] = "You blocked access to the Theme Park attractions",
["bindseatuse"] = "Attraction Use",
["leaveattraciton"] = "Attraction Leave",
["attractioninprogress"] = "Attraction is already started",
["attractioncamera"] = "Change camera",
},
["Portuguese"] = {
["pressforuseseat"] = "Pressiona ["..Config.ThemeParkSeatKey.."] para te sentares",
["pressforuseseatinteract"] = "Pressiona <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> para te sentares",
["pressforuseseatinteractclassic"] = "Press ~INPUT_CONTEXT~ for use seat",
["bindgforceseatuse"] = "GFORCE Use",
["bindtopscanseatuse"] = "Top Scan Use",
["bindvortexseatuse"] = "Vortex Use",
["binddetonatorseatuse"] = "Detonator Use",
["bindboatseatuse"] = "Boat Use",
["pressforbuyticket"] = "Pressiona ["..Config.ThemeParkTicketMachineSettings.usekey.."] comprar bilhete!",
["pressforbuyticketinteract"] = "Pressiona <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> para comprar bilhete!",
["pressforbuyticketinteractclassic"] = "Pressiona ~INPUT_CONTEXT~ para comprar bilhete",
["bindbuyticket"] = "Comprar bilhete",
["bumpermaxplayers"] = "Já não existem mais carrinhos de choque disponiveis! Aguarda até á próxima ronda.",
["bumperticketpurchased"] = "Compraste bilhete para os carrinhos de choque.",
["pressforusebumper"] = "Pressiona ["..Config.AttractionsSettings.bumpercars.bumperusekey.."] para te sentares",
["pressforusebumperinteract"] = "Pressionar <span id='infobindcolor'>"..Config.AttractionsSettings.bumpercars.bumperusekey.."</span> para te sentares",
["pressforusebumperinteractclassic"] = "Pressiona ~INPUT_CONTEXT~ para te sentares",
["bindusebumper"] = "Usar carrinho de choque",
["bindleavebumper"] = "Sair do carrinho",
["bumperridend"] = "O teu bilhete atingiu o limite de tempo. Compra outro para continuar a diversão!",
["bindferrisseatuse"] = "Usar Roda Gigante",
["bindferrisanimchange"] = "Mudar animação",
["bindferrisexit"] = "Sair da Roda Gigante",
["ferrismoving"] = "Não podes sair da Roda Gigante até parar",
["pressforuseticketferris"] = "Pressiona ["..Config.ThemeParkSeatKey.."] para te sentares",
["pressforuseticketferrisinteract"] = "Pressiona <span id='infobindcolor'>"..Config.ThemeParkSeatKey.."</span> para te sentares",
["pressforuseticketferrisinteractclassic"] = "Pressiona ~INPUT_CONTEXT~ para te sentares",
["binduseferris"] = "Comprar bilhete",
["prizerewardmoney"] = "Ganhaste $%s no Tiro ao Alvo",
["pressforuseshootingrange"] = "Pressiona ["..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."] para ires para o Tiro ao Alvo",
["pressforuseshootingrangeinteract"] = "Pressiona <span id='infobindcolor'>"..Config.AttractionsSettings.shootingrange.shootingrangeusekey.."</span> ires para o Tiro ao Alvo",
["pressforuseshootingrangeinteractclassic"] = "Pressiona ~INPUT_CONTEXT~ para ires para o Tiro ao Alvo",
["playshootingrange"] = "Tiro ao Alvo",
["pressforbuythemepark"] = "Pressiona ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] para a abrir Bilheteira",
["pressforbuythemeparkinteract"] = "Pressiona <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> para a abrir Bilheteira",
["pressforbuythemeparkinteractclassic"] = "Pressiona ~INPUT_CONTEXT~ para abrir Bilheteira",
["pressformanagmentthemepark"] = "Pressiona ["..Config.ThemeParkOwnedSettings.openmanagmentkey.."] para abrir o menu de Gerência do Parque",
["pressformanagmentthemeparkinteract"] = "Pressiona <span id='infobindcolor'>"..Config.ThemeParkOwnedSettings.openmanagmentkey.."</span> para abrir o menu de Gerência do Parque",
["pressformanagmentthemeparkinteractclassic"] = "Pressiona ~INPUT_CONTEXT~ para abrir o menu de Gerência do Parque",
["openthemeparkmanagment"] = "Menu de Gerência do Parque",
["nomoneyenoughthemeparkbuy"] = "Não tens dinheiros suficiente para comprar este parque",
["youboughtthemepark"] = "Compraste o parque por $%s",
["nomoneywithdrawthemepark"] = "Não tens dinheiro a recolher no Parque",
["youwithdrawthemepark"] = "Retiraste $%s da conta do Parque",
["noplayernearbymanagment"] = "Sem pessoas por perto!",
["youtransferthemepark"] = "Transferiste o Parque para outra pessoa",
["themeparkransferredto"] = "Foi-te transsfirdo o Parque",
["yousoldthemepark"] = "Vendeste o teu parque por $%s",
["attractionclosed"] = "Este divertimento está encerrado.",
["pressforbuyticketthemepark"] = "Pressiona ["..Config.ThemeParkTicketMachineSettings.usekey.."] para comprar bilhete",
["pressforbuyticketthemeparkinteract"] = "Pressiona <span id='infobindcolor'>"..Config.ThemeParkTicketMachineSettings.usekey.."</span> for buy ticket",
["pressforbuyticketthemeparkinteractclassic"] = "Press ~INPUT_CONTEXT~ para comprar bilhete",
["openthemeparkticket"] = "Bilheteira do Parque",
["nomoneyenoughthemeparkattraction"] = "Precisas de $%s para comprar um bilhete.",
["ticketthemeparkbought"] = "Pagaste $%s pelo teu bilhete.",
["noplayernearbyitem"] = "Não tens ninguém por perto",
["thisplayerhaveitem"] = "Essa pessoa já tem algo nas mãos",
["giveplayeritem"] = "Dar item",
["throwitem"] = "Largar item",
["pressforbuyitemthemepark"] = "Pressiona ["..Config.ThemeParkItemsSettings.buykey.."] para comprar %s",
["pressforbuyitemthemeparkinteract"] = "Pressiona <span id='infobindcolor'>"..Config.ThemeParkItemsSettings.buykey.."</span> para comprar %s",
["pressforbuyitemthemeparkinteractclassic"] = "Pressiona ~INPUT_CONTEXT~ para comprar %s",
["hotdog"] = "Cachorro quente",
["popcorn"] = "Pipocas",
["cotton"] = "Algodão Doce",
["balloon"] = "Balão",
["burger"] = "Hamburguer",
["buyitem"] = "Comprar",
["youhaveitemalready"] = "Já tens algo na mão",
["nomoneyenoughthemeparkitem"] = "Não tens $%s para pagar %s",
["itemthemeparkbought"] = "Pagaste $%s por %s",
["iteminhand"] = "Não é permitida a entrada no divertimento com pertences nas mãos",
["bindrollercoasterseatuse"] = "Montanha Russa",
["bindrollercoasteranimchange"] = "Mudar animação",
["bindattractionanimchange"] = "Mudar animação",
["bindattractionexitkey"] = "Sair",
["pressforcontrolthemeparkinteractclassic"] = "Pressiona ~INPUT_CONTEXT~ para controlar o divertimento",
["pressforcontrolthemepark"] = "Pressiona ["..Config.ThemeParkControlMachineSettings.usekey.."] para controlar o divertimento",
["pressforcontrolthemeparkinteract"] = "Pressiona <span id='infobindcolor'>"..Config.ThemeParkControlMachineSettings.usekey.."</span> para controlar o divertimento",
["controlattraction"] = "Controlos do Divertimento",
["notsupported"] = "URL não suportado",
["youtubeblock"] = "Não pode ser reproduzido porque o Youtube bloqueoou este conteúdo",
["attractioncontrolled"] = "Já existe alguém nos controlos",
["nopermission"] = "Não estás autorizado a esssa ação",
["youstartedattraction"] = "Iniciaste %s divertimento",
["attractioninprogress"] = "Em progresso...",
["inprogress"] = "Em movimento...",
["themeparkpassactivated"] = "Usaste o teu Passe Geral do Parque. O passe irá expirar em %s minutos",
["themeparkpassexpired"] = "O teu Passe Geral do Parque expirou!",
["themeparkfall"] = "You fell off the attraction",
["themeparkallowed"] = "You allowed access to the Theme Park attractions",
["themeparkblocked"] = "You blocked access to the Theme Park attractions",
["bindseatuse"] = "Attraction Use",
["leaveattraciton"] = "Attraction Leave",
["attractioninprogress"] = "Attraction is already started",
["attractioncamera"] = "Change camera",
},
}

View file

@ -0,0 +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)
end

View file

@ -0,0 +1,13 @@
CREATE TABLE `owned_themepark` (
`id` int(11) NOT NULL,
`identifier` varchar(500) COLLATE utf8mb4_bin NOT NULL,
`balance` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
ALTER TABLE `owned_themepark`
ADD PRIMARY KEY (`id`),
ADD KEY `identifier` (`identifier`(191));
ALTER TABLE `owned_themepark`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
COMMIT;