
Ved Emotive Reactions verbindet konfigurierte Spieler-Emotes mit Animationen naher NPCs und optionalen Textantworten. Version 1.0.0 ist im Kern frameworkunabhängig; die mitgelieferte Konfiguration wählt jedoch qb-Benachrichtigungen. Für eigenständige Nutzung muss deshalb diese Einstellung geprüft werden, statt funktionierende Standardwerte ohne QBCore vorauszusetzen.
Befehlsmodus und Benachrichtigungen einrichten
Belasse fxmanifest.lua, config.lua sowie die Verzeichnisse client und server in ved-emotivereactions. Nutze ensure ved-emotivereactions nach der gewählten Benachrichtigungsabhängigkeit. Der standardmäßige Erkennungsmodus ist command, beispielsweise mit /react wave. Konfiguriert sind die Emotes wave, salute3 und dance.
NotificationFramework wählt qb, esx, oxlib oder die native Ausweichlösung. Gleiche client/utils.lua mit der tatsächlich installierten Benachrichtigungs-API ab. Laut README müssen ox_lib-Nutzer den Initialisierungsimport im Manifest aktivieren. Reduziere die standardmäßigen Debug-Ausgaben nach dem Test für den normalen Betrieb.
NPC-Auswahl und Anfragenbegrenzung
Die Standardwerte berücksichtigen höchstens zwei geeignete NPCs im Umkreis von sieben Metern, überspringen feindselige oder fliehende NPCs und verwenden zehn Sekunden Wartezeit pro NPC. Emote-Wahrscheinlichkeiten und Zonenmultiplikatoren bedeuten, dass ein naher NPC nicht garantiert reagiert. Text kann im Chat, über dem NPC oder an beiden Stellen erscheinen.
Der Server prüft Emote-Namen, Koordinaten-Datentyp und höchstens fünf Anfragen je 60-Sekunden-Fenster. Die ACE-Berechtigung ved.emotivereactions.bypass umgeht diese Begrenzung. Die Koordinaten stammen weiterhin vom Client und werden nicht mit seiner tatsächlichen Serverposition verglichen; NPC-Auswahl und Reaktionen laufen beim anfragenden Client. Diese Prüfungen garantieren weder allgemeine Sicherheit noch Mehrspieler-Synchronisation.
Loop-Modus vor dem Aktivieren prüfen
In client/emote_detection.lua wird animDuration lokal innerhalb des Loop-Zweigs deklariert, danach aber außerhalb dieses Zweigs zur Berechnung der verbleibenden Wartezeit verwendet. Dieser spätere Zugriff erreicht die lokale Variable nicht und kann im Loop-Modus einen Rechenfehler mit nil auslösen. Korrigiere den Gültigkeitsbereich und teste wiederholte Erkennung vor dem Wechsel vom Befehlsmodus.
Teste außerdem ungültige Animations-Dictionaries, Abbruch, verschwindende NPCs und das Zusammenspiel mit vorhandenen Emote-Skripten. Das Warten auf Animationen hat kein Zeitlimit; der Code löscht Ped-Aufgaben. Quellcode am 10. September 2026 in Revision 0f4cd049f781c5f266be130b8a9159308065badb geprüft. Es gab keinen Spiel-, Leistungs- oder Synchronisationstest.