Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite loadESXPlayer function #1287

Closed
wants to merge 72 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
e30e2bc
refactor(Player Class): Typing Code & Perf
Walker974 Sep 17, 2023
fbdc9ce
Update player.lua
Walker974 Sep 17, 2023
0e5cefe
Merge branch 'dev' into patch-1
Thekuca Sep 18, 2023
2abf70a
Update player.lua
Walker974 Sep 24, 2023
165cd21
Update & Fix player.lua
Walker974 Sep 24, 2023
5eb3194
improve spawnvehicle and remove callback
Sep 27, 2023
00c0e84
change vehicle spawn logic back.
Sep 27, 2023
4dac6a0
Merge pull request #1229 from Arctos2win/dev
Arctos2win Sep 27, 2023
eec2bd8
improve functions and removeInventoryItem event
Sep 29, 2023
d7403e0
fix
Arctos2win Sep 29, 2023
be835db
fix event
Sep 29, 2023
730f92e
Merge branch 'dev' of https://github.com/Arctos2win/esx_core into dev
Sep 29, 2023
5d44a0a
add native to dependencies
Arctos2win Sep 29, 2023
f61e664
fix last stuff
Sep 29, 2023
06e6843
Merge pull request #1231 from Arctos2win/main
Gellipapa Sep 29, 2023
6fc40c7
Update functions.lua
Arctos2win Sep 29, 2023
117fb8b
Updated fi.lua
Bloope18 Oct 1, 2023
8e71fd7
Merge pull request #1234 from Blooper562/patch-7
Arctos2win Oct 1, 2023
75799c8
Update functions.lua
Arctos2win Oct 2, 2023
2ace296
fix repo
Arctos2win Oct 2, 2023
3376ba6
Merge pull request #1232 from Arctos2win/dev
Arctos2win Oct 2, 2023
50f7dce
Merge pull request #1217 from Walker974/patch-1
Thekuca Oct 2, 2023
094becc
quick fix
Arctos2win Oct 3, 2023
9d94639
Merge pull request #1236 from Arctos2win/dev
Arctos2win Oct 3, 2023
cee4f01
Update de.lua
ItzTrivial Oct 3, 2023
59d5f14
Merge pull request #1237 from ItzTrivial/patch-1
Arctos2win Oct 3, 2023
cc03577
Create sv.lua
Dannezzzan Oct 7, 2023
52ea268
Create sv.lua
Dannezzzan Oct 7, 2023
47b41ea
Merge pull request #1239 from Dannezzzan/patch-3
Arctos2win Oct 7, 2023
33549b7
Merge pull request #1238 from Dannezzzan/patch-2
Arctos2win Oct 7, 2023
b5f21a7
Create sv.lua
Dannezzzan Oct 7, 2023
3d6b79c
Create sv.lua
Dannezzzan Oct 7, 2023
3e95b08
Create sv.lua
Dannezzzan Oct 7, 2023
ffeabfe
Create sv.js
Dannezzzan Oct 8, 2023
fe749f1
Merge pull request #1243 from Dannezzzan/patch-7
Arctos2win Oct 8, 2023
cb5c5c8
Merge pull request #1242 from Dannezzzan/patch-6
Arctos2win Oct 8, 2023
43f2834
en to sv
Arctos2win Oct 8, 2023
bdb8062
Merge pull request #1241 from Dannezzzan/patch-5
Arctos2win Oct 8, 2023
bad530a
Merge pull request #1240 from Dannezzzan/patch-4
Arctos2win Oct 8, 2023
598c2f7
:wrench: Add missing onCancel callback method to progressbar
Gellipapa Oct 16, 2023
aa84aac
Merge branch 'dev' of https://github.com/Gellipapa/esx_core into dev
Gellipapa Oct 16, 2023
a99e566
Merge pull request #1247 from Gellipapa/dev
Gellipapa Oct 16, 2023
9d92a4f
Add underflow check for removeAccountMoney
Kenshiin13 Nov 6, 2023
40fe04d
Merge pull request #1253 from Kenshiin13/Underflow-Check
Arctos2win Nov 6, 2023
34f7933
fix: FR translation
Cartman117 Nov 12, 2023
d41b723
Merge pull request #1254 from Cartman117/patch-1
Arctos2win Nov 14, 2023
90cc4be
improve setjob function
Arctos2win Nov 18, 2023
004b782
tonumber a value
Arctos2win Nov 18, 2023
97a6f08
Merge pull request #1255 from Arctos2win/dev
Arctos2win Nov 18, 2023
bd17e35
Create id.lua
IAmNotGod-core Nov 28, 2023
18db3c8
en -> id
Arctos2win Nov 28, 2023
69b1e16
Merge pull request #1258 from IAmNotGod-core/dev
Arctos2win Nov 29, 2023
5d1f90f
fix(es_extended/server/classes/player): trying to use non existent event
Thekuca Dec 4, 2023
4240253
Merge pull request #1263 from Thekuca/dev
Thekuca Dec 4, 2023
9bbf321
fix player metadata can get set to false.
Arctos2win Dec 12, 2023
ed9dcda
Merge pull request #1266 from Arctos2win/dev
Arctos2win Dec 12, 2023
5b68454
fix(es_extended/client/modules/actions): player health regeneration
Thekuca Dec 21, 2023
1c530ac
Merge pull request #1277 from Thekuca/dev
Thekuca Dec 21, 2023
47920b7
refactor(es_extended/client/main): use esx function for keymapping
Thekuca Dec 22, 2023
e499474
Revert "refactor(es_extended/client/main): use esx function for keyma…
Thekuca Dec 22, 2023
70c5213
refactor(es_extended/client/main): use esx keymapping function
Thekuca Dec 22, 2023
71516c1
Merge pull request #1278 from Thekuca/dev
Thekuca Dec 22, 2023
b27bd00
typo in czech locale - Fixed by Negative
TheFantomas Jan 7, 2024
6fa81e2
Added ESX.DeleteJob for Runtime
t1ger-scripts Jan 14, 2024
4cf6aa1
Fixed error for skin no default value
t1ger-scripts Jan 14, 2024
82a9a1a
Fixed typo
t1ger-scripts Jan 14, 2024
090ae55
chore(readme.md)
Thekuca Jan 14, 2024
c010d53
Merge pull request #1283 from Thekuca/dev
Thekuca Jan 14, 2024
a88846f
Merge pull request #1282 from t1ger-scripts/dev
Arctos2win Jan 14, 2024
3b13fe2
Merge pull request #1281 from t1ger-scripts/patch-1
Arctos2win Jan 14, 2024
4c60fc9
Revert "Added ESX.DeleteJob for Runtime"
Arctos2win Jan 14, 2024
e0e60d6
Merge pull request #1284 from esx-framework/revert-1281-patch-1
Arctos2win Jan 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 53 additions & 84 deletions [core]/es_extended/client/functions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -25,32 +25,19 @@ function ESX.GetPlayerData()
end

