Advertisement
Filexdoj

carjacker minigame

Jul 27th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.38 KB | None | 0 0
  1. local DevScreenW, DevScreenH = 1280, 900
  2. local ClientScreenW, ClientScreenH = guiGetScreenSize()
  3. local speed = 2.5
  4. local step = 1
  5. local Timer
  6. local currentVehicle
  7. local drawDimensions = {
  8.     mainRectangle = {
  9.         startX = (ClientScreenW - 486 / ClientScreenW * DevScreenW) / 2,
  10.         startY = 52 / ClientScreenH * DevScreenH,
  11.         width = 486 / ClientScreenW * DevScreenW,
  12.         height = 30 / ClientScreenH * DevScreenH
  13.     },
  14.     targettingRectangel = {
  15.         startX =  (ClientScreenW - 486 / ClientScreenW * DevScreenW) / 2,
  16.         width = 4 / ClientScreenW * DevScreenW,
  17.         height = 30 / ClientScreenH * DevScreenH
  18.     },
  19.     targetRectangle = {
  20.         startX = 0,
  21.         width = 30 / ClientScreenW * DevScreenW,
  22.         height = 30 / ClientScreenH * DevScreenH
  23.     },
  24.     outline = {
  25.         startX = ((ClientScreenW - 486 / ClientScreenW * DevScreenW) / 2) + (486 / ClientScreenW * DevScreenW),
  26.         startY = 82 / ClientScreenH * DevScreenH
  27.     }
  28. }
  29.  
  30. function drawMiniGame()
  31.     showCursor(true)
  32.     -- drawing main rectangle and it's outlines
  33.     dxDrawLine(
  34.         drawDimensions.mainRectangle["startX"] - 1,
  35.         drawDimensions.mainRectangle["startY"] - 1,
  36.         drawDimensions.mainRectangle["startX"] - 1,
  37.         drawDimensions.outline["startY"],
  38.         tocolor(0, 0, 0, 255),
  39.         1,
  40.         false
  41.     )
  42.     dxDrawLine(
  43.         drawDimensions.outline["startX"],
  44.         drawDimensions.mainRectangle["startY"] - 1,
  45.         drawDimensions.mainRectangle["startX"] - 1,
  46.         drawDimensions.mainRectangle["startY"] - 1,
  47.         tocolor(0, 0, 0, 255),
  48.         1,
  49.         false
  50.     )
  51.     dxDrawLine(
  52.         drawDimensions.mainRectangle["startX"] - 1,
  53.         drawDimensions.outline["startY"],
  54.         drawDimensions.outline["startX"],
  55.         drawDimensions.outline["startY"],
  56.         tocolor(0, 0, 0, 255),
  57.         1,
  58.         false
  59.     )
  60.     dxDrawLine(
  61.         drawDimensions.outline["startX"],
  62.         drawDimensions.outline["startY"],
  63.         drawDimensions.outline["startX"],
  64.         drawDimensions.mainRectangle["startY"] - 1,
  65.         tocolor(0, 0, 0, 255),
  66.         1,
  67.         false
  68.     )
  69.     dxDrawRectangle(
  70.         drawDimensions.mainRectangle["startX"],
  71.         drawDimensions.mainRectangle["startY"],
  72.         drawDimensions.mainRectangle["width"],
  73.         drawDimensions.mainRectangle["height"],
  74.         tocolor(0, 0, 0, 0),
  75.         false
  76.     )
  77.     -- drawing target rectangle
  78.     dxDrawRectangle(
  79.         drawDimensions.targetRectangle["startX"],
  80.         drawDimensions.mainRectangle["startY"],
  81.         drawDimensions.targetRectangle["width"],
  82.         drawDimensions.targetRectangle["height"],
  83.         tocolor(51, 254, 17, 255),
  84.         false
  85.     )
  86.  
  87.     -- drawing targetting rectangle
  88.     dxDrawRectangle(
  89.         drawDimensions.targettingRectangel["startX"],
  90.         drawDimensions.mainRectangle["startY"],
  91.         drawDimensions.targettingRectangel["width"],
  92.         drawDimensions.targettingRectangel["height"],
  93.         tocolor(254, 254, 254, 255),
  94.         false
  95.     )
  96. end
  97.  
  98. function stopMiniGame()
  99.     killTimer(Timer)
  100.     removeEventHandler("onClientKey", getRootElement(), onSpaceClick)
  101.     removeEventHandler("onClientRender", getRootElement(), drawMiniGame)
  102.     speed = 1.5
  103.     drawDimensions.targettingRectangel["startX"] = drawDimensions.mainRectangle["startX"]
  104.     drawDimensions.targetRectangle["width"] = 30 / ClientScreenW * DevScreenW
  105.     step = 1
  106.     showCursor(false)
  107. end
  108.  
  109. function moveToNextStep()
  110.     if step == 3 then
  111.         stopMiniGame()
  112.         outputChatBox("You have Succefully unlocked the vehicle", 0, 255, 0)
  113.         outputChatBox("Make sure to reach the delivery point on the map", 255, 0, 0)
  114.         triggerServerEvent("minigamePassed", localPlayer)
  115.     else
  116.         step = step + 1
  117.         outputChatBox("Step " .. step, 0, 255, 0)
  118.         if speed > 0 then
  119.             speed = speed + 1
  120.         elseif speed < 0 then
  121.             speed = speed - 1
  122.         end
  123.         drawDimensions.targetRectangle["width"] = drawDimensions.targetRectangle["width"] - 7
  124.         drawDimensions.targetRectangle["startX"] =
  125.             math.random(
  126.             drawDimensions.mainRectangle["startX"],
  127.             drawDimensions.mainRectangle["startX"] + drawDimensions.mainRectangle["width"] -
  128.                 drawDimensions.targetRectangle["width"]
  129.         )
  130.     end
  131. end
  132.  
  133. function onSpaceClick(key, pOr)
  134.     if pOr == false and key == "space" then
  135.         if
  136.             drawDimensions.targettingRectangel["startX"] >= drawDimensions.targetRectangle["startX"] and
  137.                 drawDimensions.targettingRectangel["startX"] <=
  138.                     drawDimensions.targetRectangle["startX"] + drawDimensions.targetRectangle["width"]
  139.          then
  140.             moveToNextStep()
  141.         else
  142.             stopMiniGame()
  143.             outputChatBox("You have failed to unlock the vehicle and an alarm has started", 255, 0, 0)
  144.             triggerServerEvent("minigameFailed", localPlayer)
  145.         end
  146.     end
  147. end
  148.  
  149. function moveTargettingRectangleAndCheck()
  150.     drawDimensions.targettingRectangel["startX"] = drawDimensions.targettingRectangel["startX"] + speed
  151.     if
  152.         drawDimensions.targettingRectangel["startX"] + drawDimensions.targettingRectangel["width"] >=
  153.             drawDimensions.mainRectangle["startX"] + drawDimensions.mainRectangle["width"]
  154.      then
  155.         speed = -speed
  156.     elseif drawDimensions.targettingRectangel["startX"] <= drawDimensions.mainRectangle["startX"] then
  157.         speed = -speed
  158.     end
  159. end
  160.  
  161. function triggerMiniGame()
  162.     currentVehicle = source
  163.     Timer = setTimer(moveTargettingRectangleAndCheck, 0, 0)
  164.     drawDimensions.targetRectangle["startX"] =
  165.         math.random(
  166.         drawDimensions.mainRectangle["startX"],
  167.         drawDimensions.mainRectangle["startX"] + drawDimensions.mainRectangle["width"] -
  168.             drawDimensions.targetRectangle["width"]
  169.     )
  170.     addEventHandler("onClientKey", getRootElement(), onSpaceClick)
  171.     addEventHandler("onClientRender", getRootElement(), drawMiniGame)
  172. end
  173. addCommandHandler(
  174.     "testit",
  175.     function()
  176.         removeEventHandler("onClientKey", getRootElement(), onSpaceClick)
  177.         removeEventHandler("onClientRender", getRootElement(), drawMiniGame)
  178.         triggerMiniGame()
  179.     end
  180. )
  181. addEvent("triggerMiniGame", true)
  182. addEventHandler("triggerMiniGame", getRootElement(), triggerMiniGame)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement