diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/fxmanifest.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/fxmanifest.lua new file mode 100644 index 000000000..592efc370 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/fxmanifest.lua @@ -0,0 +1,7 @@ +fx_version 'cerulean' +game 'gta5' + +lua54 'yes' +author 'John Chin' +description 'Weigh Station Shared Props' +version '1.0.0' \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation.ybn b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation.ybn new file mode 100644 index 000000000..59e37df70 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation.ybn differ diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_curtain01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_curtain01.ydr new file mode 100644 index 000000000..fe766be7c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_curtain01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb116aab74ae9fa8c4c4c6637ead8f7036da4a66d47ebc48f03d995ecffed425 +size 257201 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_curtainint.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_curtainint.ydr new file mode 100644 index 000000000..b0dddd988 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_curtainint.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:027d5e892b3061eae025a1c1fd9ccea3aa0909bcc1e42987cbe9a215beef8ff2 +size 3776714 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_doormain.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_doormain.ydr new file mode 100644 index 000000000..f4552bb0a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_doormain.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f42b473a4c1c00fd8e25ee0281a4ea6a6cba4e65eea882257a2a42e24f6c950a +size 65220 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ydr new file mode 100644 index 000000000..ffd6f6fda --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7609037bc0e847f0393b387726ed245c285d88fc78cbe7afdb653a69ae136bf +size 16132 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ytd b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ytd new file mode 100644 index 000000000..cec735080 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d205bb255fb80ffd96e9ce2e383b40f4af6e176d4431a4a1d40408f639012f3 +size 5882146 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ytyp b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ytyp new file mode 100644 index 000000000..3363ca27f Binary files /dev/null and b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_ext.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_extshared.ytyp b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_extshared.ytyp new file mode 100644 index 000000000..474b55af1 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_extshared.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ydr new file mode 100644 index 000000000..09a71ff7c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9ef2fc8728f3aa47d113e7263055caa3ce72ef271e2fbffd0220418fe06158e +size 6106 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ytd b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ytd new file mode 100644 index 000000000..ea2af4f9c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdd68e71be156d2a8effa604ff3c7e727d3e916259dabfbc64c1da80034c5000 +size 2556072 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ytyp b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ytyp new file mode 100644 index 000000000..76de4c595 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_int.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intfireext.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intfireext.ydr new file mode 100644 index 000000000..ddcfee620 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intfireext.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcabadef362ddce058733ed4826ac1d9cd1f30d22751f32035d515fd6b1dd40e +size 165756 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intlod.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intlod.ydr new file mode 100644 index 000000000..781b4db01 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intlod.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86da96ab36a6bb9d0ca6472287b50c2a4e9624b79822ceaa9adc9eabd602ea17 +size 5513 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intposters.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intposters.ydr new file mode 100644 index 000000000..c05885103 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_intposters.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:902a283fcfe33362efc85b79bb956982d149aed6a5584b74e3347fc3df83ec59 +size 10390 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_inttrimdet01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_inttrimdet01.ydr new file mode 100644 index 000000000..56a77b3e0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_inttrimdet01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28410807636ed30a88220bfb068d92d417d50a43bd607a413af5a93788ac1aff +size 327731 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_light01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_light01.ydr new file mode 100644 index 000000000..20b1a1e11 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_light01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7480fea83d6b7bea5828a0f95f20dc61002e9fdeccd06218374ce0e80a5bb08b +size 37135 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightamber.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightamber.ydr new file mode 100644 index 000000000..d02686b82 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightamber.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6a3689e672f2b9d2646586b98262fc75cc8113db3140bc62f2cacfadf6ed168 +size 897 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightgreen.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightgreen.ydr new file mode 100644 index 000000000..9b6c7805a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightgreen.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffa98460d7af6e1276fdcdf5c22636264c4617e626cbd50eb06d72a069a6f13f +size 1641 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightred.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightred.ydr new file mode 100644 index 000000000..d79097de7 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lightred.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06b51cc9f35ed36d4ba66aafcc20e6b0ac40a251a8f14c70a95cb08b7f05fd78 +size 1643 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lights01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lights01.ydr new file mode 100644 index 000000000..dd8e8ce70 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_lights01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2be7d53a49031482b39fe4a2c01f1c7bf82d3a6074e435f5c90858586d2cf4a4 +size 882 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_mirrorbathroom.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_mirrorbathroom.ydr new file mode 100644 index 000000000..1a8d2ba5c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_mirrorbathroom.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a0b10e181f5361852cde7081f3b29c22ae6016a4c35d14d9a07cbde3029bedc +size 2494 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor01.ydr new file mode 100644 index 000000000..eff17507e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac105e260e2fd954ab9eb542aa85c31d78f18d1d37b82b3bfb40e2e0ffc73fb5 +size 3409 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor02.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor02.ydr new file mode 100644 index 000000000..57f93aed9 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:377b95afe3db2db3500188ff4efc46918c143b239dad97afb3c9656a2ae35765 +size 3484 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor03.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor03.ydr new file mode 100644 index 000000000..17825afa0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_monitor03.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8950e3289f708814519f1328b50f32ae6aadc3684add8f5e60033797e206e63 +size 2122 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props.ytd b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props.ytd new file mode 100644 index 000000000..220912694 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92a858e78a43721bb0cbd4c717b7a19974777980c8ce9e0d1e316d3f4981c194 +size 27137788 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props.ytyp b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props.ytyp new file mode 100644 index 000000000..c2cbf0853 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props2.ytd b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props2.ytd new file mode 100644 index 000000000..3d2592d24 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_props2.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d234f23607fb75d25124463436b95e0a9bd7896f5d05a211dc4a61da35345efc +size 1294748 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_radioprop.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_radioprop.ydr new file mode 100644 index 000000000..8c02d23fe --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_radioprop.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f52d82cf30b7c138b81704d58abba4ffe6e5fc93bb00974943e37851bd6ee58 +size 694965 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign01.ydr new file mode 100644 index 000000000..d82719eaf --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:202387d54b9af6bbf0847afdcd928a5903af4a5fd1c769aee45f091357f3067a +size 214415 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign02.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign02.ydr new file mode 100644 index 000000000..6e95c7b39 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45e858517d6dce480c45d4d786292aa891ed4467c18d4f151835a99bf30c021f +size 1190440 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign03.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign03.ydr new file mode 100644 index 000000000..0664f354c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign03.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:572b71cd29f21bb7c6360d7f8255e42fdce5d2868bf97a3e75cbd398e5b94ab5 +size 354785 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign04.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign04.ydr new file mode 100644 index 000000000..7cb3507d5 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_roadsign04.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b51d4752664da8242f8b5efdbb6bc2cee815ffc343a79fbe6db1ca9f0afaa31 +size 214420 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sign01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sign01.ydr new file mode 100644 index 000000000..8e742c54d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sign01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5200636a9f09e5577fc8f758c89f1ecf3f27168e7bf479119f5d2f59ba6b941 +size 8706 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sign02.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sign02.ydr new file mode 100644 index 000000000..6fe59bc0e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sign02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c59ffd24bed92e6b7217693683ddf91586281c675fd3259df6f370aa58371f8 +size 501763 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sink.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sink.ydr new file mode 100644 index 000000000..1f6c9b01a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_sink.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec4dc752aa6479b1b46ebd8d4253e9ed8d68beb6aa626eabd7ff8759db559d3c +size 308970 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_table.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_table.ydr new file mode 100644 index 000000000..e0a34ba5e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_table.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57589fa86b403a54914789d6b59526c9383d3f4139a2a63c31b48f567d5683f9 +size 3879 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_toilet.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_toilet.ydr new file mode 100644 index 000000000..a5a0b1d95 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_toilet.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eca64cab30ef6537131545249c0f641a7a17e9a0b1d8253c1d09e5ba5aab0825 +size 527803 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_toiletroll.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_toiletroll.ydr new file mode 100644 index 000000000..ea21f2a65 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_toiletroll.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05ae1f78b84ff4c028067758da9110efa4629a7c42c78dcbd6f906b9ad7ea0dd +size 135524 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_vent.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_vent.ydr new file mode 100644 index 000000000..f2891eb1e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_vent.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a19825f1aeb5fb80989dccdec21535586c5d36a4c87f115502663d5bafafde79 +size 35477 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_windowint.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_windowint.ydr new file mode 100644 index 000000000..eae7adfda --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation-shared/stream/jd_weighstation_windowint.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68cd2c2adf97533ed8f0d0cac2a6c7a1039192477ab3892151cc9d236c998a54 +size 2784 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/MainLights/client.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/MainLights/client.lua new file mode 100644 index 000000000..6692779a0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/MainLights/client.lua @@ -0,0 +1,285 @@ +local redLightModel = `jd_weighstation_lightred` +local greenLightModel = `jd_weighstation_lightgreen` + +-- Active lights per lane (Now local entities) +local activeLights = { + LaneA = {} +} + +-- Lane states: true = green, false = red, nil = off +local laneStates = { + LaneA = nil +} + +local isInRange = false +local isNearControl = false +local playerAllowed = false + +-- AutoMode tracking (single lane) +local autoTrack = { + LaneA = { + detected = false, + active = false, + detectionThread = nil, + lastVeh = nil, + lastTrigger = 0 + } +} + +-- ============================================================ +-- THE FIX: GHOST OBJECT CLEANUP +-- ============================================================ +local function ForceCleanUp() + local models = { redLightModel, greenLightModel } + for _, model in ipairs(models) do + local handle, entity = FindFirstObject() + local success + repeat + if GetEntityModel(entity) == model then + SetEntityAsMissionEntity(entity, true, true) + DeleteEntity(entity) + end + success, entity = FindNextObject(handle) + until not success + EndFindObject(handle) + end +end + +-- ============================================================ +-- PERMISSION SYSTEM +-- ============================================================ +CreateThread(function() + ForceCleanUp() -- Run cleanup once when script starts + if Config.ACL.UseACL then + TriggerServerEvent("weigh_lights:checkPermissionMain") + else + playerAllowed = true + end +end) + +RegisterNetEvent("weigh_lights:permissionResultMain", function(allowed) + playerAllowed = allowed +end) + +-- ============================================================ +-- MODEL LOADING & SPAWNING +-- ============================================================ +local function loadModel(model) + if not HasModelLoaded(model) then + RequestModel(model) + local t0 = GetGameTimer() + while not HasModelLoaded(model) do + Wait(10) + if GetGameTimer() - t0 > 5000 then RequestModel(model) end + end + end +end + +local function clearLaneObjects(lane) + if activeLights[lane] then + for _, obj in ipairs(activeLights[lane]) do + if DoesEntityExist(obj) then + SetEntityAsMissionEntity(obj, true, true) + DeleteEntity(obj) + end + end + end + activeLights[lane] = {} +end + +local function spawnLaneLight(lane, model) + loadModel(model) + if not Config.MainLights.Lanes[lane] then return end + + clearLaneObjects(lane) -- Ensure clean slate before spawning + + for _, light in ipairs(Config.MainLights.Lanes[lane].Lights) do + local pos = light.coords + -- CRITICAL: 5th param is FALSE (Not networked) + local obj = CreateObjectNoOffset(model, pos.x, pos.y, pos.z, false, false, false) + + SetEntityCoordsNoOffset(obj, pos.x, pos.y, pos.z) + if light.rotation then + SetEntityRotation(obj, light.rotation.x, light.rotation.y, light.rotation.z, 2, true) + end + FreezeEntityPosition(obj, true) + SetEntityInvincible(obj, true) + table.insert(activeLights[lane], obj) + end +end + +-- ============================================================ +-- REFRESH LANE +-- ============================================================ +local function refreshLane(lane) + local state = laneStates[lane] + if state == nil then + clearLaneObjects(lane) + return + end + local model = state and greenLightModel or redLightModel + spawnLaneLight(lane, model) +end + +local function setLaneStateLocal(lane, state, notify) + laneStates[lane] = state + + if isInRange then + refreshLane(lane) + end + + if notify then + local desc = state == nil and "OFF" or (state and "GREEN" or "RED") + lib.notify({ + title = 'Weigh Station', + description = ("Lane A set to %s"):format(desc), + type = state == nil and 'inform' or (state and 'success' or 'error') + }) + end +end + +-- ============================================================ +-- NETWORK SYNC +-- ============================================================ +RegisterNetEvent("jd_weighlight:setLaneState", function(lane, state) + if lane ~= "LaneA" then return end + setLaneStateLocal(lane, state, false) +end) + +CreateThread(function() + Wait(3000) + TriggerServerEvent("jd_weighlight:requestState") +end) + +-- ============================================================ +-- RANGE CHECK +-- ============================================================ +CreateThread(function() + while true do + Wait(1000) + local pCoords = GetEntityCoords(PlayerPedId()) + local nearAny = false + + if Config.MainLights.Lanes.LaneA then + for _, light in ipairs(Config.MainLights.Lanes.LaneA.Lights) do + if #(pCoords - light.coords) < (Config.MainLights.LightSpawnRange or 200.0) then + nearAny = true + break + end + end + end + + if nearAny and not isInRange then + isInRange = true + TriggerServerEvent("jd_weighlight:requestState") + elseif not nearAny and isInRange then + isInRange = false + clearLaneObjects("LaneA") + autoTrack.LaneA.detected = false + autoTrack.LaneA.active = false + autoTrack.LaneA.lastVeh = nil + end + end +end) + +-- ============================================================ +-- CONTROL MENU +-- ============================================================ +local function openControlMenu() + local menu = { + id = 'jd_weighlight_menu_single', + title = 'Weigh Station Light Control', + options = { + { title = 'Lane A → GREEN', icon = 'check-circle', onSelect = function() + TriggerServerEvent("jd_weighlight:setLaneState", "LaneA", true) + end }, + { title = 'Lane A → RED', icon = 'ban', onSelect = function() + TriggerServerEvent("jd_weighlight:setLaneState", "LaneA", false) + end }, + { title = 'Lane A → OFF', icon = 'power-off', onSelect = function() + TriggerServerEvent("jd_weighlight:setLaneState", "LaneA", nil) + end }, + } + } + lib.registerContext(menu) + lib.showContext('jd_weighlight_menu_single') +end + +CreateThread(function() + while true do + Wait(300) + local dist = #(GetEntityCoords(PlayerPedId()) - Config.MainLights.ControlCoords) + if not Config.MainLights.AutoMode then + if dist < (Config.MainLights.ControlDistance or 1.5) and not isNearControl then + isNearControl = true + if playerAllowed then lib.showTextUI("[E] Control Weigh Lights") end + elseif dist >= (Config.MainLights.ControlDistance or 1.5) and isNearControl then + isNearControl = false + lib.hideTextUI() + end + end + end +end) + +CreateThread(function() + while true do + Wait(0) + if not Config.MainLights.AutoMode and isNearControl and playerAllowed and IsControlJustPressed(0, 38) then + openControlMenu() + end + end +end) + +-- ============================================================ +-- AUTO MODE (SINGLE LANE) +-- ============================================================ +local laneTriggerCenters = { + LaneA = vector3(2905.2993, 4171.1538, 50.2786) +} +local laneRadius = 1.0 +local leaveThreshold = 8.0 + +local function isVehicleAllowed(vehicle) + if not DoesEntityExist(vehicle) then return false end + local modelName = tostring(GetDisplayNameFromVehicleModel(GetEntityModel(vehicle)) or ""):lower() + local vClass = GetVehicleClass(vehicle) + if Config.RampLight.AllowedModels then + for _, m in ipairs(Config.RampLight.AllowedModels) do + if modelName == tostring(m):lower() then return true end + end + end + return Config.RampLight.AllowedClasses[vClass] ~= nil +end + +local function startLaneAutoThread() + local track = autoTrack.LaneA + if track.detectionThread then return end + + track.detectionThread = CreateThread(function() + while true do + Wait(400) + if isInRange then + local veh = GetVehiclePedIsIn(PlayerPedId(), false) + if veh ~= 0 and isVehicleAllowed(veh) then + local dist = #(GetEntityCoords(veh) - laneTriggerCenters.LaneA) + if dist <= laneRadius and not track.detected then + track.detected = true + track.lastVeh = veh + TriggerServerEvent("jd_weighlight:autoTrigger", "LaneA") + elseif dist > leaveThreshold and track.detected then + track.detected = false + track.lastVeh = nil + TriggerServerEvent("jd_weighlight:setLaneState", "LaneA", true) + end + end + end + end + end) +end + +if Config.MainLights.AutoMode then + CreateThread(function() + Wait(2000) + startLaneAutoThread() + end) +end \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/MainLights/server.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/MainLights/server.lua new file mode 100644 index 000000000..3a1301c6d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/MainLights/server.lua @@ -0,0 +1,83 @@ +-- ============================================================ +-- LANE STATE (SINGLE LANE) +-- ============================================================ +local laneStates = { + LaneA = Config.MainLights and Config.MainLights.AutoMode and true or nil +} + +-- Prevent multiple timers from overlapping +local autoTimers = { + LaneA = false +} + +-- ============================================================ +-- SEND STATE TO PLAYER +-- ============================================================ +RegisterNetEvent("jd_weighlight:requestState") +AddEventHandler("jd_weighlight:requestState", function() + local src = source + -- Sends the current server truth to the client + TriggerClientEvent("jd_weighlight:setLaneState", src, "LaneA", laneStates.LaneA) +end) + +-- ============================================================ +-- SET LANE STATE (MANUAL) +-- ============================================================ +RegisterNetEvent("jd_weighlight:setLaneState") +AddEventHandler("jd_weighlight:setLaneState", function(lane, state) + local src = source + if lane ~= "LaneA" then return end + + -- ACL check + if Config.ACL.UseACL and not IsPlayerAceAllowed(src, Config.ACL.MainLights) then + print(("[weigh_lights] Player %d denied access"):format(src)) + return + end + + -- Update the Master State and tell EVERYONE to update their local objects + laneStates.LaneA = state + TriggerClientEvent("jd_weighlight:setLaneState", -1, "LaneA", state) +end) + +-- ============================================================ +-- AUTO MODE TRIGGER +-- ============================================================ +RegisterNetEvent("jd_weighlight:autoTrigger") +AddEventHandler("jd_weighlight:autoTrigger", function(lane) + if lane ~= "LaneA" or not Config.MainLights.AutoMode then return end + + -- Safety: If a timer is already running, don't start another one + if autoTimers.LaneA then return end + + -- Turn the light RED for everyone + laneStates.LaneA = false + TriggerClientEvent("jd_weighlight:setLaneState", -1, "LaneA", false) + + autoTimers.LaneA = true + CreateThread(function() + Wait(30000) -- 30 Seconds + + autoTimers.LaneA = false + + -- Only set back to GREEN if a staff member hasn't manually changed it or turned it OFF + if laneStates.LaneA == false then + laneStates.LaneA = true + TriggerClientEvent("jd_weighlight:setLaneState", -1, "LaneA", true) + end + end) +end) + +-- ============================================================ +-- PERMISSION CHECK +-- ============================================================ +RegisterNetEvent("weigh_lights:checkPermissionMain") +AddEventHandler("weigh_lights:checkPermissionMain", function() + local src = source + local allowed = true + + if Config.ACL.UseACL then + allowed = IsPlayerAceAllowed(src, Config.ACL.MainLights) + end + + TriggerClientEvent("weigh_lights:permissionResultMain", src, allowed) +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/RoadSignLights/client.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/RoadSignLights/client.lua new file mode 100644 index 000000000..c38f15124 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/RoadSignLights/client.lua @@ -0,0 +1,180 @@ +local lightSets = {} +local playerAllowed = false + +-- ============================================================ +-- REQUEST PERMISSION IF ACL IS ENABLED +-- ============================================================ +CreateThread(function() + if Config.ACL.UseACL then + TriggerServerEvent("weigh_lights:checkPermission") + else + playerAllowed = true -- bypass permission + end +end) + +RegisterNetEvent("weigh_lights:permissionResult", function(allowed) + playerAllowed = allowed +end) + +-- ============================================================ +-- LOAD CONFIGURED AMBER LIGHT SETS +-- ============================================================ +CreateThread(function() + for _, cfg in ipairs(Config.RoadSigns.LightSets) do + table.insert(lightSets, { + name = cfg.name, + model = cfg.model, + coordsA = cfg.coordsA, + coordsB = cfg.coordsB, + rotA = cfg.rotA or vector3(0.0, 0.0, 0.0), + rotB = cfg.rotB or vector3(0.0, 0.0, 0.0), + control = cfg.control, + distance = cfg.distance or 2.0, + propA = nil, + propB = nil, + flashing = false, + pointCreated = false + }) + end +end) + +-- ============================================================ +-- REQUEST SYNC EVERY 10 SECONDS +-- ============================================================ +CreateThread(function() + while true do + TriggerServerEvent("weigh_lights:requestSync") + Wait(10000) + end +end) + +-- ============================================================ +-- SYNC ALL STATES +-- ============================================================ +RegisterNetEvent("weigh_lights:syncAll", function(states) + for _, set in ipairs(lightSets) do + if states[set.name] ~= nil then + local desired = states[set.name] + + if desired and not set.flashing then + StartFlashing(set) + set.flashing = true + elseif not desired and set.flashing then + StopFlashing(set) + set.flashing = false + end + end + end +end) + +-- ============================================================ +-- SYNC A SINGLE SET +-- ============================================================ +RegisterNetEvent("weigh_lights:syncSingle", function(setName, state) + for _, set in ipairs(lightSets) do + if set.name == setName then + if state and not set.flashing then + StartFlashing(set) + set.flashing = true + elseif not state and set.flashing then + StopFlashing(set) + set.flashing = false + end + break + end + end +end) + +-- ============================================================ +-- FLASHING LOGIC +-- ============================================================ +function StartFlashing(set) + if DoesEntityExist(set.propA) then DeleteEntity(set.propA) end + if DoesEntityExist(set.propB) then DeleteEntity(set.propB) end + + if not HasModelLoaded(set.model) then + RequestModel(set.model) + while not HasModelLoaded(set.model) do Wait(10) end + end + + local zOffset = -0.09 + local posA = set.coordsA + vector3(0.0, 0.0, zOffset) + local posB = set.coordsB + vector3(0.0, 0.0, zOffset) + + set.propA = CreateObject(set.model, posA.x, posA.y, posA.z, false, false, false) + set.propB = CreateObject(set.model, posB.x, posB.y, posB.z, false, false, false) + + SetEntityRotation(set.propA, set.rotA.x, set.rotA.y, set.rotA.z, 2, true) + SetEntityRotation(set.propB, set.rotB.x, set.rotB.y, set.rotB.z, 2, true) + + SetEntityVisible(set.propA, false, false) + SetEntityVisible(set.propB, false, false) + + SetEntityAsMissionEntity(set.propA, true, true) + SetEntityAsMissionEntity(set.propB, true, true) + + CreateThread(function() + local toggle = true + while set.flashing do + if toggle then + SetEntityVisible(set.propA, true, false) + SetEntityVisible(set.propB, false, false) + else + SetEntityVisible(set.propA, false, false) + SetEntityVisible(set.propB, true, false) + end + toggle = not toggle + Wait(500) + end + + if DoesEntityExist(set.propA) then DeleteEntity(set.propA) end + if DoesEntityExist(set.propB) then DeleteEntity(set.propB) end + set.propA = nil + set.propB = nil + end) +end + +function StopFlashing(set) + set.flashing = false +end + +-- ============================================================ +-- OX_LIB E-KEY INTERACTION (with ACL toggle) +-- ============================================================ +CreateThread(function() + while #lightSets == 0 do Wait(100) end + + -- wait until permission is determined + if Config.ACL.UseACL then + while playerAllowed == false do Wait(100) end + end + + for _, set in ipairs(lightSets) do + if set.control and not set.pointCreated then + local point = lib.points.new(set.control, set.distance) + set.pointCreated = true + + function point:nearby() + -- bypass or check permission + if Config.ACL.UseACL and not playerAllowed then + lib.hideTextUI() + return + end + + if self.currentDistance < set.distance then + lib.showTextUI("[E] Toggle Amber Light: " .. set.name) + + if IsControlJustPressed(0, 38) then + TriggerServerEvent("weigh_lights:toggleLight", set.name, not set.flashing) + end + else + lib.hideTextUI() + end + end + + function point:onExit() + lib.hideTextUI() + end + end + end +end) diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/RoadSignLights/server.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/RoadSignLights/server.lua new file mode 100644 index 000000000..4673e7622 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/RoadSignLights/server.lua @@ -0,0 +1,44 @@ +local lightStates = {} + +-- ============================================================ +-- REQUEST SYNC +-- ============================================================ +RegisterNetEvent("weigh_lights:requestSync") +AddEventHandler("weigh_lights:requestSync", function() + local src = source + TriggerClientEvent("weigh_lights:syncAll", src, lightStates) +end) + +-- ============================================================ +-- TOGGLE LIGHT +-- ============================================================ +RegisterNetEvent("weigh_lights:toggleLight") +AddEventHandler("weigh_lights:toggleLight", function(setName, newState) + local src = source + + -- Only check ACL if UseACL is true + if Config.ACL.UseACL then + if not IsPlayerAceAllowed(src, Config.ACL.AmberLights) then + print(("[weigh_lights] Player %d tried to toggle light '%s' without permission!"):format(src, setName)) + return + end + end + + lightStates[setName] = newState + TriggerClientEvent("weigh_lights:syncSingle", -1, setName, newState) +end) + +-- ============================================================ +-- CHECK PERMISSION +-- ============================================================ +RegisterNetEvent("weigh_lights:checkPermission") +AddEventHandler("weigh_lights:checkPermission", function() + local src = source + local allowed = true -- default allow if ACL disabled + + if Config.ACL.UseACL then + allowed = IsPlayerAceAllowed(src, Config.ACL.AmberLights) + end + + TriggerClientEvent("weigh_lights:permissionResult", src, allowed) +end) diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/client.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/client.lua new file mode 100644 index 000000000..7cb956540 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/client.lua @@ -0,0 +1,185 @@ +-- WeighUi/client.lua +local uiOpen = false +local checkDistance = 4.0 +local truckWeights = {} +local truckTrailers = {} +local trucksOnLane = {} +local lastLaneWeight = {} + +local serverCallbacks = {} + +-- ========================= +-- CUSTOM COORDINATES +-- ========================= +local laneTriggerCenters = { + LaneA = vector3(2905.2993, 4171.1538, 50.2786) +} + +-- ========================= +-- Helpers +-- ========================= +local function IsModelInList(modelHash, list) + for _, name in ipairs(list or {}) do + if GetHashKey(name) == modelHash then + return true + end + end + return false +end + +function TriggerServerCallback(name, cb, ...) + local id = math.random(1, 999999) + serverCallbacks[id] = cb + TriggerServerEvent(name, id, ...) +end + +RegisterNetEvent("weighstation:serverCallback", function(id, ...) + if serverCallbacks[id] then + serverCallbacks[id](...) + serverCallbacks[id] = nil + end +end) + +-- ========================= +-- Lane initialization +-- ========================= +trucksOnLane["LaneA"] = {} +lastLaneWeight["LaneA"] = nil + +-- ========================= +-- UI Logic +-- ========================= +local function ToggleUI(open) + uiOpen = open + SetNuiFocus(open, open) + SendNUIMessage({ action = open and "showUI" or "hideUI" }) + + if open then + TriggerServerCallback("weighstation:getRecentVehicles", function(recent) + SendNUIMessage({ action = "updateRecentVehicles", recent = recent }) + end) + TriggerServerCallback("weighstation:getStats", function(stats) + SendNUIMessage({ + action = "updateStats", + totalTrucks = stats.totalTrucks or 0, + avgWeight = stats.avgWeight or 0 + }) + end) + end +end + +local function ShowPopup(text) + SendNUIMessage({ action = "showPopup", text = text }) +end + +local function HidePopup() + SendNUIMessage({ action = "hidePopup" }) +end + +-- ========================= +-- Detection Threads +-- ========================= +CreateThread(function() + while true do + Wait(0) + local ped = PlayerPedId() + local pos = GetEntityCoords(ped) + local controlPos = Config.MainLights.ControlCoords + local dist = #(pos - controlPos) + + if dist < (Config.MainLights.ControlDistance or 2.0) then + ShowPopup("[G] Open Weigh Station") + if IsControlJustPressed(0, 47) and not uiOpen then + ToggleUI(true) + end + else + HidePopup() + end + end +end) + +CreateThread(function() + while true do + Wait(1000) + local vehicles = GetGamePool('CVehicle') + local laneName = "LaneA" + local laneCenter = laneTriggerCenters[laneName] + + if laneCenter then + local laneWeight = nil + local laneTruckFound = nil + local minDist = checkDistance + 0.01 + + for _, vehicle in ipairs(vehicles) do + if DoesEntityExist(vehicle) and not IsEntityDead(vehicle) then + local model = GetEntityModel(vehicle) + + if IsModelInList(model, Config.RampLight.AllowedModels) then + local vehiclePos = GetEntityCoords(vehicle) + local distToLane = #(vehiclePos - laneCenter) + + if distToLane <= checkDistance and distToLane < minDist then + minDist = distToLane + local hasTrailer, trailer = GetVehicleTrailerVehicle(vehicle) + local plate = GetVehicleNumberPlateText(vehicle) + + -- PERSISTENT WEIGHT LOGIC START + if not truckWeights[vehicle] or truckTrailers[vehicle] ~= trailer then + + -- 1. Generate Seed from License Plate + local seed = 0 + for i = 1, #plate do + seed = seed + string.byte(plate, i) + end + + -- 2. Set Seed (Forces math.random to be identical to Station 02) + math.randomseed(seed) + + if hasTrailer and trailer ~= 0 then + local trailerModel = GetEntityModel(trailer) + if IsModelInList(trailerModel, Config.RampLight.HeavyModels) then + truckWeights[vehicle] = math.random(85000, 125000) + elseif IsModelInList(trailerModel, Config.RampLight.LightModels) then + truckWeights[vehicle] = math.random(35000, 55000) + else + truckWeights[vehicle] = math.random(40000, 100000) + end + else + truckWeights[vehicle] = math.random(32000, 45000) -- Bobtail + end + + -- 3. Reset Seed for other system functions + math.randomseed(GetGameTimer()) + + truckTrailers[vehicle] = trailer + local truckModel = GetDisplayNameFromVehicleModel(model) + local trailerModelName = (hasTrailer and trailer ~= 0) and GetDisplayNameFromVehicleModel(GetEntityModel(trailer)) or nil + + TriggerServerEvent("weighstation:logTruck", plate, truckModel, trailerModelName, truckWeights[vehicle]) + end + -- PERSISTENT WEIGHT LOGIC END + + laneWeight = truckWeights[vehicle] + laneTruckFound = vehicle + end + end + end + end + + if lastLaneWeight[laneName] ~= laneWeight then + lastLaneWeight[laneName] = laneWeight + SendNUIMessage({ + action = "updateWeight", + lane = laneName, + weight = laneWeight, + vehicle = laneTruckFound or nil + }) + end + end + end +end) + +RegisterNUICallback('closeUI', function(data, cb) + ToggleUI(false) + cb('ok') +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/script.js b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/script.js new file mode 100644 index 000000000..997f9e53b --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/script.js @@ -0,0 +1,98 @@ +document.addEventListener("DOMContentLoaded", () => { + const win = document.getElementById("browser-window"); + const closeBtn = document.getElementById("close-btn"); + + // Lane status (Lane B Removed) + const statusLaneA = document.getElementById("status-laneA"); + + // Recent vehicles log + const recentVehicles = document.getElementById("recent-vehicles"); + + // Totals / Summary + const totalTrucksEl = document.getElementById("total-trucks"); + const avgWeightEl = document.getElementById("avg-weight"); + const overweightCountEl = document.getElementById("overweight-count"); + + // Popup Logic (Keep existing) + const popup = document.createElement("div"); + popup.id = "popup"; + popup.style.position = "fixed"; + popup.style.top = "20px"; + popup.style.left = "20px"; + popup.style.padding = "10px 20px"; + popup.style.backgroundColor = "#000080"; + popup.style.color = "#fff"; + popup.style.fontFamily = "MS Sans Serif, Arial, sans-serif"; + popup.style.fontSize = "14px"; + popup.style.fontWeight = "bold"; + popup.style.border = "2px solid #000"; + popup.style.display = "none"; + popup.style.zIndex = "9999"; + popup.style.borderRadius = "4px"; + document.body.appendChild(popup); + + let recentVehiclesData = []; + let totalTrucks = 0; + let totalWeight = 0; + let overweightCount = 0; + let loggedVehicles = {}; + + window.addEventListener("message", (event) => { + const data = event.data; + + if (data.action === "showUI") { + win.style.display = "block"; + document.body.style.cursor = "default"; + } else if (data.action === "hideUI") { + win.style.display = "none"; + document.body.style.cursor = "none"; + } else if (data.action === "showPopup") { + popup.innerText = data.text; + popup.style.display = "block"; + } else if (data.action === "hidePopup") { + popup.style.display = "none"; + } else if (data.action === "updateWeight") { + // Filter: Only update if the data is for LaneA + if (data.lane !== "LaneA") return; + + const laneWeightEl = document.getElementById("laneA-weight"); + laneWeightEl.innerText = data.weight ? data.weight + " LBS" : "-- LBS"; + + if (data.weight) { + statusLaneA.innerText = data.weight > 80000 ? `Lane A: ⚠️ Overweight` : `Lane A: Occupied`; + } else { + statusLaneA.innerText = `Lane A: Open`; + } + + if (data.vehicle && data.weight && !loggedVehicles[data.vehicle]) { + loggedVehicles[data.vehicle] = true; + totalTrucks++; + totalWeight += data.weight; + if (data.weight > 80000) overweightCount++; + + totalTrucksEl.innerText = totalTrucks; + avgWeightEl.innerText = Math.floor(totalWeight / totalTrucks); + overweightCountEl.innerText = overweightCount; + + const entry = `${new Date().toLocaleTimeString()} - Lane A - ${data.weight} LBS`; + recentVehiclesData.unshift(entry); + if (recentVehiclesData.length > 10) recentVehiclesData.pop(); + recentVehicles.innerHTML = recentVehiclesData.map(e => `
  • ${e}
  • `).join(""); + } + + if (!data.weight && data.vehicle) { + loggedVehicles[data.vehicle] = false; + } + } + }); + + closeBtn.addEventListener("click", () => { + fetch(`https://${GetParentResourceName()}/closeUI`, { + method: 'POST', + body: JSON.stringify({}) + }).finally(() => { + win.style.display = "none"; + document.body.style.cursor = "none"; + }); + }); +}); \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/style.css b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/style.css new file mode 100644 index 000000000..a62bdf677 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/style.css @@ -0,0 +1,116 @@ +body { + font-family: "MS Sans Serif", Arial, sans-serif; + background-color: transparent; + margin: 0; + padding: 0; +} + +/* Browser window */ +#browser-window { + width: 800px; + height: 600px; + background-color: #c0c0c0; + border: 3px solid #000; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + display: none; + box-shadow: 7px 7px 0px #000; + padding: 0; + overflow: hidden; +} + +/* Top bar */ +#browser-topbar { + height: 30px; + background-color: #000080; + color: #fff; + padding: 6px; + display: flex; + justify-content: space-between; + align-items: center; + font-weight: bold; + font-size: 14px; +} + +/* URL tab */ +#tab { + font-weight: normal; + background-color: #c0c0c0; + color: #000; + padding: 4px 8px; + border: 2px inset #fff; + margin-left: 4px; + font-size: 13px; +} + +/* Close button */ +#close-btn { + width: 25px; + height: 25px; + cursor: pointer; + font-weight: bold; +} +#close-btn:hover { + background: #ff0000; + color: #fff; +} + +/* Menu buttons */ +#browser-menu { + display: flex; + height: 30px; + background-color: #c0c0c0; + border-bottom: 2px inset #fff; +} +.menu-btn { + border: 2px outset #fff; + margin: 2px; + padding: 4px 10px; + background-color: #c0c0c0; + cursor: pointer; + font-size: 13px; +} +.menu-btn:active { + border-style: inset; +} + +/* Content area */ +#browser-content { + background-color: #e0e0e0; + padding: 30px; + font-size: 16px; + border-top: 2px solid #fff; + border-bottom: 2px solid #000; + height: calc(100% - 30px - 30px); + overflow-y: auto; +} + +/* Lane boxes */ +.lane { + margin-top: 15px; + padding: 10px; + border: 2px inset #fff; + background-color: #c0c0c0; + font-size: 16px; +} +.lane-name { + font-weight: bold; +} + +/* Lane status, log, summary */ +.lane-status, .log, .summary { + margin-top: 20px; + padding: 10px; + border: 2px inset #fff; + background-color: #c0c0c0; +} +.lane-status h3, .log h3, .summary h3 { + margin: 0 0 5px 0; + font-size: 16px; +} +.log ul { + padding-left: 20px; + margin: 0; +} diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/ui.html b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/ui.html new file mode 100644 index 000000000..9b9271ff4 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/html/ui.html @@ -0,0 +1,51 @@ + + + + +Weigh Station UI + + + +
    +
    + www.sanandreasdot.gov/panel + +
    + +
    + + + + +
    + +
    +

    Weigh Station Panel

    + +
    + Lane A: -- LBS +
    + +
    +

    Lane Status

    +
    Lane A: Open
    +
    + +
    +

    Recent Vehicles

    +
      +
    +
    + +
    +

    Summary

    +
    Total Trucks Today: 0
    +
    Average Weight: 0 LBS
    +
    Overweight Trucks: 0
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/server.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/server.lua new file mode 100644 index 000000000..394c45858 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/WeighUi/server.lua @@ -0,0 +1,46 @@ +-- WeighUi/server.lua +-- In-memory logging for weigh station + +local recentTrucks = {} -- FIFO queue for last 10 trucks +local totalWeightToday = 0 +local totalTrucksToday = 0 + +-- ========================= +-- Log a truck +-- ========================= +RegisterNetEvent("weighstation:logTruck", function(plate, truckModel, trailerModel, weight) + -- Add to recent trucks (at front) + table.insert(recentTrucks, 1, { + plate = plate, + truckModel = truckModel, + trailerModel = trailerModel or "none", + weight = weight + }) + + -- Keep only last 10 + if #recentTrucks > 10 then + table.remove(recentTrucks) + end + + -- Update totals + totalTrucksToday = totalTrucksToday + 1 + totalWeightToday = totalWeightToday + weight +end) + +-- ========================= +-- Get recent vehicles +-- ========================= +RegisterNetEvent("weighstation:getRecentVehicles", function(id) + TriggerClientEvent("weighstation:serverCallback", source, id, recentTrucks) +end) + +-- ========================= +-- Get stats +-- ========================= +RegisterNetEvent("weighstation:getStats", function(id) + local avgWeight = totalTrucksToday > 0 and totalWeightToday / totalTrucksToday or 0 + TriggerClientEvent("weighstation:serverCallback", source, id, { + totalTrucks = totalTrucksToday, + avgWeight = avgWeight + }) +end) diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/config.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/config.lua new file mode 100644 index 000000000..cbbcb577d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/config.lua @@ -0,0 +1,81 @@ +Config = {} + +-- ============================================= +-- ACE PERMISSIONS +-- ============================================= +Config.ACL = { + UseACL = false, -- set to false to disable ACE checks allowing anyone to use the light controls + MainLights = "weighstation.mainlights", + AmberLights = "weighstation.amberlights" +} + +-- ============================================= +-- MAIN WEIGH STATION TRAFFIC LIGHTS +-- ============================================= +Config.MainLights = { + AutoMode = true, + Lanes = { + LaneA = { + Lights = { + { + coords = vector3(2911.517090, 4153.126465, 58.026089), + rotation = vector3(0.0, 0.0, 0.0) + }, + { + coords = vector3(2896.470703, 4179.305664, 56.372925), + rotation = vector3(20.0, -90.0, 20.0) + }, + }, + } + }, + + ControlCoords = vector3(2920.2078, 4191.4390, 50.4580), + ControlDistance = 1.0, + LightSpawnRange = 1000.0, + ResyncTime = 60000 +} + + +-- ============================================= +-- ROAD SIGN / AMBER LIGHT SETS +-- ============================================= +Config.RoadSigns = { + LightSets = { + { + name = "San Chainski", + model = `jd_weighstation_lightamber`, + coordsA = vector3(2946.227051, 3795.911865, 54.827042), + rotA = vector3(0.0, 0.0, -18.46), + coordsB = vector3(2947.412842, 3795.516113, 54.827042), + rotB = vector3(0.0, 0.0, -18.46), + control = vector3(2946.8794, 3795.7717, 52.5899), + distance = 1.0 + } + } +} + + + +-- ============================================= +-- WEIGH STATION RAMP LIGHT SYSTEM +-- ============================================= +Config.RampLight = { + AllowedClasses = { + [18] = false, + [20] = false, + }, +AllowedModels = { "phantom", "hauler", "packer", "phantom3", "hauler2", "packer2" }, -- ← container truck models + + HeavyModels = { + "TRAILER", -- ← container heavy trailers + "TRAILERS", "TRAILER2", "TRAILER3", "TRAILER4", + "trailers", "trailers2", "trailers3", "trailers4", + "freighttrailer", "armytanker", "docktrailer" + }, + + LightModels = { + "tr2", "tr3", "tr4", "trflat", -- ← container light trailers + "tanker", "tanker2", "trailerlogs", + "tvtrailer", "baletrailer", "graintrailer" + }, +} \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/fxmanifest.lua b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/fxmanifest.lua new file mode 100644 index 000000000..83a956c61 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/fxmanifest.lua @@ -0,0 +1,33 @@ +fx_version 'cerulean' +game 'gta5' + +lua54 'yes' +author 'John Chin' +description 'Weigh Stations' +version '1.0.0' + + +shared_scripts { + '@ox_lib/init.lua', + 'config.lua' +} + +client_scripts { + 'MainLights/client.lua', + 'RoadSignLights/client.lua', + 'WeighUi/client.lua' +} + +server_scripts { + 'MainLights/server.lua', + 'RoadSignLights/server.lua', + 'WeighUi/server.lua' +} + +ui_page 'WeighUi/html/ui.html' + +files { + 'WeighUi/html/ui.html', + 'WeighUi/html/style.css', + 'WeighUi/html/script.js' +} diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/_manifest.ymf b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/_manifest.ymf new file mode 100644 index 000000000..ff88eb036 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/_manifest.ymf differ diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09_d.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09_d.ydr new file mode 100644 index 000000000..c085677c8 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09_d.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97dc57e2b3700d3f4866a9011706db998c3f6c0d8ddba747eb905dc8c5575191 +size 247298 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09_desert.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09_desert.ydr new file mode 100644 index 000000000..e7fc8ad77 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09_desert.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ef7860d513942d9f5f2333344451dd09399895de684744d88fa3facbe4fc337 +size 67871 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09b_desert.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09b_desert.ydr new file mode 100644 index 000000000..b16c5012d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_05_land09b_desert.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b88ccdcf9ca315751f8a7986128df933a272c4164d4e459e7b111d7f76088d4d +size 1197072 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_3.ybn b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_3.ybn new file mode 100644 index 000000000..001585721 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_3.ybn differ diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_09.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_09.ydr new file mode 100644 index 000000000..4b25e3d14 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_09.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88c89d8979e70d409c764643d30c02d641e891e6144867aec0f1e19072924628 +size 529262 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_10.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_10.ydr new file mode 100644 index 000000000..082bc3ab5 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_10.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98183394ebdb3db7cf7cea56cb8a4570430f75c1d2930ed285aeb99c54f26e84 +size 397673 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_10_dcl.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_10_dcl.ydr new file mode 100644 index 000000000..207aa428f --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_10_dcl.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d8c40a81bd305600265682f3cacf0722dfbaccfc10c5fa9cf6bbb969d1f1d28 +size 668898 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_9_dcl.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_9_dcl.ydr new file mode 100644 index 000000000..37acdc3ab --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_fw_9_dcl.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ae2ddd2c07cdda504280719f6ffc9431b50b6f1b48164bea11c0d9255357ae0 +size 2283783 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_tele_pole_wirm03.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_tele_pole_wirm03.ydr new file mode 100644 index 000000000..455e9148f --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/cs2_roads_tele_pole_wirm03.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fbb3d7c38fdb92c9fb5922437f714c868e235fa7158b4a2fcb75a26d1f0630f +size 1856 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05.ymap new file mode 100644 index 000000000..25b505e1d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed3c8a0cb4fd542442b8d18fab213c281076f8e98b2f13821f419665b9637c81 +size 11444 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_10.ybn b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_10.ybn new file mode 100644 index 000000000..5d28116c0 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_10.ybn differ diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_critical_0.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_critical_0.ymap new file mode 100644 index 000000000..1eecbcbcb --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_critical_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b545e2c39e826b03514a3416baba98ab661bd4007f953cb4c9a7ea9bf1f74fb +size 11249 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_grass_0.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_grass_0.ymap new file mode 100644 index 000000000..93e0394d3 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_grass_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96a194c297d4c8a513e458772ea0ccb6095800f9beccd6d36147aa0be751f173 +size 966748 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_long_0.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_long_0.ymap new file mode 100644 index 000000000..fdf800376 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_long_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:544d76ec9b75fc5d10bdcf1c2f270e8c1db4118addeedf7d539cee5c1c9b0d06 +size 10231 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_strm_3.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_strm_3.ymap new file mode 100644 index 000000000..20376b166 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_05_strm_3.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c26360951758e06870c6969fa71ba1a634bc72c1751b6aa817db8e2e6b8c9210 +size 10157 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads.ymap new file mode 100644 index 000000000..670570292 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38128e3388090299ed4f42ad83ca64ef43a6e0c8bbc537bf7cef3afc9b695200 +size 11260 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads_critical_0.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads_critical_0.ymap new file mode 100644 index 000000000..60510a6c9 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads_critical_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bb754e8f266c540bde02ae82231a265fc9cc4db7c99f7d80f9ec1c413d049f4 +size 10038 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads_strm_1.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads_strm_1.ymap new file mode 100644 index 000000000..51a119e9a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/hei_cs2_roads_strm_1.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be470576c1d41a347960872635fa80dd983a9c0fb0a2b300d9b3a279a8bcf694 +size 15538 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_extlod_1.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_extlod_1.ymap new file mode 100644 index 000000000..42c32532c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_extlod_1.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18a74a1b486bd7239de2043252b1bdf8dba68e3115042048d277efaef3d577b4 +size 1161 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_int_1.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_int_1.ymap new file mode 100644 index 000000000..9670512b6 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_int_1.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d872fbab8f8833ca50f2ec689b9f6498b51c9a30cc15e7835b10f800184faded +size 1167 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_roadconnect.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_roadconnect.ydr new file mode 100644 index 000000000..9419e1b61 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_roadconnect.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a59f399a364a88797c6303a453bed3e7174e30c5e45ab1cee853719b634b74bb +size 1857994 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_roadwire01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_roadwire01.ydr new file mode 100644 index 000000000..e8fed8ae3 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation01_roadwire01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f8615c3fbacbf92b1e4a29df05e083688ae807e1e5c4277950f2633b2594014 +size 2010 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det01.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det01.ydr new file mode 100644 index 000000000..3e4be2f74 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6ffc55e30aa5bc78ec2f08457fd035d13d8b31244ea620f39b1347911901b52 +size 2514175 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det02.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det02.ydr new file mode 100644 index 000000000..2e41ceb53 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a10a7ea8eec2cc3840116b19da715fb3329c11d306a23d4c6cb71586d6586d3 +size 39407 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det03.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det03.ydr new file mode 100644 index 000000000..a390a0187 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_det03.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5ddc2cb4d23537d52f9d53271329f6cc649fc224fe5733b8b9b9b8a4158c824 +size 154723 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_outsidelight.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_outsidelight.ydr new file mode 100644 index 000000000..4ddf37e00 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_01_outsidelight.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f06d8b3c71c15b0151ffd4af595b96b4fc6078915f6958eb9db7229380060cd2 +size 31443 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extlandtrim.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extlandtrim.ydr new file mode 100644 index 000000000..60cf207ae --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extlandtrim.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b972d60ea87bf20ee7c2f1983307fdaa6f729fa6aea17490797fe6d1962dec33 +size 20074 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extlod1.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extlod1.ydr new file mode 100644 index 000000000..dfe9d1fe1 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extlod1.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:284d2c80f5ab45b1f7651cfd1dc328fb53b3d458e17f448786f9035f8990ae5c +size 4293348 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extplot.ydr b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extplot.ydr new file mode 100644 index 000000000..5d58a5107 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_extplot.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0401add74b13683542e900dcfa2bbd20e651510b904c9e6781123f142819f65 +size 95815 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_int_1_lod.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_int_1_lod.ymap new file mode 100644 index 000000000..6f01a88f9 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weighstation_int_1_lod.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77bec8ac2a5de7331bed336abb5e038da836dded8e37695658706a674c753969 +size 1172 diff --git a/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weightstation01_ext_1.ymap b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weightstation01_ext_1.ymap new file mode 100644 index 000000000..89fddd599 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/[jd-weighstations]/jd-weighstation01/stream/jd_weightstation01_ext_1.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0966956d9fb0c32c7682fd1f778a27b699ce3d0a0aeab0b1a3758c9805e7e12f +size 2664 diff --git a/resources/[EGRP-Map-Addons]/jd-scenarios/fxmanifest.lua b/resources/[EGRP-Map-Addons]/jd-scenarios/fxmanifest.lua new file mode 100644 index 000000000..41f8c5c08 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-scenarios/fxmanifest.lua @@ -0,0 +1,12 @@ +fx_version "cerulean" +game "gta5" + +lua54 'yes' +author 'John Chin' +description 'Weigh Station Scenarios' +version '1.0.0' + + +file "sp_manifest.ymt" +data_file "SCENARIO_POINTS_OVERRIDE_PSO_FILE" "sp_manifest.ymt" + diff --git a/resources/[EGRP-Map-Addons]/jd-scenarios/sp_manifest.ymt b/resources/[EGRP-Map-Addons]/jd-scenarios/sp_manifest.ymt new file mode 100644 index 000000000..9493dc660 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-scenarios/sp_manifest.ymt differ diff --git a/resources/[EGRP-Map-Addons]/jd-scenarios/stream/los_santos_freeway.ymt b/resources/[EGRP-Map-Addons]/jd-scenarios/stream/los_santos_freeway.ymt new file mode 100644 index 000000000..783e69973 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-scenarios/stream/los_santos_freeway.ymt differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/fxmanifest.lua b/resources/[EGRP-Map-Addons]/jd-weighstation/fxmanifest.lua new file mode 100644 index 000000000..592efc370 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/fxmanifest.lua @@ -0,0 +1,7 @@ +fx_version 'cerulean' +game 'gta5' + +lua54 'yes' +author 'John Chin' +description 'Weigh Station Shared Props' +version '1.0.0' \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation.ybn new file mode 100644 index 000000000..59e37df70 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_curtain01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_curtain01.ydr new file mode 100644 index 000000000..fe766be7c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_curtain01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb116aab74ae9fa8c4c4c6637ead8f7036da4a66d47ebc48f03d995ecffed425 +size 257201 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_curtainint.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_curtainint.ydr new file mode 100644 index 000000000..b0dddd988 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_curtainint.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:027d5e892b3061eae025a1c1fd9ccea3aa0909bcc1e42987cbe9a215beef8ff2 +size 3776714 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_doormain.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_doormain.ydr new file mode 100644 index 000000000..f4552bb0a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_doormain.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f42b473a4c1c00fd8e25ee0281a4ea6a6cba4e65eea882257a2a42e24f6c950a +size 65220 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ydr new file mode 100644 index 000000000..ffd6f6fda --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7609037bc0e847f0393b387726ed245c285d88fc78cbe7afdb653a69ae136bf +size 16132 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ytd b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ytd new file mode 100644 index 000000000..cec735080 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d205bb255fb80ffd96e9ce2e383b40f4af6e176d4431a4a1d40408f639012f3 +size 5882146 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ytyp b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ytyp new file mode 100644 index 000000000..3363ca27f Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_ext.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_extshared.ytyp b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_extshared.ytyp new file mode 100644 index 000000000..474b55af1 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_extshared.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ydr new file mode 100644 index 000000000..09a71ff7c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9ef2fc8728f3aa47d113e7263055caa3ce72ef271e2fbffd0220418fe06158e +size 6106 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ytd b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ytd new file mode 100644 index 000000000..ea2af4f9c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdd68e71be156d2a8effa604ff3c7e727d3e916259dabfbc64c1da80034c5000 +size 2556072 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ytyp b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ytyp new file mode 100644 index 000000000..76de4c595 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_int.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intfireext.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intfireext.ydr new file mode 100644 index 000000000..ddcfee620 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intfireext.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcabadef362ddce058733ed4826ac1d9cd1f30d22751f32035d515fd6b1dd40e +size 165756 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intlod.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intlod.ydr new file mode 100644 index 000000000..781b4db01 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intlod.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86da96ab36a6bb9d0ca6472287b50c2a4e9624b79822ceaa9adc9eabd602ea17 +size 5513 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intposters.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intposters.ydr new file mode 100644 index 000000000..c05885103 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_intposters.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:902a283fcfe33362efc85b79bb956982d149aed6a5584b74e3347fc3df83ec59 +size 10390 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_inttrimdet01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_inttrimdet01.ydr new file mode 100644 index 000000000..56a77b3e0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_inttrimdet01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28410807636ed30a88220bfb068d92d417d50a43bd607a413af5a93788ac1aff +size 327731 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_light01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_light01.ydr new file mode 100644 index 000000000..20b1a1e11 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_light01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7480fea83d6b7bea5828a0f95f20dc61002e9fdeccd06218374ce0e80a5bb08b +size 37135 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightamber.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightamber.ydr new file mode 100644 index 000000000..d02686b82 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightamber.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6a3689e672f2b9d2646586b98262fc75cc8113db3140bc62f2cacfadf6ed168 +size 897 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightgreen.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightgreen.ydr new file mode 100644 index 000000000..9b6c7805a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightgreen.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffa98460d7af6e1276fdcdf5c22636264c4617e626cbd50eb06d72a069a6f13f +size 1641 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightred.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightred.ydr new file mode 100644 index 000000000..d79097de7 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lightred.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06b51cc9f35ed36d4ba66aafcc20e6b0ac40a251a8f14c70a95cb08b7f05fd78 +size 1643 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lights01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lights01.ydr new file mode 100644 index 000000000..dd8e8ce70 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_lights01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2be7d53a49031482b39fe4a2c01f1c7bf82d3a6074e435f5c90858586d2cf4a4 +size 882 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_mirrorbathroom.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_mirrorbathroom.ydr new file mode 100644 index 000000000..1a8d2ba5c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_mirrorbathroom.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a0b10e181f5361852cde7081f3b29c22ae6016a4c35d14d9a07cbde3029bedc +size 2494 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor01.ydr new file mode 100644 index 000000000..eff17507e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac105e260e2fd954ab9eb542aa85c31d78f18d1d37b82b3bfb40e2e0ffc73fb5 +size 3409 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor02.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor02.ydr new file mode 100644 index 000000000..57f93aed9 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:377b95afe3db2db3500188ff4efc46918c143b239dad97afb3c9656a2ae35765 +size 3484 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor03.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor03.ydr new file mode 100644 index 000000000..17825afa0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_monitor03.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8950e3289f708814519f1328b50f32ae6aadc3684add8f5e60033797e206e63 +size 2122 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props.ytd b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props.ytd new file mode 100644 index 000000000..220912694 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92a858e78a43721bb0cbd4c717b7a19974777980c8ce9e0d1e316d3f4981c194 +size 27137788 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props.ytyp b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props.ytyp new file mode 100644 index 000000000..c2cbf0853 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props2.ytd b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props2.ytd new file mode 100644 index 000000000..3d2592d24 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_props2.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d234f23607fb75d25124463436b95e0a9bd7896f5d05a211dc4a61da35345efc +size 1294748 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_radioprop.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_radioprop.ydr new file mode 100644 index 000000000..8c02d23fe --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_radioprop.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f52d82cf30b7c138b81704d58abba4ffe6e5fc93bb00974943e37851bd6ee58 +size 694965 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign01.ydr new file mode 100644 index 000000000..d82719eaf --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:202387d54b9af6bbf0847afdcd928a5903af4a5fd1c769aee45f091357f3067a +size 214415 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign02.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign02.ydr new file mode 100644 index 000000000..6e95c7b39 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45e858517d6dce480c45d4d786292aa891ed4467c18d4f151835a99bf30c021f +size 1190440 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign03.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign03.ydr new file mode 100644 index 000000000..0664f354c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign03.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:572b71cd29f21bb7c6360d7f8255e42fdce5d2868bf97a3e75cbd398e5b94ab5 +size 354785 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign04.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign04.ydr new file mode 100644 index 000000000..7cb3507d5 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_roadsign04.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b51d4752664da8242f8b5efdbb6bc2cee815ffc343a79fbe6db1ca9f0afaa31 +size 214420 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sign01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sign01.ydr new file mode 100644 index 000000000..8e742c54d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sign01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5200636a9f09e5577fc8f758c89f1ecf3f27168e7bf479119f5d2f59ba6b941 +size 8706 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sign02.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sign02.ydr new file mode 100644 index 000000000..6fe59bc0e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sign02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c59ffd24bed92e6b7217693683ddf91586281c675fd3259df6f370aa58371f8 +size 501763 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sink.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sink.ydr new file mode 100644 index 000000000..1f6c9b01a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_sink.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec4dc752aa6479b1b46ebd8d4253e9ed8d68beb6aa626eabd7ff8759db559d3c +size 308970 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_table.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_table.ydr new file mode 100644 index 000000000..e0a34ba5e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_table.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57589fa86b403a54914789d6b59526c9383d3f4139a2a63c31b48f567d5683f9 +size 3879 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_toilet.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_toilet.ydr new file mode 100644 index 000000000..a5a0b1d95 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_toilet.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eca64cab30ef6537131545249c0f641a7a17e9a0b1d8253c1d09e5ba5aab0825 +size 527803 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_toiletroll.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_toiletroll.ydr new file mode 100644 index 000000000..ea21f2a65 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_toiletroll.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05ae1f78b84ff4c028067758da9110efa4629a7c42c78dcbd6f906b9ad7ea0dd +size 135524 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_vent.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_vent.ydr new file mode 100644 index 000000000..f2891eb1e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_vent.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a19825f1aeb5fb80989dccdec21535586c5d36a4c87f115502663d5bafafde79 +size 35477 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_windowint.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_windowint.ydr new file mode 100644 index 000000000..eae7adfda --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation/stream/jd_weighstation_windowint.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68cd2c2adf97533ed8f0d0cac2a6c7a1039192477ab3892151cc9d236c998a54 +size 2784 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/MainLights/client.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/MainLights/client.lua new file mode 100644 index 000000000..0dc0a78e8 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/MainLights/client.lua @@ -0,0 +1,221 @@ +local redLightModel = `jd_weighstation_lightred` +local greenLightModel = `jd_weighstation_lightgreen` + +-- Active lights per lane (local entities) +local activeLights = { + LaneA = {}, + LaneB = {} +} + +-- Lane states: true = green, false = red, nil = off +local laneStates = { + LaneA = nil, + LaneB = nil +} + +local isInRange = false +local isNearControl = false +local playerAllowed = false + +-- Per-lane runtime trackers for AutoMode +local autoTrack = { + LaneA = { detected = false, active = false, detectionThread = nil, lastVeh = nil }, + LaneB = { detected = false, active = false, detectionThread = nil, lastVeh = nil } +} + +-- ============================================================ +-- 1. THE FIX: GHOST OBJECT CLEANUP +-- ============================================================ +local function ForceCleanUp() + local models = { redLightModel, greenLightModel } + for _, model in ipairs(models) do + -- Find every instance of these lights in the world and delete them + local handle, entity = FindFirstObject() + local success + repeat + if GetEntityModel(entity) == model then + SetEntityAsMissionEntity(entity, true, true) + DeleteEntity(entity) + end + success, entity = FindNextObject(handle) + until not success + EndFindObject(handle) + end +end + +-- ============================================================ +-- MODEL LOADING +-- ============================================================ +local function loadModel(model) + if not HasModelLoaded(model) then + RequestModel(model) + local t0 = GetGameTimer() + while not HasModelLoaded(model) do + Wait(10) + if GetGameTimer() - t0 > 5000 then RequestModel(model) end + end + end +end + +-- ============================================================ +-- SPAWNING (LOCAL ONLY) +-- ============================================================ +local function clearLaneObjects(lane) + if activeLights[lane] then + for _, obj in ipairs(activeLights[lane]) do + if DoesEntityExist(obj) then + SetEntityAsMissionEntity(obj, true, true) + DeleteEntity(obj) + end + end + end + activeLights[lane] = {} +end + +local function spawnLaneLight(lane, model) + loadModel(model) + if not Config.MainLights.Lanes[lane] then return end + + clearLaneObjects(lane) + + for _, light in ipairs(Config.MainLights.Lanes[lane].Lights) do + local pos = light.coords + -- CRITICAL: 5th param 'isNetwork' is FALSE. + -- Each player now manages their own visual lights. + local obj = CreateObjectNoOffset(model, pos.x, pos.y, pos.z, false, false, false) + + SetEntityCoordsNoOffset(obj, pos.x, pos.y, pos.z) + if light.rotation then + SetEntityRotation(obj, light.rotation.x, light.rotation.y, light.rotation.z, 2, true) + end + FreezeEntityPosition(obj, true) + SetEntityInvincible(obj, true) + table.insert(activeLights[lane], obj) + end +end + +-- ============================================================ +-- REFRESH & SYNC +-- ============================================================ +local function refreshLane(lane) + local state = laneStates[lane] + if state == nil then + clearLaneObjects(lane) + return + end + local model = state and greenLightModel or redLightModel + spawnLaneLight(lane, model) +end + +RegisterNetEvent("jd_weighlight02:setLaneState", function(lane, state) + laneStates[lane] = state + if isInRange then + refreshLane(lane) + end +end) + +-- ============================================================ +-- INITIALIZATION +-- ============================================================ +CreateThread(function() + ForceCleanUp() -- Clear stuck networked objects from world + Wait(1000) + TriggerServerEvent("jd_weighlight02:requestState") + + if Config.ACL.UseACL then + TriggerServerEvent("weigh_lights02:checkPermissionMain") + else + playerAllowed = true + end +end) + +RegisterNetEvent("weigh_lights02:permissionResultMain", function(allowed) + playerAllowed = allowed +end) + +-- ============================================================ +-- RANGE CHECK +-- ============================================================ +CreateThread(function() + while true do + Wait(1000) + local pCoords = GetEntityCoords(PlayerPedId()) + local nearAny = false + for _, lane in pairs(Config.MainLights.Lanes) do + for _, light in ipairs(lane.Lights) do + if #(pCoords - light.coords) < (Config.MainLights.LightSpawnRange or 200.0) then + nearAny = true + break + end + end + if nearAny then break end + end + + if nearAny and not isInRange then + isInRange = true + TriggerServerEvent("jd_weighlight02:requestState") + elseif not nearAny and isInRange then + isInRange = false + clearLaneObjects("LaneA") + clearLaneObjects("LaneB") + end + end +end) + +-- ============================================================ +-- AUTO MODE & CONTROLS +-- ============================================================ +local laneTriggerCenters = { + LaneA = vector3(1357.8718, 710.4775, 80.2744), + LaneB = vector3(1351.8080, 714.3249, 80.2743), +} +local laneRadius = 2.5 +local leaveThreshold = 8.0 + +local function isVehicleAllowed(vehicle) + if not DoesEntityExist(vehicle) then return false end + local modelName = tostring(GetDisplayNameFromVehicleModel(GetEntityModel(vehicle)) or ""):lower() + local vClass = GetVehicleClass(vehicle) + if Config.RampLight and Config.RampLight.AllowedModels then + for _, m in ipairs(Config.RampLight.AllowedModels) do + if modelName == tostring(m):lower() then return true end + end + end + return (Config.RampLight and Config.RampLight.AllowedClasses and Config.RampLight.AllowedClasses[vClass]) +end + +local function startLaneAutoThread(lane) + local track = autoTrack[lane] + if not track or track.detectionThread ~= nil then return end + + track.detectionThread = CreateThread(function() + while true do + Wait(400) + if isInRange then + local ped = PlayerPedId() + local playerVeh = GetVehiclePedIsIn(ped, false) + + if playerVeh ~= 0 and isVehicleAllowed(playerVeh) then + local dist = #(GetEntityCoords(playerVeh) - laneTriggerCenters[lane]) + if dist <= laneRadius and not track.detected then + track.detected = true + track.lastVeh = playerVeh + TriggerServerEvent("jd_weighlight02:autoTrigger", lane) + elseif dist > leaveThreshold and track.detected then + track.detected = false + track.lastVeh = nil + TriggerServerEvent("jd_weighlight02:setLaneState", lane, true) + end + end + end + end + end) +end + +if Config.MainLights and Config.MainLights.AutoMode then + CreateThread(function() + Wait(2000) + startLaneAutoThread("LaneA") + startLaneAutoThread("LaneB") + end) +end \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/MainLights/server.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/MainLights/server.lua new file mode 100644 index 000000000..60deb99ce --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/MainLights/server.lua @@ -0,0 +1,97 @@ +-- ============================================================ +-- LANE STATES (Isolated for Station 02) +-- ============================================================ +local laneStates02 = { + LaneA = Config.MainLights and Config.MainLights.AutoMode and true or nil, + LaneB = Config.MainLights and Config.MainLights.AutoMode and true or nil +} + +-- Track if a timer is already running to prevent overlapping threads +local autoTimers = { + LaneA = false, + LaneB = false +} + +-- ============================================================ +-- SEND ALL LANE STATES TO PLAYER +-- ============================================================ +RegisterNetEvent("jd_weighlight02:requestState") +AddEventHandler("jd_weighlight02:requestState", function() + local src = source + -- Send current states to the player who just joined or entered range + TriggerClientEvent("jd_weighlight02:setLaneState", src, "LaneA", laneStates02.LaneA) + TriggerClientEvent("jd_weighlight02:setLaneState", src, "LaneB", laneStates02.LaneB) +end) + +-- ============================================================ +-- SET INDIVIDUAL LANE STATE (manual/admin) +-- ============================================================ +RegisterNetEvent("jd_weighlight02:setLaneState") +AddEventHandler("jd_weighlight02:setLaneState", function(lane, state) + local src = source + + -- ACL check + if Config.ACL.UseACL then + if not IsPlayerAceAllowed(src, Config.ACL.MainLights) then + print(("[weigh_lights02] Player %d tried to edit lane %s without permission!"):format(src, tostring(lane))) + return + end + end + + if lane ~= "LaneA" and lane ~= "LaneB" then + print(("[weigh_lights02] Invalid lane name from player %d: %s"):format(src, tostring(lane))) + return + end + + -- Update state and sync to ALL players (-1) + laneStates02[lane] = state + TriggerClientEvent("jd_weighlight02:setLaneState", -1, lane, state) +end) + +-- ============================================================ +-- AUTOMODE TRIGGER (called from client detection) +-- RED -> 30s -> GREEN +-- ============================================================ +RegisterNetEvent("jd_weighlight02:autoTrigger") +AddEventHandler("jd_weighlight02:autoTrigger", function(lane) + if not Config.MainLights.AutoMode then return end + if lane ~= "LaneA" and lane ~= "LaneB" then return end + + -- Safety: If a timer is already counting down for this lane, ignore new triggers + if autoTimers[lane] then return end + + -- Force RED immediately for all players + laneStates02[lane] = false + TriggerClientEvent("jd_weighlight02:setLaneState", -1, lane, false) + + -- Start the reset timer thread + autoTimers[lane] = true + CreateThread(function() + Wait(30000) -- Wait 30 Seconds + + -- Reset timer tracking so it can be triggered again + autoTimers[lane] = false + + -- Only set back to GREEN if the state is still RED + -- (This ensures manual overrides by staff aren't broken by the timer) + if laneStates02[lane] == false then + laneStates02[lane] = true + TriggerClientEvent("jd_weighlight02:setLaneState", -1, lane, true) + end + end) +end) + +-- ============================================================ +-- CHECK PERMISSION (for client UI) +-- ============================================================ +RegisterNetEvent("weigh_lights02:checkPermissionMain") +AddEventHandler("weigh_lights02:checkPermissionMain", function() + local src = source + local allowed = true + + if Config.ACL.UseACL then + allowed = IsPlayerAceAllowed(src, Config.ACL.MainLights) + end + + TriggerClientEvent("weigh_lights02:permissionResultMain", src, allowed) +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/RampLight/client.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/RampLight/client.lua new file mode 100644 index 000000000..a301844e2 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/RampLight/client.lua @@ -0,0 +1,122 @@ +local spawnedObjects = {} -- Now only tracks the single active light set +local lastState = nil +local isRampOwner = false -- Tracks if this client is the one currently controlling the light + +-- ========================== +-- DEEP CLEANUP +-- ========================== +local function ForceCleanUp() + local models = { GetHashKey(Config.RampLight.ModelRed), GetHashKey(Config.RampLight.ModelGreen) } + for _, model in ipairs(models) do + local handle, entity = FindFirstObject() + local success + repeat + if GetEntityModel(entity) == model then + SetEntityAsMissionEntity(entity, true, true) + DeleteEntity(entity) + end + success, entity = FindNextObject(handle) + until not success + EndFindObject(handle) + end +end + +-- ========================== +-- HELPER FUNCTIONS +-- ========================== +local function listContains(list, hash) + for _, v in ipairs(list or {}) do + if GetHashKey(v) == hash then return true end + end + return false +end + +local function vehicleIsAllowed(veh) + local model = GetEntityModel(veh) + local class = GetVehicleClass(veh) + if listContains(Config.RampLight.AllowedModels, model) then return true end + return Config.RampLight.AllowedClasses[class] == true +end + +-- ========================== +-- SYNC LOGIC +-- ========================== +RegisterNetEvent("jd_ramplight:updateLights", function(state) + -- Cleanup previous objects regardless of state + for _, obj in ipairs(spawnedObjects) do + if DoesEntityExist(obj) then DeleteEntity(obj) end + end + spawnedObjects = {} + + if state == nil then return end + + RequestModel(Config.RampLight.ModelGreen) + RequestModel(Config.RampLight.ModelRed) + while not HasModelLoaded(Config.RampLight.ModelGreen) or not HasModelLoaded(Config.RampLight.ModelRed) do Wait(0) end + + local posRed = Config.RampLight.RedCoords + local posGreen = Config.RampLight.GreenCoords + local zOffset = 0.0 + local rObj, gObj + + if state == "heavy" then + rObj = CreateObjectNoOffset(Config.RampLight.ModelRed, posRed.x, posRed.y, posRed.z + zOffset, false, false, false) + gObj = CreateObjectNoOffset(Config.RampLight.ModelGreen, posGreen.x, posGreen.y, posGreen.z + zOffset, false, false, false) + elseif state == "light" then + gObj = CreateObjectNoOffset(Config.RampLight.ModelGreen, posRed.x, posRed.y, posRed.z + zOffset, false, false, false) + rObj = CreateObjectNoOffset(Config.RampLight.ModelRed, posGreen.x, posGreen.y, posGreen.z + zOffset, false, false, false) + end + + local function finalizeObj(obj, rot) + if obj then + if rot then + SetEntityRotation(obj, rot.x, rot.y, rot.z, 2, true) + elseif Config.RampLight.Heading then + SetEntityHeading(obj, Config.RampLight.Heading) + end + FreezeEntityPosition(obj, true) + SetEntityInvincible(obj, true) + table.insert(spawnedObjects, obj) + end + end + + finalizeObj(rObj, Config.RampLight.RedRotation) + finalizeObj(gObj, Config.RampLight.GreenRotation) +end) + +-- ========================== +-- DETECTION THREAD +-- ========================== +CreateThread(function() + ForceCleanUp() + while true do + Wait(500) + local ped = PlayerPedId() + local pCoords = GetEntityCoords(ped) + local veh = GetVehiclePedIsIn(ped, false) + + -- Check distance to ramp + local dist = #(pCoords - Config.RampLight.CenterPoint) + local state = nil + + -- Only the single closest player to the ramp should "Own" the light + -- We use a server-side check to see if we are the closest one + if veh ~= 0 and GetPedInVehicleSeat(veh, -1) == ped and vehicleIsAllowed(veh) then + if dist <= Config.RampLight.DetectionDistance then + -- Determine state locally + state = "light" + local hasTrailer, trailer = GetVehicleTrailerVehicle(veh) + if hasTrailer and trailer then + local tModel = GetEntityModel(trailer) + if listContains(Config.RampLight.HeavyModels, tModel) then state = "heavy" end + end + end + end + + -- Only trigger server if our local state calculation changed + if state ~= lastState then + lastState = state + TriggerServerEvent("jd_ramplight:requestSync", state, dist) + end + end +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/RampLight/server.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/RampLight/server.lua new file mode 100644 index 000000000..b011988f5 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/RampLight/server.lua @@ -0,0 +1,48 @@ +local currentOwner = nil +local ownerDist = 999.0 +local currentState = nil + +RegisterNetEvent("jd_ramplight:requestSync") +AddEventHandler("jd_ramplight:requestSync", function(state, dist) + local src = source + + -- Logic: If there is no owner, or we are closer than the current owner + if currentOwner == nil or src == currentOwner or dist < ownerDist then + currentOwner = src + ownerDist = dist + currentState = state + + -- Broadcast the single state to everyone + TriggerClientEvent("jd_ramplight:updateLights", -1, currentState) + end +end) + +-- Reset owner if they drive too far away or disconnect +CreateThread(function() + while true do + Wait(2000) + if currentOwner then + local ped = GetPlayerPed(currentOwner) + local coords = GetEntityCoords(ped) + local dist = #(coords - Config.RampLight.CenterPoint) + + -- If owner is no longer valid or drives too far, reset + if dist > Config.RampLight.DetectionDistance or ped == 0 then + currentOwner = nil + ownerDist = 999.0 + currentState = nil + TriggerClientEvent("jd_ramplight:updateLights", -1, nil) + else + ownerDist = dist + end + end + end +end) + +AddEventHandler('playerDropped', function() + if source == currentOwner then + currentOwner = nil + ownerDist = 999.0 + TriggerClientEvent("jd_ramplight:updateLights", -1, nil) + end +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/RoadSignLights/client.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/RoadSignLights/client.lua new file mode 100644 index 000000000..3da383dc7 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/RoadSignLights/client.lua @@ -0,0 +1,143 @@ +local lightSets = {} +local playerAllowed = false + +-- ============================================================ +-- REQUEST PERMISSION IF ACL IS ENABLED (Version 02) +-- ============================================================ +CreateThread(function() + if Config.ACL.UseACL then + TriggerServerEvent("weigh_lights02:checkPermission") + else + playerAllowed = true -- bypass permission + end +end) + +RegisterNetEvent("weigh_lights02:permissionResult", function(allowed) + playerAllowed = allowed +end) + +-- ============================================================ +-- LOAD CONFIGURED AMBER LIGHT SETS +-- ============================================================ +CreateThread(function() + for _, cfg in ipairs(Config.RoadSigns.LightSets) do + table.insert(lightSets, { + name = cfg.name, + model = cfg.model, + coordsA = cfg.coordsA, + coordsB = cfg.coordsB, + rotA = cfg.rotA or vector3(0.0, 0.0, 0.0), + rotB = cfg.rotB or vector3(0.0, 0.0, 0.0), + control = cfg.control, + distance = cfg.distance or 2.0, + propA = nil, + propB = nil, + flashing = false, + pointCreated = false + }) + end +end) + +-- ============================================================ +-- SYNC LOGIC (Version 02) +-- ============================================================ +CreateThread(function() + Wait(1000) + TriggerServerEvent("weigh_lights02:requestSync") +end) + +RegisterNetEvent("weigh_lights02:syncAll", function(states) + for name, state in pairs(states) do + for _, set in ipairs(lightSets) do + if set.name == name then + if state then StartFlashing(set) else StopFlashing(set) end + end + end + end +end) + +RegisterNetEvent("weigh_lights02:syncSingle", function(setName, newState) + for _, set in ipairs(lightSets) do + if set.name == setName then + if newState then StartFlashing(set) else StopFlashing(set) end + end + end +end) + +-- ============================================================ +-- FLASHING LOGIC +-- ============================================================ +function StartFlashing(set) + if set.flashing then return end + set.flashing = true + + CreateThread(function() + -- Offset logic added here + local zOffset = -0.09 + local posA = set.coordsA + vector3(0.0, 0.0, zOffset) + local posB = set.coordsB + vector3(0.0, 0.0, zOffset) + + set.propA = CreateObject(set.model, posA.x, posA.y, posA.z, false, false, false) + set.propB = CreateObject(set.model, posB.x, posB.y, posB.z, false, false, false) + + SetEntityRotation(set.propA, set.rotA.x, set.rotA.y, set.rotA.z, 2, true) + SetEntityRotation(set.propB, set.rotB.x, set.rotB.y, set.rotB.z, 2, true) + + FreezeEntityPosition(set.propA, true) + FreezeEntityPosition(set.propB, true) + + local visible = true + while set.flashing do + visible = not visible + SetEntityVisible(set.propA, visible, false) + SetEntityVisible(set.propB, not visible, false) + Wait(500) + end + + if DoesEntityExist(set.propA) then DeleteEntity(set.propA) end + if DoesEntityExist(set.propB) then DeleteEntity(set.propB) end + set.propA = nil + set.propB = nil + end) +end + +function StopFlashing(set) + set.flashing = false +end + +-- ============================================================ +-- INTERACTION (E-KEY) +-- ============================================================ +CreateThread(function() + while #lightSets == 0 do Wait(100) end + if Config.ACL.UseACL then + while playerAllowed == false do Wait(100) end + end + + for _, set in ipairs(lightSets) do + if set.control and not set.pointCreated then + local point = lib.points.new(set.control, set.distance) + set.pointCreated = true + + function point:nearby() + if Config.ACL.UseACL and not playerAllowed then + lib.hideTextUI() + return + end + + if self.currentDistance < set.distance then + lib.showTextUI("[E] Toggle Amber Light: " .. set.name) + if IsControlJustPressed(0, 38) then -- 38 = E + TriggerServerEvent("weigh_lights02:toggleLight", set.name, not set.flashing) + end + else + lib.hideTextUI() + end + end + + function point:onExit() + lib.hideTextUI() + end + end + end +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/RoadSignLights/server.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/RoadSignLights/server.lua new file mode 100644 index 000000000..626cf1a2d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/RoadSignLights/server.lua @@ -0,0 +1,44 @@ +local lightStates02 = {} + +-- ============================================================ +-- REQUEST SYNC +-- ============================================================ +RegisterNetEvent("weigh_lights02:requestSync") +AddEventHandler("weigh_lights02:requestSync", function() + local src = source + TriggerClientEvent("weigh_lights02:syncAll", src, lightStates02) +end) + +-- ============================================================ +-- TOGGLE LIGHT +-- ============================================================ +RegisterNetEvent("weigh_lights02:toggleLight") +AddEventHandler("weigh_lights02:toggleLight", function(setName, newState) + local src = source + + -- Only check ACL if UseACL is true + if Config.ACL.UseACL then + if not IsPlayerAceAllowed(src, Config.ACL.AmberLights) then + print(("[weigh_lights02] Player %d tried to toggle light '%s' without permission!"):format(src, setName)) + return + end + end + + lightStates02[setName] = newState + TriggerClientEvent("weigh_lights02:syncSingle", -1, setName, newState) +end) + +-- ============================================================ +-- CHECK PERMISSION +-- ============================================================ +RegisterNetEvent("weigh_lights02:checkPermission") +AddEventHandler("weigh_lights02:checkPermission", function() + local src = source + local allowed = true -- default allow if ACL disabled + + if Config.ACL.UseACL then + allowed = IsPlayerAceAllowed(src, Config.ACL.AmberLights) + end + + TriggerClientEvent("weigh_lights02:permissionResult", src, allowed) +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/client.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/client.lua new file mode 100644 index 000000000..6f31c203d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/client.lua @@ -0,0 +1,212 @@ +-- ============================================= +-- Client logic for weigh station 02 +-- ============================================= + +local uiOpen = false +local checkDistance = 12.0 +local truckWeights = {} +local truckTrailers = {} +local trucksOnLane = {} +local lastLaneWeight = {} + +local serverCallbacks02 = {} + +-- ========================= +-- Helper: Server callback (02) +-- ========================= +function TriggerServerCallback02(name, cb, ...) + local id = math.random(1, 999999) + serverCallbacks02[id] = cb + TriggerServerEvent(name, id, ...) +end + +RegisterNetEvent("weighstation02:serverCallback", function(id, ...) + if serverCallbacks02[id] then + serverCallbacks02[id](...) + serverCallbacks02[id] = nil + end +end) + +-- ========================= +-- Lane initialization +-- ========================= +for laneName,_ in pairs(Config.MainLights.Lanes) do + trucksOnLane[laneName] = {} + lastLaneWeight[laneName] = nil +end + +-- ========================= +-- UI Management +-- ========================= +local function ToggleUI(open) + uiOpen = open + SetNuiFocus(open, open) + SendNUIMessage({ action = open and "showUI" or "hideUI" }) + + if open then + TriggerServerCallback02("weighstation02:getRecentVehicles", function(recent) + SendNUIMessage({ action = "updateRecentVehicles", recent = recent }) + end) + TriggerServerCallback02("weighstation02:getStats", function(stats) + SendNUIMessage({ + action = "updateStats", + totalTrucks = stats.totalTrucks or 0, + avgWeight = stats.avgWeight or 0 + }) + end) + end +end + +local function ShowPopup(text) + SendNUIMessage({ action = "showPopup", text = text }) +end + +local function HidePopup() + SendNUIMessage({ action = "hidePopup" }) +end + +-- ========================= +-- Helpers +-- ========================= +local function IsModelInList(modelHash, list) + for _, name in ipairs(list or {}) do + if GetHashKey(name) == modelHash then return true end + end + return false +end + +local function GetLaneCenter(lane) + local sum = vector3(0.0, 0.0, 0.0) + for _, light in pairs(lane.Lights) do + sum = sum + light.coords + end + return sum / #lane.Lights +end + +-- ========================= +-- Control Point Detection +-- ========================= +CreateThread(function() + while true do + Wait(0) + local ped = PlayerPedId() + local pos = GetEntityCoords(ped) + local controlPos = Config.MainLights.ControlCoords + local dist = #(pos - controlPos) + + if dist < (Config.MainLights.ControlDistance or 2.0) then + ShowPopup("[G] Open Weigh Station 02") + if IsControlJustPressed(0, 47) and not uiOpen then + ToggleUI(true) + end + else + HidePopup() + end + end +end) + +-- ========================= +-- MAIN TRUCK DETECTION (NEAREST LANE LOGIC) +-- ========================= +CreateThread(function() + while true do + Wait(1000) + local vehicles = GetGamePool('CVehicle') + + -- Temporary storage for this tick's results + local tickResults = {} + for laneName, _ in pairs(Config.MainLights.Lanes) do + tickResults[laneName] = { weight = 0, truck = nil, minDist = checkDistance + 0.1 } + end + + -- Iterate through all vehicles + for _, vehicle in ipairs(vehicles) do + if DoesEntityExist(vehicle) and not IsEntityDead(vehicle) then + local model = GetEntityModel(vehicle) + + if IsModelInList(model, Config.RampLight.AllowedModels) then + local vehiclePos = GetEntityCoords(vehicle) + local nearestLaneName = nil + local nearestLaneDist = checkDistance + + -- Find which specific lane this truck is closest to + for laneName, laneData in pairs(Config.MainLights.Lanes) do + local laneCenter = GetLaneCenter(laneData) + local distToLane = #(vehiclePos - laneCenter) + + if distToLane < nearestLaneDist then + nearestLaneDist = distToLane + nearestLaneName = laneName + end + end + + -- If a truck found a "best" lane within range + if nearestLaneName then + local hasTrailer, trailer = GetVehicleTrailerVehicle(vehicle) + local plate = GetVehicleNumberPlateText(vehicle) + + -- PERSISTENT WEIGHT LOGIC + if not truckWeights[vehicle] or truckTrailers[vehicle] ~= trailer then + local seed = 0 + for i = 1, #plate do seed = seed + string.byte(plate, i) end + math.randomseed(seed) + + if hasTrailer and trailer ~= 0 then + local trailerModel = GetEntityModel(trailer) + if IsModelInList(trailerModel, Config.RampLight.HeavyModels) then + truckWeights[vehicle] = math.random(85000, 125000) + elseif IsModelInList(trailerModel, Config.RampLight.LightModels) then + truckWeights[vehicle] = math.random(35000, 55000) + else + truckWeights[vehicle] = math.random(40000, 100000) + end + else + truckWeights[vehicle] = math.random(32000, 45000) + end + + math.randomseed(GetGameTimer()) + truckTrailers[vehicle] = trailer + + -- Server Logging + local truckModelName = GetDisplayNameFromVehicleModel(model) + local trailerModelName = (hasTrailer and trailer ~= 0) and GetDisplayNameFromVehicleModel(GetEntityModel(trailer)) or "N/A" + TriggerServerEvent("weighstation02:logTruck", plate, truckModelName, trailerModelName, truckWeights[vehicle]) + end + + -- Assign this truck to the lane if it's the closest one found for that lane so far + if nearestLaneDist < tickResults[nearestLaneName].minDist then + tickResults[nearestLaneName].weight = truckWeights[vehicle] + tickResults[nearestLaneName].truck = vehicle + tickResults[nearestLaneName].minDist = nearestLaneDist + end + end + end + end + end + + -- Update UI based on final tick results + for laneName, data in pairs(tickResults) do + if lastLaneWeight[laneName] ~= data.weight then + lastLaneWeight[laneName] = data.weight + SendNUIMessage({ + action = "updateWeight", + lane = laneName, + weight = data.weight, + vehicle = data.truck or nil + }) + end + end + end +end) + +-- ========================= +-- NUI Callback +-- ========================= +RegisterNUICallback('closeUI', function(data, cb) + if uiOpen then + uiOpen = false + SetNuiFocus(false, false) + SendNUIMessage({ action = "hideUI" }) + end + cb('ok') +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/script.js b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/script.js new file mode 100644 index 000000000..4137c0e08 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/script.js @@ -0,0 +1,101 @@ +document.addEventListener("DOMContentLoaded", () => { + const win = document.getElementById("browser-window"); + const closeBtn = document.getElementById("close-btn"); + + // Lane status + const statusLaneA = document.getElementById("status-laneA"); + const statusLaneB = document.getElementById("status-laneB"); + + // Recent vehicles log + const recentVehicles = document.getElementById("recent-vehicles"); + + // Totals / Summary + const totalTrucksEl = document.getElementById("total-trucks"); + const avgWeightEl = document.getElementById("avg-weight"); + const overweightCountEl = document.getElementById("overweight-count"); + + // Popup + const popup = document.createElement("div"); + popup.id = "popup"; + popup.style.position = "fixed"; + popup.style.top = "20px"; + popup.style.left = "20px"; + popup.style.padding = "10px 20px"; + popup.style.backgroundColor = "#000080"; + popup.style.color = "#fff"; + popup.style.fontFamily = "MS Sans Serif, Arial, sans-serif"; + popup.style.fontSize = "14px"; + popup.style.fontWeight = "bold"; + popup.style.border = "2px solid #000"; + popup.style.display = "none"; + popup.style.zIndex = "9999"; + popup.style.borderRadius = "4px"; + document.body.appendChild(popup); + + // Tracking + let recentVehiclesData = []; + let totalTrucks = 0; + let totalWeight = 0; + let overweightCount = 0; + let loggedVehicles = {}; // track by unique vehicle ID + + window.addEventListener("message", (event) => { + const data = event.data; + + if (data.action === "showUI") { + win.style.display = "block"; + document.body.style.cursor = "default"; + } else if (data.action === "hideUI") { + win.style.display = "none"; + document.body.style.cursor = "none"; + } else if (data.action === "showPopup") { + popup.innerText = data.text; + popup.style.display = "block"; + } else if (data.action === "hidePopup") { + popup.style.display = "none"; + } else if (data.action === "updateWeight") { + const laneWeightEl = data.lane === "LaneA" ? document.getElementById("laneA-weight") : document.getElementById("laneB-weight"); + laneWeightEl.innerText = data.weight ? data.weight + " LBS" : "-- LBS"; + + const statusEl = data.lane === "LaneA" ? statusLaneA : statusLaneB; + if (data.weight) { + statusEl.innerText = data.weight > 80000 ? `${data.lane}: ⚠️ Overweight` : `${data.lane}: Occupied`; + } else { + statusEl.innerText = `${data.lane}: Open`; + } + + // Only log new vehicles once globally + if (data.vehicle && data.weight && !loggedVehicles[data.vehicle]) { + loggedVehicles[data.vehicle] = true; + + totalTrucks++; + totalWeight += data.weight; + if (data.weight > 80000) overweightCount++; + + totalTrucksEl.innerText = totalTrucks; + avgWeightEl.innerText = Math.floor(totalWeight / totalTrucks); + overweightCountEl.innerText = overweightCount; + + const entry = `${new Date().toLocaleTimeString()} - ${data.lane} - ${data.weight} LBS`; + recentVehiclesData.unshift(entry); + if (recentVehiclesData.length > 10) recentVehiclesData.pop(); + recentVehicles.innerHTML = recentVehiclesData.map(e => `
  • ${e}
  • `).join(""); + } + + // Remove from logged if lane is empty + if (!data.weight && data.vehicle) { + loggedVehicles[data.vehicle] = false; + } + } + }); + + closeBtn.addEventListener("click", () => { + fetch(`https://${GetParentResourceName()}/closeUI`, { + method: 'POST', + body: JSON.stringify({}) + }).finally(() => { + win.style.display = "none"; + document.body.style.cursor = "none"; + }); + }); +}); diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/style.css b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/style.css new file mode 100644 index 000000000..a62bdf677 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/style.css @@ -0,0 +1,116 @@ +body { + font-family: "MS Sans Serif", Arial, sans-serif; + background-color: transparent; + margin: 0; + padding: 0; +} + +/* Browser window */ +#browser-window { + width: 800px; + height: 600px; + background-color: #c0c0c0; + border: 3px solid #000; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + display: none; + box-shadow: 7px 7px 0px #000; + padding: 0; + overflow: hidden; +} + +/* Top bar */ +#browser-topbar { + height: 30px; + background-color: #000080; + color: #fff; + padding: 6px; + display: flex; + justify-content: space-between; + align-items: center; + font-weight: bold; + font-size: 14px; +} + +/* URL tab */ +#tab { + font-weight: normal; + background-color: #c0c0c0; + color: #000; + padding: 4px 8px; + border: 2px inset #fff; + margin-left: 4px; + font-size: 13px; +} + +/* Close button */ +#close-btn { + width: 25px; + height: 25px; + cursor: pointer; + font-weight: bold; +} +#close-btn:hover { + background: #ff0000; + color: #fff; +} + +/* Menu buttons */ +#browser-menu { + display: flex; + height: 30px; + background-color: #c0c0c0; + border-bottom: 2px inset #fff; +} +.menu-btn { + border: 2px outset #fff; + margin: 2px; + padding: 4px 10px; + background-color: #c0c0c0; + cursor: pointer; + font-size: 13px; +} +.menu-btn:active { + border-style: inset; +} + +/* Content area */ +#browser-content { + background-color: #e0e0e0; + padding: 30px; + font-size: 16px; + border-top: 2px solid #fff; + border-bottom: 2px solid #000; + height: calc(100% - 30px - 30px); + overflow-y: auto; +} + +/* Lane boxes */ +.lane { + margin-top: 15px; + padding: 10px; + border: 2px inset #fff; + background-color: #c0c0c0; + font-size: 16px; +} +.lane-name { + font-weight: bold; +} + +/* Lane status, log, summary */ +.lane-status, .log, .summary { + margin-top: 20px; + padding: 10px; + border: 2px inset #fff; + background-color: #c0c0c0; +} +.lane-status h3, .log h3, .summary h3 { + margin: 0 0 5px 0; + font-size: 16px; +} +.log ul { + padding-left: 20px; + margin: 0; +} diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/ui.html b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/ui.html new file mode 100644 index 000000000..07c53fe3e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/html/ui.html @@ -0,0 +1,63 @@ + + + + +Weigh Station UI + + + +
    + +
    + www.sanandreasdot.gov/panel + +
    + + +
    + + + + +
    + + +
    +

    Weigh Station Panel

    + + +
    + Lane A: -- LBS +
    +
    + Lane B: -- LBS +
    + + +
    +

    Lane Status

    +
    Lane A: Open
    +
    Lane B: Open
    +
    + + +
    +

    Recent Vehicles

    +
      + +
    +
    + + +
    +

    Summary

    +
    Total Trucks Today: 0
    +
    Average Weight: 0 LBS
    +
    Overweight Trucks: 0
    +
    +
    +
    + + + + diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/server.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/server.lua new file mode 100644 index 000000000..356e1cf44 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/WeighUi/server.lua @@ -0,0 +1,41 @@ +-- WeighUi/server.lua (Station 02) +local recentTrucks02 = {} +local totalWeightToday02 = 0 +local totalTrucksToday02 = 0 + +-- ========================= +-- Log a truck +-- ========================= +RegisterNetEvent("weighstation02:logTruck", function(plate, truckModel, trailerModel, weight) + table.insert(recentTrucks02, 1, { + plate = plate, + truckModel = truckModel, + trailerModel = trailerModel or "none", + weight = weight + }) + + if #recentTrucks02 > 10 then + table.remove(recentTrucks02) + end + + totalTrucksToday02 = totalTrucksToday02 + 1 + totalWeightToday02 = totalWeightToday02 + weight +end) + +-- ========================= +-- Get recent vehicles +-- ========================= +RegisterNetEvent("weighstation02:getRecentVehicles", function(id) + TriggerClientEvent("weighstation02:serverCallback", source, id, recentTrucks02) +end) + +-- ========================= +-- Get stats +-- ========================= +RegisterNetEvent("weighstation02:getStats", function(id) + local avgWeight = totalTrucksToday02 > 0 and totalWeightToday02 / totalTrucksToday02 or 0 + TriggerClientEvent("weighstation02:serverCallback", source, id, { + totalTrucks = totalTrucksToday02, + avgWeight = math.floor(avgWeight) + }) +end) \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/config.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/config.lua new file mode 100644 index 000000000..eb2d64c85 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/config.lua @@ -0,0 +1,101 @@ +Config = {} + +-- ============================================= +-- ACE PERMISSIONS +-- ============================================= +Config.ACL = { + UseACL = false, -- set to false to disable ACE checks allowing anyone to use the light controls + MainLights = "weighstation.mainlights", + AmberLights = "weighstation.amberlights" +} + +-- ============================================= +-- MAIN WEIGH STATION TRAFFIC LIGHTS +-- ============================================= +Config.MainLights = { + AutoMode = true, + Lanes = { + LaneA = { + Lights = { + { + coords = vector3(1367.994019, 722.601624, 85.697609), + rotation = vector3(0.0, 0.0, 120.0) + }, + { + coords = vector3(1357.042480, 703.875916, 84.116707), + rotation = vector3(20.0, -90.0, 140.00) + }, + }, + }, + + LaneB = { + Lights = { + { + coords = vector3(1362.476318, 727.231506, 85.748299), + rotation = vector3(0.0, 0.0, 120.0) + }, + { + coords = vector3(1351.536743, 708.495789, 84.167625), + rotation = vector3(20.0, -90.0, 140.00) + }, + }, + } + }, + + ControlCoords = vector3(1340.9390, 724.1892, 80.4113), + ControlDistance = 1.0, + LightSpawnRange = 200.0, + ResyncTime = 60000 +} + + +-- ============================================= +-- ROAD SIGN / AMBER LIGHT SETS +-- ============================================= +Config.RoadSigns = { + LightSets = { + { + name = "Vinewood Hills", + model = `jd_weighstation_lightamber`, + coordsA = vector3(1571.847534, 1026.343872, 81.914368), + rotA = vector3(0.0, 0.0, 150.0), + coordsB = vector3(1570.765015, 1026.968872, 81.914368), + rotB = vector3(0.0, 0.0, 150.0), + + control = vector3(1571.1840, 1026.4595, 79.3332), + distance = 1.0 + } + } +} + + + +-- ============================================= +-- WEIGH STATION RAMP LIGHT SYSTEM +-- ============================================= +Config.RampLight = { + CenterPoint = vector3(1417.9015, 778.4647, 80.4922), + DetectionDistance = 19.0, + ModelGreen = `jd_weightstation02_greencheck`, + ModelRed = `jd_weightstation02_redx`, + RedCoords = vector3(1415.399902, 762.453735, 88.028511), + GreenCoords = vector3(1413.101807, 764.382080, 88.028511), + AllowedClasses = { + [18] = false, + [20] = false, + }, +AllowedModels = { "phantom", "hauler", "packer", "phantom3", "hauler2", "commandtruck", "commandtruckr", "01inter4700", "bc950m", "bc950mf", "bcap1055", "bcd8t", "bce55", "bcf750tma", "bcfl", "bchauler", "bcls", "bcmack", "bct590", "brickade3", "classicxl", "ct660", "ct660dump", "Ford9000", "FreightlinerToter", "galaxyroamer", "kw900", "libexcavator", "mixer3", "pete352custom", "razerdump", "semihauler", "t680", "t680a", "trans_mbenzarocs", "vnl780", "w900", "baggedram", "bc24v", "bc205500w", "bclandscape", "cartr16", "cat140m3", "cat745c", "hdwrecker", "rollback1", "rollback14", "tow", "towing", "23rambh", "23ramtdm", "23sirchas", "193500hd", "brf450", "00f350dually", "00f350d", "20denalihd", "22silvlt", "22sierra", "megacabdually", "vframb", "vframg", "packer2" }, -- ← container truck models + + HeavyModels = { + "TRAILER", -- ← container heavy trailers + "TRAILERS", "TRAILER2", "TRAILER3", "TRAILER4", + "trailers", "trailers2", "trailers3", "trailers4", + "freighttrailer", "armytanker", "docktrailer" + }, + + LightModels = { + "tr2", "tr3", "tr4", "trflat", -- ← container light trailers + "tanker", "tanker2", "trailerlogs", + "tvtrailer", "baletrailer", "graintrailer" + }, +} \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/fxmanifest.lua b/resources/[EGRP-Map-Addons]/jd-weighstation02/fxmanifest.lua new file mode 100644 index 000000000..21b1c2152 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/fxmanifest.lua @@ -0,0 +1,34 @@ +fx_version 'cerulean' +game 'gta5' + +lua54 'yes' +author 'John Chin' +description 'Weigh Stations (2nd Location)' +version '1.0.0' + +shared_scripts { + '@ox_lib/init.lua', + 'config.lua' +} + +client_scripts { + 'MainLights/client.lua', + 'RoadSignLights/client.lua', + 'RampLight/client.lua', + 'WeighUi/client.lua' +} + +server_scripts { + 'MainLights/server.lua', + 'RoadSignLights/server.lua', + 'RampLight/server.lua', + 'WeighUi/server.lua' +} + +ui_page 'WeighUi/html/ui.html' + +files { + 'WeighUi/html/ui.html', + 'WeighUi/html/style.css', + 'WeighUi/html/script.js' +} diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/_manifest.ymf b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/_manifest.ymf new file mode 100644 index 000000000..9e131d233 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/_manifest.ymf differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b.ymap new file mode 100644 index 000000000..cecedebd4 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f854975ec37e6f59c4e60c7505430ebd047f341bdffec7040bf39ffc3ca3157 +size 14676 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_critical_2.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_critical_2.ymap new file mode 100644 index 000000000..156e43158 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_critical_2.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46d4d00797cc829bac8fd8e073ee0f9ce9e1f3e9718af87ae04fddfeca9b7edc +size 16816 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_long_0.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_long_0.ymap new file mode 100644 index 000000000..651c23adb --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_long_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a77101e86a63656e1380f4d3479b584117cffc0a8e9016ff7c146410292d5ec5 +size 15299 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_long_1.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_long_1.ymap new file mode 100644 index 000000000..6fb33e2d3 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_long_1.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cd27ceb0a4f7bd3d8a0a42e19851c8bceedda1d994742b97e883511962e9eb9 +size 12049 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_strm_1.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_strm_1.ymap new file mode 100644 index 000000000..cd7f4614e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/apa_ch2_03b_strm_1.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc40fbb90790ab8e1930d25fe173f5edc115dbed9533698d6329eeedf34873c5 +size 17670 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_10.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_10.ybn new file mode 100644 index 000000000..ba78891b0 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_10.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_6.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_6.ybn new file mode 100644 index 000000000..40e5e0ca7 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_6.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_7.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_7.ybn new file mode 100644 index 000000000..96e1a4d7b Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_7.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_9.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_9.ybn new file mode 100644 index 000000000..e677d4b9f Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_9.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_01.ydr new file mode 100644 index 000000000..ab0d27c77 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c22f93cfa8d1fe61f23b892b0be6b3f2091e01ec2e0f207c42974929be5eb184 +size 3341 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_10.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_10.ydr new file mode 100644 index 000000000..a6e32cca3 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_10.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5734b5db362128aeb5f2c0414dbd862d0c5132c5138a62be8e6a8b35f7e0b01b +size 1585 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_14.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_14.ydr new file mode 100644 index 000000000..f39713818 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_decal_14.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:def03f7ea2e87acf13c120049259bb4030f27a20741235f8c983c1b0e8700bc2 +size 15640 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_grass_0.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_grass_0.ymap new file mode 100644 index 000000000..638aa28cb --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_grass_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64d70d8e17f15937dbf6f6e2147b9651734903b5a45c41df8105e5b520f69604 +size 2395309 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_grass_1.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_grass_1.ymap new file mode 100644 index 000000000..7ec268266 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_grass_1.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34d77f9c60834ee0113b4bb7d347d46e9702c1fc0a47f74d29096724c523475c +size 2219093 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_land16.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_land16.ydr new file mode 100644 index 000000000..2bcfc4fc7 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_land16.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0b7a504971e471fb0a43266f8d3a9f216546d27ea69789d5436646dd6006d39 +size 1413915 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_land19.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_land19.ydr new file mode 100644 index 000000000..6fb04f3d6 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_land19.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74253d47234949eec84c895f20f9d2d9ba9421ee22d96a9383175c638f539b62 +size 980534 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_road_decal.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_road_decal.ydr new file mode 100644 index 000000000..203ff24ec --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_road_decal.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:494b878862ab87f3d8622c2d499137bb5dd11b1f093697a891bcde048ef80018 +size 26451 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_sloda_children.ydd b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_sloda_children.ydd new file mode 100644 index 000000000..882b70ab8 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch2_03b_sloda_children.ydd differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_1.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_1.ybn new file mode 100644 index 000000000..1767b6cb9 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_1.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_17.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_17.ydr new file mode 100644 index 000000000..29cc2633a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_17.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fb54d602f0e3d4de3d22017d2bfeeeb32ee1e43188b1a67612c13fe8ab9bdf0 +size 35361 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_18.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_18.ydr new file mode 100644 index 000000000..c556a2965 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_18.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5a3bf1098177e04d96b38c5eb82b89f978d485ccaa02a5dfa8e3ef254ddf444 +size 33504 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_19.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_19.ydr new file mode 100644 index 000000000..337408c4e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/ch3_rd2b_rd1_19.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2c3c84337f4fed3a01aba8fc9c6824e8a4de56ab2439e0fa6cbb2853efffeb5 +size 42233 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/fwy_04_3.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/fwy_04_3.ybn new file mode 100644 index 000000000..d2d671b97 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/fwy_04_3.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04.ymap new file mode 100644 index 000000000..86b239d4f --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e29bbe5afd86c00b21dac7b538a4087242f29b7e708a9b27119f311eca779d75 +size 4709 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04_long_0.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04_long_0.ymap new file mode 100644 index 000000000..c89b652fc --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04_long_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:230df36ecf24971b48888fa7e19b0d8f4b276709aeae539d47d53ed28e80912e +size 3175 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04_strm_0.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04_strm_0.ymap new file mode 100644 index 000000000..fe29ba93d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hei_fwy_04_strm_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ef4e5dbe14fb47baa16e57be0aed72cd891d455a5a808f24783ea937c546970 +size 11078 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hi@ch2_03b_16.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hi@ch2_03b_16.ybn new file mode 100644 index 000000000..2145b9088 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/hi@ch2_03b_16.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ymap new file mode 100644 index 000000000..e5058c733 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eac77e9d72a1b34dd7bffc1c3d42ac44371a257f274d7afa96fade9707ba6838 +size 3952 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ytd b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ytd new file mode 100644 index 000000000..1fe619e88 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539d7cd8e877f016398111571d478b9abccb157801bef4cb2019f24bca657b68 +size 6577287 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ytyp b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ytyp new file mode 100644 index 000000000..5cb8060e3 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext02.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext02.ydr new file mode 100644 index 000000000..1fcfce52c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27a33f62ee2cf31282af6dd265f5fddb577981a224ac9d64b48bab28ebaebbd6 +size 552370 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext_lod.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext_lod.ymap new file mode 100644 index 000000000..8b5c8d547 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_ext_lod.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b8cec02206b042c89830bc53f19d259066e5e1a1d90723302337c6d763a504d +size 1164 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_extlod.ytd b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_extlod.ytd new file mode 100644 index 000000000..e28e04b8f --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_extlod.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b39af3b6da0b7fcc9941580faaea1d4c1b7ec177cdeae3efd4dc39bea3297b87 +size 11290722 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_exttrim.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_exttrim.ydr new file mode 100644 index 000000000..4472089af --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_exttrim.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:250d91bdcb68cbe2b045cd17430a72c036e50dfa5011ed6159dfb8a2e7a0cebe +size 1609 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_grnddec.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_grnddec.ydr new file mode 100644 index 000000000..2bb61e986 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_grnddec.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59fa2b853fece9ba1c8b57af79ee512466b8236457062a49732f899302bf5f0f +size 773805 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_int.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_int.ymap new file mode 100644 index 000000000..e47a5819d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_int.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74268e482cfef168f224c2b9ea6b31d5a3266ddbc55ed69c2724cc23f8dff70d +size 1166 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_int_lod.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_int_lod.ymap new file mode 100644 index 000000000..7a46665d3 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_int_lod.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2650430ab90b1f79be21f7bc095c44258192987f5b5188762b19b2614c1e8e06 +size 1173 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_lightwires.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_lightwires.ydr new file mode 100644 index 000000000..ef37535f7 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_lightwires.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6ba9df8f8eaf9523b19a2e24ad8c3fd434afb76cf80700c1ba2c3ea07b7d4e2 +size 446808 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_parking01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_parking01.ydr new file mode 100644 index 000000000..a2bdd0a85 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_parking01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ab6ecaca34fed8b4dd5b57f9eee0eeec1a0f3c79f8851475282bd8c78a349b9 +size 369296 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_scalebuild.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_scalebuild.ydr new file mode 100644 index 000000000..8dc87ff5f --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_scalebuild.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dc4ca78fb8d87d6903a3ea89f28203340abe98743e2a77752907ff901823ce9 +size 79064 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_signpole01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_signpole01.ydr new file mode 100644 index 000000000..67169784a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02_signpole01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fae68103c4c7695311bd850875014472c4964ec1ccea02088ee137d899251c8c +size 212747 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath.ybn b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath.ybn new file mode 100644 index 000000000..21553a6bb Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath.ybn differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_det01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_det01.ydr new file mode 100644 index 000000000..413655df5 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_det01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baf5ffa8c37e1a12a0e4ce93ceee7de7dc90e94d836d2c73a52e74c378b179d6 +size 626384 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_det02.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_det02.ydr new file mode 100644 index 000000000..b1eab668d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_det02.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:446dfb79d866c2850a2b0e57113b12b232327159c94a7b2aa5ce3c69ceb3447c +size 454469 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_doorframe.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_doorframe.ydr new file mode 100644 index 000000000..47ee559e4 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_doorframe.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0663ef3e319f875c5497e9fdf2b9164fedecfb42443f7934ff595166f1536e19 +size 5280 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ydr new file mode 100644 index 000000000..2e01804b3 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae04de1ef5d0fef4b6d1fd2a1095bc4fd62ba3186eab64a52cf723e96b88e514 +size 2222 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ymap new file mode 100644 index 000000000..5aa8efc9b --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fe7715fe0290d336da540f0ad2ebf5c66b1d324a55b179d513f724b118190d8 +size 1171 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ytyp b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ytyp new file mode 100644 index 000000000..00210e1c0 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_int.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_intlod.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_intlod.ydr new file mode 100644 index 000000000..960890f1a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_intlod.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c00b07dc0fd35b885aec2c0b27717ee35600644e34054c31c589d0f22af8f5 +size 66910 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_intlod.ymap b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_intlod.ymap new file mode 100644 index 000000000..2d584e39d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_intlod.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b812347b18cd939ac291c11f3f89324cba417d373b8b1cbe1dea17a653bb5134 +size 1175 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_lights01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_lights01.ydr new file mode 100644 index 000000000..acfa7d671 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_lights01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42ab6cfd87e29d30f365bef37a226c57a84316fa6e7f8d541cb537f894cf3d43 +size 839 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_mirror.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_mirror.ydr new file mode 100644 index 000000000..8b6e8d5ec --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation02bath_mirror.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:824c5329889fdc411f5c90bab8dd063b3fe95ab342ff66b0b0284c610a73120e +size 3182 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation_02_det01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation_02_det01.ydr new file mode 100644 index 000000000..d12311e3d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation_02_det01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:933c9c6ef57e6bdfcba782304df33da94490259bce56712f64731e0ad5e802a5 +size 545636 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation_02_outsidelight.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation_02_outsidelight.ydr new file mode 100644 index 000000000..2bb6e8243 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weighstation_02_outsidelight.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da2d4b058f5b10fec3db402f5a030ad58a4c65033134fdf53c2853e117a356f2 +size 45471 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_extlod.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_extlod.ydr new file mode 100644 index 000000000..a46c80384 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_extlod.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62dbbb315adf6ece8c0db68247f5c8a33b2cd973b9f71faf0fcae6a010cb0bb1 +size 1705516 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_extplot.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_extplot.ydr new file mode 100644 index 000000000..2ed6eb14d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_extplot.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:143c1c64794008ac68003e330bf925c9c8480c91e6f101e11de761ea883fcd95 +size 15206 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_greencheck.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_greencheck.ydr new file mode 100644 index 000000000..a14af4135 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_greencheck.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c64011b2b6102f7c70673f9f7c01ea948c128ce6246c5321bf3a44116993a53 +size 939 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land.ydr new file mode 100644 index 000000000..af0fd9aed --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c556c91ded1562d0b6bfdc46a323b254b33d91f722d980fe5362b780ce5af52 +size 234929 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land1.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land1.ydr new file mode 100644 index 000000000..4eec9f227 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land1.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2196cccbc1572e9ffd6f940def22ecdd7fd47297336d8b94647ab7ff698427d3 +size 627759 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land2.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land2.ydr new file mode 100644 index 000000000..223df4f6d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land2.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f81d07d3f9eec22e66ed5b1075aa9d7411fea92cf06f4e54ccba93002c4080c5 +size 222985 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land3.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land3.ydr new file mode 100644 index 000000000..04c7b9e64 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_land3.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c926f383040b4b662a59066c416dc9028b48877eeeebdd6e1783bc2c1deca0ce +size 233013 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_lines.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_lines.ydr new file mode 100644 index 000000000..9047fd65e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_lines.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2beceb5be8d36e3a2eef3cb85de8ccf2d8e0f87010184fa553317140c3bd6de5 +size 127187 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_lines01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_lines01.ydr new file mode 100644 index 000000000..9dfbe3d2c --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_lines01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40f1117abbd294a022ca963e046b553a72ab11f6e782a88439fafc79f23073b7 +size 118745 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_polesign.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_polesign.ydr new file mode 100644 index 000000000..dce91f65b --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_polesign.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f366e44177f8df857149279b94f7c7aaca95a2bb4e3c9b189ad3c48533aeb3df +size 2156 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_redx.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_redx.ydr new file mode 100644 index 000000000..a9abeb2c8 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_redx.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6428fda3780ee6e94e5cc4aca6335c6f8bb7608432769d7f9f4e223e4a7d859b +size 1012 diff --git a/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_roadwall01.ydr b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_roadwall01.ydr new file mode 100644 index 000000000..fec5665fa --- /dev/null +++ b/resources/[EGRP-Map-Addons]/jd-weighstation02/stream/jd_weightstation02_roadwall01.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad55e681d9fdddefbe431f010217fb76b45d32e17bd8ef8060ab9ca5b1833522 +size 157517 diff --git a/server.cfg b/server.cfg index b56dfc717..fb796e96f 100644 --- a/server.cfg +++ b/server.cfg @@ -660,7 +660,19 @@ ensure ed_white_mansion ensure jd-dot1 ensure int_mphouse01 ensure RealCalifornIArchitecture -ensure 25sandydealership_rsm + + + +ensure jd-weighstation +ensure jd-weighstation02 +ensure jd-scenarios + + [jd-weighstations] +ensure jd-weighstation01 +ensure jd-weighstation-shared +ensure + + #[-----[25sandyltdpizza]-----] ensure @@ -1096,7 +1108,8 @@ add_ace builtin.everyone rhud.priority.reset allow add_ace builtin.everyone rhud.player.heal_self allow add_ace group.admin rhud.player.heal_other allow - +add_ace group.admin weighstation.mainlights allow +add_ace group.admin weighstation.amberlights allow