function ESX.SearchInventory(items, count)
if type(items) == 'string' then
items = { items }
end

local returnData = {}
local itemCount = #items

for i = 1, itemCount do
local itemName = items[i]
returnData[itemName] = count and 0
items = type(items) == 'string' and { items } or items

for _, item in pairs(ESX.PlayerData.inventory) do
if item.name == itemName then
if count then
returnData[itemName] = returnData[itemName] + item.count
else
returnData[itemName] = item
end
end
end
end
local data = {}
for i=1, #items do
for c=1, #ESX.PlayerData.inventory do
if ESX.PlayerData.inventory[c].name == items[i] then
data[items[i]] = (count and ESX.PlayerData.inventory[c].count) or ESX.PlayerData.inventory[c]
end
end
end

if next(returnData) then
return itemCount == 1 and returnData[items[1]] or returnData
end
end
return #items == 1 and data[items[1]] or data
end

function ESX.SetPlayerData(key, val)
local current = ESX.PlayerData[key]
Expand Down Expand Up @@ -336,34 +323,17 @@ end

function ESX.Game.SpawnObject(object, coords, cb, networked)
networked = networked == nil and true or networked
if networked then
ESX.TriggerServerCallback('esx:Onesync:SpawnObject', function(NetworkID)
if cb then
local obj = NetworkGetEntityFromNetworkId(NetworkID)
local Tries = 0
while not DoesEntityExist(obj) do
obj = NetworkGetEntityFromNetworkId(NetworkID)
Wait(0)
Tries = Tries + 1
if Tries > 250 then
break
end
end
cb(obj)
end
end, object, coords, 0.0)
else
local model = type(object) == 'number' and object or joaat(object)
local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z)
CreateThread(function()
ESX.Streaming.RequestModel(model)

local obj = CreateObject(model, vector.xyz, networked, false, true)
if cb then
cb(obj)
end
end)
end

local model = type(object) == 'number' and object or joaat(object)
local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z)
CreateThread(function()
ESX.Streaming.RequestModel(model)

local obj = CreateObject(model, vector.xyz, networked, false, true)
if cb then
cb(obj)
end
end)
end

function ESX.Game.SpawnLocalObject(object, coords, cb)
Expand All @@ -389,12 +359,13 @@ function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked)
if not vector or not playerCoords then
return
end

local dist = #(playerCoords - vector)
if dist > 424 then -- Onesync infinity Range (https://docs.fivem.net/docs/scripting-reference/onesync/)
local executingResource = GetInvokingResource() or "Unknown"
return print(("[^1ERROR^7] Resource ^5%s^7 Tried to spawn vehicle on the client but the position is too far away (Out of onesync range)."):format(executingResource))
end

CreateThread(function()
ESX.Streaming.RequestModel(model)

Expand Down Expand Up @@ -437,20 +408,19 @@ function ESX.Game.GetObjects() -- Leave the function for compatibility
end

function ESX.Game.GetPeds(onlyOtherPeds)
local myPed, pool = ESX.PlayerData.ped, GetGamePool('CPed')

if not onlyOtherPeds then
return pool
end

local peds = {}
for i = 1, #pool do
if pool[i] ~= myPed then
peds[#peds + 1] = pool[i]
local pool = GetGamePool('CPed')

if onlyOtherPeds then
local myPed = ESX.PlayerData.ped
for i = 1, #pool do
if pool[i] == myPed then
table.remove(pool, i)
break
end
end
end
end

return peds
return pool
end

function ESX.Game.GetVehicles() -- Leave the function for compatibility
Expand All @@ -459,18 +429,20 @@ end

function ESX.Game.GetPlayers(onlyOtherPlayers, returnKeyValue, returnPeds)
local players, myPlayer = {}, PlayerId()
local active = GetActivePlayers()

for _, player in ipairs(GetActivePlayers()) do
local ped = GetPlayerPed(player)
for i=1, #active do
local currentPlayer = active[i]
local ped = GetPlayerPed(currentPlayer)

if DoesEntityExist(ped) and ((onlyOtherPlayers and player ~= myPlayer) or not onlyOtherPlayers) then
if returnKeyValue then
players[player] = ped
else
players[#players + 1] = returnPeds and ped or player
if DoesEntityExist(ped) and ((onlyOtherPlayers and currentPlayer ~= myPlayer) or not onlyOtherPlayers) then
if returnKeyValue then
players[currentPlayer] = ped
else
players[#players + 1] = returnPeds and ped or currentPlayer
end
end
end
end
end

return players
end
Expand Down Expand Up @@ -995,12 +967,8 @@ function ESX.Game.Utils.DrawText3D(coords, text, size, font)
local camCoords = GetFinalRenderedCamCoord()
local distance = #(vector - camCoords)

if not size then
size = 1
end
if not font then
font = 0
end
size = size or 1
font = font or 0

local scale = (size / distance) * 2
local fov = (1 / GetGameplayCamFov()) * 100
Expand Down Expand Up @@ -1058,8 +1026,9 @@ function ESX.ShowInventory()
end
end

for _, v in ipairs(ESX.PlayerData.inventory) do
if v.count > 0 then
for i=1, #ESX.PlayerData.inventory do
local v = ESX.PlayerData.inventory[i]
if v.count > 0 then
currentWeight = currentWeight + (v.weight * v.count)

elements[#elements + 1] = {
Expand All @@ -1072,8 +1041,8 @@ function ESX.ShowInventory()
rare = v.rare,
canRemove = v.canRemove
}
end
end
end
end

elements[1].title = TranslateCap('inventory', currentWeight, Config.MaxWeight)

Expand Down
16 changes: 7 additions & 9 deletions [core]/es_extended/client/main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -309,13 +309,13 @@ if not Config.OxInventory then

RegisterNetEvent('esx:removeInventoryItem')
AddEventHandler('esx:removeInventoryItem', function(item, count, showNotification)
for k, v in ipairs(ESX.PlayerData.inventory) do
if v.name == item then
ESX.UI.ShowInventoryItemNotification(false, v.label, v.count - count)
ESX.PlayerData.inventory[k].count = count
for i=1, #ESX.PlayerData.inventory do
if ESX.PlayerData.inventory[i].name == item then
ESX.UI.ShowInventoryItemNotification(false, ESX.PlayerData.inventory[i].label, ESX.PlayerData.inventory[i].count - count)
ESX.PlayerData.inventory[i].count = count
break
end
end
end
end

if showNotification then
ESX.UI.ShowInventoryItemNotification(false, item, count)
Expand Down Expand Up @@ -453,13 +453,11 @@ function StartServerSyncLoops()
end

if not Config.OxInventory and Config.EnableDefaultInventory then
RegisterCommand('showinv', function()
ESX.RegisterInput('showinv', TranslateCap('keymap_showinventory'), 'keyboard', 'F2', function()
if not ESX.PlayerData.dead then
ESX.ShowInventory()
end
end)

RegisterKeyMapping('showinv', TranslateCap('keymap_showinventory'), 'keyboard', 'F2')
end

-- disable wanted level
Expand Down
3 changes: 3 additions & 0 deletions [core]/es_extended/client/modules/actions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ CreateThread(function()
ESX.SetPlayerData('ped', playerPed)
TriggerEvent('esx:playerPedChanged', playerPed)
TriggerServerEvent('esx:playerPedChanged', PedToNet(playerPed))
if Config.DisableHealthRegeneration then
SetPlayerHealthRechargeMultiplier(PlayerId(), 0.0)
end
end

if IsPedJumping(playerPed) and not isJumping then
Expand Down
1 change: 1 addition & 0 deletions [core]/es_extended/fxmanifest.lua
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ files {

dependencies {
'/native:0x6AE51D4B',
'/native:0xA61C8FC6',
'oxmysql',
'spawnmanager',
}
2 changes: 1 addition & 1 deletion [core]/es_extended/locales/cs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ Locales["cs"] = {
['commanderror_invaliditem'] = 'Špatný předmět',
['commanderror_invalidweapon'] = 'Špatná zbraň',
['commanderror_console'] = 'příkaz nelze být zpracován v konzoli',
['commanderror_invalidcommand'] = 'Špatný příakz - /%s',
['commanderror_invalidcommand'] = 'Špatný příkaz - /%s',
['commanderror_invalidplayerid'] = 'Hráč není dostupný',
['commandgeneric_playerid'] = 'Id hráče',
['command_giveammo_noweapon_found'] = '%s nemá tuto zbraň',
Expand Down
82 changes: 41 additions & 41 deletions [core]/es_extended/locales/de.lua
Original file line number Diff line number Diff line change
Expand Up @@ -51,74 +51,74 @@ Locales["de"] = {
["account_money"] = "Bargeld",

["act_imp"] = "Du kannst diese Aktion nicht ausführen!",
["in_vehicle"] = "Du kannst diese Aktion nicht ausführen! Person ist in einem Fahrzeug",
["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle",
["in_vehicle"] = "Person darf nicht in einem Fahrzeug sein!",
["not_in_vehicle"] = "Person muss in einem Fahrzeug sein!",

-- Commands
['command_bring'] = 'Person zu dir bringen',
['command_car'] = 'Fahrzeug Spawnen',
['command_car_car'] = 'Fahrzeug Model oder Hash',
['command_cardel'] = 'Fahrzeuge entfernen',
['command_cardel_radius'] = 'Entfernt alle Fahrzeuge in einem bestimmten Radius',
['command_repair'] = 'Repair your vehicle',
['command_repair_success'] = 'Successfully repaired vehicle',
['command_repair_success_target'] = 'An admin repaired your vehicle',
['command_repair'] = 'Fahrzeug reparieren',
['command_repair_success'] = 'Fahrzeug erfolgreich repariert.',
['command_repair_success_target'] = 'Ein Admin hat dein Fahrzeug repariert.',
['command_clear'] = 'Textchat leeren',
['command_clearall'] = 'Textchat leeren für alle Spieler leeren',
['command_clearinventory'] = 'Alle Items von dem Inventar eines Spielers entfernen',
['command_clearloadout'] = 'Alle waffen von dem Spieler Loadout entfernen',
['command_clearall'] = 'Textchat für alle Spieler leeren',
['command_clearinventory'] = 'Alle Gegenstände vom Inventar eines Spielers entfernen',
['command_clearloadout'] = 'Alle Waffen vom Loadout eines Spielers entfernen',
['command_freeze'] = 'Spieler Freezen',
['command_unfreeze'] = 'Spieler Entfreezen',
['command_giveaccountmoney'] = 'Geld an einen bestimmten Account geben',
['command_giveaccountmoney_account'] = 'Account wohin das Geld hinzugefügt werden soll',
['command_giveaccountmoney_amount'] = 'Anzahl zum hinzufügen',
['command_giveaccountmoney_invalid'] = 'Accountname Ungültig',
['command_giveitem'] = 'Spieler ein item geben',
['command_giveitem_item'] = 'Item Name',
['command_giveitem_count'] = 'Anzahl',
['command_giveaccountmoney'] = 'Geld an ein bestimmtes Konto geben',
['command_giveaccountmoney_account'] = 'Konto, wohin das Geld hinzugefügt werden soll',
['command_giveaccountmoney_amount'] = 'Menge zum Hinzufügen',
['command_giveaccountmoney_invalid'] = 'Accountname ungültig!',
['command_giveitem'] = 'Spieler ein Gegenstand geben',
['command_giveitem_item'] = 'Gegenstand Name',
['command_giveitem_count'] = 'Menge',
['command_giveweapon'] = 'Spieler eine Waffe geben',
['command_giveweapon_weapon'] = 'Waffenname',
['command_giveweapon_ammo'] = 'Munitionsanzahl',
['command_giveweapon_hasalready'] = 'Spieler hat bereits diese Waffe',
['command_giveweapon_hasalready'] = 'Spieler hat diese Waffe bereits!',
['command_giveweaponcomponent'] = 'Waffenkomponent an einen Spieler geben',
['command_giveweaponcomponent_component'] = 'Komponent Name',
['command_giveweaponcomponent_invalid'] = 'Ungültiger Komponent Name',
['command_giveweaponcomponent_hasalready'] = 'Spieler hat bereits diesen Komponent',
['command_giveweaponcomponent_missingweapon'] = 'Spieler hat diese Waffe nicht',
['command_giveweaponcomponent_component'] = 'Komponentenname',
['command_giveweaponcomponent_invalid'] = 'Ungültiger Komponentenname',
['command_giveweaponcomponent_hasalready'] = 'Spieler hat diese Komponente bereits!',
['command_giveweaponcomponent_missingweapon'] = 'Spieler hat diese Waffe nicht!',
['command_goto'] = 'Teleportiere dich zu einem Spieler',
['command_kill'] = 'Spieler Töten',
['command_save'] = 'Von einem bestimmten Spieler die Spielerdaten Speichern',
['command_saveall'] = 'Von allen Spielern die Spielerdaten Speichern',
['command_setaccountmoney'] = 'Geld auf einem bestimmten Account setzen',
['command_setaccountmoney_amount'] = 'Anzahl',
['command_save'] = 'Von einem bestimmten Spieler die Spielerdaten speichern',
['command_saveall'] = 'Von allen Spielern die Spielerdaten speichern',
['command_setaccountmoney'] = 'Geld auf einem bestimmten Konto festlegen',
['command_setaccountmoney_amount'] = 'Menge',
['command_setcoords'] = 'Zu den bestimmten Koordinaten teleportieren',
['command_setcoords_x'] = 'X Koordinate',
['command_setcoords_y'] = 'Y Koordinate',
['command_setcoords_z'] = 'Z Koordinate',
['command_setjob'] = 'Job eines Spielers setzen',
['command_setjob_job'] = 'Name',
['command_setjob_grade'] = 'Job Grad',
['command_setjob_invalid'] = 'Der Job Grad oder beides sind ungültig',
['command_setgroup'] = 'Setzt eine Berechtigungs Gruppe für einen User',
['command_setjob_grade'] = 'Job Rang',
['command_setjob_invalid'] = 'Der Rang oder der Name und Rang sind ungültig',
['command_setgroup'] = 'Setzt eine Berechtigungs Gruppe für einen Benutzer',
['command_setgroup_group'] = 'Name der Gruppe',
['command_removeaccountmoney'] = 'Entfernt Geld von einem bestimmten Account',
['command_removeaccountmoney_account'] = 'Account von wem es entfernt werden soll',
['command_removeaccountmoney_amount'] = 'Anzahl die Entfernt werden soll',
['command_removeaccountmoney_invalid'] = 'Name des Accounts Ungültig',
['commanderror_argumentmismatch'] = 'Ungültiger Argument (gegeben %s, gewollt %s)',
['commanderror_argumentmismatch_number'] = 'Ungültiges Argument #%s daten typ (string gegeben, gewollte nummer)',
['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)',
['commanderror_invaliditem'] = 'Ungültiges Item',
['command_removeaccountmoney'] = 'Entfernt Geld von einem bestimmten Konto',
['command_removeaccountmoney_account'] = 'Konto von dem es entfernt werden soll',
['command_removeaccountmoney_amount'] = 'Menge, die entfernt werden soll',
['command_removeaccountmoney_invalid'] = 'Name des Kontos ungültig',
['commanderror_argumentmismatch'] = 'Ungültiges Argument (gegeben %s, gewollt %s)',
['commanderror_argumentmismatch_number'] = 'Ungültiges Argument #%s Datentyp (String gegeben, Nummer gefordert)',
['commanderror_argumentmismatch_string'] = 'Ungültiges Argument #%s Datentyp (Nummer gegeben, String gefordert)',
['commanderror_invaliditem'] = 'Ungültiger Gegenstand',
['commanderror_invalidweapon'] = 'Ungültige Waffe',
['commanderror_console'] = 'Befehl kann nicht von der Konsole aus ausgeführt werden',
['commanderror_console'] = 'Befehl kann nicht von der Konsole aus ausgeführt werden!',
['commanderror_invalidcommand'] = 'Ungültiger Befehl - /%s',
['commanderror_invalidplayerid'] = 'Angegebener Spieler ist nicht online!',
['commandgeneric_playerid'] = 'Spieler`s ID',
['command_giveammo_noweapon_found'] = '%s besitzt diese Waffe nicht',
['commandgeneric_playerid'] = 'Spieler ID',
['command_giveammo_noweapon_found'] = '%s besitzt diese Waffe nicht!',
['command_giveammo_weapon'] = 'Waffenname',
['command_giveammo_ammo'] = 'Munitionsanzahl',
['tpm_nowaypoint'] = 'Kein Wegpunkt gesetzt.',
['tpm_success'] = 'Erfolgreich teleportiert',
['tpm_nowaypoint'] = 'Kein Wegpunkt gesetzt!',
['tpm_success'] = 'Erfolgreich teleportiert.',

['noclip_message'] = 'Noclip wurde %s',
['enabled'] = '~g~Aktiviert~s~',
Expand Down Expand Up @@ -233,7 +233,7 @@ Locales["de"] = {
["weapon_tactilerifle"] = "Service Karabiner",

-- Drug Wars DLC
['weapon_candycane'] = 'Zuckerstange',
['weapon_candycane'] = 'Zuckerstange',
['weapon_acidpackage'] = 'Säure Paket',
['weapon_pistolxm3'] = 'WM 29 Pistole',
['weapon_railgunxm3'] = 'Railgun',
Expand Down
Loading
Loading