Ich habe kleines Problem und habe keine Ahnung, was ich falsch mache.
Bei es_extended in player.lua habe ich admin hinzugefügt. Ich habe es auch geprintet, wird alles korrekt aus der Datenbank geladen, admin wird korrekt in DEBUG-LOGIN 1 (Siehe Auszug Script) geprintet.
Ich habe eine Function erstellt, um den Wert von admin überall innerhalb des Ressourcen auslesen zu können.
Auszug Script
function CreatePlayer(source, admin, money, bank, identifier, license, group, roles)
local self = {}
-- Initialisieren alle Anfangsvariablen für einen Benutzer
self.source = source
--self.permission_level = permission_level
self.admin = admin
self.money = money
self.bank = bank
self.identifier = identifier
self.license = license
self.group = group
self.coords = {x = 0.0, y = 0.0, z = 0.0}
self.session = {}
self.bankDisplayed = false
self.moneyDisplayed = false
self.roles = stringsplit(roles, "|")
if self.admin ~= nil then
print("DEBUG-LOGIN 1: " .. self.admin);
end
if self.money ~= nil then
print("DEBUG-LOGIN 2: " .. self.money);
end
if self.bank ~= nil then
print("DEBUG-LOGIN 3: " .. self.bank);
end
if self.identifier ~= nil then
print("DEBUG-LOGIN 4: " .. self.identifier);
end
if self.license ~= nil then
print("DEBUG-LOGIN 5: " .. self.license);
end
-- FXServer <3
ExecuteCommand('add_principal identifier.' .. self.identifier .. " group." .. self.group)
local rTable = {}
rTable.getAdmin = function()
return self.admin
end
Alles anzeigen
Um das im Script zu testen, habe ich ein Befehl erstellt, der mir den Wert von admin zurück gibt
RegisterCommand('palwal', function(source, args, rawCommand)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.getAdmin() > 0 then
print("ADMIN über 0");
else
print("ADMIN 0")
end
TriggerClientEvent('chat:addMessage', source, { args = { '^1SYSTEM', 'ID ' .. xPlayer.getAdmin() } })
print("PALWAL: " .. xPlayer.getAdmin()
.. " > " )
end, true)
Alles anzeigen
Problem:
@es_extended/server/commands.lua: attempt to index a nil value (local 'xPlayer')
-> ref (@es_extended/server/commands.lua:25)
.. Sprich, der Wert in xPlayer.getAdmin() ist null. Wenn ich jedoch getAdmin mit bspw. 2 statt der Variable self.admin returne, dann funktioniert es.
Ich bin ratlos weil paar Zeilen vorher wird self.admin korrekt angezeigt und ist nicht null.
Was ist verkehrt?