Server-Exports

Läden anlegen, schließen, verbilligen und für einen Spieler öffnen.

Läden lesen

GetShops

Server
exports.cs_shops:GetShops()

Gibt zurücktable { id, name, type, label, accent, description, position, interact, runtime, payment, jobs, license, hours, enabled, open, prices }[]. open ist eingeschaltet und innerhalb der Öffnungszeit, prices der Multiplikator.

GetShop

Server
exports.cs_shops:GetShop(id)

Gibt zurücktable | nil

GetShopId

Server
exports.cs_shops:GetShopId(name)

Gibt zurücknumber | nil

GetShopStock

Server
exports.cs_shops:GetShopStock(id)

Was im Regal liegt, mit den Preisen, die der Laden gerade nimmt. Gecacht, also billig.

Gibt zurücktable | nil { { label, icon, items = { { name, label, price, max, weapon } } } }

Läden ändern

CreateShop

Server
exports.cs_shops:CreateShop(shop)

Ein Laden, der nur existiert, solange der Server läuft, sofort auf jedem Client. Derselbe Block wie in Config.Shops, gelesen wird er einmal.

Gibt zurücknumber | nil die ID, oder nil ohne Position oder ohne Sortiment

Beispiel
local id = exports.cs_shops:CreateShop({
    name       = 'blackfriday',
    position   = vector3(1234.0, -567.0, 63.0),
    label      = 'BLACK FRIDAY',
    accent     = 'Popup',
    ped        = 's_m_y_dealer_01',
    heading    = 90.0,
    categories = { { label = 'Deals', icon = 'all', items = {
        { 'bread', 1 },
    }}},
})

RemoveShop

Server
exports.cs_shops:RemoveShop(id)

Nimmt einen Laden weg, auch einen aus der Config und schickt alle darin raus. Die ID wird nie neu vergeben.

SetShopEnabled

Server
exports.cs_shops:SetShopEnabled(id, enabled)

Schließt einen Laden, ohne ihn zu entfernen. Marker, Blip und Verkäufer bleiben, wer öffnen will, hört, dass er zu ist. Alle darin fliegen raus. Für einen Raub oder ein Event.

Beispiel
exports.cs_shops:SetShopEnabled(2, false)

IsShopEnabled

Server
exports.cs_shops:IsShopEnabled(id)

Gibt zurückboolean | nil

SetPriceMultiplier

Server
exports.cs_shops:SetPriceMultiplier(id, factor)

0.8 ist zwanzig Prozent weniger, 1.5 ein Event-Wochenende, 0 gratis. Einmal auf ganze Beträge gerundet, damit Fenster, Korb und Log dieselbe Zahl zeigen. Wer im Laden steht, fliegt raus, er sieht noch die alten Preise.

Beispiel
exports.cs_shops:SetPriceMultiplier(1, 0.8)

GetPriceMultiplier

Server
exports.cs_shops:GetPriceMultiplier(id)

Gibt zurücknumber | nil 1.0, wenn nie geändert

Für einen Spieler

OpenShop

Server
exports.cs_shops:OpenShop(source, id)

Öffnet einen Laden für einen Spieler, wo er auch steht. Der einzige Weg in einen Laden mit interact = false und der Weg für eine Handy-App oder einen Job-Computer. Von hier aus wird keine Lizenz angeboten, die Antwort ist license.

Gibt zurückboolean, string, string true, oder false und ein Grund: unknown, error, unavailable, closed, job, license, empty, custom. Bei custom kommt der Satz deines Hooks als dritter Wert.

Beispiel
exports.cs_shops:OpenShop(source, exports.cs_shops:GetShopId('phone'))

CloseShop

Server
exports.cs_shops:CloseShop(source)

Gibt zurückboolean

GetPlayerShop

Server
exports.cs_shops:GetPlayerShop(source)

Gibt zurücknumber | nil der Laden, in dem der Spieler gerade steht

CanPlayerUse

Server
exports.cs_shops:CanPlayerUse(source, id)

Ob ein Spieler gerade reinkäme, ohne zu öffnen. Gut zum Ausgrauen eines Menüeintrags.

Gibt zurückboolean, string wie bei OpenShop

Frage offen geblieben?

Schreib uns im Discord. Mit Konsolen-Auszug, Framework und Script-Version ist die erste Antwort meistens schon die Lösung.

Zum Support