From 7abb2575872074b5151c852603c1f64c560a9f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20N=27gadi?= Date: Wed, 2 Aug 2017 11:08:21 +0200 Subject: [PATCH] Add files --- __resource.lua | 12 +++++ client/main.lua | 79 ++++++++++++++++++++++++++++++ esx_society.sql | 9 ++++ server/main.lua | 124 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 224 insertions(+) create mode 100644 __resource.lua create mode 100644 client/main.lua create mode 100644 esx_society.sql create mode 100644 server/main.lua diff --git a/__resource.lua b/__resource.lua new file mode 100644 index 00000000..9287ed13 --- /dev/null +++ b/__resource.lua @@ -0,0 +1,12 @@ +resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' + +description 'ESX Society' + +server_scripts { + '@mysql-async/lib/MySQL.lua', + 'server/main.lua' +} + +client_scripts { + 'client/main.lua' +} diff --git a/client/main.lua b/client/main.lua new file mode 100644 index 00000000..8ac18b75 --- /dev/null +++ b/client/main.lua @@ -0,0 +1,79 @@ +ESX = nil +local PlayerData = {} +local base64MoneyIcon = 'data:image/png;base64,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/GMzLdsAADhgaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAxNCA3OS4xNTE0ODEsIDIwMTMvMDMvMTMtMTI6MDk6MTUgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTUtMTAtMDlUMjA6MTM6MTYrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNS0xMC0wOVQyMDoxNDo0NyswMjowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTUtMTAtMDlUMjA6MTQ6NDcrMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NmZkNGVlNjgtOWU3Mi1jYTQxLTg5NjMtMWRjMmI2M2EzYWExPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjZmZDRlZTY4LTllNzItY2E0MS04OTYzLTFkYzJiNjNhM2FhMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjZmZDRlZTY4LTllNzItY2E0MS04OTYzLTFkYzJiNjNhM2FhMTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2ZmQ0ZWU2OC05ZTcyLWNhNDEtODk2My0xZGMyYjYzYTNhYTE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTUtMTAtMDlUMjA6MTM6MTYrMDI6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+OTYwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj45NjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTgwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE4MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg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' + +Citizen.CreateThread(function() + while ESX == nil do + TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) + Citizen.Wait(0) + end +end) + +function EnableSocietyMoneyHUDElement() + + local societyMoneyHUDElementTpl = '
 {{money}}
