Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ocal ClientScreenW, ClientScreenH = guiGetScreenSize()
- local requestPanelObjects = {}
- local VehicleLockStatus
- local currentVehicle
- local deliveryMarker
- local entering = false
- local deliveryBlip
- local deliveryMarkerPosition = Vector3(-1561.3, 110.3, 2.5)
- function startFeature(player, seat, door)
- if entering then
- entering = false
- setTimer(checkIfEntered,5000,1)
- return
- end
- if seat == 0 then
- if player:getData("class") == "Carjacker" then
- if source:getData("vehicleOwner") and not source:getData("vehicleOwner") == player:getData("username") then
- currentVehicle = source
- cancelEvent()
- if source:isLocked() then
- requestJacking(true)
- VehicleLockStatus = true
- elseif not source:isLocked() then
- requestJacking(false)
- VehicleLockStatus = false
- end
- end
- end
- end
- end
- addEventHandler("onClientVehicleStartEnter", getRootElement(), startFeature)
- function requestJacking(locked)
- if locked then
- createRequestPanel("is locked")
- elseif not locked then
- createRequestPanel("isn't locked")
- end
- end
- function createRequestPanel(Status)
- showCursor(true)
- requestPanelObjects.window =
- GuiWindow((ClientScreenW - 386) / 2, (ClientScreenH - 131) / 2, 386, 131, "SAES:RPG - Carjacker ", false)
- requestPanelObjects.window:setSizable(false)
- requestPanelObjects.label =
- GuiLabel(
- 24,
- 23,
- 338,
- 50,
- "Seems like this vehicle is empty and " .. Status .. ", would you like to steal it ?",
- false,
- requestPanelObjects.window
- )
- requestPanelObjects.label:setHorizontalAlign("center", true)
- requestPanelObjects.label:setVerticalAlign("center")
- requestPanelObjects.yesButton = GuiButton(24, 83, 167, 26, "Yes", false, requestPanelObjects.window)
- addEventHandler("onClientGUIClick", requestPanelObjects.yesButton, onYesButtonClick, false)
- requestPanelObjects.noButton = GuiButton(201, 83, 161, 26, "No", false, requestPanelObjects.window)
- addEventHandler("onClientGUIClick", requestPanelObjects.noButton, onNoButtonClick, false)
- end
- function minigameFailed()
- currentVehicle = nil
- local hanlder1 = getEventHandlers("minigamePassed", getRootElement())[1]
- local hanlder2 = getEventHandlers("minigameFailed", getRootElement())[1]
- removeEventHandler("minigamePassed", getRootElement(), hanlder1)
- removeEventHandler("minigameFailed", getRootElement(), hanlder2)
- end
- addEvent("minigamePassed", true)
- addEvent("minigameFailed", true)
- function onYesButtonClick()
- if VehicleLockStatus then
- removeEventHandler("onClientGUIClick", requestPanelObjects.noButton, onNoButtonClick)
- removeEventHandler(
- "onClientGUIClick",
- requestPanelObjects.yesButton,
- getEventHandlers("onClientGUIClick", requestPanelObjects.yesButton)[1]
- )
- triggerServerEvent("triggerMiniGame", currentVehicle)
- addEventHandler(
- "minigamePassed",
- getRootElement(),
- function()
- startDelivery()
- entering = true
- currentVehicle:setLocked(false)
- localPlayer:setControlState("enter_exit", true)
- end
- )
- addEventHandler("minigameFailed", getRootElement(), minigameFailed)
- elseif not VehicleLockStatus then
- showCursor(false)
- entering = true
- startDelivery()
- localPlayer:setControlState("enter_exit", true)
- removeEventHandler("onClientGUIClick", requestPanelObjects.noButton, onNoButtonClick)
- removeEventHandler(
- "onClientGUIClick",
- requestPanelObjects.yesButton,
- getEventHandlers("onClientGUIClick", requestPanelObjects.yesButton)[1]
- )
- end
- requestPanelObjects.window:destroy()
- requestPanelObjects = {}
- end
- function onNoButtonClick()
- showCursor(false)
- if VehicleLockStatus then
- removeEventHandler("onClientGUIClick", requestPanelObjects.yesButton, onYesButtonClick)
- removeEventHandler(
- "onClientGUIClick",
- requestPanelObjects.noButton,
- getEventHandlers("onClientGUIClick", requestPanelObjects.noButton)[1]
- )
- currentVehicle = nil
- elseif not VehicleLockStatus then
- entering = true
- localPlayer:setControlState("enter_exit", true)
- removeEventHandler("onClientGUIClick", requestPanelObjects.yesButton, onYesButtonClick)
- removeEventHandler(
- "onClientGUIClick",
- requestPanelObjects.noButton,
- getEventHandlers("onClientGUIClick", requestPanelObjects.noButton)[1]
- )
- currentVehicle = nil
- end
- requestPanelObjects.window:destroy()
- requestPanelObjects = {}
- end
- function startDelivery()
- local hanlder1 = getEventHandlers("minigamePassed", getRootElement())[1]
- local hanlder2 = getEventHandlers("minigameFailed", getRootElement())[1]
- if hanlder1 and hanlder2 then
- removeEventHandler("minigamePassed", getRootElement(), hanlder1)
- removeEventHandler("minigameFailed", getRootElement(), hanlder2)
- end
- deliveryMarker = Marker(deliveryMarkerPosition, "cylinder", 4, 255, 0, 0, 255)
- deliveryBlip = Blip.createAttachedTo(deliveryMarker, 41, 3, 255, 0, 0, 0, 65535)
- addEventHandler("onClientMarkerHit", deliveryMarker, deliveryMarkerHit)
- addEventHandler("onClientVehicleExit", currentVehicle, stopDelivery)
- addEventHandler("onClientPlayerWasted", localPlayer, stopDelivery)
- end
- function checkIfEntered()
- if not localPlayer:getOccupiedVehicle() then
- stopDelivery()
- end
- end
- function stopDelivery()
- removeEventHandler("onClientMarkerHit", deliveryMarker, getEventHandlers("onClientMarkerHit", deliveryMarker)[1])
- removeEventHandler(
- "onClientVehicleExit",
- currentVehicle,
- getEventHandlers("onClientVehicleExit", currentVehicle)[1]
- )
- removeEventHandler("onClientPlayerWasted", localPlayer, getEventHandlers("onClientPlayerWasted", localPlayer)[1])
- currentVehicle = nil
- deliveryBlip:destroy()
- deliveryMarker:destroy()
- outputChatBox("You have abandonded the mission", 255, 0, 0)
- end
- function deliveryMarkerHit()
- removeEventHandler("onClientMarkerHit", deliveryMarker, getEventHandlers("onClientMarkerHit", deliveryMarker)[1])
- removeEventHandler("onClientVehicleExit", currentVehicle, stopDelivery)
- removeEventHandler("onClientPlayerWasted", localPlayer, stopDelivery)
- deliveryBlip:destroy()
- deliveryMarker:destroy()
- triggerServerEvent("Delivery:done", currentVehicle)
- currentVehicle = nil
- givePlayerMoney(5000)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement