Editable Files

events-client.lua

--Lock unlock car Event
RegisterNetEvent('tgiann-hotwire:lockUnlock')
AddEventHandler('tgiann-hotwire:lockUnlock', function()
	lockUnlock()
end)

--QB Event
RegisterNetEvent('vehiclekeys:client:SetOwner')
AddEventHandler('vehiclekeys:client:SetOwner', function(plate)
    TriggerEvent("tgiann-carlock:addPlate", plate, true)
end)

--Some users use a different hotwire that's for it
RegisterNetEvent('x-hotwire:give-keys')
AddEventHandler('x-hotwire:give-keys', function(car)
    TriggerEvent("tgiann-arackilit:addPlate", GetVehicleNumberPlateText(car), true)
end)

--qb-smallresources/server/consumables.lua use lockpick item (lockpick)
RegisterNetEvent('lockpicks:UseLockpick')
AddEventHandler('lockpicks:UseLockpick', function(car)
    TriggerEvent("tgiann-hotwire:lockpickOutSide")
end)

editable-client.lua

PlayerData = {}
plateList = {}

tgiCore = nil
CreateThread(function()
    while tgiCore == nil do
		tgiCore = tgiCoreExports:getCore()
        Wait(200)
    end
end)

RegisterNetEvent('tgiCore:Client:OnPlayerLoaded')
AddEventHandler('tgiCore:Client:OnPlayerLoaded', function(newPlayerData)
	PlayerData = newPlayerData
end)

RegisterNetEvent('tgiCore:Client:OnJobUpdate')
AddEventHandler('tgiCore:Client:OnJobUpdate', function(newJob)
	PlayerData.job = newJob
end)

function myCarsPlate()
    tgiCore.cbFunction("tgiann-carlock:myCars", function(result)
        plateList = result
        for i=1, #plaka do
            TriggerEvent("tgiann-carlock:addPlate", plaka[i].plate, true)
        end	
    end)

    tgiCore.cbFunction("tgiann-hotwire:getWiredVehicle", function(result)
        for i=1, #result do
            TriggerEvent("tgiann-carlock:addPlate", result[i], false)
        end
    end)
end

RegisterNetEvent('tgiann-hotwire:notify')
AddEventHandler('tgiann-hotwire:notify', function(msg, type, time)
    tgiCore.notif(msg, type, time)
end)

function skillbar(time)
    return exports["tgiann-skillbar"]:taskBar(time)
end

function Progressbar()
    if config.framework == "esx" then
        hassearched[vehiclePlate] = true 
        isActive = false
        searchvehicle()
    elseif config.framework == "qb" then
        tgiCore.Progressbar("search", "Araç Aranıyor", 25000, false, true, { -- p1: menu name, p2: yazı, p3: ölü iken kullan, p4:iptal edilebilir
            disableMovement = true,
            disableCarMovement = true,
            disableMouse = false,
            disableCombat = true,
        }, {}, {}, {}, function() -- Done
            hassearched[vehiclePlate] = true 
            isActive = false
            searchvehicle()
        end, function() -- Cancel
            isActive = false
            tgiCore.notif('Aracı Aramayı İptal Ettin!')
        end)
    end
end

function lockpickOutSideSkillBar()
    if math.random(1,100) < config.policeAlertPercent and config.policeAlert then config.policeAlertFunction() end
    if math.random(1,100) < config.removeLockPickPercent then TriggerServerEvent('tgiann-hotwire:removeLockPick') end
    local finished = skillbar(25000)
    if not finished then
        return false
    else
        local finished2 = skillbar(14000)
        if not finished2 then
            return false
        else
            return true
        end
    end
end

function itemLockPickSkillBar()
    local finished = skillbar(25000)
    if not finished then
        if math.random(1,100) < config.removeLockPickPercent then TriggerServerEvent('tgiann-hotwire:removeLockPick') end
        return false
    else
        local finished2 = skillbar(4000)
        if not finished2 then
            if math.random(1,100) < config.removeLockPickPercent then TriggerServerEvent('tgiann-hotwire:removeLockPick') end
            return false
        else
            local finished3 = skillbar(math.random(950,1250))
            if not finished3 then
                return false
            else
                return true
            end
        end
    end
end

function hotwireSkillBar()
    local finished = skillbar(30000)
    if not finished then
        return false
    else
        local finished2 = skillbar(2000)
        if not finished2 then
            return false
        else
            local finished3 = skillbar(1000)
            if not finished3 then
                return false
            else
                local finished4 = skillbar(4200)
                if not finished4 then
                    return false
                else
                    local finished5 = skillbar(1400)
                    if not finished5 then
                        return false
                    else
                        return true
                    end
                end
            end
        end
    end
end

function playSound()
    TriggerServerEvent('InteractSound_SV:PlayWithinDistance', 3.0, 'lock', 0.1)
end

DrawText3D = function(x, y, z, text)
	SetTextScale(0.30, 0.30)
    SetTextFont(0)
    SetTextProportional(1)
    SetTextColour(255, 255, 255, 215)
    SetTextEntry("STRING")
    SetTextCentre(true)
    AddTextComponentString(text)
    SetDrawOrigin(x,y,z, 0)
    DrawText(0.0, 0.0)
    local factor = (string.len(text)) / 250
    DrawRect(0.0, 0.0+0.0125, 0.017+ factor, 0.03, 0, 0, 0, 75)
    ClearDrawOrigin()
end

CreateThread(function()
    if config.test then
        RegisterCommand("testGiveKey", function()
            if inVeh then
                TriggerEvent('tgiann-hotwire:give-keys-with-carid', GetVehiclePedIsIn(PlayerPedId()))
            else
                tgiCore.notif(config.text["notInCar"], "error")
            end
        end)    
    end
end)

events-client.lua

--Lock unlock car Event
RegisterNetEvent('tgiann-hotwire:lockUnlock')
AddEventHandler('tgiann-hotwire:lockUnlock', function()
	lockUnlock()
end)

--QB Event
RegisterNetEvent('vehiclekeys:client:SetOwner')
AddEventHandler('vehiclekeys:client:SetOwner', function(plate)
    TriggerEvent("tgiann-carlock:addPlate", plate, true)
end)

--Some users use a different hotwire that's for it
RegisterNetEvent('x-hotwire:give-keys')
AddEventHandler('x-hotwire:give-keys', function(car)
    TriggerEvent("tgiann-arackilit:addPlate", GetVehicleNumberPlateText(car), true)
end)

--qb-smallresources/server/consumables.lua use lockpick item (lockpick)
RegisterNetEvent('lockpicks:UseLockpick')
AddEventHandler('lockpicks:UseLockpick', function(car)
    TriggerEvent("tgiann-hotwire:lockpickOutSide")
end)

editable-server.lua

tgiCore = tgiCoreExports:getCore()

RegisterCommand(config.giveCarKeysCommand, function(source)
	TriggerClientEvent('tgiann-hotwire:giveCarKeys', source)
end)

tgiCore.cbFunction('tgiann-carlock:myCars', function(source, cb)
	local src = source
	local xPlayer = tgiCore.getPlayer(src)
    local queryData = config.framework == "esx" and 'SELECT plate FROM owned_vehicles WHERE owner = @id' or 'SELECT * FROM owned_vehicles WHERE citizenid = @id'
	query(queryData, {
		["@id"] = tgiCore.getCid(xPlayer)
	}, function(data)
		if data[1] then
			cb(data)
		end
	end)
end)

if (config.framework == "qb" and not config.useQbSmallResources) or config.framework == "esx" then
	tgiCore.CreateUseableItem(config.lockPickItemName, function(source, item)
		TriggerClientEvent('tgiann-hotwire:lockpickOutSide', source)
	end)
end

Last updated