Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Untitled Diff
Created
6 years ago
Diff never expires
Clear
Export
Share
Explain
100 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
198 lines
Copy
61 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
158 lines
Copy
Copy
Copied
Copy
Copied
local spawned
Weed
s = 0
local spawned
Shit
s = 0
local
weedPlants
= {}
local
Shitss
= {}
local isPickingUp, isProcessing = false, false
local isPickingUp, isProcessing = false, false
Copy
Copied
Copy
Copied
Citizen.CreateThread(function()
Citizen.CreateThread(function()
while true do
while true do
Copy
Copied
Copy
Copied
Citizen.Wait(
500
)
Citizen.Wait(
7000
)
local coords = GetEntityCoords(PlayerPedId())
local coords = GetEntityCoords(PlayerPedId())
Copy
Copied
Copy
Copied
if GetDistanceBetweenCoords(coords, Config.CircleZones.
WeedField
.coords, true) <
50
then
if GetDistanceBetweenCoords(coords, Config.CircleZones.
oilfield
.coords, true) <
20
then
SpawnWeedPlants
()
SpawnShites
()
end
Citizen.Wait(7000)
end
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
local playerPed = PlayerPedId()
local coords = GetEntityCoords(playerPed)
if GetDistanceBetweenCoords(coords, Config.CircleZones.WeedProcessing.coords, true) < 1 then
if not isProcessing then
ESX.ShowHelpNotification(_U('weed_processprompt'))
end
if IsControlJustReleased(0, 38) and not isProcessing then
if Config.LicenseEnable then
ESX.TriggerServerCallback('esx_license:checkLicense', function(hasProcessingLicense)
if hasProcessingLicense then
ProcessWeed()
else
OpenBuyLicenseMenu('weed_processing')
end
end, GetPlayerServerId(PlayerId()), 'weed_processing')
else
ProcessWeed()
end
end
else
else
Copy
Copied
Copy
Copied
Citizen.Wait(
500
)
Citizen.Wait(
7000
)
end
end
end
end
end)
end)
Copy
Copied
Copy
Copied
function ProcessWeed()
isProcessing = true
ESX.ShowNotification(_U('weed_processingstarted'))
TriggerServerEvent('esx_drugs:processCannabis')
local timeLeft = Config.Delays.WeedProcessing / 1000
local playerPed = PlayerPedId()
while timeLeft > 0 do
Citizen.Wait(1000)
timeLeft = timeLeft - 1
if GetDistanceBetweenCoords(GetEntityCoords(playerPed), Config.CircleZones.WeedProcessing.coords, false) > 4 then
ESX.ShowNotification(_U('weed_processingtoofar'))
TriggerServerEvent('esx_drugs:cancelProcessing')
break
end
end
Copy
Copied
Copy
Copied
isProcessing = false
end
Citizen.CreateThread(function()
Citizen.CreateThread(function()
while true do
while true do
Citizen.Wait(0)
Citizen.Wait(0)
Copy
Copied
Copy
Copied
local playerPed = PlayerPedId()
local playerPed = PlayerPedId()
local coords = GetEntityCoords(playerPed)
local coords = GetEntityCoords(playerPed)
local nearbyObject, nearbyID
local nearbyObject, nearbyID
Copy
Copied
Copy
Copied
for i=1, #
weedPlants
, 1 do
for i=1, #
Shitss
, 1 do
if GetDistanceBetweenCoords(coords, GetEntityCoords(
weedPlants
[i]), false) < 1 then
if GetDistanceBetweenCoords(coords, GetEntityCoords(
Shitss
[i]), false) < 1 then
nearbyObject, nearbyID =
weedPlants
[i], i
nearbyObject, nearbyID =
Shitss
[i], i
end
end
end
end
if nearbyObject and IsPedOnFoot(playerPed) then
if nearbyObject and IsPedOnFoot(playerPed) then
Copy
Copied
Copy
Copied
if not isPickingUp then
if not isPickingUp then
Copy
Copied
Copy
Copied
ESX.ShowHelpNotification(_U('
weed_
pickupprompt'))
ESX.ShowHelpNotification(_U('
pickupprompt'))
end
end
Copy
Copied
Copy
Copied
if IsControlJustReleased(0,
38
) and not isPickingUp then
if IsControlJustReleased(0,
Keys['E']
) and not isPickingUp then
isPickingUp = true
isPickingUp = true
Copy
Copied
Copy
Copied
ESX.TriggerServerCallback('
esx_drugs
:canPickUp', function(canPickUp)
ESX.TriggerServerCallback('
fm_Shit
:canPickUp', function(canPickUp)
if canPickUp then
if canPickUp then
Copy
Copied
Copy
Copied
TaskStartScenarioInPlace(playerPed, 'world_human_
gardener_plant
', 0, false)
exports['progressBars']:startUI(4500, "Drilling for soil")
TaskStartScenarioInPlace(playerPed, 'world_human_
const_drill
', 0, false)
Copy
Copied
Copy
Copied
Citizen.Wait(
2000
)
Citizen.Wait(
3500
)
ClearPedTasks(playerPed)
ClearPedTasks(playerPed)
Copy
Copied
Copy
Copied
Citizen.Wait(1
5
00)
Citizen.Wait(1
0
00)
ESX.Game.DeleteObject(nearbyObject)
ESX.Game.DeleteObject(nearbyObject)
Copy
Copied
Copy
Copied
table.remove(
weedPlants
, nearbyID)
table.remove(
Shitss
, nearbyID)
spawned
Weed
s = spawned
Weed
s - 1
spawned
Shit
s = spawned
Shit
s - 1
Copy
Copied
Copy
Copied
TriggerServerEvent('
esx_drugs
:pickedUpCannabis')
TriggerServerEvent('
fm_Shit
:pickedUpCannabis')
else
else
Copy
Copied
Copy
Copied
ESX.ShowNotification(_U('
weed_
inventoryfull'))
ESX.ShowNotification(_U('
inventoryfull'))
end
end
isPickingUp = false
isPickingUp = false
Copy
Copied
Copy
Copied
end, '
cannabis
')
end, '
petroleocrudo
')
end
end
Copy
Copied
Copy
Copied
else
else
Citizen.Wait(500)
Citizen.Wait(500)
end
end
Copy
Copied
Copy
Copied
end
end
Copy
Copied
Copy
Copied
end)
end)
AddEventHandler('onResourceStop', function(resource)
AddEventHandler('onResourceStop', function(resource)
if resource == GetCurrentResourceName() then
if resource == GetCurrentResourceName() then
Copy
Copied
Copy
Copied
for k, v in pairs(
weedPlants
) do
for k, v in pairs(
Shitss
) do
ESX.Game.DeleteObject(v)
ESX.Game.DeleteObject(v)
end
end
end
end
end)
end)
Copy
Copied
Copy
Copied
function
SpawnWeedPlants
()
function
SpawnShites
()
while spawned
Weed
s <
25
do
while spawned
Shit
s <
20
do
Citizen.Wait(0)
Citizen.Wait(0)
Copy
Copied
Copy
Copied
local
weedCoords
= Generate
Weed
Coords()
local
ShitCoords
= Generate
Shit
Coords()
Copy
Copied
Copy
Copied
ESX.Game.SpawnLocalObject('prop_
weed_02
',
weedCoords
, function(obj)
ESX.Game.SpawnLocalObject('prop_
bush_med_03
',
ShitCoords
, function(obj)
PlaceObjectOnGroundProperly(obj)
PlaceObjectOnGroundProperly(obj)
FreezeEntityPosition(obj, true)
FreezeEntityPosition(obj, true)
Copy
Copied
Copy
Copied
table.insert(
weedPlants
, obj)
table.insert(
Shitss
, obj)
spawned
Weed
s = spawned
Weed
s + 1
spawned
Shit
s = spawned
Shit
s + 1
end)
end)
end
end
end
end
Copy
Copied
Copy
Copied
function Validate
Weed
Coord(plantCoord)
function Validate
Shit
Coord(plantCoord)
if spawned
Weed
s > 0 then
if spawned
Shit
s > 0 then
local validate = true
local validate = true
Copy
Copied
Copy
Copied
for k, v in pairs(
weedPlants
) do
for k, v in pairs(
Shitss
) do
if GetDistanceBetweenCoords(plantCoord, GetEntityCoords(v), true) <
5
then
if GetDistanceBetweenCoords(plantCoord, GetEntityCoords(v), true) <
10
then
validate = false
validate = false
end
end
end
end
Copy
Copied
Copy
Copied
if GetDistanceBetweenCoords(plantCoord, Config.CircleZones.
WeedField
.coords, false) >
50
then
if GetDistanceBetweenCoords(plantCoord, Config.CircleZones.
oilfield
.coords, false) >
20
then
validate = false
validate = false
end
end
return validate
return validate
else
else
return true
return true
end
end
end
end
Copy
Copied
Copy
Copied
function Generate
Weed
Coords()
function Generate
Shit
Coords()
while true do
while true do
Copy
Copied
Copy
Copied
Citizen.Wait(
1
)
Citizen.Wait(
200
)
Copy
Copied
Copy
Copied
local
weedCoordX, weedCoordY
local
ShitCoordX, ShitCoordY
math.randomseed(GetGameTimer())
math.randomseed(GetGameTimer())
Copy
Copied
Copy
Copied
local modX = math.random(-
90, 90
)
local modX = math.random(-
30, 30
)
Citizen.Wait(100)
Citizen.Wait(100)
math.randomseed(GetGameTimer())
math.randomseed(GetGameTimer())
Copy
Copied
Copy
Copied
local modY = math.random(-
90, 90
)
local modY = math.random(-
25, 25
)
Copy
Copied
Copy
Copied
weedCoordX
= Config.CircleZones.
WeedField
.coords.x + modX
ShitCoordX
= Config.CircleZones.
oilfield
.coords.x + modX
weedCoordY
= Config.CircleZones.
WeedField
.coords.y + modY
ShitCoordY
= Config.CircleZones.
oilfield
.coords.y + modY
Copy
Copied
Copy
Copied
local coordZ = GetCoordZ(
weedCoordX, weedCoordY
)
local coordZ = GetCoordZ(
ShitCoordX, ShitCoordY
)
local coord = vector3(
weedCoordX, weedCoordY
, coordZ)
local coord = vector3(
ShitCoordX, ShitCoordY
, coordZ)
Copy
Copied
Copy
Copied
if Validate
Weed
Coord(coord) then
if Validate
Shit
Coord(coord) then
return coord
return coord
end
end
end
end
end
end
function GetCoordZ(x, y)
function GetCoordZ(x, y)
local groundCheckHeights = { 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0 }
local groundCheckHeights = { 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0 }
for i, height in ipairs(groundCheckHeights) do
for i, height in ipairs(groundCheckHeights) do
local foundGround, z = GetGroundZFor_3dCoord(x, y, height)
local foundGround, z = GetGroundZFor_3dCoord(x, y, height)
if foundGround then
if foundGround then
return z
return z
end
end
end
end
return 43.0
return 43.0
end
end
Saved diffs
Original text
Open file
local spawnedWeeds = 0 local weedPlants = {} local isPickingUp, isProcessing = false, false Citizen.CreateThread(function() while true do Citizen.Wait(500) local coords = GetEntityCoords(PlayerPedId()) if GetDistanceBetweenCoords(coords, Config.CircleZones.WeedField.coords, true) < 50 then SpawnWeedPlants() end end end) Citizen.CreateThread(function() while true do Citizen.Wait(0) local playerPed = PlayerPedId() local coords = GetEntityCoords(playerPed) if GetDistanceBetweenCoords(coords, Config.CircleZones.WeedProcessing.coords, true) < 1 then if not isProcessing then ESX.ShowHelpNotification(_U('weed_processprompt')) end if IsControlJustReleased(0, 38) and not isProcessing then if Config.LicenseEnable then ESX.TriggerServerCallback('esx_license:checkLicense', function(hasProcessingLicense) if hasProcessingLicense then ProcessWeed() else OpenBuyLicenseMenu('weed_processing') end end, GetPlayerServerId(PlayerId()), 'weed_processing') else ProcessWeed() end end else Citizen.Wait(500) end end end) function ProcessWeed() isProcessing = true ESX.ShowNotification(_U('weed_processingstarted')) TriggerServerEvent('esx_drugs:processCannabis') local timeLeft = Config.Delays.WeedProcessing / 1000 local playerPed = PlayerPedId() while timeLeft > 0 do Citizen.Wait(1000) timeLeft = timeLeft - 1 if GetDistanceBetweenCoords(GetEntityCoords(playerPed), Config.CircleZones.WeedProcessing.coords, false) > 4 then ESX.ShowNotification(_U('weed_processingtoofar')) TriggerServerEvent('esx_drugs:cancelProcessing') break end end isProcessing = false end Citizen.CreateThread(function() while true do Citizen.Wait(0) local playerPed = PlayerPedId() local coords = GetEntityCoords(playerPed) local nearbyObject, nearbyID for i=1, #weedPlants, 1 do if GetDistanceBetweenCoords(coords, GetEntityCoords(weedPlants[i]), false) < 1 then nearbyObject, nearbyID = weedPlants[i], i end end if nearbyObject and IsPedOnFoot(playerPed) then if not isPickingUp then ESX.ShowHelpNotification(_U('weed_pickupprompt')) end if IsControlJustReleased(0, 38) and not isPickingUp then isPickingUp = true ESX.TriggerServerCallback('esx_drugs:canPickUp', function(canPickUp) if canPickUp then TaskStartScenarioInPlace(playerPed, 'world_human_gardener_plant', 0, false) Citizen.Wait(2000) ClearPedTasks(playerPed) Citizen.Wait(1500) ESX.Game.DeleteObject(nearbyObject) table.remove(weedPlants, nearbyID) spawnedWeeds = spawnedWeeds - 1 TriggerServerEvent('esx_drugs:pickedUpCannabis') else ESX.ShowNotification(_U('weed_inventoryfull')) end isPickingUp = false end, 'cannabis') end else Citizen.Wait(500) end end end) AddEventHandler('onResourceStop', function(resource) if resource == GetCurrentResourceName() then for k, v in pairs(weedPlants) do ESX.Game.DeleteObject(v) end end end) function SpawnWeedPlants() while spawnedWeeds < 25 do Citizen.Wait(0) local weedCoords = GenerateWeedCoords() ESX.Game.SpawnLocalObject('prop_weed_02', weedCoords, function(obj) PlaceObjectOnGroundProperly(obj) FreezeEntityPosition(obj, true) table.insert(weedPlants, obj) spawnedWeeds = spawnedWeeds + 1 end) end end function ValidateWeedCoord(plantCoord) if spawnedWeeds > 0 then local validate = true for k, v in pairs(weedPlants) do if GetDistanceBetweenCoords(plantCoord, GetEntityCoords(v), true) < 5 then validate = false end end if GetDistanceBetweenCoords(plantCoord, Config.CircleZones.WeedField.coords, false) > 50 then validate = false end return validate else return true end end function GenerateWeedCoords() while true do Citizen.Wait(1) local weedCoordX, weedCoordY math.randomseed(GetGameTimer()) local modX = math.random(-90, 90) Citizen.Wait(100) math.randomseed(GetGameTimer()) local modY = math.random(-90, 90) weedCoordX = Config.CircleZones.WeedField.coords.x + modX weedCoordY = Config.CircleZones.WeedField.coords.y + modY local coordZ = GetCoordZ(weedCoordX, weedCoordY) local coord = vector3(weedCoordX, weedCoordY, coordZ) if ValidateWeedCoord(coord) then return coord end end end function GetCoordZ(x, y) local groundCheckHeights = { 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0 } for i, height in ipairs(groundCheckHeights) do local foundGround, z = GetGroundZFor_3dCoord(x, y, height) if foundGround then return z end end return 43.0 end
Changed text
Open file
local spawnedShits = 0 local Shitss = {} local isPickingUp, isProcessing = false, false Citizen.CreateThread(function() while true do Citizen.Wait(7000) local coords = GetEntityCoords(PlayerPedId()) if GetDistanceBetweenCoords(coords, Config.CircleZones.oilfield.coords, true) < 20 then SpawnShites() Citizen.Wait(7000) else Citizen.Wait(7000) end end end) Citizen.CreateThread(function() while true do Citizen.Wait(0) local playerPed = PlayerPedId() local coords = GetEntityCoords(playerPed) local nearbyObject, nearbyID for i=1, #Shitss, 1 do if GetDistanceBetweenCoords(coords, GetEntityCoords(Shitss[i]), false) < 1 then nearbyObject, nearbyID = Shitss[i], i end end if nearbyObject and IsPedOnFoot(playerPed) then if not isPickingUp then ESX.ShowHelpNotification(_U('pickupprompt')) end if IsControlJustReleased(0, Keys['E']) and not isPickingUp then isPickingUp = true ESX.TriggerServerCallback('fm_Shit:canPickUp', function(canPickUp) if canPickUp then exports['progressBars']:startUI(4500, "Drilling for soil") TaskStartScenarioInPlace(playerPed, 'world_human_const_drill', 0, false) Citizen.Wait(3500) ClearPedTasks(playerPed) Citizen.Wait(1000) ESX.Game.DeleteObject(nearbyObject) table.remove(Shitss, nearbyID) spawnedShits = spawnedShits - 1 TriggerServerEvent('fm_Shit:pickedUpCannabis') else ESX.ShowNotification(_U('inventoryfull')) end isPickingUp = false end, 'petroleocrudo') end else Citizen.Wait(500) end end end) AddEventHandler('onResourceStop', function(resource) if resource == GetCurrentResourceName() then for k, v in pairs(Shitss) do ESX.Game.DeleteObject(v) end end end) function SpawnShites() while spawnedShits < 20 do Citizen.Wait(0) local ShitCoords = GenerateShitCoords() ESX.Game.SpawnLocalObject('prop_bush_med_03', ShitCoords, function(obj) PlaceObjectOnGroundProperly(obj) FreezeEntityPosition(obj, true) table.insert(Shitss, obj) spawnedShits = spawnedShits + 1 end) end end function ValidateShitCoord(plantCoord) if spawnedShits > 0 then local validate = true for k, v in pairs(Shitss) do if GetDistanceBetweenCoords(plantCoord, GetEntityCoords(v), true) < 10 then validate = false end end if GetDistanceBetweenCoords(plantCoord, Config.CircleZones.oilfield.coords, false) > 20 then validate = false end return validate else return true end end function GenerateShitCoords() while true do Citizen.Wait(200) local ShitCoordX, ShitCoordY math.randomseed(GetGameTimer()) local modX = math.random(-30, 30) Citizen.Wait(100) math.randomseed(GetGameTimer()) local modY = math.random(-25, 25) ShitCoordX = Config.CircleZones.oilfield.coords.x + modX ShitCoordY = Config.CircleZones.oilfield.coords.y + modY local coordZ = GetCoordZ(ShitCoordX, ShitCoordY) local coord = vector3(ShitCoordX, ShitCoordY, coordZ) if ValidateShitCoord(coord) then return coord end end end function GetCoordZ(x, y) local groundCheckHeights = { 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0 } for i, height in ipairs(groundCheckHeights) do local foundGround, z = GetGroundZFor_3dCoord(x, y, height) if foundGround then return z end end return 43.0 end
Find difference