Page cover

Installation

1. YourEquipment herunterladen und installieren

Nach dem Kauf von YourEquipment über den Tebex Store kannst du es unter folgendem Link herunterladen und über ein FTP Programm auf deinem Server hinzufügen.

Füge YourEquipment anschließend in deine Start Config hinzu. YourEquipment muss nach der Framework und MySQL Ressource starten.

start [YourEquipment]

2. SQL Import

Damit YourEquipment ordnungsgemäß funktioniert, muss die beiliegende SQL Datei (INSERT.sql) in deine Datenbank importiert werden.

Ein Import der beiliegenden "Update_x.x.sql" ist nur notwendig, wenn YourEquipment bereits installiert ist. Bei einer Neuinstallation muss nur die INSERT.sql importiert werden!

3. Admin Zugriff (ACE Permission)

Um vollständigen Zugriff auf die Administration zu haben, sind so genannte ACE Permissions notwendig. Diese kannst du einfach in deine Start Config hinzufügen. Die License bzw. Steam ID findest du beispielsweise in der users Datenbank.

#ACE Permission anhand der License ID
add_ace identifier.license:xxxx "eq.admin" allow

#ACE Permission anhand der Steam ID
add_ace identifier.steam:xxxx "eq.admin" allow

#ACE Permission für Benutzer Gruppen
add_ace group.superadmin "eq.admin" allow

Spieler mit ACE Permission haben vollständigen Zugriff auf die Administration. Gehe damit mit Bedacht um!

Du kannst ebenfalls in FiveM den Befehl "/eqadmin" eingeben. Wenn du nicht berechtigt bist, wird dir die entsprechende ACE Permissions Zeile angezeigt, die du dann kopieren und einfügen kannst.

4. Anpassungen für ESX Legacy

Für ESX Legacy sind Anpassungen notwendig, damit das Geräte Menü bei den Fahrzeugen korrekt erkannt wird. Öffne dazu in der Ressource es_extended die Datei: server/modules/onesync.lua Suche hier nach folgender Funktion (bei Zeile 89):

function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb)

Füge hier folgende Zeile ein (bei Zeile 146):

TriggerEvent("YourEquipment:entityCreated", createdVehicle)

Die Funktion sollte dann so aussehen:

function ESX.OneSync.SpawnVehicle(vehicleModel, coords, heading, vehicleProperties, cb, vehicleType)
    if cb and not ESX.IsFunctionReference(cb) then
        error("Invalid callback function")
    end

    vehicleModel = joaat(vehicleModel)

    local promise = not cb and promise.new()

    local function resolve(result)
        if promise then
            promise:resolve(result)
        elseif cb then
            cb(result)
        end

        return result
    end

    local function reject(err)
        if promise then
            promise:reject(err)
        end
        error(err)
    end

    CreateThread(function()
        if not vehicleType then
            local xPlayer = ESX.GetExtendedPlayers()[1]
            if xPlayer then
                vehicleType = ESX.GetVehicleType(vehicleModel, xPlayer.source)
            end
        end

        if not vehicleType then
            return reject("No players found nearby to check vehicle type! Alternatively, you can specify the vehicle type manually.")
        end

        local createdVehicle = CreateVehicleServerSetter(vehicleModel, vehicleType, coords.x, coords.y, coords.z, heading)
        local tries = 0

        local hasNetOwner = next(ESX.OneSync.GetClosestPlayer(coords, 300, nil, 0) or {}) ~= nil

        while not createdVehicle or createdVehicle == 0
            or (hasNetOwner and NetworkGetEntityOwner(createdVehicle) == -1)
            or (not hasNetOwner and not DoesEntityExist(createdVehicle)) do
            Wait(200)
            tries = tries + 1
            if tries > 40 then
                return reject(("Could not spawn vehicle - ^5%s^7!"):format(vehicleModel))
            end
        end

        -- luacheck: ignore
        SetEntityOrphanMode(createdVehicle, 2)
        local networkId = NetworkGetNetworkIdFromEntity(createdVehicle)
        Entity(createdVehicle).state:set("VehicleProperties", vehicleProperties, true)
	TriggerEvent("YourEquipment:entityCreated", createdVehicle)
        resolve(networkId)
    end)

    if promise then
        return Citizen.Await(promise)
    end
end

Last updated