Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 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
비교하기