Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local plrVehTable, vehTable = {}, {}
- local curArg
- function setVehStatus(plr, cmd, arg1)
- if (not hasObjectPermissionTo(plr, "command.em", false) or getElementDimension(plr) ~= 336) then
- return false
- end
- if (arg1 and arg1 ~= "rem" and arg1 ~= "ghost") then
- outputChatBox("Syntax: /emuveh [ghost/rem]", plr, 255, 0, 0)
- return false
- end
- if (arg1 == "rem") then
- local vehs = getElementsByType("vehicle")
- for i, veh in ipairs(vehs) do
- if (getElementDimension(veh) == 336) then
- local driver = getVehicleController(veh)
- if (driver) then
- plrVehTable[driver] = veh
- else
- destroyElement(veh)
- end
- end
- end
- curArg = arg1
- outputChatBox("Enable vehicle auto-remove feature and removed all unoccupied vehicles with successfully!", plr, 0, 255, 0)
- outputChatBox("Warn: If you add new vehicle and it's unoccupied, it won't be auto-removed!", plr, 0, 255, 0)
- exports.CITLogs:logSomething(getPlayerName(plr).." has removed all unused vehicles", "events", plr)
- removeEventHandler("onVehicleExplode", root, setEMVeh)
- removeEventHandler("onVehicleExit", root, leaveVeh)
- removeEventHandler("onElementDataChange", root, onPlrLeaveEMDim)
- addEventHandler("onVehicleExplode", root, setEMVeh)
- addEventHandler("onVehicleExit", root, leaveVeh)
- addEventHandler("onElementDataChange", root, onPlrLeaveEMDim)
- return true
- end
- if (arg1 =="ghost") then
- local vehs = getElementsByType("vehicle")
- for i, veh in ipairs(vehs) do
- if (getElementDimension(veh) == 336) then
- local driver = getVehicleController(veh)
- if (driver) then
- plrVehTable[driver] = veh
- else
- table.insert(vehTable, veh)
- end
- end
- end
- curArg = arg1
- triggerClientEvent("CITem.statusCollisions", resourceRoot, true, plrVehTable)
- outputChatBox("Enable unoccupied vehicle as non-ghost!", plr, 0, 255, 0)
- exports.CITLogs:logSomething(getPlayerName(plr).." has enable the ghost mode for all players.", "events", plr)
- removeEventHandler("onVehicleExplode", root, setEMVeh)
- removeEventHandler("onDestroyElement", root, setEMVeh)
- removeEventHandler("onVehicleExit", root, leaveVeh)
- removeEventHandler("onElementDataChange", root, onPlrLeaveEMDim)
- addEventHandler("onVehicleExplode", root, setEMVeh)
- addEventHandler("onDestroyElement", root, setEMVeh)
- addEventHandler("onVehicleExit", root, leaveVeh)
- addEventHandler("onElementDataChange", root, onPlrLeaveEMDim)
- return true
- end
- if (not curArg) then
- outputChatBox("This feature is disabled!", plr, 255, 0, 0)
- return false
- end
- triggerClientEvent("CITem.statusCollisions", resourceRoot, false, plrVehTable)
- exports.CITLogs:logSomething(getPlayerName(plr).." has disable the last feature.", "events", plr)
- plrVehTable, vehTable = {}, {}
- outputChatBox("Disabled feature.", plr, 0, 255, 0)
- curArg = false
- end
- addCommandHandler("emuveh", setVehStatus)
- function setEMVeh()
- if (getElementDimension(source) ~= 336 or not curArg) then
- return false
- end
- local driver = getVehicleController(source)
- if (not plrVehTable[driver]) then
- return false
- end
- plrVehTable[driver] = nil
- if (curArg == "rem") then
- destroyElement(source)
- return true
- end
- table.insert(vehTable, source)
- triggerClientEvent("CITem.statusCollisions", resourceRoot, true, plrVehTable)
- end
- function leaveVeh(plr)
- if (getElementDimension(source) ~= 336 or not curArg or not plrVehTable[plr]) then
- return false
- end
- plrVehTable[plr] = nil
- if (curArg == "rem") then
- destroyElement(source)
- return true
- end
- table.insert(vehTable, source)
- triggerClientEvent("CITem.statusCollisions", resourceRoot, true, plrVehTable)
- end
- function onPlrLeaveEMDim(dName)
- if (getElementType(source) ~= "player" or dName ~= "e" or not curArg) then
- return false
- end
- local curKey = getElementData(source, "e", true)
- if (curKey) then
- return false
- end
- if (curArg == "rem" and plrVehTable[source]) then
- destroyElement(plrVehTable[source])
- plrVehTable[source] = nil
- return true
- end
- table.insert(vehTable, plrVehTable[source])
- plrVehTable[source] = nil
- triggerClientEvent("CITem.statusCollisions", resourceRoot, true, plrVehTable)
- end
Add Comment
Please, Sign In to add comment