From 834b5ebc278e100902de4d229ed07773fa38f82b Mon Sep 17 00:00:00 2001 From: ChronosX88 Date: Wed, 1 Apr 2020 19:59:57 +0400 Subject: [PATCH] Add SAMP-like vehicle blips --- c_vehicle_blips.lua | 43 ++++++++++++++++++++++++++++++++ meta.xml | 3 ++- ptp-map.map | 60 ++++++++++++++++++++++----------------------- 3 files changed, 75 insertions(+), 31 deletions(-) create mode 100644 c_vehicle_blips.lua diff --git a/c_vehicle_blips.lua b/c_vehicle_blips.lua new file mode 100644 index 0000000..5796bca --- /dev/null +++ b/c_vehicle_blips.lua @@ -0,0 +1,43 @@ +local vehicleBlipRoot = createElement("vehicleBlipRoot", "vehicleBlipRoot") + +--This function creates a blip for all currently streamed-in vehicles when the resource starts. +local function resourceStart() + for _, vehicle in ipairs(getElementsByType("vehicle"), root, true) do + if vehicle ~= getPedOccupiedVehicle(localPlayer) then + local blip = createBlipAttachedTo(vehicle, 0, 1, 150, 150, 150, 255, -10, 300) + setElementParent(blip, vehicleBlipRoot) + end + end +end +addEventHandler("onClientResourceStart", root, resourceStart) + +--This function destroys a vehicle's blip when it streams out. +local function streamOut() + for _, blip in ipairs(getElementChildren(vehicleBlipRoot)) do + if getElementAttachedTo(blip) == source then + destroyElement(blip) + end + end + removeEventHandler("onClientElementStreamOut", source, streamOut) + removeEventHandler("onClientElementDestroy", source, streamOut) +end + +--This function creates a blip when a vehicle streams in. +local function streamIn() + if getElementType(source) ~= "vehicle" then + return + end + + --Check if the vehicle already has a blip. + for _, blip in ipairs(getElementChildren(vehicleBlipRoot)) do + if getElementAttachedTo(blip) == source then + return + end + end + + local blip = createBlipAttachedTo(source, 0, 1, 150, 150, 150, 255, -10, 300) + setElementParent(blip, vehicleBlipRoot) + addEventHandler("onClientElementStreamOut", source, streamOut) + addEventHandler("onClientElementDestroy", source, streamOut) +end +addEventHandler("onClientElementStreamIn", root, streamIn) diff --git a/meta.xml b/meta.xml index 0478e2b..3cbeec8 100644 --- a/meta.xml +++ b/meta.xml @@ -6,6 +6,7 @@