-- ===================================================================== -- aether-admin / Modul: Wirtschaft -- -- Geldmenge, Staatskasse und Steuer. Die Geldmenge wird live aus allen -- Charakteren summiert — keine Schätzung. -- ===================================================================== Admin = Admin or {} Admin.Kern.Registriere('wirtschaft', 'laden', function(handelnder, daten) local summe = MySQL.query.await([[ SELECT COALESCE(SUM(cash), 0) AS bargeld, COALESCE(SUM(bank), 0) AS konto, COUNT(*) AS anzahl FROM aether_characters WHERE deleted = 0 ]])[1] or { bargeld = 0, konto = 0, anzahl = 0 } local umlauf = tonumber(summe.bargeld) + tonumber(summe.konto) local online = #(GetPlayers() or {}) return { umlauf = umlauf, staatskasse = Admin.DB.EinstellungZahl('staatskasse', 0), steuer = Admin.DB.EinstellungZahl('steuersatz', 8), charaktere = tonumber(summe.anzahl), online = online, rechte = Admin.Kern.RechteAbbild(handelnder.quelle), } end) Admin.Kern.Registriere('wirtschaft', 'geldAlle', function(handelnder, daten) local betrag = math.floor(tonumber(daten.betrag) or 0) if betrag == 0 then return nil, 'Bitte einen Betrag angeben.' end local anzahl = 0 for _, sid in ipairs(GetPlayers() or {}) do local s = tonumber(sid) if exports['aether-core']:HoleSpielerInfo(s) then if betrag > 0 then exports['aether-core']:FuegeGeldHinzu(s, 'bank', betrag, 'Admin-Auszahlung') else exports['aether-core']:EntferneGeld(s, 'bank', -betrag, 'Admin-Abzug') end anzahl = anzahl + 1 end end Admin.Log.Schreibe(handelnder, 'Geld an alle', anzahl .. ' Spieler', (betrag > 0 and '+' or '') .. betrag) return { ok = true, anzahl = anzahl } end) Admin.Kern.Registriere('wirtschaft', 'kasse', function(handelnder, daten) local wert = math.floor(tonumber(daten.wert) or 0) Admin.DB.SetzeEinstellung('staatskasse', wert) Admin.Log.Schreibe(handelnder, 'Staatskasse gesetzt', nil, tostring(wert)) return { ok = true } end) Admin.Kern.Registriere('wirtschaft', 'steuer', function(handelnder, daten) local wert = math.max(0, math.min(100, math.floor(tonumber(daten.wert) or 0))) Admin.DB.SetzeEinstellung('steuersatz', wert) Admin.Log.Schreibe(handelnder, 'Steuersatz gesetzt', nil, wert .. '%') return { ok = true } end)