Advertisement
Guest User

lame conchetumadre

a guest
Nov 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.61 KB | None | 0 0
  1. --[[ Client.lua ]]
  2. local collision = 0
  3.  
  4. function countCollisions()
  5.        local veh = getPedOccupiedVehicle(localPlayer)
  6.        if veh then
  7.             addEventHandler("onClientVehicleDamage", veh, function() collision = collision + 1 end)
  8.        end
  9. end
  10. addEvent("onViperStart", true)
  11. addEventHandler("onViperStart", getRootElement(), countCollisions)
  12.  
  13.  
  14.  
  15. function getCollisionData()
  16.        triggerServerEvent("onViperTunnelFinish", localPlayer, collision)
  17.        collision = 0
  18.        removeEventHandler("onClientVehicleCollision", veh, onCollision)
  19. end
  20. addEvent("onViperFinish", true)
  21. addEventHandler("onViperFinish", getRootElement(), getCollisionData)
  22.  
  23. --[[ Server.lua ]]
  24.  
  25.  
  26.   local MAX_RAD = 5
  27. local validVehicles = {520}
  28. local gates = {
  29. {-1981.29712, -592.02557, 25.71245, "SF"},
  30. {-1320.26001, -1512.23755, 23.71875, "SF"},
  31.  {1683.51794, -1956.44873, 13.54688, "LS"},
  32. {85.07242, -1020.74512, 21.90045, "LS"}}
  33.  
  34. local scoreboard = {}
  35. local playerTimes = {}
  36. local playerCollisions = {}
  37. local cols = {}
  38. local lastGate = {}
  39.  
  40. function round(num, numDecimalPlaces)
  41.   local mult = 10^(numDecimalPlaces or 0)
  42.   return math.floor(num * mult + 0.5) / mult
  43. end
  44.  
  45. function finalMessage(col, player, seconds)
  46.         if not player then return end
  47.         local collisions = playerCollisions[player]
  48.         outputDebugString("Player "..getPlayerName(player).." has left the viper tunnel")
  49.         outputDebugString("Number of collisions: "..tostring(collisions))
  50.                  outputChatBox("#FF0000[VIPER #FFFFFF"..tostring(getElementData(col, "area")).." #FF0000TUNNEL] "..getPlayerName(player).. " #00FF00 Time taken: "..tostring(seconds).." seconds. Collisions: "..tostring(collisions), _, 255, 255, 255, true)
  51. end
  52.  
  53. addEvent("onViperTunnelFinish", true)
  54. addEventHandler("onViperTunnelFinish", getRootElement(), function (collisions) playerCollisions[source] = collisions end)
  55.  
  56. function onHit(elem, matching)
  57.       if not source or not elem  or not matching then return false end
  58.       if getElementType(elem) == "vehicle" and getElementModel(elem) == 520 then
  59.             local controller = getVehicleController(elem)
  60.             if not controller then return false end
  61.  
  62.             if playerTimes[controller] then
  63.                  if  lastGate[controller] == source then
  64.                            lastGate[controller] = nil
  65.                            playerTimes[controller] = nil
  66.                  else
  67.                  
  68.                  local timeDifference = getTickCount() - playerTimes[controller]
  69.                  local seconds = round(timeDifference / 1000, 3)
  70.                  triggerClientEvent(controller, "onViperFinish", controller)    
  71.                  setTimer(function() finalMessage(source, controller, seconds) end, 1000, 1)          
  72.                 playerTimes[controller] = nil
  73.                end
  74.           else
  75.                 playerTimes[controller] = getTickCount()
  76.                 lastGate[controller] = source
  77.                 outputDebugString("Player "..getPlayerName(controller).." has entered the viper tunnel")
  78.                 triggerClientEvent(controller, "onViperStart", controller)
  79.            end
  80.     end
  81. end
  82.  
  83. function setup()
  84.       for i, v in ipairs(gates) do
  85.            local col = createColSphere(v[1], v[2], v[3], MAX_RAD)
  86.            
  87.            createBlip(v[1], v[2], v[3], 53)
  88.            if col then
  89.                setElementData(col, "area", v[4])
  90.                addEventHandler("onColShapeHit", col, onHit)            
  91.                 cols[#cols + 1] = col
  92.            end                
  93.       end
  94. end
  95.  
  96. addEventHandler("onResourceStart", resourceRoot, setup)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement