LB-Phone umschreiben

LB-Phone umschreiben Teil I

  1. Geh in die lb-phone/server/custom/frameworks/esx.lua und locate Zeile 430 und füge diesen Code neu ein:

    ondutyjobs = {}
    RegisterServerEvent("phoenix:setonduty")
    AddEventHandler("phoenix:setonduty", function(job, toggle)
        local xPlayer = ESX.GetPlayerFromId(source)
        if toggle then
            if not ondutyjobs[job] then 
                ondutyjobs[job] = {}
            end 
            ondutyjobs[job][source] = job
        else
            if ondutyjobs[job] ~= nil then
                ondutyjobs[job][source] = nil
            end
        end
    end)
    
    RegisterNetEvent('esx:playerDropped', function(playerId, reason)
        local xPlayer = ESX.GetPlayerFromId(playerId)
        if ondutyjobs[xPlayer.job.name] then
            ondutyjobs[xPlayer.job.name][playerId] = nil
        end
    end)
  2. Danach gehst du weiter runter und locatest die Zeile ~455 wo du die Function "RefreshCompanies()" siehst. Diese Function ersetzt du komplett mit folgender:

    function RefreshCompanies()
        if ESX.JobsPlayerCount then
            for i = 1, #Config.Companies.Services do
                local jobData = Config.Companies.Services[i]
                local jobKey = ("%s:count"):format(jobData.job)
    
                jobData.open = (GlobalState[jobKey] or 0) > 0
                debugprint("Job", jobData.job, "is open:", jobData.open)
            end
    
            return
        end
    
        local openJobs = {}
        local xPlayers = ESX.GetExtendedPlayers and ESX.GetExtendedPlayers() or ESX.GetPlayers()
    
        if ESX.GetExtendedPlayers then
            for _, xPlayer in pairs(xPlayers) do
                    if ondutyjobs[xPlayer.job.name] then
                        for k,v in pairs(ondutyjobs[xPlayer.job.name]) do
                            if k == xPlayer.source then 
                                openJobs[xPlayer.job.name] = true
                                break
                            else 
                                openJobs[xPlayer.job.name] = ondutyjobs[xPlayer.job.name]
                            end
                        end
                    else 
                        openJobs[xPlayer.job.name] = ondutyjobs[xPlayer.job.name]
                    end
            end
            for _, source in pairs(xPlayers) do
                local job = ESX.GetPlayerFromId(source).job.name
                openJobs[job] = true
            end
        end
        for i = 1, #Config.Companies.Services do
            local jobData = Config.Companies.Services[i]
            jobData.open = openJobs[jobData.job] or false
        end
    end
  3. Danach bist du mit dieser File fertig und navigierst zu lb-phone/server/apps/framework/services.lua

    1. Dort änderst du ganz oben den "refreshInterval" auf 30


Somit bist du Serverseitig fertig und gehst nun zum Client rüber

  1. Navigiere zu lb-phone/client/custom/frameworks/esx.lua und locate Zeile ~156 wo die "GetCompanyData(cb)" Function zu sehen ist. Da änderst du folgendes ab

  1. Danach locatest du Zeile 286. Dort fügst du die "ToggleDuty()" Function ein

  1. und dadrunter fügst du ebenso folgendes ein

Zuletzt aktualisiert