mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-04 16:23:21 +00:00
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx-legacy
|
esx-legacy
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx-legacy Copyright (C) 2015-2023 Jérémie N'gadi
|
esx-legacy Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
|
|||||||
+3
-3
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
cron
|
cron
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
cron Copyright (C) 2015-2023 Jérémie N'gadi
|
cron Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ fx_version 'adamant'
|
|||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
author 'ESX-Framework'
|
author 'ESX-Framework'
|
||||||
description 'cron'
|
description 'Allows resources to Run tasks at specific intervals.'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
|
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
es_extended
|
es_extended
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
es_extended Copyright (C) 2015-2023 Jérémie N'gadi
|
es_extended Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -507,10 +507,10 @@ function ESX.Game.GetClosestEntity(entities, isPlayerEntities, coords, modelFilt
|
|||||||
|
|
||||||
if modelFilter then
|
if modelFilter then
|
||||||
filteredEntities = {}
|
filteredEntities = {}
|
||||||
|
|
||||||
for _, entity in pairs(entities) do
|
for currentEntityIndex = 1, #entities do
|
||||||
if modelFilter[GetEntityModel(entity)] then
|
if modelFilter[GetEntityModel(entities[currentEntityIndex])] then
|
||||||
filteredEntities[#filteredEntities + 1] = entity
|
filteredEntities[#filteredEntities + 1] = entities[currentEntityIndex]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -576,21 +576,15 @@ function ESX.Game.GetVehicleProperties(vehicle)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local doorsBroken, windowsBroken, tyreBurst = {}, {}, {}
|
local doorsBroken, windowsBroken, tyreBurst = {}, {}, {}
|
||||||
local numWheels = tostring(GetVehicleNumberOfWheels(vehicle))
|
|
||||||
|
|
||||||
local TyresIndex = { -- Wheel index list according to the number of vehicle wheels.
|
|
||||||
["2"] = { 0, 4 }, -- Bike and cycle.
|
|
||||||
["3"] = { 0, 1, 4, 5 }, -- Vehicle with 3 wheels (get for wheels because some 3 wheels vehicles have 2 wheels on front and one rear or the reverse).
|
|
||||||
["4"] = { 0, 1, 4, 5 }, -- Vehicle with 4 wheels.
|
|
||||||
["6"] = { 0, 1, 2, 3, 4, 5 }, -- Vehicle with 6 wheels.
|
|
||||||
}
|
|
||||||
|
|
||||||
if TyresIndex[numWheels] then
|
local wheel_count = GetVehicleNumberOfWheels(vehicle);
|
||||||
for _, idx in pairs(TyresIndex[numWheels]) do
|
|
||||||
tyreBurst[tostring(idx)] = IsVehicleTyreBurst(vehicle, idx, false)
|
for wheel_index = 0, wheel_count - 1 do
|
||||||
end
|
tyreBurst[tostring(wheel_index)] = IsVehicleTyreBurst(vehicle, wheel_index, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
for windowId = 0, 7 do -- 13
|
for windowId = 0, 7 do -- 13
|
||||||
RollUpWindow(vehicle, windowId) --fix when you put the car away with the window down
|
RollUpWindow(vehicle, windowId) --fix when you put the car away with the window down
|
||||||
windowsBroken[tostring(windowId)] = not IsVehicleWindowIntact(vehicle, windowId)
|
windowsBroken[tostring(windowId)] = not IsVehicleWindowIntact(vehicle, windowId)
|
||||||
@@ -1128,8 +1122,8 @@ function ESX.ShowInventory()
|
|||||||
{ unselectable = true, icon = "fas fa-users", title = "Nearby Players" },
|
{ unselectable = true, icon = "fas fa-users", title = "Nearby Players" },
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, playerNearby in ipairs(playersNearby) do
|
for currentNearbyPlayerIndex = 1, #playersNearby do
|
||||||
players[GetPlayerServerId(playerNearby)] = true
|
players[GetPlayerServerId(playersNearby[currentNearbyPlayerIndex])] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
ESX.TriggerServerCallback("esx:getPlayerNames", function(returnedPlayers)
|
ESX.TriggerServerCallback("esx:getPlayerNames", function(returnedPlayers)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ function ESX.SpawnPlayer(skin, coords, cb)
|
|||||||
p:resolve()
|
p:resolve()
|
||||||
end)
|
end)
|
||||||
Citizen.Await(p)
|
Citizen.Await(p)
|
||||||
|
|
||||||
local playerPed = PlayerPedId()
|
local playerPed = PlayerPedId()
|
||||||
FreezeEntityPosition(playerPed, true)
|
FreezeEntityPosition(playerPed, true)
|
||||||
SetEntityCoordsNoOffset(playerPed, coords.x, coords.y, coords.z, false, false, false, true)
|
SetEntityCoordsNoOffset(playerPed, coords.x, coords.y, coords.z, false, false, false, true)
|
||||||
@@ -56,7 +56,7 @@ AddEventHandler("esx:playerLoaded", function(xPlayer, _, skin)
|
|||||||
while not DoesEntityExist(ESX.PlayerData.ped) do
|
while not DoesEntityExist(ESX.PlayerData.ped) do
|
||||||
Wait(20)
|
Wait(20)
|
||||||
end
|
end
|
||||||
|
|
||||||
ESX.PlayerLoaded = true
|
ESX.PlayerLoaded = true
|
||||||
|
|
||||||
local metadata = ESX.PlayerData.metadata
|
local metadata = ESX.PlayerData.metadata
|
||||||
@@ -271,29 +271,13 @@ AddEventHandler("esx:restoreLoadout", function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Credit: https://github.com/LukeWasTakenn, https://github.com/LukeWasTakenn/luke_garages/blob/master/client/client.lua#L331-L352
|
|
||||||
AddStateBagChangeHandler("VehicleProperties", nil, function(bagName, _, value)
|
AddStateBagChangeHandler("VehicleProperties", nil, function(bagName, _, value)
|
||||||
if not value then
|
if not value then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local netId = bagName:gsub("entity:", "")
|
local netId = bagName:gsub("entity:", "")
|
||||||
local timer = GetGameTimer()
|
|
||||||
while not NetworkDoesEntityExistWithNetworkId(tonumber(netId)) do
|
|
||||||
Wait(0)
|
|
||||||
if GetGameTimer() - timer > 10000 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local vehicle = NetToVeh(tonumber(netId))
|
local vehicle = NetToVeh(tonumber(netId))
|
||||||
local timer2 = GetGameTimer()
|
|
||||||
while NetworkGetEntityOwner(vehicle) ~= PlayerId() do
|
|
||||||
Wait(0)
|
|
||||||
if GetGameTimer() - timer2 > 10000 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
ESX.Game.SetVehicleProperties(vehicle, value)
|
ESX.Game.SetVehicleProperties(vehicle, value)
|
||||||
end)
|
end)
|
||||||
@@ -378,6 +362,11 @@ AddEventHandler("esx:setJob", function(Job)
|
|||||||
ESX.SetPlayerData("job", Job)
|
ESX.SetPlayerData("job", Job)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
RegisterNetEvent("esx:setGroup")
|
||||||
|
AddEventHandler("esx:setGroup", function(group)
|
||||||
|
ESX.SetPlayerData("group", group)
|
||||||
|
end)
|
||||||
|
|
||||||
if not Config.OxInventory then
|
if not Config.OxInventory then
|
||||||
RegisterNetEvent("esx:createPickup")
|
RegisterNetEvent("esx:createPickup")
|
||||||
AddEventHandler("esx:createPickup", function(pickupId, label, coords, itemType, name, components, tintIndex)
|
AddEventHandler("esx:createPickup", function(pickupId, label, coords, itemType, name, components, tintIndex)
|
||||||
|
|||||||
@@ -24,6 +24,11 @@ local function GetData(vehicle)
|
|||||||
return displayName, netId
|
return displayName, netId
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function ToggleVehicleStatus(inVehicle, seat)
|
||||||
|
ESX.SetPlayerData("vehicle", inVehicle)
|
||||||
|
ESX.SetPlayerData("seat", seat)
|
||||||
|
end
|
||||||
|
|
||||||
CreateThread(function()
|
CreateThread(function()
|
||||||
while not ESX.PlayerLoaded do Wait(200) end
|
while not ESX.PlayerLoaded do Wait(200) end
|
||||||
while true do
|
while true do
|
||||||
@@ -64,11 +69,13 @@ CreateThread(function()
|
|||||||
isEnteringVehicle = true
|
isEnteringVehicle = true
|
||||||
TriggerEvent("esx:enteringVehicle", vehicle, plate, seat, netId)
|
TriggerEvent("esx:enteringVehicle", vehicle, plate, seat, netId)
|
||||||
TriggerServerEvent("esx:enteringVehicle", plate, seat, netId)
|
TriggerServerEvent("esx:enteringVehicle", plate, seat, netId)
|
||||||
|
ToggleVehicleStatus(vehicle, seat)
|
||||||
elseif not DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and not IsPedInAnyVehicle(playerPed, true) and isEnteringVehicle then
|
elseif not DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and not IsPedInAnyVehicle(playerPed, true) and isEnteringVehicle then
|
||||||
-- vehicle entering aborted
|
-- vehicle entering aborted
|
||||||
TriggerEvent("esx:enteringVehicleAborted")
|
TriggerEvent("esx:enteringVehicleAborted")
|
||||||
TriggerServerEvent("esx:enteringVehicleAborted")
|
TriggerServerEvent("esx:enteringVehicleAborted")
|
||||||
isEnteringVehicle = false
|
isEnteringVehicle = false
|
||||||
|
ToggleVehicleStatus(false, false)
|
||||||
elseif IsPedInAnyVehicle(playerPed, false) then
|
elseif IsPedInAnyVehicle(playerPed, false) then
|
||||||
-- suddenly appeared in a vehicle, possible teleport
|
-- suddenly appeared in a vehicle, possible teleport
|
||||||
isEnteringVehicle = false
|
isEnteringVehicle = false
|
||||||
@@ -79,6 +86,7 @@ CreateThread(function()
|
|||||||
current.displayName, current.netId = GetData(current.vehicle)
|
current.displayName, current.netId = GetData(current.vehicle)
|
||||||
TriggerEvent("esx:enteredVehicle", current.vehicle, current.plate, current.seat, current.displayName, current.netId)
|
TriggerEvent("esx:enteredVehicle", current.vehicle, current.plate, current.seat, current.displayName, current.netId)
|
||||||
TriggerServerEvent("esx:enteredVehicle", current.plate, current.seat, current.displayName, current.netId)
|
TriggerServerEvent("esx:enteredVehicle", current.plate, current.seat, current.displayName, current.netId)
|
||||||
|
ToggleVehicleStatus(current.vehicle, current.seat)
|
||||||
end
|
end
|
||||||
elseif isInVehicle then
|
elseif isInVehicle then
|
||||||
if not IsPedInAnyVehicle(playerPed, false) or IsPlayerDead(PlayerId()) then
|
if not IsPedInAnyVehicle(playerPed, false) or IsPlayerDead(PlayerId()) then
|
||||||
@@ -87,6 +95,7 @@ CreateThread(function()
|
|||||||
TriggerServerEvent("esx:exitedVehicle", current.plate, current.seat, current.displayName, current.netId)
|
TriggerServerEvent("esx:exitedVehicle", current.plate, current.seat, current.displayName, current.netId)
|
||||||
isInVehicle = false
|
isInVehicle = false
|
||||||
current = {}
|
current = {}
|
||||||
|
ToggleVehicleStatus(false,false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
Wait(200)
|
Wait(200)
|
||||||
|
|||||||
@@ -106,3 +106,36 @@ end
|
|||||||
function ESX.Round(value, numDecimalPlaces)
|
function ESX.Round(value, numDecimalPlaces)
|
||||||
return ESX.Math.Round(value, numDecimalPlaces)
|
return ESX.Math.Round(value, numDecimalPlaces)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ESX.ValidateType(value, ...)
|
||||||
|
local types = { ... }
|
||||||
|
if #types == 0 then return true end
|
||||||
|
|
||||||
|
local mapType = {}
|
||||||
|
for i = 1, #types, 1 do
|
||||||
|
local validateType = types[i]
|
||||||
|
assert(type(validateType) == "string", "bad argument types, only expected string") -- should never use anyhing else than string
|
||||||
|
mapType[validateType] = true
|
||||||
|
end
|
||||||
|
|
||||||
|
local valueType = type(value)
|
||||||
|
|
||||||
|
local matches = mapType[valueType] ~= nil
|
||||||
|
|
||||||
|
if not matches then
|
||||||
|
local requireTypes = table.concat(types, " or ")
|
||||||
|
local errorMessage = ("bad value (%s expected, got %s)"):format(requireTypes, valueType)
|
||||||
|
|
||||||
|
return false, errorMessage
|
||||||
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function ESX.AssertType(...)
|
||||||
|
local matches, errorMessage = ESX.ValidateType(...)
|
||||||
|
|
||||||
|
assert(matches, errorMessage)
|
||||||
|
|
||||||
|
return matches
|
||||||
|
end
|
||||||
|
|||||||
@@ -23,3 +23,9 @@ function ESX.Math.Trim(value)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ESX.Math.Random(minRange, maxRange)
|
||||||
|
math.randomseed(GetGameTimer())
|
||||||
|
return math.random(minRange or 1, maxRange or 10)
|
||||||
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
exports("getSharedObject", function()
|
exports("getSharedObject", function()
|
||||||
return ESX
|
return ESX
|
||||||
end)
|
end)
|
||||||
|
|
||||||
AddEventHandler("esx:getSharedObject", function()
|
AddEventHandler("esx:getSharedObject", function()
|
||||||
local Invoke = GetInvokingResource()
|
local Invoke = GetInvokingResource()
|
||||||
print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke))
|
print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke))
|
||||||
end)
|
end)
|
||||||
@@ -38,21 +38,21 @@ Config.AdminGroups = {
|
|||||||
Config.EnablePaycheck = true -- enable paycheck
|
Config.EnablePaycheck = true -- enable paycheck
|
||||||
Config.LogPaycheck = false -- Logs paychecks to a nominated Discord channel via webhook (default is false)
|
Config.LogPaycheck = false -- Logs paychecks to a nominated Discord channel via webhook (default is false)
|
||||||
Config.EnableSocietyPayouts = false -- pay from the society account that the player is employed at? Requirement: esx_society
|
Config.EnableSocietyPayouts = false -- pay from the society account that the player is employed at? Requirement: esx_society
|
||||||
Config.MaxWeight = 24 -- the max inventory weight without backpack
|
Config.MaxWeight = 24 -- the max inventory weight without a backpack
|
||||||
Config.PaycheckInterval = 7 * 60000 -- how often to recieve pay checks in milliseconds
|
Config.PaycheckInterval = 7 * 60000 -- how often to receive paychecks in milliseconds
|
||||||
Config.EnableDebug = false -- Use Debug options?
|
Config.EnableDebug = false -- Use Debug options?
|
||||||
Config.EnableDefaultInventory = true -- Display the default Inventory ( F2 )
|
Config.EnableDefaultInventory = true -- Display the default Inventory ( F2 )
|
||||||
Config.EnableWantedLevel = false -- Use Normal GTA wanted Level?
|
Config.EnableWantedLevel = false -- Use Normal GTA wanted Level?
|
||||||
Config.EnablePVP = true -- Allow Player to player combat
|
Config.EnablePVP = true -- Allow Player to player combat
|
||||||
|
|
||||||
Config.Multichar = GetResourceState("esx_multicharacter") ~= "missing"
|
Config.Multichar = GetResourceState("esx_multicharacter") ~= "missing"
|
||||||
Config.Identity = true -- Select a characters identity data before they have loaded in (this happens by default with multichar)
|
Config.Identity = true -- Select a character identity data before they have loaded in (this happens by default with multichar)
|
||||||
Config.DistanceGive = 4.0 -- Max distance when giving items, weapons etc.
|
Config.DistanceGive = 4.0 -- Max distance when giving items, weapons etc.
|
||||||
|
|
||||||
Config.AdminLogging = false -- Logs the usage of certain commands by those with group.admin ace permissions (default is false)
|
Config.AdminLogging = false -- Logs the usage of certain commands by those with group.admin ace permissions (default is false)
|
||||||
|
|
||||||
Config.DisableHealthRegeneration = false -- Player will no longer regenerate health
|
Config.DisableHealthRegeneration = false -- Player will no longer regenerate health
|
||||||
Config.DisableVehicleRewards = false -- Disables Player Recieving weapons from vehicles
|
Config.DisableVehicleRewards = false -- Disables Player Receiving weapons from vehicles
|
||||||
Config.DisableNPCDrops = false -- stops NPCs from dropping weapons on death
|
Config.DisableNPCDrops = false -- stops NPCs from dropping weapons on death
|
||||||
Config.DisableDispatchServices = false -- Disable Dispatch services
|
Config.DisableDispatchServices = false -- Disable Dispatch services
|
||||||
Config.DisableScenarios = false -- Disable Scenarios
|
Config.DisableScenarios = false -- Disable Scenarios
|
||||||
@@ -85,12 +85,12 @@ Config.RemoveHudComponents = {
|
|||||||
[22] = false, --HUD_WEAPONS
|
[22] = false, --HUD_WEAPONS
|
||||||
}
|
}
|
||||||
|
|
||||||
Config.SpawnVehMaxUpgrades = true -- admin vehicles spawn with max vehcle settings
|
Config.SpawnVehMaxUpgrades = true -- admin vehicles spawn with max vehicle settings
|
||||||
Config.CustomAIPlates = "........" -- Custom plates for AI vehicles
|
Config.CustomAIPlates = "........" -- Custom plates for AI vehicles
|
||||||
-- Pattern string format
|
-- Pattern string format
|
||||||
--1 will lead to a random number from 0-9.
|
--1 will lead to a random number from 0-9.
|
||||||
--A will lead to a random letter from A-Z.
|
--A will lead to a random letter from A-Z.
|
||||||
-- . will lead to a random letter or number, with 50% probability of being either.
|
-- . will lead to a random letter or number, with a 50% probability of being either.
|
||||||
--^1 will lead to a literal 1 being emitted.
|
--^1 will lead to a literal 1 being emitted.
|
||||||
--^A will lead to a literal A being emitted.
|
--^A will lead to a literal A being emitted.
|
||||||
--Any other character will lead to said character being emitted.
|
--Any other character will lead to said character being emitted.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'cerulean'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
description 'ES Extended'
|
description 'The Core resource that provides the functionalities for all other resources.'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
|
|
||||||
@@ -11,6 +11,9 @@ shared_scripts {
|
|||||||
|
|
||||||
'config.lua',
|
'config.lua',
|
||||||
'config.weapons.lua',
|
'config.weapons.lua',
|
||||||
|
|
||||||
|
'common/modules/*.lua',
|
||||||
|
'common/*.lua',
|
||||||
}
|
}
|
||||||
|
|
||||||
server_scripts {
|
server_scripts {
|
||||||
@@ -27,10 +30,9 @@ server_scripts {
|
|||||||
'server/main.lua',
|
'server/main.lua',
|
||||||
'server/commands.lua',
|
'server/commands.lua',
|
||||||
|
|
||||||
'common/modules/*.lua',
|
|
||||||
'common/functions.lua',
|
|
||||||
'server/modules/actions.lua',
|
'server/modules/actions.lua',
|
||||||
'server/modules/npwd.lua'
|
'server/modules/npwd.lua',
|
||||||
|
'server/modules/createJob.lua'
|
||||||
}
|
}
|
||||||
|
|
||||||
client_scripts {
|
client_scripts {
|
||||||
@@ -41,9 +43,6 @@ client_scripts {
|
|||||||
|
|
||||||
'client/main.lua',
|
'client/main.lua',
|
||||||
|
|
||||||
'common/modules/*.lua',
|
|
||||||
'common/functions.lua',
|
|
||||||
|
|
||||||
'common/functions.lua',
|
'common/functions.lua',
|
||||||
'client/modules/actions.lua',
|
'client/modules/actions.lua',
|
||||||
'client/modules/death.lua',
|
'client/modules/death.lua',
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ Core.PlayerFunctionOverrides.OxInventory = {
|
|||||||
return function(newWeight)
|
return function(newWeight)
|
||||||
self.maxWeight = newWeight
|
self.maxWeight = newWeight
|
||||||
self.triggerEvent("esx:setMaxWeight", self.maxWeight)
|
self.triggerEvent("esx:setMaxWeight", self.maxWeight)
|
||||||
return Inventory.Set(self.source, "maxWeight", newWeight)
|
return Inventory.SetMaxWeight(self.source, newWeight)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
local _GetPlayerPed = GetPlayerPed
|
local _GetPlayerPed = GetPlayerPed
|
||||||
local _GetEntityCoords = GetEntityCoords
|
local _GetEntityCoords = GetEntityCoords
|
||||||
|
local _GetEntityHeading = GetEntityHeading
|
||||||
local _ExecuteCommand = ExecuteCommand
|
local _ExecuteCommand = ExecuteCommand
|
||||||
local _SetEntityCoords = SetEntityCoords
|
local _SetEntityCoords = SetEntityCoords
|
||||||
local _SetEntityHeading = SetEntityHeading
|
local _SetEntityHeading = SetEntityHeading
|
||||||
@@ -80,8 +81,9 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
|
|||||||
function self.getCoords(vector)
|
function self.getCoords(vector)
|
||||||
local ped <const> = _GetPlayerPed(self.source)
|
local ped <const> = _GetPlayerPed(self.source)
|
||||||
local coordinates <const> = _GetEntityCoords(ped)
|
local coordinates <const> = _GetEntityCoords(ped)
|
||||||
|
local heading <const> = _GetEntityHeading(ped)
|
||||||
|
|
||||||
return vector and coordinates or { x = coordinates.x, y = coordinates.y, z = coordinates.z }
|
return vector and vector4(coordinates.xyz, heading) or { x = coordinates.x, y = coordinates.y, z = coordinates.z, heading = heading }
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param reason string
|
---@param reason string
|
||||||
@@ -127,9 +129,16 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
|
|||||||
---@param newGroup string
|
---@param newGroup string
|
||||||
---@return void
|
---@return void
|
||||||
function self.setGroup(newGroup)
|
function self.setGroup(newGroup)
|
||||||
|
local lastGroup = self.group
|
||||||
|
|
||||||
_ExecuteCommand(("remove_principal identifier.%s group.%s"):format(self.license, self.group))
|
_ExecuteCommand(("remove_principal identifier.%s group.%s"):format(self.license, self.group))
|
||||||
|
|
||||||
self.group = newGroup
|
self.group = newGroup
|
||||||
|
|
||||||
|
_TriggerEvent("esx:setGroup", self.source, self.group, lastGroup)
|
||||||
|
self.triggerEvent("esx:setGroup", self.group, lastGroup)
|
||||||
Player(self.source).state:set("group", self.group, true)
|
Player(self.source).state:set("group", self.group, true)
|
||||||
|
|
||||||
_ExecuteCommand(("add_principal identifier.%s group.%s"):format(self.license, self.group))
|
_ExecuteCommand(("add_principal identifier.%s group.%s"):format(self.license, self.group))
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -475,7 +484,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
|
|||||||
skin_female = gradeObject.skin_female and json.decode(gradeObject.skin_female) or {},
|
skin_female = gradeObject.skin_female and json.decode(gradeObject.skin_female) or {},
|
||||||
}
|
}
|
||||||
|
|
||||||
TriggerEvent("esx:setJob", self.source, self.job, lastJob)
|
_TriggerEvent("esx:setJob", self.source, self.job, lastJob)
|
||||||
self.triggerEvent("esx:setJob", self.job, lastJob)
|
self.triggerEvent("esx:setJob", self.job, lastJob)
|
||||||
Player(self.source).state:set("job", self.job, true)
|
Player(self.source).state:set("job", self.job, true)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -18,15 +18,6 @@ RegisterNetEvent("esx:onPlayerSpawn", function()
|
|||||||
ESX.Players[source].spawned = true
|
ESX.Players[source].spawned = true
|
||||||
end)
|
end)
|
||||||
|
|
||||||
AddEventHandler("esx:getSharedObject", function()
|
|
||||||
local Invoke = GetInvokingResource()
|
|
||||||
print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke))
|
|
||||||
end)
|
|
||||||
|
|
||||||
exports("getSharedObject", function()
|
|
||||||
return ESX
|
|
||||||
end)
|
|
||||||
|
|
||||||
if Config.OxInventory then
|
if Config.OxInventory then
|
||||||
Config.PlayerFunctionOverride = "OxInventory"
|
Config.PlayerFunctionOverride = "OxInventory"
|
||||||
SetConvarReplicated("inventory:framework", "esx")
|
SetConvarReplicated("inventory:framework", "esx")
|
||||||
|
|||||||
@@ -4,6 +4,24 @@ function ESX.Trace(msg)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Triggers an event for one or more clients.
|
||||||
|
---@param eventName string The name of the event to trigger.
|
||||||
|
---@param playerIds table|number If a number, represents a single player ID. If a table, represents an array of player IDs.
|
||||||
|
---@param ... any Additional arguments to pass to the event handler.
|
||||||
|
function ESX.TriggerClientEvent(eventName, playerIds, ...)
|
||||||
|
if type(playerIds) == "number" then
|
||||||
|
TriggerClientEvent(eventName, playerIds, ...)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local payload = msgpack.pack_args(...)
|
||||||
|
local payloadLength = #payload
|
||||||
|
|
||||||
|
for i = 1, #playerIds do
|
||||||
|
TriggerClientEventInternal(eventName, playerIds[i], payload, payloadLength)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
|
function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
|
||||||
if type(name) == "table" then
|
if type(name) == "table" then
|
||||||
for _, v in ipairs(name) do
|
for _, v in ipairs(name) do
|
||||||
@@ -106,13 +124,13 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
|
|||||||
elseif v.type == "any" then
|
elseif v.type == "any" then
|
||||||
newArgs[v.name] = args[k]
|
newArgs[v.name] = args[k]
|
||||||
elseif v.type == "merge" then
|
elseif v.type == "merge" then
|
||||||
local lenght = 0
|
local length = 0
|
||||||
for i = 1, k - 1 do
|
for i = 1, k - 1 do
|
||||||
lenght = lenght + string.len(args[i]) + 1
|
length = length + string.len(args[i]) + 1
|
||||||
end
|
end
|
||||||
local merge = table.concat(args, " ")
|
local merge = table.concat(args, " ")
|
||||||
|
|
||||||
newArgs[v.name] = string.sub(merge, lenght)
|
newArgs[v.name] = string.sub(merge, length)
|
||||||
elseif v.type == "coordinate" then
|
elseif v.type == "coordinate" then
|
||||||
local coord = tonumber(args[k]:match("(-?%d+%.?%d*)"))
|
local coord = tonumber(args[k]:match("(-?%d+%.?%d*)"))
|
||||||
if not coord then
|
if not coord then
|
||||||
@@ -406,37 +424,6 @@ function ESX.DiscordLogFields(name, title, color, fields)
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Create Job at Runtime
|
|
||||||
--- @param name string
|
|
||||||
--- @param label string
|
|
||||||
--- @param grades table
|
|
||||||
function ESX.CreateJob(name, label, grades)
|
|
||||||
if not name then
|
|
||||||
return print("[^3WARNING^7] missing argument `name(string)` while creating a job")
|
|
||||||
end
|
|
||||||
|
|
||||||
if not label then
|
|
||||||
return print("[^3WARNING^7] missing argument `label(string)` while creating a job")
|
|
||||||
end
|
|
||||||
|
|
||||||
if not grades or not next(grades) then
|
|
||||||
return print("[^3WARNING^7] missing argument `grades(table)` while creating a job!")
|
|
||||||
end
|
|
||||||
|
|
||||||
local parameters = {}
|
|
||||||
local job = { name = name, label = label, grades = {} }
|
|
||||||
|
|
||||||
for _, v in pairs(grades) do
|
|
||||||
job.grades[tostring(v.grade)] = { job_name = name, grade = v.grade, name = v.name, label = v.label, salary = v.salary, skin_male = v.skin_male or "{}", skin_female = v.skin_female or "{}" }
|
|
||||||
parameters[#parameters + 1] = { name, v.grade, v.name, v.label, v.salary, v.skin_male or "{}", v.skin_female or "{}" }
|
|
||||||
end
|
|
||||||
|
|
||||||
MySQL.insert("INSERT IGNORE INTO jobs (name, label) VALUES (?, ?)", { name, label })
|
|
||||||
MySQL.prepare("INSERT INTO job_grades (job_name, grade, name, label, salary, skin_male, skin_female) VALUES (?, ?, ?, ?, ?, ?, ?)", parameters)
|
|
||||||
|
|
||||||
ESX.Jobs[name] = job
|
|
||||||
end
|
|
||||||
|
|
||||||
function ESX.RefreshJobs()
|
function ESX.RefreshJobs()
|
||||||
local Jobs = {}
|
local Jobs = {}
|
||||||
local jobs = MySQL.query.await("SELECT * FROM jobs")
|
local jobs = MySQL.query.await("SELECT * FROM jobs")
|
||||||
@@ -549,15 +536,7 @@ if not Config.OxInventory then
|
|||||||
end
|
end
|
||||||
|
|
||||||
function ESX.DoesJobExist(job, grade)
|
function ESX.DoesJobExist(job, grade)
|
||||||
grade = tostring(grade)
|
return (ESX.Jobs[job] and ESX.Jobs[job].grades[tostring(grade)] ~= nil) or false
|
||||||
|
|
||||||
if job and grade then
|
|
||||||
if ESX.Jobs[job] and ESX.Jobs[job].grades[grade] then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Core.IsPlayerAdmin(playerId)
|
function Core.IsPlayerAdmin(playerId)
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ function loadESXPlayer(identifier, playerId, isNew)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Position
|
-- Position
|
||||||
userData.coords = json.decode(result.position) or Config.DefaultSpawns[math.random(#Config.DefaultSpawns)]
|
userData.coords = json.decode(result.position) or Config.DefaultSpawns[ESX.Math.Random(1,#Config.DefaultSpawns)]
|
||||||
|
|
||||||
-- Skin
|
-- Skin
|
||||||
userData.skin = (result.skin and result.skin ~= "") and json.decode(result.skin) or { sex = userData.sex == "f" and 1 or 0 }
|
userData.skin = (result.skin and result.skin ~= "") and json.decode(result.skin) or { sex = userData.sex == "f" and 1 or 0 }
|
||||||
|
|||||||
@@ -0,0 +1,102 @@
|
|||||||
|
|
||||||
|
local NOTIFY_TYPES = {
|
||||||
|
INFO = "^5[%s]^7-^6[INFO]^7 %s",
|
||||||
|
SUCCESS = "^5[%s]^7-^2[SUCCESS]^7 %s",
|
||||||
|
ERROR = "^5[%s]^7-^1[ERROR]^7 %s"
|
||||||
|
}
|
||||||
|
|
||||||
|
local function doesJobAndGradesExist(name, grades)
|
||||||
|
if not ESX.Jobs[name] then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, grade in ipairs(grades) do
|
||||||
|
if not ESX.DoesJobExist(name, grade.grade) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
local function generateTransactionQueries(name,grades)
|
||||||
|
local queries = {}
|
||||||
|
for _, grade in ipairs(grades) do
|
||||||
|
queries[#queries+1] = {
|
||||||
|
query = 'INSERT INTO job_grades (job_name, grade, name, label, salary, skin_male, skin_female) VALUES (?, ?, ?, ?, ?, ?, ?)',
|
||||||
|
values = {name, grade.grade, grade.name, grade.label, grade.salary, '{}', '{}'}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return queries
|
||||||
|
end
|
||||||
|
|
||||||
|
local function generateNewJobTable(name, label, grades)
|
||||||
|
local job = { name = name, label = label, grades = {} }
|
||||||
|
for _, v in pairs(grades) do
|
||||||
|
job.grades[tostring(v.grade)] = { job_name = name, grade = v.grade, name = v.name, label = v.label, salary = v.salary, skin_male = {}, skin_female = {} }
|
||||||
|
end
|
||||||
|
|
||||||
|
return job
|
||||||
|
end
|
||||||
|
|
||||||
|
local function notify(notifyType,resourceName,message,...)
|
||||||
|
local formattedMessage = string.format(message, ...)
|
||||||
|
|
||||||
|
if not NOTIFY_TYPES[notifyType] then
|
||||||
|
return print(NOTIFY_TYPES.INFO:format(resourceName,formattedMessage))
|
||||||
|
end
|
||||||
|
|
||||||
|
return print(NOTIFY_TYPES[notifyType]:format(resourceName,formattedMessage))
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Create Job at Runtime
|
||||||
|
--- @param name string
|
||||||
|
--- @param label string
|
||||||
|
--- @param grades table
|
||||||
|
function ESX.CreateJob(name, label, grades)
|
||||||
|
local currentResourceName = GetInvokingResource()
|
||||||
|
local success = false
|
||||||
|
|
||||||
|
if not name or name == '' then
|
||||||
|
notify("ERROR",currentResourceName, 'Missing argument `name`')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not label or label == '' then
|
||||||
|
notify("ERROR",currentResourceName, 'Missing argument `label`')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not grades or not next(grades) then
|
||||||
|
notify("ERROR",currentResourceName, 'Missing argument `grades`')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local currentJobExist = doesJobAndGradesExist(name, grades)
|
||||||
|
|
||||||
|
if currentJobExist then
|
||||||
|
notify("ERROR",currentResourceName, 'Job or grades already exists: `%s`', name)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
MySQL.insert('INSERT IGNORE INTO jobs (name, label) VALUES (?, ?)', {name, label}, function(jobId)
|
||||||
|
if jobId == nil or jobId == 0 then
|
||||||
|
notify("ERROR",currentResourceName, 'Failed to insert job: `%s`', name)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local queries = generateTransactionQueries(name, grades)
|
||||||
|
|
||||||
|
MySQL.transaction(queries, function(results)
|
||||||
|
success = results
|
||||||
|
if not results then
|
||||||
|
notify("ERROR",currentResourceName, 'Failed to insert one or more grades for job: `%s`', name)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
ESX.Jobs[name] = generateNewJobTable(name,label,grades)
|
||||||
|
notify("SUCCESS",currentResourceName, 'Job created successfully: `%s`', name)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
return success
|
||||||
|
end
|
||||||
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
|
|||||||
state the exclusion of warranty; and each file should have at least
|
state the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_boat
|
esx_context
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2022-2024 ESX Framework
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_boat Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_context Copyright (C) 2022-2024 ESX Framework
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ A elegant, easy to use Context Menu system to make User Interactions clean and h
|
|||||||
|
|
||||||
esx_context
|
esx_context
|
||||||
|
|
||||||
Copyright (C) ESX-Framework
|
Copyright (C) 2022-2024 ESX Framework
|
||||||
|
|
||||||
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ fx_version 'bodacious'
|
|||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
author 'ESX-Framework & Brayden'
|
author 'ESX-Framework & Brayden'
|
||||||
description 'Offical ESX Legacy Context Menu'
|
description 'A simplistic context menu for ESX.'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
|
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_identity
|
esx_identity
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_identity Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_identity Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
fx_version 'adamant'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
description 'ESX Identity'
|
description 'Allows the player to Pick their characters: Name, Gender, Height and Date-of-birth.'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
Locales["de"] = {
|
||||||
|
["show_active_character"] = "Aktiven Charakter anzeigen",
|
||||||
|
["active_character"] = "Aktiver Charakter: %s",
|
||||||
|
["error_active_character"] = "Beim Abrufen deiner Daten ist ein Fehler aufgetreten",
|
||||||
|
["delete_character"] = "Lösche deinen aktuellen Charakter.",
|
||||||
|
["deleted_character"] = "Charakter gelöscht",
|
||||||
|
["error_delete_character"] = "Es gab ein Problem beim löschen deines Charakters.",
|
||||||
|
["thank_you_for_registering"] = "Registrierung erfolgreich.",
|
||||||
|
["debug_xPlayer_get_first_name"] = "Gibt deinen Vornamen zurück",
|
||||||
|
["debug_xPlayer_get_last_name"] = "Gibt deinen Nachnamen zurück",
|
||||||
|
["debug_xPlayer_get_full_name"] = "Gibt deinen vollständigen Namen zurück",
|
||||||
|
["debug_xPlayer_get_sex"] = "Gibt dein Geschlecht zurück",
|
||||||
|
["debug_xPlayer_get_dob"] = "Gibt dein Geburtsdatum zurück",
|
||||||
|
["debug_xPlayer_get_height"] = "Gibt deine Körpergröße zurück",
|
||||||
|
["error_debug_xPlayer_get_first_name"] = "Es gab ein Problem beim Abrufen deines Vornamens.",
|
||||||
|
["error_debug_xPlayer_get_last_name"] = "Es gab ein Problem beim Abrufen deines Nachnamens.",
|
||||||
|
["error_debug_xPlayer_get_full_name"] = "Es gab ein Problem beim Abrufen deines vollständigen Namens.",
|
||||||
|
["error_debug_xPlayer_get_sex"] = "Es gab ein Problem beim Abrufen deines Geschlechts.",
|
||||||
|
["error_debug_xPlayer_get_dob"] = "Es gab ein Problem beim Abrufen deines Geburtsdatums.",
|
||||||
|
["error_debug_xPlayer_get_height"] = "Es gab ein Problem beim Abrufen deiner Körpergröße.",
|
||||||
|
["return_debug_xPlayer_get_first_name"] = "Vorname: %s",
|
||||||
|
["return_debug_xPlayer_get_last_name"] = "Nachname: %s",
|
||||||
|
["return_debug_xPlayer_get_full_name"] = "Name: %s",
|
||||||
|
["return_debug_xPlayer_get_sex"] = "Geschlecht: %s",
|
||||||
|
["return_debug_xPlayer_get_dob"] = "Geburtsdatum: %s",
|
||||||
|
["return_debug_xPlayer_get_height"] = "Größe: %s cm",
|
||||||
|
["data_incorrect"] = "Ungültige Daten, bitte versuche es erneut",
|
||||||
|
["invalid_format"] = "Ungültiges Datenformat, bitte versuche es erneut.",
|
||||||
|
["no_identifier"] = "Es gab ein Problem beim Laden deines Charakters!\nFehlercode: identifier-missing\n\nDies wird dadurch verursacht, dass deine R* ID fehlt. Bitte versuche es erneut oder melde dieses Problem dem Support.",
|
||||||
|
["missing_identity"] = "Es gab ein Problem beim Laden deines Charakters!\nFehlercode: identifier-missing\n\nDies wird dadurch verursacht, dass deine R* ID fehlt. Bitte versuche es erneut oder melde dieses Problem dem Support.",
|
||||||
|
["deleted_identity"] = "Charakter gelöscht. Bitte verbinde dich erneut, um einen neuen Charakter zu erstellen.",
|
||||||
|
["already_registered"] = "Du hast dich bereits registriert.",
|
||||||
|
["invalid_firstname_format"] = "Ungültiges Format (Vorname): Bitte versuche es erneut.",
|
||||||
|
["invalid_lastname_format"] = "Ungültiges Format (Nachname): Bitte versuche es erneut.",
|
||||||
|
["invalid_dob_format"] = "Ungültiges Format (Geburtstag): Bitte versuche es erneut.",
|
||||||
|
["invalid_sex_format"] = "Ungültiges Format (Geschlecht): Bitte versuche es erneut.",
|
||||||
|
["invalid_height_format"] = "Ungültiges Format (Körpergröße): Bitte versuche es erneut.",
|
||||||
|
}
|
||||||
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
|
|||||||
state the exclusion of warranty; and each file should have at least
|
state the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_menu_default
|
esx_loadingscreen
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2020-2024 ESX Framework
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_menu_default Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_loadingscreen Copyright (C) 2020-2024 ESX Framework
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ A simple but beautiful Loading Screen for your server!
|
|||||||
|
|
||||||
esx_loadingscreen - Loading in style!
|
esx_loadingscreen - Loading in style!
|
||||||
|
|
||||||
Copyright (C) 2023 ESX-Framework
|
Copyright (C) 2020-2024 ESX Framework
|
||||||
|
|
||||||
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
game 'common'
|
game 'common'
|
||||||
|
|
||||||
version '1.10.5'
|
|
||||||
fx_version 'cerulean'
|
fx_version 'cerulean'
|
||||||
author 'ESX-Framework'
|
author 'ESX-Framework'
|
||||||
|
description 'Allows resources to Run tasks at specific intervals.'
|
||||||
|
version '1.10.5'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
|
|
||||||
loadscreen 'index.html'
|
loadscreen 'index.html'
|
||||||
|
|
||||||
shared_script 'config.lua'
|
shared_script 'config.lua'
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_menu_default
|
esx_menu_default
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_menu_default Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_menu_default Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<h1 align='center'>[ESX] Menu Defualt</a></h1><p align='center'><b><a href='https://discord.esx-framework.org/'>Discord</a> - <a href='https://esx-framework.org/'>Website</a> - <a href='https://documentation.esx-framework.org/legacy/installation'>Documentation</a></b></h5>
|
<h1 align='center'>[ESX] Menu Defualt</a></h1><p align='center'><b><a href='https://discord.esx-framework.org/'>Discord</a> - <a href='https://esx-framework.org/'>Website</a> - <a href='https://documentation.esx-framework.org/legacy/installation'>Documentation</a></b></h5>
|
||||||
|
|
||||||
A defualt List type menu for ESX.
|
A default List type menu for ESX.
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
## Legal
|
## Legal
|
||||||
|
|
||||||
esx_menu_defualt - Default Menu!
|
esx_menu_default - Default Menu!
|
||||||
|
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2023 Jérémie N'gadi
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
fx_version 'adamant'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
description 'ESX Menu Default'
|
description 'A basic menu system for ESX Legacy.'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
ESX_MENU.render();
|
ESX_MENU.render();
|
||||||
$("#menu_" + namespace + "_" + name)
|
$(document.getElementById("menu_" + namespace + "_" + name))
|
||||||
.find(".menu-item.selected")[0]
|
.find(".menu-item.selected")[0]
|
||||||
.scrollIntoView();
|
.scrollIntoView();
|
||||||
};
|
};
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (typeof focused != "undefined") {
|
if (typeof focused != "undefined") {
|
||||||
$("#menu_" + focused.namespace + "_" + focused.name).show();
|
$(document.getElementById("menu_" + focused.namespace + "_" + focused.name)).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
$(menuContainer).show();
|
$(menuContainer).show();
|
||||||
@@ -231,7 +231,7 @@
|
|||||||
ESX_MENU.change(focused.namespace, focused.name, elem);
|
ESX_MENU.change(focused.namespace, focused.name, elem);
|
||||||
ESX_MENU.render();
|
ESX_MENU.render();
|
||||||
|
|
||||||
$("#menu_" + focused.namespace + "_" + focused.name)
|
$(document.getElementById("menu_" + focused.namespace + "_" + focused.name))
|
||||||
.find(".menu-item.selected")[0]
|
.find(".menu-item.selected")[0]
|
||||||
.scrollIntoView();
|
.scrollIntoView();
|
||||||
}
|
}
|
||||||
@@ -266,7 +266,7 @@
|
|||||||
ESX_MENU.change(focused.namespace, focused.name, elem);
|
ESX_MENU.change(focused.namespace, focused.name, elem);
|
||||||
ESX_MENU.render();
|
ESX_MENU.render();
|
||||||
|
|
||||||
$("#menu_" + focused.namespace + "_" + focused.name)
|
$(document.getElementById("menu_" + focused.namespace + "_" + focused.name))
|
||||||
.find(".menu-item.selected")[0]
|
.find(".menu-item.selected")[0]
|
||||||
.scrollIntoView();
|
.scrollIntoView();
|
||||||
}
|
}
|
||||||
@@ -302,7 +302,7 @@
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#menu_" + focused.namespace + "_" + focused.name)
|
$(document.getElementById("menu_" + focused.namespace + "_" + focused.name))
|
||||||
.find(".menu-item.selected")[0]
|
.find(".menu-item.selected")[0]
|
||||||
.scrollIntoView();
|
.scrollIntoView();
|
||||||
}
|
}
|
||||||
@@ -341,7 +341,7 @@
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#menu_" + focused.namespace + "_" + focused.name)
|
$(document.getElementById("menu_" + focused.namespace + "_" + focused.name))
|
||||||
.find(".menu-item.selected")[0]
|
.find(".menu-item.selected")[0]
|
||||||
.scrollIntoView();
|
.scrollIntoView();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_menu_dialog
|
esx_menu_dialog
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_menu_dialog Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_menu_dialog Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -1,23 +1,6 @@
|
|||||||
# esx_menu_dialog
|
# esx_menu_dialog
|
||||||
Simple script used for inputs.
|
Simple script used for inputs.
|
||||||
|
|
||||||
## Download & Installation
|
|
||||||
|
|
||||||
### Using [fvm](https://github.com/qlaffont/fvm-installer)
|
|
||||||
```
|
|
||||||
fvm install --save --folder=esx esx-org/esx_menu_dialog
|
|
||||||
```
|
|
||||||
|
|
||||||
### Using Git
|
|
||||||
```
|
|
||||||
cd resources
|
|
||||||
git clone https://github.com/ESX-Org/esx_menu_dialog [esx]/esx_menu_dialog
|
|
||||||
```
|
|
||||||
|
|
||||||
### Manually
|
|
||||||
- Download https://github.com/ESX-Org/esx_menu_dialog/archive/master.zip
|
|
||||||
- Put it in the `[esx]` directory
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
- Add this to your `server.cfg`:
|
- Add this to your `server.cfg`:
|
||||||
|
|
||||||
@@ -29,7 +12,7 @@ start esx_menu_dialog
|
|||||||
### License
|
### License
|
||||||
esx_menu_dialog - input dialog for ESX
|
esx_menu_dialog - input dialog for ESX
|
||||||
|
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 ESX-Framework
|
||||||
|
|
||||||
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
fx_version 'adamant'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
description 'ESX Menu Dialog'
|
description 'A basic input dialog for ESX Legacy.'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
|
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_menu_list
|
esx_menu_list
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_menu_list Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_menu_list Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -1,35 +1,11 @@
|
|||||||
# esx_menu_list
|
# esx_menu_list
|
||||||
Advanced menu inputs for ESX
|
Advanced menu inputs for ESX
|
||||||
|
|
||||||
## Download & Installation
|
|
||||||
|
|
||||||
### Using [fvm](https://github.com/qlaffont/fvm-installer)
|
|
||||||
```
|
|
||||||
fvm install --save --folder=esx esx-org/esx_menu_list
|
|
||||||
```
|
|
||||||
|
|
||||||
### Using Git
|
|
||||||
```
|
|
||||||
cd resources
|
|
||||||
git clone https://github.com/ESX-Org/esx_menu_list [esx]/esx_menu_list
|
|
||||||
```
|
|
||||||
|
|
||||||
### Manually
|
|
||||||
- Download https://github.com/ESX-Org/esx_menu_list/archive/master.zip
|
|
||||||
- Put it in the `[esx]` directory
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
- Add this to your `server.cfg`:
|
|
||||||
|
|
||||||
```
|
|
||||||
start esx_menu_list
|
|
||||||
```
|
|
||||||
|
|
||||||
# Legal
|
# Legal
|
||||||
### License
|
### License
|
||||||
esx_menu_list - advanced menu inputs for ESX
|
esx_menu_list - advanced menu inputs for ESX
|
||||||
|
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 ESX-Framework
|
||||||
|
|
||||||
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
fx_version 'adamant'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
description 'ESX Menu List'
|
description 'A basic table-based menu system for ESX Legacy.'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
|
|
||||||
|
|||||||
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
|
|||||||
state the exclusion of warranty; and each file should have at least
|
state the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
esx_multicharacter
|
||||||
Copyright (C) <year> <name of author>
|
Copyright (C) 2022-2024 ESX Framework, Linden, KASH
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
esx_multicharacter Copyright (C) 2022-2024 ESX Framework, Linden, KASH
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
local mp_m_freemode_01 = `mp_m_freemode_01`
|
local mp_m_freemode_01 = `mp_m_freemode_01`
|
||||||
local mp_f_freemode_01 = `mp_f_freemode_01`
|
local mp_f_freemode_01 = `mp_f_freemode_01`
|
||||||
|
|
||||||
local SpawnCoords = Config.Spawn[math.random(#Config.Spawn)]
|
local SpawnCoords = Config.Spawn[ESX.Math.Random(1,#Config.Spawn)]
|
||||||
|
|
||||||
if ESX.GetConfig().Multichar then
|
if ESX.GetConfig().Multichar then
|
||||||
CreateThread(function()
|
CreateThread(function()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ else
|
|||||||
-- Sets the location for the character selection scene
|
-- Sets the location for the character selection scene
|
||||||
-- To set the spawn location for new characters, modify the default value in the users SQL table
|
-- To set the spawn location for new characters, modify the default value in the users SQL table
|
||||||
Config.Spawn = {
|
Config.Spawn = {
|
||||||
{ x = -284.2856, y = 562.4627, z = 172.9182, heading = 19.9895 },
|
{ x = -284.2856, y = 562.4627, z = 172.9182, w = 19.9895 },
|
||||||
}
|
}
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ fx_version 'cerulean'
|
|||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
author 'ESX-Framework - Linden - KASH'
|
author 'ESX-Framework - Linden - KASH'
|
||||||
description 'Official Multicharacter System For ESX Legacy'
|
description 'Allows players to have multiple characters on the same account.'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Locales["de"] = {
|
||||||
|
["male"] = "Männlich",
|
||||||
|
["female"] = "Weiblich",
|
||||||
|
["select_char"] = "Charakter auswählen",
|
||||||
|
["select_char_description"] = "Wähle einen Charakter aus, mit den du spielen willst.",
|
||||||
|
["create_char"] = "Neuer Charakter",
|
||||||
|
["char_play"] = "Spielen",
|
||||||
|
["char_play_description"] = "Weiter in die Stadt.",
|
||||||
|
["char_disabled"] = "Deaktiviert",
|
||||||
|
["char_disabled_description"] = "Dieser Charakter ist deaktiviert.",
|
||||||
|
["char_delete"] = "Löschen",
|
||||||
|
["char_delete_description"] = "Dieser Charakter wird dauerhaft entfernt.",
|
||||||
|
["char_delete_confirmation"] = "Bestätigung zur Entfernung deines Charakters.",
|
||||||
|
["char_delete_confirmation_description"] = "Bist du sicher, dass du den ausgewählten Charakter entfernen willst?",
|
||||||
|
["char_delete_yes_description"] = "Ja, ich bin sicher, dass ich den ausgewählten Charakter lösche",
|
||||||
|
["char_delete_no_description"] = "Nein, zurück zu den Charakteroptionen",
|
||||||
|
["character"] = " Charakter: %s",
|
||||||
|
["return"] = "Zurück",
|
||||||
|
["return_description"] = "Zur Charakterauswahl zurückkehren.",
|
||||||
|
["command_setslots"] = "Anzahl der Charakter-Slots eines Spielers festlegen",
|
||||||
|
["command_remslots"] = "Die Anzahl der Charakter-Slots eines Spielers entfernen",
|
||||||
|
["command_enablechar"] = "Aktiviere einen bestimmten Charakter eines Spielers",
|
||||||
|
["command_disablechar"] = "Deaktiviere einen bestimmten Charakter eines Spielers",
|
||||||
|
["command_charslot"] = "Slotnummer des Charakters",
|
||||||
|
["command_identifier"] = "Spieler R* ID",
|
||||||
|
["command_slots"] = "Anzahl von Charakter-Slots",
|
||||||
|
["slotsadd"] = "Du hast %s Charakter-Slots auf %s gesetzt",
|
||||||
|
["slotsrem"] = "Du hast &s Charakter-Slots auf %s entfernt",
|
||||||
|
["charenabled"] = "Du hast den Charakter #%s von %s aktiviert",
|
||||||
|
["chardisabled"] = "Du hast den Charakter #%s von %s deaktiviert",
|
||||||
|
["charnotfound"] = "Charakter #%s von %s existiert nicht",
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Locales["gr"] = {
|
||||||
|
["male"] = "Άνδρας",
|
||||||
|
["female"] = "Γυναίκα",
|
||||||
|
["select_char"] = "Επιλογή Χαρακτήρα",
|
||||||
|
["select_char_description"] = "Επιλέξτε ένα χαρακτήρα για να παίξετε.",
|
||||||
|
["create_char"] = "Νέος Χαρακτήρας",
|
||||||
|
["char_play"] = "Παίξτε",
|
||||||
|
["char_play_description"] = "Συνέχεια στην πόλη.",
|
||||||
|
["char_disabled"] = "Απενεργοποιημένος",
|
||||||
|
["char_disabled_description"] = "Αυτός ο χαρακτήρας δεν είναι χρησιμοποιήσιμος.",
|
||||||
|
["char_delete"] = "Διαγραφή",
|
||||||
|
["char_delete_description"] = "Διαγράψτε οριστικά αυτόν τον χαρακτήρα.",
|
||||||
|
["char_delete_confirmation"] = "Επιβεβαίωση Διαγραφής",
|
||||||
|
["char_delete_confirmation_description"] = "Είστε σίγουρος ότι θέλετε να διαγράψετε τον επιλεγμένο χαρακτήρα;",
|
||||||
|
["char_delete_yes_description"] = "Ναι, είμαι σίγουρος ότι θέλω να διαγράψω τον επιλεγμένο χαρακτήρα",
|
||||||
|
["char_delete_no_description"] = "Όχι, επιστροφή στις επιλογές χαρακτήρα",
|
||||||
|
["character"] = "Χαρακτήρας: %s",
|
||||||
|
["return"] = "Επιστροφή",
|
||||||
|
["return_description"] = "Επιστροφή στην επιλογή χαρακτήρα.",
|
||||||
|
["command_setslots"] = "Ορίστε τον αριθμό των slot πολλαπλών χαρακτήρων ενός παίκτη",
|
||||||
|
["command_remslots"] = "Αφαιρέστε τον αριθμό των slot πολλαπλών χαρακτήρων ενός παίκτη",
|
||||||
|
["command_enablechar"] = "Ενεργοποιήστε έναν συγκεκριμένο χαρακτήρα ενός παίκτη",
|
||||||
|
["command_disablechar"] = "Απενεργοποιήστε έναν συγκεκριμένο χαρακτήρα ενός παίκτη",
|
||||||
|
["command_charslot"] = "Αριθμός υποδιαίρεσης του χαρακτήρα",
|
||||||
|
["command_identifier"] = "Ταυτότητα παίκτη",
|
||||||
|
["command_slots"] = "Αριθμός slot",
|
||||||
|
["slotsadd"] = "Ορίσατε %s slot σε %s",
|
||||||
|
["slotsrem"] = "Αφαιρέσατε slot από τον %s",
|
||||||
|
["charenabled"] = "Ενεργοποιήσατε τον χαρακτήρα #%s του %s",
|
||||||
|
["chardisabled"] = "Απενεργοποιήσατε τον χαρακτήρα #%s του %s",
|
||||||
|
["charnotfound"] = "Ο χαρακτήρας #%s του %s δεν υπάρχει",
|
||||||
|
}
|
||||||
@@ -21,7 +21,7 @@ A Simplistic system, that allows Players to have multiple Characters, which can
|
|||||||
<tr><td>
|
<tr><td>
|
||||||
Official Multi-Character system for ESX Legacy
|
Official Multi-Character system for ESX Legacy
|
||||||
|
|
||||||
Copyright © 2022-2023 Linden, ESX-Framework and KASH
|
Copyright © 2022-2024 Linden, ESX-Framework and KASH
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ end)
|
|||||||
|
|
||||||
local function DeleteCharacter(source, charid)
|
local function DeleteCharacter(source, charid)
|
||||||
local identifier = ("%s%s:%s"):format(PREFIX, charid, GetIdentifier(source))
|
local identifier = ("%s%s:%s"):format(PREFIX, charid, GetIdentifier(source))
|
||||||
local query = "DELETE FROM %s WHERE %s = ?"
|
local query = "DELETE FROM `%s` WHERE %s = ?"
|
||||||
local queries = {}
|
local queries = {}
|
||||||
local count = 0
|
local count = 0
|
||||||
|
|
||||||
|
|||||||
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
|
|||||||
state the exclusion of warranty; and each file should have at least
|
state the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_menu_default
|
esx_notify
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2022-2024 ESX Framework
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_menu_default Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_notify Copyright (C) 2022-2024 ESX Framework
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ local function Notify(notificatonType, length, message)
|
|||||||
end
|
end
|
||||||
|
|
||||||
SendNuiMessage(json.encode({
|
SendNuiMessage(json.encode({
|
||||||
type = notificatonType or "info",
|
type = notificatonType,
|
||||||
length = length or 3000,
|
length = length,
|
||||||
message = message or "ESX-Notify",
|
message = message or "ESX-Notify",
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ lua54 'yes'
|
|||||||
game 'gta5'
|
game 'gta5'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
author 'ESX-Framework'
|
author 'ESX-Framework'
|
||||||
description 'Official NUI Notification system for ESX'
|
description 'A beautiful and simple NUI notification system for ESX'
|
||||||
|
|
||||||
shared_script '@es_extended/imports.lua'
|
shared_script '@es_extended/imports.lua'
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ ESX.ShowNotification("I i ~r~love~s~ donuts", "success", 3000)
|
|||||||
|
|
||||||
esx_notify- Notify!
|
esx_notify- Notify!
|
||||||
|
|
||||||
Copyright (C) 2023 ESX-Framework
|
Copyright (C) 2022-2024 ESX-Framework
|
||||||
|
|
||||||
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ fx_version 'adamant'
|
|||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
author 'ESX-Framework'
|
author 'ESX-Framework'
|
||||||
lua54 'yes'
|
description 'A beautiful and simple NUI progress bar for ESX'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
description 'ESX Progressbar'
|
lua54 'yes'
|
||||||
|
|
||||||
client_scripts { 'Progress.lua' }
|
client_scripts { 'Progress.lua' }
|
||||||
shared_script '@es_extended/imports.lua'
|
shared_script '@es_extended/imports.lua'
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_skin
|
esx_skin
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_skin Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_skin Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
fx_version 'adamant'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
description 'ESX Skin'
|
description 'Allows players to customise their character\'s appearance'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Locales["de"] = {
|
||||||
|
["skin_menu"] = "Skin Menü",
|
||||||
|
["use_rotate_view"] = "Drücke ~INPUT_FRONTEND_LS~ oder ~INPUT_CHARACTER_WHEEL~ um deine Ansicht zu ändern.",
|
||||||
|
["skin"] = "Aussehen ändern",
|
||||||
|
["saveskin"] = "Aussehen abspeichern",
|
||||||
|
}
|
||||||
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
|
|||||||
state the exclusion of warranty; and each file should have at least
|
state the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
esx_menu_default
|
esx_textui
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 ESX Framework
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
esx_menu_default Copyright (C) 2015-2023 Jérémie N'gadi
|
esx_textui Copyright (C) 2022-2024 ESX Framework
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ fx_version 'adamant'
|
|||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
author 'ESX-Framework'
|
author 'ESX-Framework'
|
||||||
|
description 'A beautiful and simple Persistent Notification system for ESX.'
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
description 'ESX TextUI'
|
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
|
|
||||||
client_scripts { 'TextUI.lua' }
|
client_scripts { 'TextUI.lua' }
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ ESX.TextUI("i ~r~love~s~ donuts", "error")
|
|||||||
|
|
||||||
## Legal
|
## Legal
|
||||||
|
|
||||||
esx_textui - Persistant Notifications!
|
esx_textui - Persistent Notifications
|
||||||
|
|
||||||
Copyright (C) 2023 ESX-Framework
|
Copyright (C) 2022-2024 ESX Framework
|
||||||
|
|
||||||
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
This program Is free software: you can redistribute it And/Or modify it under the terms Of the GNU General Public License As published by the Free Software Foundation, either version 3 Of the License, Or (at your option) any later version.
|
||||||
|
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
skinchanger
|
skinchanger
|
||||||
Copyright (C) 2015-2023 Jérémie N'gadi
|
Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
skinchanger Copyright (C) 2015-2023 Jérémie N'gadi
|
skinchanger Copyright (C) 2015-2024 Jérémie N'gadi
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|||||||
may consider it more useful to permit linking proprietary applications with
|
may consider it more useful to permit linking proprietary applications with
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License. But first, please read
|
Public License instead of this License. But first, please read
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
fx_version 'adamant'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
lua54 'yes'
|
description 'Saves/loads character appearances for ESX Legacy.'
|
||||||
description 'Official ESX-Legacy resource for handling the Player`s Skin'
|
|
||||||
version '1.10.5'
|
version '1.10.5'
|
||||||
|
lua54 'yes'
|
||||||
|
|
||||||
client_scripts {
|
client_scripts {
|
||||||
'@es_extended/locale.lua',
|
'@es_extended/locale.lua',
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
Locales["de"] = {
|
||||||
|
["sex"] = "Geschlecht",
|
||||||
|
["mom"] = "Mutters Gesicht",
|
||||||
|
["dad"] = "Vaters Gesicht",
|
||||||
|
["resemblance"] = "Ähnlichkeit",
|
||||||
|
["skin_tone"] = "Hautton",
|
||||||
|
["nose_1"] = "Nasenbreite",
|
||||||
|
["nose_2"] = "Höhe der Nasenspitze",
|
||||||
|
["nose_3"] = "Länge der Nasenspitze",
|
||||||
|
["nose_4"] = "Nasenbeinhöhe",
|
||||||
|
["nose_5"] = "Nasenspitzenabsenkung",
|
||||||
|
["nose_6"] = "Nasenbeinverdrehung",
|
||||||
|
["cheeks_1"] = "Wangenknochenhöhe",
|
||||||
|
["cheeks_2"] = "Wangenknochenbreite",
|
||||||
|
["cheeks_3"] = "Wangenbreite",
|
||||||
|
["lip_fullness"] = "Lippendicke",
|
||||||
|
["jaw_bone_width"] = "Kieferknochenbreite",
|
||||||
|
["jaw_bone_length"] = "Kieferknochenlänge",
|
||||||
|
["chin_height"] = "Kinnhöhe",
|
||||||
|
["chin_length"] = "Kinnlänge",
|
||||||
|
["chin_width"] = "Kinnbreite",
|
||||||
|
["chin_hole"] = "Kinnlochgröße",
|
||||||
|
["neck_thickness"] = "Halsdicke",
|
||||||
|
["wrinkles"] = "Falten",
|
||||||
|
["wrinkle_thickness"] = "Faltenstärke",
|
||||||
|
["beard_type"] = "Barttyp",
|
||||||
|
["beard_size"] = "Bartgröße",
|
||||||
|
["beard_color_1"] = "Bartfarbe 1",
|
||||||
|
["beard_color_2"] = "Bartfarbe 2",
|
||||||
|
["hair_1"] = "Haare 1",
|
||||||
|
["hair_2"] = "Haare 2",
|
||||||
|
["hair_color_1"] = "Haarfarbe 1",
|
||||||
|
["hair_color_2"] = "Haarfarbe 2",
|
||||||
|
["eye_color"] = "Augenfarbe",
|
||||||
|
["eye_squint"] = "Augenblinzeln",
|
||||||
|
["eyebrow_type"] = "Augenbrauentyp",
|
||||||
|
["eyebrow_size"] = "Augenbrauengröße",
|
||||||
|
["eyebrow_color_1"] = "Augenbrauenfarbe 1",
|
||||||
|
["eyebrow_color_2"] = "Augenbrauenfarbe 2",
|
||||||
|
["eyebrow_depth"] = "Augenbrauentiefe",
|
||||||
|
["eyebrow_height"] = "Augenbrauenhöhe",
|
||||||
|
["makeup_type"] = "Makeup-Typ",
|
||||||
|
["makeup_thickness"] = "Makeupstärke",
|
||||||
|
["makeup_color_1"] = "Schminkfarbe 1",
|
||||||
|
["makeup_color_2"] = "Schminkfarbe 2",
|
||||||
|
["lipstick_type"] = "Lippenstifttyp",
|
||||||
|
["lipstick_thickness"] = "Lippenstiftdicke",
|
||||||
|
["lipstick_color_1"] = "Lippenstiftfarbe 1",
|
||||||
|
["lipstick_color_2"] = "Lippenstiftfarbe 2",
|
||||||
|
["ear_accessories"] = "Ohrenzubehör",
|
||||||
|
["ear_accessories_color"] = "Ohrenzubehör Farbe",
|
||||||
|
["tshirt_1"] = "T-Shirt 1",
|
||||||
|
["tshirt_2"] = "T-Shirt 2",
|
||||||
|
["torso_1"] = "Oberkörper 1",
|
||||||
|
["torso_2"] = "Oberkörper 2",
|
||||||
|
["decals_1"] = "Abziehbilder 1",
|
||||||
|
["decals_2"] = "Abziehbilder 2",
|
||||||
|
["arms"] = "Arme 1",
|
||||||
|
["arms_2"] = "Arme 2",
|
||||||
|
["pants_1"] = "Hose 1",
|
||||||
|
["pants_2"] = "Hose 2",
|
||||||
|
["schuhe_1"] = "Schuhe 1",
|
||||||
|
["Schuhe_2"] = "Schuhe 2",
|
||||||
|
["mask_1"] = "Maske 1",
|
||||||
|
["mask_2"] = "Maske 2",
|
||||||
|
["bproof_1"] = "Kugelsichere Weste 1",
|
||||||
|
["bproof_2"] = "Kugelsichere Weste 2",
|
||||||
|
["chain_1"] = "Kette 1",
|
||||||
|
["chain_2"] = "Kette 2",
|
||||||
|
["helmet_1"] = "Helm 1",
|
||||||
|
["helmet_2"] = "Helm 2",
|
||||||
|
["watches_1"] = "Uhren 1",
|
||||||
|
["watches_2"] = "Uhren 2",
|
||||||
|
["bracelets_1"] = "Armbänder 1",
|
||||||
|
["bracelets_2"] = "Armbänder 2",
|
||||||
|
["glasses_1"] = "Brille 1",
|
||||||
|
["glasses_2"] = "Brille 2",
|
||||||
|
["bag"] = "Tasche",
|
||||||
|
["bag_color"] = "Taschenfarbe",
|
||||||
|
["blemishes"] = "Schönheitsfehler",
|
||||||
|
["blemishes_size"] = "Fleckenstärke",
|
||||||
|
["ageing"] = "Alterung",
|
||||||
|
["ageing_1"] = "Alterungsstärke",
|
||||||
|
["blush"] = "Erröten",
|
||||||
|
["blush_1"] = "Errötungsstärke",
|
||||||
|
["blush_color"] = "Errötungsfarbe",
|
||||||
|
["complexion"] = "Teint",
|
||||||
|
["complexion_1"] = "Teintstärke",
|
||||||
|
["sun"] = "Sonne",
|
||||||
|
["sun_1"] = "Sonnenstärke",
|
||||||
|
["sommersprossen"] = "Sommersprossen",
|
||||||
|
["sommersprossen_1"] = "Sommersprossenstärke",
|
||||||
|
["chest_hair"] = "Brusthaar",
|
||||||
|
["chest_hair_1"] = "Brusthaarstärke",
|
||||||
|
["chest_color"] = "Brusthaarfarbe",
|
||||||
|
["bodyb"] = "Körpermakel",
|
||||||
|
["bodyb_size"] = "Körpermakelstärke",
|
||||||
|
["bodyb_extra"] = "Körperfleckeneffekt",
|
||||||
|
["bodyb_extra_thickness"] = "Körperfleckeneffektstärke",
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user