RyanUSNS

Server Side

Mar 26th, 2017
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.01 KB | None | 0 0
  1. local plrVehTable = {}
  2. local curArg
  3.  
  4. function setVehStatus(plr)
  5.     if (getElementDimension(plr) ~= 336 or not hasObjectPermissionTo(plr, "command.em", false)) then
  6.         return false
  7.     end
  8.     if (not curArg) then
  9.         local vehs = getElementsByType("vehicle")
  10.         for i, veh in ipairs(vehs) do
  11.             if (getElementDimension(veh) == 336) then
  12.             local driver = getVehicleController(veh)
  13.                 if (driver) then
  14.                     plrVehTable[driver] = veh
  15.                 else
  16.                     destroyElement(veh)
  17.                 end
  18.             end
  19.         end
  20.         curArg = true
  21.         outputChatBox("Enable vehicle auto-remove feature and removed all unoccupied vehicles with successfully!", plr, 0, 255, 0)
  22.         outputChatBox("Warn: If you add new vehicle and it's unoccupied, it won't be auto-removed!", plr, 0, 255, 0)
  23.         removeEventHandler("onVehicleExplode", root, setEMVeh)
  24.         removeEventHandler("onVehicleExit", root, leaveVeh)
  25.         removeEventHandler("onElementDataChange", root, onPlrLeaveEMDim)
  26.         addEventHandler("onVehicleExplode", root, setEMVeh)
  27.         addEventHandler("onVehicleExit", root, leaveVeh)
  28.         addEventHandler("onElementDataChange", root, onPlrLeaveEMDim)
  29.         return true
  30.     end
  31.     plrVehTable = {}
  32.     outputChatBox("Disable vehicle auto-remove feature.", plr, 0, 255, 0)
  33.     curArg = nil
  34. end
  35. addCommandHandler("emuvehrem", setVehStatus)
  36.  
  37. function setEMVeh()
  38.     if (getElementDimension(source) ~= 336 or not curArg) then
  39.         return false
  40.     end
  41.     local driver = getVehicleController(source)
  42.     if (not plrVehTable[driver]) then
  43.         return false
  44.     end
  45.     plrVehTable[driver] = nil
  46.     destroyElement(source)
  47. end
  48.  
  49. function leaveVeh(plr)
  50.     if (getElementDimension(source) ~= 336 or not curArg) then
  51.         return false
  52.     end
  53.     if (not plrVehTable[plr]) then
  54.         return false
  55.     end
  56.     plrVehTable[plr] = nil
  57.     destroyElement(source)
  58. end
  59.  
  60. function onPlrLeaveEMDim(dName)
  61.     if (getElementType(source) ~= "player" or dName ~= "e" or not curArg) then
  62.         return false
  63.     end
  64.     local curKey = getElementData(source, "e", true)
  65.     if (curKey) then
  66.         return false
  67.     end
  68.     destroyElement(plrVehTable[source])
  69.     plrVehTable[source] = nil
  70. end
Advertisement
Add Comment
Please, Sign In to add comment