Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local beginningMarker = {
- {2518.23706, -2270.74927, -0.55000},
- {2698.90576, -2310.06494, -0.55000},
- {2309.20703, -2417.13794, -0.55000},
- {2351.62012, -2522.45435, -0.55000},
- {2614.61987, -2479.15967, -0.55000},
- {2730.23950, -2587.99219, -0.55000}
- }
- local isMissionActive = false
- local firstMarker, firstBlip = nil, nil
- local timers = {}
- local boatElements ={}
- local currentBoat = 1
- function enableStartMissionOption(plr, seat)
- if (plr ~= localPlayer) then
- return false
- end
- if (getElementMode(source) ~= 430 or seat ~= 0) then
- return false
- end
- if (getElementData(plr, "o") ~= "Police Officer") then
- return false
- end
- exports.CIThelp:modTextBar("boatMission", "Press N to start the Predator Mission.")
- bindKey(plr, "N", "down", startBoatMission)
- end
- function startBoatMission()
- local veh = getPedOccupiedVehicle(localPlayer)
- local seat = getPedOccupiedVehicleSeat(localPlayer)
- if (not veh or seat ~= 0) then
- return false
- end
- if (isMissionActive) then
- return false
- end
- unbindKey("N", "down", startBoatMission)
- isMissionActive = true
- local pos = beginningMarker[math.random(1,#beginningMarker)]
- firstMarker = createMarker(pos.x, pos.y, pos.z, "cylinder", 6, 0, 0, 210)
- firstBlip = createBlip(pos.x, pos.y, pos.z, 43)
- addEventHandler("onClientMarkerHit", firstMarker, missionStarting)
- addEventHandler("onClientPlayerWasted", localPlayer, failMission)
- addEventHandler("onClientPlayerResign", localPlayer, failMission)
- addEventHandler("onClientElementDestroy", veh, failMission)
- end
- function checkDistance(veh)
- if (not veh or not isElement(veh)) then
- failMission()
- return false
- end
- local px, py, pz = getElementPosition(localPlayer)
- local vx, vy, vz = getElementPosition(veh)
- if (getDistanceBetweenPoints2D(px, py, vx, vy) > 100) then
- failMission("dist")
- return true
- end
- end
- addEventHandler("onClientVehicleEnter", root, enableStartMissionOption)
- function missionStarting(plr, dim)
- if(plr ~= localPlayer or not dim) then
- return false
- end
- local veh = getPedOccupiedVehicle(localPlayer)
- local seat = getPedOccupiedVehicleSeat(localPlayer)
- if(not veh or seat ~= 0) then
- return false
- end
- if(firstMarker or firstBlip) then
- setElementSpeed(veh, 1, 0)
- outputChatBox("Some drug smugglers are escaping with tons of drugs, stop them before they escape!", 0, 0, 110)
- destroyElement(firstMarker)
- destroyElement(firstBlip)
- firstMarker = nil
- firstBlip = nil
- end
- timers["distanceCheck"] = setTimer(checkDistance, 1000, 0, veh)
- boatElements["boat"] = createVehicle(446, x, y, z)
- boatElements["boatPed1"] = exports.CITpeds:newPed(15, 0, 0, 0)
- boatElements["boatPed2"] = exports.CITpeds:newPed(22, x, y, z)
- exports.CITpeds:pedOptions(boatElements["boatPed2"], 5, 31)
- attachElements(boatElements["boatPed2"], boatElements["boat"])
- warpPedIntoVehicle(boatElements["boatPed1"], boatElements["boat"])
- setPedControlState(boatElements["boatPed1"], "accelerate", true)
- timers["turnBoat"] = setTimer(turnBoat, 4000, 0)
- addEventHandler("onClientVehicleDamage", boatElements["boat"], boatIsDamaged)
- end
- function boatIsDamaged(attacker, gun, loss)
- if(attacker ~= localPlayer) then
- return false
- end
- if(getElementHealth(source) > 0) then
- return false
- end
- removePedFromVehicle(boatElements["boatPed1"])
- setElementPosition(boatElements["boatPed1"], x, y, z)
- exports.CITpeds:pedOptions(boatElements["boatPed1"], 5, 31)
- addEventHandler("onClientPedWasted", boatElements["boatPed1"], boatPedDead)
- end
- function boatPedDead(killer)
- if(killer ~= localPlayer) then
- return false
- end
- if(isElement(drugCrate)) then
- return false
- end
- local drugCrate = createMarker(x, y, z, "cylinder", 1, 0, 0, 255)
- outputChatBox("You killed the drug smugglers, remove the drugs from the crate", 0, 255, 0)
- addEventHandler("onClientMarkerHit", drugCrate1, tookTheCrate)
- end
- function tookTheCrate(plr, dim)
- if(plr ~= localPlayer or not dim) then
- return false
- end
- destroyElement(source)
- if(currentBoat == 4) then
- missionCompleted()
- return true
- end
- currentBoat = currentBoat + 1
- outputChatBox("You have got the drugs, but there are still more drug smugglers, stop them!", 0, 0, 160)
- destroyMainAssets()
- missionStarting(localPlayer, true)
- end
- function destroyMainAssets()
- for i, v in pairs(boatElements) do
- destroyElement(v)
- end
- boatElements = {}
- for i, v in pairs(timers) do
- destroyElement(v)
- end
- timers = {}
- end
- function turnBoat()
- if(not boatElements["boat"] or not boatElements["boatPed1"]) then
- return false
- end
- local r = math.random(1, 2)
- if(r == 1) then
- setPedControlState(boatElements["boatPed1"], "vehicle_left", true)
- else
- setPedControlState(boatElements["boatPed1"], "vehicle_right", true)
- end
- end
- function missionCompleted()
- destroyMainAssets()
- isMissionActive = false
- triggerServerEvent() --gonna give rewards
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement