Hallo! Dieses Event gibt es in ESX seit etwa 5 Jahren und sollte nicht mehr verwendet werden, da wir jetzt viel bessere Möglichkeiten haben, das ESX-Objekt in Ihr Skript zu importieren!
IMPORT
Der Import kann verwendet werden, indem man einfach Folgendes in die fxmanifest.lua einfügt:
shared_script '@es_extended/imports.lua'
Der Import ist die beste und empfohlene Möglichkeit, ESX innerhalb eines Skripts zu verwenden. Dies liegt daran, dass die Daten zwischen ESX und dem Skript automatisch synchronisiert werden, was bedeutet, dass das Skript automatisch Kenntnis von ESX.PlayerData hat und auch weiß, ob Sie darin geladen sind Die Möglichkeit zu erkennen, wann Sie sich neu anmelden und/oder Charaktere wechseln, was bedeutet, dass keine anfälligen Ereignisse erforderlich sind, bis hin zur Notwendigkeit, jedes Mal, wenn Sie sie verwenden möchten, die gesamte Spielerdatentabelle abrufen zu müssen, ist einfach da und funktioniert und ist erstaunlich.
EXPORT
Der Export kann einfach wie folgt verwendet werden:
ESX = exports["es_extended"]:getSharedObject()
Dies ist großartig, wenn Sie an einem Multi-Framework-Skript arbeiten, sodass der Benutzer nichts ändern muss, um zwischen den Frameworks zu wechseln. Es hat auch den Vorteil, dass Sie nicht warten müssen, bis das Objekt empfangen wurde, und Race Conditions verhindert werden.
Beispiel
Wie das genau geht, zeigen wir im folgenden Beispiel. Ich empfehle dieses Skript niemandem, aber wir zeigen es trotzdem.
Wir werden dies am veralteten esx_communityservice demonstrieren.
IMPORT
Zunächst zeigen wir die empfohlene und vorteilhafteste Methode, die Importmethode.
Löschen Sie die Zeilen 13 und 28 -> 33 aus der Datei client/main.lua.
ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
Anschließend werden wir auch die Zeilen 1 und 3 aus der server/main.lua entfernen.
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Anschließend importieren wir die es_extended-Tabellen in die Ressource. Dies kann durch Hinzufügen der folgenden Zeile in fxmanifest.lua oder __resource.lua erfolgen:
shared_script '@es_extended/imports.lua'
EXPORT
Als zweite und letzte Option zeigen wir die Exportmethode. Wir werden wieder dieselben Zeilen aus der Client- und Serverdatei löschen wie bei der Importmethode oben.
Allerdings exportieren wir nun im Gegensatz zum Import die ESX-Tabelle in unsere Ressource. Wir fügen diesen Export ganz am Anfang von client/main.lua und server/main.lua hinzu.
ESX = exports["es_extended"]:getSharedObject()