Installation
config.luaanpassen (HCSConfig.Framework,HCSConfig.Inventory,HCSConfig.Locale,HCSConfig.AccentColor).- Als Dependency in den anderen HCS_* Resources eintragen (siehe
dependencies { 'HCS_lib' }und@HCS_lib/init.lua).
cfgensure es_extended # oder qb-core / qbx_core ensure HCS_lib
ESX/QB und das Inventar werden bei HCSConfig.Framework = 'auto' automatisch erkannt. HCS_lib selbst macht nichts Sichtbares, sondern stellt nur Bridge, Notify, Locale und Callback für die anderen Resources bereit.
Standalone (eigenes Framework)
Läuft kein ESX, QBCore oder Qbox (oder steht HCSConfig.Framework = 'standalone'), holen alle HCS-Scripts ihre Framework-Daten aus HCS_lib/shared/functions.lua. Dort bindest du dein Framework einmal an, danach funktionieren alle HCS-Scripts damit.
Die Standardwerte laufen ohne Framework: Identifier ist die license:, Name der FiveM-Name, es gibt kein Geld, keine Items und keinen Job.
Server
| Funktion | Rückgabe | Wofür |
|---|---|---|
CustomBridge.GetIdentifier(src) | string | Eindeutige, dauerhafte ID des Spielers (bei Multichar die Charakter-ID) |
CustomBridge.GetName(src) | string | Charaktername in den UIs |
CustomBridge.GetJob(src) | name, grade, label | Job, Rang und Anzeigename, z. B. 'police', 2, 'Police | Sergeant' |
CustomBridge.SetJob(src, job, grade) | boolean | Job setzen (z. B. HCS_invite) |
CustomBridge.GetGroup(src) | string | Team-Gruppe, wird mit Config.Permissions[...].groups verglichen |
CustomBridge.GetMoney(src, account) | number | Kontostand, account = 'money' (Bargeld) oder 'bank' |
CustomBridge.AddMoney(src, account, amount) | boolean | Geld gutschreiben |
CustomBridge.RemoveMoney(src, account, amount) | boolean | Geld abziehen, nur true wenn es wirklich abgezogen wurde |
CustomBridge.GiveItem(src, item, amount) | boolean | Item geben |
CustomBridge.HasItem(src, item, amount) | boolean | Item vorhanden |
CustomBridge.RemoveItem(src, item, amount) | boolean | Item entfernen |
CustomBridge.GetItemList() | table | Item-Auswahl, z. B. { { value = 'bread', label = 'Brot' } } |
Die Item-Funktionen werden nur genutzt, wenn kein unterstütztes Inventar läuft. Mit ox_inventory gehen Items automatisch darüber.
Client
| Funktion | Rückgabe | Wofür |
|---|---|---|
CustomBridge.GetMoney() | cash, bank | Geldanzeige im HUD |
CustomBridge.GetJob() | name, grade, label | Jobanzeige im HUD, Job-Stores im Clothingshop |
CustomBridge.GetName() | string | Charaktername |
CustomBridge.Notify(message, type, title) | - | Benachrichtigung, wenn HCS_hud nicht läuft |
CustomBridge.HelpNotify(message) | - | Hilfetext, wenn HCS_hud nicht läuft |
Jobwechsel melden
Wechselt ein Spieler den Job, löst du auf dem Client dieses lokale Event aus. HUD und Clothingshop aktualisieren sich dann sofort.
luaTriggerEvent('HCS:jobChanged')
Beispiel
luafunction CustomBridge.GetMoney(src, account) return exports['my_framework']:GetMoney(src, account) end function CustomBridge.RemoveMoney(src, account, amount) return exports['my_framework']:RemoveMoney(src, account, amount) == true end
Script-spezifische Anbindungen (Fahrzeugschlüssel, Tank, Handy, ...) liegen nicht hier, sondern in der shared/functions.lua des jeweiligen Scripts.
