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
尋找差異