API Funktionen

Hier finden Sie alle Funktionen der Tablet API integration

I. Rechnungs Integration

Mit der API-Verbindung und dem Tablet kann das Ticket System von EmergencyOS mit Ihrem Rechnungssystem verknüpft werden, dadurch bekommt ein Spieler automatisch eine Rechung wenn ein Ticket für ihn ausgestellt wurde. Wenn die Rechnung bezahlt wird, wird auch das Ticket automatisch als bezahlt markiert.

Einrichtung

Um Ihr Rechnungssystem zu integrieren, öffnen Sie die api_config.lua, dort finden Sie die Konfiguration für die Rechnungsintegration.

SVConfig.UseBilling = true
SVConfig.UseBillingUI = true
SVConfig.UseCustomBillAssign = false
SVConfig.BillingTrigger = "EmergencyOS:billPayed"

Konfigurationen

SVConfig.UseBilling = true

Hier können sie einstellen, ob Sie die Rechnungsintegration nutzen möchten.

SVConfig.UseBillingUI = true

Hier können sie auswählen, ob Sie das Script "BillingUi" von jaksam1074 für ihre Rechnungen benutzen. Dieses wurde bereits standartmäßig integriert.

SVConfig.UseCustomBillAssign = false

Falls Sie ein anderes Rechnungssystem als esx_billing oder billingUi benutzen, müssen sie dies auf true setzen und dann in sv_integrations.lua die Rechnungserstellung selbst konfigurieren.

SVConfig.BillingTrigger = "EmergencyOS:billPayed"

Dies ist der Trigger welcher an der stelle in ihrem Rechnungssystem getriggert werden muss, an der die Rechnung bezahlt wird. Dieser Trigger muss die billId übergeben.

TriggerEvent("EmergencyOS:billPayed", billId)
-- oder
exports["EmergencyOS"]:billPaid(billId)

Integration in Rechnungssystem

Um die Rechnungsintegration verwenden zu können müssen die das oben genannte TriggerEvent in ihr Rechnungssystem integrieren um EmergencyOS mitzuteilen, sobald eine Rechnung bezahlt wurde.

Hier finden Sie nun einige Beispiele anhand von bekannten Rechnungssystemen

Beispiel 1: esx_billing

Diese Anleitung basiert auf der Version 1.9.1 von esx_billing, es sollte bei älteren Versionen ähnlich oder sogar gleich funktionieren. Wir geben aber keinen Support bei Problemen mit älteren Versionen.

Navigieren Sie zu ihrem resources Ordner und suchen nach esx_billing, öffnen sie diesen Ordner und klicken Sie auf /server und dann server.lua.

Ändern die in den Zeilen: 58, 71, 95 & 110

Diesen Code:

MySQL.update('DELETE FROM billing WHERE id = ?', {billId},
function(rowsChanged)

Zu diesem:

TriggerEvent("EmergencyOS:billPayed", billId)
MySQL.update('DELETE FROM billing WHERE id = ?', {billId},
function(rowsChanged)

Jetzt wird jedes mal, wenn eine Rechnung, egal welches types bezhalt wird, das Event bei EmergencyOS getriggert und falls zu dieser billId ein Ticket existiert, wird dieses auf bezahlt gesetzt.

Beispiel 2: myBilling

Diese Anleitung basiert auf der Version 1.3.0 von myBilling, es sollte bei älteren Versionen ähnlich oder sogar gleich funktionieren. Wir geben aber keinen Support bei Problemen mit älteren Versionen.

Navigieren Sie zu ihrem resources Ordner und suchen nach myBilling, öffnen sie diesen Ordner und klicken Sie dann auf server.lua.

Ändern die in der Zeile 162, bzw. fügen sie hinzu:

Diesen Code:

TriggerClientEvent('myBills:msg', xPlayer.source, Translation[Config.Locale]['bill_paid'] .. amount .. Translation[Config.Locale]['bill_paid2'])
TriggerClientEvent('myBills:refreshMenu', _source)

Zu diesem:

TriggerEvent("EmergencyOS:billPayed", invoiceID)
TriggerClientEvent('myBills:msg', xPlayer.source, Translation[Config.Locale]['bill_paid'] .. amount .. Translation[Config.Locale]['bill_paid2'])
TriggerClientEvent('myBills:refreshMenu', _source)

Jetzt wird jedes mal, wenn eine Rechnung bezahlt wird das Event bei EmegergencyOS getriggert und die invoiceID wird übergeben.

Da die Rechnugssaustellung für myBilling noch nicht standartmäßig unterstützt wird, müssen sie dies selbständig in sv_integrations.lua integrieren. Hier sit ein Code Snippet welches funktionieren sollte.

In diesem Snippet wird davon ausgegangen, dass Sie eine ESX Version glich oder höher als 1.8.5 verwenden und oxmysql nutzen.

ESX = exports["es_extended"]:getSharedObject()

function FrameworkCreateBill(targetIdentifier, billSender, billSociety, billText, billAmount)

    local billTargetPlayer = ESX.GetPlayerFromIdentifier(targetIdentifier)

    local billId = MySQL.insert.await('INSERT INTO billing (identifier, sender, target_type, target, label, amount) VALUES (?, ?, ?, ?, ?, ?)', {targetIdentifier, billSender, 'society', billSociety, billText, billAmount})
    
    if billTargetPlayer then -- check if player is in server
        EMOSServerNotify(billTargetPlayer.source ,"Strafe", "Du hast eine Strafe in höhe von " .. tostring(billAmount) .. "$ wegen " .. billText .. " erhalten. Bitte bezahle diese Zeitnah.")
    end
    
    return billId
end

Vergessen Sie nicht, SVConfig.UseCustomBillAssign in sv_integartions.lua auf true zu setzen. Wenn SIe alle Schritte korrekt beflogt haben, sollte nun myBilling mit EmergencyOS funktionieren.

Last updated