QBCore = exports['qb-core']:GetCoreObject()
RegisterServerEvent("d-farmingzone:server:additem")
AddEventHandler("d-farmingzone:server:additem", function(r)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local item = r.item
local amount = r.amount
local success = false
local nospace = false
local itemData = QBCore.Shared.Items[item]
if itemData then
if Player.Functions.CanCarryItem(item, amount) then
success = true
else
nospace = true
end
if success then
Notify(src, _U('success', amount, itemData.label), 5000, "success")
Player.Functions.AddItem(item, amount)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[item], "add")
elseif nospace then
Notify(src, _U('nospace'), 5000, "error")
end
else
Notify(src, _U('itemdoenstexist'), 5000, "error")
end
end)
RegisterServerEvent("d-farmingzone:server:prop:start")
AddEventHandler("d-farmingzone:server:prop:start", function(requireditem, item, amount)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local canfarm = true
if requireditem then
local needItemData = Player.Functions.GetItemByName(requireditem)
if not needItemData then
Notify(src, _U('itemdoenstexist'), 5000, "error")
TriggerClientEvent('d-farmingzone:props:cantfarm', src)
canfarm = false
else
if needItemData.amount == 0 then
local itemLabel = QBCore.Shared.Items[requireditem].label
Notify(src, _U('needitem', itemLabel), 5000, "error")
TriggerClientEvent('d-farmingzone:props:cantfarm', src)
canfarm = false
end
end
end
local itemData = QBCore.Shared.Items[item]
if itemData and canfarm then
local success = false
local nospace = false
if Player.Functions.CanCarryItem(item, amount) then
success = true
else
nospace = true
end
if success then
TriggerClientEvent('d-farmingzone:props:start', src)
elseif nospace then
TriggerClientEvent('d-farmingzone:props:cantfarm', src)
Notify(src, _U('nospace'), 5000, "error")
end
elseif not itemData then
TriggerClientEvent('d-farmingzone:props:cantfarm', src)
Notify(src, _U('itemdoenstexist'), 5000, "error")
end
end)
Notify = function(source, text, length, type)
TriggerClientEvent('d-farming:notify', source, text, length, type)
end
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
}
QBCore = exports['qb-core']:GetCoreObject()
Source = GetPlayerServerId(PlayerId())
Citizen.CreateThread(function()
while QBCore.Functions.GetPlayerData().job == nil do
Citizen.Wait(100)
end
QBCore.PlayerData = QBCore.Functions.GetPlayerData()
end)
RegisterNetEvent('QBCore:Client:OnJobUpdate')
AddEventHandler('QBCore:Client:OnJobUpdate', function(jobInfo)
QBCore.PlayerData.job = jobInfo
Citizen.Wait(5000)
end)
AddEventHandler('onResourceStop', function(resource)
if resource == GetCurrentResourceName() then
SetNuiFocus(false, false)
end
end)
HelpNotificationState = false
ShowHelpNotificaiton = function(label)
HelpNotificationState = true
QBCore.Functions.Notify(label, 'primary')
end
HideHelpNotificaiton = function()
if HelpNotificationState == true then
HelpNotificationState = false
end
end
function StartFarm()
local playerPed = PlayerPedId()
exports.rprogress:Custom({
Async = true,
Duration = Activ.v.farmtime,
Label = Activ.v.barlabel,
Animation = {
scenario = Activ.v.anim.task,
animationDictionary = Activ.v.anim.animDict,
animationName = Activ.v.anim.anim
},
DisableControls = {
Mouse = true,
Player = true,
Vehicle = true
},
onStart = function()
end,
onComplete = function(cancelled)
if not cancelled then
TriggerServerEvent("d-farmingzone:server:additem", Activ.rewards)
end
FinishedFrarming()
end
})
end
RegisterNetEvent('d-farming:notify')
AddEventHandler('d-farming:notify', function(text, length, type)
Notify(text, length, type)
end)
function Notify(text, length, type)
QBCore.Functions.Notify(text, type, length)
end
|