' + + ESX.UI.HUD.RegisterElement('society_money', 3, 0, societyMoneyHUDElementTpl, { + money = 0 + }) + +end + +function DisableSocietyMoneyHUDElement() + ESX.UI.HUD.RemoveElement('society_money') +end + +function UpdateSocietyMoneyHUDElement(money) + + ESX.UI.HUD.UpdateElement('society_money', { + money = money + }) + +end + +RegisterNetEvent('esx:playerLoaded') +AddEventHandler('esx:playerLoaded', function(xPlayer) + + PlayerData = xPlayer + + DisableSocietyMoneyHUDElement() + + if PlayerData.job.grade_name == 'boss' then + + EnableSocietyMoneyHUDElement() + + ESX.TriggerServerCallback('esx_society:getAccountMoney', function(money) + UpdateSocietyMoneyHUDElement(money) + end, 'society_' .. PlayerData.job.name) + + end + +end) + +RegisterNetEvent('esx:setJob') +AddEventHandler('esx:setJob', function(job) + + PlayerData.job = job + + DisableSocietyMoneyHUDElement() + + if PlayerData.job.grade_name == 'boss' then + + EnableSocietyMoneyHUDElement() + + ESX.TriggerServerCallback('esx_society:getAccountMoney', function(money) + UpdateSocietyMoneyHUDElement(money) + end, 'society_' .. PlayerData.job.name) + + end + +end) + +RegisterNetEvent('esx_addonAccount:setMoney') +AddEventHandler('esx_addonAccount:setMoney', function(name, money) + + if PlayerData.job ~= nil and PlayerData.job.grade_name == 'boss' and 'society_' .. PlayerData.job.name == name then + UpdateSocietyMoneyHUDElement(money) + end + +end) \ No newline at end of file diff --git a/esx_society.sql b/esx_society.sql new file mode 100644 index 00000000..cb097561 --- /dev/null +++ b/esx_society.sql @@ -0,0 +1,9 @@ +CREATE TABLE `society_moneywash` ( + + `id` int(11) NOT NULL AUTO_INCREMENT, + `identifier` varchar(60) NOT NULL, + `society` varchar(60) NOT NULL, + `amount` int(11) NOT NULL, + + PRIMARY KEY (`id`) +); \ No newline at end of file diff --git a/server/main.lua b/server/main.lua new file mode 100644 index 00000000..0e30cf2e --- /dev/null +++ b/server/main.lua @@ -0,0 +1,124 @@ +ESX = nil + +TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) + +RegisterServerEvent('esx_society:withdrawMoney') +AddEventHandler('esx_society:withdrawMoney', function(society, amount) + + local xPlayer = ESX.GetPlayerFromId(source) + + TriggerEvent('esx_addonaccount:getSharedAccount', 'society_' .. society, function(account) + + if amount > 0 and account.money >= amount then + + account.removeMoney(amount) + xPlayer.addMoney(amount) + + TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez retiré ~g~$' .. amount) + + else + TriggerClientEvent('esx:showNotification', xPlayer.source, 'Montant invalide') + end + + end) + +end) + +RegisterServerEvent('esx_society:depositMoney') +AddEventHandler('esx_society:depositMoney', function(society, amount) + + local xPlayer = ESX.GetPlayerFromId(source) + + if amount > 0 and xPlayer.get('money') >= amount then + + TriggerEvent('esx_addonaccount:getSharedAccount', 'society_' .. society, function(account) + xPlayer.removeMoney(amount) + account.addMoney(amount) + end) + + TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez déposé ~r~$' .. amount) + + else + TriggerClientEvent('esx:showNotification', xPlayer.source, 'Montant invalide') + end + +end) + +RegisterServerEvent('esx_society:washMoney') +AddEventHandler('esx_society:washMoney', function(society, amount) + + local xPlayer = ESX.GetPlayerFromId(source) + local account = xPlayer.getAccount('black_money') + + if amount > 0 and account.money >= amount then + + xPlayer.removeAccountMoney('black_money', amount) + + MySQL.Async.execute( + 'INSERT INTO society_moneywash (identifier, society, amount) VALUES (@identifier, @society, @amount)', + { + ['@identifier'] = xPlayer.identifier, + ['@society'] = society, + ['@amount'] = amount + }, + function(rowsChanged) + TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez ~g~$' .. amount .. '~s~ en attente de ~r~blanchiement~s~ (24h)') + end + ) + + else + TriggerClientEvent('esx:showNotification', xPlayer.source, 'Montant invalide') + end + +end) + +ESX.RegisterServerCallback('esx_society:getAccountMoney', function(source, cb, account) + TriggerEvent('esx_addonaccount:getSharedAccount', account, function(account) + cb(account.money) + end) +end) + +function WashMoneyCRON(d, h, m) + + MySQL.Async.fetchAll( + 'SELECT * FROM society_moneywash', + {}, + function(result) + + local xPlayers = ESX.GetPlayers() + + for i=1, #result, 1 do + + local foundPlayer = false + local xPlayer = nil + + for k,v in pairs(xPlayers) do + if v.identifier == result[i].identifier then + foundPlayer = true + xPlayer = v + end + end + + TriggerEvent('esx_addonaccount:getSharedAccount', 'society_' .. result[i].society, function(account) + account.addMoney(result[i].amount) + end) + + if foundPlayer then + TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez ~r~blanchi~s~ votre argent : ~g~$' .. result[i].amount) + end + + MySQL.Async.execute( + 'DELETE FROM society_moneywash WHERE id = @id', + { + ['@id'] = result[i].id + } + ) + + end + + end + ) + +end + +TriggerEvent('cron:runAt', 3, 0, WashMoneyCRON) \ No newline at end of file