Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local DevScreenW, DevScreenH = 1280, 900
- local ClientScreenW, ClientScreenH = guiGetScreenSize()
- local speed
- local speedAdditionOnStep = 0.5
- local step = 1
- local Timer
- local currentVehicle
- local drawDimensions = {
- mainRectangle = {
- startX = (ClientScreenW - 486 / ClientScreenW * DevScreenW) / 2,
- startY = 52 / ClientScreenH * DevScreenH,
- width = 486 / ClientScreenW * DevScreenW,
- height = 30 / ClientScreenH * DevScreenH
- },
- targettingRectangel = {
- startX = (ClientScreenW - 486 / ClientScreenW * DevScreenW) / 2,
- width = 4 / ClientScreenW * DevScreenW,
- height = 30 / ClientScreenH * DevScreenH
- },
- targetRectangle = {
- startX = 0,
- width = 30 / ClientScreenW * DevScreenW,
- height = 30 / ClientScreenH * DevScreenH
- },
- outline = {
- startX = ((ClientScreenW - 486 / ClientScreenW * DevScreenW) / 2) + (486 / ClientScreenW * DevScreenW),
- startY = 82 / ClientScreenH * DevScreenH
- }
- }
- function chooseMinigameSpeedDependingOnCarPrice()
- local priceString = tostring(getVehiclePrice(currentVehicle.name))
- local length = priceString:len() - 2
- speed = tonumber(tostring(length) .. "." .. priceString:sub(1))
- end
- function drawMiniGame()
- showCursor(true)
- -- drawing main rectangle and it's outlines
- dxDrawLine(
- drawDimensions.mainRectangle["startX"] - 1,
- drawDimensions.mainRectangle["startY"] - 1,
- drawDimensions.mainRectangle["startX"] - 1,
- drawDimensions.outline["startY"],
- tocolor(0, 0, 0, 255),
- 1,
- false
- )
- dxDrawLine(
- drawDimensions.outline["startX"],
- drawDimensions.mainRectangle["startY"] - 1,
- drawDimensions.mainRectangle["startX"] - 1,
- drawDimensions.mainRectangle["startY"] - 1,
- tocolor(0, 0, 0, 255),
- 1,
- false
- )
- dxDrawLine(
- drawDimensions.mainRectangle["startX"] - 1,
- drawDimensions.outline["startY"],
- drawDimensions.outline["startX"],
- drawDimensions.outline["startY"],
- tocolor(0, 0, 0, 255),
- 1,
- false
- )
- dxDrawLine(
- drawDimensions.outline["startX"],
- drawDimensions.outline["startY"],
- drawDimensions.outline["startX"],
- drawDimensions.mainRectangle["startY"] - 1,
- tocolor(0, 0, 0, 255),
- 1,
- false
- )
- dxDrawRectangle(
- drawDimensions.mainRectangle["startX"],
- drawDimensions.mainRectangle["startY"],
- drawDimensions.mainRectangle["width"],
- drawDimensions.mainRectangle["height"],
- tocolor(0, 0, 0, 0),
- false
- )
- -- drawing target rectangle
- dxDrawRectangle(
- drawDimensions.targetRectangle["startX"],
- drawDimensions.mainRectangle["startY"],
- drawDimensions.targetRectangle["width"],
- drawDimensions.targetRectangle["height"],
- tocolor(51, 254, 17, 255),
- false
- )
- -- drawing targetting rectangle
- dxDrawRectangle(
- drawDimensions.targettingRectangel["startX"],
- drawDimensions.mainRectangle["startY"],
- drawDimensions.targettingRectangel["width"],
- drawDimensions.targettingRectangel["height"],
- tocolor(254, 254, 254, 255),
- false
- )
- end
- function stopMiniGame()
- killTimer(Timer)
- removeEventHandler("onClientKey", getRootElement(), onSpaceClick)
- removeEventHandler("onClientRender", getRootElement(), drawMiniGame)
- removeEventHandler("onClientPlayerWasted", localPlayer, stopMiniGameIfDeadOrArrested)
- speed = nil
- drawDimensions.targettingRectangel["startX"] = drawDimensions.mainRectangle["startX"]
- drawDimensions.targetRectangle["width"] = 30 / ClientScreenW * DevScreenW
- step = 1
- showCursor(false)
- end
- function moveToNextStep()
- if step == 3 then
- stopMiniGame()
- outputChatBox("You have Succefully unlocked the vehicle", 0, 255, 0)
- outputChatBox("Make sure to reach the delivery point on the map", 255, 0, 0)
- triggerServerEvent("minigamePassed", localPlayer)
- else
- step = step + 1
- outputChatBox("Step " .. step, 0, 255, 0)
- if speed > 0 then
- speed = speed + 0.5
- elseif speed < 0 then
- speed = speed - 0.5
- end
- drawDimensions.targetRectangle["width"] = drawDimensions.targetRectangle["width"] - 7
- drawDimensions.targetRectangle["startX"] =
- math.random(
- drawDimensions.mainRectangle["startX"],
- drawDimensions.mainRectangle["startX"] + drawDimensions.mainRectangle["width"] -
- drawDimensions.targetRectangle["width"]
- )
- end
- end
- function onSpaceClick(key, pOr)
- if pOr == false and key == "space" then
- if
- drawDimensions.targettingRectangel["startX"] >= drawDimensions.targetRectangle["startX"] and
- drawDimensions.targettingRectangel["startX"] <=
- drawDimensions.targetRectangle["startX"] + drawDimensions.targetRectangle["width"]
- then
- moveToNextStep()
- else
- stopMiniGame()
- outputChatBox("You have failed to unlock the vehicle and an alarm has started", 255, 0, 0)
- triggerServerEvent("minigameFailed", localPlayer)
- end
- end
- end
- function stopMiniGameIfDeadOrArrested()
- stopMiniGame()
- triggerServerEvent("minigameFailed", localPlayer)
- end
- addEvent("stopIfArrested", true)
- addEventHandler("stopIfArrested", localPlayer, stopMiniGameIfDeadOrArrested)
- function moveTargettingRectangleAndCheck()
- drawDimensions.targettingRectangel["startX"] = drawDimensions.targettingRectangel["startX"] + speed
- if
- drawDimensions.targettingRectangel["startX"] + drawDimensions.targettingRectangel["width"] >=
- drawDimensions.mainRectangle["startX"] + drawDimensions.mainRectangle["width"]
- then
- speed = -speed
- elseif drawDimensions.targettingRectangel["startX"] <= drawDimensions.mainRectangle["startX"] then
- speed = -speed
- end
- end
- function triggerMiniGame()
- currentVehicle = source
- chooseMinigameSpeedDependingOnCarPrice()
- Timer = setTimer(moveTargettingRectangleAndCheck, 0, 0)
- drawDimensions.targetRectangle["startX"] =
- math.random(
- drawDimensions.mainRectangle["startX"],
- drawDimensions.mainRectangle["startX"] + drawDimensions.mainRectangle["width"] -
- drawDimensions.targetRectangle["width"]
- )
- addEventHandler("onClientKey", getRootElement(), onSpaceClick)
- addEventHandler("onClientRender", getRootElement(), drawMiniGame)
- addEventHandler("onClientPlayerWasted", localPlayer, stopMiniGameIfDeadOrArrested)
- triggerServerEvent("addIfArrestedEvent", localPlayer)
- end
- addEvent("triggerMiniGame", true)
- addEventHandler("triggerMiniGame", getRootElement(), triggerMiniGame)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement