Factions¶
Verwaltet Fraktionszugehörigkeit, Dienstbereitschaft und Gehalts-Auszahlungen. Basiert auf Config.Factions und speichert den State in character.metadata.
Konfiguration¶
Fraktionen werden in Config.Factions definiert:
Config.Factions = {
lspd = {
paycheck = 0, -- globales Gehalt (überschrieben durch ranks)
useDuty = true, -- Dienststatus-System aktiv?
defaultDuty = false, -- Standard-Dienststatus beim Login
ranks = {
[0] = { name = 'Cadet', paycheck = 500 },
[1] = { name = 'Rookie', paycheck = 800 },
[3] = { name = 'Officer',paycheck = 1200 },
[12] = { name = 'Chief', paycheck = 5000 },
}
},
unemployed = {
paycheck = 0,
useDuty = false,
}
}
Rang-Bereich
Gültige Ränge: 0–12. Rang 0 ist Standard.
API (Server)¶
Duty¶
-- Dienststatus lesen
cv.factions.getDutyState(source) -- → boolean | nil
-- Dienststatus setzen
cv.factions.setDuty(source, isOnDuty) -- → true | false, error
-- Dienststatus umschalten
cv.factions.toggleDuty(source) -- → true | false, error
Rang & Fraktion¶
-- Rang in DB setzen und live aktualisieren
cv.factions.setFactionRank(charId, rank) -- → boolean
-- Fraktion wechseln (setzt auf Rang 0, resettet Minuten)
cv.factions.handleFactionChange(player, factionName)
Gehalt¶
-- Gehalt für Rang abfragen
cv.factions.getPaycheckForRank(factionName, rank) -- → number
-- Rangnamen abfragen
cv.factions.getRankName(factionName, rank) -- → string
-- Alle Ränge einer Fraktion
cv.factions.getAllRanks(factionName)
-- → { [rankNum] = { rank, name, paycheck } }
Fraktions-Config¶
Fraktions-Budget (experimental)¶
cv.factions.addFunds(factionName, amount) -- → boolean
cv.factions.removeFunds(factionName, amount)-- → boolean
cv.factions.getFunds(factionName) -- → number
Exports¶
Alle Funktionen sind auch als exports['cv_framework'] verfügbar:
local ok = exports['cv_framework']:SetDuty(source, true)
local pay = exports['cv_framework']:GetPaycheckForRank('lspd', 3)
Paycheck-System¶
Gehalts-Auszahlung läuft serverseitig im 1-Minuten-Takt. Nach 60 angesammelten Minuten wird das Gehalt auf das Bankkonto gebucht und eine Notification gesendet.
- Fraktionen mit
useDuty = true: Minuten werden nur gezählt, wennduty = true unemployedund Fraktionen ohne Rang-Config: kein Gehalt
Events¶
-- Wird ausgelöst wenn ein Charakter geladen wird
AddEventHandler('cv_framework:player:characterLoaded', function(player)
-- Fraktions-State wird automatisch initialisiert
end)
Integrierter Command¶
Schaltet den Dienststatus um. Nur für Fraktionen mit useDuty = true aktiv.
Fehler-Strings¶
| Fehler | Bedeutung |
|---|---|
no_character |
Kein Charakter geladen |
not_duty_faction |
Fraktion hat kein Duty-System |