feat: Update all resources to version legacy

- Resources updated to use `@es_extended/imports.lua` instead of calling ESX manually

- Replaced all xPlayer loops with ESX.GetExtendedPlayers()

- Reverted NUI chunking for esx_menu_default

- Performance improvements for several resources

- Added events and checks for the player to be loaded for several resources

- Changed all PlayerData tables to use ESX.PlayerData
This commit is contained in:
Linden
2021-06-26 13:33:59 +10:00
parent e3113ab7f9
commit 104479eaab
130 changed files with 404 additions and 822 deletions
-8
View File
@@ -1,13 +1,5 @@
ESX = nil
local loadingScreenFinished = false local loadingScreenFinished = false
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
RegisterNetEvent('esx_identity:alreadyRegistered') RegisterNetEvent('esx_identity:alreadyRegistered')
AddEventHandler('esx_identity:alreadyRegistered', function() AddEventHandler('esx_identity:alreadyRegistered', function()
while not loadingScreenFinished do while not loadingScreenFinished do
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Identity' description 'ESX Identity'
version '1.4.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
-13
View File
@@ -1,20 +1,7 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
local playerIdentity = {} local playerIdentity = {}
local alreadyRegistered = {} local alreadyRegistered = {}
local multichar = ESX.GetConfig().Multichar local multichar = ESX.GetConfig().Multichar
if multichar == nil then
ESX.GetIdentifier = function(playerId)
for k,v in ipairs(GetPlayerIdentifiers(playerId)) do
if string.match(v, 'license:') then
local identifier = string.gsub(v, 'license:', '')
return identifier
end
end
end
end
if Config.UseDeferrals then if Config.UseDeferrals then
AddEventHandler('playerConnecting', function(playerName, setKickReason, deferrals) AddEventHandler('playerConnecting', function(playerName, setKickReason, deferrals)
deferrals.defer() deferrals.defer()
+7 -11
View File
@@ -1,11 +1,5 @@
ESX = nil
Citizen.CreateThread(function() Citizen.CreateThread(function()
while ESX == nil do local ESX = exports['es_extended']:getSharedObject()
Citizen.Wait(5)
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
end
local GUI, MenuType = {}, 'default' local GUI, MenuType = {}, 'default'
GUI.Time = 0 GUI.Time = 0
@@ -29,23 +23,24 @@ Citizen.CreateThread(function()
ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu) ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu)
AddEventHandler('esx_menu_default:message:menu_submit', function(data) RegisterNUICallback('menu_submit', function(data, cb)
local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name)
if menu.submit ~= nil then if menu.submit ~= nil then
menu.submit(data, menu) menu.submit(data, menu)
end end
cb('OK')
end) end)
AddEventHandler('esx_menu_default:message:menu_cancel', function(data) RegisterNUICallback('menu_cancel', function(data, cb)
local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name)
if menu.cancel ~= nil then if menu.cancel ~= nil then
menu.cancel(data, menu) menu.cancel(data, menu)
end end
cb('OK')
end) end)
AddEventHandler('esx_menu_default:message:menu_change', function(data) RegisterNUICallback('menu_change', function(data, cb)
local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name)
for i=1, #data.elements, 1 do for i=1, #data.elements, 1 do
@@ -61,6 +56,7 @@ Citizen.CreateThread(function()
if menu.change ~= nil then if menu.change ~= nil then
menu.change(data, menu) menu.change(data, menu)
end end
cb('OK')
end) end)
Citizen.CreateThread(function() Citizen.CreateThread(function()
+1 -2
View File
@@ -4,10 +4,9 @@ game 'gta5'
description 'ESX Menu Default' description 'ESX Menu Default'
version '1.0.4' version 'legacy'
client_scripts { client_scripts {
'@es_extended/client/wrapper.lua',
'client/main.lua' 'client/main.lua'
} }
+6 -6
View File
@@ -127,28 +127,28 @@
}; };
ESX_MENU.submit = function(namespace, name, data) { ESX_MENU.submit = function(namespace, name, data) {
SendMessage(ESX_MENU.ResourceName, 'menu_submit', { $.post('http://' + ESX_MENU.ResourceName + '/menu_submit', JSON.stringify({
_namespace: namespace, _namespace: namespace,
_name: name, _name: name,
current: data, current: data,
elements: ESX_MENU.opened[namespace][name].elements elements: ESX_MENU.opened[namespace][name].elements
}); }));
}; };
ESX_MENU.cancel = function(namespace, name) { ESX_MENU.cancel = function(namespace, name) {
SendMessage(ESX_MENU.ResourceName, 'menu_cancel', { $.post('http://' + ESX_MENU.ResourceName + '/menu_cancel', JSON.stringify({
_namespace: namespace, _namespace: namespace,
_name: name _name: name
}); }));
}; };
ESX_MENU.change = function(namespace, name, data) { ESX_MENU.change = function(namespace, name, data) {
SendMessage(ESX_MENU.ResourceName, 'menu_change', { $.post('http://' + ESX_MENU.ResourceName + '/menu_change', JSON.stringify({
_namespace: namespace, _namespace: namespace,
_name: name, _name: name,
current: data, current: data,
elements: ESX_MENU.opened[namespace][name].elements elements: ESX_MENU.opened[namespace][name].elements
}); }));
}; };
ESX_MENU.getFocused = function() { ESX_MENU.getFocused = function() {
-1
View File
@@ -11,7 +11,6 @@
<div id="menus"></div> <div id="menus"></div>
<script src="nui://game/ui/jquery.js" type="text/javascript"></script> <script src="nui://game/ui/jquery.js" type="text/javascript"></script>
<script src="nui://es_extended/html/js/wrapper.js"></script>
<script src="nui://esx_menu_default/html/js/mustache.min.js" type="text/javascript"></script> <script src="nui://esx_menu_default/html/js/mustache.min.js" type="text/javascript"></script>
<script src="nui://esx_menu_default/html/js/app.js" type="text/javascript"></script> <script src="nui://esx_menu_default/html/js/app.js" type="text/javascript"></script>
</body> </body>
+1 -6
View File
@@ -1,12 +1,7 @@
Citizen.CreateThread(function() Citizen.CreateThread(function()
ESX = nil local ESX = exports['es_extended']:getSharedObject()
local Timeouts, OpenedMenus, MenuType = {}, {}, 'dialog' local Timeouts, OpenedMenus, MenuType = {}, {}, 'dialog'
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
local openMenu = function(namespace, name, data) local openMenu = function(namespace, name, data)
for i=1, #Timeouts, 1 do for i=1, #Timeouts, 1 do
ESX.ClearTimeout(Timeouts[i]) ESX.ClearTimeout(Timeouts[i])
+1 -1
View File
@@ -4,7 +4,7 @@ game 'gta5'
description 'ESX Menu Dialog' description 'ESX Menu Dialog'
version '1.1.0' version 'legacy'
client_scripts { client_scripts {
'@es_extended/client/wrapper.lua', '@es_extended/client/wrapper.lua',
+1 -8
View File
@@ -1,12 +1,5 @@
ESX = nil
Citizen.CreateThread(function() Citizen.CreateThread(function()
local ESX = exports['es_extended']:getSharedObject()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
local MenuType = 'list' local MenuType = 'list'
local OpenedMenus = {} local OpenedMenus = {}
+1 -1
View File
@@ -4,7 +4,7 @@ game 'gta5'
description 'ESX Menu List' description 'ESX Menu List'
version '1.0.2' version 'legacy'
client_scripts { client_scripts {
'@es_extended/client/wrapper.lua', '@es_extended/client/wrapper.lua',
+4 -31
View File
@@ -1,14 +1,6 @@
ESX = nil local lastSkin, cam, isCameraActive
local lastSkin, playerLoaded, cam, isCameraActive
local firstSpawn, zoomOffset, camOffset, heading, skinLoaded = true, 0.0, 0.0, 90.0, false local firstSpawn, zoomOffset, camOffset, heading, skinLoaded = true, 0.0, 0.0, 90.0, false
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function OpenMenu(submitCb, cancelCb, restrict) function OpenMenu(submitCb, cancelCb, restrict)
local playerPed = PlayerPedId() local playerPed = PlayerPedId()
@@ -249,34 +241,15 @@ function OpenSaveableMenu(submitCb, cancelCb, restrict)
end, cancelCb, restrict) end, cancelCb, restrict)
end end
AddEventHandler('esx:onPlayerSpawn', function()
Citizen.CreateThread(function()
while not playerLoaded do
Citizen.Wait(100)
end
if firstSpawn and ESX.GetConfig().Multichar ~= true then
ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin, jobSkin)
if skin == nil then
TriggerEvent('skinchanger:loadSkin', {sex = 0}, OpenSaveableMenu)
else
TriggerEvent('skinchanger:loadSkin', skin)
end
end)
firstSpawn = false
end
end)
end)
AddEventHandler('esx_skin:resetFirstSpawn', function() AddEventHandler('esx_skin:resetFirstSpawn', function()
firstSpawn = true firstSpawn = true
skinLoaded = false skinLoaded = false
ESX.PlayerLoaded = false
end) end)
AddEventHandler('esx_skin:playerRegistered', function() AddEventHandler('esx_skin:playerRegistered', function()
Citizen.CreateThread(function() Citizen.CreateThread(function()
while not playerLoaded do while not ESX.PlayerLoaded do
Citizen.Wait(100) Citizen.Wait(100)
end end
@@ -300,7 +273,7 @@ end)
RegisterNetEvent('esx:playerLoaded') RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer) AddEventHandler('esx:playerLoaded', function(xPlayer)
playerLoaded = true ESX.PlayerLoaded = true
end) end)
AddEventHandler('esx_skin:getLastSkin', function(cb) cb(lastSkin) end) AddEventHandler('esx_skin:getLastSkin', function(cb) cb(lastSkin) end)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Skin' description 'ESX Skin'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
-4
View File
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_skin:save') RegisterServerEvent('esx_skin:save')
AddEventHandler('esx_skin:save', function(skin) AddEventHandler('esx_skin:save', function(skin)
local xPlayer = ESX.GetPlayerFromId(source) local xPlayer = ESX.GetPlayerFromId(source)
+31 -30
View File
@@ -1,15 +1,7 @@
ESX = nil
local HasAlreadyEnteredMarker, isDead = false, false local HasAlreadyEnteredMarker, isDead = false, false
local LastZone, CurrentAction, CurrentActionMsg local LastZone, CurrentAction, CurrentActionMsg
local CurrentActionData = {} local CurrentActionData = {}
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function OpenAccessoryMenu() function OpenAccessoryMenu()
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'set_unset_accessory', { ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'set_unset_accessory', {
title = _U('set_unset'), title = _U('set_unset'),
@@ -157,47 +149,56 @@ Citizen.CreateThread(function()
end end
end) end)
local nearMarker = false
-- Display markers -- Display markers
Citizen.CreateThread(function() Citizen.CreateThread(function()
while true do while true do
Citizen.Wait(0) local sleep = 500
local coords = GetEntityCoords(PlayerPedId()) local coords = GetEntityCoords(ESX.PlayerData.ped)
for k,v in pairs(Config.Zones) do for k,v in pairs(Config.Zones) do
for i = 1, #v.Pos, 1 do for i = 1, #v.Pos, 1 do
if(Config.Type ~= -1 and GetDistanceBetweenCoords(coords, v.Pos[i], true) < Config.DrawDistance) then if(Config.Type ~= -1 and #(coords - v.Pos[i]) < Config.DrawDistance) then
DrawMarker(Config.Type, v.Pos[i], 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.Size.x, Config.Size.y, Config.Size.z, Config.Color.r, Config.Color.g, Config.Color.b, 100, false, true, 2, false, false, false, false) DrawMarker(Config.Type, v.Pos[i], 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.Size.x, Config.Size.y, Config.Size.z, Config.Color.r, Config.Color.g, Config.Color.b, 100, false, true, 2, false, false, false, false)
sleep = 0
break
end end
end end
end end
if sleep == 0 then nearMarker = true else nearMarker = false end
Citizen.Wait(sleep)
end end
end) end)
Citizen.CreateThread(function() Citizen.CreateThread(function()
while true do while true do
Citizen.Wait(200) local sleep = 500
if nearMarker then
local coords = GetEntityCoords(PlayerPedId()) sleep = 200
local isInMarker = false local coords = GetEntityCoords(ESX.PlayerData.ped)
local currentZone = nil local isInMarker = false
for k,v in pairs(Config.Zones) do local currentZone = nil
for i = 1, #v.Pos, 1 do for k,v in pairs(Config.Zones) do
if GetDistanceBetweenCoords(coords, v.Pos[i], true) < Config.Size.x then for i = 1, #v.Pos, 1 do
isInMarker = true if #(coords - v.Pos[i]) < Config.Size.x then
currentZone = k isInMarker = true
currentZone = k
break
end
end end
end end
end
if (isInMarker and not HasAlreadyEnteredMarker) or (isInMarker and LastZone ~= currentZone) then if (isInMarker and not HasAlreadyEnteredMarker) or (isInMarker and LastZone ~= currentZone) then
HasAlreadyEnteredMarker = true HasAlreadyEnteredMarker = true
LastZone = currentZone LastZone = currentZone
TriggerEvent('esx_accessories:hasEnteredMarker', currentZone) TriggerEvent('esx_accessories:hasEnteredMarker', currentZone)
end end
if not isInMarker and HasAlreadyEnteredMarker then if not isInMarker and HasAlreadyEnteredMarker then
HasAlreadyEnteredMarker = false HasAlreadyEnteredMarker = false
TriggerEvent('esx_accessories:hasExitedMarker', LastZone) TriggerEvent('esx_accessories:hasExitedMarker', LastZone)
end
end end
Citizen.Wait(sleep)
end end
end) end)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Accessories' description 'ESX Accessories'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_accessories:pay') RegisterServerEvent('esx_accessories:pay')
AddEventHandler('esx_accessories:pay', function() AddEventHandler('esx_accessories:pay', function()
local xPlayer = ESX.GetPlayerFromId(source) local xPlayer = ESX.GetPlayerFromId(source)
+2 -1
View File
@@ -4,9 +4,10 @@ game 'gta5'
description 'ESX Addon Account' description 'ESX Addon Account'
version '1.0.1' version 'legacy'
server_scripts { server_scripts {
'@es_extended/imports.lua',
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
'server/classes/addonaccount.lua', 'server/classes/addonaccount.lua',
'server/main.lua' 'server/main.lua'
@@ -1,7 +1,4 @@
local AccountsIndex, Accounts, SharedAccounts = {}, {}, {} local AccountsIndex, Accounts, SharedAccounts = {}, {}, {}
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
MySQL.ready(function() MySQL.ready(function()
local result = MySQL.Sync.fetchAll('SELECT * FROM addon_account') local result = MySQL.Sync.fetchAll('SELECT * FROM addon_account')
@@ -4,9 +4,10 @@ game 'gta5'
description 'ESX Addon Inventory' description 'ESX Addon Inventory'
version '1.1.0' version 'legacy'
server_scripts { server_scripts {
'@es_extended/imports.lua',
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
'server/classes/addoninventory.lua', 'server/classes/addoninventory.lua',
'server/main.lua' 'server/main.lua'
@@ -1,8 +1,5 @@
Items = {} Items = {}
local InventoriesIndex, Inventories, SharedInventories = {}, {}, {} local InventoriesIndex, Inventories, SharedInventories = {}, {}, {}
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
MySQL.ready(function() MySQL.ready(function()
local items = MySQL.Sync.fetchAll('SELECT * FROM items') local items = MySQL.Sync.fetchAll('SELECT * FROM items')
+12 -20
View File
@@ -1,7 +1,6 @@
local firstSpawn, PlayerLoaded = true, false local firstSpawn = true
isDead, isSearched, medic = false, false, 0 isDead, isSearched, medic = false, false, 0
ESX = nil
AddEventHandler("onClientMapStart", function() AddEventHandler("onClientMapStart", function()
exports.spawnmanager:spawnPlayer() exports.spawnmanager:spawnPlayer()
@@ -9,24 +8,17 @@ AddEventHandler("onClientMapStart", function()
exports.spawnmanager:setAutoSpawn(false) exports.spawnmanager:setAutoSpawn(false)
end) end)
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(100)
end
PlayerLoaded = true
ESX.PlayerData = ESX.GetPlayerData()
end)
RegisterNetEvent('esx:playerLoaded') RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer) AddEventHandler('esx:playerLoaded', function(xPlayer)
ESX.PlayerData = xPlayer ESX.PlayerData = xPlayer
PlayerLoaded = true ESX.PlayerLoaded = true
end)
RegisterNetEvent('esx:onPlayerLogout')
AddEventHandler('esx:onPlayerLogout', function()
ESX.PlayerLoaded = false
ESX.PlayerData = {}
firstSpawn = true
end) end)
RegisterNetEvent('esx:setJob') RegisterNetEvent('esx:setJob')
@@ -41,13 +33,13 @@ AddEventHandler('esx:onPlayerSpawn', function()
firstSpawn = false firstSpawn = false
if Config.AntiCombatLog then if Config.AntiCombatLog then
while not PlayerLoaded do while not ESX.PlayerLoaded do
Citizen.Wait(5000) Citizen.Wait(1000)
end end
ESX.TriggerServerCallback('esx_ambulancejob:getDeathStatus', function(shouldDie) ESX.TriggerServerCallback('esx_ambulancejob:getDeathStatus', function(shouldDie)
if shouldDie then if shouldDie then
Citizen.Wait(10000) Citizen.Wait(5000)
SetEntityHealth(PlayerPedId(), 0) SetEntityHealth(PlayerPedId(), 0)
end end
end) end)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Ambulance Job' description 'ESX Ambulance Job'
version '1.2.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
@@ -1,8 +1,5 @@
ESX = nil
local playersHealing, deadPlayers = {}, {} local playersHealing, deadPlayers = {}, {}
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
TriggerEvent('esx_phone:registerNumber', 'ambulance', _U('alert_ambulance'), true, true) TriggerEvent('esx_phone:registerNumber', 'ambulance', _U('alert_ambulance'), true, true)
TriggerEvent('esx_society:registerSociety', 'ambulance', 'Ambulance', 'society_ambulance', 'society_ambulance', 'society_ambulance', {type = 'public'}) TriggerEvent('esx_society:registerSociety', 'ambulance', 'Ambulance', 'society_ambulance', 'society_ambulance', 'society_ambulance', {type = 'public'})
@@ -1,13 +1,5 @@
local isDead = false local isDead = false
local inAnim = false local inAnim = false
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
AddEventHandler('esx:onPlayerDeath', function(data) isDead = true end) AddEventHandler('esx:onPlayerDeath', function(data) isDead = true end)
+2 -1
View File
@@ -4,9 +4,10 @@ game 'gta5'
description 'ESX Animations' description 'ESX Animations'
version '1.0.0' version 'legacy'
client_scripts { client_scripts {
'@es_extended/imports.lua',
'config.lua', 'config.lua',
'client/main.lua' 'client/main.lua'
} }
-8
View File
@@ -1,13 +1,5 @@
-- internal variables -- internal variables
local hasAlreadyEnteredMarker, isInATMMarker, menuIsShowed = false, false, false local hasAlreadyEnteredMarker, isInATMMarker, menuIsShowed = false, false, false
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
RegisterNetEvent('esx_atm:closeATM') RegisterNetEvent('esx_atm:closeATM')
AddEventHandler('esx_atm:closeATM', function() AddEventHandler('esx_atm:closeATM', function()
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Atm' description 'ESX Atm'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
-3
View File
@@ -1,6 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_atm:deposit') RegisterServerEvent('esx_atm:deposit')
AddEventHandler('esx_atm:deposit', function(amount) AddEventHandler('esx_atm:deposit', function(amount)
local _source = source local _source = source
@@ -1,18 +1,4 @@
local CurrentActionData, CurrentAction, CurrentActionMsg, hasAlreadyEnteredMarker, lastZone = {} local CurrentActionData, CurrentAction, CurrentActionMsg, hasAlreadyEnteredMarker, lastZone = {}
ESX = nil
Citizen.CreateThread(function ()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(100)
end
ESX.PlayerData = ESX.GetPlayerData()
end)
RegisterNetEvent('esx:playerLoaded') RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function (xPlayer) AddEventHandler('esx:playerLoaded', function (xPlayer)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Banker job' description 'ESX Banker job'
version '1.0.1' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@async/async.lua', '@async/async.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
TriggerEvent('esx_phone:registerNumber', 'banker', _('phone_receive'), false, false) TriggerEvent('esx_phone:registerNumber', 'banker', _('phone_receive'), false, false)
TriggerEvent('esx_society:registerSociety', 'banker', _U('phone_label'), 'society_banker', 'society_banker', 'society_banker', {type = 'public'}) TriggerEvent('esx_society:registerSociety', 'banker', _U('phone_label'), 'society_banker', 'society_banker', 'society_banker', {type = 'public'})
@@ -1,13 +1,5 @@
ESX = nil
local hasAlreadyEnteredMarker, lastZone, currentAction, currentActionMsg, hasPaid local hasAlreadyEnteredMarker, lastZone, currentAction, currentActionMsg, hasPaid
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function OpenShopMenu() function OpenShopMenu()
hasPaid = false hasPaid = false
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Barber Shop' description 'ESX Barber Shop'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_barbershop:pay') RegisterServerEvent('esx_barbershop:pay')
AddEventHandler('esx_barbershop:pay', function() AddEventHandler('esx_barbershop:pay', function()
local _source = source local _source = source
@@ -1,14 +1,6 @@
ESX = nil
local IsDead = false local IsDead = false
local IsAnimated = false local IsAnimated = false
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
AddEventHandler('esx_basicneeds:resetStatus', function() AddEventHandler('esx_basicneeds:resetStatus', function()
TriggerEvent('esx_status:set', 'hunger', 500000) TriggerEvent('esx_status:set', 'hunger', 500000)
TriggerEvent('esx_status:set', 'thirst', 500000) TriggerEvent('esx_status:set', 'thirst', 500000)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Basic Needs' description 'ESX Basic Needs'
version '1.0.1' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
ESX.RegisterUsableItem('bread', function(source) ESX.RegisterUsableItem('bread', function(source)
local xPlayer = ESX.GetPlayerFromId(source) local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('bread', 1) xPlayer.removeInventoryItem('bread', 1)
-8
View File
@@ -1,13 +1,5 @@
ESX = nil
local isDead = false local isDead = false
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function ShowBillsMenu() function ShowBillsMenu()
ESX.TriggerServerCallback('esx_billing:getBills', function(bills) ESX.TriggerServerCallback('esx_billing:getBills', function(bills)
if #bills > 0 then if #bills > 0 then
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Billing' description 'ESX Billing'
version '1.2.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
-4
View File
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_billing:sendBill') RegisterServerEvent('esx_billing:sendBill')
AddEventHandler('esx_billing:sendBill', function(playerId, sharedAccountName, label, amount) AddEventHandler('esx_billing:sendBill', function(playerId, sharedAccountName, label, amount)
local xPlayer = ESX.GetPlayerFromId(source) local xPlayer = ESX.GetPlayerFromId(source)
+1 -15
View File
@@ -1,20 +1,6 @@
ESX = nil local isInShopMenu = false
isInShopMenu = false
local spawnedVehicles = {} local spawnedVehicles = {}
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
while not ESX.GetPlayerData().job do
Citizen.Wait(10)
end
ESX.PlayerData = ESX.GetPlayerData()
end)
function OpenBoatShop(shop) function OpenBoatShop(shop)
isInShopMenu = true isInShopMenu = true
+3 -3
View File
@@ -1,9 +1,9 @@
local HasAlreadyEnteredMarker = false local HasAlreadyEnteredMarker = false
local LastZone = nil local LastZone = nil
CurrentAction = nil local CurrentAction = nil
CurrentActionMsg = '' local CurrentActionMsg = ''
CurrentActionData = {} local CurrentActionData = {}
-- Key controls -- Key controls
Citizen.CreateThread(function() Citizen.CreateThread(function()
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Boat' description 'ESX Boat'
version '1.0.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
-4
View File
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
MySQL.ready(function() MySQL.ready(function()
ParkBoats() ParkBoats()
end) end)
+9 -12
View File
@@ -1,19 +1,16 @@
ESX = nil RegisterNetEvent('esx:playerLoaded')
local PlayerData = {} AddEventHandler('esx:playerLoaded', function(xPlayer, isNew)
ESX.PlayerData = xPlayer
Citizen.CreateThread(function() ESX.PlayerLoaded = true
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end) end)
RegisterNetEvent('esx:playerLoaded') RegisterNetEvent('esx:playerLogout')
AddEventHandler('esx:playerLoaded', function(xPlayer) AddEventHandler('esx:playerLogout', function(xPlayer, isNew)
PlayerData = xPlayer ESX.PlayerLoaded = false
ESX.PlayerData = {}
end) end)
RegisterNetEvent('esx:setJob') RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob', function(job) AddEventHandler('esx:setJob', function(job)
PlayerData.job = job ESX.PlayerData.job = job
end) end)
@@ -4,6 +4,8 @@ game 'gta5'
description 'ESX Boilerplate' description 'ESX Boilerplate'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'server/main.lua' 'server/main.lua'
} }
@@ -1,4 +0,0 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
@@ -1,14 +1,6 @@
local hasAlreadyEnteredMarker, hasPaid, currentActionData = false, false, {} local hasAlreadyEnteredMarker, hasPaid, currentActionData = false, false, {}
local lastZone, currentAction, currentActionMsg local lastZone, currentAction, currentActionMsg
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function OpenShopMenu() function OpenShopMenu()
hasPaid = false hasPaid = false
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Clothes Shop' description 'ESX Clothes Shop'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_clotheshop:saveOutfit') RegisterServerEvent('esx_clotheshop:saveOutfit')
AddEventHandler('esx_clotheshop:saveOutfit', function(label, skin) AddEventHandler('esx_clotheshop:saveOutfit', function(label, skin)
local xPlayer = ESX.GetPlayerFromId(source) local xPlayer = ESX.GetPlayerFromId(source)
+47 -56
View File
@@ -1,89 +1,80 @@
local Player = nil local Player = nil
local CruisedSpeed, CruisedSpeedKm, VehicleVectorY = 0, 0, 0 local CruisedSpeed, CruisedSpeedKm, VehicleVectorY = 0, 0, 0
ESX = nil
Citizen.CreateThread(function () Citizen.CreateThread(function ()
while ESX == nil do while true do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) Wait(0)
Wait(0) if IsControlJustPressed(1, 246) and IsDriver() then
end Player = PlayerPedId()
end) TriggerCruiseControl()
end
Citizen.CreateThread(function () end
while true do
Wait(0)
if IsControlJustPressed(1, 246) and IsDriver() then
Player = GetPlayerPed(-1)
TriggerCruiseControl()
end
end
end) end)
function TriggerCruiseControl () function TriggerCruiseControl ()
if CruisedSpeed == 0 and IsDriving() then if CruisedSpeed == 0 and IsDriving() then
if GetVehiculeSpeed() > 0 and GetVehicleCurrentGear(GetVehicle()) > 0 then if GetVehicleSpeed() > 0 and GetVehicleCurrentGear(GetVehicle()) > 0 then
CruisedSpeed = GetVehiculeSpeed() CruisedSpeed = GetVehicleSpeed()
CruisedSpeedKm = TransformToKm(CruisedSpeed) CruisedSpeedKm = TransformToKm(CruisedSpeed)
ESX.ShowNotification(_U('activated') .. ': ~b~ ' .. CruisedSpeedKm .. ' km/h') ESX.ShowNotification(_U('activated') .. ': ~b~ ' .. CruisedSpeedKm .. ' km/h')
Citizen.CreateThread(function () Citizen.CreateThread(function ()
while CruisedSpeed > 0 and IsInVehicle() == Player do while CruisedSpeed > 0 and IsInVehicle() == Player do
Wait(0) Wait(0)
if not IsTurningOrHandBraking() and GetVehiculeSpeed() < (CruisedSpeed - 1.5) then if not IsTurningOrHandBraking() and GetVehicleSpeed() < (CruisedSpeed - 1.5) then
CruisedSpeed = 0 CruisedSpeed = 0
ESX.ShowNotification(_U('deactivated')) ESX.ShowNotification(_U('deactivated'))
Wait(2000) Wait(2000)
break break
end end
if not IsTurningOrHandBraking() and IsVehicleOnAllWheels(GetVehicle()) and GetVehiculeSpeed() < CruisedSpeed then if not IsTurningOrHandBraking() and IsVehicleOnAllWheels(GetVehicle()) and GetVehicleSpeed() < CruisedSpeed then
SetVehicleForwardSpeed(GetVehicle(), CruisedSpeed) SetVehicleForwardSpeed(GetVehicle(), CruisedSpeed)
end end
if IsControlJustPressed(1, 246) then if IsControlJustPressed(1, 246) then
CruisedSpeed = GetVehiculeSpeed() CruisedSpeed = GetVehicleSpeed()
CruisedSpeedKm = TransformToKm(CruisedSpeed) CruisedSpeedKm = TransformToKm(CruisedSpeed)
end end
if IsControlJustPressed(2, 72) then if IsControlJustPressed(2, 72) then
CruisedSpeed = 0 CruisedSpeed = 0
ESX.ShowNotification(_U('deactivated')) ESX.ShowNotification(_U('deactivated'))
Wait(2000) Wait(2000)
break break
end end
end end
end) end)
end end
end end
end end
function IsTurningOrHandBraking () function IsTurningOrHandBraking ()
return IsControlPressed(2, 76) or IsControlPressed(2, 63) or IsControlPressed(2, 64) return IsControlPressed(2, 76) or IsControlPressed(2, 63) or IsControlPressed(2, 64)
end end
function IsDriving () function IsDriving ()
return IsPedInAnyVehicle(Player, false) return IsPedInAnyVehicle(Player, false)
end end
function GetVehicle () function GetVehicle ()
return GetVehiclePedIsIn(Player, false) return GetVehiclePedIsIn(Player, false)
end end
function IsInVehicle () function IsInVehicle ()
return GetPedInVehicleSeat(GetVehicle(), -1) return GetPedInVehicleSeat(GetVehicle(), -1)
end end
function IsDriver () function IsDriver ()
return GetPedInVehicleSeat(GetVehiclePedIsIn(GetPlayerPed(-1), false), -1) == GetPlayerPed(-1) return GetPedInVehicleSeat(GetVehiclePedIsIn(PlayerPedId(), false), -1) == PlayerPedId()
end end
function GetVehiculeSpeed () function GetVehicleSpeed ()
return GetEntitySpeed(GetVehicle()) return GetEntitySpeed(GetVehicle())
end end
function TransformToKm (speed) function TransformToKm (speed)
return math.floor(speed * 3.6 + 0.5) return math.floor(speed * 3.6 + 0.5)
end end
@@ -4,13 +4,14 @@ game 'gta5'
description 'CruiseControl System for ESX' description 'CruiseControl System for ESX'
version '1.0.0' version 'legacy'
dependencies { dependencies {
'es_extended' 'es_extended'
} }
client_scripts { client_scripts {
'@es_extended/imports.lua',
'@es_extended/locale.lua', '@es_extended/locale.lua',
'locales/fi.lua', 'locales/fi.lua',
'locales/fr.lua', 'locales/fr.lua',
+2 -1
View File
@@ -4,9 +4,10 @@ game 'gta5'
description 'ESX Data Store' description 'ESX Data Store'
version '1.0.2' version 'legacy'
server_scripts { server_scripts {
'@es_extended/imports.lua',
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
'server/classes/datastore.lua', 'server/classes/datastore.lua',
'server/main.lua' 'server/main.lua'
@@ -1,7 +1,4 @@
local DataStores, DataStoresIndex, SharedDataStores = {}, {}, {} local DataStores, DataStoresIndex, SharedDataStores = {}, {}, {}
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
MySQL.ready(function() MySQL.ready(function()
local result = MySQL.Sync.fetchAll('SELECT * FROM datastore') local result = MySQL.Sync.fetchAll('SELECT * FROM datastore')
@@ -1,4 +1,3 @@
ESX = nil
local CurrentAction = nil local CurrentAction = nil
local CurrentActionMsg = nil local CurrentActionMsg = nil
local CurrentActionData = nil local CurrentActionData = nil
@@ -13,13 +12,6 @@ local CurrentZoneType = nil
local IsAboveSpeedLimit = false local IsAboveSpeedLimit = false
local LastVehicleHealth = nil local LastVehicleHealth = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function DrawMissionText(msg, time) function DrawMissionText(msg, time)
ClearPrints() ClearPrints()
BeginTextCommandPrint('STRING') BeginTextCommandPrint('STRING')
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX DMV School' description 'ESX DMV School'
version '1.0.4' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
ESX.RegisterServerCallback('esx_dmvschool:canYouPay', function(source, cb, type) ESX.RegisterServerCallback('esx_dmvschool:canYouPay', function(source, cb, type)
local xPlayer = ESX.GetPlayerFromId(source) local xPlayer = ESX.GetPlayerFromId(source)
-14
View File
@@ -1,20 +1,6 @@
ESX = nil
local menuOpen = false local menuOpen = false
local wasOpen = false local wasOpen = false
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(100)
end
ESX.PlayerData = ESX.GetPlayerData()
end)
Citizen.CreateThread(function() Citizen.CreateThread(function()
while true do while true do
Citizen.Wait(0) Citizen.Wait(0)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Drugs' description 'ESX Drugs'
version '2.0.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
-3
View File
@@ -1,10 +1,7 @@
ESX = nil
local playersProcessingCannabis = {} local playersProcessingCannabis = {}
local outofbound = true local outofbound = true
local alive = true local alive = true
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_drugs:sellDrug') RegisterServerEvent('esx_drugs:sellDrug')
AddEventHandler('esx_drugs:sellDrug', function(itemName, amount) AddEventHandler('esx_drugs:sellDrug', function(itemName, amount)
local xPlayer = ESX.GetPlayerFromId(source) local xPlayer = ESX.GetPlayerFromId(source)
+62 -63
View File
@@ -1,13 +1,5 @@
ESX = nil
local LastGarage, LastPart, LastParking, thisGarage = nil, nil, nil, nil local LastGarage, LastPart, LastParking, thisGarage = nil, nil, nil, nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
TriggerEvent('instance:registerType', 'garage') TriggerEvent('instance:registerType', 'garage')
RegisterNetEvent('instance:onCreate') RegisterNetEvent('instance:onCreate')
@@ -232,7 +224,7 @@ AddEventHandler('esx_garage:hasEnteredMarker', function(name, part, parking)
if part == 'Parking' then if part == 'Parking' then
local playerPed = PlayerPedId() local playerPed = PlayerPedId()
local garage = thisGarage local garage = thisGarage
local parkingPos = garage.Parkings[parking].Pos local parkingPos = garage.Parkings[parking].Pos
@@ -254,7 +246,7 @@ AddEventHandler('esx_property:hasExitedMarker', function(name, part, parking)
if part == 'Parking' then if part == 'Parking' then
local playerPed = PlayerPedId() local playerPed = PlayerPedId()
local garage = thisGarage local garage = thisGarage
local parkingPos = garage.Parkings[parking].Pos local parkingPos = garage.Parkings[parking].Pos
@@ -289,25 +281,29 @@ Citizen.CreateThread(function()
end) end)
local nearMarker = false
-- Display markers -- Display markers
Citizen.CreateThread(function() Citizen.CreateThread(function()
while true do while true do
local sleep = 500
Citizen.Wait(0)
local playerPed = PlayerPedId() local playerPed = PlayerPedId()
local coords = GetEntityCoords(playerPed) local coords = GetEntityCoords(playerPed)
for k,v in pairs(Config.Garages) do for k,v in pairs(Config.Garages) do
local garage = vector3(v.ExteriorEntryPoint.Pos.x, v.ExteriorEntryPoint.Pos.y, v.ExteriorEntryPoint.Pos.z)
if v.IsClosed then if v.IsClosed then
if(not v.disabled and GetDistanceBetweenCoords(coords, v.ExteriorEntryPoint.Pos.x, v.ExteriorEntryPoint.Pos.y, v.ExteriorEntryPoint.Pos.z, true) < Config.DrawDistance) then if(not v.disabled and #(coords - garage) < Config.DrawDistance) then
DrawMarker(Config.MarkerType, v.ExteriorEntryPoint.Pos.x, v.ExteriorEntryPoint.Pos.y, v.ExteriorEntryPoint.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.MarkerSize.x, Config.MarkerSize.y, Config.MarkerSize.z, Config.MarkerColor.r, Config.MarkerColor.g, Config.MarkerColor.b, 100, false, true, 2, false, false, false, false) DrawMarker(Config.MarkerType, v.ExteriorEntryPoint.Pos.x, v.ExteriorEntryPoint.Pos.y, v.ExteriorEntryPoint.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.MarkerSize.x, Config.MarkerSize.y, Config.MarkerSize.z, Config.MarkerColor.r, Config.MarkerColor.g, Config.MarkerColor.b, 100, false, true, 2, false, false, false, false)
sleep = 0
end end
if(not v.disabled and GetDistanceBetweenCoords(coords, v.InteriorExitPoint.Pos.x, v.InteriorExitPoint.Pos.y, v.InteriorExitPoint.Pos.z, true) < Config.DrawDistance) then if(not v.disabled and #(coords - garage) < Config.DrawDistance) then
DrawMarker(Config.MarkerType, v.InteriorExitPoint.Pos.x, v.InteriorExitPoint.Pos.y, v.InteriorExitPoint.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.MarkerSize.x, Config.MarkerSize.y, Config.MarkerSize.z, Config.MarkerColor.r, Config.MarkerColor.g, Config.MarkerColor.b, 100, false, true, 2, false, false, false, false) DrawMarker(Config.MarkerType, v.InteriorExitPoint.Pos.x, v.InteriorExitPoint.Pos.y, v.InteriorExitPoint.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.MarkerSize.x, Config.MarkerSize.y, Config.MarkerSize.z, Config.MarkerColor.r, Config.MarkerColor.g, Config.MarkerColor.b, 100, false, true, 2, false, false, false, false)
sleep = 0
end end
end end
@@ -316,10 +312,11 @@ Citizen.CreateThread(function()
for i=1, #v.Parkings, 1 do for i=1, #v.Parkings, 1 do
local parking = v.Parkings[i] local parking = vector3(v.Parkings[i].Pos.x, v.Parkings[i].Pos.y, v.Parkings[i].Pos.z)
if(not v.disabled and GetDistanceBetweenCoords(coords, parking.Pos.x, parking.Pos.y, parking.Pos.z, true) < Config.DrawDistance) then if(not v.disabled and #(coords - parking) < Config.DrawDistance) then
DrawMarker(Config.MarkerType, parking.Pos.x, parking.Pos.y, parking.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.ParkingMarkerSize.x, Config.ParkingMarkerSize.y, Config.ParkingMarkerSize.z, Config.ParkingMarkerColor.r, Config.ParkingMarkerColor.g, Config.ParkingMarkerColor.b, 100, false, true, 2, false, false, false, false) DrawMarker(Config.MarkerType, parking.Pos.x, parking.Pos.y, parking.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.ParkingMarkerSize.x, Config.ParkingMarkerSize.y, Config.ParkingMarkerSize.z, Config.ParkingMarkerColor.r, Config.ParkingMarkerColor.g, Config.ParkingMarkerColor.b, 100, false, true, 2, false, false, false, false)
sleep = 0
end end
end end
@@ -327,68 +324,70 @@ Citizen.CreateThread(function()
end end
end end
if sleep == 0 then nearMarker = true else nearMarker = false end
Citizen.Wait(sleep)
end end
end) end)
-- Enter / Exit marker events -- Enter / Exit marker events
Citizen.CreateThread(function() Citizen.CreateThread(function()
while true do while true do
Citizen.Wait(1) if nearMarker then
local playerPed = PlayerPedId()
local coords = GetEntityCoords(playerPed)
local isInMarker = false
local currentGarage = nil
local currentPart = nil
local currentParking = nil
for k,v in pairs(Config.Garages) do
if v.IsClosed then
local playerPed = PlayerPedId() if (not v.disabled and GetDistanceBetweenCoords(coords, v.ExteriorEntryPoint.Pos.x, v.ExteriorEntryPoint.Pos.y, v.ExteriorEntryPoint.Pos.z, true) < Config.MarkerSize.x) then
local coords = GetEntityCoords(playerPed) isInMarker = true
local isInMarker = false currentGarage = k
local currentGarage = nil currentPart = 'ExteriorEntryPoint'
local currentPart = nil end
local currentParking = nil
for k,v in pairs(Config.Garages) do
if v.IsClosed then
if (not v.disabled and GetDistanceBetweenCoords(coords, v.ExteriorEntryPoint.Pos.x, v.ExteriorEntryPoint.Pos.y, v.ExteriorEntryPoint.Pos.z, true) < Config.MarkerSize.x) then if (not v.disabled and GetDistanceBetweenCoords(coords, v.InteriorExitPoint.Pos.x, v.InteriorExitPoint.Pos.y, v.InteriorExitPoint.Pos.z, true) < Config.MarkerSize.x) then
isInMarker = true isInMarker = true
currentGarage = k currentGarage = k
currentPart = 'ExteriorEntryPoint' currentPart = 'InteriorExitPoint'
end end
for i=1, #v.Parkings, 1 do
local parking = v.Parkings[i]
if (not v.disabled and GetDistanceBetweenCoords(coords, v.InteriorExitPoint.Pos.x, v.InteriorExitPoint.Pos.y, v.InteriorExitPoint.Pos.z, true) < Config.MarkerSize.x) then if (not v.disabled and GetDistanceBetweenCoords(coords, parking.Pos.x, parking.Pos.y, parking.Pos.z, true) < Config.ParkingMarkerSize.x) then
isInMarker = true isInMarker = true
currentGarage = k currentGarage = k
currentPart = 'InteriorExitPoint' currentPart = 'Parking'
end currentParking = i
end
for i=1, #v.Parkings, 1 do
local parking = v.Parkings[i]
if (not v.disabled and GetDistanceBetweenCoords(coords, parking.Pos.x, parking.Pos.y, parking.Pos.z, true) < Config.ParkingMarkerSize.x) then
isInMarker = true
currentGarage = k
currentPart = 'Parking'
currentParking = i
end end
end end
end
end
if isInMarker and not HasAlreadyEnteredMarker or (isInMarker and (LastGarage ~= currentGarage or LastPart ~= currentPart or LastParking ~= currentParking) ) then
if LastGarage ~= currentGarage or LastPart ~= currentPart or LastParking ~= currentParking then
TriggerEvent('esx_property:hasExitedMarker', LastGarage, LastPart, LastParking)
end end
HasAlreadyEnteredMarker = true if isInMarker and not HasAlreadyEnteredMarker or (isInMarker and (LastGarage ~= currentGarage or LastPart ~= currentPart or LastParking ~= currentParking) ) then
LastGarage = currentGarage
LastPart = currentPart if LastGarage ~= currentGarage or LastPart ~= currentPart or LastParking ~= currentParking then
LastParking = currentParking TriggerEvent('esx_property:hasExitedMarker', LastGarage, LastPart, LastParking)
end
TriggerEvent('esx_garage:hasEnteredMarker', currentGarage, currentPart, currentParking)
end
if not isInMarker and HasAlreadyEnteredMarker then HasAlreadyEnteredMarker = true
HasAlreadyEnteredMarker = false LastGarage = currentGarage
LastPart = currentPart
LastParking = currentParking
TriggerEvent('esx_garage:hasEnteredMarker', currentGarage, currentPart, currentParking)
end
TriggerEvent('esx_property:hasExitedMarker', LastGarage, LastPart, LastParking) if not isInMarker and HasAlreadyEnteredMarker then
end HasAlreadyEnteredMarker = false
TriggerEvent('esx_property:hasExitedMarker', LastGarage, LastPart, LastParking)
end
Citizen.Wait(1)
else Citizen.Wait(500) end
end end
end) end)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Garage' description 'ESX Garage'
version '1.0.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
-4
View File
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_garage:setParking') RegisterServerEvent('esx_garage:setParking')
AddEventHandler('esx_garage:setParking', function(garage, zone, vehicleProps) AddEventHandler('esx_garage:setParking', function(garage, zone, vehicleProps)
local _source = source local _source = source
-8
View File
@@ -1,14 +1,6 @@
local holdingUp = false local holdingUp = false
local store = "" local store = ""
local blipRobbery = nil local blipRobbery = nil
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function drawTxt(x,y, width, height, scale, text, r,g,b,a, outline) function drawTxt(x,y, width, height, scale, text, r,g,b,a, outline)
SetTextFont(0) SetTextFont(0)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Holdup' description 'ESX Holdup'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
client_scripts { client_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
-3
View File
@@ -1,8 +1,5 @@
local rob = false local rob = false
local robbers = {} local robbers = {}
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_holdup:tooFar') RegisterServerEvent('esx_holdup:tooFar')
AddEventHandler('esx_holdup:tooFar', function(currentStore) AddEventHandler('esx_holdup:tooFar', function(currentStore)
@@ -1,12 +1,4 @@
local menuIsShowed, hasAlreadyEnteredMarker, isInMarker = false, false, false local menuIsShowed, hasAlreadyEnteredMarker, isInMarker = false, false, false
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function ShowJobListingMenu() function ShowJobListingMenu()
ESX.TriggerServerCallback('esx_joblisting:getJobsList', function(jobs) ESX.TriggerServerCallback('esx_joblisting:getJobsList', function(jobs)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Job Listing' description 'ESX Job Listing'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
@@ -1,8 +1,5 @@
ESX = nil
local availableJobs = {} local availableJobs = {}
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
MySQL.ready(function() MySQL.ready(function()
MySQL.Async.fetchAll('SELECT name, label FROM jobs WHERE whitelisted = @whitelisted', { MySQL.Async.fetchAll('SELECT name, label FROM jobs WHERE whitelisted = @whitelisted', {
['@whitelisted'] = false ['@whitelisted'] = false
+16 -31
View File
@@ -10,7 +10,6 @@ local Keys = {
["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118 ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
} }
local PlayerData = {}
local menuIsShowed = false local menuIsShowed = false
local hintIsShowed = false local hintIsShowed = false
local hasAlreadyEnteredMarker = false local hasAlreadyEnteredMarker = false
@@ -29,25 +28,9 @@ local vehicleInCaseofDrop = nil
local vehicleMaxHealth = nil local vehicleMaxHealth = nil
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(10)
end
PlayerData = ESX.GetPlayerData()
refreshBlips()
end)
RegisterNetEvent('esx:playerLoaded') RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer) AddEventHandler('esx:playerLoaded', function(xPlayer)
PlayerData = xPlayer ESX.PlayerData = xPlayer
refreshBlips() refreshBlips()
end) end)
@@ -103,7 +86,7 @@ AddEventHandler('esx_jobs:action', function(job, zone, zoneKey)
local vehicle = nil local vehicle = nil
for k,v in pairs(Config.Jobs) do for k,v in pairs(Config.Jobs) do
if PlayerData.job.name == k then if ESX.PlayerData.job.name == k then
for l,w in pairs(v.Zones) do for l,w in pairs(v.Zones) do
if w.Type == "vehspawnpt" and w.Spawner == zone.Spawner then if w.Type == "vehspawnpt" and w.Spawner == zone.Spawner then
spawnPoint = w spawnPoint = w
@@ -129,7 +112,7 @@ AddEventHandler('esx_jobs:action', function(job, zone, zoneKey)
local looping = true local looping = true
for k,v in pairs(Config.Jobs) do for k,v in pairs(Config.Jobs) do
if PlayerData.job.name == k then if ESX.PlayerData.job.name == k then
for l,w in pairs(v.Zones) do for l,w in pairs(v.Zones) do
if w.Type == "vehdelete" and w.Spawner == zone.Spawner then if w.Type == "vehdelete" and w.Spawner == zone.Spawner then
local playerPed = PlayerPedId() local playerPed = PlayerPedId()
@@ -223,7 +206,7 @@ end)
RegisterNetEvent('esx:setJob') RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob', function(job) AddEventHandler('esx:setJob', function(job)
PlayerData.job = job ESX.PlayerData.job = job
onDuty = false onDuty = false
myPlate = {} -- loosing vehicle caution in case player changes job. myPlate = {} -- loosing vehicle caution in case player changes job.
spawner = 0 spawner = 0
@@ -244,10 +227,10 @@ function refreshBlips()
local zones = {} local zones = {}
local blipInfo = {} local blipInfo = {}
if PlayerData.job ~= nil then if ESX.PlayerData.job ~= nil then
for jobKey,jobValues in pairs(Config.Jobs) do for jobKey,jobValues in pairs(Config.Jobs) do
if jobKey == PlayerData.job.name then if jobKey == ESX.PlayerData.job.name then
for zoneKey,zoneValues in pairs(jobValues.Zones) do for zoneKey,zoneValues in pairs(jobValues.Zones) do
if zoneValues.Blip then if zoneValues.Blip then
@@ -334,16 +317,16 @@ Citizen.CreateThread(function()
Citizen.Wait(1) Citizen.Wait(1)
local zones = {} local zones = {}
if PlayerData.job ~= nil then if ESX.PlayerData.job ~= nil then
for k,v in pairs(Config.Jobs) do for k,v in pairs(Config.Jobs) do
if PlayerData.job.name == k then if ESX.PlayerData.job.name == k then
zones = v.Zones zones = v.Zones
end end
end end
local coords = GetEntityCoords(PlayerPedId()) local coords = GetEntityCoords(PlayerPedId())
for k,v in pairs(zones) do for k,v in pairs(zones) do
if onDuty or v.Type == "cloakroom" or PlayerData.job.name == "reporter" then if onDuty or v.Type == "cloakroom" or ESX.PlayerData.job.name == "reporter" then
if (v.Zone) then if (v.Zone) then
TriggerEvent("izone:getZoneCenter", v.Zone, function(center) TriggerEvent("izone:getZoneCenter", v.Zone, function(center)
if (not(center == nil)) then if (not(center == nil)) then
@@ -419,12 +402,12 @@ Citizen.CreateThread(function()
Citizen.Wait(1) Citizen.Wait(1)
if PlayerData.job ~= nil and PlayerData.job.name ~= 'unemployed' then if ESX.PlayerData.job ~= nil and ESX.PlayerData.job.name ~= 'unemployed' then
local zones = nil local zones = nil
local job = nil local job = nil
for k,v in pairs(Config.Jobs) do for k,v in pairs(Config.Jobs) do
if PlayerData.job.name == k then if ESX.PlayerData.job.name == k then
job = v job = v
zones = v.Zones zones = v.Zones
end end
@@ -468,7 +451,7 @@ Citizen.CreateThread(function()
end end
if IsControlJustReleased(0, Keys['E']) and not menuIsShowed and isInMarker then if IsControlJustReleased(0, Keys['E']) and not menuIsShowed and isInMarker then
if onDuty or zone.Type == "cloakroom" or PlayerData.job.name == "reporter" then if onDuty or zone.Type == "cloakroom" or ESX.PlayerData.job.name == "reporter" then
TriggerEvent('esx_jobs:action', job, zone, currentZone) TriggerEvent('esx_jobs:action', job, zone, currentZone)
end end
end end
@@ -476,10 +459,10 @@ Citizen.CreateThread(function()
-- hide or show top left zone hints -- hide or show top left zone hints
if isInMarker and not menuIsShowed then if isInMarker and not menuIsShowed then
hintIsShowed = true hintIsShowed = true
if (onDuty or zone.Type == "cloakroom" or PlayerData.job.name == "reporter") and zone.Type ~= "vehdelete" then if (onDuty or zone.Type == "cloakroom" or ESX.PlayerData.job.name == "reporter") and zone.Type ~= "vehdelete" then
hintToDisplay = zone.Hint hintToDisplay = zone.Hint
hintIsShowed = true hintIsShowed = true
elseif zone.Type == "vehdelete" and (onDuty or PlayerData.job.name == "reporter") then elseif zone.Type == "vehdelete" and (onDuty or ESX.PlayerData.job.name == "reporter") then
local playerPed = PlayerPedId() local playerPed = PlayerPedId()
if IsPedInAnyVehicle(playerPed, false) then if IsPedInAnyVehicle(playerPed, false) then
@@ -540,3 +523,5 @@ Citizen.CreateThread(function()
RequestIpl("id2_14_during_door") RequestIpl("id2_14_during_door")
RequestIpl("id2_14_during1") RequestIpl("id2_14_during1")
end) end)
if ESX.PlayerLoaded then refreshBlips() end
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Jobs' description 'ESX Jobs'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
-4
View File
@@ -1,9 +1,5 @@
local playersWorking = {} local playersWorking = {}
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.CreateThread(function() Citizen.CreateThread(function()
while true do while true do
Citizen.Wait(1000) Citizen.Wait(1000)
+2 -1
View File
@@ -4,10 +4,11 @@ game 'gta5'
description 'ESX License' description 'ESX License'
version '1.0.1' version 'legacy'
server_scripts { server_scripts {
'@async/async.lua', '@async/async.lua',
'@es_extended/imports.lua',
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
'server/main.lua' 'server/main.lua'
} }
-4
View File
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
function AddLicense(target, type, cb) function AddLicense(target, type, cb)
local xPlayer = ESX.GetPlayerFromId(target) local xPlayer = ESX.GetPlayerFromId(target)
+5 -18
View File
@@ -1,26 +1,13 @@
ESX = nil
local Vehicles = {} local Vehicles = {}
local PlayerData = {}
local lsMenuIsShowed = false local lsMenuIsShowed = false
local isInLSMarker = false local isInLSMarker = false
local myCar = {} local myCar = {}
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(10)
end
PlayerData = ESX.GetPlayerData()
end)
RegisterNetEvent('esx:playerLoaded') RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer) AddEventHandler('esx:playerLoaded', function(xPlayer)
PlayerData = xPlayer ESX.PlayerData = xPlayer
ESX.PlayerLoaded = true
ESX.TriggerServerCallback('esx_lscustom:getVehiclesPrices', function(vehicles) ESX.TriggerServerCallback('esx_lscustom:getVehiclesPrices', function(vehicles)
Vehicles = vehicles Vehicles = vehicles
@@ -29,7 +16,7 @@ end)
RegisterNetEvent('esx:setJob') RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob', function(job) AddEventHandler('esx:setJob', function(job)
PlayerData.job = job ESX.PlayerData.job = job
end) end)
RegisterNetEvent('esx_lscustom:installMod') RegisterNetEvent('esx_lscustom:installMod')
@@ -398,7 +385,7 @@ Citizen.CreateThread(function()
local coords = GetEntityCoords(PlayerPedId()) local coords = GetEntityCoords(PlayerPedId())
local currentZone, zone, lastZone local currentZone, zone, lastZone
if (PlayerData.job and PlayerData.job.name == 'mechanic') or not Config.IsMechanicJobOnly then if (ESX.PlayerData.job and ESX.PlayerData.job.name == 'mechanic') or not Config.IsMechanicJobOnly then
for k,v in pairs(Config.Zones) do for k,v in pairs(Config.Zones) do
if GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < v.Size.x and not lsMenuIsShowed then if GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < v.Size.x and not lsMenuIsShowed then
isInLSMarker = true isInLSMarker = true
@@ -411,7 +398,7 @@ Citizen.CreateThread(function()
end end
if IsControlJustReleased(0, 38) and not lsMenuIsShowed and isInLSMarker then if IsControlJustReleased(0, 38) and not lsMenuIsShowed and isInLSMarker then
if (PlayerData.job and PlayerData.job.name == 'mechanic') or not Config.IsMechanicJobOnly then if (ESX.PlayerData.job and ESX.PlayerData.job.name == 'mechanic') or not Config.IsMechanicJobOnly then
lsMenuIsShowed = true lsMenuIsShowed = true
local vehicle = GetVehiclePedIsIn(playerPed, false) local vehicle = GetVehiclePedIsIn(playerPed, false)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX LS Customs' description 'ESX LS Customs'
version '2.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
@@ -1,8 +1,5 @@
ESX = nil
local Vehicles local Vehicles
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
RegisterServerEvent('esx_lscustom:buyMod') RegisterServerEvent('esx_lscustom:buyMod')
AddEventHandler('esx_lscustom:buyMod', function(price) AddEventHandler('esx_lscustom:buyMod', function(price)
local _source = source local _source = source
+1 -14
View File
@@ -3,20 +3,6 @@ local CurrentAction, CurrentActionMsg, CurrentActionData = nil, '', {}
local CurrentlyTowedVehicle, Blips, NPCOnJob, NPCTargetTowable, NPCTargetTowableZone = nil, {}, false, nil, nil local CurrentlyTowedVehicle, Blips, NPCOnJob, NPCTargetTowable, NPCTargetTowableZone = nil, {}, false, nil, nil
local NPCHasSpawnedTowable, NPCLastCancel, NPCHasBeenNextToTowable, NPCTargetDeleterZone = false, GetGameTimer() - 5 * 60000, false, false local NPCHasSpawnedTowable, NPCLastCancel, NPCHasBeenNextToTowable, NPCTargetDeleterZone = false, GetGameTimer() - 5 * 60000, false, false
local isDead, isBusy = false, false local isDead, isBusy = false, false
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(10)
end
ESX.PlayerData = ESX.GetPlayerData()
end)
function SelectRandomTowable() function SelectRandomTowable()
local index = GetRandomIntInRange(1, #Config.Towables) local index = GetRandomIntInRange(1, #Config.Towables)
@@ -696,6 +682,7 @@ end)
RegisterNetEvent('esx:playerLoaded') RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer) AddEventHandler('esx:playerLoaded', function(xPlayer)
ESX.PlayerData = xPlayer ESX.PlayerData = xPlayer
ESX.PlayerLoaded = true
end) end)
RegisterNetEvent('esx:setJob') RegisterNetEvent('esx:setJob')
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Mechanic Job' description 'ESX Mechanic Job'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
client_scripts { client_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
+1 -9
View File
@@ -1,12 +1,4 @@
ESX = nil local PlayersHarvesting, PlayersHarvesting2, PlayersHarvesting3, PlayersCrafting, PlayersCrafting2, PlayersCrafting3 = {}, {}, {}, {}, {}, {}
PlayersHarvesting = {}
PlayersHarvesting2 = {}
PlayersHarvesting3 = {}
PlayersCrafting = {}
PlayersCrafting2 = {}
PlayersCrafting3 = {}
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
if Config.MaxInService ~= -1 then if Config.MaxInService ~= -1 then
TriggerEvent('esx_service:activateService', 'mechanic', Config.MaxInService) TriggerEvent('esx_service:activateService', 'mechanic', Config.MaxInService)
+3 -11
View File
@@ -1,19 +1,11 @@
ESX = nil
local IsAlreadyDrunk = false local IsAlreadyDrunk = false
local DrunkLevel = -1 local DrunkLevel = -1
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
function Drunk(level, start) function Drunk(level, start)
Citizen.CreateThread(function() Citizen.CreateThread(function()
local playerPed = GetPlayerPed(-1) local playerPed = PlayerPedId()
if start then if start then
DoScreenFadeOut(800) DoScreenFadeOut(800)
@@ -68,7 +60,7 @@ function Reality()
Citizen.CreateThread(function() Citizen.CreateThread(function()
local playerPed = GetPlayerPed(-1) local playerPed = PlayerPedId()
DoScreenFadeOut(800) DoScreenFadeOut(800)
Wait(1000) Wait(1000)
@@ -156,7 +148,7 @@ end)
RegisterNetEvent('esx_optionalneeds:onDrink') RegisterNetEvent('esx_optionalneeds:onDrink')
AddEventHandler('esx_optionalneeds:onDrink', function() AddEventHandler('esx_optionalneeds:onDrink', function()
local playerPed = GetPlayerPed(-1) local playerPed = PlayerPedId()
TaskStartScenarioInPlace(playerPed, "WORLD_HUMAN_DRINKING", 0, 1) TaskStartScenarioInPlace(playerPed, "WORLD_HUMAN_DRINKING", 0, 1)
Citizen.Wait(1000) Citizen.Wait(1000)
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Optional Needs' description 'ESX Optional Needs'
version '1.0.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
@@ -1,9 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj)
ESX = obj
end)
ESX.RegisterUsableItem('beer', function(source) ESX.RegisterUsableItem('beer', function(source)
local xPlayer = ESX.GetPlayerFromId(source) local xPlayer = ESX.GetPlayerFromId(source)
+1 -10
View File
@@ -3,16 +3,6 @@ local CurrentAction, CurrentActionMsg
GUI.PhoneIsShowed = false GUI.PhoneIsShowed = false
GUI.MessagesIsShowed = false GUI.MessagesIsShowed = false
GUI.AddContactIsShowed = false GUI.AddContactIsShowed = false
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
ESX.UI.Menu.RegisterType('phone', OpenPhone, ClosePhone)
end)
function OpenPhone() function OpenPhone()
local playerPed = PlayerPedId() local playerPed = PlayerPedId()
@@ -60,6 +50,7 @@ AddEventHandler('esx_phone:loaded', function(phoneNumber, contacts)
reloadPhone = true, reloadPhone = true,
phoneData = PhoneData phoneData = PhoneData
}) })
ESX.UI.Menu.RegisterType('phone', OpenPhone, ClosePhone)
end) end)
RegisterNetEvent('esx_phone:addContact') RegisterNetEvent('esx_phone:addContact')
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Phone' description 'ESX Phone'
version '1.1.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
+12 -13
View File
@@ -1,13 +1,13 @@
ESX = nil
local DisptachRequestId, PhoneNumbers = 0, {} local DisptachRequestId, PhoneNumbers = 0, {}
TriggerEvent('esx:getSharedObject', function(obj) AddEventHandler('onResourceStart', function(resource)
ESX = obj if resource == GetCurrentResourceName() then
local xPlayers = ESX.GetExtendedPlayers()
local xPlayers = ESX.GetExtendedPlayers() for i=1, #xPlayers, 1 do
LoadPlayer(xPlayers[i])
for i=1, #xPlayers, 1 do end
LoadPlayer(xPlayers[i])
end end
end) end)
@@ -17,7 +17,7 @@ function LoadPlayer(player)
for num,v in pairs(PhoneNumbers) do for num,v in pairs(PhoneNumbers) do
if tonumber(num) == num then -- if phonenumber is a player phone number if tonumber(num) == num then -- if phonenumber is a player phone number
for src,_ in pairs(v.sources) do for src,_ in pairs(v.sources) do
TriggerClientEvent('esx_phone:setPhoneNumberSource', source, num, tonumber(src)) TriggerClientEvent('esx_phone:setPhoneNumberSource', xPlayer.source, num, tonumber(src))
end end
end end
end end
@@ -35,8 +35,7 @@ function LoadPlayer(player)
['@phone_number'] = phoneNumber ['@phone_number'] = phoneNumber
}) })
end end
TriggerClientEvent('esx_phone:setPhoneNumberSource', -1, phoneNumber, xPlayer.source)
TriggerClientEvent('esx_phone:setPhoneNumberSource', -1, phoneNumber, source)
PhoneNumbers[phoneNumber] = { PhoneNumbers[phoneNumber] = {
type = 'player', type = 'player',
@@ -44,14 +43,14 @@ function LoadPlayer(player)
sharePos = false, sharePos = false,
hideNumber = false, hideNumber = false,
hidePosIfAnon = false, hidePosIfAnon = false,
sources = {[source] = true} sources = {[xPlayer.source] = true}
} }
xPlayer.set('phoneNumber', phoneNumber) xPlayer.set('phoneNumber', phoneNumber)
local contacts = {} local contacts = {}
if PhoneNumbers[xPlayer.job.name] then if PhoneNumbers[xPlayer.job.name] then
TriggerEvent('esx_phone:addSource', xPlayer.job.name, source) TriggerEvent('esx_phone:addSource', xPlayer.job.name, xPlayer.source)
end end
MySQL.Async.fetchAll('SELECT * FROM user_contacts WHERE identifier = @identifier ORDER BY name ASC', { MySQL.Async.fetchAll('SELECT * FROM user_contacts WHERE identifier = @identifier ORDER BY name ASC', {
@@ -65,7 +64,7 @@ function LoadPlayer(player)
end end
xPlayer.set('contacts', contacts) xPlayer.set('contacts', contacts)
TriggerClientEvent('esx_phone:loaded', source, phoneNumber, contacts) TriggerClientEvent('esx_phone:loaded', xPlayer.source, phoneNumber, contacts)
end) end)
end) end)
end end
+9 -16
View File
@@ -2,20 +2,11 @@ local CurrentActionData, handcuffTimer, dragStatus, blipsCops, currentTask = {},
local HasAlreadyEnteredMarker, isDead, isHandcuffed, hasAlreadyJoined, playerInService = false, false, false, false, false local HasAlreadyEnteredMarker, isDead, isHandcuffed, hasAlreadyJoined, playerInService = false, false, false, false, false
local LastStation, LastPart, LastPartNum, LastEntity, CurrentAction, CurrentActionMsg local LastStation, LastPart, LastPartNum, LastEntity, CurrentAction, CurrentActionMsg
dragStatus.isDragged, isInShopMenu = false, false dragStatus.isDragged, isInShopMenu = false, false
ESX = nil
Citizen.CreateThread(function() if ESX.PlayerLoaded and ESX.PlayerData.job == 'police' then
while ESX == nil do Citizen.Wait(1000)
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) TriggerServerEvent('esx_policejob:forceBlip')
Citizen.Wait(0) end
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(10)
end
ESX.PlayerData = ESX.GetPlayerData()
end)
function cleanPlayer(playerPed) function cleanPlayer(playerPed)
SetPedArmour(playerPed, 0) SetPedArmour(playerPed, 0)
@@ -931,9 +922,10 @@ end
RegisterNetEvent('esx:setJob') RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob', function(job) AddEventHandler('esx:setJob', function(job)
ESX.PlayerData.job = job ESX.PlayerData.job = job
if job.name == 'police' then
Citizen.Wait(5000) Citizen.Wait(1000)
TriggerServerEvent('esx_policejob:forceBlip') TriggerServerEvent('esx_policejob:forceBlip')
end
end) end)
RegisterNetEvent('esx_phone:loaded') RegisterNetEvent('esx_phone:loaded')
@@ -1508,6 +1500,7 @@ AddEventHandler('esx_policejob:updateBlip', function()
-- Is the player a cop? In that case show all the blips for other cops -- Is the player a cop? In that case show all the blips for other cops
if ESX.PlayerData.job and ESX.PlayerData.job.name == 'police' then if ESX.PlayerData.job and ESX.PlayerData.job.name == 'police' then
ESX.TriggerServerCallback('esx_society:getOnlinePlayers', function(players) ESX.TriggerServerCallback('esx_society:getOnlinePlayers', function(players)
print(ESX.DumpTable(players))
for i=1, #players, 1 do for i=1, #players, 1 do
if players[i].job.name == 'police' then if players[i].job.name == 'police' then
local id = GetPlayerFromServerId(players[i].source) local id = GetPlayerFromServerId(players[i].source)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Police Job' description 'ESX Police Job'
version '1.3.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@mysql-async/lib/MySQL.lua', '@mysql-async/lib/MySQL.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
if Config.EnableESXService then if Config.EnableESXService then
if Config.MaxInService ~= -1 then if Config.MaxInService ~= -1 then
TriggerEvent('esx_service:activateService', 'police', Config.MaxInService) TriggerEvent('esx_service:activateService', 'police', Config.MaxInService)
@@ -1,14 +1,6 @@
local OwnedProperties, Blips, CurrentActionData = {}, {}, {} local OwnedProperties, Blips, CurrentActionData = {}, {}, {}
local CurrentProperty, CurrentPropertyOwner, LastProperty, LastPart, CurrentAction, CurrentActionMsg local CurrentProperty, CurrentPropertyOwner, LastProperty, LastPart, CurrentAction, CurrentActionMsg
local firstSpawn, hasChest, hasAlreadyEnteredMarker = true, false, false local firstSpawn, hasChest, hasAlreadyEnteredMarker = true, false, false
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
RegisterNetEvent('esx:playerLoaded') RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer) AddEventHandler('esx:playerLoaded', function(xPlayer)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Property' description 'ESX Property'
version '1.0.4' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@async/async.lua', '@async/async.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
function GetProperty(name) function GetProperty(name)
for i=1, #Config.Properties, 1 do for i=1, #Config.Properties, 1 do
if Config.Properties[i].name == name then if Config.Properties[i].name == name then
@@ -1,25 +1,5 @@
local hasAlreadyEnteredMarker, CurrentActionData = false, {} local hasAlreadyEnteredMarker, CurrentActionData = false, {}
local CurrentAction, CurrentActionMsg, LastZone local CurrentAction, CurrentActionMsg, LastZone
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(100)
end
ESX.PlayerData = ESX.GetPlayerData()
if ESX.PlayerData.job.name == 'realestateagent' then
Config.Zones.OfficeActions.Type = 1
else
Config.Zones.OfficeActions.Type = -1
end
end)
function OpenRealestateAgentMenu() function OpenRealestateAgentMenu()
local elements = { local elements = {
@@ -185,6 +165,18 @@ function OpenCustomersMenu()
end) end)
end end
RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer)
ESX.PlayerData = xPlayer
ESX.PlayerLoaded = true
if ESX.PlayerData.job.name == 'realestateagent' then
Config.Zones.OfficeActions.Type = 1
else
Config.Zones.OfficeActions.Type = -1
end
end)
RegisterNetEvent('esx:setJob') RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob', function(job) AddEventHandler('esx:setJob', function(job)
ESX.PlayerData.job = job ESX.PlayerData.job = job
@@ -309,4 +301,11 @@ AddEventHandler('esx_phone:loaded', function(phoneNumber, contacts)
} }
TriggerEvent('esx_phone:addSpecialContact', specialContact.name, specialContact.number, specialContact.base64Icon) TriggerEvent('esx_phone:addSpecialContact', specialContact.name, specialContact.number, specialContact.base64Icon)
end)
if ESX.PlayerLoaded and ESX.PlayerData.job.name == 'realestateagent' then
Config.Zones.OfficeActions.Type = 1
else
Config.Zones.OfficeActions.Type = -1
end
end) end)
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Real Estate Job' description 'ESX Real Estate Job'
version '1.0.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
TriggerEvent('esx_phone:registerNumber', 'realestateagent', _U('clients'), false, false) TriggerEvent('esx_phone:registerNumber', 'realestateagent', _U('clients'), false, false)
TriggerEvent('esx_society:registerSociety', 'realestateagent', _U('realtors'), 'society_realestateagent', 'society_realestateagent', 'society_realestateagent', {type = 'private'}) TriggerEvent('esx_society:registerSociety', 'realestateagent', _U('realtors'), 'society_realestateagent', 'society_realestateagent', 'society_realestateagent', {type = 'private'})
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX RP Chat' description 'ESX RP Chat'
version '1.3.1' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'@es_extended/locale.lua', '@es_extended/locale.lua',
-4
View File
@@ -1,7 +1,3 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
AddEventHandler('chatMessage', function(playerId, playerName, message) AddEventHandler('chatMessage', function(playerId, playerName, message)
if string.sub(message, 1, string.len('/')) ~= '/' then if string.sub(message, 1, string.len('/')) ~= '/' then
CancelEvent() CancelEvent()
-9
View File
@@ -1,12 +1,3 @@
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
RegisterNetEvent('esx_service:notifyAllInService') RegisterNetEvent('esx_service:notifyAllInService')
AddEventHandler('esx_service:notifyAllInService', function(notification, target) AddEventHandler('esx_service:notifyAllInService', function(notification, target)
target = GetPlayerFromServerId(target) target = GetPlayerFromServerId(target)
+3 -1
View File
@@ -4,7 +4,9 @@ game 'gta5'
description 'ESX Service' description 'ESX Service'
version '1.0.0' version 'legacy'
shared_script '@es_extended/imports.lua'
server_scripts { server_scripts {
'server/main.lua' 'server/main.lua'

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