431 lines
16 KiB
Lua
431 lines
16 KiB
Lua
|
local Keys = {
|
||
|
["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
|
||
|
["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
|
||
|
["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
|
||
|
["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
|
||
|
["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
|
||
|
["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
|
||
|
["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
|
||
|
["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
|
||
|
["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
|
||
|
}
|
||
|
|
||
|
local QBCore = exports['qb-core']:GetCoreObject()
|
||
|
|
||
|
----------------------------------------------
|
||
|
--******************************************--
|
||
|
-- Global variable --
|
||
|
--******************************************--
|
||
|
----------------------------------------------
|
||
|
local isLoggedIn = true
|
||
|
local spawnChicken = false
|
||
|
local prop
|
||
|
local chickenPackage = false
|
||
|
local box_object, chicken_object, alive_chicken_object, knife_object
|
||
|
local isWorking = false
|
||
|
local chicken = {}
|
||
|
local getCaught = 0
|
||
|
|
||
|
|
||
|
----------------------------------------------
|
||
|
--******************************************--
|
||
|
-- Functions --
|
||
|
--******************************************--
|
||
|
----------------------------------------------
|
||
|
function StartCatching()
|
||
|
local ped = PlayerPedId()
|
||
|
local chickenModel = Config.SpawnChicken["model"]
|
||
|
|
||
|
getCaught = 0
|
||
|
|
||
|
for v in pairs(chicken) do
|
||
|
DeleteEntity(chicken[v])
|
||
|
end
|
||
|
|
||
|
DoScreenFadeOut(500)
|
||
|
Citizen.Wait(500)
|
||
|
SetEntityCoordsNoOffset(ped, Config.CatchAliveChicken["spawnCoords"].x, Config.CatchAliveChicken["spawnCoords"].y, Config.CatchAliveChicken["spawnCoords"].z, 0, 0, 1)
|
||
|
RequestModel(GetHashKey(chickenModel))
|
||
|
|
||
|
while not HasModelLoaded(GetHashKey(chickenModel)) do
|
||
|
Citizen.Wait(100)
|
||
|
end
|
||
|
|
||
|
for k, v in pairs(Config.SpawnChicken["quantity"]) do
|
||
|
chicken[k] = CreatePed(26, chickenModel, v["coords"].x, v["coords"].y, v["coords"].z, v["coords"].h, true, false)
|
||
|
TaskReactAndFleePed(chicken[k], ped)
|
||
|
end
|
||
|
|
||
|
Citizen.Wait(500)
|
||
|
DoScreenFadeIn(500)
|
||
|
spawnChicken = true
|
||
|
end
|
||
|
|
||
|
function CatchingChicken()
|
||
|
local ped = PlayerPedId()
|
||
|
local x,y,z = table.unpack(GetEntityCoords(ped))
|
||
|
local startCatching = true
|
||
|
|
||
|
chicken = {}
|
||
|
getCaught = 0
|
||
|
|
||
|
DoScreenFadeOut(500)
|
||
|
Citizen.Wait(500)
|
||
|
SetEntityCoordsNoOffset(ped, Config.CatchAliveChicken["coords"].x + 2, Config.CatchAliveChicken["coords"].y + 2, Config.CatchAliveChicken["coords"].z, 0, 0, 1)
|
||
|
DoScreenFadeIn(500)
|
||
|
|
||
|
prop = CreateObject(GetHashKey('hei_prop_heist_box'), x, y, z+0.2, true, true, true)
|
||
|
AttachEntityToEntity(prop, ped, GetPedBoneIndex(ped, 60309), 0.025, 0.08, 0.255, -145.0, 290.0, 0.0, true, true, false, true, 1, true)
|
||
|
|
||
|
while startCatching do
|
||
|
Citizen.Wait(250)
|
||
|
local coords = GetEntityCoords(ped)
|
||
|
local veh = GetClosestVehicle(coords.x, coords.y, coords.z, 3.000, 0, 70)
|
||
|
local vCoords = GetEntityCoords(veh)
|
||
|
local dist = #(coords - vCoords)
|
||
|
LoadDict('anim@heists@box_carry@')
|
||
|
|
||
|
if not IsEntityPlayingAnim(ped, "anim@heists@box_carry@", "idle", 3 ) and startCatching then
|
||
|
TaskPlayAnim(ped, 'anim@heists@box_carry@', "idle", 3.0, -8, -1, 63, 0, 0, 0, 0 )
|
||
|
end
|
||
|
|
||
|
if veh and (dist < 3.0) then
|
||
|
startCatching = false
|
||
|
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("success.put_alive_chicken_in_trunk"), "success")
|
||
|
LoadDict('anim@heists@narcotics@trash')
|
||
|
TaskPlayAnim(ped, 'anim@heists@narcotics@trash', "throw_a", 3.0, -8, -1, 63, 0, 0, 0, 0 )
|
||
|
Citizen.Wait(300)
|
||
|
ClearPedTasks(ped)
|
||
|
DeleteEntity(prop)
|
||
|
TriggerServerEvent("mb-chicken:server:AddAliveChicken")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function chickenGotCaught(pass)
|
||
|
LoadDict('move_jump')
|
||
|
TaskPlayAnim(PlayerPedId(), 'move_jump', 'dive_start_run', 8.0, -8.0, -1, 0, 0.0, 0, 0, 0)
|
||
|
Citizen.Wait(600)
|
||
|
SetPedToRagdoll(PlayerPedId(), 1000, 1000, 0, 0, 0, 0)
|
||
|
Citizen.Wait(1000)
|
||
|
local chance = math.random(1,100)
|
||
|
if chance <= Config.SpawnChicken["catching_chance"] then
|
||
|
getCaught = getCaught + 1
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("success.catch_success"), "success")
|
||
|
DeleteEntity(chicken[pass])
|
||
|
else
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("error.catch_failed"), "error")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function processAliveChicken(position)
|
||
|
local Player = PlayerPedId()
|
||
|
|
||
|
if Player then
|
||
|
local dict = 'anim@amb@business@coc@coc_unpack_cut_left@'
|
||
|
LoadDict(dict)
|
||
|
FreezeEntityPosition(Player,true)
|
||
|
TaskPlayAnim(Player, dict, "coke_cut_v1_coccutter", 3.0, -8, -1, 63, 0, 0, 0, 0 )
|
||
|
local PedCoords = GetEntityCoords(Player)
|
||
|
knife_object = CreateObject(GetHashKey('prop_knife'), PedCoords.x, PedCoords.y,PedCoords.z, true, true, true)
|
||
|
AttachEntityToEntity(knife_object, Player, GetPedBoneIndex(Player, 0xDEAD), 0.13, 0.14, 0.09, 40.0, 0.0, 0.0, false, false, false, false, 2, true)
|
||
|
|
||
|
if Player then
|
||
|
QBCore.Functions.Progressbar("cutting_chicken", Lang:t("process.cutting"), Config.SlaughteredChicken[position]["processing_time"], false, true, {disableMovement = true,
|
||
|
disableCarMovement = true,
|
||
|
disableMouse = false,
|
||
|
disableCombat = true,
|
||
|
disableInventory = true,
|
||
|
}, {}, {}, {}, function()
|
||
|
TriggerServerEvent("mb-chicken:server:SlaughteredChicken", position)
|
||
|
end, function()
|
||
|
|
||
|
end)
|
||
|
SetEntityHeading(Player, Config.SlaughteredChicken[position]["heading"])
|
||
|
alive_chicken_object = CreateObject(GetHashKey(Config.SlaughteredChicken[position]["prop"]["model"]), Config.SlaughteredChicken[position]["prop"]["coords"].x, Config.SlaughteredChicken[position]["prop"]["coords"].y, Config.SlaughteredChicken[position]["prop"]["coords"].z, true, true, true)
|
||
|
SetEntityRotation(alive_chicken_object, 90.0, 0.0, Config.SlaughteredChicken[position]["prop"]["heading"], 1, true)
|
||
|
Citizen.Wait(Config.SlaughteredChicken[position]["processing_time"])
|
||
|
end
|
||
|
|
||
|
FreezeEntityPosition(Player,false)
|
||
|
DeleteEntity(alive_chicken_object)
|
||
|
DeleteEntity(knife_object)
|
||
|
ClearPedTasks(Player)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function packChicken(position)
|
||
|
local Player = PlayerPedId()
|
||
|
local PedCoords = GetEntityCoords(Player)
|
||
|
|
||
|
if Player then
|
||
|
QBCore.Functions.Progressbar("packing_chicken", Lang:t("process.packing"), Config.PackagedChicken[position]["processing_time"], false, true, {disableMovement = true,
|
||
|
disableCarMovement = true,
|
||
|
disableMouse = false,
|
||
|
disableCombat = true,
|
||
|
disableInventory = true,
|
||
|
}, {}, {}, {}, function()
|
||
|
TriggerServerEvent("mb-chicken:server:PackagedChicken", position)
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("success.keep_going_or_sell"), "info")
|
||
|
end, function()
|
||
|
|
||
|
end)
|
||
|
SetEntityHeading(Player, Config.PackagedChicken[position]["heading"])
|
||
|
chicken_object = CreateObject(GetHashKey('prop_cs_steak'),PedCoords.x, PedCoords.y,PedCoords.z, true, true, true)
|
||
|
AttachEntityToEntity(chicken_object, Player, GetPedBoneIndex(Player, 0x49D9), 0.15, 0.0, 0.01, 0.0, 0.0, 0.0, false, false, false, false, 2, true)
|
||
|
|
||
|
box_object = CreateObject(GetHashKey('prop_cs_clothes_box'),PedCoords.x, PedCoords.y,PedCoords.z, true, true, true)
|
||
|
AttachEntityToEntity(box_object, Player, GetPedBoneIndex(Player, 57005), 0.13, 0.0, -0.16, 250.0, -30.0, 0.0, false, false, false, false, 2, true)
|
||
|
|
||
|
isWorking = true
|
||
|
LoadDict("anim@heists@ornate_bank@grab_cash_heels")
|
||
|
TaskPlayAnim(Player, "anim@heists@ornate_bank@grab_cash_heels", "grab", 8.0, -8.0, -1, 1, 0, false, false, false)
|
||
|
FreezeEntityPosition(Player, true)
|
||
|
Citizen.Wait(Config.PackagedChicken[position]["processing_time"])
|
||
|
|
||
|
ClearPedTasks(Player)
|
||
|
DeleteEntity(chicken_object)
|
||
|
DeleteEntity(box_object)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function StopPacking()
|
||
|
local ped = PlayerPedId()
|
||
|
local x,y,z = table.unpack(GetEntityCoords(ped))
|
||
|
|
||
|
FreezeEntityPosition(ped, false)
|
||
|
chickenPackage = true
|
||
|
prop = CreateObject(GetHashKey('hei_prop_heist_box'), x, y, z+0.2, true, true, true)
|
||
|
AttachEntityToEntity(prop, ped, GetPedBoneIndex(ped, 60309), 0.025, 0.08, 0.255, -145.0, 290.0, 0.0, true, true, false, true, 1, true)
|
||
|
isWorking = false
|
||
|
|
||
|
while chickenPackage do
|
||
|
Citizen.Wait(250)
|
||
|
|
||
|
local coords = GetEntityCoords(ped)
|
||
|
local veh = GetClosestVehicle(coords.x, coords.y, coords.z, 3.000, 0, 70)
|
||
|
local vCoords = GetEntityCoords(veh)
|
||
|
local dist = #(coords - vCoords)
|
||
|
|
||
|
LoadDict('anim@heists@box_carry@')
|
||
|
|
||
|
if not IsEntityPlayingAnim(ped, "anim@heists@box_carry@", "idle", 3 ) and chickenPackage == true then
|
||
|
TaskPlayAnim(ped, 'anim@heists@box_carry@', "idle", 3.0, -8, -1, 63, 0, 0, 0, 0 )
|
||
|
end
|
||
|
|
||
|
if veh and (dist < 3.0) then
|
||
|
chickenPackage = false
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("success.put_chicken_on_car"), 'success') --success
|
||
|
LoadDict('anim@heists@narcotics@trash')
|
||
|
TaskPlayAnim(ped, 'anim@heists@narcotics@trash', "throw_a", 3.0, -8, -1, 63, 0, 0, 0, 0 )
|
||
|
Citizen.Wait(1000)
|
||
|
ClearPedTasks(ped)
|
||
|
DeleteEntity(prop)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function LoadDict(dict)
|
||
|
RequestAnimDict(dict)
|
||
|
while not HasAnimDictLoaded(dict) do
|
||
|
Citizen.Wait(10)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function SellingChicken()
|
||
|
local ped = PlayerPedId()
|
||
|
local x,y,z = table.unpack(GetOffsetFromEntityInWorldCoords(ped, 0.0, 0.9, -0.98))
|
||
|
----
|
||
|
if ped then
|
||
|
QBCore.Functions.Progressbar("selling_chicken", Lang:t("process.selling"), Config.Selling["processing_time"], false, true, {
|
||
|
disableMovement = true,
|
||
|
disableCarMovement = true,
|
||
|
disableMouse = false,
|
||
|
disableCombat = true,
|
||
|
disableInventory = true,
|
||
|
}, {}, {}, {}, function() end, function()
|
||
|
|
||
|
end)
|
||
|
prop = CreateObject(GetHashKey('hei_prop_heist_box'), x, y, z, true, true, true)
|
||
|
SetEntityHeading(prop, GetEntityHeading(ped))
|
||
|
LoadDict('amb@medic@standing@tendtodead@idle_a')
|
||
|
TaskPlayAnim(ped, 'amb@medic@standing@tendtodead@idle_a', 'idle_a', 8.0, -8.0, -1, 1, 0.0, 0, 0, 0)
|
||
|
Citizen.Wait(5000)
|
||
|
LoadDict('amb@medic@standing@tendtodead@exit')
|
||
|
TaskPlayAnim(ped, 'amb@medic@standing@tendtodead@exit', 'exit', 8.0, -8.0, -1, 1, 0.0, 0, 0, 0)
|
||
|
ClearPedTasks(ped)
|
||
|
DeleteEntity(prop)
|
||
|
TriggerServerEvent("mb-chicken:server:SellingMoney")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
----------------------------------------------
|
||
|
--******************************************--
|
||
|
-- Citizen Thread --
|
||
|
--******************************************--
|
||
|
----------------------------------------------
|
||
|
|
||
|
-- Load data
|
||
|
Citizen.CreateThread(function()
|
||
|
while QBCore.Functions.GetPlayerData().job == nil do
|
||
|
Citizen.Wait(10)
|
||
|
end
|
||
|
-- Display blips
|
||
|
displayAliveChickenBlips()
|
||
|
displaySlaughteredChicken()
|
||
|
displaySellingBlips()
|
||
|
|
||
|
PlayerData = QBCore.Functions.GetPlayerData()
|
||
|
end)
|
||
|
|
||
|
Citizen.CreateThread(function()
|
||
|
while (isLoggedIn) do
|
||
|
Citizen.Wait(1)
|
||
|
|
||
|
-- Catching chicken
|
||
|
local plyCoords = GetEntityCoords(PlayerPedId())
|
||
|
local startCoords = Config.CatchAliveChicken["coords"]
|
||
|
local distance = #(plyCoords - startCoords)
|
||
|
if distance <= 10.0 then
|
||
|
DrawMarker(27, Config.CatchAliveChicken["coords"].x, Config.CatchAliveChicken["coords"].y, Config.CatchAliveChicken["coords"].z-0.97, 0, 0, 0, 0, 0, 0, 0.90, 0.90, 0.90, 255, 255, 255, 200, 0, 0, 0, 0)
|
||
|
if distance <= 2.5 then
|
||
|
QBCore.Functions.DrawText3D(Config.CatchAliveChicken["coords"].x, Config.CatchAliveChicken["coords"].y, Config.CatchAliveChicken["coords"].z, Lang:t("action.get_started"))
|
||
|
if distance <= 0.5 then
|
||
|
if IsControlJustPressed(0, Keys['E']) then
|
||
|
StartCatching()
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Processing chicken
|
||
|
for farm in pairs(Config.SlaughteredChicken) do
|
||
|
local processCoords = Config.SlaughteredChicken[farm]["coords"]
|
||
|
local dist = #(plyCoords - processCoords)
|
||
|
if dist <= 10.0 then
|
||
|
DrawMarker(27, Config.SlaughteredChicken[farm]["coords"].x, Config.SlaughteredChicken[farm]["coords"].y, Config.SlaughteredChicken[farm]["coords"].z-0.97, 0, 0, 0, 0, 0, 0, 0.90, 0.90, 0.90, 255, 255, 255, 200, 0, 0, 0, 0)
|
||
|
if dist < 2.5 then
|
||
|
QBCore.Functions.DrawText3D(Config.SlaughteredChicken[farm]["coords"].x, Config.SlaughteredChicken[farm]["coords"].y, Config.SlaughteredChicken[farm]["coords"].z, Lang:t("action.cut_alive_chicken"))
|
||
|
if dist < 1 then
|
||
|
if IsControlJustPressed(0, Keys['E']) then -- "E"
|
||
|
local hasItem = QBCore.Functions.HasItem('alive_chicken')
|
||
|
if hasItem then
|
||
|
processAliveChicken(farm)
|
||
|
Citizen.Wait(100)
|
||
|
else
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("error.no_alive_chicken"), "error")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Packing chicken
|
||
|
for spot in pairs(Config.PackagedChicken) do
|
||
|
local packCoords = Config.PackagedChicken[spot]["coords"]
|
||
|
local dist = #(plyCoords - packCoords)
|
||
|
|
||
|
if dist <= 10.0 then
|
||
|
DrawMarker(27, Config.PackagedChicken[spot]["coords"].x, Config.PackagedChicken[spot]["coords"].y, Config.PackagedChicken[spot]["coords"].z-0.97, 0, 0, 0, 0, 0, 0, 0.90, 0.90, 0.90, 255, 255, 255, 200, 0, 0, 0, 0)
|
||
|
if dist < 2.5 and not isWorking then
|
||
|
QBCore.Functions.DrawText3D(Config.PackagedChicken[spot]["coords"].x, Config.PackagedChicken[spot]["coords"].y, Config.PackagedChicken[spot]["coords"].z, Lang:t("action.pack_chicken"))
|
||
|
if dist < 1 then
|
||
|
if IsControlJustPressed(0, Keys['E']) then -- "E"
|
||
|
local hasItem = QBCore.Functions.HasItem('slaughtered_chicken')
|
||
|
if hasItem then
|
||
|
packChicken(spot)
|
||
|
Citizen.Wait(100)
|
||
|
else
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("error.no_slaughtered_chicken"), "error")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
elseif dist < 2.5 and isWorking then
|
||
|
QBCore.Functions.DrawText3D(Config.PackagedChicken[spot]["coords"].x, Config.PackagedChicken[spot]["coords"].y, Config.PackagedChicken[spot]["coords"].z+0.5, Lang:t("action.stop_packing"))
|
||
|
QBCore.Functions.DrawText3D(Config.PackagedChicken[spot]["coords"].x, Config.PackagedChicken[spot]["coords"].y, Config.PackagedChicken[spot]["coords"].z, Lang:t("action.keep_packing"))
|
||
|
if dist < 1 then
|
||
|
if IsControlJustPressed(0, Keys['E']) then -- "E"
|
||
|
local hasItem = QBCore.Functions.HasItem("slaughtered_chicken")
|
||
|
if hasItem then
|
||
|
packChicken(spot)
|
||
|
Citizen.Wait(100)
|
||
|
else
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("error.no_slaughtered_chicken"), "error")
|
||
|
end
|
||
|
elseif IsControlJustPressed(0, Keys['G']) then
|
||
|
StopPacking()
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Selling
|
||
|
local sellCoords = Config.Selling["coords"]
|
||
|
local sellDist = #(plyCoords - sellCoords)
|
||
|
if sellDist < 10.0 then
|
||
|
DrawMarker(27, Config.Selling["coords"].x, Config.Selling["coords"].y, Config.Selling["coords"].z-0.96, 0, 0, 0, 0, 0, 0, 2.20, 2.20, 2.20, 255, 255, 255, 200, 0, 0, 0, 0)
|
||
|
if sellDist <= 2.5 then
|
||
|
QBCore.Functions.DrawText3D(Config.Selling["coords"].x, Config.Selling["coords"].y, Config.Selling["coords"].z, Lang:t("action.sell_packing"))
|
||
|
if sellDist <= 0.5 then
|
||
|
if IsControlJustPressed(0, Keys['E']) then
|
||
|
local hasItem = QBCore.Functions.HasItem("packagedchicken")
|
||
|
if hasItem then
|
||
|
SellingChicken()
|
||
|
Citizen.Wait(100)
|
||
|
else
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("error.no_packaged_chicken"), "error")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
Citizen.CreateThread(function()
|
||
|
while true do
|
||
|
Citizen.Wait(5)
|
||
|
local plyCoords = GetEntityCoords(PlayerPedId(), false)
|
||
|
if spawnChicken then
|
||
|
for k, v in pairs(chicken) do
|
||
|
local chickenCoords = GetEntityCoords(v)
|
||
|
local dist = #(plyCoords - chickenCoords)
|
||
|
if dist < 1 then
|
||
|
QBCore.Functions.DrawText3D(chickenCoords.x, chickenCoords.y, chickenCoords.z+0.5, Lang:t("action.catching"))
|
||
|
if IsControlJustPressed(0, Keys['E']) then
|
||
|
chickenGotCaught(k)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if getCaught == #(Config.SpawnChicken["quantity"]) then
|
||
|
MBNotify(Lang:t("notify.title"), Lang:t("action.bring_close_to_vehicle"), "info")
|
||
|
spawnChicken = false
|
||
|
ClearPedTasks(PlayerPedId())
|
||
|
for v in pairs(chicken) do
|
||
|
DeleteEntity(v)
|
||
|
end
|
||
|
CatchingChicken()
|
||
|
end
|
||
|
else
|
||
|
Citizen.Wait(500)
|
||
|
end
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
----------------------------------------------
|
||
|
--******************************************--
|
||
|
-- Register Event --
|
||
|
--******************************************--
|
||
|
----------------------------------------------
|
||
|
--On player load
|
||
|
RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
|
||
|
QBCore.Functions.GetPlayerData(function(PlayerData)
|
||
|
PlayerJob = PlayerData.job
|
||
|
PlayerData = QBCore.Functions.GetPlayerData()
|
||
|
end)
|
||
|
isLoggedIn = true
|
||
|
end)
|