Script
Das TimeCord-Skript erfasst die Zeit automatisch von deinem Gameserver, sodass Spieler keinen Knopf in Discord drücken müssen. Wenn ein Spieler in den Dienst geht, wird sein verknüpfter Discord-Account eingestempelt, und wenn er den Dienst verlässt, wird er ausgestempelt.
Das aktuelle Skript ist in Lua für FiveM geschrieben und unterstützt das ESX-Framework.
Bist du ein guter qbcore-Scripter und möchtest uns helfen, das Skript auf qbcore zu übertragen? Melde dich auf unserem Discord.
So funktioniert es
Das Skript lauscht auf die ESX-Events esx:playerLoaded und esx:playerDropped. Sobald eines ausgelöst wird, liest es den ESX-Job des Spielers, sucht den für diesen Job konfigurierten API-Key und sendet eine HTTP-Anfrage an TimeCord, das den Rest erledigt. TimeCord ordnet den Spieler seinem Discord-Account zu und stempelt ihn ein oder aus. Kurz gesagt: In den Dienst gehen stempelt ein, den Dienst verlassen stempelt aus.
Download
Hol dir das Skript hier: github.com/DanielLogisch/timecord_esx_script
Voraussetzungen
Du brauchst die Node.js-Runtime auf dem Gameserver, um die Abhängigkeiten des Skripts zu installieren.
Windows: Lade den Installer von nodejs.org herunter und führe ihn aus.
Linux: Folge dieser Anleitung.
Installation
Windows
Gehe zu deinem FXServer-
resources-Ordner und entpacke das Skript als neuen Ordner.Führe
windows_setup.bataus, um die benötigten Abhängigkeiten automatisch zu installieren.Aktiviere den Autostart, indem du dies in deine
server.cfgeinträgst:
Linux
Gehe zu deinem FXServer-
resources-Ordner, erstelle einen neuen Ordner und füge die Skriptquelle dort ein.Gehe in den Skriptpfad.
Mache das Setup-Skript ausführbar:
chmod +x linux_setup.shFühre es aus:
./linux_setup.shAktualisiere deine
server.cfg, um den Autostart zu aktivieren.
ESX-Objekt importieren
Neuere ESX-Versionen importieren das Shared Object anders. Wenn du eine neuere Version nutzt, passe das Skript entsprechend an:
Konfiguration
TimeCord verknüpft einen API-Key mit jedem Job. Ordne in der Skript-Konfiguration Jobnamen den Keys zu:
Der Key ist der exakte Jobname, wie er in deiner Datenbank steht, damit das Skript prüfen kann, ob ein Spieler diesen Job hat. Der Wert ist der API-Key für den Server, auf dem dein Bot läuft. Erstelle Keys im Dashboard unter Settings -> Script. Du kannst beliebig viele Jobs hinzufügen, und nur die hier gelisteten Jobs werden erfasst.
Stelle in den Skript-Einstellungen des Dashboards sicher, dass die IP-Adresse deines Gameservers konfiguriert ist, sonst werden Anfragen abgelehnt. Und gib deinen API-Key niemals weiter.
Eigenes Dienst-Event
Wenn dein Server ein On/Off-Duty-System hat, bei dem Spieler den Dienst umschalten, ohne den Server zu verlassen, nutze das eigene Event, um sie ein- oder auszustempeln. Übergib true zum Einstempeln und false zum Ausstempeln.
Fehlerbehebung
esx:playerDroppedwird nicht ausgelöst. Manche Server berichten, dass dieses Event nicht richtig funktioniert, wodurch eine Sitzung offen bleiben kann. Es kann von deinem ESX-Setup oder einer anderen Ressource überschrieben werden. Als Workaround entfernst duonNet('esx:playerDropped')aus dem Skript und ersetzt es durch dein eigenes Event, oder du nutzt stattdessen das FiveM-EventplayerDropped.Ein Job wird nicht erfasst. Prüfe, ob der Jobname in der Konfiguration exakt mit dem ESX-Jobnamen übereinstimmt und ob der zugehörige API-Key in deinem Dashboard gültig ist.
Vergessene Sitzungen. Falls ein Ausstempeln einmal verpasst wird, schließt das automatische Ausstempeln von TimeCord Sitzungen, die zu lange offen bleiben (siehe Statistiken & Zeit).
Brauchst du Hilfe beim Schreiben oder Erweitern eines Skripts? Öffne ein Ticket auf unserem Discord.
Zuletzt aktualisiert