ZELDAX

chekpoint.slua

Jan 10th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.73 KB | None | 0 0
  1. -----------------------------------------------------------
  2. --  PROJECT:     Community Event Manager | Checkpoint Event
  3. --  DEVELOPERS:  Zelda ( Server Side )
  4. -----------------------------------------------------------
  5.  
  6. local currrentPlayers = {}
  7. local playerMin = 5 -- Min players
  8. local start = false
  9.  
  10. function makeEvent(CEM)
  11.     if (hasObjectPermissionTo(player, "command.givevehicle", false) or exports.CITadmin:getPlayerAdminLevel(player) >= 2) then
  12.         if (start) then
  13.             exports.CIThelp:dm("The event has already started", CEM, 255, 0, 0)
  14.             return false
  15.         end
  16.         if (#exports.CITevents:getEventParticipants() < playerMin) then
  17.             exports.CIThelp:dm("There must be at least 5 players to start the event", CEM, 255, 0, 0)
  18.             return false
  19.         end
  20.         for index, player in ipairs(getElementsByType("player")) do
  21.             if (exports.CITevents:isPlayerInEvent(player)) then
  22.                 triggerClientEvent("CITcheckpoint.startScoreRace", player)
  23.                 exports.CIThelp:dm("The score racers event has started!", player, 0, 255, 0)
  24.                 currrentPlayers[player] = true
  25.             end
  26.         end
  27.         start = true
  28.     end
  29. end
  30. addCommandHandler("goracers", makeEvent)
  31.  
  32. function checkEventStatus()
  33.     local curPlayers = 0
  34.     for index, player in pairs(currrentPlayers) do
  35.         if (player and isElement(player) and exports.CITevents:isPlayerInEvent(player)) then
  36.             curPlayers = (curPlayers + 1)
  37.         end
  38.     end
  39.     if (curPlayers == 0) then
  40.         start = false
  41.         exports.CIThelp:dm("The score racers event has finished!", root, 255, 255, 0)
  42.     end
  43. end
  44.  
  45. function winRace()
  46.     executeCommandHandler("leaveevent", client)
  47.     currrentPlayers[client] = nil
  48.     checkEventStatus()
  49.     exports.CITmoney:GPM(client, 10000, "Score Racer Won")
  50. end
  51. addEvent("CITcheckpoint.winRace", true)
  52. addEventHandler("CITcheckpoint.winRace", root, winRace)
  53.  
  54. function updateCount()
  55.     currrentPlayers[client] = nil
  56.     checkEventStatus()
  57. end
  58. addEvent("CITcheckpoint.updateCount", true)
  59. addEventHandler("CITcheckpoint.updateCount", root, updateCount)
  60.  
  61. function onPlayerQuit()
  62.     if (currrentPlayers[client]) then
  63.         currrentPlayers[client] = nil
  64.         checkEventStatus()
  65.     end
  66. end
  67. addEventHandler("onPlayerQuit", root, onPlayerQuit)
  68.  
  69. function warpToMap(player)
  70.     if (hasObjectPermissionTo(player, "command.givevehicle", false) or exports.CITadmin:getPlayerAdminLevel(player) >= 2) then
  71.         -- CITchecking should be include here
  72.         setElementPosition(player, 1687.5888671875, -3092.2841796875, 84.628456115723)
  73.         setElementDimension(player, 336)
  74.     end
  75. end
  76. addCommandHandler("warprace", warpToMap)
Advertisement
Add Comment
Please, Sign In to add comment