mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 09:18:53 +00:00
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:
@@ -1,13 +1,5 @@
|
||||
ESX = nil
|
||||
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')
|
||||
AddEventHandler('esx_identity:alreadyRegistered', function()
|
||||
while not loadingScreenFinished do
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Identity'
|
||||
|
||||
version '1.4.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,20 +1,7 @@
|
||||
ESX = nil
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
local playerIdentity = {}
|
||||
local alreadyRegistered = {}
|
||||
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
|
||||
AddEventHandler('playerConnecting', function(playerName, setKickReason, deferrals)
|
||||
deferrals.defer()
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
ESX = nil
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while ESX == nil do
|
||||
Citizen.Wait(5)
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
end
|
||||
|
||||
local ESX = exports['es_extended']:getSharedObject()
|
||||
local GUI, MenuType = {}, 'default'
|
||||
GUI.Time = 0
|
||||
|
||||
@@ -29,23 +23,24 @@ Citizen.CreateThread(function()
|
||||
|
||||
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)
|
||||
|
||||
if menu.submit ~= nil then
|
||||
menu.submit(data, menu)
|
||||
end
|
||||
cb('OK')
|
||||
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)
|
||||
|
||||
if menu.cancel ~= nil then
|
||||
menu.cancel(data, menu)
|
||||
end
|
||||
cb('OK')
|
||||
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)
|
||||
|
||||
for i=1, #data.elements, 1 do
|
||||
@@ -61,6 +56,7 @@ Citizen.CreateThread(function()
|
||||
if menu.change ~= nil then
|
||||
menu.change(data, menu)
|
||||
end
|
||||
cb('OK')
|
||||
end)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
|
||||
@@ -4,10 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Menu Default'
|
||||
|
||||
version '1.0.4'
|
||||
version 'legacy'
|
||||
|
||||
client_scripts {
|
||||
'@es_extended/client/wrapper.lua',
|
||||
'client/main.lua'
|
||||
}
|
||||
|
||||
|
||||
@@ -127,28 +127,28 @@
|
||||
};
|
||||
|
||||
ESX_MENU.submit = function(namespace, name, data) {
|
||||
SendMessage(ESX_MENU.ResourceName, 'menu_submit', {
|
||||
$.post('http://' + ESX_MENU.ResourceName + '/menu_submit', JSON.stringify({
|
||||
_namespace: namespace,
|
||||
_name: name,
|
||||
current: data,
|
||||
elements: ESX_MENU.opened[namespace][name].elements
|
||||
});
|
||||
}));
|
||||
};
|
||||
|
||||
ESX_MENU.cancel = function(namespace, name) {
|
||||
SendMessage(ESX_MENU.ResourceName, 'menu_cancel', {
|
||||
$.post('http://' + ESX_MENU.ResourceName + '/menu_cancel', JSON.stringify({
|
||||
_namespace: namespace,
|
||||
_name: name
|
||||
});
|
||||
}));
|
||||
};
|
||||
|
||||
ESX_MENU.change = function(namespace, name, data) {
|
||||
SendMessage(ESX_MENU.ResourceName, 'menu_change', {
|
||||
$.post('http://' + ESX_MENU.ResourceName + '/menu_change', JSON.stringify({
|
||||
_namespace: namespace,
|
||||
_name: name,
|
||||
current: data,
|
||||
elements: ESX_MENU.opened[namespace][name].elements
|
||||
});
|
||||
}));
|
||||
};
|
||||
|
||||
ESX_MENU.getFocused = function() {
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
<div id="menus"></div>
|
||||
|
||||
<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/app.js" type="text/javascript"></script>
|
||||
</body>
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
Citizen.CreateThread(function()
|
||||
ESX = nil
|
||||
local ESX = exports['es_extended']:getSharedObject()
|
||||
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)
|
||||
for i=1, #Timeouts, 1 do
|
||||
ESX.ClearTimeout(Timeouts[i])
|
||||
|
||||
@@ -4,7 +4,7 @@ game 'gta5'
|
||||
|
||||
description 'ESX Menu Dialog'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
client_scripts {
|
||||
'@es_extended/client/wrapper.lua',
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
ESX = nil
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
|
||||
while ESX == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
local ESX = exports['es_extended']:getSharedObject()
|
||||
local MenuType = 'list'
|
||||
local OpenedMenus = {}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ game 'gta5'
|
||||
|
||||
description 'ESX Menu List'
|
||||
|
||||
version '1.0.2'
|
||||
version 'legacy'
|
||||
|
||||
client_scripts {
|
||||
'@es_extended/client/wrapper.lua',
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
ESX = nil
|
||||
local lastSkin, playerLoaded, cam, isCameraActive
|
||||
local lastSkin, cam, isCameraActive
|
||||
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)
|
||||
local playerPed = PlayerPedId()
|
||||
|
||||
@@ -249,34 +241,15 @@ function OpenSaveableMenu(submitCb, cancelCb, restrict)
|
||||
end, cancelCb, restrict)
|
||||
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()
|
||||
firstSpawn = true
|
||||
skinLoaded = false
|
||||
ESX.PlayerLoaded = false
|
||||
end)
|
||||
|
||||
AddEventHandler('esx_skin:playerRegistered', function()
|
||||
Citizen.CreateThread(function()
|
||||
while not playerLoaded do
|
||||
while not ESX.PlayerLoaded do
|
||||
Citizen.Wait(100)
|
||||
end
|
||||
|
||||
@@ -300,7 +273,7 @@ end)
|
||||
|
||||
RegisterNetEvent('esx:playerLoaded')
|
||||
AddEventHandler('esx:playerLoaded', function(xPlayer)
|
||||
playerLoaded = true
|
||||
ESX.PlayerLoaded = true
|
||||
end)
|
||||
|
||||
AddEventHandler('esx_skin:getLastSkin', function(cb) cb(lastSkin) end)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Skin'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_skin:save')
|
||||
AddEventHandler('esx_skin:save', function(skin)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
@@ -1,15 +1,7 @@
|
||||
ESX = nil
|
||||
local HasAlreadyEnteredMarker, isDead = false, false
|
||||
local LastZone, CurrentAction, CurrentActionMsg
|
||||
local CurrentActionData = {}
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while ESX == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end)
|
||||
|
||||
function OpenAccessoryMenu()
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'set_unset_accessory', {
|
||||
title = _U('set_unset'),
|
||||
@@ -157,47 +149,56 @@ Citizen.CreateThread(function()
|
||||
end
|
||||
end)
|
||||
|
||||
local nearMarker = false
|
||||
-- Display markers
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Citizen.Wait(0)
|
||||
local coords = GetEntityCoords(PlayerPedId())
|
||||
local sleep = 500
|
||||
local coords = GetEntityCoords(ESX.PlayerData.ped)
|
||||
for k,v in pairs(Config.Zones) 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)
|
||||
sleep = 0
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
if sleep == 0 then nearMarker = true else nearMarker = false end
|
||||
Citizen.Wait(sleep)
|
||||
end
|
||||
end)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Citizen.Wait(200)
|
||||
|
||||
local coords = GetEntityCoords(PlayerPedId())
|
||||
local isInMarker = false
|
||||
local currentZone = nil
|
||||
for k,v in pairs(Config.Zones) do
|
||||
for i = 1, #v.Pos, 1 do
|
||||
if GetDistanceBetweenCoords(coords, v.Pos[i], true) < Config.Size.x then
|
||||
isInMarker = true
|
||||
currentZone = k
|
||||
local sleep = 500
|
||||
if nearMarker then
|
||||
sleep = 200
|
||||
local coords = GetEntityCoords(ESX.PlayerData.ped)
|
||||
local isInMarker = false
|
||||
local currentZone = nil
|
||||
for k,v in pairs(Config.Zones) do
|
||||
for i = 1, #v.Pos, 1 do
|
||||
if #(coords - v.Pos[i]) < Config.Size.x then
|
||||
isInMarker = true
|
||||
currentZone = k
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (isInMarker and not HasAlreadyEnteredMarker) or (isInMarker and LastZone ~= currentZone) then
|
||||
HasAlreadyEnteredMarker = true
|
||||
LastZone = currentZone
|
||||
TriggerEvent('esx_accessories:hasEnteredMarker', currentZone)
|
||||
end
|
||||
if (isInMarker and not HasAlreadyEnteredMarker) or (isInMarker and LastZone ~= currentZone) then
|
||||
HasAlreadyEnteredMarker = true
|
||||
LastZone = currentZone
|
||||
TriggerEvent('esx_accessories:hasEnteredMarker', currentZone)
|
||||
end
|
||||
|
||||
if not isInMarker and HasAlreadyEnteredMarker then
|
||||
HasAlreadyEnteredMarker = false
|
||||
TriggerEvent('esx_accessories:hasExitedMarker', LastZone)
|
||||
if not isInMarker and HasAlreadyEnteredMarker then
|
||||
HasAlreadyEnteredMarker = false
|
||||
TriggerEvent('esx_accessories:hasExitedMarker', LastZone)
|
||||
end
|
||||
end
|
||||
Citizen.Wait(sleep)
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Accessories'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_accessories:pay')
|
||||
AddEventHandler('esx_accessories:pay', function()
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
@@ -4,9 +4,10 @@ game 'gta5'
|
||||
|
||||
description 'ESX Addon Account'
|
||||
|
||||
version '1.0.1'
|
||||
version 'legacy'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/imports.lua',
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
'server/classes/addonaccount.lua',
|
||||
'server/main.lua'
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
local AccountsIndex, Accounts, SharedAccounts = {}, {}, {}
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
MySQL.ready(function()
|
||||
local result = MySQL.Sync.fetchAll('SELECT * FROM addon_account')
|
||||
|
||||
@@ -4,9 +4,10 @@ game 'gta5'
|
||||
|
||||
description 'ESX Addon Inventory'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/imports.lua',
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
'server/classes/addoninventory.lua',
|
||||
'server/main.lua'
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
Items = {}
|
||||
local InventoriesIndex, Inventories, SharedInventories = {}, {}, {}
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
MySQL.ready(function()
|
||||
local items = MySQL.Sync.fetchAll('SELECT * FROM items')
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
local firstSpawn, PlayerLoaded = true, false
|
||||
local firstSpawn = true
|
||||
|
||||
isDead, isSearched, medic = false, false, 0
|
||||
ESX = nil
|
||||
|
||||
AddEventHandler("onClientMapStart", function()
|
||||
exports.spawnmanager:spawnPlayer()
|
||||
@@ -9,24 +8,17 @@ AddEventHandler("onClientMapStart", function()
|
||||
exports.spawnmanager:setAutoSpawn(false)
|
||||
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')
|
||||
AddEventHandler('esx:playerLoaded', function(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)
|
||||
|
||||
RegisterNetEvent('esx:setJob')
|
||||
@@ -41,13 +33,13 @@ AddEventHandler('esx:onPlayerSpawn', function()
|
||||
firstSpawn = false
|
||||
|
||||
if Config.AntiCombatLog then
|
||||
while not PlayerLoaded do
|
||||
Citizen.Wait(5000)
|
||||
while not ESX.PlayerLoaded do
|
||||
Citizen.Wait(1000)
|
||||
end
|
||||
|
||||
ESX.TriggerServerCallback('esx_ambulancejob:getDeathStatus', function(shouldDie)
|
||||
if shouldDie then
|
||||
Citizen.Wait(10000)
|
||||
Citizen.Wait(5000)
|
||||
SetEntityHealth(PlayerPedId(), 0)
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Ambulance Job'
|
||||
|
||||
version '1.2.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
ESX = nil
|
||||
local playersHealing, deadPlayers = {}, {}
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
TriggerEvent('esx_phone:registerNumber', 'ambulance', _U('alert_ambulance'), true, true)
|
||||
|
||||
TriggerEvent('esx_society:registerSociety', 'ambulance', 'Ambulance', 'society_ambulance', 'society_ambulance', 'society_ambulance', {type = 'public'})
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
local isDead = 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)
|
||||
|
||||
|
||||
@@ -4,9 +4,10 @@ game 'gta5'
|
||||
|
||||
description 'ESX Animations'
|
||||
|
||||
version '1.0.0'
|
||||
version 'legacy'
|
||||
|
||||
client_scripts {
|
||||
'@es_extended/imports.lua',
|
||||
'config.lua',
|
||||
'client/main.lua'
|
||||
}
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
-- internal variables
|
||||
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')
|
||||
AddEventHandler('esx_atm:closeATM', function()
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Atm'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
ESX = nil
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_atm:deposit')
|
||||
AddEventHandler('esx_atm:deposit', function(amount)
|
||||
local _source = source
|
||||
|
||||
@@ -1,18 +1,4 @@
|
||||
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')
|
||||
AddEventHandler('esx:playerLoaded', function (xPlayer)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Banker job'
|
||||
|
||||
version '1.0.1'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@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_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
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while ESX == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end)
|
||||
|
||||
function OpenShopMenu()
|
||||
hasPaid = false
|
||||
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Barber Shop'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_barbershop:pay')
|
||||
AddEventHandler('esx_barbershop:pay', function()
|
||||
local _source = source
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
ESX = nil
|
||||
local IsDead = 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()
|
||||
TriggerEvent('esx_status:set', 'hunger', 500000)
|
||||
TriggerEvent('esx_status:set', 'thirst', 500000)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Basic Needs'
|
||||
|
||||
version '1.0.1'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
ESX.RegisterUsableItem('bread', function(source)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
xPlayer.removeInventoryItem('bread', 1)
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
ESX = nil
|
||||
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()
|
||||
ESX.TriggerServerCallback('esx_billing:getBills', function(bills)
|
||||
if #bills > 0 then
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Billing'
|
||||
|
||||
version '1.2.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_billing:sendBill')
|
||||
AddEventHandler('esx_billing:sendBill', function(playerId, sharedAccountName, label, amount)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
@@ -1,20 +1,6 @@
|
||||
ESX = nil
|
||||
isInShopMenu = false
|
||||
local isInShopMenu = false
|
||||
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)
|
||||
isInShopMenu = true
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
local HasAlreadyEnteredMarker = false
|
||||
local LastZone = nil
|
||||
|
||||
CurrentAction = nil
|
||||
CurrentActionMsg = ''
|
||||
CurrentActionData = {}
|
||||
local CurrentAction = nil
|
||||
local CurrentActionMsg = ''
|
||||
local CurrentActionData = {}
|
||||
|
||||
-- Key controls
|
||||
Citizen.CreateThread(function()
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Boat'
|
||||
|
||||
version '1.0.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
MySQL.ready(function()
|
||||
ParkBoats()
|
||||
end)
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
ESX = nil
|
||||
local PlayerData = {}
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while ESX == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
RegisterNetEvent('esx:playerLoaded')
|
||||
AddEventHandler('esx:playerLoaded', function(xPlayer, isNew)
|
||||
ESX.PlayerData = xPlayer
|
||||
ESX.PlayerLoaded = true
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx:playerLoaded')
|
||||
AddEventHandler('esx:playerLoaded', function(xPlayer)
|
||||
PlayerData = xPlayer
|
||||
RegisterNetEvent('esx:playerLogout')
|
||||
AddEventHandler('esx:playerLogout', function(xPlayer, isNew)
|
||||
ESX.PlayerLoaded = false
|
||||
ESX.PlayerData = {}
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx:setJob')
|
||||
AddEventHandler('esx:setJob', function(job)
|
||||
PlayerData.job = job
|
||||
ESX.PlayerData.job = job
|
||||
end)
|
||||
|
||||
@@ -4,6 +4,8 @@ game 'gta5'
|
||||
|
||||
description 'ESX Boilerplate'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'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 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()
|
||||
hasPaid = false
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Clothes Shop'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_clotheshop:saveOutfit')
|
||||
AddEventHandler('esx_clotheshop:saveOutfit', function(label, skin)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
@@ -1,89 +1,80 @@
|
||||
local Player = nil
|
||||
local Player = nil
|
||||
local CruisedSpeed, CruisedSpeedKm, VehicleVectorY = 0, 0, 0
|
||||
|
||||
ESX = nil
|
||||
|
||||
Citizen.CreateThread(function ()
|
||||
while ESX == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
Wait(0)
|
||||
end
|
||||
end)
|
||||
|
||||
Citizen.CreateThread(function ()
|
||||
while true do
|
||||
Wait(0)
|
||||
if IsControlJustPressed(1, 246) and IsDriver() then
|
||||
Player = GetPlayerPed(-1)
|
||||
TriggerCruiseControl()
|
||||
end
|
||||
end
|
||||
while true do
|
||||
Wait(0)
|
||||
if IsControlJustPressed(1, 246) and IsDriver() then
|
||||
Player = PlayerPedId()
|
||||
TriggerCruiseControl()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
function TriggerCruiseControl ()
|
||||
if CruisedSpeed == 0 and IsDriving() then
|
||||
if GetVehiculeSpeed() > 0 and GetVehicleCurrentGear(GetVehicle()) > 0 then
|
||||
CruisedSpeed = GetVehiculeSpeed()
|
||||
CruisedSpeedKm = TransformToKm(CruisedSpeed)
|
||||
if CruisedSpeed == 0 and IsDriving() then
|
||||
if GetVehicleSpeed() > 0 and GetVehicleCurrentGear(GetVehicle()) > 0 then
|
||||
CruisedSpeed = GetVehicleSpeed()
|
||||
CruisedSpeedKm = TransformToKm(CruisedSpeed)
|
||||
|
||||
ESX.ShowNotification(_U('activated') .. ': ~b~ ' .. CruisedSpeedKm .. ' km/h')
|
||||
ESX.ShowNotification(_U('activated') .. ': ~b~ ' .. CruisedSpeedKm .. ' km/h')
|
||||
|
||||
Citizen.CreateThread(function ()
|
||||
while CruisedSpeed > 0 and IsInVehicle() == Player do
|
||||
Wait(0)
|
||||
Citizen.CreateThread(function ()
|
||||
while CruisedSpeed > 0 and IsInVehicle() == Player do
|
||||
Wait(0)
|
||||
|
||||
if not IsTurningOrHandBraking() and GetVehiculeSpeed() < (CruisedSpeed - 1.5) then
|
||||
CruisedSpeed = 0
|
||||
ESX.ShowNotification(_U('deactivated'))
|
||||
Wait(2000)
|
||||
break
|
||||
end
|
||||
if not IsTurningOrHandBraking() and GetVehicleSpeed() < (CruisedSpeed - 1.5) then
|
||||
CruisedSpeed = 0
|
||||
ESX.ShowNotification(_U('deactivated'))
|
||||
Wait(2000)
|
||||
break
|
||||
end
|
||||
|
||||
if not IsTurningOrHandBraking() and IsVehicleOnAllWheels(GetVehicle()) and GetVehiculeSpeed() < CruisedSpeed then
|
||||
SetVehicleForwardSpeed(GetVehicle(), CruisedSpeed)
|
||||
end
|
||||
if not IsTurningOrHandBraking() and IsVehicleOnAllWheels(GetVehicle()) and GetVehicleSpeed() < CruisedSpeed then
|
||||
SetVehicleForwardSpeed(GetVehicle(), CruisedSpeed)
|
||||
end
|
||||
|
||||
if IsControlJustPressed(1, 246) then
|
||||
CruisedSpeed = GetVehiculeSpeed()
|
||||
CruisedSpeedKm = TransformToKm(CruisedSpeed)
|
||||
end
|
||||
if IsControlJustPressed(1, 246) then
|
||||
CruisedSpeed = GetVehicleSpeed()
|
||||
CruisedSpeedKm = TransformToKm(CruisedSpeed)
|
||||
end
|
||||
|
||||
if IsControlJustPressed(2, 72) then
|
||||
CruisedSpeed = 0
|
||||
ESX.ShowNotification(_U('deactivated'))
|
||||
Wait(2000)
|
||||
break
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
if IsControlJustPressed(2, 72) then
|
||||
CruisedSpeed = 0
|
||||
ESX.ShowNotification(_U('deactivated'))
|
||||
Wait(2000)
|
||||
break
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
function IsDriving ()
|
||||
return IsPedInAnyVehicle(Player, false)
|
||||
return IsPedInAnyVehicle(Player, false)
|
||||
end
|
||||
|
||||
function GetVehicle ()
|
||||
return GetVehiclePedIsIn(Player, false)
|
||||
return GetVehiclePedIsIn(Player, false)
|
||||
end
|
||||
|
||||
function IsInVehicle ()
|
||||
return GetPedInVehicleSeat(GetVehicle(), -1)
|
||||
return GetPedInVehicleSeat(GetVehicle(), -1)
|
||||
end
|
||||
|
||||
function IsDriver ()
|
||||
return GetPedInVehicleSeat(GetVehiclePedIsIn(GetPlayerPed(-1), false), -1) == GetPlayerPed(-1)
|
||||
return GetPedInVehicleSeat(GetVehiclePedIsIn(PlayerPedId(), false), -1) == PlayerPedId()
|
||||
end
|
||||
|
||||
function GetVehiculeSpeed ()
|
||||
return GetEntitySpeed(GetVehicle())
|
||||
function GetVehicleSpeed ()
|
||||
return GetEntitySpeed(GetVehicle())
|
||||
end
|
||||
|
||||
function TransformToKm (speed)
|
||||
return math.floor(speed * 3.6 + 0.5)
|
||||
return math.floor(speed * 3.6 + 0.5)
|
||||
end
|
||||
|
||||
@@ -4,13 +4,14 @@ game 'gta5'
|
||||
|
||||
description 'CruiseControl System for ESX'
|
||||
|
||||
version '1.0.0'
|
||||
version 'legacy'
|
||||
|
||||
dependencies {
|
||||
'es_extended'
|
||||
}
|
||||
|
||||
client_scripts {
|
||||
'@es_extended/imports.lua',
|
||||
'@es_extended/locale.lua',
|
||||
'locales/fi.lua',
|
||||
'locales/fr.lua',
|
||||
|
||||
@@ -4,9 +4,10 @@ game 'gta5'
|
||||
|
||||
description 'ESX Data Store'
|
||||
|
||||
version '1.0.2'
|
||||
version 'legacy'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/imports.lua',
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
'server/classes/datastore.lua',
|
||||
'server/main.lua'
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
local DataStores, DataStoresIndex, SharedDataStores = {}, {}, {}
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
MySQL.ready(function()
|
||||
local result = MySQL.Sync.fetchAll('SELECT * FROM datastore')
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
ESX = nil
|
||||
local CurrentAction = nil
|
||||
local CurrentActionMsg = nil
|
||||
local CurrentActionData = nil
|
||||
@@ -13,13 +12,6 @@ local CurrentZoneType = nil
|
||||
local IsAboveSpeedLimit = false
|
||||
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)
|
||||
ClearPrints()
|
||||
BeginTextCommandPrint('STRING')
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX DMV School'
|
||||
|
||||
version '1.0.4'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@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)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
|
||||
@@ -1,20 +1,6 @@
|
||||
ESX = nil
|
||||
local menuOpen = 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()
|
||||
while true do
|
||||
Citizen.Wait(0)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Drugs'
|
||||
|
||||
version '2.0.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
ESX = nil
|
||||
local playersProcessingCannabis = {}
|
||||
local outofbound = true
|
||||
local alive = true
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_drugs:sellDrug')
|
||||
AddEventHandler('esx_drugs:sellDrug', function(itemName, amount)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
ESX = 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')
|
||||
|
||||
RegisterNetEvent('instance:onCreate')
|
||||
@@ -232,7 +224,7 @@ AddEventHandler('esx_garage:hasEnteredMarker', function(name, part, parking)
|
||||
|
||||
if part == 'Parking' then
|
||||
|
||||
local playerPed = PlayerPedId()
|
||||
local playerPed = PlayerPedId()
|
||||
local garage = thisGarage
|
||||
local parkingPos = garage.Parkings[parking].Pos
|
||||
|
||||
@@ -254,7 +246,7 @@ AddEventHandler('esx_property:hasExitedMarker', function(name, part, parking)
|
||||
|
||||
if part == 'Parking' then
|
||||
|
||||
local playerPed = PlayerPedId()
|
||||
local playerPed = PlayerPedId()
|
||||
local garage = thisGarage
|
||||
local parkingPos = garage.Parkings[parking].Pos
|
||||
|
||||
@@ -289,25 +281,29 @@ Citizen.CreateThread(function()
|
||||
|
||||
end)
|
||||
|
||||
local nearMarker = false
|
||||
-- Display markers
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
local sleep = 500
|
||||
|
||||
Citizen.Wait(0)
|
||||
|
||||
local playerPed = PlayerPedId()
|
||||
local coords = GetEntityCoords(playerPed)
|
||||
|
||||
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(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)
|
||||
sleep = 0
|
||||
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)
|
||||
sleep = 0
|
||||
end
|
||||
|
||||
end
|
||||
@@ -316,10 +312,11 @@ Citizen.CreateThread(function()
|
||||
|
||||
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)
|
||||
sleep = 0
|
||||
end
|
||||
|
||||
end
|
||||
@@ -327,68 +324,70 @@ Citizen.CreateThread(function()
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if sleep == 0 then nearMarker = true else nearMarker = false end
|
||||
Citizen.Wait(sleep)
|
||||
end
|
||||
end)
|
||||
|
||||
-- Enter / Exit marker events
|
||||
Citizen.CreateThread(function()
|
||||
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()
|
||||
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
|
||||
if (not v.disabled and GetDistanceBetweenCoords(coords, v.ExteriorEntryPoint.Pos.x, v.ExteriorEntryPoint.Pos.y, v.ExteriorEntryPoint.Pos.z, true) < Config.MarkerSize.x) then
|
||||
isInMarker = true
|
||||
currentGarage = k
|
||||
currentPart = 'ExteriorEntryPoint'
|
||||
end
|
||||
|
||||
if (not v.disabled and GetDistanceBetweenCoords(coords, v.ExteriorEntryPoint.Pos.x, v.ExteriorEntryPoint.Pos.y, v.ExteriorEntryPoint.Pos.z, true) < Config.MarkerSize.x) then
|
||||
isInMarker = true
|
||||
currentGarage = k
|
||||
currentPart = 'ExteriorEntryPoint'
|
||||
end
|
||||
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
|
||||
currentGarage = k
|
||||
currentPart = 'InteriorExitPoint'
|
||||
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
|
||||
isInMarker = true
|
||||
currentGarage = k
|
||||
currentPart = 'InteriorExitPoint'
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
HasAlreadyEnteredMarker = true
|
||||
LastGarage = currentGarage
|
||||
LastPart = currentPart
|
||||
LastParking = currentParking
|
||||
|
||||
TriggerEvent('esx_garage:hasEnteredMarker', currentGarage, currentPart, currentParking)
|
||||
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
|
||||
|
||||
if not isInMarker and HasAlreadyEnteredMarker then
|
||||
HasAlreadyEnteredMarker = false
|
||||
HasAlreadyEnteredMarker = true
|
||||
LastGarage = currentGarage
|
||||
LastPart = currentPart
|
||||
LastParking = currentParking
|
||||
|
||||
TriggerEvent('esx_garage:hasEnteredMarker', currentGarage, currentPart, currentParking)
|
||||
end
|
||||
|
||||
TriggerEvent('esx_property:hasExitedMarker', LastGarage, LastPart, LastParking)
|
||||
end
|
||||
if not isInMarker and HasAlreadyEnteredMarker then
|
||||
HasAlreadyEnteredMarker = false
|
||||
|
||||
TriggerEvent('esx_property:hasExitedMarker', LastGarage, LastPart, LastParking)
|
||||
end
|
||||
Citizen.Wait(1)
|
||||
else Citizen.Wait(500) end
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Garage'
|
||||
|
||||
version '1.0.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_garage:setParking')
|
||||
AddEventHandler('esx_garage:setParking', function(garage, zone, vehicleProps)
|
||||
local _source = source
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
local holdingUp = false
|
||||
local store = ""
|
||||
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)
|
||||
SetTextFont(0)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Holdup'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
client_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
local rob = false
|
||||
local robbers = {}
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_holdup:tooFar')
|
||||
AddEventHandler('esx_holdup:tooFar', function(currentStore)
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
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()
|
||||
ESX.TriggerServerCallback('esx_joblisting:getJobsList', function(jobs)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Job Listing'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
ESX = nil
|
||||
local availableJobs = {}
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
MySQL.ready(function()
|
||||
MySQL.Async.fetchAll('SELECT name, label FROM jobs WHERE whitelisted = @whitelisted', {
|
||||
['@whitelisted'] = false
|
||||
|
||||
@@ -10,7 +10,6 @@ local Keys = {
|
||||
["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
|
||||
}
|
||||
|
||||
local PlayerData = {}
|
||||
local menuIsShowed = false
|
||||
local hintIsShowed = false
|
||||
local hasAlreadyEnteredMarker = false
|
||||
@@ -29,25 +28,9 @@ local vehicleInCaseofDrop = 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')
|
||||
AddEventHandler('esx:playerLoaded', function(xPlayer)
|
||||
PlayerData = xPlayer
|
||||
ESX.PlayerData = xPlayer
|
||||
refreshBlips()
|
||||
end)
|
||||
|
||||
@@ -103,7 +86,7 @@ AddEventHandler('esx_jobs:action', function(job, zone, zoneKey)
|
||||
local vehicle = nil
|
||||
|
||||
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
|
||||
if w.Type == "vehspawnpt" and w.Spawner == zone.Spawner then
|
||||
spawnPoint = w
|
||||
@@ -129,7 +112,7 @@ AddEventHandler('esx_jobs:action', function(job, zone, zoneKey)
|
||||
local looping = true
|
||||
|
||||
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
|
||||
if w.Type == "vehdelete" and w.Spawner == zone.Spawner then
|
||||
local playerPed = PlayerPedId()
|
||||
@@ -223,7 +206,7 @@ end)
|
||||
|
||||
RegisterNetEvent('esx:setJob')
|
||||
AddEventHandler('esx:setJob', function(job)
|
||||
PlayerData.job = job
|
||||
ESX.PlayerData.job = job
|
||||
onDuty = false
|
||||
myPlate = {} -- loosing vehicle caution in case player changes job.
|
||||
spawner = 0
|
||||
@@ -244,10 +227,10 @@ function refreshBlips()
|
||||
local zones = {}
|
||||
local blipInfo = {}
|
||||
|
||||
if PlayerData.job ~= nil then
|
||||
if ESX.PlayerData.job ~= nil then
|
||||
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
|
||||
|
||||
if zoneValues.Blip then
|
||||
@@ -334,16 +317,16 @@ Citizen.CreateThread(function()
|
||||
Citizen.Wait(1)
|
||||
local zones = {}
|
||||
|
||||
if PlayerData.job ~= nil then
|
||||
if ESX.PlayerData.job ~= nil then
|
||||
for k,v in pairs(Config.Jobs) do
|
||||
if PlayerData.job.name == k then
|
||||
if ESX.PlayerData.job.name == k then
|
||||
zones = v.Zones
|
||||
end
|
||||
end
|
||||
|
||||
local coords = GetEntityCoords(PlayerPedId())
|
||||
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
|
||||
TriggerEvent("izone:getZoneCenter", v.Zone, function(center)
|
||||
if (not(center == nil)) then
|
||||
@@ -419,12 +402,12 @@ Citizen.CreateThread(function()
|
||||
|
||||
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 job = nil
|
||||
|
||||
for k,v in pairs(Config.Jobs) do
|
||||
if PlayerData.job.name == k then
|
||||
if ESX.PlayerData.job.name == k then
|
||||
job = v
|
||||
zones = v.Zones
|
||||
end
|
||||
@@ -468,7 +451,7 @@ Citizen.CreateThread(function()
|
||||
end
|
||||
|
||||
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)
|
||||
end
|
||||
end
|
||||
@@ -476,10 +459,10 @@ Citizen.CreateThread(function()
|
||||
-- hide or show top left zone hints
|
||||
if isInMarker and not menuIsShowed then
|
||||
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
|
||||
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()
|
||||
|
||||
if IsPedInAnyVehicle(playerPed, false) then
|
||||
@@ -540,3 +523,5 @@ Citizen.CreateThread(function()
|
||||
RequestIpl("id2_14_during_door")
|
||||
RequestIpl("id2_14_during1")
|
||||
end)
|
||||
|
||||
if ESX.PlayerLoaded then refreshBlips() end
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Jobs'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
local playersWorking = {}
|
||||
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Citizen.Wait(1000)
|
||||
|
||||
@@ -4,10 +4,11 @@ game 'gta5'
|
||||
|
||||
description 'ESX License'
|
||||
|
||||
version '1.0.1'
|
||||
version 'legacy'
|
||||
|
||||
server_scripts {
|
||||
'@async/async.lua',
|
||||
'@es_extended/imports.lua',
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
'server/main.lua'
|
||||
}
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
function AddLicense(target, type, cb)
|
||||
local xPlayer = ESX.GetPlayerFromId(target)
|
||||
|
||||
|
||||
@@ -1,26 +1,13 @@
|
||||
ESX = nil
|
||||
local Vehicles = {}
|
||||
local PlayerData = {}
|
||||
local lsMenuIsShowed = false
|
||||
local isInLSMarker = false
|
||||
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')
|
||||
AddEventHandler('esx:playerLoaded', function(xPlayer)
|
||||
PlayerData = xPlayer
|
||||
ESX.PlayerData = xPlayer
|
||||
ESX.PlayerLoaded = true
|
||||
|
||||
ESX.TriggerServerCallback('esx_lscustom:getVehiclesPrices', function(vehicles)
|
||||
Vehicles = vehicles
|
||||
@@ -29,7 +16,7 @@ end)
|
||||
|
||||
RegisterNetEvent('esx:setJob')
|
||||
AddEventHandler('esx:setJob', function(job)
|
||||
PlayerData.job = job
|
||||
ESX.PlayerData.job = job
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_lscustom:installMod')
|
||||
@@ -398,7 +385,7 @@ Citizen.CreateThread(function()
|
||||
local coords = GetEntityCoords(PlayerPedId())
|
||||
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
|
||||
if GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < v.Size.x and not lsMenuIsShowed then
|
||||
isInLSMarker = true
|
||||
@@ -411,7 +398,7 @@ Citizen.CreateThread(function()
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
local vehicle = GetVehiclePedIsIn(playerPed, false)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX LS Customs'
|
||||
|
||||
version '2.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
ESX = nil
|
||||
local Vehicles
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
RegisterServerEvent('esx_lscustom:buyMod')
|
||||
AddEventHandler('esx_lscustom:buyMod', function(price)
|
||||
local _source = source
|
||||
|
||||
@@ -3,20 +3,6 @@ local CurrentAction, CurrentActionMsg, CurrentActionData = nil, '', {}
|
||||
local CurrentlyTowedVehicle, Blips, NPCOnJob, NPCTargetTowable, NPCTargetTowableZone = nil, {}, false, nil, nil
|
||||
local NPCHasSpawnedTowable, NPCLastCancel, NPCHasBeenNextToTowable, NPCTargetDeleterZone = false, GetGameTimer() - 5 * 60000, 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()
|
||||
local index = GetRandomIntInRange(1, #Config.Towables)
|
||||
@@ -696,6 +682,7 @@ end)
|
||||
RegisterNetEvent('esx:playerLoaded')
|
||||
AddEventHandler('esx:playerLoaded', function(xPlayer)
|
||||
ESX.PlayerData = xPlayer
|
||||
ESX.PlayerLoaded = true
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx:setJob')
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Mechanic Job'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
client_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
ESX = nil
|
||||
PlayersHarvesting = {}
|
||||
PlayersHarvesting2 = {}
|
||||
PlayersHarvesting3 = {}
|
||||
PlayersCrafting = {}
|
||||
PlayersCrafting2 = {}
|
||||
PlayersCrafting3 = {}
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
local PlayersHarvesting, PlayersHarvesting2, PlayersHarvesting3, PlayersCrafting, PlayersCrafting2, PlayersCrafting3 = {}, {}, {}, {}, {}, {}
|
||||
|
||||
if Config.MaxInService ~= -1 then
|
||||
TriggerEvent('esx_service:activateService', 'mechanic', Config.MaxInService)
|
||||
|
||||
@@ -1,19 +1,11 @@
|
||||
ESX = nil
|
||||
local IsAlreadyDrunk = false
|
||||
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)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
|
||||
local playerPed = GetPlayerPed(-1)
|
||||
local playerPed = PlayerPedId()
|
||||
|
||||
if start then
|
||||
DoScreenFadeOut(800)
|
||||
@@ -68,7 +60,7 @@ function Reality()
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
|
||||
local playerPed = GetPlayerPed(-1)
|
||||
local playerPed = PlayerPedId()
|
||||
|
||||
DoScreenFadeOut(800)
|
||||
Wait(1000)
|
||||
@@ -156,7 +148,7 @@ end)
|
||||
RegisterNetEvent('esx_optionalneeds:onDrink')
|
||||
AddEventHandler('esx_optionalneeds:onDrink', function()
|
||||
|
||||
local playerPed = GetPlayerPed(-1)
|
||||
local playerPed = PlayerPedId()
|
||||
|
||||
TaskStartScenarioInPlace(playerPed, "WORLD_HUMAN_DRINKING", 0, 1)
|
||||
Citizen.Wait(1000)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Optional Needs'
|
||||
|
||||
version '1.0.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj)
|
||||
ESX = obj
|
||||
end)
|
||||
|
||||
ESX.RegisterUsableItem('beer', function(source)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
@@ -3,16 +3,6 @@ local CurrentAction, CurrentActionMsg
|
||||
GUI.PhoneIsShowed = false
|
||||
GUI.MessagesIsShowed = 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()
|
||||
local playerPed = PlayerPedId()
|
||||
@@ -60,6 +50,7 @@ AddEventHandler('esx_phone:loaded', function(phoneNumber, contacts)
|
||||
reloadPhone = true,
|
||||
phoneData = PhoneData
|
||||
})
|
||||
ESX.UI.Menu.RegisterType('phone', OpenPhone, ClosePhone)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_phone:addContact')
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Phone'
|
||||
|
||||
version '1.1.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
ESX = nil
|
||||
|
||||
local DisptachRequestId, PhoneNumbers = 0, {}
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj)
|
||||
ESX = obj
|
||||
AddEventHandler('onResourceStart', function(resource)
|
||||
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
|
||||
LoadPlayer(xPlayers[i])
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -17,7 +17,7 @@ function LoadPlayer(player)
|
||||
for num,v in pairs(PhoneNumbers) do
|
||||
if tonumber(num) == num then -- if phonenumber is a player phone number
|
||||
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
|
||||
@@ -35,8 +35,7 @@ function LoadPlayer(player)
|
||||
['@phone_number'] = phoneNumber
|
||||
})
|
||||
end
|
||||
|
||||
TriggerClientEvent('esx_phone:setPhoneNumberSource', -1, phoneNumber, source)
|
||||
TriggerClientEvent('esx_phone:setPhoneNumberSource', -1, phoneNumber, xPlayer.source)
|
||||
|
||||
PhoneNumbers[phoneNumber] = {
|
||||
type = 'player',
|
||||
@@ -44,14 +43,14 @@ function LoadPlayer(player)
|
||||
sharePos = false,
|
||||
hideNumber = false,
|
||||
hidePosIfAnon = false,
|
||||
sources = {[source] = true}
|
||||
sources = {[xPlayer.source] = true}
|
||||
}
|
||||
|
||||
xPlayer.set('phoneNumber', phoneNumber)
|
||||
local contacts = {}
|
||||
|
||||
if PhoneNumbers[xPlayer.job.name] then
|
||||
TriggerEvent('esx_phone:addSource', xPlayer.job.name, source)
|
||||
TriggerEvent('esx_phone:addSource', xPlayer.job.name, xPlayer.source)
|
||||
end
|
||||
|
||||
MySQL.Async.fetchAll('SELECT * FROM user_contacts WHERE identifier = @identifier ORDER BY name ASC', {
|
||||
@@ -65,7 +64,7 @@ function LoadPlayer(player)
|
||||
end
|
||||
|
||||
xPlayer.set('contacts', contacts)
|
||||
TriggerClientEvent('esx_phone:loaded', source, phoneNumber, contacts)
|
||||
TriggerClientEvent('esx_phone:loaded', xPlayer.source, phoneNumber, contacts)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -2,20 +2,11 @@ local CurrentActionData, handcuffTimer, dragStatus, blipsCops, currentTask = {},
|
||||
local HasAlreadyEnteredMarker, isDead, isHandcuffed, hasAlreadyJoined, playerInService = false, false, false, false, false
|
||||
local LastStation, LastPart, LastPartNum, LastEntity, CurrentAction, CurrentActionMsg
|
||||
dragStatus.isDragged, isInShopMenu = 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)
|
||||
if ESX.PlayerLoaded and ESX.PlayerData.job == 'police' then
|
||||
Citizen.Wait(1000)
|
||||
TriggerServerEvent('esx_policejob:forceBlip')
|
||||
end
|
||||
|
||||
function cleanPlayer(playerPed)
|
||||
SetPedArmour(playerPed, 0)
|
||||
@@ -931,9 +922,10 @@ end
|
||||
RegisterNetEvent('esx:setJob')
|
||||
AddEventHandler('esx:setJob', function(job)
|
||||
ESX.PlayerData.job = job
|
||||
|
||||
Citizen.Wait(5000)
|
||||
TriggerServerEvent('esx_policejob:forceBlip')
|
||||
if job.name == 'police' then
|
||||
Citizen.Wait(1000)
|
||||
TriggerServerEvent('esx_policejob:forceBlip')
|
||||
end
|
||||
end)
|
||||
|
||||
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
|
||||
if ESX.PlayerData.job and ESX.PlayerData.job.name == 'police' then
|
||||
ESX.TriggerServerCallback('esx_society:getOnlinePlayers', function(players)
|
||||
print(ESX.DumpTable(players))
|
||||
for i=1, #players, 1 do
|
||||
if players[i].job.name == 'police' then
|
||||
local id = GetPlayerFromServerId(players[i].source)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Police Job'
|
||||
|
||||
version '1.3.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@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.MaxInService ~= -1 then
|
||||
TriggerEvent('esx_service:activateService', 'police', Config.MaxInService)
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
local OwnedProperties, Blips, CurrentActionData = {}, {}, {}
|
||||
local CurrentProperty, CurrentPropertyOwner, LastProperty, LastPart, CurrentAction, CurrentActionMsg
|
||||
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')
|
||||
AddEventHandler('esx:playerLoaded', function(xPlayer)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Property'
|
||||
|
||||
version '1.0.4'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@async/async.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
function GetProperty(name)
|
||||
for i=1, #Config.Properties, 1 do
|
||||
if Config.Properties[i].name == name then
|
||||
|
||||
@@ -1,25 +1,5 @@
|
||||
local hasAlreadyEnteredMarker, CurrentActionData = false, {}
|
||||
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()
|
||||
local elements = {
|
||||
@@ -185,6 +165,18 @@ function OpenCustomersMenu()
|
||||
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')
|
||||
AddEventHandler('esx:setJob', function(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)
|
||||
end)
|
||||
|
||||
if ESX.PlayerLoaded and ESX.PlayerData.job.name == 'realestateagent' then
|
||||
Config.Zones.OfficeActions.Type = 1
|
||||
else
|
||||
Config.Zones.OfficeActions.Type = -1
|
||||
end
|
||||
end)
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Real Estate Job'
|
||||
|
||||
version '1.0.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@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_society:registerSociety', 'realestateagent', _U('realtors'), 'society_realestateagent', 'society_realestateagent', 'society_realestateagent', {type = 'private'})
|
||||
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX RP Chat'
|
||||
|
||||
version '1.3.1'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
ESX = nil
|
||||
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
AddEventHandler('chatMessage', function(playerId, playerName, message)
|
||||
if string.sub(message, 1, string.len('/')) ~= '/' then
|
||||
CancelEvent()
|
||||
|
||||
@@ -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')
|
||||
AddEventHandler('esx_service:notifyAllInService', function(notification, target)
|
||||
target = GetPlayerFromServerId(target)
|
||||
|
||||
@@ -4,7 +4,9 @@ game 'gta5'
|
||||
|
||||
description 'ESX Service'
|
||||
|
||||
version '1.0.0'
|
||||
version 'legacy'
|
||||
|
||||
shared_script '@es_extended/imports.lua'
|
||||
|
||||
server_scripts {
|
||||
'server/main.lua'
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user