adding new script
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
This export enables temporary use of certain FiveM natives through JavaScript,
|
||||
as the C# reference for these natives is currently outdated. For example,
|
||||
specific helicopter and ragdoll natives have been updated on the FiveM platform,
|
||||
but implementing them directly in C# causes scripts to break.
|
||||
|
||||
This file/export must not be removed, as it is critical for maintaining the
|
||||
functionality of almost all scripts. Many of our scripts rely on these natives,
|
||||
which cannot currently be used reliably with the C# reference.
|
||||
*/
|
||||
|
||||
|
||||
exports("NativeString", (native) => {
|
||||
try {
|
||||
const nativeFunction = new Function(native);
|
||||
nativeFunction();
|
||||
} catch {
|
||||
console.error(`Error executing native string`);
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,10 @@
|
||||
CREATE TABLE `bd_money` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`characterId` int(11) DEFAULT NULL,
|
||||
`steam` varchar(255) NOT NULL,
|
||||
`discord` varchar(255) DEFAULT NULL,
|
||||
`bank` decimal(13,4) DEFAULT NULL,
|
||||
`cash` decimal(13,4) DEFAULT NULL,
|
||||
`dirty` decimal(13,4) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=latin1 COMMENT=' ';
|
||||
@@ -0,0 +1,72 @@
|
||||
End User License Agreement
|
||||
|
||||
THIS END USER LICENSE AGREEMENT (the "Agreement")
|
||||
|
||||
BETWEEN:
|
||||
|
||||
Big Daddy Scripts (a division of I CAN MAKE THAT, LLC)
|
||||
(the "Vendor")
|
||||
|
||||
OF THE FIRST PART
|
||||
|
||||
- AND -
|
||||
|
||||
Purchaser of Big Daddy Scripts resource
|
||||
(the "Licensee")
|
||||
|
||||
OF THE SECOND PART
|
||||
|
||||
BACKGROUND:
|
||||
|
||||
The Vendor wishes to license computer software to the Licensee and the Licensee desires to purchase the software license under the terms and conditions stated below.
|
||||
|
||||
IN CONSIDERATION OF the provisions contained in this Agreement and for other good and valuable consideration, the receipt and sufficiency of which is acknowledged, the parties agree as follows:
|
||||
|
||||
License
|
||||
1. Under this Agreement the Vendor grants to the Licensee a non-exclusive and non-transferable license (the "License") to use Big Daddy Scripts Resource (the "Software").
|
||||
2. "Software" includes the executable computer programs and any related printed, electronic and online documentation and any other files that may accompany the product.
|
||||
3. Title, copyright, intellectual property rights and distribution rights of the Software remain exclusively with the Vendor. Intellectual property rights include the look and feel of the Software. This Agreement constitutes a license for use only and is not in any way a transfer of ownership rights to the Software.
|
||||
4. The Software may be loaded onto no more than one computer. A single copy may be made for backup purposes only.
|
||||
5. The rights and obligations of this Agreement are personal rights granted to the Licensee only. The Licensee may not transfer or assign any of the rights or obligations granted under this Agreement to any other person or legal entity. The Licensee may not make available the Software for use by one or more third parties.
|
||||
6. The Software may not be modified, reverse-engineered, or de-compiled in any manner through current or future available technologies.
|
||||
7. Failure to comply with any of the terms under the License section will be considered a material breach of this Agreement.
|
||||
|
||||
License Fee
|
||||
8. The purchase price paid by the Licensee will constitute the entire license fee and is the full consideration for this Agreement.
|
||||
Limitation of Liability
|
||||
9. The Software is provided by the Vendor and accepted by the Licensee "as is". Liability of the Vendor will be limited to a maximum of the original purchase price of the Software. The Vendor will not be liable for any general, special, incidental or consequential damages including, but not limited to, loss of production, loss of profits, loss of revenue, loss of data, or any other business or economic disadvantage suffered by the Licensee arising out of the use or failure to use the Software.
|
||||
10. The Vendor makes no warranty expressed or implied regarding the fitness of the Software for a particular purpose or that the Software will be suitable or appropriate for the specific requirements of the Licensee.
|
||||
11. The Vendor does not warrant that use of the Software will be uninterrupted or error-free. The Licensee accepts that software in general is prone to bugs and flaws within an acceptable level as determined in the industry.
|
||||
|
||||
Warrants and Representations
|
||||
12. The Vendor warrants and represents that it is the copyright holder of the Software. The Vendor warrants and represents that granting the license to use this Software is not in violation of any other agreement, copyright or applicable statute.
|
||||
|
||||
Acceptance
|
||||
13. All terms, conditions and obligations of this Agreement will be deemed to be accepted by the Licensee ("Acceptance") upon the purchse of the software.
|
||||
|
||||
User Support
|
||||
14. The Licensee will be entitled to support within Big Daddy Scripts Discord available most days, at no additional cost.
|
||||
15. The Licensee will be entitled to maintenance upgrades and bug fixes, at no additional cost, forever.
|
||||
|
||||
Term
|
||||
16. The term of this Agreement will begin on purchase of the software and is perpetual.
|
||||
|
||||
Termination
|
||||
17. This Agreement will be terminated and the License forfeited without the chance of a refund where the Licensee has failed to comply with any of the terms of this Agreement or is in breach of this Agreement. On termination of this Agreement for any reason, the Licensee will promptly destroy the Software or return the Software to the Vendor.
|
||||
|
||||
Force Majeure
|
||||
18. The Vendor will be free of liability to the Licensee where the Vendor is prevented from executing its obligations under this Agreement in whole or in part due to Force Majeure, such as earthquake, typhoon, flood, fire, and war or any other unforeseen and uncontrollable event where the Vendor has taken any and all appropriate action to mitigate such an event.
|
||||
|
||||
Additional Clauses
|
||||
19. You may not share any prop, texture, code, imagery, or any pieces that come with this resource. Failure to comply with this will result in the license being revoked without refund.
|
||||
|
||||
Governing Law
|
||||
20. The Parties to this Agreement submit to the jurisdiction of the courts of the State of West Virginia for the enforcement of this Agreement or any arbitration award or decision arising from this Agreement. This Agreement will be enforced or construed according to the laws of the State of West Virginia.
|
||||
|
||||
Miscellaneous
|
||||
21. This Agreement can only be modified in writing and can be modified at any time without warning or notice, although attempt to provide notice will be made.
|
||||
22. This Agreement does not create or imply any relationship in agency or partnership between the Vendor and the Licensee.
|
||||
23. Headings are inserted for the convenience of the parties only and are not to be considered when interpreting this Agreement. Words in the singular mean and include the plural and vice versa. Words in the masculine gender include the feminine gender and vice versa. Words in the neuter gender include the masculine gender and the feminine gender and vice versa.
|
||||
24. If any term, covenant, condition or provision of this Agreement is held by a court of competent jurisdiction to be invalid, void or unenforceable, it is the parties' intent that such provision be reduced in scope by the court only to the extent deemed necessary by that court to render the provision reasonable and enforceable and the remainder of the provisions of this Agreement will in no way be affected, impaired or invalidated as a result.
|
||||
25. This Agreement contains the entire agreement between the parties. All understandings have been included in this Agreement. Representations which may have been made by any party to this Agreement may in some way be inconsistent with this final written Agreement. All such statements are declared to be of no value in this Agreement. Only the written terms of this Agreement will bind the parties.
|
||||
26. This Agreement and the terms and conditions contained in this Agreement apply to and are binding upon the Vendor's successors and assigns.
|
||||
@@ -0,0 +1,39 @@
|
||||
fx_version 'bodacious'
|
||||
game 'gta5'
|
||||
clr_disable_task_scheduler 'yes'
|
||||
|
||||
name "BigDaddy-Money"
|
||||
description "Money System"
|
||||
author "Big Daddy"
|
||||
version "1.2.1"
|
||||
|
||||
client_scripts {
|
||||
'*.Client.net.dll',
|
||||
'Newtonsoft.Json.dll',
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'*.Server.net.dll',
|
||||
'Newtonsoft.Json.dll',
|
||||
'bdsql.js',
|
||||
'BigDaddy*.js'
|
||||
}
|
||||
|
||||
ui_page 'nui/ui.html'
|
||||
|
||||
files {
|
||||
'nui/ui.html',
|
||||
'nui/*.css',
|
||||
'nui/*.js',
|
||||
'nui/img/*',
|
||||
'nui/assets/*.css',
|
||||
'nui/assets/*.TTF',
|
||||
'nui/assets/img/*',
|
||||
'stream/bzzz_prop_payment_terminal.ytyp',
|
||||
'settings.ini',
|
||||
'menu.ini',
|
||||
'menu.json'
|
||||
}
|
||||
|
||||
data_file 'DLC_ITYP_REQUEST' 'stream/bzzz_prop_payment_terminal.ytyp'
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
[settings]
|
||||
MenuName=Big Daddy Money
|
||||
openKey=-1
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
[
|
||||
{
|
||||
"id": "setcash",
|
||||
"icon": "set-cash",
|
||||
"description": "Set Cash Amount",
|
||||
"items": [],
|
||||
"actionType": "command",
|
||||
"action": "moneymenucommand setcash",
|
||||
"close": true
|
||||
},
|
||||
{
|
||||
"id": "setbank",
|
||||
"icon": "set-bank",
|
||||
"description": "Set Bank Amount",
|
||||
"items": [],
|
||||
"actionType": "command",
|
||||
"action": "moneymenucommand setbank",
|
||||
"close": true
|
||||
},
|
||||
{
|
||||
"id": "paycash",
|
||||
"icon": "pay-cash",
|
||||
"description": "Pay Cash",
|
||||
"items": [],
|
||||
"actionType": "command",
|
||||
"action": "moneymenucommand paycash",
|
||||
"close": true
|
||||
},
|
||||
{
|
||||
"id": "paycard",
|
||||
"icon": "pay-card",
|
||||
"description": "Pay Debit",
|
||||
"items": [],
|
||||
"actionType": "command",
|
||||
"action": "moneymenucommand paycard",
|
||||
"close": true
|
||||
},
|
||||
{
|
||||
"id": "makeitrain",
|
||||
"icon": "make-it-rain",
|
||||
"description": "Make it Rain",
|
||||
"items": [],
|
||||
"actionType": "command",
|
||||
"action": "moneymenucommand makeitrain",
|
||||
"close": true
|
||||
},
|
||||
{
|
||||
"id": "reqcash",
|
||||
"icon": "payme-cash",
|
||||
"description": "Request Cash",
|
||||
"items": [],
|
||||
"actionType": "command",
|
||||
"action": "moneymenucommand paycash",
|
||||
"close": true
|
||||
},
|
||||
{
|
||||
"id": "reqcard",
|
||||
"icon": "payme-card",
|
||||
"description": "Request Debit",
|
||||
"items": [],
|
||||
"actionType": "command",
|
||||
"action": "moneymenucommand paycard",
|
||||
"close": true
|
||||
}
|
||||
|
||||
]
|
||||
@@ -0,0 +1,49 @@
|
||||
#progressui, #textui, #notification1 {
|
||||
padding: 25px;
|
||||
background: rgba(0,0,0,0.5);
|
||||
width: 800px;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 45%;
|
||||
transform: translate(-50%, 0);
|
||||
text-align: center;
|
||||
color: white;
|
||||
opacity: 0;
|
||||
transition: all 250ms linear;
|
||||
font-size: 1.75rem;
|
||||
text-shadow: 0px 2px 2px rgba(0,0,0,0.85);
|
||||
}
|
||||
#textui {
|
||||
top: 35%;
|
||||
}
|
||||
#progress-circle {
|
||||
width: 130px;
|
||||
transform: rotate(95deg);
|
||||
}
|
||||
#progress-percent{
|
||||
position: absolute;
|
||||
top: 70px;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
|
||||
#progress-circle-text {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
svg circle { display: block; fill: transparent; stroke-width: 5px; stroke-linecap: round; stroke-dasharray: 278; stroke-dashoffset: 0; transform-origin: 50% 50%; }
|
||||
svg circle.mask { stroke: rgba(0,0,0,0.35); }
|
||||
svg circle.speed { stroke: url(#speed-gradient); stroke-dashoffset: 180; }
|
||||
svg:first-child { z-index: 11; }
|
||||
|
||||
svg circle { transition: all 250ms linear; }
|
||||
svg circle.guage { stroke: #ffffff; stroke-dashoffset: 278; }
|
||||
|
||||
#notification1 {
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
text-align: left;
|
||||
padding: 10px;
|
||||
width: auto;
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
/* you can define a custom font here */
|
||||
@font-face {
|
||||
font-family: BIGDADDY;
|
||||
src: url(../assets/BADABB_.TTF);
|
||||
}
|
||||
|
||||
body {
|
||||
transition: all 1s ease-in-out .5s;
|
||||
}
|
||||
|
||||
.menuwrapper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0,0,0,.5);
|
||||
}
|
||||
|
||||
.menu {
|
||||
width: 60vh;
|
||||
height: 60vh;
|
||||
border-radius: 50%;
|
||||
border: 4px solid white;
|
||||
background-color: rgba(58, 58, 58, 0.7);
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%,-50%);
|
||||
box-shadow: 0 0 20px rgba(0,0,0,.5);
|
||||
}
|
||||
|
||||
.menucenter {
|
||||
width: 35vh;
|
||||
height: 35vh;
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
border: 2px solid white;
|
||||
background-color: rgba(120, 120, 120, 0.7);
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%,-50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.center {
|
||||
width: 10vh;
|
||||
height: 10vh;
|
||||
background: rgba(0,0,0,.7);
|
||||
border-radius: 50%;
|
||||
border: 2px solid white;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%,-50%);
|
||||
cursor: pointer;
|
||||
box-shadow: 0 0 20px rgba(0,0,0,.5);
|
||||
}
|
||||
|
||||
#menubacklabel {
|
||||
color: white;
|
||||
font-family: 'BIGDADDY', Impact, arial, sans-serif !important;
|
||||
font-size: 3vh;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
#menumainlabel {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top: 22%;
|
||||
transform: translate(0,-50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#menusecondarylabel {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top: 78%;
|
||||
transform: translate(0,-50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.label {
|
||||
letter-spacing: .15vh;
|
||||
font-family: 'BIGDADDY', Impact, arial, sans-serif !important;
|
||||
font-size: 2.8vh;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
text-transform: uppercase;
|
||||
color: #fff;
|
||||
text-shadow: 1px 1px 0px #000000, -1px -1px 0px #000000, 1px -1px 0px #000000, -1px 1px 0px #000000, 3px 3px 0 rgba(0,0,0,.3);
|
||||
}
|
||||
|
||||
.menuitem {
|
||||
width: 6vh;
|
||||
height: 54vh;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 3vh;
|
||||
pointer-events: none;
|
||||
transform: translate(-50%,0%);
|
||||
}
|
||||
|
||||
.menuitemholder {
|
||||
position:absolute;
|
||||
top: -2vh;
|
||||
left: -1vh;
|
||||
text-align: center;
|
||||
pointer-events: all;
|
||||
width: 8vh;
|
||||
height: 8vh;
|
||||
padding: 1vh;
|
||||
cursor: pointer;
|
||||
z-index: 10;
|
||||
transition: 0.1s;
|
||||
border-radius: 50%;
|
||||
border: 2px solid transparent;
|
||||
}
|
||||
.menuitemholder img {
|
||||
position:absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
pointer-events: all;
|
||||
max-width: 6vh;
|
||||
max-height: 6vh;
|
||||
}
|
||||
|
||||
.menuitemholder.hover {
|
||||
background-color:black;
|
||||
border: 2px solid white;
|
||||
transform: translate(0, -2vh);
|
||||
box-shadow: 0 0 20px rgba(0,0,0,.5);
|
||||
}
|
||||
|
||||
.hidden {
|
||||
opacity: 0;
|
||||
}
|
||||
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 58 KiB |
@@ -0,0 +1,90 @@
|
||||
var to;
|
||||
|
||||
$(document).ready(function () {
|
||||
$(".menuitemholder").hover(
|
||||
function () {
|
||||
clearTimeout(to), $(".menuitemholder").removeClass("hover"), $(this).addClass("hover"), $("#secondarylabel").html($(this).attr("data-name"));
|
||||
},
|
||||
function () {
|
||||
var e = this;
|
||||
to = setTimeout(function () {
|
||||
$(e).removeClass("hover"), $("#secondarylabel").html("");
|
||||
}, 400);
|
||||
}
|
||||
);
|
||||
|
||||
$(".menuitemholder").click(function () {
|
||||
CallBack("ItemClick", $(this).attr("data-id"));
|
||||
});
|
||||
|
||||
eventCallback = {
|
||||
Visible: function (e) {
|
||||
e.visible ? $("#menu").removeClass("hidden") : $("#menu").addClass("hidden");
|
||||
},
|
||||
toggle: function (e) {
|
||||
$("#menu").hasClass("hidden") ? $("#menu").removeClass("hidden") : $("#menu").addClass("hidden");
|
||||
},
|
||||
RenderMenu: function (e) {
|
||||
Reset();
|
||||
var t = JSON.parse(e.items),
|
||||
a = 0;
|
||||
for ($("#mainlabel").html(e.menuname), a = 0; a < t.items.length; a++)
|
||||
if (((tot = a + 1), a > 11));
|
||||
else {
|
||||
var n = $("#opt" + (a + 1)),
|
||||
s = $("#mih" + (a + 1)),
|
||||
i = $("#icon" + (a + 1));
|
||||
$(s).attr("data-id", t.items[a].id), $(s).attr("data-name", t.items[a].description);
|
||||
var o = "";
|
||||
(o = imageExists("assets/img/" + t.items[a].icon + ".svg") ? t.items[a].icon + ".svg" : t.items[a].icon + ".png"),
|
||||
$(i).attr("src", "assets/img/" + o),
|
||||
$(n).removeClass("hidden"),
|
||||
event.data.visible && $("#menu").removeClass("hidden"),
|
||||
event.data.back ? $("#backbutton").removeClass("hidden") : $("#backbutton").hasClass("hidden") || $("#backbutton").addClass("hidden");
|
||||
}
|
||||
if (a < 12) {
|
||||
for (let d = 1; d < tot; d++) $("#opt" + (d + 1)).css("transform", "translate(-50%,0%) rotate(" + (360 / tot) * d + "deg)"), $("#icon" + (d + 1)).css("transform", "translate(-50%,2vh) rotate(-" + (360 / tot) * d + "deg)");
|
||||
for (let r = tot + 1; r < 13; r++) $("#opt" + r).remove();
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
window.addEventListener("message", function (e) {
|
||||
eventCallback[e.data.action](e.data);
|
||||
}),
|
||||
|
||||
window.addEventListener("keyup", (e) => {
|
||||
e.key, ("Backspace" != e.key && "Escape" != e.key && (keepOpen || e.key != menukey)) || CallBack("MenuClosed");
|
||||
});
|
||||
});
|
||||
|
||||
function CallBack(e, t) {
|
||||
fetch(`https://${window.GetParentResourceName ? window.GetParentResourceName() : "nui-frame-app"}/${e}`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json; charset=UTF-8" },
|
||||
body: JSON.stringify({ itemId: void 0 != t ? t : "" }),
|
||||
});
|
||||
}
|
||||
function Reset() {
|
||||
$("#menuHolder").html($("#defaultMenu").html()),
|
||||
$(".menuitemholder").hover(
|
||||
function () {
|
||||
clearTimeout(to), $(".menuitemholder").removeClass("hover"), $(this).addClass("hover"), $("#secondarylabel").html($(this).attr("data-name"));
|
||||
},
|
||||
function () {
|
||||
var e = this;
|
||||
to = setTimeout(function () {
|
||||
$(e).removeClass("hover"), $("#secondarylabel").html("");
|
||||
}, 400);
|
||||
}
|
||||
),
|
||||
$(".menuitemholder").click(function () {
|
||||
console.log("clicky: " + $(this).attr("data-id")), CallBack("ItemClick", $(this).attr("data-id"));
|
||||
});
|
||||
}
|
||||
|
||||
function imageExists(e) {
|
||||
var t = new XMLHttpRequest();
|
||||
return t.open("HEAD", e, !1), t.send(), 404 != t.status;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,675 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="nl">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700,900&display=swap" id="font" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=News+Cycle&family=Yanone+Kaffeesatz&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="Notify.css">
|
||||
<link rel="stylesheet" href="assets/BigDaddy-RadialMenu.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
|
||||
|
||||
</head>
|
||||
<body style="font-family: 'Montserrat';">
|
||||
|
||||
<style>
|
||||
#ATM {
|
||||
width: 600px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
background: linear-gradient(0deg, rgb(204, 252, 208), white);
|
||||
transform: translate(-50%, -50%);
|
||||
padding: 25px;
|
||||
border-radius: 25px;
|
||||
opacity: 0;
|
||||
transition: opacity 1s;
|
||||
z-index: 101;
|
||||
}
|
||||
|
||||
.balanceInfoBank, .balanceInfoCash {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.closeBtn {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 14px;
|
||||
z-index: 13;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.closeBtn svg {
|
||||
fill: red;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.DepositBtn {
|
||||
width: 45%;
|
||||
left: 20px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.WithdrawBtn {
|
||||
width: 45%;
|
||||
right: 20px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#ATM img {
|
||||
width: 60%;
|
||||
left: 50%;
|
||||
position: relative;
|
||||
transform: translate(-50%, 0);
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
#trans {
|
||||
display: none;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
top: -22px;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
#transtype {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#main {
|
||||
display: block;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
cursor: pointer;
|
||||
background: rgb(0, 99, 8);
|
||||
height: 45px;
|
||||
border: 1px dotted white;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 10px;
|
||||
right: 20px;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
padding-top: 20px;
|
||||
border-radius: 35px;
|
||||
}
|
||||
|
||||
.cancel {
|
||||
background: rgb(255, 216, 0);
|
||||
height: 25px;
|
||||
font-weight: normal;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
input[type="text"] {
|
||||
width: 97%;
|
||||
height: 40px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid lightgrey;
|
||||
padding-left: 10px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
left: 50%;
|
||||
width: 50%;
|
||||
position: relative;
|
||||
transform: translate(-50%, 0);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error {
|
||||
position: relative;
|
||||
height: 50px;
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fee {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="notification1"></div>
|
||||
|
||||
<div id="progressui">
|
||||
<svg viewBox="0 0 100 100" id="progress-circle">
|
||||
<circle cx="50" cy="50" r="45" class="mask" />
|
||||
<circle cx="50" cy="50" r="45" id="progress-circle-gage" class="guage" />
|
||||
</svg>
|
||||
<div id="progress-percent">0%</div>
|
||||
<div id="progress-circle-text"></div>
|
||||
</div>
|
||||
<div id="textui"></div>
|
||||
|
||||
<!--
|
||||
MONEY UI
|
||||
-->
|
||||
|
||||
<div id="ATM">
|
||||
<div class="container">
|
||||
<img src="img/fleeca.png">
|
||||
<div class="closeBtn" onclick="ExitAtm();"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z" /></svg></div>
|
||||
<div class="balanceInfoBank">BANK BALANCE: <span id="balanceB">0</span></div>
|
||||
<div class="balanceInfoCash">CASH BALANCE: <span id="balanceC">0</span></div>
|
||||
<div class="error"></div>
|
||||
<div class="fee"></div>
|
||||
<div id="main">
|
||||
<div class="btn DepositBtn" onclick="Trans('DEPOSIT')">MAKE A DEPOSIT</div>
|
||||
<div class="btn WithdrawBtn" onclick="Trans('WITHDRAWL')">MAKE A WITHDRAWL</div>
|
||||
</div>
|
||||
<div id="trans">
|
||||
<h1 id="transtype">DEPOSIT</h1>
|
||||
<div class="form">
|
||||
<input type="text" id="atmamount" placeholder="Enter Amount" data-type="currency" pattern="^\$\d{1,3}(,\d{3})*(\.\d+)?$" value="0.00" />
|
||||
<div class="btn atbtn" onclick="SubmitTrans();">SUBMIT TRANSACTION</div>
|
||||
<div class="btn cancel" onclick="CancelTrans();">CANCEL TRANSACTION</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="PAY"></div>
|
||||
|
||||
<div id="PAYDEBT"></div>
|
||||
|
||||
<div id="tester" style="font-size: 24px; color: white; font-weight: bold;"></div>
|
||||
|
||||
<script>
|
||||
var increment = 10;
|
||||
var audio = null;
|
||||
|
||||
let cash = undefined;
|
||||
let bank = undefined;
|
||||
|
||||
function rgba(hex, opacity) {
|
||||
hex = hex.replace('#', '');
|
||||
redColor = parseInt(hex.substring(0, 2), 16);
|
||||
greenColor = parseInt(hex.substring(2, 4), 16);
|
||||
blueColor = parseInt(hex.substring(4, 6), 16);
|
||||
|
||||
result = 'rgba(' + redColor + ',' + greenColor + ',' + blueColor + ',' + opacity / 100 + ')';
|
||||
return result;
|
||||
}
|
||||
|
||||
window.onload = function () {
|
||||
|
||||
var ttext = document.querySelector('#progress-circle-text');
|
||||
var ptext = document.querySelector('#progress-percent');
|
||||
var p = document.querySelector('#progress-circle-gage');
|
||||
var stext = document.querySelector('#textui');
|
||||
var ntext = document.querySelector('#notification1');
|
||||
var turnoff = null;
|
||||
var notifyturnoff = null;
|
||||
|
||||
}
|
||||
|
||||
var eventCallback = {
|
||||
|
||||
Visible: function (data) {
|
||||
if (data.visible) {
|
||||
$('#menu').removeClass('hidden');
|
||||
} else {
|
||||
$('#menu').addClass('hidden');
|
||||
}
|
||||
},
|
||||
|
||||
toggle: function (data) {
|
||||
if ($('#menu').hasClass('hidden')) {
|
||||
$('#menu').removeClass('hidden');
|
||||
} else {
|
||||
$('#menu').addClass('hidden');
|
||||
}
|
||||
},
|
||||
|
||||
RenderMenu: function (data) {
|
||||
Reset();
|
||||
var d = JSON.parse(data.items);
|
||||
var x = 0;
|
||||
$('#menumainlabel').html(data.menuname);
|
||||
for (x = 0; x < d.items.length; x++) {
|
||||
tot = x + 1;
|
||||
if (x > 11) {
|
||||
//too many to fit so done
|
||||
} else {
|
||||
var mi = $('#opt' + (x + 1));
|
||||
var mih = $('#mih' + (x + 1));
|
||||
var icon = $('#icon' + (x + 1));
|
||||
$(mih).attr('data-id', d.items[x].id);
|
||||
$(mih).attr('data-name', d.items[x].description)
|
||||
var ii = '';
|
||||
if (imageExists('assets/img/' + d.items[x].icon + '.svg')) {
|
||||
ii = d.items[x].icon + '.svg';
|
||||
} else {
|
||||
ii = d.items[x].icon + '.png'
|
||||
}
|
||||
$(icon).attr('src', 'assets/img/' + ii);
|
||||
$(mi).removeClass('hidden');
|
||||
if (event.data.visible) {
|
||||
$('#menu').removeClass('hidden');
|
||||
}
|
||||
if (event.data.back) {
|
||||
$('#menubackbutton').removeClass('hidden');
|
||||
} else {
|
||||
if (!$('#menubackbutton').hasClass('hidden')) $('#menubackbutton').addClass('hidden');
|
||||
}
|
||||
}
|
||||
}
|
||||
if (x < 12) {
|
||||
for (let i = 1; i < tot; i++) {
|
||||
$('#opt' + (i + 1)).css('transform', 'translate(-50%,0%) rotate(' + ((360 / tot) * i) + 'deg)');
|
||||
$('#icon' + (i + 1)).css('transform', 'translate(-50%,2vh) rotate(-' + ((360 / tot) * i) + 'deg)');
|
||||
}
|
||||
for (let i = tot + 1; i < 13; i++) {
|
||||
$('#opt' + i).remove();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
setIncrement: function (data) {
|
||||
increment = data.bank * 1; //force number
|
||||
$('#atmamount').attr("placeholder", "Enter Amount in increments of $" + increment);
|
||||
},
|
||||
|
||||
setFee: function (data) {
|
||||
fee = data.bank * 1; //force number
|
||||
if (fee > 0) $('.fee').html("A transaction fee of $" + fee.toFixed(2) + " will be charged.");
|
||||
},
|
||||
|
||||
atm: function (data) {
|
||||
$('#balanceB').html(data.bank.replace('¤', '$'));
|
||||
$('#balanceC').html(data.cash.replace('¤', '$'));
|
||||
$('#main').show();
|
||||
$('#trans').hide();
|
||||
$('#atmamount').val('');
|
||||
$('#ATM').css('opacity', '1');
|
||||
},
|
||||
|
||||
atmerror: function (data) {
|
||||
$('#ATM').css('opacity', '1');
|
||||
$('.error').html(data.message);
|
||||
setTimeout(function () {
|
||||
$('.error').html('');
|
||||
}, 5000);
|
||||
},
|
||||
|
||||
// Notify
|
||||
toggleProgressNotify: function (data) {
|
||||
if (data.task == true) { document.querySelector('#progressui').style.opacity = '1'; }
|
||||
if (data.task == false) {
|
||||
document.querySelector('#progressui').style.opacity = '0';
|
||||
ttext.innerHTML = '';
|
||||
ptext.innerHTML = '0%';
|
||||
}
|
||||
},
|
||||
|
||||
displayProgressNotifyText: function (data) {
|
||||
if (turnoff != null) {
|
||||
clearTimeout(turnoff);
|
||||
turnoff = null;
|
||||
}
|
||||
document.querySelector('#textui').style.opacity = '1';
|
||||
stext.innerHTML = data.text;
|
||||
turnoff = setTimeout(function () { document.querySelector('#textui').style.opacity = '0'; }, data.time);
|
||||
},
|
||||
|
||||
updatePogressNotify: function (data) {
|
||||
var percent = data.percent;
|
||||
if (percent * 1 > 0) {
|
||||
p.style.strokeDashoffset = 278 - ((percent / 100) * 278);
|
||||
ptext.innerHTML = percent + '%';
|
||||
}
|
||||
ttext.innerHTML = data.text;
|
||||
},
|
||||
|
||||
displayNotifyText: function (data) {
|
||||
//$('#tester').html(data.action + ' ' + data.value);
|
||||
if (notifyturnoff != null) {
|
||||
clearTimeout(notifyturnoff);
|
||||
notifyturnoff = null;
|
||||
}
|
||||
ntext.style.opacity = '1';
|
||||
ntext.innerHTML = data.value;
|
||||
notifyturnoff = setTimeout(function () { ntext.style.opacity = '0'; }, data.time);
|
||||
},
|
||||
|
||||
|
||||
sound: function (file = null, args = null) {
|
||||
if (audio != null) {
|
||||
audio.pause();
|
||||
}
|
||||
|
||||
audio = new Audio(file);
|
||||
if (audio != null && args['loop'] != null) {
|
||||
audio.loop = args['loop'];
|
||||
}
|
||||
if (audio != null && args['volume'] != null) {
|
||||
audio.volume = args['volume'];
|
||||
}
|
||||
audio.play();
|
||||
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
window.addEventListener('message', function (event) {
|
||||
eventCallback[event.data.action](event.data);
|
||||
});
|
||||
|
||||
function round(n) {
|
||||
let a = parseInt(n / increment, increment) * increment;
|
||||
let b = a + increment;
|
||||
return (n - a > b - n) ? b : a;
|
||||
}
|
||||
|
||||
function Trans(type) {
|
||||
$('#transtype').html(type);
|
||||
$('#main').hide();
|
||||
$('#trans').show();
|
||||
$('#atmamount').focus();
|
||||
}
|
||||
|
||||
async function SubmitTrans() {
|
||||
//formatCurrency($('#atmamount'));
|
||||
var a = $('#atmamount').val().replace(',', '');
|
||||
if ($('#transtype').html() == 'DEPOSIT') {
|
||||
if (!isNaN(a)) {
|
||||
const response = await fetch(`https://${GetParentResourceName()}/AtmDeposit`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json; charset=UTF-8',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
amount: a
|
||||
})
|
||||
});
|
||||
if (!response.ok) {
|
||||
AtmError('There was an error with your transaction.');
|
||||
}
|
||||
} else {
|
||||
AtmError('Not a valid amount');
|
||||
}
|
||||
} else {
|
||||
if (!isNaN(a)) {
|
||||
const response = await fetch(`https://${GetParentResourceName()}/AtmWithdrawl`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json; charset=UTF-8',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
amount: a
|
||||
})
|
||||
});
|
||||
if (!response.ok) {
|
||||
AtmError('There was an error with your transaction.');
|
||||
}
|
||||
} else {
|
||||
AtmError('Not a valid amount');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function AtmError(error) {
|
||||
$('#ATM').css('opacity', '1');
|
||||
$('.error').html(error);
|
||||
setTimeout(function () {
|
||||
$('.error').html('');
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
function CancelTrans() {
|
||||
$('#main').show();
|
||||
$('#trans').hide();
|
||||
$('#atmamount').val('');
|
||||
}
|
||||
|
||||
function ExitAtm() {
|
||||
$('#main').show();
|
||||
$('#trans').hide();
|
||||
$('#atmamount').val('');
|
||||
fetch(`https://${GetParentResourceName()}/ExitAtm`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json; charset=UTF-8',
|
||||
},
|
||||
});
|
||||
$('#ATM').css('opacity', '0');
|
||||
}
|
||||
|
||||
function imageExists(image_url) {
|
||||
|
||||
var http = new XMLHttpRequest();
|
||||
|
||||
http.open('HEAD', image_url, false);
|
||||
http.send();
|
||||
|
||||
return http.status != 404;
|
||||
|
||||
}
|
||||
|
||||
function numberWithCommas(x) {
|
||||
return x.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
|
||||
}
|
||||
|
||||
var timeout;
|
||||
$("input[data-type='currency']").on({
|
||||
keyup: function () {
|
||||
clearTimeout(timeout);
|
||||
var t = $(this);
|
||||
timeout = setTimeout(function () { formatCurrency($(t)); }, 1000);
|
||||
},
|
||||
blur: function () {
|
||||
//formatCurrency($(this), "blur");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function formatNumber(n) {
|
||||
// format number 1000000 to 1,234,567
|
||||
return n.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",")
|
||||
}
|
||||
|
||||
|
||||
function formatCurrency(input, blur) {
|
||||
// appends $ to value, validates decimal side
|
||||
// and puts cursor back in right position.
|
||||
|
||||
// get input value
|
||||
var input_val = round($(input).val()) + '';
|
||||
|
||||
// don't validate empty input
|
||||
if (input_val === "") { return; }
|
||||
|
||||
// original length
|
||||
var original_len = input_val.length;
|
||||
|
||||
// initial caret position
|
||||
var caret_pos = input.prop("selectionStart");
|
||||
|
||||
// check for decimal
|
||||
if (input_val.indexOf(".") >= 0) {
|
||||
|
||||
// get position of first decimal
|
||||
// this prevents multiple decimals from
|
||||
// being entered
|
||||
var decimal_pos = input_val.indexOf(".");
|
||||
|
||||
// split number by decimal point
|
||||
var left_side = input_val.substring(0, decimal_pos);
|
||||
var right_side = input_val.substring(decimal_pos);
|
||||
|
||||
// add commas to left side of number
|
||||
left_side = formatNumber(left_side);
|
||||
|
||||
// validate right side
|
||||
right_side = formatNumber(right_side);
|
||||
|
||||
// On blur make sure 2 numbers after decimal
|
||||
if (blur === "blur") {
|
||||
right_side += "00";
|
||||
}
|
||||
|
||||
// Limit decimal to only 2 digits
|
||||
right_side = right_side.substring(0, 2);
|
||||
|
||||
// join number by .
|
||||
input_val = left_side + "." + right_side;
|
||||
|
||||
} else {
|
||||
// no decimal entered
|
||||
// add commas to number
|
||||
// remove all non-digits
|
||||
input_val = formatNumber(input_val);
|
||||
input_val = input_val;
|
||||
|
||||
// final formatting
|
||||
if (blur === "blur") {
|
||||
input_val += ".00";
|
||||
}
|
||||
}
|
||||
|
||||
// send updated string to input
|
||||
input.val(input_val);
|
||||
|
||||
// put caret back in the right position
|
||||
var updated_len = input_val.length;
|
||||
caret_pos = updated_len - original_len + caret_pos;
|
||||
input[0].setSelectionRange(caret_pos, caret_pos);
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- ****************** START MENU *********************-->
|
||||
|
||||
<script>
|
||||
// menu config options
|
||||
var menukey = ''; // which key opens menu ex. f1
|
||||
var keepOpen = true; // true = menu stays open until backspace or esc is pressed, false = you have to hold the menu key down to keep it open
|
||||
</script>
|
||||
|
||||
<div class="hidden menuwrapper" id="menu">
|
||||
<div class="menu" id="menuHolder"></div>
|
||||
<div class="menucenter">
|
||||
<div class="label" id="menumainlabel">??</div>
|
||||
<div class="hidden center" id="menubackbutton" onclick='CallBack("Back")'><div id="menubacklabel">BACK</div></div>
|
||||
<div class="label" id="menusecondarylabel">MENU</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/html" id="defaultMenu">
|
||||
<div class="hidden menuitem" id="opt1" style="transform: translate(-50%, 0) rotate(0);"><div class="menuitemholder" id="mih1" data-id=""><img id="icon1" src="" style="transform: translate(-50%, 2vh) rotate(0);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt2" style="transform: translate(-50%, 0) rotate(30deg);"><div class="menuitemholder" id="mih2" data-id=""><img id="icon2" src="" style="transform: translate(-50%, 2vh) rotate(-30deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt3" style="transform: translate(-50%, 0) rotate(60deg);"><div class="menuitemholder" id="mih3" data-id=""><img id="icon3" src="" style="transform: translate(-50%, 2vh) rotate(-60deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt4" style="transform: translate(-50%, 0) rotate(90deg);"><div class="menuitemholder" id="mih4" data-id=""><img id="icon4" src="" style="transform: translate(-50%, 2vh) rotate(-90deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt5" style="transform: translate(-50%, 0) rotate(120deg);"><div class="menuitemholder" id="mih5" data-id=""><img id="icon5" src="" style="transform: translate(-50%, 2vh) rotate(-120deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt6" style="transform: translate(-50%, 0) rotate(150deg);"><div class="menuitemholder" id="mih6" data-id=""><img id="icon6" src="" style="transform: translate(-50%, 2vh) rotate(-150deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt7" style="transform: translate(-50%, 0) rotate(180deg);"><div class="menuitemholder" id="mih7" data-id=""><img id="icon7" src="" style="transform: translate(-50%, 2vh) rotate(-180deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt8" style="transform: translate(-50%, 0) rotate(210deg);"><div class="menuitemholder" id="mih8" data-id=""><img id="icon8" src="" style="transform: translate(-50%, 2vh) rotate(-210deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt9" style="transform: translate(-50%, 0) rotate(240deg);"><div class="menuitemholder" id="mih9" data-id=""><img id="icon9" src="" style="transform: translate(-50%, 2vh) rotate(-240deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt10" style="transform: translate(-50%, 0) rotate(270deg);"><div class="menuitemholder" id="mih10" data-id=""><img id="icon10" src="" style="transform: translate(-50%, 2vh) rotate(-270deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt11" style="transform: translate(-50%, 0) rotate(300deg);"><div class="menuitemholder" id="mih11" data-id=""><img id="icon11" src="" style="transform: translate(-50%, 2vh) rotate(-300deg);" /></div></div>
|
||||
<div class="hidden menuitem" id="opt12" style="transform: translate(-50%, 0) rotate(330deg);"><div class="menuitemholder" id="mih12" data-id=""><img id="icon12" src="" style="transform: translate(-50%, 2vh) rotate(-330deg);" /></div></div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var to;
|
||||
$(document).ready(function () {
|
||||
$('.menuitemholder').hover(function () {
|
||||
clearTimeout(to);
|
||||
$('.menuitemholder').removeClass('hover');
|
||||
$(this).addClass('hover');
|
||||
$('#menusecondarylabel').html($(this).attr('data-name'));
|
||||
}, function () {
|
||||
var t = this;
|
||||
to = setTimeout(function () {
|
||||
$(t).removeClass('hover');
|
||||
$('#menusecondarylabel').html('');
|
||||
}, 400);
|
||||
});
|
||||
|
||||
$('.menuitemholder').click(function () {
|
||||
CallBack('ItemClick', $(this).attr("data-id"));
|
||||
});
|
||||
});
|
||||
|
||||
window.addEventListener('keyup', (event) => {
|
||||
const keyName = event.key;
|
||||
if (event.key == 'Backspace' || event.key == 'Escape' || (!keepOpen && event.key == menukey)) {
|
||||
CallBack('MenuClosed');
|
||||
}
|
||||
});
|
||||
|
||||
function CallBack(f, p) {
|
||||
var pp = (p != undefined ? p : '');
|
||||
fetch(`https://${(window.GetParentResourceName ? window.GetParentResourceName() : "nui-frame-app")}/${f}`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json; charset=UTF-8',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"itemId": pp
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
function Reset() {
|
||||
$('#menuHolder').html($('#defaultMenu').html());
|
||||
$('.menuitemholder').hover(function () {
|
||||
clearTimeout(to);
|
||||
$('.menuitemholder').removeClass('hover');
|
||||
$(this).addClass('hover');
|
||||
$('#menusecondarylabel').html($(this).attr('data-name'));
|
||||
}, function () {
|
||||
var t = this;
|
||||
to = setTimeout(function () {
|
||||
$(t).removeClass('hover');
|
||||
$('#menusecondarylabel').html('');
|
||||
}, 400);
|
||||
});
|
||||
|
||||
$('.menuitemholder').click(function () {
|
||||
console.log('clicky: ' + $(this).attr("data-id"));
|
||||
CallBack('ItemClick', $(this).attr("data-id"));
|
||||
});
|
||||
return;
|
||||
for (let i = 1; i <= 12; i++) {
|
||||
if (!$('#opt' + 1).hasClass('hidden')) $('#opt' + 1).addClass('hidden');
|
||||
$('#mih' + i).attr('data-id', '');
|
||||
$('#mih' + i).attr('data-name', '');
|
||||
$('#icon' + i).attr('src', '');
|
||||
}
|
||||
}
|
||||
|
||||
function imageExists(image_url) {
|
||||
var http = new XMLHttpRequest();
|
||||
http.open('HEAD', image_url, false);
|
||||
http.send();
|
||||
return http.status != 404;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<!-- ****************** END MENU *********************-->
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,48 @@
|
||||
[licensing]
|
||||
key1=zTxkgVJTrx%2fLd%2bBFOIMMkloM0msdReIziAqa1JrcQ3Z4uEfxcu97uQ%3d%3d
|
||||
|
||||
[settings]
|
||||
; pay based on cycle time below
|
||||
autoPaycheck=false
|
||||
; real world minutes between paychecks
|
||||
paycheckCycle=30
|
||||
flatPaycheckAmount=1000
|
||||
; save totals per character - not implemented yet
|
||||
allowMultiCharacter=false
|
||||
; if true, allows players to set their own totals for RP
|
||||
looseMode=true
|
||||
|
||||
startingBank=69500
|
||||
startingCash=169
|
||||
startingDirty=0
|
||||
|
||||
ShowPrompts=true
|
||||
|
||||
;if you have custom ATM models you can add the spawn codes here separated by commans and no spaces
|
||||
additionalAtmModels=
|
||||
;set to minimum required increment allowed for ATM total entered
|
||||
atmIncrement=10
|
||||
;set whatever atm fee you want to charge players using the atm... set to zero for no fee
|
||||
atmFee=3.50
|
||||
;do not change this
|
||||
DesyncKey=690720923512
|
||||
|
||||
[callbacks]
|
||||
updateClient=BigDaddy-HUD:UpdateMoney
|
||||
;displays totals in plain text in upper right corner
|
||||
useLocalDisplay=false
|
||||
;see https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c for valid culture settings
|
||||
local=en-us
|
||||
|
||||
[keys]
|
||||
;see ValidKeys.txt that came with this resource for a list of keys to use. You must match the keys in that file exactly or the setting won't work
|
||||
SearchChoose=E
|
||||
PayGeneric=X
|
||||
|
||||
[locales]
|
||||
CurrencySymbol=$
|
||||
SearchPay=PAY THIS PERSON
|
||||
SearchRequest=REQUEST FROM THIS PERSON
|
||||
; make sure {PayGenericKey} does not get changed or it will break the function
|
||||
scanningPeopleTargets=Looking for who to pay... or [~r~{PayGenericKey}~w~] to just pay generic
|
||||
scanningPeopleTargetsRequest=Looking for who to request... or [~r~{PayGenericKey}~w~] to just request generic
|
||||
@@ -0,0 +1,20 @@
|
||||
resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5'
|
||||
|
||||
files {
|
||||
'vehicles.meta',
|
||||
'carvariations.meta',
|
||||
'carcols.meta',
|
||||
'handling.meta',
|
||||
'vehiclelayouts.meta', -- Not Required
|
||||
}
|
||||
|
||||
data_file 'HANDLING_FILE' 'handling.meta'
|
||||
data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
|
||||
data_file 'CARCOLS_FILE' 'carcols.meta'
|
||||
data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
|
||||
data_file 'VEHICLE_LAYOUTS_FILE' 'vehiclelayouts.meta' -- Not Required
|
||||
|
||||
|
||||
client_script {
|
||||
'vehicle_names.lua' -- Not Required
|
||||
}
|
||||
@@ -0,0 +1,756 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CVehicleModelInfoVarGlobal>
|
||||
<Sirens>
|
||||
<Item>
|
||||
<id value="32131"/> <!--2019 Toyota Tundra made by Zeakor Designs-->
|
||||
<name>2019 Toyota Tundra</name>
|
||||
<timeMultiplier value="1.00000000"/>
|
||||
<lightFalloffMax value="125.00000000"/>
|
||||
<lightFalloffExponent value="125.00000000"/>
|
||||
<lightInnerConeAngle value="2.29061000"/>
|
||||
<lightOuterConeAngle value="70.00000000"/>
|
||||
<lightOffset value="0.00000000"/>
|
||||
<textureName>VehicleLight_sirenlight</textureName>
|
||||
<sequencerBpm value="700"/>
|
||||
<leftHeadLight>
|
||||
<sequencer value="0"/>
|
||||
</leftHeadLight>
|
||||
<rightHeadLight>
|
||||
<sequencer value="0"/>
|
||||
</rightHeadLight>
|
||||
<leftTailLight>
|
||||
<sequencer value="0"/>
|
||||
</leftTailLight>
|
||||
<rightTailLight>
|
||||
<sequencer value="0"/>
|
||||
</rightTailLight>
|
||||
<leftHeadLightMultiples value="1"/>
|
||||
<rightHeadLightMultiples value="1"/>
|
||||
<leftTailLightMultiples value="2"/>
|
||||
<rightTailLightMultiples value="2"/>
|
||||
<useRealLights value="true"/>
|
||||
<sirens>
|
||||
<Item> <!--Siren 1-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4042322160"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 2-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4042322160"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 3-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="252645135"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 4-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="252645135"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 5-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="2964376780"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 6-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="185283379"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 7-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4042322160"/>
|
||||
<multiples value="3"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 8-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="252645135"/>
|
||||
<multiples value="3"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 9-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="2695536810"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 10-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="2689966250"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 11-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="2964376780"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 12-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="185283379"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 13-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="3.14159265"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="2694892714"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 14-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="3.14159265"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="168440661"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 15-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="1.57079633"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="252645135"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 16-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="-1.57079633"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="252645135"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 17-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4042322160"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="true"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 18-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="252645135"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 19-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="0"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="false"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="2862656160"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="1.10000000"/>
|
||||
<pull value="0.10000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="1.00000000"/>
|
||||
<lightGroup value="0"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="false"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
<Item> <!--Siren 20-->
|
||||
<rotation>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="4294967295"/>
|
||||
<multiples value="1"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</rotation>
|
||||
<flashiness>
|
||||
<delta value="0.00000000"/>
|
||||
<start value="0.00000000"/>
|
||||
<speed value="0.00000000"/>
|
||||
<sequencer value="1436592800"/>
|
||||
<multiples value="2"/>
|
||||
<direction value="false"/>
|
||||
<syncToBpm value="true"/>
|
||||
</flashiness>
|
||||
<corona>
|
||||
<intensity value="50.00000000"/>
|
||||
<size value="0.50000000"/>
|
||||
<pull value="0.02000000"/>
|
||||
<faceCamera value="false"/>
|
||||
</corona>
|
||||
<color value="0xFFFFBF00"/>
|
||||
<intensity value="0.50000000"/>
|
||||
<lightGroup value="1"/>
|
||||
<rotate value="false"/>
|
||||
<scale value="true"/>
|
||||
<scaleFactor value="10"/>
|
||||
<flash value="true"/>
|
||||
<light value="true"/>
|
||||
<spotLight value="true"/>
|
||||
<castShadows value="true"/>
|
||||
</Item>
|
||||
</sirens>
|
||||
</Item>
|
||||
</Sirens>
|
||||
</CVehicleModelInfoVarGlobal>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<CVehicleModelInfoVariation>
|
||||
<variationData>
|
||||
<Item>
|
||||
<modelName>LTUNDRA</modelName> <!--2019 Toyota Tundra made by Zeakor Designs-->
|
||||
<colors>
|
||||
<Item>
|
||||
<indices content="char_array">
|
||||
147
|
||||
</indices>
|
||||
<liveries>
|
||||
<Item value="false"/>
|
||||
<Item value="false"/>
|
||||
<Item value="false"/>
|
||||
</liveries>
|
||||
</Item>
|
||||
</colors>
|
||||
<kits>
|
||||
<Item>0_default_modkit</Item>
|
||||
</kits>
|
||||
<windowsWithExposedEdges/>
|
||||
<plateProbabilities>
|
||||
<Probabilities>
|
||||
<Item>
|
||||
<Name>Police guv plate</Name>
|
||||
<Value value="100"/>
|
||||
</Item>
|
||||
</Probabilities>
|
||||
</plateProbabilities>
|
||||
<lightSettings value="1"/>
|
||||
<sirenSettings value="32131"/>
|
||||
</Item>
|
||||
</variationData>
|
||||
</CVehicleModelInfoVariation>
|
||||
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CVehicleModelInfo__InitDataList>
|
||||
<residentTxd>vehshare</residentTxd>
|
||||
<residentAnims />
|
||||
<InitDatas>
|
||||
<Item>
|
||||
<modelName>LTUNDRA</modelName> <!--2019 Toyota Tundra made by Zeakor Designs-->
|
||||
<txdName>LTUNDRA</txdName>
|
||||
<handlingId>SANDKING</handlingId>
|
||||
<gameName>LTUNDRA</gameName>
|
||||
<vehicleMakeName />
|
||||
<expressionDictName>null</expressionDictName>
|
||||
<expressionName>null</expressionName>
|
||||
<animConvRoofDictName>null</animConvRoofDictName>
|
||||
<animConvRoofName>null</animConvRoofName>
|
||||
<animConvRoofWindowsAffected />
|
||||
<ptfxAssetName>null</ptfxAssetName>
|
||||
<audioNameHash>SANDKING</audioNameHash>
|
||||
<layout>LAYOUT_STANDARD</layout>
|
||||
<coverBoundOffsets>POLICE_COVER_OFFSET_INFO</coverBoundOffsets>
|
||||
<explosionInfo>EXPLOSION_INFO_DEFAULT</explosionInfo>
|
||||
<scenarioLayout />
|
||||
<cameraName>DEFAULT_FOLLOW_VEHICLE_CAMERA</cameraName>
|
||||
<aimCameraName>DEFAULT_THIRD_PERSON_VEHICLE_AIM_CAMERA</aimCameraName>
|
||||
<bonnetCameraName>VEHICLE_BONNET_CAMERA_MID_HIGH</bonnetCameraName>
|
||||
<povCameraName>DEFAULT_POV_CAMERA</povCameraName>
|
||||
<FirstPersonDriveByIKOffset x="0.000000" y="-0.060000" z="-0.050000" />
|
||||
<FirstPersonDriveByUnarmedIKOffset x="0.000000" y="-0.050000" z="-0.020000" />
|
||||
<FirstPersonProjectileDriveByIKOffset x="0.000000" y="-0.075000" z="-0.045000" />
|
||||
<FirstPersonProjectileDriveByPassengerIKOffset x="0.000000" y="-0.075000" z="-0.045000" />
|
||||
<FirstPersonProjectileDriveByRearLeftIKOffset x="0.000000" y="0.020000" z="0.030000" />
|
||||
<FirstPersonProjectileDriveByRearRightIKOffset x="0.000000" y="0.020000" z="0.030000" />
|
||||
<FirstPersonDriveByLeftPassengerIKOffset x="0.000000" y="0.000000" z="0.000000" />
|
||||
<FirstPersonDriveByRightPassengerIKOffset x="0.000000" y="-0.060000" z="-0.060000" />
|
||||
<FirstPersonDriveByRightRearPassengerIKOffset x="0.000000" y="0.000000" z="0.000000" />
|
||||
<FirstPersonDriveByLeftPassengerUnarmedIKOffset x="0.000000" y="0.000000" z="0.000000" />
|
||||
<FirstPersonDriveByRightPassengerUnarmedIKOffset x="0.000000" y="0.000000" z="0.000000" />
|
||||
<FirstPersonMobilePhoneOffset x="0.125000" y="0.293000" z="0.516000" />
|
||||
<FirstPersonPassengerMobilePhoneOffset x="0.136000" y="0.223000" z="0.415000" />
|
||||
<FirstPersonMobilePhoneSeatIKOffset>
|
||||
<Item>
|
||||
<Offset x="0.136000" y="0.146000" z="0.435000" />
|
||||
<SeatIndex value="2" />
|
||||
</Item>
|
||||
<Item>
|
||||
<Offset x="0.136000" y="0.146000" z="0.435000" />
|
||||
<SeatIndex value="3" />
|
||||
</Item>
|
||||
</FirstPersonMobilePhoneSeatIKOffset>
|
||||
<PovCameraOffset x="0.000000" y="-0.140000" z="0.650000" />
|
||||
<PovCameraVerticalAdjustmentForRollCage value="0.000000" />
|
||||
<PovPassengerCameraOffset x="0.000000" y="0.000000" z="0.000000" />
|
||||
<PovRearPassengerCameraOffset x="0.000000" y="0.000000" z="0.000000" />
|
||||
<vfxInfoName>VFXVEHICLEINFO_CAR_GENERIC</vfxInfoName>
|
||||
<shouldUseCinematicViewMode value="true" />
|
||||
<shouldCameraTransitionOnClimbUpDown value="false" />
|
||||
<shouldCameraIgnoreExiting value="false" />
|
||||
<AllowPretendOccupants value="true" />
|
||||
<AllowJoyriding value="false" />
|
||||
<AllowSundayDriving value="false" />
|
||||
<AllowBodyColorMapping value="true" />
|
||||
<wheelScale value="0.236900" />
|
||||
<wheelScaleRear value="0.236900" />
|
||||
<dirtLevelMin value="0.000000" />
|
||||
<dirtLevelMax value="0.300000" />
|
||||
<envEffScaleMin value="0.000000" />
|
||||
<envEffScaleMax value="1.000000" />
|
||||
<envEffScaleMin2 value="0.000000" />
|
||||
<envEffScaleMax2 value="1.000000" />
|
||||
<damageMapScale value="0.600000" />
|
||||
<damageOffsetScale value="1.000000" />
|
||||
<diffuseTint value="0x00FFFFFF" />
|
||||
<steerWheelMult value="1.000000" />
|
||||
<HDTextureDist value="5.000000" />
|
||||
<lodDistances content="float_array">
|
||||
100.000000
|
||||
200.000000
|
||||
300.000000
|
||||
400.000000
|
||||
500.000000
|
||||
500.000000
|
||||
</lodDistances>
|
||||
<minSeatHeight value="0.839" />
|
||||
<identicalModelSpawnDistance value="20" />
|
||||
<maxNumOfSameColor value="10" />
|
||||
<defaultBodyHealth value="1000.000000" />
|
||||
<pretendOccupantsScale value="1.000000" />
|
||||
<visibleSpawnDistScale value="1.000000" />
|
||||
<trackerPathWidth value="2.000000" />
|
||||
<weaponForceMult value="1.000000" />
|
||||
<frequency value="100" />
|
||||
<swankness>SWANKNESS_1</swankness>
|
||||
<maxNum value="2" />
|
||||
<flags>FLAG_ATTACH_TRAILER_ON_HIGHWAY FLAG_ATTACH_TRAILER_IN_CITY FLAG_HAS_LIVERY FLAG_EXTRAS_ALL FLAG_EXTRAS_STRONG FLAG_LAW_ENFORCEMENT FLAG_EMERGENCY_SERVICE FLAG_NO_RESPRAY FLAG_DONT_SPAWN_IN_CARGEN FLAG_REPORT_CRIME_IF_STANDING_ON</flags>
|
||||
<type>VEHICLE_TYPE_CAR</type>
|
||||
<plateType>VPT_FRONT_AND_BACK_PLATES</plateType>
|
||||
<dashboardType>VDT_GENTAXI</dashboardType>
|
||||
<vehicleClass>VC_EMERGENCY</vehicleClass>
|
||||
<wheelType>VWT_MUSCLE</wheelType>
|
||||
<trailers>
|
||||
<Item>boattrailer</Item>
|
||||
<Item>trailersmall</Item>
|
||||
<Item>trailersmall2</Item>
|
||||
</trailers>
|
||||
<additionalTrailers />
|
||||
<drivers />
|
||||
<extraIncludes />
|
||||
<doorsWithCollisionWhenClosed />
|
||||
<driveableDoors />
|
||||
<bumpersNeedToCollideWithMap value="false" />
|
||||
<needsRopeTexture value="false" />
|
||||
<requiredExtras />
|
||||
<rewards />
|
||||
<cinematicPartCamera>
|
||||
<Item>WHEEL_FRONT_RIGHT_CAMERA</Item>
|
||||
<Item>WHEEL_FRONT_LEFT_CAMERA</Item>
|
||||
<Item>WHEEL_REAR_RIGHT_CAMERA</Item>
|
||||
<Item>WHEEL_REAR_LEFT_CAMERA</Item>
|
||||
</cinematicPartCamera>
|
||||
<NmBraceOverrideSet />
|
||||
<buoyancySphereOffset x="0.000000" y="0.000000" z="0.000000" />
|
||||
<buoyancySphereSizeScale value="1.000000" />
|
||||
<pOverrideRagdollThreshold type="NULL" />
|
||||
<firstPersonDrivebyData>
|
||||
<Item>STD_POLICE_FRONT_LEFT</Item>
|
||||
<Item>STD_POLICE_FRONT_RIGHT</Item>
|
||||
<Item>STD_POLICE_REAR_LEFT</Item>
|
||||
<Item>STD_POLICE_REAR_RIGHT</Item>
|
||||
</firstPersonDrivebyData>
|
||||
</Item>
|
||||
</InitDatas>
|
||||
</CVehicleModelInfo__InitDataList>
|
||||
@@ -124,6 +124,7 @@ SIREN_ASSIGNMENTS = {
|
||||
['24ramambo'] = { 45, 16,40, 38, 48, 31 },
|
||||
['e350vanb'] = { 45, 16,40, 38, 48, 31 },
|
||||
['e450ambo'] = { 45, 16,40, 38, 48, 31 },
|
||||
['ltundra'] = { 45, 16,40, 38, 48, 31 },
|
||||
['11firevic'] = { 45, 16,40, 38, 48, 31 },
|
||||
['16fexp'] = { 45, 16,40, 38, 48, 31 },
|
||||
['23fdems18suv'] = { 45, 61, 62, 63, 48},
|
||||
|
||||