Merge branch 'main' into locale-convar

This commit is contained in:
Csoki
2022-10-05 16:35:53 +02:00
committed by GitHub
117 changed files with 1860 additions and 727 deletions
+3 -1
View File
@@ -1,5 +1,7 @@
AddEventHandler('esx:getSharedObject', function(cb)
cb(ESX)
local Invoke = GetInvokingResource()
print(('[^3WARNING^7] ^5%s^7 used ^5esx:getSharedObject^7, this method is deprecated and should not be used! Refer to ^5https://docs.esx-framework.org/tutorials/sharedevent^7 for more info!'):format(Invoke))
cb(ESX)
end)
exports('getSharedObject', function()
+9 -8
View File
@@ -87,7 +87,7 @@ function ESX.ShowNotification(message, type, length)
if GetResourceState("esx_notify") ~= "missing" then
exports["esx_notify"]:Notify(type, length, message)
else
print("[ERROR] Missing esx_notify")
print("[^1ERROR^7] ^5ESX Notify^7 is Missing!")
end
end
@@ -96,7 +96,7 @@ function ESX.TextUI(message, type)
if GetResourceState("esx_textui") ~= "missing" then
exports["esx_textui"]:TextUI(message, type)
else
print("[ERROR] Missing ESX TextUI!")
print("[^1ERROR^7] ^5ESX TextUI^7 is Missing!")
return
end
end
@@ -105,7 +105,7 @@ function ESX.HideUI()
if GetResourceState("esx_textui") ~= "missing" then
exports["esx_textui"]:HideUI()
else
print("[ERROR] Missing ESX TextUI!")
print("[^1ERROR^7] ^5ESX TextUI^7 is Missing!")
return
end
end
@@ -174,19 +174,19 @@ if GetResourceState("esx_context") ~= "missing" then
end
else
function ESX.OpenContext()
print("[ERROR] Tried to open context menu, but esx_context is missing!")
print("[^1ERROR^7] Tried to ^5open^7 context menu, but ^5esx_context^7 is missing!")
end
function ESX.PreviewContext()
print("[ERROR] Tried to preview context menu, but esx_context is missing!")
print("[^1ERROR^7] Tried to ^5preview^7 context menu, but ^5esx_context^7 is missing!")
end
function ESX.CloseContext()
print("[ERROR] Tried to close context menu, but esx_context is missing!")
print("[^1ERROR^7] Tried to ^5close^7 context menu, but ^5esx_context^7 is missing!")
end
function ESX.RefreshContext()
print("[ERROR] Tried to close context menu, but esx_context is missing!")
print("[^1ERROR^7] Tried to ^5Refresh^7 context menu, but ^5esx_context^7 is missing!")
end
end
@@ -201,9 +201,10 @@ ESX.RegisterInput = function(command_name, label, input_group, key, on_press, on
end
function ESX.TriggerServerCallback(name, cb, ...)
local Invoke = GetInvokingResource() or "unknown"
Core.ServerCallbacks[Core.CurrentRequestId] = cb
TriggerServerEvent('esx:triggerServerCallback', name, Core.CurrentRequestId, ...)
TriggerServerEvent('esx:triggerServerCallback', name, Core.CurrentRequestId,Invoke, ...)
Core.CurrentRequestId = Core.CurrentRequestId < 65535 and Core.CurrentRequestId + 1 or 0
end
+20 -3
View File
@@ -264,17 +264,17 @@ if not Config.OxInventory then
RegisterNetEvent('esx:addWeapon')
AddEventHandler('esx:addWeapon', function(weapon, ammo)
print("[WARNING] event 'esx:addWeapon' is deprecated. Please use xPlayer.addWeapon Instead!")
print("[^1ERROR^7] event ^5'esx:addWeapon'^7 Has Been Removed. Please use ^5xPlayer.addWeapon^7 Instead!")
end)
RegisterNetEvent('esx:addWeaponComponent')
AddEventHandler('esx:addWeaponComponent', function(weapon, weaponComponent)
print("[WARNING] event 'esx:addWeaponComponent' is deprecated. Please use xPlayer.addWeaponComponent Instead!")
print("[^1ERROR^7] event ^5'esx:addWeaponComponent'^7 Has Been Removed. Please use ^5xPlayer.addWeaponComponent^7 Instead!")
end)
RegisterNetEvent('esx:setWeaponAmmo')
AddEventHandler('esx:setWeaponAmmo', function(weapon, weaponAmmo)
print("[WARNING] event 'esx:setWeaponAmmo' is deprecated. Please use xPlayer.addWeaponComponent Instead!")
print("[^1ERROR^7] event ^5'esx:setWeaponAmmo'^7 Has Been Removed. Please use ^5xPlayer.addWeaponAmmo^7 Instead!")
end)
RegisterNetEvent('esx:setWeaponTint')
@@ -741,3 +741,20 @@ AddEventHandler("esx:freezePlayer", function(input)
SetPlayerInvincible(player, false)
end
end)
local DoNotUse = {
'essentialmode',
'es_admin2',
'basic-gamemode',
'mapmanager',
'fivem-map-skater',
'fivem-map-hipster',
'qb-core',
'default_spawnpoint',
}
for i=1, #DoNotUse do
if GetResourceState(DoNotUse[i]) == 'started' or GetResourceState(DoNotUse[i]) == 'starting' then
print("[^1ERROR^7] YOU ARE USING A RESOURCE THAT WILL BREAK ^1ESX^7, PLEASE REMOVE ^5"..DoNotUse[i].."^7")
end
end
+22
View File
@@ -0,0 +1,22 @@
Config.DiscordLogs = {
Webhooks = {
default = '',
test = '',
Chat = '',
UserActions = '',
Resources = ''
},
Colors = { -- https://www.spycolor.com/
default = 14423100,
blue = 255,
red = 16711680,
green = 65280,
white = 16777215,
black = 0,
orange = 16744192,
yellow = 16776960,
pink = 16761035,
lightgreen = 65309
}
}
+1 -1
View File
@@ -30,7 +30,7 @@ Config.EnablePVP = true -- Allow Player to player combat
Config.Multichar = true -- Enable support for esx_multicharacter
Config.Identity = true -- Select a characters 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.DisableHealthRegen = 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.DisableNPCDrops = false -- stops NPCs from dropping weapons on death
Config.DisableWeaponWheel = false -- Disables default weapon wheel
+16 -31
View File
@@ -961,35 +961,20 @@ Config.Weapons = {
-- Tools
{name = 'WEAPON_FIREEXTINGUISHER', label = _U('weapon_fireextinguisher'), components = {}, ammo = {label = _U('ammo_charge'), hash = `AMMO_FIREEXTINGUISHER`}},
{name = 'WEAPON_DIGISCANNER', label = _U('weapon_digiscanner'), components = {}},
{name = 'GADGET_PARACHUTE', label = _U('gadget_parachute'), components = {}}
{name = 'GADGET_PARACHUTE', label = _U('gadget_parachute'), components = {}},
{name = 'WEAPON_TACTICALRIFLE',label = _U('weapon_tactilerifle'),ammo = {label = _U('ammo_rounds'), hash = `AMMO_RIFLE`},tints = Config.DefaultWeaponTints,
components = {
{name = 'clip_default', label = _U('component_clip_default'), hash = `COMPONENT_TACTICALRIFLE_CLIP_01`},
{name = 'clip_extended', label = _U('component_clip_extended'), hash = `COMPONENT_TACTICALRIFLE_CLIP_02`},
{name = 'flashlight', label = _U('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH_REH`},
{name = 'grip', label = _U('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`},
{name = 'suppressor', label = _U('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}
}
},
{name = 'WEAPON_PRECISIONRIFLE', label = _U('weapon_precisionrifle'), ammo = {label = _U('ammo_rounds'), hash = `AMMO_SNIPER`}, tints = Config.DefaultWeaponTints,
components = {
{name = 'clip_default', label = _U('component_clip_default'), hash = `COMPONENT_PRECISIONRIFLE_CLIP_01`},
}
},
{name = 'WEAPON_METALDETECTOR', label = _U('weapon_metaldetector'), components = {}}
}
local GameBuild = tonumber(GetConvar("sv_enforceGameBuild", 1604))
-- The Criminal Enterprises DLC Weapons
if GameBuild >= 2699 then
local Length = #Config.Weapons
Config.Weapons[Length + 1] = {
name = 'WEAPON_TACTICALRIFLE',
label = _U('weapon_tactilerifle'),
ammo = {label = _U('ammo_rounds'), hash = `AMMO_RIFLE`},
tints = Config.DefaultWeaponTints,
components = {
{name = 'clip_default', label = _U('component_clip_default'), hash = `COMPONENT_TACTICALRIFLE_CLIP_01`},
{name = 'clip_extended', label = _U('component_clip_extended'), hash = `COMPONENT_TACTICALRIFLE_CLIP_02`},
{name = 'flashlight', label = _U('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH_REH`},
{name = 'grip', label = _U('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`},
{name = 'suppressor', label = _U('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}
}
}
Config.Weapons[Length + 2] = {
name = 'WEAPON_PRECISIONRIFLE',
label = _U('weapon_precisionrifle'),
ammo = {label = _U('ammo_rounds'), hash = `AMMO_SNIPER`},
tints = Config.DefaultWeaponTints,
components = {
{name = 'clip_default', label = _U('component_clip_default'), hash = `COMPONENT_PRECISIONRIFLE_CLIP_01`},
}
}
Config.Weapons[Length+ 3] = {name = 'WEAPON_METALDETECTOR', label = _U('weapon_metaldetector'), components = {}}
end
+1 -1
View File
@@ -17,7 +17,7 @@ shared_scripts {
server_scripts {
'@oxmysql/lib/MySQL.lua',
'config.logs.lua',
'server/common.lua',
'server/classes/player.lua',
'server/classes/overrides/*.lua',
+3
View File
@@ -100,6 +100,9 @@ Locales['br'] = {
['commanderror_invalidcommand'] = '/%s is not an valid command!',
['commanderror_invalidplayerid'] = 'there is no player online matching that server id',
['commandgeneric_playerid'] = 'o ID do jogador',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ' ',
+3
View File
@@ -100,6 +100,9 @@ Locales['cs'] = {
['commanderror_invalidcommand'] = '/%s is not an valid command!',
['commanderror_invalidplayerid'] = 'there is no player online matching that server id',
['commandgeneric_playerid'] = 'player id',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ' ',
+14 -11
View File
@@ -18,10 +18,10 @@ Locales['de'] = {
['gave_weapon_hasalready'] = '%s hat bereits eine(n) %s',
['gave_weapon_noweapon'] = '%s hat diese Waffe nicht',
['received_weapon'] = 'du erhälst %s von %s',
['received_weapon_ammo'] = 'du erhälst ~o~%sx %s für dein %s von %s',
['received_weapon_withammo'] = 'du erhälst %s mit ~o~%sx %s von %s',
['received_weapon_ammo'] = 'du erhälst %sx %s für dein %s von %s',
['received_weapon_withammo'] = 'du erhälst %s mit %sx %s von %s',
['received_weapon_hasalready'] = '%s hat versucht dir eine(n) %s zu geben, aber du hast bereits eine(n)',
['received_weapon_noweapon'] = '%s ahat versucht dir Munition für eine(n) %s, aber du besitzt diese Waffe nicht',
['received_weapon_noweapon'] = '%s hat versucht dir Munition für eine(n) %s, aber du besitzt diese Waffe nicht',
['gave_account_money'] = 'du gibst $%s (%s) an %s',
['received_account_money'] = 'du empfängst $%s (%s) von %s',
['amount_invalid'] = 'ungültiger Betrag',
@@ -32,7 +32,7 @@ Locales['de'] = {
['threw_standard'] = 'du wirfst %sx %s',
['threw_account'] = 'du wirfst $%s %s weg',
['threw_weapon'] = 'du wirfst %s weg',
['threw_weapon_ammo'] = 'du wirfst %s mit ~o~%sx %s weg',
['threw_weapon_ammo'] = 'du wirfst %s mit %sx %s weg',
['threw_weapon_already'] = 'Du hast bereits diese Waffe',
['threw_cannot_pickup'] = 'Du kannst das nicht aufheben, da dein Inventar voll ist',
['threw_pickup_prompt'] = 'drücke E um aufzuheben',
@@ -47,17 +47,17 @@ Locales['de'] = {
['received_paycheck'] = 'erhaltener Gehaltsscheck',
['bank'] = 'bank',
['account_bank'] = 'bank',
['account_black_money'] = 'dirty Money',
['account_money'] = 'cash',
['account_black_money'] = 'schwarzgeld',
['account_money'] = 'geld',
['act_imp'] = 'Aktion nicht möglich',
['in_vehicle'] = 'du kannst keine Items in einem Fahrzeug weitergeben',
-- Commands
['command_car'] = 'fahrzeug spawnen',
['command_car_car'] = 'vehicle spawn name or hash',
['command_car_car'] = 'fahrzeug spawn name oder hash',
['command_cardel'] = 'fahrzeuge in der nähe löschen',
['command_cardel_radius'] = 'optional, jedes fahrzeug innerhalb des angegebenen radius löschens',
['command_cardel_radius'] = 'optional, jedes fahrzeug innerhalb des angegebenen radius löschen',
['command_clear'] = 'chat leeren',
['command_clearall'] = 'chat leeren für alle spieler',
['command_clearinventory'] = 'spieler inventar leeren',
@@ -88,8 +88,8 @@ Locales['de'] = {
['command_setcoords_z'] = 'z axis',
['command_setjob'] = 'job für einen spieler setzen',
['command_setjob_job'] = 'job name',
['command_setjob_grade'] = 'job grade',
['command_setjob_invalid'] = 'der job, grade oder beides ist ungültig',
['command_setjob_grade'] = 'job rang',
['command_setjob_invalid'] = 'der job, rang oder beides ist ungültig',
['command_setgroup'] = 'setze spieler gruppe',
['command_setgroup_group'] = 'gruppen name',
['commanderror_argumentmismatch'] = 'argumentanzahl stimmt nicht überein (übergeben %s, gesucht %s)',
@@ -98,8 +98,11 @@ Locales['de'] = {
['commanderror_invalidweapon'] = 'ungültige waffe',
['commanderror_console'] = 'der command kann nicht von der konsole ausgeführt werden',
['commanderror_invalidcommand'] = '/%s ist kein verfügbarer command!',
['commanderror_invalidplayerid'] = 'kein spieler online mit dieser id',
['commanderror_invalidplayerid'] = 'kein spieler ist online mit dieser id',
['commandgeneric_playerid'] = 'spieler id',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ' ',
+3
View File
@@ -105,6 +105,9 @@ Locales['en'] = {
['commanderror_invalidcommand'] = 'Invalid Command - /%s',
['commanderror_invalidplayerid'] = 'Specified Player is not online',
['commandgeneric_playerid'] = 'Player`s Server Id',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ',',
+3
View File
@@ -105,6 +105,9 @@ Locales['es'] = {
['commanderror_invalidcommand'] = '/%s ¡No es un comando válido!',
['commanderror_invalidplayerid'] = 'No hay ningún jugador en línea que coincida con la ID del servidor',
['commandgeneric_playerid'] = 'ID del jugador',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ',',
+3
View File
@@ -100,6 +100,9 @@ Locales['fi'] = {
['commanderror_invalidcommand'] = '/%s is not an valid command!',
['commanderror_invalidplayerid'] = 'there is no player online matching that server id',
['commandgeneric_playerid'] = 'player id',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ' ',
+3
View File
@@ -100,6 +100,9 @@ Locales['fr'] = {
['commanderror_invalidcommand'] = '/%s n\'est pas une commande valide!',
['commanderror_invalidplayerid'] = 'il n\'ya aucun joueur avec cet ID en jeu',
['commandgeneric_playerid'] = 'id joueur',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ' ',
+3
View File
@@ -105,6 +105,9 @@ Locales["hu"] = {
["commanderror_invalidcommand"] = "Érvénytelen parancs - /%s",
["commanderror_invalidplayerid"] = "Megadott játékos nem online.",
["commandgeneric_playerid"] = "Játékos Szerver Id",
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
["locale_digit_grouping_symbol"] = ",",
+4 -1
View File
@@ -48,7 +48,7 @@ Locales['nl'] = {
['bank'] = 'Doolhofbank',
['account_bank'] = 'Bank',
['account_black_money'] = 'Zwart geld',
['account_money'] = 'Cash',
['account_money'] = 'Geld',
['act_imp'] = 'Kan actie niet uitvoeren',
['in_vehicle'] = 'Kan actie niet uitvoeren, speler zit in voertuig',
@@ -105,6 +105,9 @@ Locales['nl'] = {
['commanderror_invalidcommand'] = 'Ongeldige opdracht - /%s',
['commanderror_invalidplayerid'] = 'Opgegeven speler is niet online',
['commandgeneric_playerid'] = 'Server-ID van de speler',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ',',
+3
View File
@@ -99,6 +99,9 @@ Locales['pl'] = {
['commanderror_invalidcommand'] = '/%s nie jest poprawną komendą!',
['commanderror_invalidplayerid'] = 'brak dostepnego gracza pasującego do podanego id serwerowego',
['commandgeneric_playerid'] = 'id gracza',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ',',
+3
View File
@@ -100,6 +100,9 @@ Locales['sc'] = {
['commanderror_invalidcommand'] = '/%s 不是有效的命令!',
['commanderror_invalidplayerid'] = '没有在线玩家匹配到该服务id',
['commandgeneric_playerid'] = '玩家id',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ',',
+3
View File
@@ -100,6 +100,9 @@ Locales['sv'] = {
['commanderror_invalidcommand'] = 'Ogiltigt kommando - /%s',
['commanderror_invalidplayerid'] = 'Angiven spelare är inte online',
['commandgeneric_playerid'] = 'Spelarens server-id',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ' ',
+3
View File
@@ -100,6 +100,9 @@ Locales['tc'] = {
['commanderror_invalidcommand'] = '/%s 不是有效的指令!',
['commanderror_invalidplayerid'] = '無效的玩家ID',
['commandgeneric_playerid'] = '玩家id',
['command_giveammo_noweapon_found'] = '%s does not have that weapon',
['command_giveammo_weapon'] = 'Weapon name',
['command_giveammo_ammo'] = 'Ammo Quantity',
-- Locale settings
['locale_digit_grouping_symbol'] = ',',
+9 -9
View File
@@ -174,7 +174,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
function self.setAccountMoney(accountName, money, reason)
reason = reason or 'unknown'
if not tonumber(money) then
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number!'):format(accountName, self.playerId))
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money))
return
end
if money >= 0 then
@@ -190,14 +190,14 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
print(('[^1ERROR^7] Tried To Set Invalid Account ^5%s^0 For Player ^5%s^0!'):format(accountName, self.playerId))
end
else
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number!'):format(accountName, self.playerId))
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money))
end
end
function self.addAccountMoney(accountName, money, reason)
reason = reason or 'Unknown'
if not tonumber(money) then
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number!'):format(accountName, self.playerId))
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money))
return
end
if money > 0 then
@@ -212,14 +212,14 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
print(('[^1ERROR^7] Tried To Set Add To Invalid Account ^5%s^0 For Player ^5%s^0!'):format(accountName, self.playerId))
end
else
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number!'):format(accountName, self.playerId))
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money))
end
end
function self.removeAccountMoney(accountName, money, reason)
reason = reason or 'Unknown'
if not tonumber(money) then
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number!'):format(accountName, self.playerId))
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money))
return
end
if money > 0 then
@@ -235,7 +235,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
print(('[^1ERROR^7] Tried To Set Add To Invalid Account ^5%s^0 For Player ^5%s^0!'):format(accountName, self.playerId))
end
else
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number!'):format(accountName, self.playerId))
print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money))
end
end
@@ -356,7 +356,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
TriggerEvent('esx:setJob', self.source, self.job, lastJob)
self.triggerEvent('esx:setJob', self.job)
else
print(('[es_extended] [^3WARNING^7] Ignoring invalid .setJob() usage for "%s"'):format(self.identifier))
print(('[es_extended] [^3WARNING^7] Ignoring invalid ^5.setJob()^7 usage for ID: ^5%s^7, Job: ^5%s^7'):format(self.source, job))
end
end
@@ -386,8 +386,8 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
if component then
if not self.hasWeaponComponent(weaponName, weaponComponent) then
self.loadout[loadoutNum].components[#self.loadout[loadoutNum].components + 1] = weaponComponent
local componentHash = ESX.GetWeaponComponent(weapon, weaponComponent).hash
GiveWeaponComponentToPed(GetPlayerPed(self.source), joaat(weapon), componentHash)
local componentHash = ESX.GetWeaponComponent(weaponName, weaponComponent).hash
GiveWeaponComponentToPed(GetPlayerPed(self.source), joaat(weaponName), componentHash)
self.triggerEvent('esx:addInventoryItem', component.label, false, true)
end
end
+25 -3
View File
@@ -12,6 +12,11 @@ ESX.RegisterCommand('setjob', 'admin', function(xPlayer, args, showError)
else
showError(_U('command_setjob_invalid'))
end
ESX.DiscordLogFields("UserActions", "/setjob Triggered", "pink", {
{name = "Player", value = xPlayer.name, inline = true},
{name = "Job", value = args.job, inline = true},
{name = "Grade", value = args.grade, inline = true}
})
end, true, {help = _U('command_setjob'), validate = true, arguments = {
{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'},
{name = 'job', help = _U('command_setjob_job'), type = 'string'},
@@ -20,7 +25,12 @@ end, true, {help = _U('command_setjob'), validate = true, arguments = {
ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError)
local GameBuild = tonumber(GetConvar("sv_enforceGameBuild", 1604))
if not args.car then args.car = GameBuild >= 2699 and "DRAUGUR" or "Prototipo" end
if not args.car then args.car = GameBuild >= 2699 and "draugur" or "prototipo" end
ESX.DiscordLogFields("UserActions", "/car Triggered", "pink", {
{name = "Player", value = xPlayer.name, inline = true},
{name = "ID", value = xPlayer.source, inline = true},
{name = "Vehicle", value = args.car, inline = true}
})
xPlayer.triggerEvent('esx:spawnVehicle', args.car)
end, false, {help = _U('command_car'), validate = false, arguments = {
{name = 'car',validate = false, help = _U('command_car_car'), type = 'string'}
@@ -83,6 +93,18 @@ if not Config.OxInventory then
{name = 'ammo', help = _U('command_giveweapon_ammo'), type = 'number'}
}})
ESX.RegisterCommand('giveammo', 'admin', function(xPlayer, args, showError)
if args.playerId.hasWeapon(args.weapon) then
args.playerId.addWeaponAmmo(args.weapon, args.ammo)
else
showError(_U("command_giveammo_noweapon_found"))
end
end, true, {help = _U('command_giveweapon'), validate = false, arguments = {
{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'},
{name = 'weapon', help = _U('command_giveammo_weapon'), type = 'weapon'},
{name = 'ammo', help = _U('command_giveammo_ammo'), type = 'number'}
}})
ESX.RegisterCommand('giveweaponcomponent', 'admin', function(xPlayer, args, showError)
if args.playerId.hasWeapon(args.weaponName) then
local component = ESX.GetWeaponComponent(args.weaponName, args.componentName)
@@ -142,7 +164,7 @@ end
ESX.RegisterCommand('setgroup', 'admin', function(xPlayer, args, showError)
if not args.playerId then args.playerId = xPlayer.source end
if args.group == "superadmin" then args.group = "admin" print("[^3WARNING^7] Superadmin detected, setting group to admin") end
if args.group == "superadmin" then args.group = "admin" print("[^3WARNING^7] ^5Superadmin^7 detected, setting group to ^5admin^7") end
args.playerId.setGroup(args.group)
end, true, {help = _U('command_setgroup'), validate = true, arguments = {
{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'},
@@ -151,7 +173,7 @@ end, true, {help = _U('command_setgroup'), validate = true, arguments = {
ESX.RegisterCommand('save', 'admin', function(xPlayer, args, showError)
Core.SavePlayer(args.playerId)
print("[^2Info^0] Saved Player!")
print("[^2Info^0] Saved Player - ^5".. args.playerId.source .. "^0")
end, true, {help = _U('command_save'), validate = true, arguments = {
{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
}})
+9 -7
View File
@@ -13,6 +13,8 @@ Core.PickupId = 0
Core.PlayerFunctionOverrides = {}
AddEventHandler('esx:getSharedObject', function(cb)
local Invoke = GetInvokingResource()
print(('[^3WARNING^7] ^5%s^7 used ^5esx:getSharedObject^7, this method is deprecated and should not be used! Refer to ^5https://docs.esx-framework.org/tutorials/sharedevent^7 for more info!'):format(Invoke))
cb(ESX)
end)
@@ -72,14 +74,14 @@ MySQL.ready(function()
if Jobs[v.job_name] then
Jobs[v.job_name].grades[tostring(v.grade)] = v
else
print(('[^3WARNING^7] Ignoring job grades for ^5"%s"^0 due to missing job'):format(v.job_name))
print(('[^3WARNING^7] Ignoring job grades for ^5%s^0 due to missing job'):format(v.job_name))
end
end
for _, v in pairs(Jobs) do
if ESX.Table.SizeOf(v.grades) == 0 then
Jobs[v.name] = nil
print(('[^3WARNING^7] Ignoring job ^5"%s"^0 due to no job grades found'):format(v.name))
print(('[^3WARNING^7] Ignoring job ^5%s^0 due to no job grades found'):format(v.name))
end
end
@@ -91,7 +93,7 @@ MySQL.ready(function()
ESX.Jobs = Jobs
end
print('[^2INFO^7] ESX ^5Legacy^0 initialized')
print('[^2INFO^7] ESX ^5Legacy 1.8.5^0 initialized!')
StartDBSync()
StartPayCheck()
end)
@@ -104,10 +106,10 @@ AddEventHandler('esx:clientLog', function(msg)
end)
RegisterServerEvent('esx:triggerServerCallback')
AddEventHandler('esx:triggerServerCallback', function(name, requestId, ...)
local playerId = source
AddEventHandler('esx:triggerServerCallback', function(name, requestId,Invoke, ...)
local source = source
ESX.TriggerServerCallback(name, requestId, playerId, function(...)
TriggerClientEvent('esx:serverCallback', playerId, requestId, ...)
ESX.TriggerServerCallback(name, requestId, source,Invoke, function(...)
TriggerClientEvent('esx:serverCallback', source, requestId, ...)
end, ...)
end)
+52 -4
View File
@@ -167,11 +167,11 @@ function ESX.RegisterServerCallback(name, cb)
Core.ServerCallbacks[name] = cb
end
function ESX.TriggerServerCallback(name, requestId, source, cb, ...)
function ESX.TriggerServerCallback(name, requestId, source,Invoke, cb, ...)
if Core.ServerCallbacks[name] then
Core.ServerCallbacks[name](source, cb, ...)
else
print(('[^3WARNING^7] Server callback ^5"%s"^0 does not exist. ^1Please Check The Server File for Errors!'):format(name))
print(('[^1ERROR^7] Server callback ^5"%s"^0 does not exist. Please Check ^5%s^7 for Errors!'):format(name, Invoke))
end
end
@@ -209,7 +209,7 @@ function Core.SavePlayers(cb)
if type(cb) == 'function' then
cb()
else
print(('[^2INFO^7] Saved %s %s over %s ms'):format(count, count > 1 and 'players' or 'player', (os.time() - time) / 1000000))
print(('[^2INFO^7] Saved ^5%s^7 %s over ^5%s^7 ms'):format(count, count > 1 and 'players' or 'player', ESX.Math.Round((os.time() - time) / 1000000, 2)))
end
end
end)
@@ -265,6 +265,54 @@ function ESX.GetIdentifier(playerId)
end
end
function ESX.DiscordLog(name, title, color, message)
local webHook = Config.DiscordLogs.Webhooks[name] or Config.DiscordLogs.Webhooks.default
local embedData = {{
['title'] = title,
['color'] = Config.DiscordLogs.Colors[color] or Config.DiscordLogs.Colors.default,
['footer'] = {
['text'] = "| ESX Logs | " .. os.date(),
['icon_url'] = "https://cdn.discordapp.com/attachments/944789399852417096/1020099828266586193/blanc-800x800.png"
},
['description'] = message,
['author'] = {
['name'] = "ESX Framework",
['icon_url'] = "https://cdn.discordapp.com/emojis/939245183621558362.webp?size=128&quality=lossless"
}
}}
PerformHttpRequest(webHook, nil, 'POST', json.encode({
username = 'Logs',
embeds = embedData
}), {
['Content-Type'] = 'application/json'
})
end
function ESX.DiscordLogFields(name, title, color, fields)
local webHook = Config.DiscordLogs.Webhooks[name] or Config.DiscordLogs.Webhooks.default
local embedData = {{
['title'] = title,
['color'] = Config.DiscordLogs.Colors[color] or Config.DiscordLogs.Colors.default,
['footer'] = {
['text'] = "| ESX Logs | " .. os.date(),
['icon_url'] = "https://cdn.discordapp.com/attachments/944789399852417096/1020099828266586193/blanc-800x800.png"
},
['fields'] = fields,
['description'] = "",
['author'] = {
['name'] = "ESX Framework",
['icon_url'] = "https://cdn.discordapp.com/emojis/939245183621558362.webp?size=128&quality=lossless"
}
}}
PerformHttpRequest(webHook, nil, 'POST', json.encode({
username = 'Logs',
embeds = embedData
}), {
['Content-Type'] = 'application/json'
})
end
function ESX.RefreshJobs()
local Jobs = {}
local jobs = MySQL.query.await('SELECT * FROM jobs')
@@ -344,7 +392,7 @@ function ESX.GetItemLabel(item)
if ESX.Items[item] then
return ESX.Items[item].label
else
print('[^3WARNING^7] Attemting to get invalid Item -> ' .. item)
print('[^3WARNING^7] Attemting to get invalid Item -> ^5' .. item .. "^7")
end
end
+10 -6
View File
@@ -72,7 +72,7 @@ function createESXPlayer(identifier, playerId, data)
end
if Core.IsPlayerAdmin(playerId) then
print(('^2[INFO] ^0 Player ^5%s ^0Has been granted admin permissions via ^5Ace Perms.^7'):format(playerId))
print(('[^2INFO^0] Player ^5%s^0 Has been granted admin permissions via ^5Ace Perms^7.'):format(playerId))
defaultGroup = "admin"
else
defaultGroup = "user"
@@ -145,7 +145,7 @@ function loadESXPlayer(identifier, playerId, isNew)
if ESX.DoesJobExist(job, grade) then
jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
else
print(('[^3WARNING^7] Ignoring invalid job for %s [job: %s, grade: %s]'):format(identifier, job, grade))
print(('[^3WARNING^7] Ignoring invalid job for ^5%s^7 [job: ^5%s^7, grade: ^5%s^7]'):format(identifier, job, grade))
job, grade = 'unemployed', '0'
jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
end
@@ -180,7 +180,7 @@ function loadESXPlayer(identifier, playerId, isNew)
if item then
foundItems[name] = count
else
print(('[^3WARNING^7] Ignoring invalid item "%s" for "%s"'):format(name, identifier))
print(('[^3WARNING^7] Ignoring invalid item ^5"%s"^7 for ^5"%s^7"'):format(name, identifier))
end
end
end
@@ -211,7 +211,7 @@ function loadESXPlayer(identifier, playerId, isNew)
if result.group then
if result.group == "superadmin" then
userData.group = "admin"
print("[^3WARNING^7] Superadmin detected, setting group to admin")
print("[^3WARNING^7] ^5Superadmin^7 detected, setting group to ^5admin^7")
else
userData.group = result.group
end
@@ -319,7 +319,7 @@ function loadESXPlayer(identifier, playerId, isNew)
end
xPlayer.triggerEvent('esx:registerSuggestions', Core.RegisteredCommands)
print(('[^2INFO^0] Player ^5"%s" ^0has connected to the server. ID: ^5%s^7'):format(xPlayer.getName(), playerId))
print(('[^2INFO^0] Player ^5"%s"^0 has connected to the server. ID: ^5%s^7'):format(xPlayer.getName(), playerId))
end
AddEventHandler('chatMessage', function(playerId, author, message)
@@ -386,7 +386,7 @@ if not Config.OxInventory then
local targetXPlayer = ESX.GetPlayerFromId(target)
local distance = #(GetEntityCoords(GetPlayerPed(playerId)) - GetEntityCoords(GetPlayerPed(target)))
if not sourceXPlayer or not targetXPlayer or distance > Config.DistanceGive then
print("[WARNING] Player Detected Cheating: " .. GetPlayerName(playerId))
print("[^3WARNING^7] Player Detected Cheating: ^5" .. GetPlayerName(playerId) .. "^7")
return
end
@@ -595,6 +595,10 @@ ESX.RegisterServerCallback('esx:isUserAdmin', function(source, cb)
cb(Core.IsPlayerAdmin(source))
end)
ESX.RegisterServerCallback('esx:getGameBuild', function(source, cb)
cb(tonumber(GetConvar("sv_enforceGameBuild", 1604)))
end)
ESX.RegisterServerCallback('esx:getOtherPlayerData', function(source, cb, target)
local xPlayer = ESX.GetPlayerFromId(target)
+6 -6
View File
@@ -65,17 +65,17 @@ end
function ESX.OneSync.SpawnVehicle(model, coords, heading, autoMobile, Properties, cb)
model = type(model) == 'string' and joaat(model) or model
Properties = Properties or {}
local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z)
local coords = type(coords) == "vector3" and coords or vector3(coords.x, coords.y, coords.z)
if type(autoMobile) ~= 'boolean' then
return
end
CreateThread(function()
local Entity = autoMobile and Citizen.InvokeNative(`CREATE_AUTOMOBILE`, model, coords.x, coords.y, coords.z, heading) or CreateVehicle(model, coords, heading, true, true)
while not DoesEntityExist(Entity) do
local SpawnedEntity = autoMobile and Citizen.InvokeNative(`CREATE_AUTOMOBILE`, model, coords.x, coords.y, coords.z, heading) or CreateVehicle(model, coords, heading, true, true)
while not DoesEntityExist(SpawnedEntity) do
Wait(0)
end
Entity(Entity).state:set('VehicleProperties', Properties, true)
local netID = NetworkGetNetworkIdFromEntity(Entity)
Entity(SpawnedEntity).state:set('VehicleProperties', Properties, true)
local netID = NetworkGetNetworkIdFromEntity(SpawnedEntity)
cb(netID)
end)
end
@@ -86,7 +86,7 @@ end
---@param cb function
function ESX.OneSync.SpawnObject(model, coords, heading, cb)
if type(model) == 'string' then model = joaat(model) end
local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z)
local coords = type(coords) == "vector3" and coords or vector3(coords.x, coords.y, coords.z)
CreateThread(function()
local entity = CreateObject(model, coords, true, true)
while not DoesEntityExist(entity) do Wait(50) end
+5 -5
View File
@@ -30,10 +30,10 @@ Locales['de'] = {
['no_identifier'] = 'Es gab einen Fehler beim Laden deines Charackters!\nFehler Code: identifier-missing\n\nDie Ursache des Fehlers ist nicht bekannt, dein Identifier konnte nicht gefunden werden. Bitte versuche es später erneut oder kontaktiere einen Admin.',
['missing_identity'] = 'Es gab einen Fehler beim Laden deines Charackters!\nError code: identity-missing\n\nEs scheint, keine Identität zu geben. Bitte versuche, erneut zu verbinden.',
['deleted_identity'] = 'Dein Charakter wurde gelöscht. Bitte logge neu ein, um einen neuen zu erstellen.',
['invalid_firstname_format'] = 'Ungültiges Format (Vorname): Überprüf deine Eingabe',
['invalid_lastname_format'] = 'Ungültiges Format (Nachname): Überprüf deine Eingabe',
['invalid_dob_format'] = 'Ungültiges Format (Geburtsdatum): Überprüf deine Eingabe',
['invalid_sex_format'] = 'Ungültiges Format (Geschlecht): Überprüf deine Eingabe',
['invalid_height_format'] = 'Ungültiges Format (Größe): Überprüf deine Eingabe.'
['invalid_firstname_format'] = 'Ungültiges Format (Vorname): Bitte überprüfe deine Eingabe',
['invalid_lastname_format'] = 'Ungültiges Format (Nachname): Bitte überprüfe deine Eingabe',
['invalid_dob_format'] = 'Ungültiges Format (Geburtsdatum): Bitte überprüfe deine Eingabe',
['invalid_sex_format'] = 'Ungültiges Format (Geschlecht): Bitte überprüfe deine Eingabe',
['invalid_height_format'] = 'Ungültiges Format (Größe): Bitte überprüfe deine Eingabe.'
}
+25
View File
@@ -0,0 +1,25 @@
Locales["nl"] = {
["male"] = "Man",
["female"] = "Vrouw",
["delete_label"] = "Verwijder %s %s?",
["select_char"] = "Kies Karakter",
["create_char"] = "Creeër nieuw karakter",
["char_play"] = "Speel dit karakter",
["char_disabled"] = "Dit karakter is niet beschikbaar",
["char_delete"] = "Verwijder dit karakter",
["cancel"] = "Annuleer",
["confirm"] = "Bevestig",
["command_setslots"] = "Zet multicharacter aantal slots van een speler",
["command_remslots"] = "Verwijder multicharacter aantal slots van een speler",
["command_enablechar"] = "Zet een karakter van speler aan",
["command_disablechar"] = "Zet een karakter van speler uit",
["command_charslot"] = "Slot nummer van het karakter",
["command_identifier"] = "Speler identifier",
["command_slots"] = "# aantal slots",
["slotsadd"] = "Je hebt %s aantal slots bij %s toegevoegd",
["slotsedit"] = "Je hebt %s aantal slots bij %s aangepast",
["slotsrem"] = "Je hebt slots bij %s verwijderd",
["charenabled"] = "Je hebt karakter #%s van %s aangezet",
["chardisabled"] = "Je hebt karakter #%s van %s uitgezet",
["charnotfound"] = "Karakter #%s van %s bestaat niet",
}
+3 -3
View File
@@ -117,7 +117,7 @@ elseif ESX.GetConfig().Multichar == true then
MySQL.transaction(queries, function(result)
if result then
print(('[^2INFO^7] Player [%s] %s has deleted a character (%s)'):format(GetPlayerName(source), source, identifier))
print(('[^2INFO^7] Player ^5%s %s^7 has deleted a character ^5(%s)^7'):format(GetPlayerName(source), source, identifier))
Wait(50)
SetupCharacters(source)
else
@@ -154,9 +154,9 @@ elseif ESX.GetConfig().Multichar == true then
end
if MySQL.transaction.await(queries) then
print(('[^2INFO^7] Updated ^5%s^7 columns to use VARCHAR(%s)'):format(count, length))
print(('[^2INFO^7] Updated ^5%s^7 columns to use ^5VARCHAR(%s)^7'):format(count, length))
else
print(('[^2INFO^7] Unable to update ^5%s^7 columns to use VARCHAR(%s)'):format(count, length))
print(('[^2INFO^7] Unable to update ^5%s^7 columns to use ^5VARCHAR(%s)^7'):format(count, length))
end
end
+4 -4
View File
@@ -18,10 +18,10 @@ $(function () {
if (e.data.type === "Progressbar") {
var message = e.data.message
const replaceColors = (str, obj) => {
let strToReplace = str
let strToReplace = str;
for (let id in obj) {
strToReplace = strToReplace.replace(new RegExp(id, 'g'), obj[id])
strToReplace = strToReplace.replace(new RegExp(id, "g"), obj[id]);
}
return strToReplace
@@ -34,10 +34,10 @@ $(function () {
let newStr = replaceColors(message, objArr);
message = newStr;
message = newStr
}
}
$(".text").text(message)
$(".text").html(`<p class="text">${message}</p>`)
doc.getElementById("notifyInfo").style.display = "block";
const start = new Date();
const maxTime = e.data.length;
+6
View File
@@ -0,0 +1,6 @@
Locales['nl'] = {
['skin_menu'] = 'Kleding Menu',
['use_rotate_view'] = 'gebruik ~INPUT_FRONTEND_LS~ en ~INPUT_CHARACTER_WHEEL~ om de camera te draaien.',
['skin'] = 'verander outfit',
['saveskin'] = 'sla outfit op in je kledingkast.',
}
+1 -1
View File
@@ -30,7 +30,7 @@ AddEventHandler('esx_skin:responseSaveSkin', function(skin)
file:flush()
file:close()
else
print(('esx_skin: %s attempted saving skin to file'):format(xPlayer.getIdentifier()))
print(('[^2INFO^7] ^5%s^7 attempted saving skin to file'):format(xPlayer.getIdentifier()))
end
end)
+102 -74
View File
@@ -1,76 +1,104 @@
Locales['de'] = {
['sex'] = 'geschlecht',
['face'] = 'gesicht',
['skin'] = 'skin',
['wrinkles'] = 'falten',
['wrinkle_thickness'] = 'faltendicke',
['beard_type'] = 'bart Typ',
['beard_size'] = 'bartdichte',
['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'] = 'eye color',
['eyebrow_type'] = 'augenbrauen Typ',
['eyebrow_size'] = 'augenbrauen Größe',
['eyebrow_color_1'] = 'augenbrauenfarbe 1',
['eyebrow_color_2'] = 'augenbrauenfarbe 2',
['makeup_type'] = 'makeup Typ',
['makeup_thickness'] = 'makeup dicke',
['makeup_color_1'] = 'makeupfarbe 1',
['makeup_color_2'] = 'makeupfarbe 2',
['lipstick_type'] = 'lippenstift Typ',
['lipstick_thickness'] = 'lippenstift dicke',
['lipstick_color_1'] = 'lippenstiffarbe 1',
['lipstick_color_2'] = 'lippenstiftfarbe 2',
['ear_accessories'] = 'ohr Accessories',
['ear_accessories_color'] = 'ohr Accessories Farbe',
['tshirt_1'] = 't-Shirt 1',
['tshirt_2'] = 't-Shirt 2',
['torso_1'] = 'torso 1',
['torso_2'] = 'torso 2',
['decals_1'] = 'tattoos 1',
['decals_2'] = 'tattoos 2',
['arms'] = 'arme',
['arms_2'] = 'arme 2',
['pants_1'] = 'hosen 1',
['pants_2'] = 'hosen 2',
['shoes_1'] = 'schuhe 1',
['shoes_2'] = 'schuhe 2',
['mask_1'] = 'maske 1',
['mask_2'] = 'maske 2',
['bproof_1'] = 'schusssichere Weste 1',
['bproof_2'] = 'schusssichere Weste 2',
['chain_1'] = 'kette 1',
['chain_2'] = 'kette 2',
['helmet_1'] = 'helm 1',
['helmet_2'] = 'helm 2',
['watches_1'] = 'watches 1',
['watches_2'] = 'watches 2',
['bracelets_1'] = 'bracelets 1',
['bracelets_2'] = 'bracelets 2',
['glasses_1'] = 'brille 1',
['glasses_2'] = 'brille 2',
['bag'] = 'rucksack',
['bag_color'] = 'rucksackfarbe',
['blemishes'] = 'blemishes',
['blemishes_size']= 'blemishes thickness',
['ageing'] = 'ageing',
['ageing_1'] = 'ageing thickness',
['blush'] = 'blush',
['blush_1'] = 'blush thickness',
['blush_color'] = 'blush color',
['complexion'] = 'complexion',
['complexion_1'] = 'complexion thickness',
['sun'] = 'sun',
['sun_1'] = 'sun thickness',
['freckles'] = 'freckles',
['freckles_1'] = 'freckles thickness',
['chest_hair'] = 'chest hair',
['chest_hair_1'] = 'chest hair thickness',
['chest_color'] = 'chest hair color',
['bodyb'] = 'body blemishes',
['bodyb_size'] = 'body blemishes thickness',
['sex'] = 'Geschlecht',
['mom'] = 'Gesicht der Mutter',
['dad'] = 'Gesicht des Vaters',
['resemblance'] = 'Wiederspiegelung',
['skin_tone'] = 'Hautfarbe',
['nose_1'] = 'Nasen Dicke',
['nose_2'] = 'Nasen Spitzenlänge',
['nose_3'] = 'Nasen Spitzenlänge',
['nose_4'] = 'Nasen Knochen Höhe',
['nose_5'] = 'Nasen Spitzen Erhöhung',
['nose_6'] = 'Nasen Knochen Drehung',
['cheeks_1'] = 'Wangenknochen Höhe',
['cheeks_2'] = 'Wangenknochen Breite',
['cheeks_3'] = 'Wangen Breite',
['lip_fullness'] = 'Lippen Volle',
['jaw_bone_width'] = 'Kiefer Breite',
['jaw_bone_length'] = 'Kiefer Länge',
['chin_height'] = 'Kinn Höhe',
['chin_length'] = 'Kinn Länge',
['chin_width'] = 'Kinn Breite',
['chin_hole'] = 'Kinn Loch Breite',
['neck_thickness'] = 'Genick Breite',
['face'] = 'Gesicht',
['skin'] = 'Skin',
['Wrinkles'] = 'Falten',
['Wrinkle_thickness'] = 'Faltendicke',
['beard_type'] = 'Bart Typ',
['beard_size'] = 'Bartdichte',
['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'] = 'Augenöffnung',
['eyebrow_type'] = 'Augenbrauen Typ',
['eyebrow_size'] = 'Augenbrauen Größe',
['eyebrow_color_1'] = 'Augenbrauenfarbe 1',
['eyebrow_color_2'] = 'Augenbrauenfarbe 2',
['eyebrow_depth'] = 'Augenbrauen Tiefe',
['eyebrow_height'] = 'Augenbrauen Höhe',
['makeup_type'] = 'Makeup Typ',
['makeup_thickness'] = 'Makeup dicke',
['makeup_color_1'] = 'Makeupfarbe 1',
['makeup_color_2'] = 'Makeupfarbe 2',
['lipstick_type'] = 'Lippenstift Typ',
['lipstick_thickness'] = 'Lippenstift dicke',
['lipstick_color_1'] = 'Lippenstiffarbe 1',
['lipstick_color_2'] = 'Lippenstiftfarbe 2',
['ear_accessories'] = 'Ohr Accessories',
['ear_accessories_color'] = 'Ohr Accessories Farbe',
['tshirt_1'] = 'T-Shirt 1',
['tshirt_2'] = 'T-Shirt 2',
['torso_1'] = 'Torso 1',
['torso_2'] = 'Torso 2',
['decals_1'] = 'Tattoos 1',
['decals_2'] = 'Tattoos 2',
['arms'] = 'Arme',
['arms_2'] = 'Arme 2',
['pants_1'] = 'Hosen 1',
['pants_2'] = 'Hosen 2',
['shoes_1'] = 'Schuhe 1',
['shoes_2'] = 'Schuhe 2',
['mask_1'] = 'Maske 1',
['mask_2'] = 'Maske 2',
['bproof_1'] = 'Schusssichere Weste 1',
['bproof_2'] = 'Schusssichere Weste 2',
['chain_1'] = 'Kette 1',
['chain_2'] = 'Kette 2',
['helmet_1'] = 'Helm 1',
['helmet_2'] = 'Helm 2',
['watches_1'] = 'Watches 1',
['watches_2'] = 'Watches 2',
['bracelets_1'] = 'Bracelets 1',
['bracelets_2'] = 'Bracelets 2',
['glasses_1'] = 'Brille 1',
['glasses_2'] = 'Brille 2',
['bag'] = 'Rucksack',
['bag_color'] = 'Rucksackfarbe',
['blemishes'] = 'Körper Verfärbuing 1',
['blemishes_size']= 'Körper Verfärbung Größe',
['ageing'] = 'Alterung',
['ageing_1'] = 'Alterungsdichte',
['blush'] = 'Blush',
['blush_1'] = 'Blush Dichte',
['blush_color'] = 'Blush Farbe',
['complexion'] = 'Komplexion',
['complexion_1'] = 'Komplexionsdichte',
['sun'] = 'Sonnenbrand',
['sun_1'] = 'Sonnenbrandstärke',
['freckles'] = 'Sommersprossen',
['freckles_1'] = 'Sommersprossen Dichte',
['chest_hair'] = 'Brusthaare',
['chest_hair_1'] = 'Brusthaardichte',
['chest_color'] = 'Brusthaarfarbe',
['bodyb'] = 'Körper Verfärbungen 2',
['bodyb_size'] = 'Körper Verfärbung Dicke',
['bodyb_extra'] = 'Körper Verfärbung Effekt',
['bodyb_extra_thickness'] = 'Körper Verfärbung Effek Stärke',
['wrinkles'] = 'Falten',
['wrinkle_thickness'] = 'Falten Stärke',
}
+100
View File
@@ -0,0 +1,100 @@
Locales['it'] = {
['sex'] = 'sesso',
['mom'] = 'viso donna',
['dad'] = 'viso uomo',
['resemblance'] = 'somiglianze',
['skin_tone'] = 'tono della pelle',
['nose_1'] = 'larghezza del naso',
['nose_2'] = 'altezza della punta del naso',
['nose_3'] = 'lunghezza della punta del naso',
['nose_4'] = 'altezza dell\'osso del naso',
['nose_5'] = 'abbassamento della punta del naso',
['nose_6'] = 'torsione dell\'osso del naso',
['cheeks_1'] = 'altezza degli zigomi',
['cheeks_2'] = 'larghezza degli zigomi',
['cheeks_3'] = 'larghezza delle guance',
['lip_fullness'] = 'spessore delle labbra',
['jaw_bone_width'] = 'larghezza dell\'osso mascellare',
['jaw_bone_length'] = 'lunghezza dell\'osso mascellare',
['chin_height'] = 'altezza del mento',
['chin_length'] = 'lunghezza del mento',
['chin_width'] = 'larghezza del mento',
['chin_hole'] = 'dimensione del foro del mento',
['neck_thickness'] = 'spessore del collo',
['wrinkles'] = 'rughe',
['wrinkle_thickness'] = 'spessore delle rughe',
['beard_type'] = 'tipo di barba',
['beard_size'] = 'dimensione della barba',
['beard_color_1'] = 'colore della barba 1',
['beard_color_2'] = 'colore della barba 2',
['hair_1'] = 'capelli 1',
['hair_2'] = 'capelli 2',
['hair_color_1'] = 'colore capelli 1',
['hair_color_2'] = 'colore capelli 2',
['eye_color'] = 'colore degli occhi',
['eye_squint'] = 'strabismo degli occhi',
['eyebrow_type'] = 'tipo di sopracciglio',
['eyebrow_size'] = 'dimensione delle sopracciglia',
['eyebrow_color_1'] = 'colore delle sopracciglia 1',
['eyebrow_color_2'] = 'colore delle sopracciglia 2',
['eyebrow_depth'] = 'profondità delle sopracciglia',
['eyebrow_height'] = 'altezza del sopracciglio',
['makeup_type'] = 'tipo di trucco',
['makeup_thickness'] = 'spessore del trucco',
['makeup_color_1'] = 'colore del trucco 1',
['makeup_color_2'] = 'colore del trucco 2',
['lipstick_type'] = 'tipo di rossetto',
['lipstick_thickness'] = 'spessore del rossetto',
['lipstick_color_1'] = 'colore del rossetto 1',
['lipstick_color_2'] = 'colore del rossetto 2',
['ear_accessories'] = 'accessori per le orecchie',
['ear_accessories_color'] = 'colore accessori orecchie',
['tshirt_1'] = 't-Shirt 1',
['tshirt_2'] = 't-Shirt 2',
['torso_1'] = 'torso 1',
['torso_2'] = 'torso 2',
['decals_1'] = 'decals 1',
['decals_2'] = 'decals 2',
['arms'] = 'braccia',
['arms_2'] = 'braccia 2',
['pants_1'] = 'pantaloni',
['pants_2'] = 'colore pantaloni',
['shoes_1'] = 'scarpe',
['shoes_2'] = 'colore scarpe',
['mask_1'] = 'maschera 1',
['mask_2'] = 'maschera 2',
['bproof_1'] = 'giubbotto antiproiettile 1',
['bproof_2'] = 'giubbotto antiproiettile2',
['chain_1'] = 'collana 1',
['chain_2'] = 'collana 2',
['helmet_1'] = 'casco 1',
['helmet_2'] = 'casco 2',
['watches_1'] = 'orologi 1',
['watches_2'] = 'orologi 2',
['bracelets_1'] = 'bracciali 1',
['bracelets_2'] = 'bracciali 2',
['glasses_1'] = 'occhiali 1',
['glasses_2'] = 'occhiali 2',
['bag'] = 'zaino',
['bag_color'] = 'colore zaino',
['blemishes'] = 'imperfezioni',
['blemishes_size'] = 'pessore delle imperfezioni',
['ageing'] = 'invecchiamento pelle',
['ageing_1'] = 'spessore invecchiamento',
['blush'] = 'arrossimento',
['blush_1'] = 'spessore del rossore',
['blush_color'] = 'colore rossore',
['complexion'] = 'carnagione',
['complexion_1'] = 'spessore della carnagione',
['sun'] = 'lentiggini',
['sun_1'] = 'spessore lentiggini',
['freckles'] = 'lentiggini',
['freckles_1'] = 'spessore delle lentiggini',
['chest_hair'] = 'peli del petto',
['chest_hair_1'] = 'spessore dei peli del torace',
['chest_color'] = 'colore dei peli del petto',
['bodyb'] = 'inestetismi del corpo',
['bodyb_size'] = 'spessore delle imperfezioni',
['bodyb_extra'] = 'inestetismi del corpo extra',
['bodyb_extra_thickness'] = 'inestetismi del corpo spessore',
}
@@ -8,16 +8,19 @@ function CreateAddonAccount(name, owner, money)
function self.addMoney(m)
self.money = self.money + m
self.save()
TriggerEvent('esx_addonaccount:addMoney', self.name, m)
end
function self.removeMoney(m)
self.money = self.money - m
self.save()
TriggerEvent('esx_addonaccount:removeMoney', self.name, m)
end
function self.setMoney(m)
self.money = m
self.save()
TriggerEvent('esx_addonaccount:setMoney', self.name, m)
end
function self.save()
@@ -30,4 +33,4 @@ function CreateAddonAccount(name, owner, money)
end
return self
end
end
+1 -1
View File
@@ -4,6 +4,6 @@ Locales['de'] = {
['allowlist_empty'] = 'Für diesen Server sind keine allowlists gespeichert.',
['license_missing'] = 'Error: Ihr Identifier fehlt.',
['help_allowlist_add'] = 'jemanden zur Allowlist hinzufügen',
['help_allowlist_load'] = 'reloade die allowlist',
['help_allowlist_load'] = 'lade die Allowlist neu',
}
@@ -0,0 +1,8 @@
Locales['pl'] = {
['allowlist_check'] = 'Sprawdzamy, czy jesteś na Allowlist.',
['not_allowlisted'] = 'Aby dołączyć do tego serwera, musisz być na Allowlist!',
['allowlist_empty'] = 'Brak zapisanych list Allowlist dla tego serwera.',
['license_missing'] = 'Błąd: Brak ID!',
['help_allowlist_add'] = 'dodaj do allowlist',
['help_allowlist_load'] = 'przeładuj allowlist',
}
+1 -1
View File
@@ -46,7 +46,7 @@ end)
ESX.RegisterCommand('alrefresh', 'admin', function(xPlayer, args)
loadAllowList()
print('[esx_allowlist] Allowlist Refreshed!')
print('[^2INFO^7] Allowlist ^5Refreshed^7!')
end, true, {help = _U('help_allowlist_load')})
ESX.RegisterCommand('aladd', 'admin', function(xPlayer, args, showError)
+11 -11
View File
@@ -429,7 +429,7 @@ function OpenCloakroomMenu()
end
deadPlayers = {}
if Config.Debug then
print("[INFO] Now Off Duty")
print("[^2INFO^7] Off Duty")
end
end)
elseif data.current.value == 'ambulance_wear' then
@@ -445,8 +445,8 @@ function OpenCloakroomMenu()
TriggerEvent('esx_ambulancejob:setDeadPlayers', _deadPlayers)
end)
if Config.Debug then
print("[INFO] Player Sex |" .. tostring(skin.sex))
print("[INFO] Now On Duty")
print("[^2INFO^7] Player Sex |^5" .. tostring(skin.sex).."^7")
print("[^2INFO^7] On Duty")
end
end)
end
@@ -468,7 +468,7 @@ function OpenPharmacyMenu()
{label = _U('pharmacy_take', _U('bandage')), item = 'bandage', type = 'slider', value = 1, min = 1, max = 100}
}}, function(data, menu)
if Config.Debug then
print("[INFO] Attempting to Give Item |" .. tostring(data.current.item))
print("[^2INFO^7] Attempting to Give Item - ^5" .. tostring(data.current.item) .. "^7")
end
TriggerServerEvent('esx_ambulancejob:giveItem', data.current.item, data.current.value)
end, function(data, menu)
@@ -490,7 +490,7 @@ AddEventHandler('esx_ambulancejob:heal', function(healType, quiet)
end
if Config.Debug then
print("[INFO] Healing Player |" .. tostring(healType))
print("[^2INFO^7] Healing Player - ^5" .. tostring(healType).. "^7")
end
if not quiet then
ESX.ShowNotification(_U('healed'))
@@ -502,7 +502,7 @@ AddEventHandler('esx:setJob', function(job)
if isOnDuty and job.name ~= 'ambulance' then
for playerId,v in pairs(deadPlayerBlips) do
if Config.Debug then
print("[INFO] removing dead player blip |" .. tostring(playerId))
print("[^2INFO^7] Removing dead blip - ^5" .. tostring(playerId).. "^7")
end
RemoveBlip(v)
deadPlayerBlips[playerId] = nil
@@ -515,7 +515,7 @@ end)
RegisterNetEvent('esx_ambulancejob:PlayerDead')
AddEventHandler('esx_ambulancejob:PlayerDead', function(Player)
if Config.Debug then
print("[INFO] Setting Player Dead |" .. tostring(Player))
print("[^2INFO^7] Player Dead | ^5" .. tostring(Player) .. "^7")
end
deadPlayers[Player] = "dead"
end)
@@ -527,7 +527,7 @@ AddEventHandler('esx_ambulancejob:PlayerNotDead', function(Player)
deadPlayerBlips[Player] = nil
end
if Config.Debug then
print("[INFO] Setting Player Not Dead |" .. tostring(Player))
print("[^2INFO^7] Player Alive | ^5" .. tostring(Player) .. "^7")
end
deadPlayers[Player] = nil
end)
@@ -544,11 +544,11 @@ AddEventHandler('esx_ambulancejob:setDeadPlayers', function(_deadPlayers)
for playerId,status in pairs(deadPlayers) do
if Config.Debug then
print("[INFO] Setting Player As Dead |" .. tostring(playerId))
print("[^2INFO^7] Player Dead | ^5" .. tostring(playerId) .. "^7")
end
if status == 'distress' then
if Config.Debug then
print("[INFO] Creating Distress Blip for Player |" .. tostring(playerId))
print("[^2INFO^7] Creating Distress Blip for Player - ^5" .. tostring(playerId) .. "^7")
end
local player = GetPlayerFromServerId(playerId)
local playerPed = GetPlayerPed(player)
@@ -576,7 +576,7 @@ AddEventHandler('esx_ambulancejob:PlayerDistressed', function(Player)
if isOnDuty then
if Config.Debug then
print("[INFO] Player Distress Recived - ID |" .. tostring(Player))
print("[^2INFO^7] Player Distress Recived - ID:^5" .. tostring(Player) .. "^7")
end
ESX.ShowNotification("[DISPATCH]: An Unconscious Person Has Been Reported", "error", 10000)
deadPlayerBlips[Player] = nil
+13 -13
View File
@@ -24,35 +24,35 @@ Locales['de'] = {
['shop_item'] = '$%s',
['vehicleshop_title'] = 'Fahrzeug-Shop',
['vehicleshop_confirm'] = 'Du möchstest dieses Fahrzeug kaufen?',
['vehicleshop_bought'] = 'Du hast dir einen %sr $%s geft!',
['vehicleshop_bought'] = 'Du hast dir einen %sr $%s gekauft!',
['vehicleshop_money'] = 'Du kannst dir dieses Fahrzeug nicht leisten!',
['vehicleshop_awaiting_model'] = 'Dieses Fahrzeug LÄDTtte warte',
['vehicleshop_awaiting_model'] = 'Dieses Fahrzeug lädt bitte warte',
['confirm_no'] = 'Nein',
['confirm_yes'] = 'Ja',
-- Action Menu
['revive_inprogress'] = 'Eine Wiederbelebung findet statt!',
['revive_complete'] = 'Du hast %sederbelebt',
['revive_complete_award'] = 'Du hast %sederbelebt und dabei $%s erten!',
['revive_complete'] = 'Du hast %s wiederbelebt',
['revive_complete_award'] = 'Du hast %s wiederbelebt und dabei $%s erten!',
['revive_fail_offline'] = 'Dieser Spieler ist nicht länger online',
['heal_inprogress'] = 'Du heilst!',
['heal_complete'] = 'yDu hast %sheilt!',
['heal_complete'] = 'Du hast %s geheilt!',
['no_players'] = 'Keine Spieler in der Nähe',
['player_not_unconscious'] = 'Diese Spieler ist nicht bewusstlos!',
['player_not_conscious'] = 'Dieser Spieler ist nicht bei Bewusstsein!',
-- Boss Menu
['boss_actions'] = 'Chef-Aktionen',
-- Misc
['invalid_amount'] = ' ige Menge',
['invalid_amount'] = 'Ungültige Menge',
['actions_prompt'] = 'Drücke [E] um das Rettungsdienst-Menü öffnen.',
['deposit_amount'] = 'Menge deponieren',
['money_withdraw'] = 'Menge abheben',
['fast_travel'] = 'Drücke [E] zu schnellreisen.',
['fast_travel'] = 'Drücke [E] um schnellzureisen.',
['open_pharmacy'] = 'Drücke [E] um die Apotheke zu öffnen.',
['pharmacy_menu_title'] = 'Apotheke',
['pharmacy_take'] = 'Nimm <span style="color:blue;">%s</span>',
['medikit'] = 'Medikit',
['bandage'] = 'Verbände',
['max_item'] = 'Du trägst bereits genug.',
['max_item'] = 'Du kannst nicht mehr tragen.',
-- F6 Menu
['ems_menu'] = 'Rettungsdienst-Menü',
['ems_menu_title'] = 'Rettungsdienst-Menü',
@@ -66,17 +66,17 @@ Locales['de'] = {
['respawn_available_in'] = 'Respawn in %s Minuten %s Sekundenrfügbar',
['respawn_bleedout_in'] = 'Du wirst in %s Minuten %s Sekundensbluten\n',
['respawn_bleedout_prompt'] = 'Drücke [E] zu respawnen',
['respawn_bleedout_fine'] = 'Drücke [E] für $%s zuspawnen',
['respawn_bleedout_fine'] = 'Drücke [E] um für $%s zu respawnen',
['respawn_bleedout_fine_msg'] = 'Du hast $%s bezahlt, um zu respawnen.',
['distress_send'] = 'Drücke [G] um ein Notsignal zu senden',
['distress_sent'] = 'Notsignal wurde an den Rettungsdienst übermittelt!',
-- Revive
['revive_help'] = 'Belebe einen Spieler wieder',
-- Item
['used_medikit'] = 'Du hast eindikit verwendet',
['used_bandage'] = 'Du hast einenrband verwendet',
['not_enough_medikit'] = 'Du hast keine medikits',
['not_enough_bandage'] = 'Du hast keine verbände',
['used_medikit'] = 'Du hast Medikit verwendet',
['used_bandage'] = 'Du hast Verband verwendet',
['not_enough_medikit'] = 'Du hast keine Medikits',
['not_enough_bandage'] = 'Du hast keine Verbände',
['healed'] = 'Du wurdest behandelt.',
-- Blips
['blip_hospital'] = 'Krankenhaus',
@@ -279,10 +279,10 @@ AddEventHandler('esx_ambulancejob:giveItem', function(itemName, amount)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.job.name ~= 'ambulance' then
print(('[esx_ambulancejob] [^2WARNING^7] "%s" attempted to spawn in an item!'):format(xPlayer.identifier))
print(('[^2WARNING^7] Player ^5%s^7 Tried Giving Themselves -> ^5' .. itemName ..'^7!'):format(xPlayer.source))
return
elseif (itemName ~= 'medikit' and itemName ~= 'bandage') then
print(('[esx_ambulancejob] [^2WARNING^7] "%s" attempted to spawn in an item!'):format(xPlayer.identifier))
print(('[^2WARNING^7] Player ^5%s^7 Tried Giving Themselves -> ^5' .. itemName ..'^7!'):format(xPlayer.source))
return
end
+1 -1
View File
@@ -10,7 +10,7 @@ Locales['de'] = {
['deposit'] = 'einzahlen',
['invalid_amount'] = 'ungültiger Betrag',
['no_player_nearby'] = 'kein Spieler in der Nähe',
['press_input_context_to_open_menu'] = 'Drücke [E] um das Menü zu öffnen',
['press_input_context_to_open_menu'] = 'Drücke [E] um das Bank Menü zu öffnen',
['withdraw'] = 'Abheben',
['boss_actions'] = 'boss Actions',
['phone_receive'] = 'Bankkunde',
+1 -1
View File
@@ -100,7 +100,7 @@ function CalculateBankSavings(d, h, m)
end)
Async.parallelLimit(asyncTasks, 5, function(results)
print('[BANK] Calculated interests')
print('[^2INFO^7] Calculated interest Rate')
end)
end)
end
+16
View File
@@ -0,0 +1,16 @@
Locales['de'] = {
['invalid_amount'] = 'Das ist ein ungültiger Geldbetrag.',
['deposit_money'] = 'Du hast $%s eingezahlt',
['withdraw_money'] = 'Du hast $%s abgehoben',
['pincode_money'] = 'Dein neuer Pincode lautet: %s',
['transfer_money'] = 'Du hast erfolgreich $%s Geld zu ID: %s transferiert.',
['receive_transfer'] = 'Du hast $%s Geld von ID: %s erhalten.',
['press_e_banking'] = 'Drücke [E] um die Bank aufzurufen',
['access_bank'] = 'Zugang zur Bank',
['banking_blip'] = 'Bank',
['cant_do_it'] = "Du kannst es nicht tun!",
['not_enough_money'] = "Nicht genug Geld, du brauchst $%s",
['pincode_not_found'] = "Ungültiger Pincode",
['pincode_found'] = "Gültiger PIN-Code...",
['bank_name'] = "Fleeca Bank"
}
+2 -2
View File
@@ -2,8 +2,8 @@ Locales['de'] = {
['valid_purchase'] = 'Einkauf bestätigen?',
['yes'] = 'ja',
['no'] = 'nein',
['not_enough_money'] = 'du hast nicht genug Geld',
['not_enough_money'] = 'Du hast nicht genug Geld',
['press_access'] = 'Drücke [E] um das Menü zu öffnen',
['barber_blip'] = 'Friseur',
['you_paid'] = 'du bezahlst $%s',
['you_paid'] = 'Du bezahlst $%s',
}
+14
View File
@@ -1,3 +1,17 @@
Config = {}
Config.Locale = GetConvar('esx:locale', 'en')
Config.Visible = true
Config.Food = {
["bread"] = {
status = 200000,
remove = false
}
}
Config.Drinks = {
["water"] = {
status = 100000,
remove = true
}
}
+3 -3
View File
@@ -1,4 +1,4 @@
Locales['br'] = {
['used_bread'] = 'você comeu 1x pão',
['used_water'] = 'você tomou 1x água',
}
['used_eat'] = 'você comeu 1x %s',
['used_drink'] = 'você tomou 1x %s',
}
+3 -3
View File
@@ -1,4 +1,4 @@
Locales['en'] = {
['used_bread'] = 'you have used 1x bread',
['used_water'] = 'you have used 1x water',
}
['used_eat'] = 'you have used 1x %s',
['used_drink'] = 'you have used 1x %s',
}
@@ -0,0 +1,4 @@
Locales['nl'] = {
['used_eat'] = 'je hebt 1x %s gegeten',
['used_drink'] = 'je hebt 1x %s gedronken',
}
@@ -0,0 +1,4 @@
INSERT INTO `items` (`name`, `label`, `weight`) VALUES
('bread', 'Brood', 1),
('water', 'Water', 1)
;
+25 -15
View File
@@ -1,19 +1,29 @@
ESX.RegisterUsableItem('bread', function(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('bread', 1)
TriggerClientEvent('esx_status:add', source, 'hunger', 200000)
TriggerClientEvent('esx_basicneeds:onEat', source)
xPlayer.showNotification(_U('used_bread'))
CreateThread(function()
for k,v in pairs(Config.Food) do
ESX.RegisterUsableItem(k, function(source)
local xPlayer = ESX.GetPlayerFromId(source)
if v.remove then
xPlayer.removeInventoryItem(k,1)
end
TriggerClientEvent("esx_status:add",source,"hunger",v.status)
TriggerClientEvent('esx_basicneeds:onEat',source)
xPlayer.showNotification(_U('used_eat', ESX.GetItemLabel(k)))
end)
end
end)
ESX.RegisterUsableItem('water', function(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('water', 1)
TriggerClientEvent('esx_status:add', source, 'thirst', 200000)
TriggerClientEvent('esx_basicneeds:onDrink', source)
xPlayer.showNotification(_U('used_water'))
CreateThread(function()
for k,v in pairs(Config.Drinks) do
ESX.RegisterUsableItem(k, function(source)
local xPlayer = ESX.GetPlayerFromId(source)
if v.remove then
xPlayer.removeInventoryItem(k,1)
end
TriggerClientEvent("esx_status:add",source,"thirst",v.status)
TriggerClientEvent('esx_basicneeds:onDrink',source)
xPlayer.showNotification(_U('used_drink', ESX.GetItemLabel(k)))
end)
end
end)
ESX.RegisterCommand('heal', 'admin', function(xPlayer, args, showError)
@@ -29,4 +39,4 @@ AddEventHandler('txAdmin:events:healedPlayer', function(eventData)
end
TriggerClientEvent('esx_basicneeds:healPlayer', eventData.id)
end)
end)
+3 -3
View File
@@ -1,10 +1,10 @@
Locales['de'] = {
['invoices'] = 'Rechnungen',
['invoices_item'] = '$%s',
['received_invoice'] = 'Sie haben eine Rechnung ~r~erhalten.',
['paid_invoice'] = 'Sie bezahlen eine Rechnung von ~r~$%s.',
['received_invoice'] = 'Sie haben eine Rechnung erhalten.',
['paid_invoice'] = 'Sie bezahlen eine Rechnung von $%s.',
['no_invoices'] = 'Sie haben keine offenen Rechnungen.',
['received_payment'] = 'Sie erhalten eine Zahlung von ~r~$%s.',
['received_payment'] = 'Sie erhalten eine Zahlung von $%s.',
['player_not_online'] = 'Die Person ist nicht erreichbar.',
['no_money'] = 'Sie haben nicht genug Geld, um diese Rechnung zu bezahlen.',
['target_no_money'] = 'Die Person kann die Rechnung nicht bezahlen.',
+12
View File
@@ -0,0 +1,12 @@
Locales['nl'] = {
['invoices'] = 'Facturen',
['invoices_item'] = '€%s',
['received_invoice'] = 'Je hebt zojuist een ~r~factuur ontvangen',
['paid_invoice'] = 'Je hebt een factuur betaald van ~r~€%s',
['no_invoices'] = 'Je hoeft momenteel geen facturen te betalen',
['received_payment'] = 'je hebt een bedrag ontvangen van ~r~€%s',
['player_not_online'] = 'de speler is niet online',
['no_money'] = 'je hebt niet genoeg geld om deze factuur te betalen',
['target_no_money'] = 'de speler ~r~heeft niet genoeg geld om te betalen!',
['keymap_showbills'] = 'open factuur menu',
}
+4 -4
View File
@@ -2,9 +2,9 @@ Locales['de'] = {
-- shop
['boat_shop'] = 'Bootsladen',
['boat_shop_open'] = 'Drücke [E] um auf den Bootsladen zuzugreifen .',
['boat_shop_confirm'] = 'Kaufen <span style="color: yellow;">%s</span> for <span style="color: orange;">$%s</span>?',
['boat_shop_confirm'] = 'Kaufen <span style="color: yellow;">%s</span> für <span style="color: orange;">$%s</span>?',
['boat_shop_bought'] = 'Du hast ein %s für $%s gekauft',
['boat_shop_nomoney'] = 'Du kannst dir ~r~ dass nicht leisten!',
['boat_shop_nomoney'] = 'Du kannst dir dass nicht leisten!',
['confirm_no'] = 'Nein',
['confirm_yes'] = 'Ja',
@@ -12,7 +12,7 @@ Locales['de'] = {
['garage'] = 'Bootsgarage',
['garage_open'] = 'Drücke [E] um auf deine Bootsgarage zuzugreifen.',
['garage_store'] = 'Drücke [E] um auf den Laden in deiner Bootsgarage zuzugreifen.',
['garage_taken'] = 'Das Boot wurde ausgeparkt!!',
['garage_taken'] = 'Das Boot wurde ausgeparkt!',
['garage_stored'] = 'Das Boot wurde sicher in Ihre Garage gelagert!',
['garage_noboats'] = 'Sie haben besitzen keine Boote! Besuchen Sie den Bootsladen, um eins zu kaufen.',
['garage_blocked'] = 'Das Boot kann nicht ausgeparkt werden, weil ein anderes Fahrzeug den Spawn-Punkt blockiert!',
@@ -23,7 +23,7 @@ Locales['de'] = {
['license_buy_no'] = 'Nein',
['license_buy_yes'] = 'Bootsführerschein kaufen <span style="color: green;">$%s</span>',
['license_bought'] = 'Du hast den Bootsführerschein für $%s gekauft',
['license_nomoney'] = 'Du kannst dir den ~r~Bootsführerschein nicht leisten!',
['license_nomoney'] = 'Du kannst dir den Bootsführerschein nicht leisten!',
-- blips
['blip_garage'] = 'Bootsgarage',
+3 -7
View File
@@ -7,7 +7,7 @@ function ParkBoats()
['@type'] = 'boat'
}, function (rowsChanged)
if rowsChanged > 0 then
print(('esx_boat: %s boat(s) have been stored!'):format(rowsChanged))
print(('[^2INFO^7] Stored ^5%s^7 %s !'):format(rowsChanged, rowsChanged > 1 and 'boats' or 'boat'))
end
end)
end
@@ -18,7 +18,7 @@ ESX.RegisterServerCallback('esx_boat:buyBoat', function(source, cb, vehicleProps
-- vehicle model not found
if price == 0 then
print(('esx_boat: %s attempted to exploit the shop! (invalid vehicle model)'):format(xPlayer.identifier))
print(('[^2INFO^7] Player ^5%s^7 Attempted To Exploit Shop'):format(xPlayer.source))
cb(false)
else
if xPlayer.getMoney() >= price then
@@ -49,7 +49,7 @@ AddEventHandler('esx_boat:takeOutVehicle', function(plate)
['@plate'] = plate
}, function(rowsChanged)
if rowsChanged == 0 then
print(('esx_boat: %s exploited the garage!'):format(xPlayer.identifier))
print(('[^2INFO^7] Player ^5%s^7 Attempted To Exploit Garage'):format(xPlayer.source))
end
end)
end)
@@ -62,10 +62,6 @@ ESX.RegisterServerCallback('esx_boat:storeVehicle', function (source, cb, plate)
['@owner'] = xPlayer.identifier,
['@plate'] = plate
}, function(rowsChanged)
if rowsChanged == 0 then
print(('esx_boat: %s attempted to store an boat they don\'t own!'):format(xPlayer.identifier))
end
cb(rowsChanged)
end)
end)
+8 -8
View File
@@ -1,12 +1,12 @@
Locales['de'] = {
['valid_this_purchase'] = 'einkauf bestätigen?',
['valid_this_purchase'] = 'Einkauf bestätigen?',
['yes'] = 'ja',
['no'] = 'nein',
['not_enough_money'] = 'du hast nicht genug Geld',
['press_menu'] = 'drücke [E] um das Menü zu öffnen',
['clothes'] = 'kleidung',
['you_paid'] = 'du bezahlst $%s',
['save_in_dressing'] = 'do you want to save the outfit in your property?',
['name_outfit'] = 'name des outfits?',
['saved_outfit'] = 'the outfit has been saved!',
['not_enough_money'] = 'Du hast nicht genug Geld',
['press_menu'] = 'Drücke [E] um das Menü zu öffnen',
['clothes'] = 'Kleidung',
['you_paid'] = 'Du bezahlst $%s',
['save_in_dressing'] = 'Wollen sie das Outfit in ihrer Garderobe speichern?',
['name_outfit'] = 'Name des outfits?',
['saved_outfit'] = 'Das outfit wurde gespeichert',
}
@@ -0,0 +1,12 @@
Locales['nl'] = {
['valid_this_purchase'] = 'bevestig deze aankoop?',
['yes'] = 'ja',
['no'] = 'nee',
['not_enough_money'] = 'je hebt niet genoeg geld',
['press_menu'] = 'klik op [E] om de kleding winkel te bezoeken.',
['clothes'] = 'kleding winkel',
['you_paid'] = 'je betaalde $%s',
['save_in_dressing'] = 'wil je deze outfit opslaan in je garderobe?',
['name_outfit'] = 'geef je outfit een naam',
['saved_outfit'] = 'je outfit is opgeslagen.',
}
+29
View File
@@ -0,0 +1,29 @@
Locales['de'] = {
['you_paid'] = 'Du hast $%s an die Fahrschule gezahlt.',
['go_next_point'] = 'Fahre zum nächsten Punkt!',
['in_town_speed'] = 'Du begibst dich in ein Wohngebiet! Geschwindigkeitsbegrenzung: %s km/h',
['next_point_speed'] = 'Begieb dich zum nächsten Punkt! Geschwindigkeitsbegrenzung: %s km/h',
['stop_for_ped'] = '~r~Halte für den Fußgänger.',
['good_lets_cont'] = 'Gut gemacht, weiter so.',
['stop_look_left'] = '~r~Halte an und schau nach links. Geschwindigkeitsbegrenzung: %s km/h',
['good_turn_right'] = 'Weiter so, biege rechts ab und folge der Route.',
['watch_traffic_lightson'] = 'Pass auf den Verkehr auf und achte auf deine Beleuchtung!',
['stop_for_passing'] = '~r~Halte an für weitere Fahrzeuge!',
['hway_time'] = 'Es ist Zeit auf der Autobahn zu fahren! Geschwindigkeitsbegrenzung: %s km/h',
['gratz_stay_alert'] = 'Sehr gut, bleibe jedoch immer achtsam während der Fahrt!',
['passed_test'] = '~g~Du hast bestanden, herzlichen Glückwunsch!',
['failed_test'] = '~r~Du hast nicht bestanden, viel Glück beim nächsten Mal!',
['theory_test'] = 'Theoretische Fahrprüfung',
['road_test_car'] = 'Praktische Fahrprüfung',
['road_test_bike'] = 'Motorrad Fahrprüfung',
['road_test_truck'] = 'LKW Fahrprüfung',
['school_item'] = '$%s',
['driving_school'] = 'Fahrschule',
['press_open_menu'] = 'Drücke [~y~E~s~] um das Menü zu öffnen.',
['driving_school_blip'] = 'Fahrschule',
['driving_test_complete'] = 'Fahrschultest abgeschlossen.',
['driving_too_fast'] = '~r~Du fährst zu schnell, die Geschwindigkeitsbegrenzung ist: %s km/h!',
['errors'] = 'Fehler: ~r~%s/%s',
['you_damaged_veh'] = 'Du hast das Fahrzeug beschädigt.',
['not_enough_money'] = 'Du hast nicht genügend Geld.',
}
@@ -0,0 +1,6 @@
INSERT INTO `licenses` (`type`, `label`) VALUES
('dmv', 'Probeführerschein'),
('drive', 'Führerschein'),
('drive_bike', 'Motorradschein'),
('drive_truck', 'Lastkraftschein')
;
+31
View File
@@ -0,0 +1,31 @@
Locales ['nl'] = {
-- weed
['weed_pickupprompt'] = 'druk op [E] om de Cannabis plant te oogsten.',
['weed_quitprocess'] = 'druk op [E] om Proces Cannabis te stoppen.',
['weed_inventoryfull'] = 'heb je geen voorraadruimte meer voor Cannabis.',
['weed_processprompt'] = 'druk op [E] om Proces Cannabis te starten.',
['weed_processingstarted'] = 'Cannabis verwerken tot marihuana...',
['weed_processingfull'] = 'verwerking ~r~geannuleerd wegens volle voorraad!',
['weed_processingenough'] = 'u moet 3x Cannabis hebben om te kunnen verwerken.',
['weed_processed'] = 'je hebt 3x Cannabis verwerkt tot 1x Marihuana',
['weed_processingtoofar'] = 'het proces is geannuleerd omdat u het gebied verlaten heeft.',
-- drug dealer
['dealer_prompt'] = 'druk op [E] om met de ~r~Drugs Dealer te praten.',
['dealer_title'] = 'drugsdealer',
['dealer_item'] = '$%s',
['dealer_notenough'] = 'heb je daar niet genoeg van om te verkopen!',
['dealer_sold'] = 'je hebt %sx %s verkocht voor $%s',
-- license
['license_title'] = 'u moet een verwerkingsvergunning hebben om dit product te verwerken, die kunt u hier kopen.',
['license_no'] = 'nee',
['license_bought'] = 'je kocht de %s voor ~r~$%s',
['license_bought_fail'] = 'je kunt je geen %s veroorloven!',
['license_weed'] = 'Licentie voor wietverwerking',
-- blips
['blip_weedfield'] = 'onkruidveld',
['blip_weedprocessing'] = 'onkruidverwerking',
['blip_drugdealer'] = 'drugsdealer',
}
-3
View File
@@ -389,10 +389,7 @@ CreateThread(function()
currentPart = 'GetOutPoint'
if IsControlJustReleased(0, 38) and not menuIsShowed then
print("2")
ESX.TriggerServerCallback('esx_garage:getVehiclesInPound', function(vehicles)
print(1)
print(vehicles)
if next(vehicles) then
menuIsShowed = true
+25
View File
@@ -0,0 +1,25 @@
Locales["de"] = {
["parking_blip_name"] = 'Garage',
["Impound_blip_name"] = 'Abschlepphof',
["access_parking"] = 'Drücke [E] to access the car park.',
["access_Impound"] = 'Drücke [E] um den Abschlepphof zu öffnen.',
["park_veh"] = 'Drücke [E] um das Fahrzeug zu parken.',
["not_owning_veh"] = 'Du besitzt dieses Fahrzeug nicht!',
['veh_released'] = 'Du hast dein Fahrzeug erfolgreich abgeholt.',
['veh_Impound_released'] = 'Du hast dein Fahrzeug erfolgreich zurückgeholt.',
['veh_stored'] = 'Erfolgreich gelagertes Fahrzeug',
['veh_impounded'] = 'Beschlagnahmtes Fahrzeug',
['no_veh_parking'] = 'Kein Fahrzeug von dir ist hier eingelagert.',
['no_veh_impounded'] = 'Kein Fahrzeug von dir ist hier beschlagnahmt.',
['no_veh_Impound'] = 'Du hast keine beschlagnahmten Fahrzeuge.',
['veh_model'] = 'Model',
['veh_plate'] = 'Kennzeichen',
['veh_condition'] = 'Zustand',
['veh_action'] = 'Aktion',
['impound_action'] = 'Beschlagnahme',
['veh_exit'] = 'Fahrzeug zurückholen',
['pay_impound'] = 'Beschlagnahme bezahlen',
['veh_block'] = 'Fahrzeug kann nicht zurückgeholt werden da der Spawn blockiert ist.',
['pay_Impound_bill'] = 'Du hast $%s zum Abschlepphof bezahlt.',
['missing_money'] = 'Du hast nicht genug Geld.'
}
+13 -13
View File
@@ -1,16 +1,16 @@
Locales['de'] = {
['shop_robbery'] = 'ladenraub',
['press_to_rob'] = 'drücke [E] ~o~zum Ausrauben %s',
['robbery_timer'] = 'ladenraub: ~r~%s Sekunden übrig!',
['shop_robbery'] = 'Ladenraub',
['press_to_rob'] = 'Drücke [E] zum Ausrauben %s',
['robbery_timer'] = 'Ladenraub: %s Sekunden übrig!',
['recently_robbed'] = 'dieser Laden wurde bereits ausgeraubt. Bitte warte %s sekunden!',
['rob_in_prog'] = '~r~Raub im Gange bei: %s',
['started_to_rob'] = 'du hast einen Raub gestartet %s',
['alarm_triggered'] = 'der Alarm wurde ausgelöst',
['robbery_complete'] = '~r~Raub erfolgreich. Du ~o~hast $%s gestohlen',
['robbery_complete_at'] = '~r~Raub erfolgreich bei: %s',
['robbery_cancelled'] = 'der Raub wurde abgebrochen, du bekommst nichts!',
['robbery_cancelled_at'] = '~r~Raub abgebrochen bei: %s',
['min_police'] = 'es müssen mindestens %s Cops im Dienst sein um ein Raub zu starten.',
['robbery_already'] = '~r~Ein Raub ist bereits im gange.',
['no_threat'] = 'du machst den Ladenbesitzer keine Angst!',
['rob_in_prog'] = 'Raub im Gange bei: %s',
['started_to_rob'] = 'Du hast einen Raub gestartet %s',
['alarm_triggered'] = 'Der Alarm wurde ausgelöst',
['robbery_complete'] = 'Raub erfolgreich. Du hast $%s gestohlen',
['robbery_complete_at'] = 'Raub erfolgreich bei: %s',
['robbery_cancelled'] = 'Der Raub wurde abgebrochen, du bekommst nichts!',
['robbery_cancelled_at'] = 'Raub abgebrochen bei: %s',
['min_police'] = 'Es müssen mindestens %s Polizisten im Dienst sein um ein Raub zu starten.',
['robbery_already'] = 'Ein Raub ist bereits im gange.',
['no_threat'] = 'Du machst den Ladenbesitzer keine Angst!',
}
+16
View File
@@ -0,0 +1,16 @@
Locales['nl'] = {
['shop_robbery'] = 'Winkel Overval',
['press_to_rob'] = 'Druk op ~INPUT_CONTEXT~ om ~b~%s~s~ te ~o~overvallen~s~ ',
['robbery_timer'] = 'Winkel overval: nog ~r~%s~s~ seconden wachten',
['recently_robbed'] = 'Deze winkel is net overvallen . Wacht nog ~y~%s~s~ seconden voordat je deze winkel kan overvallen',
['rob_in_prog'] = '~r~Overval aan de gang bij de ~b~%s~s~',
['started_to_rob'] = 'Je bent begonnen met het overvallen van de ~y~%s~s~',
['alarm_triggered'] = 'Het alarm gaat af!',
['robbery_complete'] = '~r~De overval is succesvol ~s~, je hebt ~g~$%s~s~ ~o~buitgemaakt~s~',
['robbery_complete_at'] = '~r~De overval bij de ~y~%s~s~ is geslaagd',
['robbery_cancelled'] = 'De overval is gestopt!',
['robbery_cancelled_at'] = '~r~De overval bij de ~b~%s~s~ is gestopt!',
['min_police'] = 'Er moeten minimaal ~b~%s agenten~s~ in de stad aanwezig zijn.',
['robbery_already'] = '~r~Er is al een overval gaande.',
['no_threat'] = 'Je vormt geen Bedreiging voor de eigenaar',
}
+3 -1
View File
@@ -1,5 +1,7 @@
Locales['de'] = {
['new_job'] = 'Du hast einen neuen Job!',
['access_job_center'] = 'Drücke ~INPUT_PICKUP~ um das Arbeitsamt zu öffnen.',
['access_job_center'] = 'Drücke [E] um das Arbeitsamt zu öffnen.',
['job_center'] = 'Arbeitsamt',
["blip_text"] = "Job Center"
}
@@ -0,0 +1,6 @@
Locales['it'] = {
['new_job'] = 'Nuovo lavoro: ~b~%s~s~ !',
['access_job_center'] = 'Premi ~b~[E]~s~ per aprire la scelta dei lavori.',
['job_center'] = 'Seleziona un lavoro.',
["blip_text"] = "Centro lavori"
}
@@ -0,0 +1,6 @@
Locales['nl'] = {
['new_job'] = 'Nieuwe baan: ~b~%s~s~ !',
['access_job_center'] = 'Klik op ~b~[E]~s~ om het uitzendbureau te openen.',
['job_center'] = 'Selecteer een baan.',
["blip_text"] = "Uitzendbureau"
}
+1 -1
View File
@@ -41,7 +41,7 @@ AddEventHandler('esx_joblisting:setJob', function(job)
if ESX.DoesJobExist(job, 0) then
xPlayer.setJob(job, 0)
else
print("[^1ERROR^7] Tried Setting User To Invalid Job - ^5"..job .."^7!")
print("[^1ERROR^7] Tried Setting User ^5".. source .. "^7 To Invalid Job - ^5"..job .."^7!")
end
end
end)
+39 -39
View File
@@ -1,11 +1,11 @@
Locales['de'] = {
-- Global menus
['cloakroom'] = 'Umkleide',
['cloak_change'] = 'Drücke ~INPUT_PICKUP~ to change clothes.',
['cloak_change'] = 'Drücke [E] to change clothes.',
['citizen_wear'] = 'Zivilkleidung',
['job_wear'] = 'Arbeitskleidung',
['bank_deposit_returned'] = 'Ein Pfand über $%s wurde dir zurückgegeben.',
['bank_deposit_taken'] = 'Ein Pfand über ~r~$%s wurde von dir genommen.',
['bank_deposit_taken'] = 'Ein Pfand über $%s wurde von dir genommen.',
['caution_afford'] = 'Du kannst die Kaution über $%s nicht bezahlen',
['foot_work'] = 'Du musst dafür zu Fuß sein.',
['next_point'] = 'Gehe zum nächsten Schritt nach diesem.',
@@ -15,101 +15,101 @@ Locales['de'] = {
['max_limit'] = 'Du kannst nicht mehr %s tragen',
['not_enough'] = 'Du hast nicht genug %s um diese Aufgabe weiterhin zu erledigen.',
['spawn_veh'] = 'Fahrzeug spawnen',
['spawn_veh_button'] = 'Drücke ~INPUT_PICKUP~ um ein Lieferfahrzeug zu holen.',
['spawn_truck_button'] = 'Drücke ~INPUT_PICKUP~ um einen Truck zu spawnen.',
['spawn_veh_button'] = 'Drücke [E] um ein Lieferfahrzeug zu holen.',
['spawn_truck_button'] = 'Drücke [E] um einen Truck zu spawnen.',
['spawn_blocked'] = 'Ein Fahrzeug blockiert den Spawnpoint!',
['service_vh'] = 'Service Fahrzeug',
['return_vh'] = 'Fahrzeugrückgabe',
['return_vh_button'] = 'Drücke ~INPUT_PICKUP~ um das Fahrzeug zurückzugeben.',
['return_vh_button'] = 'Drücke [E] um das Fahrzeug zurückzugeben.',
['delivery_point'] = 'Lieferpunkt',
['delivery'] = 'Lieferung',
['public_enter'] = 'Drücke ~INPUT_PICKUP~ um das Gebäude zu betreten.',
['public_leave'] = 'Drücke ~INPUT_PICKUP~ um das Gebäude zu verlassen.',
['public_enter'] = 'Drücke [E] um das Gebäude zu betreten.',
['public_leave'] = 'Drücke [E] um das Gebäude zu verlassen.',
-- Lumber Jack job
['lj_locker_room'] = 'Umkleide',
['lj_mapblip'] = 'Holzstapel',
['lj_wood'] = 'Holz',
['lj_pickup'] = 'Drücke ~INPUT_PICKUP~ um Holz zu sammeln.',
['lj_pickup'] = 'Drücke [E] um Holz zu sammeln.',
['lj_woodcutting'] = 'Holzverarbeitung',
['lj_cutwood_button'] = 'Drücke ~INPUT_PICKUP~ um das Holz zu schneiden.',
['lj_cutwood_button'] = 'Drücke [E] um das Holz zu schneiden.',
['lj_board'] = 'Bretter',
['lj_planks'] = 'Holz verarbeiten',
['lj_cutwood'] = 'Holz schneiden',
['lj_pick_boards'] = 'Drücke ~INPUT_PICKUP~ um Bretter zu bekommen.',
['lj_deliver_button'] = 'Drücke ~INPUT_PICKUP~ um die Bretter zu liefern.',
['lj_pick_boards'] = 'Drücke [E] um Bretter zu bekommen.',
['lj_deliver_button'] = 'Drücke [E] um die Bretter zu liefern.',
-- Fisherman
['fm_fish_locker'] = 'Umkleide',
['fm_fish'] = 'Fisch',
['fm_fish_area'] = 'Fischerzone',
['fm_fish_button'] = 'Drücke ~INPUT_PICKUP~ um zu fischen.',
['fm_fish_button'] = 'Drücke [E] um zu fischen.',
['fm_spawnboat_title'] = 'Boot spawnen',
['fm_spawnboat'] = 'Drücke ~INPUT_PICKUP~ um ein Boot auszuparken.',
['fm_spawnboat'] = 'Drücke [E] um ein Boot auszuparken.',
['fm_boat_title'] = 'Boot',
['fm_boat_return_title'] = 'Bootsrückgabe',
['fm_boat_return_button'] = 'Drücke ~INPUT_PICKUP~ um das Boot zurückzugeben.',
['fm_deliver_fish'] = 'Drücke ~INPUT_PICKUP~ um den Fisch zu liefern.',
['fm_boat_return_button'] = 'Drücke [E] um das Boot zurückzugeben.',
['fm_deliver_fish'] = 'Drücke [E] um den Fisch zu liefern.',
-- Fuel
['f_oil_refiner'] = 'Umkleide',
['f_drill_oil'] = 'Nach Öl bohren',
['f_fuel'] = 'Öl',
['f_drillbutton'] = 'Drücke ~INPUT_PICKUP~ um nach Öl zu bohren.',
['f_drillbutton'] = 'Drücke [E] um nach Öl zu bohren.',
['f_fuel_refine'] = 'Öl verarbeiten',
['f_refine_fuel_button'] = 'Drücke ~INPUT_PICKUP~ zum verarbeiten.',
['f_refine_fuel_button'] = 'Drücke [E] zum verarbeiten.',
['f_fuel_mixture'] = 'Öl mischen',
['f_gas'] = 'Benzin',
['f_fuel_mixture_button'] = 'Drücke ~INPUT_PICKUP~ um das Öl zu mixen.',
['f_fuel_mixture_button'] = 'Drücke [E] um das Öl zu mixen.',
['f_deliver_gas'] = 'Benzin liefern',
['f_deliver_gas_button'] = 'Drücke ~INPUT_PICKUP~ um Benzin zu liefern.',
['f_deliver_gas_button'] = 'Drücke [E] um Benzin zu liefern.',
-- Miner
['m_miner_locker'] = 'Umkleide',
['m_rock'] = 'Stein',
['m_pickrocks'] = 'Drücke ~INPUT_PICKUP~ um Stein abzubauen.',
['m_pickrocks'] = 'Drücke [E] um Stein abzubauen.',
['m_washrock'] = 'Steine waschen',
['m_rock_button'] = 'Drücke ~INPUT_PICKUP~ um die Steine zu waschen.',
['m_rock_button'] = 'Drücke [E] um die Steine zu waschen.',
['m_rock_smelting'] = 'Steine schmelzen',
['m_copper'] = 'Kupfer',
['m_sell_copper'] = 'Kupfer Verkäufer',
['m_deliver_copper'] = 'Drücke ~INPUT_PICKUP~ um Kupfer zu liefern.',
['m_deliver_copper'] = 'Drücke [E] um Kupfer zu liefern.',
['m_iron'] = 'Eisen',
['m_sell_iron'] = 'Eisen Verkäufer',
['m_deliver_iron'] = 'Drücke ~INPUT_PICKUP~ um Eisen zu liefern.',
['m_deliver_iron'] = 'Drücke [E] um Eisen zu liefern.',
['m_gold'] = 'Gold',
['m_sell_gold'] = 'Gold verkaufen',
['m_deliver_gold'] = 'Drücke ~INPUT_PICKUP~ um Gold zu verkaufen.',
['m_deliver_gold'] = 'Drücke [E] um Gold zu verkaufen.',
['m_diamond'] = 'Diamant',
['m_sell_diamond'] = 'Diamanten verkaufen',
['m_deliver_diamond'] = 'Drücke ~INPUT_PICKUP~ um die Diamanten zu verkaufen.',
['m_melt_button'] = 'Drücke ~INPUT_PICKUP~ um die Steine zu schmelzen.',
['m_deliver_diamond'] = 'Drücke [E] um die Diamanten zu verkaufen.',
['m_melt_button'] = 'Drücke [E] um die Steine zu schmelzen.',
-- Reporter
['reporter_name'] = 'san Andreas Times',
['reporter_garage'] = 'Drücke ~INPUT_PICKUP~ to go down to the garage.',
['reporter_garage'] = 'Drücke [E] to go down to the garage.',
-- Slaughterer
['s_slaughter_locker'] = 'Umkleide',
['s_hen'] = 'Hühner',
['s_alive_chicken'] = 'lebende Hühner',
['s_catch_hen'] = 'Drücke ~INPUT_PICKUP~ um Hühner zu fangen.',
['s_catch_hen'] = 'Drücke [E] um Hühner zu fangen.',
['s_slaughtered_chicken'] = 'Hühner verpacken',
['s_chop_animal'] = 'Drücke ~INPUT_PICKUP~ um die Hühner zu schneiden.',
['s_slaughtered'] = 'SChlachthaus',
['s_chop_animal'] = 'Drücke [E] um die Hühner zu schneiden.',
['s_slaughtered'] = 'Schlachthaus',
['s_package'] = 'Verpackung',
['s_packagechicken'] = 'Hühnchen in Verpackung',
['s_unpackaged'] = 'Verpackbereite Hühnchen',
['s_unpackaged_button'] = 'Drücke ~INPUT_PICKUP~ um die Hühnchen zu verpacken.',
['s_deliver'] = 'Drücke ~INPUT_PICKUP~ um die Hühnchen zu liefern.',
['s_unpackaged_button'] = 'Drücke [E] um die Hühnchen zu verpacken.',
['s_deliver'] = 'Drücke [E] um die Hühnchen zu liefern.',
-- Dress Designer
['dd_dress_locker'] = 'dress Designer\'s Locker Room',
['dd_wool'] = 'wool',
['dd_pickup'] = 'Drücke ~INPUT_PICKUP~ to retrieve wool.',
['dd_fabric'] = 'fabric',
['dd_makefabric'] = 'Drücke ~INPUT_PICKUP~ to make fabric.',
['dd_clothing'] = 'clothing',
['dd_makeclothing'] = 'Drücke ~INPUT_PICKUP~ to retrieve clothing.',
['dd_deliver_clothes'] = 'Drücke ~INPUT_PICKUP~ to deliver the clothes.',
['dd_wool'] = 'wolle',
['dd_pickup'] = 'Drücke [E] um Wolle zu gewinnen.',
['dd_fabric'] = 'stoff',
['dd_makefabric'] = 'Drücke [E] zur Herstellung von Stoffen.',
['dd_clothing'] = 'kleidung',
['dd_makeclothing'] = 'Drücke [E] um Kleidung herzustellen.',
['dd_deliver_clothes'] = 'Drücke [E] um Kleidung zu liefern.',
}
+3 -3
View File
@@ -1,10 +1,10 @@
Locales['de'] = {
['by_default'] = 'Standard',
['installed'] = 'installed',
['installed'] = 'Installiert',
['already_own'] = 'Sie besitzen bereits: %s',
['not_enough_money'] = 'du kannst dir diese mod nicht leisten',
['not_enough_money'] = 'Du kannst dir diese mod nicht leisten',
['purchased'] = 'Du hast diese Mod gekauft!',
['press_custom'] = 'Drücke ~INPUT_PICKUP~ um dein Fahrzeug auf zu Tunen',
['press_custom'] = 'Drücke [E] um dein Fahrzeug auf zu Tunen',
['level'] = 'level %s',
['neon'] = 'Neon',
['blip_name'] = 'Tuning',
+1 -1
View File
@@ -45,7 +45,7 @@ AddEventHandler('esx_lscustom:refreshOwnedVehicle', function(vehicleProps)
if vehicleProps.model == vehicle.model then
MySQL.update('UPDATE owned_vehicles SET vehicle = ? WHERE plate = ?', {json.encode(vehicleProps), vehicleProps.plate})
else
print(('esx_lscustom: %s attempted to upgrade vehicle with mismatching vehicle model!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To upgrade with mismatching vehicle model'):format(xPlayer.source))
end
end
end)
@@ -0,0 +1,85 @@
Locales['de'] = {
['mechanic'] = 'Mechaniker',
['drive_to_indicated'] = 'Fahre zum markierten Bereich',
['mission_canceled'] = 'Mission abgebrochen',
['vehicle_list'] = 'Fahrzeugliste',
['work_wear'] = 'Arbeitskleidung',
['civ_wear'] = 'Zivilkleidung',
['deposit_stock'] = 'Bestand Einzahlen',
['withdraw_stock'] = 'Verfügbar Abheben',
['boss_actions'] = 'Inhaber Aktionen',
['service_vehicle'] = 'Service Fahrzeug',
['flat_bed'] = 'Pritschenwagen',
['tow_truck'] = 'Abschleppwagen',
['service_full'] = 'Gesamt Service: ',
['open_actions'] = 'Drücke [E] um Menü zu öffnen',
['harvest'] = 'Sammeln',
['harvest_menu'] = 'Drücke [E] um Farm Menü aufzurufen',
['not_experienced_enough'] = 'Du bist nicht erfahren genug um dies zu tun!',
['gas_can'] = 'Benzinkanister',
['repair_tools'] = 'Reparaturwerkzeug',
['body_work_tools'] = 'Karosseriewerkzeug',
['blowtorch'] = 'Schweißgerät',
['repair_kit'] = 'Reparatur Kit',
['body_kit'] = 'Karosserie Kit',
['craft'] = 'Herstellen',
['craft_menu'] = 'Drücke [E] um Herstellungsmenü zu öffnen.',
['billing'] = 'Rechnungen',
['hijack'] = 'Aufgebrochen',
['repair'] = 'Reparieren',
['clean'] = 'Reinigen',
['imp_veh'] = 'Fahrzeug einziehen',
['place_objects'] = 'Objekte platzieren',
['invoice_amount'] = 'Rechnungsbetrag',
['amount_invalid'] = 'Ungültiger Betrag',
['no_players_nearby'] = 'Es ist kein Spieler in der Nähe',
['no_vehicle_nearby'] = 'Es ist kein Fahrzeug in der Nähe',
['inside_vehicle'] = 'Du musst vorher aussteigen!',
['vehicle_unlocked'] = 'Fahrzeug geöffnet',
['vehicle_repaired'] = 'Fahrzeug repariert',
['vehicle_cleaned'] = 'Fahrzeug gereinigt',
['vehicle_impounded'] = 'Fahrzeug wurde eingezogen',
['must_seat_driver'] = 'Setz dich als Fahrer hinein!',
['must_near'] = 'In die Nähe des Fahrzeugs stellen was eingezogen werden soll',
['vehicle_success_attached'] = 'Fahrzeug fixiert',
['please_drop_off'] = 'Stelle Fahrzeug in der Garage ab',
['cant_attach_own_tt'] = 'Du kannst nicht den eigenen Abschleppwagen fixieren',
['no_veh_att'] = 'Kein Fahrzeug zum fixieren gefunden',
['not_right_veh'] = 'Falsches Fahrzeug',
['veh_det_succ'] = 'Fahrzeug gelöst!',
['imp_flatbed'] = 'Nicht möglich! Du benötigst einen Pritschenwagen',
['objects'] = 'Objekte',
['roadcone'] = 'Verkehrskegel',
['toolbox'] = 'Werkzeugkasten',
['mechanic_stock'] = 'Lager Mechaniker',
['quantity'] = 'Anzahl',
['invalid_quantity'] = 'Anzahl ungültig!',
['inventory'] = 'Inventar',
['veh_unlocked'] = 'Fahrzeug geöffnet',
['hijack_failed'] = 'Aufbrechen gescheitert',
['body_repaired'] = 'Karosserie repariert',
['veh_repaired'] = 'Fahrzueg repariert',
['veh_stored'] = 'Drücke [E] um Fahrzeug einzuparken',
['press_remove_obj'] = 'Drücke [E] um Objekt zu entfernen',
['please_tow'] = 'Fahrzeug abschleppen',
['wait_five'] = 'Warte 5 Minuten',
['must_in_flatbed'] = 'Du musst dich im Pritschenwagen befinden',
['mechanic_customer'] = 'Kunde',
['you_do_not_room'] = 'Kein Platz mehr',
['recovery_gas_can'] = 'Abholung Bezinkanister...',
['recovery_repair_tools'] = 'Abholung Reparaturwerkzeug...',
['recovery_body_tools'] = 'Abholung Karosseriewerkzeug...',
['not_enough_gas_can'] = 'Du hast nicht genug Benzinkanister',
['assembling_blowtorch'] = 'Schweißgerät zusammenbauen...',
['not_enough_repair_tools'] = 'Du hast nicht genug Reparaturwerkzeuge.',
['assembling_repair_kit'] = 'Reparatur Kit zusammenbauen...',
['not_enough_body_tools'] = 'Du hast nicht genug Karosseriewerkzeug',
['assembling_body_kit'] = 'Karosseriewerkzeug zusammenbauen...',
['your_comp_earned'] = 'Deine Firma hat $ verdient',
['you_used_blowtorch'] = 'Schweißgerät genutzt',
['you_used_repair_kit'] = 'Reparatur Kit genutzt',
['you_used_body_kit'] = 'Karosserie Kit genutzt',
['have_withdrawn'] = 'Du hast x%s %s abgehoben',
['have_deposited'] = 'Du hast x%s %s eingezahlt',
['player_cannot_hold'] = 'Kein Platz im Inventar!',
}
@@ -0,0 +1,86 @@
Locales['it'] = {
['mechanic'] = 'meccanico',
['drive_to_indicated'] = 'guida fino alla posizione indicata.',
['mission_canceled'] = 'missione annullata',
['vehicle_list'] = 'elenco veicoli',
['work_wear'] = 'abbigliamento da lavoro',
['civ_wear'] = 'abiti civili',
['deposit_stock'] = 'deposito',
['withdraw_stock'] = 'ritira',
['boss_actions'] = 'azioni boss',
['service_vehicle'] = 'veicoli di servizio',
['flat_bed'] = 'flatbed',
['tow_truck'] = 'carro attrezzi',
['service_full'] = 'servizio completo: ',
['open_actions'] = 'premi [E] per accedere al menu.',
['harvest'] = 'raccolto',
['harvest_menu'] = 'premi [E] per accedere al menu raccolto.',
['not_experienced_enough'] = 'non hai abbastanza esperienza per eseguire questa azione.',
['gas_can'] = 'bombola del gas',
['repair_tools'] = 'riparazione strumenti',
['body_work_tools'] = 'strumenti carrozzeria',
['blowtorch'] = 'fiamma ossidrica',
['repair_kit'] = 'kit di riparazione',
['body_kit'] = 'body Kit',
['craft'] = 'creazione',
['craft_menu'] = 'premi [E] per accedere al menu di creazione.',
['billing'] = 'fattura',
['hijack'] = 'trasportare',
['repair'] = 'riparazione',
['clean'] = 'pulito',
['imp_veh'] = 'sequestrato',
['place_objects'] = 'posiziona oggetti',
['invoice_amount'] = 'importo fattura',
['amount_invalid'] = 'importo non valido',
['no_players_nearby'] = 'nessun giocatore nelle vicinanze',
['no_vehicle_nearby'] = 'nessun veicolo nelle vicinanze',
['inside_vehicle'] = 'non puoi farlo dall\'interno del veicolo!',
['vehicle_unlocked'] = 'il veicolo è stato sbloccato',
['vehicle_repaired'] = 'il veicolo è stato riparato',
['vehicle_cleaned'] = 'il veicolo è stato pulito',
['vehicle_impounded'] = 'il veicolo è stato sequestrato',
['must_seat_driver'] = 'devi essere al posto di guida!',
['must_near'] = 'devi essere vicino il veicolo per sequestrarlo.',
['vehicle_success_attached'] = 'veicolo collegato con successo',
['please_drop_off'] = 'perfavore lascia il veicolo al garage',
['cant_attach_own_tt'] = 'non puoi attaccare il tuo carro attrezzi',
['no_veh_att'] = 'non c\'è nessu veicolo da attaccare',
['not_right_veh'] = 'questo non è il veicolo giusto',
['not_right_place'] = 'questo non è il posto giusto',
['veh_det_succ'] = 'veicolo staccato con successo!',
['imp_flatbed'] = 'azione impossibile! hai bisogno di un pianale per caricare il veicolo',
['objects'] = 'oggetti',
['roadcone'] = 'cono stradale',
['toolbox'] = 'cassetta degli attrezzi',
['mechanic_stock'] = 'deposito meccanico',
['quantity'] = 'quantità',
['invalid_quantity'] = 'quantità non valida',
['inventory'] = 'inventario',
['veh_unlocked'] = 'veicolo sbloccato',
['hijack_failed'] = 'traino fallito',
['body_repaired'] = 'carrozzeria riparata',
['veh_repaired'] = 'veicolo riparato',
['veh_stored'] = 'press [E] per depositare il veicolo.',
['press_remove_obj'] = 'premi [E] per rimuovere',
['please_tow'] = 'perfavore traina il veicolo',
['wait_five'] = 'devi attendere 5 minuti',
['must_in_flatbed'] = 'devi essere in un flatbed per avviare la missione',
['mechanic_customer'] = 'cliente meccanico',
['you_do_not_room'] = 'non hai più spazio',
['recovery_gas_can'] = 'recupero bomboletta di gas...',
['recovery_repair_tools'] = 'recupero degli strumenti di riparazione...',
['recovery_body_tools'] = 'recupero body tools...',
['not_enough_gas_can'] = 'non hai abbastanza bomboletta di gas.',
['assembling_blowtorch'] = 'montaggio fiamma ossidrica...',
['not_enough_repair_tools'] = 'non hai abbastanza strumenti di riparazione.',
['assembling_repair_kit'] = 'assemblaggio kit di riparazione...',
['not_enough_body_tools'] = 'non hai abbastanza body tools.',
['assembling_body_kit'] = 'Assemblaggio Body Kit...',
['your_comp_earned'] = 'la tua azienda ha guadagnato $',
['you_used_blowtorch'] = 'hai usato una fiamma ossidrica',
['you_used_repair_kit'] = 'hai usato un Kit di riparazione',
['you_used_body_kit'] = 'hai usato un Body Kit',
['have_withdrawn'] = 'hai prelevato x%s %s',
['have_deposited'] = 'hai depositato x%s %s',
['player_cannot_hold'] = 'non hai abbastanza spazio libero nel tuo inventario!',
}
@@ -0,0 +1,32 @@
INSERT INTO `addon_account` (name, label, shared) VALUES
('society_mechanic', 'Monteur', 1)
;
INSERT INTO `addon_inventory` (name, label, shared) VALUES
('society_mechanic', 'Monteur', 1)
;
INSERT INTO `datastore` (name, label, shared) VALUES
('society_mechanic', 'Monteur', 1)
;
INSERT INTO `jobs` (name, label) VALUES
('mechanic', 'Monteur')
;
INSERT INTO `job_grades` (job_name, grade, name, label, salary, skin_male, skin_female) VALUES
('mechanic',0,'recrue','Stagair',12,'{}','{}'),
('mechanic',1,'novice','Personeel',24,'{}','{}'),
('mechanic',2,'experimente','Ervaard',36,'{}','{}'),
('mechanic',3,'chief','Supervisor',48,'{}','{}'),
('mechanic',4,'boss','Baas',0,'{}','{}')
;
INSERT INTO `items` (name, label, weight) VALUES
('gazbottle', 'Gas Fles', 2),
('fixtool', 'Repareer set', 2),
('carotool', 'Tools', 2),
('blowpipe', 'Las Apparaat', 2),
('fixkit', 'Repareer set', 3),
('carokit', 'Body set', 3)
;
@@ -0,0 +1,5 @@
Locales['de'] = {
['used_beer'] = 'Du hast 1x Bier getrunken',
}
+13
View File
@@ -0,0 +1,13 @@
Locales['nl'] = {
['new_message'] = 'Je hebt een bericht ontvangen: %s',
['press_take_call'] = '%s - Klik op [E] om op te nemen',
['taken_call'] = '%s heeft opgenomen',
['gps_position'] = 'de bestemming is op je navigatie gezet',
['message_sent'] = 'het bericht is verstuurd',
['cannot_add_self'] = 'je kan jezelf niet toevoegen!',
['number_in_contacts'] = 'dit nummer staat al in je contacten',
['contact_added'] = 'je hebt een contact toegevoegd!',
['contact_removed'] = 'je hebt een contact verwijderd!',
['number_not_assigned'] = 'het nummer is nog niet toegewezen!',
['invalid_number'] = 'dat is een ongeldig nummer!',
}
+85 -85
View File
@@ -3,64 +3,64 @@ Locales['de'] = {
['cloakroom'] = 'Garderobe',
['citizen_wear'] = 'Zivilkleidung',
['police_wear'] = 'Arbeitskleidung',
['gilet_wear'] = 'orange reflective jacket',
['bullet_wear'] = 'bulletproof vest',
['no_outfit'] = 'there\'s no uniform that fits you!',
['gilet_wear'] = 'orangefarbene reflektierende Jacke',
['bullet_wear'] = 'kugelsichere Weste',
['no_outfit'] = 'Es gibt keine Uniform die dir passt.',
['open_cloackroom'] = 'Drücke [E] um dich umzuziehen',
-- Armory
['remove_object'] = 'take object',
['deposit_object'] = 'deposit object',
['remove_object'] = 'Objekt nehmen',
['deposit_object'] = 'Objekt einlagern',
['get_weapon'] = 'Waffen holen',
['put_weapon'] = 'Waffen bringen',
['buy_weapons'] = 'Waffen kaufen',
['armory'] = 'Waffenkammer',
['open_armory'] = 'Drücke [E] um die Waffenkammer zu öffnen',
['armory_owned'] = 'owned',
['armory_free'] = 'free',
['armory_owned'] = 'eigentum',
['armory_free'] = 'gratis',
['armory_item'] = '$%s',
['armory_weapontitle'] = 'armory - Buy weapon',
['armory_componenttitle'] = 'armory - Weapon attatchments',
['armory_bought'] = 'you bought an %s for $%s',
['armory_money'] = 'you cannot afford that weapon',
['armory_hascomponent'] = 'you have that attatchment equiped!',
['get_weapon_menu'] = 'armory - Withdraw Weapon',
['put_weapon_menu'] = 'armory - Store Weapon',
['armory_weapontitle'] = 'Waffenkammer - Waffe kaufen',
['armory_componenttitle'] = 'Waffenkammer - Waffen attatchments',
['armory_bought'] = 'Du hast dir %s für $%s gekauft',
['armory_money'] = 'Du kannst dir die Waffe nicht leisten',
['armory_hascomponent'] = 'Du hast das attchment bereits!',
['get_weapon_menu'] = 'Arsenal - Waffe auslagern',
['put_weapon_menu'] = 'Arsenal - Waffe einlagern',
-- Vehicles
['vehicle_menu'] = 'vehicle',
['vehicle_blocked'] = 'all available spawn points are currently blocked!',
['garage_prompt'] = 'press [E] to access the Vehicle Actions.',
['garage_title'] = 'vehicle Actions',
['garage_stored'] = 'stored',
['garage_notstored'] = 'not in garage',
['garage_storing'] = 'we\'re attempting to remove the vehicle, make sure no players are around it.',
['garage_has_stored'] = 'the vehicle has been stored in your garage',
['garage_has_notstored'] = 'no nearby owned vehicles were found',
['garage_notavailable'] = 'your vehicle is not stored in the garage.',
['garage_blocked'] = 'there\'s no available spawn points!',
['garage_empty'] = 'you don\'t have any vehicles in your garage.',
['garage_released'] = 'your vehicle has been released from the garage.',
['garage_store_nearby'] = 'there is no nearby vehicles.',
['garage_storeditem'] = 'open garage',
['garage_storeitem'] = 'store vehicle in garage',
['garage_buyitem'] = 'vehicle shop',
['garage_notauthorized'] = 'you\'re not authorized to buy this kind of vehicles.',
['helicopter_prompt'] = 'press [E] to access the Helicopter Actions.',
['vehicle_menu'] = 'Fahrzeug',
['vehicle_blocked'] = 'alle verfügbaren Spawnpunkte sind derzeit blockiert!',
['garage_prompt'] = 'Drücke [E] um das Garagen Menü zu öffnen.',
['garage_title'] = 'Fahrzeug aktionen',
['garage_stored'] = 'eingelagert',
['garage_notstored'] = 'nicht in der Garage',
['garage_storing'] = 'Wir versuchen, das Fahrzeug zu entfernen, stelle sicher, dass sich keine Spieler in der Nähe des Fahrzeugs befinden.',
['garage_has_stored'] = 'das Fahrzeug wurde in deiner Garage abgestellt',
['garage_has_notstored'] = 'Keine eigenen Fahrzeuge in der nähe gefunden',
['garage_notavailable'] = 'Dein Fahrzeug ist nicht in der Garage abgestellt.',
['garage_blocked'] = 'Es gibt keine verfügbaren Spawn-Punkte!',
['garage_empty'] = 'Du hast keine Fahrzeuge in der Garage.',
['garage_released'] = 'Ihr Fahrzeug aus der Garage entlassen wurde.',
['garage_store_nearby'] = 'Es gibt keine Fahrzeuge in der Nähe.',
['garage_storeditem'] = 'Garage öffnen',
['garage_storeitem'] = 'Fahrzeug einparken',
['garage_buyitem'] = 'Fahrzeugshop',
['garage_notauthorized'] = 'Du bist nicht berechtigt, diese Art von Fahrzeugen zu kaufen..',
['helicopter_prompt'] = 'Drücken sie [E] um das Hubschrauber Menü zu öffnen.',
['shop_item'] = '$%s',
['vehicleshop_title'] = 'vehicle Shop',
['vehicleshop_confirm'] = 'do you want to buy this vehicle?',
['vehicleshop_bought'] = 'you have bought %s for ~r~$%s',
['vehicleshop_money'] = 'you cannot afford that vehicle',
['vehicleshop_awaiting_model'] = 'the vehicle is currently DOWNLOADING & LOADING please wait',
['confirm_no'] = 'no',
['confirm_yes'] = 'yes',
['vehicleshop_title'] = 'Fahrzeug Shop',
['vehicleshop_confirm'] = 'Willst du dieses Fahrzeug kaufen?',
['vehicleshop_bought'] = 'Du hast %s gekauft für $%s',
['vehicleshop_money'] = 'Du kannst dir das Fahrzeug nicht leisten',
['vehicleshop_awaiting_model'] = 'das Fahrzeug wird gerade HERUNTERGELADEN & LÄDT bitte warten',
['confirm_no'] = 'nein',
['confirm_yes'] = 'ja',
-- Service
['service_max'] = 'you cannot enter service, max officers in service: %s/%s',
['service_not'] = 'you have not entered service! You\'ll have to get changed first.',
['service_anonunce'] = 'service information',
['service_in'] = 'you\'ve entered service, welcome!',
['service_in_announce'] = 'operator %s has entered service!',
['service_out'] = 'you have left service.',
['service_out_announce'] = 'operator %s has left their service.',
['service_max'] = 'Du kannst den Dienst nicht antreten, maximale Anzahl von Beamten im Dienst: %s/%s',
['service_not'] = 'Du bist noch nicht im Dienst! Du musst dich erst umziehen.',
['service_anonunce'] = 'Service-Informationen',
['service_in'] = 'Du hast deinen Dienst angetreten, willkommen!',
['service_in_announce'] = 'Operator %s hat seinen Dienst aufgenommen!',
['service_out'] = 'Du hast den Dienst verlassen.',
['service_out_announce'] = 'Operator %s hat seinen Dienst beendet.',
-- Action Menu
['citizen_interaction'] = 'Zivilistenaktionen',
['vehicle_interaction'] = 'Fahrzeuginteraktionen',
@@ -71,28 +71,28 @@ Locales['de'] = {
['handcuff'] = 'Festnehmen / Freilassen',
['drag'] = 'drag',
['put_in_vehicle'] = 'In Fahrzeug setzen',
['out_the_vehicle'] = 'take out of vehicle',
['out_the_vehicle'] = 'aus dem Fahrzeug nehmen',
['fine'] = 'Strafe',
['unpaid_bills'] = 'manage unpaid bills',
['license_check'] = 'manage license',
['license_revoke'] = 'revoke license',
['license_revoked'] = 'your %s has been revoked!',
['licence_you_revoked'] = 'you revoked a %s which belonged to %s',
['unpaid_bills'] = 'Unbezahlte Rechnungen verwalten',
['license_check'] = 'Lizenz verwalten',
['license_revoke'] = 'Lizenz wegnehmen',
['license_revoked'] = 'Deine %s wurde entzogen',
['licence_you_revoked'] = 'Du hast %s widerrufen, die %s gehörte',
['no_players_nearby'] = 'keine Spieler in der Nähe',
['being_searched'] = 'you are being searched by the Police',
['being_searched'] = 'Du wirst von der Polizei durchsucht',
-- Vehicle interaction
['vehicle_info'] = 'Fahrzeug Info',
['pick_lock'] = 'Fahrzeug öffnen',
['vehicle_unlocked'] = 'Fahrzeug offen',
['no_vehicles_nearby'] = 'Keine Fahrzeuge in der Nähe',
['impound'] = 'impound vehicle',
['impound_prompt'] = 'press [E] to cancel the impound',
['impound_canceled'] = 'you canceled the impound',
['impound_canceled_moved'] = 'the impound has been canceled because the vehicle moved',
['impound_successful'] = 'you have impounded the vehicle',
['search_database'] = 'vehicle information',
['search_database_title'] = 'vehicle information - search with registration number',
['search_database_error_invalid'] = 'that is ~r~not a valid registration number',
['impound'] = 'beschlagnahmtes fahrzeug',
['impound_prompt'] = 'Drücken Sie [E], um die Beschlagnahmung abzubrechen.',
['impound_canceled'] = 'Du hast die Beschlagnahmung abgebrochen',
['impound_canceled_moved'] = 'die Beschlagnahme wurde aufgehoben, weil das Fahrzeug bewegt wurde',
['impound_successful'] = 'Du hast das Fahrzeug beschlagnahmt',
['search_database'] = 'Fahrzeug informationen',
['search_database_title'] = 'Fahrzeuginformationen - Suche über das amtliche Kennzeichen',
['search_database_error_invalid'] = 'die keine gültige Registrierungsnummer ist',
-- Traffic interaction
['traffic_interaction'] = 'Straßeninteraktionen',
['cone'] = 'Hütchen',
@@ -103,49 +103,49 @@ Locales['de'] = {
-- ID Card Menu
['name'] = 'name: %s',
['job'] = 'job: %s',
['sex'] = 'sex: %s',
['sex'] = 'geschlecht: %s',
['dob'] = 'DOB: %s',
['height'] = 'height: %s',
['height'] = 'größe: %s',
['bac'] = 'BAC: %s',
['unknown'] = 'unknown',
['male'] = 'male',
['female'] = 'female',
['male'] = 'männlich',
['female'] = 'weiblich',
-- Body Search Menu
['guns_label'] = '--- Waffen ---',
['inventory_label'] = '--- Inventar ---',
['license_label'] = ' --- Licenses ---',
['license_label'] = ' --- Lizenzen ---',
['confiscate'] = 'konfeszieren %s',
['confiscate_weapon'] = 'confiscate %s with %s bullets',
['confiscate_inv'] = 'konfeziere %sx %s',
['confiscate_dirty'] = 'schwarzgeld konfesziert: <span style="color:red;">$%s</span>',
['you_confiscated'] = 'you confiscated %sx %s from %s',
['got_confiscated'] = '%sx %s were confiscated by %s',
['you_confiscated_account'] = 'you confiscated $%s (%s) from %s',
['got_confiscated_account'] = '$%s (%s) was confiscated by %s',
['you_confiscated_weapon'] = 'you confiscated %s from %s with ~o~%s bullets',
['got_confiscated_weapon'] = 'your %s with ~o~%s bullets was confiscated by %s',
['confiscate_weapon'] = 'konfisziere %s mit %s kugeln',
['confiscate_inv'] = 'konfisziere %sx %s',
['confiscate_dirty'] = 'Schwarzgeld konfesziert: <span style="color:red;">$%s</span>',
['you_confiscated'] = 'Du konfiszierst %sx %s von %s',
['got_confiscated'] = '%sx %s wurde konfisziert von %s',
['you_confiscated_account'] = 'du konfiszierst $%s (%s) von %s',
['got_confiscated_account'] = '$%s (%s) wurde konfisziert von %s',
['you_confiscated_weapon'] = 'Du konfiszierst %s von %s mit %s kugeln',
['got_confiscated_weapon'] = 'Deine %s mit %s kugeln wurde konfisziert von %s',
['traffic_offense'] = 'Verkehrs vergehen',
['minor_offense'] = 'Geringes vergehen',
['average_offense'] = 'Normales vergehen',
['major_offense'] = 'Hohes vergehen',
['fine_total'] = 'strafe: %s',
-- Vehicle Info Menu
['plate'] = 'plate: %s',
['plate'] = 'kennzeichen: %s',
['owner_unknown'] = 'besitzer: Unbekannt',
['owner'] = 'besitzer: %s',
-- Boss Menu
['open_bossmenu'] = 'Drücke [E] um das Menü zu öffnen',
['quantity_invalid'] = 'invalid quantity',
['have_withdrawn'] = 'you have withdrawn %sx %s',
['have_deposited'] = 'you have deposited %sx %s',
['quantity'] = 'quantity',
['inventory'] = 'inventory',
['police_stock'] = 'police Stock',
['quantity_invalid'] = 'ungültige Menge',
['have_withdrawn'] = 'Du hast abgehoben %sx %s',
['have_deposited'] = 'Sie haben eingezahlt %sx %s',
['quantity'] = 'qualität',
['inventory'] = 'inventar',
['police_stock'] = 'Polizeibestand',
-- Misc
['remove_prop'] = 'Drücke [E] um das Objekt zu entfernen',
['map_blip'] = 'Polizeistation',
['unrestrained_timer'] = 'you feel your handcuffs slowly losing grip and fading away.',
['unrestrained_timer'] = 'Du spürst, wie die Handschellen langsam ihren Halt verlieren und sich auflösen.',
-- Notifications
['alert_police'] = 'Polizei alamieren',
['phone_police'] = 'police',
['phone_police'] = 'Polizei',
}
+8 -8
View File
@@ -14,7 +14,7 @@ AddEventHandler('esx_policejob:confiscatePlayerItem', function(target, itemType,
local targetXPlayer = ESX.GetPlayerFromId(target)
if sourceXPlayer.job.name ~= 'police' then
print(('esx_policejob: %s attempted to confiscate!'):format(sourceXPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Exploit The Confuscation System!'):format(sourceXPlayer.source))
return
end
@@ -75,7 +75,7 @@ AddEventHandler('esx_policejob:handcuff', function(target)
if xPlayer.job.name == 'police' then
TriggerClientEvent('esx_policejob:handcuff', target)
else
print(('esx_policejob: %s attempted to handcuff a player (not cop)!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Exploit Handcuffs!'):format(xPlayer.source))
end
end)
@@ -86,7 +86,7 @@ AddEventHandler('esx_policejob:drag', function(target)
if xPlayer.job.name == 'police' then
TriggerClientEvent('esx_policejob:drag', target, source)
else
print(('esx_policejob: %s attempted to drag (not cop)!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Exploit Dragging!'):format(xPlayer.source))
end
end)
@@ -97,7 +97,7 @@ AddEventHandler('esx_policejob:putInVehicle', function(target)
if xPlayer.job.name == 'police' then
TriggerClientEvent('esx_policejob:putInVehicle', target)
else
print(('esx_policejob: %s attempted to put in vehicle (not cop)!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Exploit Garage!'):format(xPlayer.source))
end
end)
@@ -108,7 +108,7 @@ AddEventHandler('esx_policejob:OutVehicle', function(target)
if xPlayer.job.name == 'police' then
TriggerClientEvent('esx_policejob:OutVehicle', target)
else
print(('esx_policejob: %s attempted to drag out from vehicle (not cop)!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Exploit Dragging Out Of Vehicle!'):format(xPlayer.source))
end
end)
@@ -314,7 +314,7 @@ ESX.RegisterServerCallback('esx_policejob:buyWeapon', function(source, cb, weapo
end
if not selectedWeapon then
print(('esx_policejob: %s attempted to buy an invalid weapon.'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Buy Invalid Weapon - ^5%s^7!'):format(source, weaponName))
cb(false)
else
-- Weapon
@@ -344,7 +344,7 @@ ESX.RegisterServerCallback('esx_policejob:buyWeapon', function(source, cb, weapo
cb(false)
end
else
print(('esx_policejob: %s attempted to buy an invalid weapon component.'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Buy Invalid Weapon Component - ^5%s^7!'):format(source, componentNum))
cb(false)
end
end
@@ -357,7 +357,7 @@ ESX.RegisterServerCallback('esx_policejob:buyJobVehicle', function(source, cb, v
-- vehicle model not found
if price == 0 then
print(('esx_policejob: %s attempted to exploit the shop! (invalid vehicle model)'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Buy Invalid Vehicle - ^5%s^7!'):format(source, vehicleProps.model))
cb(false)
else
if xPlayer.getMoney() >= price then
+1 -2
View File
@@ -230,8 +230,7 @@ function CCTV(PropertyID)
if hook then
exports['screenshot-basic']:requestScreenshotUpload(hook, "files[]", function(data)
local image = json.decode(data)
print(ESX.DumpTable(image))
ESX.ShowNotification("Picture Taken!", "success")
ESX.ShowNotification(_U("picture_taken"), "success")
SendNUIMessage({link = image.attachments[1].proxy_url})
ESX.ShowNotification(_U("clipboard"), "success")
ShowButtons = true
+38 -38
View File
@@ -86,7 +86,7 @@ function RefreshBlips()
SetBlipAsShortRange(Blip, true)
SetBlipScale(Blip, 0.7)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(PM.joblabel .. " Office")
AddTextComponentString(_U("office_blip",PM.joblabel))
EndTextCommandSetBlipName(Blip)
Blips[#Blips + 1] = Blip
end
@@ -224,18 +224,18 @@ end
function SetPropertyName(Property)
local Name = Properties[Property].setName ~= "" and Properties[Property].setName or Properties[Property].Name
local Elements = {{unselectable = true, title = "Edit Property Name", icon = "fa-solid fa-signature"},
{icon = "", title = "Name", input = true, inputType = "text", inputValue = Name, inputPlaceholder = Properties[Property].Name,
name = "setName"}, {icon = "fa-solid fa-check", title = "Confirm", name = "confirm"}}
local Elements = {{unselectable = true, title = _U("name_edit"), icon = "fa-solid fa-signature"},
{icon = "", title = _U("name"), input = true, inputType = "text", inputValue = Name, inputPlaceholder = Properties[Property].Name,
name = "setName"}, {icon = "fa-solid fa-check", title = _U("confirm"), name = "confirm"}}
ESX.OpenContext("right", Elements, function(menu, element)
if element.name == "confirm" then
ESX.TriggerServerCallback("esx_property:SetPropertyName", function(Set)
if Set then
ESX.ShowNotification("You Have Set The Property Name To ~b~" .. menu.eles[2].inputValue .. "~s~.", "success")
ESX.ShowNotification(_U("name_edit_success",menu.eles[2].inputValue), "success")
ESX.CloseContext()
else
ESX.ShowNotification("You Cannot Set The Property Name To ~r~" .. menu.eles[2].inputValue .. "~s~.", "error")
ESX.ShowNotification(_U("name_edit_error",menu.eles[2].inputValue), "error")
end
end, Property, menu.eles[2].inputValue)
end
@@ -350,7 +350,7 @@ function OpenPropertyMenu(PropertyId)
if element.value == "property_raid" then
ESX.TriggerServerCallback("esx_property:CanRaid", function(CanRaid)
if CanRaid then
ESX.Progressbar(U("prep_raid"), 15000, {FreezePlayer = true, animation = Config.Raiding.Animation, onFinish = function()
ESX.Progressbar(_U("prep_raid"), 15000, {FreezePlayer = true, animation = Config.Raiding.Animation, onFinish = function()
ESX.ShowNotification(_U("raiding"), "success")
AttemptHouseEntry(PropertyId)
end, onCancel = function()
@@ -720,7 +720,7 @@ end
function AccessGarage(PropertyId)
ESX.TriggerServerCallback("esx_property:AccessGarage", function(Vehicles)
if Vehicles then
local elements = {{unselectable = true, icon = "fas fa-warehouse", title = "Property Garage"}}
local elements = {{unselectable = true, icon = "fas fa-warehouse", title = _U("property_garage")}}
for k, v in pairs(Vehicles) do
elements[#elements + 1] = {title = v.vehicle.DisplayName .. " | " .. v.vehicle.plate, Properties = v.vehicle, index = k}
end
@@ -1001,53 +1001,53 @@ RegisterNetEvent("esx_property:CreateProperty", function()
OpenCreate()
end
if element.index == "cctv" then
local status = Property[6].value.enabled and "Enabled" or "Disabled"
opos = {{unselectable = true, icon = "fas fa-video", title = "CCTV Settings"},
{title = _U("toggle_title"), icon = status == "Enabled" and "fas fa-eye" or "fas fa-eye-slash",
local status = Property[6].value.enabled and _U("enabled") or _U("disabled")
opos = {{unselectable = true, icon = "fas fa-video", title = _U("cctv_settings")},
{title = _U("toggle_title"), icon = status == _U("enabled") and "fas fa-eye" or "fas fa-eye-slash",
description = _U("toggle_description",status), index = "ToggleCCTV"},
{title = _U("cctv_set_title"), icon = "fas fa-rotate", disabled = not Property[6].value.enabled,
description = _U("cctv_set_description"), index = "SetCCTVangle"},
{title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}}
{title = _U("back"), icon = "fas fa-arrow-left", description = _U("back_description"), index = "return"}}
exports["esx_context"]:Refresh(opos, "right")
end
if element.index == "ToggleCCTV" then
Property[6].value.enabled = not Property[6].value.enabled
local status = Property[6].value.enabled and "Enabled" or "Disabled"
opos = {{unselectable = true, icon = "fas fa-video", title = "CCTV Settings"},
{title = _U("toggle_title"), icon = status == "Enabled" and "fas fa-eye" or "fas fa-eye-slash",
local status = Property[6].value.enabled and _U("enabled") or _U("disabled")
opos = {{unselectable = true, icon = "fas fa-video", title = _U("cctv_settings")},
{title = _U("toggle_title"), icon = status == _U("enabled") and "fas fa-eye" or "fas fa-eye-slash",
description = _U("toggle_description",status), index = "ToggleCCTV"},
{title = _U("cctv_set_title"), icon = "fas fa-rotate", disabled = not Property[6].value.enabled,
description = _U("cctv_set_description"), index = "SetCCTVangle"},
{title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}}
{title = _U("back"), icon = "fas fa-arrow-left", description = _U("back_description"), index = "return"}}
exports["esx_context"]:Refresh(opos, "right")
end
if Config.Garage.Enabled and element.index == "garage" then
local status = Property[5].value.enabled and "Enabled" or "Disabled"
opos = {{unselectable = true, icon = "fas fa-warehouse", title = "Garage Settings"},
{title = _U("toggle_title"), icon = status == "Enabled" and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
local status = Property[5].value.enabled and _U("enabled") or _U("disabled")
opos = {{unselectable = true, icon = "fas fa-warehouse", title = _U("garage_settings")},
{title = _U("toggle_title"), icon = status == _U("enabled") and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
description = _U("toggle_description",status), index = "ToggleGarage"}}
if Property[5].value.enabled then
opos[#opos + 1] = {title = _U("garage_set_title"), icon = "fas fa-map-marker-alt", disabled = not Property[5].value.enabled,
description = _U("garage_set_description"), index = "SetGaragePos"}
if Property[5].value.pos then
opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}
opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = _U("back_description"), index = "return"}
end
else
opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}
opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = _U("back_description"), index = "return"}
end
exports["esx_context"]:Refresh(opos, "right")
end
if element.index == "ToggleGarage" then
Property[5].value.enabled = not Property[5].value.enabled
local status = Property[5].value.enabled and "Enabled" or "Disabled"
opos = {{unselectable = true, icon = "fas fa-warehouse", title = "Garage Settings"},
{title = _U("toggle_title"), icon = status == "Enabled" and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
local status = Property[5].value.enabled and _U("enabled") or _U("disabled")
opos = {{unselectable = true, icon = "fas fa-warehouse", title = _U("garage_settings")},
{title = _U("toggle_title"), icon = status == _U("enabled") and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
description = _U("toggle_description",status), index = "ToggleGarage"}}
if Property[5].value.enabled then
opos[#opos + 1] = {title = _U("garage_set_title"), icon = "fas fa-map-marker-alt", disabled = not Property[5].value.enabled,
description = _U("garage_set_description"), index = "SetGaragePos"}
else
opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}
opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = _U("back_description"), index = "return"}
end
exports["esx_context"]:Refresh(opos, "right")
end
@@ -1095,7 +1095,7 @@ RegisterNetEvent("esx_property:CreateProperty", function()
local newProperty = {name = HouseData.name, price = HouseData.price, interior = HouseData.interior, entrance = HouseData.entrance,
cctv = Property[6].value, garage = Property[5].value}
TriggerServerEvent("esx_property:server:createProperty", newProperty)
ESX.ShowNotification("Property created!", "success")
ESX.ShowNotification(_U("create_success"), "success")
ESX.CloseContext()
HouseData = {}
else
@@ -1188,9 +1188,9 @@ RegisterNetEvent("esx_property:AdminMenu", function()
end, currentProperty)
end
if element.value == "garage" then
local status = Properties[currentProperty].garage.enabled and "Enabled" or "Disabled"
opos = {{unselectable = true, icon = "fas fa-warehouse", title = "Garage Settings"},
{title = "Toggle Usage", icon = status == "Enabled" and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
local status = Properties[currentProperty].garage.enabled and _U("enabled") or _U("disabled")
opos = {{unselectable = true, icon = "fas fa-warehouse", title = _U("garage_settings")},
{title = "Toggle Usage", icon = status == _U("enabled") and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
description = "Current Status: " .. status, value = "ToggleGarage"}}
if Properties[currentProperty].garage.enabled then
opos[#opos + 1] = {title = "Set Position", icon = "fas fa-map-marker-alt",
@@ -1206,9 +1206,9 @@ RegisterNetEvent("esx_property:AdminMenu", function()
exports["esx_context"]:Refresh(opos, "right")
end
if element.value == "cctv" then
local status = Properties[currentProperty].cctv.enabled and "Enabled" or "Disabled"
opos = {{unselectable = true, icon = "fas fa-warehouse", title = "CCTV Settings"},
{title = "Toggle Usage", icon = status == "Enabled" and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
local status = Properties[currentProperty].cctv.enabled and _U("enabled") or _U("disabled")
opos = {{unselectable = true, icon = "fas fa-warehouse", title = _U("cctv_settings")},
{title = "Toggle Usage", icon = status == _U("enabled") and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
description = "Current Status: " .. status, value = "ToggleCCTV"}}
if Properties[currentProperty].cctv.enabled then
opos[#opos + 1] = {title = "Set Angle", icon = "fas fa-map-marker-alt", disabled = not Properties[currentProperty].cctv.enabled,
@@ -1226,9 +1226,9 @@ RegisterNetEvent("esx_property:AdminMenu", function()
ESX.TriggerServerCallback("esx_property:toggleGarage", function(IsUnlocked, enabled)
if IsUnlocked then
ESX.ShowNotification("Garage Toggled!", "success")
local status = enabled and "Enabled" or "Disabled"
opos = {{unselectable = true, icon = "fas fa-warehouse", title = "Garage Settings"},
{title = "Toggle Usage", icon = status == "Enabled" and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
local status = enabled and _U("enabled") or _U("disabled")
opos = {{unselectable = true, icon = "fas fa-warehouse", title = _U("garage_settings")},
{title = "Toggle Usage", icon = status == _U("enabled") and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
description = "Current Status: " .. status, value = "ToggleGarage"}}
if enabled then
opos[#opos + 1] = {title = "Set Position", icon = "fas fa-map-marker-alt", disabled = not enabled,
@@ -1251,9 +1251,9 @@ RegisterNetEvent("esx_property:AdminMenu", function()
ESX.TriggerServerCallback("esx_property:toggleCCTV", function(IsUnlocked, enabled)
if IsUnlocked then
ESX.ShowNotification("CCTV Toggled!", "success")
local status = enabled and "Enabled" or "Disabled"
opos = {{unselectable = true, icon = "fas fa-warehouse", title = "CCTV Settings"},
{title = "Toggle Usage", icon = status == "Enabled" and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
local status = enabled and _U("enabled") or _U("disabled")
opos = {{unselectable = true, icon = "fas fa-warehouse", title = _U("cctv_settings")},
{title = "Toggle Usage", icon = status == _U("enabled") and "fa-solid fa-toggle-on" or "fa-solid fa-toggle-off",
description = "Current Status: " .. status, value = "ToggleCCTV"}}
if enabled then
opos[#opos + 1] = {title = "Set Angle", icon = "fas fa-map-marker-alt", disabled = not enabled,
+2 -5
View File
@@ -412,7 +412,6 @@ Config.FurnitureCatagories =
{name = "prop_el_guitar_01", title = "E Guitar 1", price = 100},
{name = "prop_el_guitar_02", title = "E Guitar 2", price = 100},
{name = "prop_el_guitar_03", title = "E Guitar 2", price = 100},
{name = "prop_ld_greenscreen_01", title = "Green Screen", price = 100},
{name = "v_res_mbowlornate", title = "Ornate Bowl", price = 300},
{name = "v_res_mbronzvase", title = "Bronze Vase", price = 300},
{name = "prop_ceramic_jug_01", title = "Ceramic Jug", price = 100},
@@ -429,7 +428,6 @@ Config.FurnitureCatagories =
{name = "apa_mp_h_acc_rugwools_03", title = "Rug 6", price = 300},
{name = "v_res_fh_pouf", title = "Pouf", price = 300},
{name = "v_res_fh_sculptmod", title = "Sculpture", price = 300},
{name = "prop_ceramic_jug_01", title = "Ceramic Jug", price = 100},
{name = "prop_v_5_bclock", title = "Vintage Clock", price = 300},
{name = "prop_v_15_cars_clock", title = "American Flag Clock", price = 300},
{name = "prop_sm_19_clock", title = "Modern Clock", price = 300},
@@ -531,7 +529,6 @@ Config.FurnitureCatagories =
{price = 1200, title = 'PC speaker', name = 'v_res_pcspeaker'},
{price = 5000, title = 'VHS white RETRO player', name = 'v_res_vhsplayer'},
{price = 2200, title = 'Vacuum Cleaner', name = 'v_res_vacuum'},
{price = 5400, title = 'Shredder', name = 'v_ret_gc_shred'},
{price = 100, title = 'Stapler', name = 'v_ret_gc_staple'},
{price = 1900, title = 'Hardisk', name = 'xm_prop_x17_harddisk_01a'},
{price = 5300, title = 'Computer', name = 'xm_prop_x17_res_pctower'},
@@ -540,7 +537,7 @@ Config.FurnitureCatagories =
{price = 14000, title = 'Jukebox', name = 'bkr_prop_clubhouse_jukebox_01b'},
{price = 1700, title = 'USB', name = 'hei_prop_hst_usb_drive'},
{price = 700, title = 'Flashlight', name = 'p_cs_police_torch_s'},
{price = 1000, title = 'Mikofon', name = 'p_ing_microphonel_01'},
{price = 1000, title = 'Microphone', name = 'p_ing_microphonel_01'},
{price = 1600, title = 'Radio', name = 'prop_tapeplayer_01'},
{price = 4500, title = 'Multifunction Laser Printer', name = 'prop_printer_01'},
{price = 11200, title = 'Multifunction Laser Printer', name = 'prop_printer_02'},
@@ -648,4 +645,4 @@ end --
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
]]
]]
+16 -3
View File
@@ -8,6 +8,7 @@ Locales['en'] = {
["Zoom_level"] = "Zoom Level: %s %",
["night_vision"] = "Toggle Night Vision",
["clipboard"] = "Link Copied To ~b~Cipboard",
["picture_taken"] = "Picture Taken!",
["please_wait"] = "Please Wait Before taking another ~b~Picture",
["exit"] = "Exit",
@@ -67,6 +68,7 @@ Locales['en'] = {
--------- Real Estate Strings ---------------
["office_blip"] = "%s Office",
["actions"] = "Real Estate Actions",
["property_create"] = "Create Property",
["property_manage"] = "Manage Properties",
@@ -92,6 +94,11 @@ Locales['en'] = {
---------- Property Actions Menu -------------------------
["knocking"] = "Someone Is ~b~Knocking~s~ On The Door.",
["name_edit"] = "Edit Property Name",
["name"] = "Name",
["confirm"] = "Confirm",
["name_edit_success"] = "You Have Set The Property Name To ~b~%s~s~.",
["name_edit_error"] = "You Cannot Set The Property Name To ~r~%s~s~.",
["door_locked"] = "Door: Locked",
["door_unlocked"] = "Door: Unlocked",
["name_manage"] = "Manage Name",
@@ -107,7 +114,7 @@ Locales['en'] = {
["wardrobe_title"] = "Wardrobe",
["wardrobe_desc"] = "Change Position of Property Wardrobe.",
["Furniture_title"] = "Furniture",
["Furniture_desc"] = "Change Position of Property Wardrobe.",
["Furniture_desc"] = "Change Position of Property Furniture.",
["enter_title"] = "Enter",
["knock_title"] = "Knock On Door",
["buy_title"] = "Buy",
@@ -138,6 +145,8 @@ Locales['en'] = {
---------- General Strings ----------------
["enabled"] = "Enabled",
["disabled"] = "Disabled",
["exiting"] = "Exiting property...",
["entering"] = "Entering property...",
["shell_disabled"] ="This Interior Uses Shells, which are disabled!",
@@ -149,6 +158,7 @@ Locales['en'] = {
["store_success"] = "Vehicle ~b~Stored!",
["store_error"] = "You Cannot Store This Vehicle!",
["property_garage"] = "Property Garage",
["retriving_notify"] = "Retrieving ~b~%s~s~ ...",
["cannot_access"] = "You Cannot Access This Garage!",
["store_textui"] = "Press ~b~[E]~s~ to Store ~b~%s",
@@ -182,11 +192,14 @@ Locales['en'] = {
["ipl_description"] = "Native GTA Interiors, Made by R*",
["shell_title"] = "Custom Interiors",
["shell_description"] = "Custom Interiors, Made by You",
["cctv_settings"] = "CCTV Settings",
["garage_settings"] = "Garage Settings",
["toggle_title"] = "Toggle Usage",
["toggle_description"] = "Current Status: %s",
["cctv_set_title"] = "Set Angle",
["cctv_set_title"] = "Set CCTV Angle",
["cctv_set_description"] = "Sets the Camera angle to your Cameras Direction",
["garage_set_title"] = "Set Position",
["back_description"] = "return to property creation.",
["garage_set_title"] = "Set Garage Position",
["garage_set_description"] = "Set the position of the Property Garage.",
["garage_textui"] = "Press ~b~[E]~s~ to Set Position",
["cctv_textui_1"] = "Press ~b~[E]~s~ to Set Angle",
+218
View File
@@ -0,0 +1,218 @@
Locales['nl'] = {
--- CCTV Strings ------
["take_picture"] = "Neem foto",
["rot_left_right"] = "Links/Rechts",
["rot_up_down"] = "Omhoog/Omblaag",
["Zoom"] = "Zoom In/Uit",
["Zoom_level"] = "Zoom Level: %s %",
["night_vision"] = "Nachtcamera aanzetten",
["clipboard"] = "Link gekopierd naar ~b~klembord",
["picture_taken"] = "Foto genomen!",
["please_wait"] = "Wacht even voordat je een nieuwe ~b~Foto neeemt",
["exit"] = "Sluit",
--- Furniture Strings ------
["Height"] = "Hoogte",
["rotate"] = "Rotatie",
["place"] = "Plaats Meubel",
["delete_furni"] = "Verwijder",
["confirm_buy"] = "Wil je %s kopen?",
["price"] = "Prijs: $&s",
["yes"] = "Ja",
["no"] = "Nee",
["action"] = "Jij %s ~b~%s~s~ !",
["bought_furni"] = "Je hebt een ~b~%s~s~ gekocht!",
["edited_furni"] = "Je hebt ~b~%s~s~ aangepast!",
["cannot_buy"] = "Je kan ~r~Dit~s~ Niet kopen!",
["cannot_edit"] = "Je ~r~Kan niet~s~ aanpassen!",
["store_title"] = "Winkel - %s",
["back"] = "Ga terug",
["edit_title"] = "Aanpassen - %s",
["move_title"] = "Verplaats",
["deleted_confirm"] = "Verwijderen van ~b~%s~s~!",
["deleted_error"] = "Kan ~b~%s~s~ niet verwijderen!",
["owned_furni"] = "Mijn meubels",
["menu_stores"] = "Meubel winkels",
["menu_stores_desc"] = "Koop meubels",
["menu_reset"] = "Reset",
["menu_reset_desc"] = "Verwijder alle meubels",
["menu_edit"] = "Aanpassen",
["menu_edit_desc"] = "Verplaats en/of verwijder meubels",
["furni_command"] = "meubel",
["furni_Command_desc"] = "(ESX Property) Open meubel menu",
["furni_command_permission"] = "Je ~r~Kan dit~s~ menu niet betreden!",
["furni_reset_success"] = "Meubel Reset!",
["furni_cannot_afford"] = "Je kan dit niet betalen!",
["furni_reset_error"] = "Je ~r~Kan niet~s~ dit eigendom niet resetten!",
["furni_management"] = "Beheer meubels",
--------- Key Strings ---------------
["you_granted"] = 'Je hebt de sleutels van ~b~%s~s~ gekregen.',
["already_has"] = "Deze speler heeft al sleutels!",
["do_not_own"] = 'Dit is ~r~niet~s~ jou eigendom.',
["key_revoked"] = 'Je sleutel van ~b~%s~s~. is ~r~afgenomen~s~',
["no_keys"] = "Deze speler heeft geen sleutels!",
["nearby"] = "Spelers Dichtbij",
["gave_key"] = "Je hebt een sleutel gegeven aan %s!",
["key_cannot_give"] = "Je kan deze speler geen ~r~sleutel~s~ geven.",
["remove_title"] = "Neem sleutels van speler",
["key_revoke_success"] = "Sleutels afgenomen van~b~%s~s~.",
["key_revoke_error"] = "Je kan de ~r~sleutels~s~ ~b~niet afnemen~s~ van deze speler",
["key_management"] = "Sleutel Management",
["key_management_desc"] = "Beheer uitgegeven sleutels.",
["give_keys"] = "Geef sleutels",
["remove_keys"] = "Verwijder sleutels",
--------- Real Estate Strings ---------------
["office_blip"] = "%s Kantoor",
["actions"] = "Vastgoed acties",
["property_create"] = "Creeër kantoor",
["property_manage"] = "Beheer kantoor",
["realestate_command"] = "vastgoedsnelmenu",
["realestate_command_desc"] = "(ESX Property) Open Vastgoed snelle acties",
["enter_office"] = "Ga kantoor ~b~naar binnen~s~.",
["enter_office_error"] = "Je kan dit kantoor ~r~niet~s~ naar binnen!",
["exit_office"] = "~b~Verlaat~s~ kantoor.",
["exit_office_error"] = "Je kan dit kantoor ~r~niet~s~ naar buiten!",
["realestate_textui"] = "Klik op ~b~[E]~s~ om naar binnen te gaan bij ~b~%s",
------------Command Strings-----------------------
["refresh_name"] = "property:refresh",
["refresh_desc"] = "Ververs naar server start status.",
["save_name"] = "property:save",
["save_desc"] = "Forceer eigendom save",
["create_name"] = "property:create",
["create_desc"] = "Creeër een nieuw gebouw",
["admin_name"] = "property:admin",
["admin_desc"] = "Beheer/bekijk alle gebouwen",
---------- Property Actions Menu -------------------------
["knocking"] = "Iemand ~b~klopt~s~ op de deur.",
["name_edit"] = "Verander gebouw naam",
["name"] = "Naam",
["confirm"] = "Bevestig",
["name_edit_success"] = "Je hebt de naam van het gebouw veranderd naar ~b~%s~s~.",
["name_edit_error"] = "Je kan dit gebouw niet deze naam geven ~r~%s~s~.",
["door_locked"] = "Deur: Vergrendeld",
["door_unlocked"] = "Deur: Ontgrendeld",
["name_manage"] = "Beheer naam",
["name_manage_desc"] = "Verander de naam van het gebouw.",
["sell_title"] = "Verkoop",
["sell_desc"] = "Verkoop dit gebouw voor $%s",
["raid_title"] = "Binnenvallen",
["raid_desc"] = "Forceer jezelf naar binnen.",
["cctv_title"] = "Camera systeem",
["cctv_desc"] = "Check het camera systeem.",
["inventory_title"] = "Inventaris",
["inventory_desc"] = "Verander positie van de berging.",
["wardrobe_title"] = "Kledingkast",
["wardrobe_desc"] = "Verander de positie van de kledingkast.",
["Furniture_title"] = "Meubels",
["Furniture_desc"] = "Verander de positie van een meubel",
["enter_title"] = "Ga naar binnen",
["knock_title"] = "Klop op de deur",
["buy_title"] = "Koop",
["buy_desc"] = "Koop dit gebouw voor $%s",
["sellplayer_title"] = "Verkoop aan speler",
["sellplayer_desc"] = "Verkoop dit gebouw voor $%s",
["view_title"] = "Bekijk Interieur",
["exit_title"] = "Verlaat",
["property_editing_error"] = "Je bent momenteel dit gebouw aan aan het passen.",
["unlock_error"] = "Je kan dit gebouw niet ~b~ontgrendelen",
["lock_error"] = "Je kan dit gebouw niet ~b~vergrendelen",
["prep_raid"] = "Deur forceren ~b~voorbereiden~s~!",
["raiding"] = "Deur forceren...",
["cancel_raiding"] = "Deur forceren ~r~geannuleerd~s~!",
["cannot_raid"] = "You Cannot ~b~Raid~s~ This Property.",
["storage_pos_textui"] = "Klik op ~b~[G]~s~ om de berging te plaatsen",
["storage_pos_success"] = "~b~Berging~s~ positie veranderd.",
["storage_pos_error"] = "De ~b~berging~s~ positie ~r~kan niet~s~ veranderd worden.",
["wardrobe_pos_textui"] = "Klik op ~b~[G]~s~ om de kledingkast te plaatsen",
["wardrobe_pos_success"] = "~b~Kledingkast~s~ positie veranderd.",
["wardrobe_pos_error"] = "De ~b~kledingkast~s~ positie ~r~kan niet~s~ veranderd worden.",
["please_finish"] = "Maak het plaatsen van ~b~%s~s~ eerst af.",
["cannot_afford"] = "Je kan dit gebouw niet kopen!",
["select_player"] = "Selecteer speler",
["cannot_Sell"] = "Kan niet aan deze speler verkopen!",
["knock_on_door"] = "Op deur kloppen...",
["nobody_home"] = "Lijkt erop alsof niemand thuis is...",
---------- General Strings ----------------
["enabled"] = "Aan",
["disabled"] = "Uit",
["exiting"] = "Verlaat gebouw...",
["entering"] = "Gebouw binnen gaan...",
["shell_disabled"] ="Dit Interieur gebruikt Shells, en die staan uit!",
["access_textui"] = "Klik op ~b~[E]~s~ om ~b~%s~s~ te betreden",
["raid_notify_error"] = "Je hebt ~b~ %sx %s~s~ nodig om de deur te forceren!",
["raid_notify_success"] = "Je gebouw word momenteel ~b~geforceerd!",
--------------- Garage Strings --------------
["store_success"] = "Voertuig ~b~Opgeslagen!",
["store_error"] = "Je kan dit voertuig niet opslaan!",
["property_garage"] = "Gebouw garage",
["retriving_notify"] = "~b~%s~s~ ophalen ...",
["cannot_access"] = "Je kan deze garage niet gebruiken!",
["store_textui"] = "Klik op ~b~[E]~s~ om ~b~%s~s~ op te slaan.",
["garage_not_enabled"] = 'De garage is niet actief op dit gebouw.',
["cannot_access_property"] = 'Je ~r~kan niet~s~ dit gebouw betreden.',
----------------- Creation Menu Strings ----------------
["menu_title"] = "Gebouw creatie",
["element_title1"] = "Straat nummer",
["element_description1"] = "Kies het straat nummer van het gebouw.",
["element_title2"] = "Prijs",
["element_description2"] = "Kies de prijs van het gebouw.",
["element_title3"] = "Interieur",
["element_description3"] = "Kies een interieur voor dit gebouw.",
["element_title4"] = "Garage",
["element_description4"] = "(Optional) Beheer Garage instellingen",
["element_title5"] = "Camera systeem",
["element_description5"] = "(Optional) Beheer Camera systeem instellingen",
["element_title6"] = "Ingang",
["element_description6"] = "Kies de locatie voor de ingang van het gebouw.",
["element_create_title"] = "Creeër gebouw",
["element_create_desc_1"] = "Vul alle velden in!",
["entrance_set_title"] = "Ingang gekozen.",
["entrance_set_description"] = "Ingang: %s, %s, %s",
["interior_set_title"] = "Interieur geselecteerd.",
["interior_set_description"] = "Geselecteerd: %s",
["ipl_title"] = "IPL Interieuren",
["types_title"] = "Interieur Types",
["ipl_description"] = "Orginele GTA Interiors, Made by R*",
["shell_title"] = "Custom Interieuren",
["shell_description"] = "Custom Interieuren, gemaakt door jou",
["cctv_settings"] = "Camera systeem instellingen",
["garage_settings"] = "Garage instellingen",
["toggle_title"] = "Schakel gebruik aan/uit",
["toggle_description"] = "Momentele status: %s",
["cctv_set_title"] = "Kies hoek",
["cctv_set_description"] = "Past de camera hoek aan naar waar jou camera naar richt.",
["back_description"] = "ga terug naar gebouw creatie.",
["garage_set_title"] = "Garage positie",
["garage_set_description"] = "Kies de positie van de garage.",
["garage_textui"] = "Klik op ~b~[E]~s~ om de locatie te kiezen",
["cctv_textui_1"] = "Klik op ~b~[E]~s~ om de hoek te kiezen",
["cctv_textui_2"] = "Klik op ~b~[E]~s~ om maximale rechtse draai te kiezen",
["cctv_textui_3"] = "Klik op ~b~[E]~s~ om maximale linkse draai te kiezen",
["create_success"] = "Gebouw gemaakt!",
["missing_data"] = "Vul alle velden in!",
-- Saving Translations
["server_restart"] = "Server word opnieuw opgestart",
["server_shutdown"] = "Server gaat uit",
["manual_save"] = "Handmatig opgeslagen (Aangevraagd door %s)",
["resource_stop"] = "Resource Stopping",
["force_save"] = "Opslaan geforceerd (Aangevraagd door %s)",
["interval_saving"] = "Tussentijds opslaan"
}
+7 -2
View File
@@ -72,7 +72,7 @@ function PropertiesRefresh()
end
else
Properties = {}
print("[ERROR]: Properties.json Not Found!")
print("[^1ERROR^7]: ^5Properties.json^7 Not Found!")
end
end
@@ -1052,7 +1052,6 @@ RegisterNetEvent('esx_property:server:createProperty', function(Property)
local source = source
local xPlayer = ESX.GetPlayerFromId(source)
local Interior = GetInteriorValues(Property.interior)
print(ESX.DumpTable(Property))
local garageData =
Property.garage.enabled and {enabled = true, pos = Property.garage.pos, Heading = Property.garage.heading, StoredVehicles = {}} or
{enabled = false}
@@ -1109,6 +1108,12 @@ AddEventHandler('onResourceStop', function(ResourceName)
end
end)
AddEventHandler('onServerResourceStop', function(ResourceName)
if ResourceName == GetCurrentResourceName() then
PropertySave(_U("resource_stop"))
end
end)
-- Save Properties every x Minutes
CreateThread(function()
+12
View File
@@ -0,0 +1,12 @@
Locales['de'] = {
['ooc_prefix'] = 'OOC | %s',
['twt_help'] = 'Sende eine twitter nachricht',
['twt_prefix'] = '^0[^4Twitter^0] (^5@%s^0)',
['me_help'] = 'personal action',
['me_prefix'] = 'ich | %s',
['do_help'] = 'RP information',
['do_prefix'] = 'do | %s',
['generic_argument_name'] = 'nachricht',
['generic_argument_help'] = 'die nachricht',
}
+11
View File
@@ -0,0 +1,11 @@
Locales['nl'] = {
['ooc_prefix'] = 'OOC | %s',
['twt_help'] = 'stuur tweet',
['twt_prefix'] = '^0[^4Twitter^0] (^5@%s^0)',
['me_help'] = 'persoonlijke actie',
['me_prefix'] = 'ik | %s',
['do_help'] = 'RP informatie',
['do_prefix'] = 'doe | %s',
['generic_argument_name'] = 'bericht',
['generic_argument_help'] = 'het bericht',
}
+4 -4
View File
@@ -9,7 +9,7 @@ end)
RegisterCommand('twt', function(playerId, args, rawCommand)
if playerId == 0 then
print('esx_rpchat: you can\'t use this command from console!')
print('[^1ERROR^7] This Command Cannot Be Used By The Console!')
else
args = table.concat(args, ' ')
@@ -21,7 +21,7 @@ end, false)
RegisterCommand('anontwt', function(playerId, args, rawCommand)
if playerId == 0 then
print('esx_rpchat: you can\'t use this command from console!')
print('[^1ERROR^7] This Command Cannot Be Used By The Console!')
else
args = table.concat(args, ' ')
@@ -33,7 +33,7 @@ end, false)
RegisterCommand('me', function(playerId, args, rawCommand)
if playerId == 0 then
print('esx_rpchat: you can\'t use this command from console!')
print('[^1ERROR^7] This Command Cannot Be Used By The Console!')
else
args = table.concat(args, ' ')
local playerName = GetRealPlayerName(playerId)
@@ -44,7 +44,7 @@ end, false)
RegisterCommand('do', function(playerId, args, rawCommand)
if playerId == 0 then
print('esx_rpchat: you can\'t use this command from console!')
print('[^1ERROR^7] This Command Cannot Be Used By The Console!')
else
args = table.concat(args, ' ')
local playerName = GetRealPlayerName(playerId)
+1 -1
View File
@@ -52,7 +52,7 @@ ESX.RegisterServerCallback('esx_service:isInService', function(source, cb, name)
isInService = true
end
else
print(('[esx_service] [^3WARNING^7] A service "%s" is not activated'):format(name))
print(('[^3WARNING^7] Attempted To Use Inactive Service - ^5%s^7'):format(name))
end
cb(isInService)
+4 -4
View File
@@ -1,11 +1,11 @@
Locales['de'] = {
['shop'] = 'geschäft',
['shops'] = 'geschäfte',
['press_menu'] = 'drücke [E] um auf das Geschäft zuzugreifen.',
['press_menu'] = 'Drücke [E] um auf das Geschäft zuzugreifen.',
['shop_item'] = '$%s',
['bought'] = 'du kaufst %sx %s für ~r~$%s',
['not_enough'] = 'du ~r~hast nicht genug geld: %s',
['player_cannot_hold'] = 'du hast ~r~nicht genug Platz in deinem Inventar',
['bought'] = 'Du kaufst %sx %s für $%s',
['not_enough'] = 'Du hast nicht genug geld: %s',
['player_cannot_hold'] = 'Du hast nicht genug Platz in deinem Inventar',
['shop_confirm'] = 'Kaufe %sx %s für $%s?',
['no'] = 'nein',
['yes'] = 'ja',
+12
View File
@@ -0,0 +1,12 @@
Locales['nl'] = {
['shop'] = 'winkel',
['shops'] = 'winkels',
['press_menu'] = 'klik op [E] om de ~g~winkel~s~ te gebruiken.',
['shop_item'] = '$%s',
['bought'] = 'Je hebt ~b~%sx %s~s~ gekocht voor ~b~$%s',
['not_enough'] = 'je hebt ~r~niet~s~ genoeg geld, je mist nog ~b~€%s!',
['player_cannot_hold'] = 'je hebt ~r~niet~s~ genoeg ruimte in je inventaris!',
['shop_confirm'] = 'koop %sx %s voor €%s?',
['no'] = 'nee',
['yes'] = 'ja',
}
+2 -2
View File
@@ -28,12 +28,12 @@ AddEventHandler('esx_shops:buyItem', function(itemName, amount, zone)
amount = ESX.Math.Round(amount)
if amount < 0 then
print('esx_shops: ' .. xPlayer.identifier .. ' attempted to exploit the shop!')
print(('[^3WARNING^7] Player ^5%s^7 attempted to exploit the shop!'):format(source))
return
end
if not Exists then
print('esx_shops: ' .. xPlayer.identifier .. ' attempted to exploit the shop!')
print(('[^3WARNING^7] Player ^5%s^7 attempted to exploit the shop!'):format(source))
return
end
-2
View File
@@ -349,5 +349,3 @@ end
AddEventHandler('esx_society:openBossMenu', function(society, close, options)
OpenBossMenu(society, close, options)
end)
if ESX.PlayerLoaded then RefreshBussHUD() end
+13 -13
View File
@@ -63,7 +63,7 @@ AddEventHandler('esx_society:withdrawMoney', function(societyName, amount)
local source = source
local society = GetSociety(societyName)
if not society then
print(('[^3WARNING^7] %s attempted to withdraw from non-existing society %s!'):format(xPlayer.getName(), societyName))
print(('[^3WARNING^7] Player ^5%s^7 attempted to withdraw from non-existing society - ^5%s^7!'):format(source, societyName))
return
end
local xPlayer = ESX.GetPlayerFromId(source)
@@ -79,7 +79,7 @@ AddEventHandler('esx_society:withdrawMoney', function(societyName, amount)
end
end)
else
print(('esx_society: %s attempted to call withdrawMoney!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted to withdraw from society - ^5%s^7!'):format(source, society.name))
end
end)
@@ -89,7 +89,7 @@ AddEventHandler('esx_society:depositMoney', function(societyName, amount)
local xPlayer = ESX.GetPlayerFromId(source)
local society = GetSociety(societyName)
if not society then
print(('[^3WARNING^7] %s attempted to deposit to non-existing society %s!'):format(xPlayer.getName(), societyName))
print(('[^3WARNING^7] Player ^5%s^7 attempted to deposit to non-existing society - ^5%s^7!'):format(source, societyName))
return
end
amount = ESX.Math.Round(tonumber(amount))
@@ -105,7 +105,7 @@ AddEventHandler('esx_society:depositMoney', function(societyName, amount)
xPlayer.showNotification(_U('invalid_amount'))
end
else
print(('esx_society: %s attempted to call depositMoney!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted to deposit to society - ^5%s^7!'):format(source, society.name))
end
end)
@@ -128,7 +128,7 @@ AddEventHandler('esx_society:washMoney', function(society, amount)
xPlayer.showNotification(_U('invalid_amount'))
end
else
print(('esx_society: %s attempted to call washMoney!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted to wash money in society - ^5%s^7!'):format(source, society))
end
end)
@@ -138,7 +138,7 @@ AddEventHandler('esx_society:putVehicleInGarage', function(societyName, vehicle)
local xPlayer = ESX.GetPlayerFromId(source)
local society = GetSociety(societyName)
if not society then
print(('[^3WARNING^7] %s attempted to put a vehicle in a non-existing society - %s!'):format(xPlayer.getName(), societyName))
print(('[^3WARNING^7] Player ^5%s^7 attempted to put vehicle in non-existing society garage - ^5%s^7!'):format(source, societyName))
return
end
TriggerEvent('esx_datastore:getSharedDataStore', society.datastore, function(store)
@@ -154,7 +154,7 @@ AddEventHandler('esx_society:removeVehicleFromGarage', function(societyName, veh
local xPlayer = ESX.GetPlayerFromId(source)
local society = GetSociety(societyName)
if not society then
print(('[^3WARNING^7] %s attempted to Remove a vehicle in a non-existing society - %s!'):format(xPlayer.getName(), societyName))
print(('[^3WARNING^7] Player ^5%s^7 attempted to remove vehicle from non-existing society garage - ^5%s^7!'):format(source, societyName))
return
end
TriggerEvent('esx_datastore:getSharedDataStore', society.datastore, function(store)
@@ -174,7 +174,7 @@ end)
ESX.RegisterServerCallback('esx_society:getSocietyMoney', function(source, cb, societyName)
local society = GetSociety(societyName)
if not society then
print(('[^3WARNING^7] Attempting To get a non-existing society - %s!'):format(societyName))
print(('[^3WARNING^7] Player ^5%s^7 attempted to get money from non-existing society - ^5%s^7!'):format(source, societyName))
return
end
if society then
@@ -275,9 +275,9 @@ end)
ESX.RegisterServerCallback('esx_society:setJob', function(source, cb, identifier, job, grade, type)
local xPlayer = ESX.GetPlayerFromId(source)
local isBoss = xPlayer.job.grade_name == 'boss'
local xTarget = ESX.GetPlayerFromIdentifier(identifier)
if isBoss then
local xTarget = ESX.GetPlayerFromIdentifier(identifier)
if xTarget then
xTarget.setJob(job, grade)
@@ -301,7 +301,7 @@ ESX.RegisterServerCallback('esx_society:setJob', function(source, cb, identifier
end)
end
else
print(('esx_society: %s attempted to setJob'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted to setJob for Player ^5%s^7!'):format(source, xTarget.source))
cb()
end
end)
@@ -327,11 +327,11 @@ ESX.RegisterServerCallback('esx_society:setJobSalary', function(source, cb, job,
cb()
end)
else
print(('esx_society: %s attempted to setJobSalary over config limit!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted to setJobSalary over the config limit for ^5%s^7!'):format(source, job))
cb()
end
else
print(('esx_society: %s attempted to setJobSalary'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted to setJobSalary for ^5%s^7!'):format(source, job))
cb()
end
end)
@@ -356,7 +356,7 @@ ESX.RegisterServerCallback('esx_society:setJobLabel', function(source, cb, job,
cb()
end)
else
print(('esx_society: %s attempted to setJobSalary'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted to setJobLabel for ^5%s^7!'):format(source, job))
cb()
end
end)
+19 -45
View File
@@ -40,30 +40,18 @@ function ShowLoadingPromt(msg, time, type)
end
function GetRandomWalkingNPC()
local search = {}
local peds = ESX.Game.GetPeds()
for i = 1, #peds, 1 do
if IsPedHuman(peds[i]) and IsPedWalking(peds[i]) and not IsPedAPlayer(peds[i]) then
table.insert(search, peds[i])
local search = {}
local peds = GetGamePool("CPed")
for i = 1, #peds, 1 do
if IsPedHuman(peds[i]) and IsPedWalking(peds[i]) and not IsPedAPlayer(peds[i]) then
search[#search+1] = peds[i]
end
end
end
if #search > 0 then
return search[GetRandomIntInRange(1, #search)]
end
for i = 1, 250, 1 do
local ped = GetRandomPedAtCoord(0.0, 0.0, 0.0, math.huge + 0.0, math.huge + 0.0, math.huge + 0.0, 26)
if DoesEntityExist(ped) and IsPedHuman(ped) and IsPedWalking(ped) and not IsPedAPlayer(ped) then
table.insert(search, ped)
if #search > 0 then
return search[math.random(#search)]
end
end
if #search > 0 then
return search[GetRandomIntInRange(1, #search)]
end
end
function ClearCurrentMission()
@@ -173,13 +161,9 @@ function OpenVehicleSpawnerMenu()
menu.close()
local vehicleProps = data.current.value
ESX.Game.SpawnVehicle(vehicleProps.model, Config.Zones.VehicleSpawnPoint.Pos,
Config.Zones.VehicleSpawnPoint.Heading, function(vehicle)
ESX.Game.SetVehicleProperties(vehicle, vehicleProps)
local playerPed = PlayerPedId()
TaskWarpPedIntoVehicle(playerPed, vehicle, -1)
end)
ESX.TriggerServerCallback("esx_taxijob:SpawnVehicle", function()
return
end, vehicleProps.model, vehicleProps)
TriggerServerEvent('esx_society:removeVehicleFromGarage', 'taxi', vehicleProps)
end, function(data, menu)
CurrentAction = 'vehicle_spawner'
@@ -201,13 +185,10 @@ function OpenVehicleSpawnerMenu()
ESX.ShowNotification(_U('spawnpoint_blocked'))
return
end
ESX.TriggerServerCallback("esx_taxijob:SpawnVehicle", function()
ESX.ShowNotification(_U('vehicle_spawned'), "success")
end, "taxi", {plate = "TAXI JOB"})
menu.close()
ESX.Game.SpawnVehicle(data.current.model, Config.Zones.VehicleSpawnPoint.Pos,
Config.Zones.VehicleSpawnPoint.Heading, function(vehicle)
local playerPed = PlayerPedId()
TaskWarpPedIntoVehicle(playerPed, vehicle, -1)
end)
end, function(data, menu)
CurrentAction = 'vehicle_spawner'
CurrentActionMsg = _U('spawner_prompt')
@@ -569,15 +550,9 @@ CreateThread(function()
local playerPed = PlayerPedId()
if CurrentCustomer == nil then
DrawSub(_U('drive_search_pass'), 5000)
if IsPedInAnyVehicle(playerPed, false) and GetEntitySpeed(playerPed) > 0 then
local waitUntil = GetGameTimer() + GetRandomIntInRange(30000, 45000)
while OnJob and waitUntil > GetGameTimer() do
Wait(0)
end
if OnJob and IsPedInAnyVehicle(playerPed, false) and GetEntitySpeed(playerPed) > 0 then
if IsPedInAnyVehicle(playerPed, false) and OnJob then
Wait(5000)
CurrentCustomer = GetRandomWalkingNPC()
if CurrentCustomer ~= nil then
@@ -597,7 +572,6 @@ CreateThread(function()
ESX.ShowNotification(_U('customer_found'))
end
end
end
else
if IsPedFatallyInjured(CurrentCustomer) then
+23 -23
View File
@@ -1,15 +1,15 @@
Locales['de'] = {
-- cloakroom
['cloakroom_menu'] = 'cloakroom',
['cloakroom_prompt'] = 'press [E] to open the cloakroom.',
['wear_citizen'] = 'citizen wear',
['wear_work'] = 'taxi wear',
['cloakroom_menu'] = 'Garderobe',
['cloakroom_prompt'] = 'Drücke [E] um die Garderobe zu öffnen.',
['wear_citizen'] = 'Bürger Kleidung',
['wear_work'] = 'Taxi Kleidung',
-- garage
['spawner_prompt'] = 'press [E] to open the garage.',
['spawner_prompt'] = 'Drücke [E] um die Garage zu öffnen.',
['store_veh'] = 'Drücke [E] um das Fahrzeug zu parken',
['spawn_veh'] = 'Fahrzeug spawnen',
['spawnpoint_blocked'] = 'there is a vehicle blocking the spawnpoint!',
['spawnpoint_blocked'] = 'Ein Fahrzeug blockiert den Spawnpoint!',
['only_taxi'] = 'Du kannst nur Taxis parken.',
['taking_service'] = 'Service annehmen: Taxi/Uber',
@@ -17,36 +17,36 @@ Locales['de'] = {
['amount_invalid'] = 'Betrag ungültig',
['press_to_open'] = 'Drücke [E] um das Menü zu öffnen',
['billing'] = 'Rechnung',
['billing_sent'] = 'the bill has been registered!',
['billing_sent'] = 'Die Rechnung wurde gesendet!',
['invoice_amount'] = 'Rechnugsbetrag',
['no_players_near'] = 'Kein Spieler in der Nähe',
['start_job'] = 'start / stop driving NPC jobs',
['start_job'] = 'Start/Stopp NPC Aufträge',
['drive_search_pass'] = 'Auf der Suche nach Passagieren',
['customer_found'] = 'du hast einen Passagier gefunden , Fahre in zum Ziel',
['client_unconcious'] = 'dein Passagier ist ~r~bewusstlos. Suche nach einem anderen.',
['client_unconcious'] = 'dein Passagier ist bewusstlos. Suche nach einem anderen.',
['arrive_dest'] = 'du bist an deinem Ziel angekommen',
['take_me_to_near'] = 'Bring mich nach %s, in der Nähe von %s',
['take_me_to'] = 'Bring mich nach %s',
['close_to_client'] = 'du bist nahe an dem Passagier, du musst noch näher ran',
['return_to_veh'] = 'bitte kehre zu deinem Fahezeug zurück umd die Mission fortzuführen',
['close_to_client'] = 'Du bist nahe an dem Passagier, du musst noch näher ran',
['return_to_veh'] = 'Bitte kehre zu deinem Fahezeug zurück umd die Mission fortzuführen',
['must_in_taxi'] = 'Du musst in einem Taxis sein umd die Mission starten zu können',
['must_in_vehicle'] = 'Du musst in einem Fahrzeug sein um die Mission starten zu können',
['not_in_taxi'] = 'You left the taxi while on mission!',
['have_earned'] = 'verdient $%s',
['not_in_taxi'] = 'Du hast das Taxi während der Mission verlassen',
['have_earned'] = 'Du hast verdient $%s',
['comp_earned'] = '- Die Firma verdient $\n- Verdient $%s',
['deposit_stock'] = 'deposit Stock',
['take_stock'] = 'take Stock',
['boss_actions'] = 'boss Actions',
['mission_complete'] = 'mission Completed',
['quantity'] = 'quantity',
['quantity_invalid'] = 'that is an invalid quantity!',
['take_stock'] = 'Bestand nehmen',
['boss_actions'] = 'Boss aktionen',
['mission_complete'] = 'Mission abgeschlossen',
['quantity'] = 'menge',
['quantity_invalid'] = 'Das ist eine ungültige Menge!',
['inventory'] = 'inventory',
['taxi_client'] = 'taxi Client',
['have_withdrawn'] = 'you have withdrawn x%s %s',
['have_deposited'] = 'you have deposited x%s %s',
['player_cannot_hold'] = 'you do ~r~not have enough free space in your inventory!',
['taxi_client'] = 'Taxi Kunde',
['have_withdrawn'] = 'Du hast entnommen x%s %s',
['have_deposited'] = 'Du hast eingelagert x%s %s',
['player_cannot_hold'] = 'Du hast nicht genug Platz im Inventar',
['blip_taxi'] = 'taxi',
['phone_taxi'] = 'taxi',
['taxi'] = 'taxi',
['taxi_stock'] = 'taxi Stock'
['taxi_stock'] = 'taxi lagerbestand'
}
+1
View File
@@ -7,6 +7,7 @@ Locales['en'] = {
-- garage
['spawner_prompt'] = 'press [E] to access the Garage.',
["vehicle_spawned"] = "Successfully Spawned A ~b~Taxi!",
['store_veh'] = 'press [E] to store the vehicle',
['spawn_veh'] = 'spawn vehicle',
['spawnpoint_blocked'] = 'there is a vehicle blocking the spawnpoint!',
+18 -3
View File
@@ -41,10 +41,25 @@ AddEventHandler('esx_taxijob:success', function()
end)
end
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger success (cheating)'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted to ^5esx_taxijob:success^7 (cheating)'):format(source))
end
end)
ESX.RegisterServerCallback("esx_taxijob:SpawnVehicle", function(source, cb, model , props)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.job.name ~= "taxi" then
print(('[^3WARNING^7] Player ^5%s^7 attempted to Exploit Vehicle Spawing!!'):format(source))
return
end
local SpawnPoint = vector3(Config.Zones.VehicleSpawnPoint.Pos.x, Config.Zones.VehicleSpawnPoint.Pos.y, Config.Zones.VehicleSpawnPoint.Pos.z)
ESX.OneSync.SpawnVehicle(joaat(model), SpawnPoint, Config.Zones.VehicleSpawnPoint.Heading, true, props, function(vehicle)
local vehicle = NetworkGetEntityFromNetworkId(vehicle)
TaskWarpPedIntoVehicle(GetPlayerPed(source), vehicle, -1)
end)
cb()
end)
RegisterNetEvent('esx_taxijob:getStockItem')
AddEventHandler('esx_taxijob:getStockItem', function(itemName, count)
local xPlayer = ESX.GetPlayerFromId(source)
@@ -68,7 +83,7 @@ AddEventHandler('esx_taxijob:getStockItem', function(itemName, count)
end
end)
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger getStockItem'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted ^5esx_taxijob:getStockItem^7 (cheating)'):format(source))
end
end)
@@ -95,7 +110,7 @@ AddEventHandler('esx_taxijob:putStockItems', function(itemName, count)
end
end)
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger putStockItems'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 attempted ^5esx_taxijob:putStockItems^7 (cheating)'):format(source))
end
end)
+4 -2
View File
@@ -21,6 +21,8 @@ function getVehicles()
end)
end
AddEventHandler("onResourceStart", getVehicles)
function PlayerManagement()
if Config.EnablePlayerManagement then
if ESX.PlayerData.job.name == 'cardealer' then
@@ -118,7 +120,7 @@ end
function OpenShopMenu()
if #Vehicles == 0 then
print('[esx_vehicleshop] [^3ERROR^7] No vehicles found')
print('[^3ERROR^7] Vehicleshop has ^50^7 vehicles, please add some!')
return
end
@@ -145,7 +147,7 @@ function OpenShopMenu()
if IsModelInCdimage(joaat(Vehicles[i].model)) then
table.insert(vehiclesByCategory[Vehicles[i].category], Vehicles[i])
else
print(('[esx_vehicleshop] [^3ERROR^7] Vehicle "%s" does not exist'):format(Vehicles[i].model))
print(('[^3WARNING^7] Ignoring vehicle ^5%s^7 due to invalid Model'):format(Vehicles[i].model))
end
end
@@ -0,0 +1,65 @@
Locales['nl'] = {
-- global menus
['not_enough_in_society'] = 'er zijn niet genoeg van ~r~deze spullen in de stad!',
['player_cannot_hold'] = 'je hebt ~r~niet~s~ genoeg plaats in je inventaris!',
['vehicle_belongs'] = 'een voertuig met kenteken %s is nu van jou',
['broke_company'] = 'je bedrijf heeft niet genoeg geld in de bank',
['license_missing'] = 'je hebt geen rijbewijs!',
['buy_vehicle_shop'] = 'Wil je %s kopen voor €%s?',
['buy_vehicle'] = 'koop voertuig',
['car_dealer'] = 'Voertuig verkoop',
['shop_awaiting_model'] = 'het voertuig is aan het laden, even geduld',
['create_bill'] = 'creeër rekening',
['dealer_boss'] = 'Voertuig verkoop - Baas',
['delivered'] = 'het voertuig is afgeleverd',
['depop_vehicle'] = 'parkeer voertuig in de garage?',
['return_provider'] = 'stuur voertuig terug naar de eigenaar?',
['get_rented_vehicles'] = 'voertuigen te huur',
['no_current_vehicle'] = 'je hebt momenteel geen voertuig uitstaan',
['invalid_amount'] = 'ongeldig bedrag',
['invoice_amount'] = 'rekening bedrag',
['no'] = 'nee',
['yes'] = 'ja',
['no_players'] = 'er zijn geen spelers in de buurt',
['not_enough_money'] = 'je hebt niet genoeg geld',
['not_rental'] = 'dit is geen ~r~huur voertuig',
['not_yours'] = 'dit voertuig is niet van jou',
['paid_rental'] = 'je hebt €%s betaald voor het huren van een voertuig met kenteken %s',
['paid_rental_evicted'] = 'je hebt niet genoeg om €%s te betalen voor je gehuurde voertuig met kenteken %s, hij is teruggebracht.',
['pop_vehicle'] = 'zet voertuig uit voor verkoop',
['rent_vehicle'] = 'Auto verkoop - Voertuigen te huur',
['return_provider_menu'] = 'Auto verkoop - Breng voertuig terug',
['rental_amount'] = 'huur bedrag',
['sell_menu'] = 'klik op [E] om %s te verkopen voor $%s',
['set_vehicle_owner_rent'] = 'verhuur voertuig',
['set_vehicle_owner_sell'] = 'verkoop vuurtuig',
['shop_menu'] = 'klik op [E] om het menu te gebruiken',
['generic_shopitem'] = '€%s',
['vehicle_dealer'] = 'voertuig - Auto verkoop',
['vehicle_menu'] = 'klik op [E] om je gehuurde voertuig terug te brengen',
['vehicle_purchased'] = 'je hebt een voertuig gekocht',
['vehicle_set_owned'] = 'voertuig %s is toegewezen aan %s',
['vehicle_set_rented'] = 'voertuig %s is gehuurd door %s',
['vehicle_sold_for'] = 'de %s is verkocht voor €%s',
['vehicle_sold_to'] = 'het voertuig met kenteken %s is verkocht aan %s',
['deposit_stock'] = 'sla voorraad op',
['take_stock'] = 'pak voorraad',
['dealership_stock'] = 'verkoop voorraad',
['amount'] = 'bedrag',
['quantity_invalid'] = 'ongeldig bedrag',
['inventory'] = 'inventaris',
['dealership'] = 'Auto verkoop',
['dealer_customers'] = 'Klanten',
['have_withdrawn'] = 'je hebt x%s %s gepakt',
['have_deposited'] = 'je hebt x%s %s opgeslagen',
['boss_actions'] = 'baas acties',
['invalid_vehicle'] = 'Onjuist voertuig',
-- sold vehicles
['boss_sold'] = 'lijst van verkochten voertuigen',
['customer_client'] = 'klanten naam',
['customer_model'] = 'voertuig model',
['customer_plate'] = 'kenteken voertuig',
['customer_soldby'] = 'verkocht door',
['customer_date'] = 'datum',
}
+10 -9
View File
@@ -9,7 +9,7 @@ CreateThread(function()
if Config.PlateUseSpace then char = char + 1 end
if char > 8 then
print(('[esx_vehicleshop] [^3WARNING^7] Plate character count reached, %s/8 characters!'):format(char))
print(('[^3WARNING^7] Character Limit Exceeded, ^5%s/8^7!'):format(char))
end
end)
@@ -172,7 +172,8 @@ ESX.RegisterServerCallback('esx_vehicleshop:buyVehicle', function(source, cb, mo
MySQL.insert('INSERT INTO owned_vehicles (owner, plate, vehicle) VALUES (?, ?, ?)', {xPlayer.identifier, plate, json.encode({model = joaat(model), plate = plate})
}, function(rowsChanged)
xPlayer.showNotification(_U('vehicle_belongs', plate))
ESX.OneSync.SpawnVehicle(joaat(model), Config.Zones.VehicleSpawnPoint.Pos, Config.Zones.VehicleSpawnPoint.Heading, automobile,{plate = plate}, function(vehicle)
ESX.OneSync.SpawnVehicle(joaat(model), Config.Zones.ShopOutside.Pos, Config.Zones.ShopOutside.Heading, false,{plate = plate}, function(vehicle)
local vehicle = NetworkGetEntityFromNetworkId(vehicle)
TaskWarpPedIntoVehicle(GetPlayerPed(source), vehicle, -1)
end)
cb(true)
@@ -234,7 +235,7 @@ AddEventHandler('esx_vehicleshop:returnProvider', function(vehicleModel)
end
end)
else
print(('[esx_vehicleshop] [^3WARNING^7] %s attempted selling an invalid vehicle!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Sell Invalid Vehicle - ^5%s^7!'):format(source, vehicleModel))
end
end)
end
@@ -290,7 +291,7 @@ ESX.RegisterServerCallback('esx_vehicleshop:resellVehicle', function(source, cb,
end
if not resellPrice then
print(('[esx_vehicleshop] [^3WARNING^7] %s attempted to sell an unknown vehicle!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Resell Invalid Vehicle - ^5%s^7!'):format(source, model))
cb(false)
else
MySQL.single('SELECT * FROM rented_vehicles WHERE plate = ?', {plate},
@@ -309,11 +310,11 @@ ESX.RegisterServerCallback('esx_vehicleshop:resellVehicle', function(source, cb,
RemoveOwnedVehicle(plate)
cb(true)
else
print(('[esx_vehicleshop] [^3WARNING^7] %s attempted to sell an vehicle with plate mismatch!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Resell Vehicle With Invalid Plate - ^5%s^7!'):format(source, plate))
cb(false)
end
else
print(('[esx_vehicleshop] [^3WARNING^7] %s attempted to sell an vehicle with model mismatch!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Resell Vehicle With Invalid Model - ^5%s^7!'):format(source, model))
cb(false)
end
end
@@ -360,14 +361,14 @@ AddEventHandler('esx_vehicleshop:setJobVehicleState', function(plate, state)
MySQL.update('UPDATE owned_vehicles SET `stored` = ? WHERE plate = ? AND job = ?', {state, plate, xPlayer.job.name},
function(rowsChanged)
if rowsChanged == 0 then
print(('[esx_vehicleshop] [^3WARNING^7] %s exploited the garage!'):format(xPlayer.identifier))
print(('[^3WARNING^7] Player ^5%s^7 Attempted To Exploit the Garage!'):format(source, plate))
end
end)
end)
function PayRent()
local timeStart = os.clock()
print('[esx_vehicleshop] [^2INFO^7] Paying rent cron job started')
print('[^2INFO^7] ^5Rent Payments^7 Initiated')
MySQL.query('SELECT rented_vehicles.owner, rented_vehicles.rent_price, rented_vehicles.plate, users.accounts FROM rented_vehicles LEFT JOIN users ON rented_vehicles.owner = users.identifier', {},
function(rentals)
@@ -451,7 +452,7 @@ function PayRent()
MySQL.prepare.await('DELETE FROM rented_vehicles WHERE owner = ? AND plate = ?', unrentals)
end
print(('[esx_vehicleshop] [^2INFO^7] Paying rent cron job took %s seconds'):format(os.clock() - timeStart))
print(('[^2INFO^7] ^5Rent Payments^7 took ^5%s^7 ms to execute'):format(ESX.Math.Round((os.time() - timeStart) / 1000000, 2)))
end)
end

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