Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled Diff
创建于
6年前
差异永不过期
清除
导出
分享
解释
100 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
198 行
全部复制
61 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
158 行
全部复制
复制
已复制
复制
已复制
local spawned
Weed
s = 0
local spawned
Shit
s = 0
local
weedPlants
= {}
local
Shitss
= {}
local isPickingUp, isProcessing = false, false
local isPickingUp, isProcessing = false, false
复制
已复制
复制
已复制
Citizen.CreateThread(function()
Citizen.CreateThread(function()
while true do
while true do
复制
已复制
复制
已复制
Citizen.Wait(
500
)
Citizen.Wait(
7000
)
local coords = GetEntityCoords(PlayerPedId())
local coords = GetEntityCoords(PlayerPedId())
复制
已复制
复制
已复制
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
复制
已复制
复制
已复制
Citizen.Wait(
500
)
Citizen.Wait(
7000
)
end
end
end
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()
Citizen.CreateThread(function()
while true do
while true do
Citizen.Wait(0)
Citizen.Wait(0)
复制
已复制
复制
已复制
local playerPed = PlayerPedId()
local playerPed = PlayerPedId()
local coords = GetEntityCoords(playerPed)
local coords = GetEntityCoords(playerPed)
local nearbyObject, nearbyID
local nearbyObject, nearbyID
复制
已复制
复制
已复制
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
复制
已复制
复制
已复制
if not isPickingUp then
if not isPickingUp then
复制
已复制
复制
已复制
ESX.ShowHelpNotification(_U('
weed_
pickupprompt'))
ESX.ShowHelpNotification(_U('
pickupprompt'))
end
end
复制
已复制
复制
已复制
if IsControlJustReleased(0,
38
) and not isPickingUp then
if IsControlJustReleased(0,
Keys['E']
) and not isPickingUp then
isPickingUp = true
isPickingUp = true
复制
已复制
复制
已复制
ESX.TriggerServerCallback('
esx_drugs
:canPickUp', function(canPickUp)
ESX.TriggerServerCallback('
fm_Shit
:canPickUp', function(canPickUp)
if canPickUp then
if canPickUp then
复制
已复制
复制
已复制
TaskStartScenarioInPlace(playerPed, 'world_human_
gardener_plant
', 0, false)
exports['progressBars']:startUI(4500, "Drilling for soil")
TaskStartScenarioInPlace(playerPed, 'world_human_
const_drill
', 0, false)
复制
已复制
复制
已复制
Citizen.Wait(
2000
)
Citizen.Wait(
3500
)
ClearPedTasks(playerPed)
ClearPedTasks(playerPed)
复制
已复制
复制
已复制
Citizen.Wait(1
5
00)
Citizen.Wait(1
0
00)
ESX.Game.DeleteObject(nearbyObject)
ESX.Game.DeleteObject(nearbyObject)
复制
已复制
复制
已复制
table.remove(
weedPlants
, nearbyID)
table.remove(
Shitss
, nearbyID)
spawned
Weed
s = spawned
Weed
s - 1
spawned
Shit
s = spawned
Shit
s - 1
复制
已复制
复制
已复制
TriggerServerEvent('
esx_drugs
:pickedUpCannabis')
TriggerServerEvent('
fm_Shit
:pickedUpCannabis')
else
else
复制
已复制
复制
已复制
ESX.ShowNotification(_U('
weed_
inventoryfull'))
ESX.ShowNotification(_U('
inventoryfull'))
end
end
isPickingUp = false
isPickingUp = false
复制
已复制
复制
已复制
end, '
cannabis
')
end, '
petroleocrudo
')
end
end
复制
已复制
复制
已复制
else
else
Citizen.Wait(500)
Citizen.Wait(500)
end
end
复制
已复制
复制
已复制
end
end
复制
已复制
复制
已复制
end)
end)
AddEventHandler('onResourceStop', function(resource)
AddEventHandler('onResourceStop', function(resource)
if resource == GetCurrentResourceName() then
if resource == GetCurrentResourceName() then
复制
已复制
复制
已复制
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)
复制
已复制
复制
已复制
function
SpawnWeedPlants
()
function
SpawnShites
()
while spawned
Weed
s <
25
do
while spawned
Shit
s <
20
do
Citizen.Wait(0)
Citizen.Wait(0)
复制
已复制
复制
已复制
local
weedCoords
= Generate
Weed
Coords()
local
ShitCoords
= Generate
Shit
Coords()
复制
已复制
复制
已复制
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)
复制
已复制
复制
已复制
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
复制
已复制
复制
已复制
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
复制
已复制
复制
已复制
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
复制
已复制
复制
已复制
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
复制
已复制
复制
已复制
function Generate
Weed
Coords()
function Generate
Shit
Coords()
while true do
while true do
复制
已复制
复制
已复制
Citizen.Wait(
1
)
Citizen.Wait(
200
)
复制
已复制
复制
已复制
local
weedCoordX, weedCoordY
local
ShitCoordX, ShitCoordY
math.randomseed(GetGameTimer())
math.randomseed(GetGameTimer())
复制
已复制
复制
已复制
local modX = math.random(-
90, 90
)
local modX = math.random(-
30, 30
)
Citizen.Wait(100)
Citizen.Wait(100)
math.randomseed(GetGameTimer())
math.randomseed(GetGameTimer())
复制
已复制
复制
已复制
local modY = math.random(-
90, 90
)
local modY = math.random(-
25, 25
)
复制
已复制
复制
已复制
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
复制
已复制
复制
已复制
local coordZ = GetCoordZ(
weedCoordX, weedCoordY
)
local coordZ = GetCoordZ(
ShitCoordX, ShitCoordY
)
local coord = vector3(
weedCoordX, weedCoordY
, coordZ)
local coord = vector3(
ShitCoordX, ShitCoordY
, coordZ)
复制
已复制
复制
已复制
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
已保存差异
原始文本
打开文件
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
更改后文本
打开文件
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
查找差异