Utils¶
Hilfsfunktionen für Identifier, Steam-/Discord-API, Fahrzeugsuche, Tabellenoperationen und Asset-Loading.
Identifier (Server)¶
-- Einzelnen Identifier eines Spielers holen (ohne Präfix)
cv.utils.getPlayerIdentifier(src, idType)
-- Mögliche idType-Werte: "steam", "discord", "license", "license2", "xbl", "live", "fivem", "ip"
-- Alle Identifier auf einmal
cv.utils.getAllPlayerIdentifiers(src)
-- → { steam, discord, license, license2, xbl, live, fivem, ip }
Beispiel¶
local license = cv.utils.getPlayerIdentifier(source, 'license')
local discord = cv.utils.getPlayerIdentifier(source, 'discord')
local allIds = cv.utils.getAllPlayerIdentifiers(source)
print(allIds.steam, allIds.discord)
Steam-API (Server)¶
-- Steam-Hex-ID → Steam64-Decimal konvertieren
cv.utils.steam.convertId(steamId) -- → string | nil
-- Steam-Profil über API abrufen (async)
cv.utils.steam.getData(identifier, function(playerData)
if playerData then
print(playerData.personaname, playerData.avatarfull)
end
end)
Voraussetzung
steam_webApiKey muss in der server.cfg als Convar gesetzt sein.
Discord-API (Server)¶
-- Discord-Mitglied aus dem Server-Guild abrufen (async)
cv.utils.discord.getData(discordId, function(member)
if member then print(member.nick) end
end)
-- Avatar-URL generieren
cv.utils.discord.getAvatarUrl(discordId, avatarHash) -- → URL string
-- Prüfen, ob Mitglied eine bestimmte Rolle hat (async)
cv.utils.discord.checkGuildRole(memberId, roleId, function(hasRole)
if hasRole then
-- Spieler hat die Rolle
end
end)
Voraussetzungen
discord_botToken und discord_guildId müssen als Convars gesetzt sein.
Spieler-Hilfsfunktionen (Server)¶
-- Ping
cv.utils.player.getPing(src) -- → number
-- Verbindungsstatistiken (RTT, Packet Loss, …)
cv.utils.player.getConnectStats(src)
-- → { packetLoss, packetLossVariance, rtt, rttVariance, … }
-- Spieler kicken
cv.utils.player.kick(src, reason)
-- Nachricht in Client-Konsole schreiben
cv.utils.clientprint(src, message)
Geldformatierung¶
Fahrzeuge (Client & Server)¶
-- Alle Fahrzeuge in Radius (Client & Server)
cv.utils.getNearbyVehicles(coords, maxDistance, includePlayerVehicle)
-- → { { vehicle, coords, model, heading, spawnName? } }
-- Nächstes Fahrzeug in Radius (Client)
cv.utils.getClosestVehicle(coords, maxDistance, includePlayerVehicle)
-- → vehicle, vehicleCoords
Asset-Loading (Client, async)¶
-- Model laden und warten bis bereit
local model = cv.utils.requestModel('ambulance', 10000)
-- AnimDict laden und warten
local dict = cv.utils.requestAnimDict('move_m@gas_pump', 10000)
-- Warten bis Callback einen Wert zurückgibt
local value = cv.utils.waitFor(function()
if condition then return result end
end, 'Timeout-Nachricht', 5000)
UI-Hilfsfunktionen (Client)¶
-- Minimap ein-/ausblenden
cv.utils.showMinimap(true)
cv.utils.showMinimap(false)
-- Prüfen ob Pause-Menü aktiv ist
if cv.utils.isPauseMenu() then return end
Tabellen-Hilfsfunktionen¶
-- Prüfen ob Wert in Tabelle enthalten ist
cv.table.contains(tbl, value) -- → boolean
-- Funktioniert auch mit Arrays als Suchwert (alle Elemente müssen enthalten sein):
cv.table.contains({ 'a', 'b', 'c' }, { 'a', 'b' }) -- → true