238 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			238 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| QBCore = exports['qb-core']:GetCoreObject()
 | |
| local ShowBlips = false
 | |
| local ShowNames = false
 | |
| local NetCheck1 = false
 | |
| local NetCheck2 = false
 | |
| 
 | |
| CreateThread(function()
 | |
|     while true do
 | |
|         Wait(1000)
 | |
|         if NetCheck1 or NetCheck2 then
 | |
|             TriggerServerEvent('qb-admin:server:GetPlayersForBlips')
 | |
|         end
 | |
|     end
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('qb-admin:client:toggleBlips', function()
 | |
|     QBCore.Functions.TriggerCallback('qb-admin:isAdmin', function(isAdmin)
 | |
|         if not isAdmin then return end
 | |
|         if not ShowBlips then
 | |
|             ShowBlips = true
 | |
|             NetCheck1 = true
 | |
|             QBCore.Functions.Notify(Lang:t('success.blips_activated'), 'success')
 | |
|         else
 | |
|             ShowBlips = false
 | |
|             QBCore.Functions.Notify(Lang:t('error.blips_deactivated'), 'error')
 | |
|         end
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('qb-admin:client:toggleNames', function()
 | |
|     QBCore.Functions.TriggerCallback('qb-admin:isAdmin', function(isAdmin)
 | |
|         if not isAdmin then return end
 | |
|         if not ShowNames then
 | |
|             ShowNames = true
 | |
|             NetCheck2 = true
 | |
|             QBCore.Functions.Notify(Lang:t('success.names_activated'), 'success')
 | |
|         else
 | |
|             ShowNames = false
 | |
|             QBCore.Functions.Notify(Lang:t('error.names_deactivated'), 'error')
 | |
|         end
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('qb-admin:client:Show', function(players)
 | |
|     QBCore.Functions.TriggerCallback('qb-admin:isAdmin', function(isAdmin)
 | |
|         if not isAdmin then return end
 | |
|         for _, player in pairs(players) do
 | |
|             local playeridx = GetPlayerFromServerId(player.id)
 | |
|             local ped = GetPlayerPed(playeridx)
 | |
|             local blip = GetBlipFromEntity(ped)
 | |
|             local name = 'ID: ' .. player.id .. ' | ' .. player.name
 | |
| 
 | |
|             local Tag = CreateFakeMpGamerTag(ped, name, false, false, '', false)
 | |
|             SetMpGamerTagAlpha(Tag, 0, 255)       -- Sets "MP_TAG_GAMER_NAME" bar alpha to 100% (not needed just as a fail safe)
 | |
|             SetMpGamerTagAlpha(Tag, 2, 255)       -- Sets "MP_TAG_HEALTH_ARMOUR" bar alpha to 100%
 | |
|             SetMpGamerTagAlpha(Tag, 4, 255)       -- Sets "MP_TAG_AUDIO_ICON" bar alpha to 100%
 | |
|             SetMpGamerTagAlpha(Tag, 6, 255)       -- Sets "MP_TAG_PASSIVE_MODE" bar alpha to 100%
 | |
|             SetMpGamerTagHealthBarColour(Tag, 25) --https://wiki.rage.mp/index.php?title=Fonts_and_Colors
 | |
| 
 | |
|             if ShowNames then
 | |
|                 SetMpGamerTagVisibility(Tag, 0, true)     -- Activates the player ID Char name and FiveM name
 | |
|                 SetMpGamerTagVisibility(Tag, 2, true)     -- Activates the health (and armor if they have it on) bar below the player names
 | |
|                 if NetworkIsPlayerTalking(playeridx) then
 | |
|                     SetMpGamerTagVisibility(Tag, 4, true) -- If player is talking a voice icon will show up on the left side of the name
 | |
|                 else
 | |
|                     SetMpGamerTagVisibility(Tag, 4, false)
 | |
|                 end
 | |
|                 if GetPlayerInvincible(playeridx) then
 | |
|                     SetMpGamerTagVisibility(Tag, 6, true) -- If player is in godmode a circle with a line through it will show up
 | |
|                 else
 | |
|                     SetMpGamerTagVisibility(Tag, 6, false)
 | |
|                 end
 | |
|             else
 | |
|                 SetMpGamerTagVisibility(Tag, 0, false)
 | |
|                 SetMpGamerTagVisibility(Tag, 2, false)
 | |
|                 SetMpGamerTagVisibility(Tag, 4, false)
 | |
|                 SetMpGamerTagVisibility(Tag, 6, false)
 | |
|                 RemoveMpGamerTag(Tag) -- Unloads the tags till you activate it again
 | |
|                 NetCheck2 = false
 | |
|             end
 | |
| 
 | |
|             -- Blips Logic
 | |
|             if ShowBlips then
 | |
|                 if not DoesBlipExist(blip) then
 | |
|                     blip = AddBlipForEntity(ped)
 | |
|                     SetBlipSprite(blip, 1)
 | |
|                     ShowHeadingIndicatorOnBlip(blip, true)
 | |
|                 else
 | |
|                     local veh = GetVehiclePedIsIn(ped, false)
 | |
|                     local blipSprite = GetBlipSprite(blip)
 | |
|                     --Payer Death
 | |
|                     if not GetEntityHealth(ped) then
 | |
|                         if blipSprite ~= 274 then
 | |
|                             SetBlipSprite(blip, 274) --Dead icon
 | |
|                             ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                         end
 | |
|                         --Player in Vehicle
 | |
|                     elseif veh ~= 0 then
 | |
|                         local classveh = GetVehicleClass(veh)
 | |
|                         local modelveh = GetEntityModel(veh)
 | |
|                         --MotorCycles (8) or Cycles (13)
 | |
|                         if classveh == 8 or classveh == 13 then
 | |
|                             if blipSprite ~= 226 then
 | |
|                                 SetBlipSprite(blip, 226) --Motorcycle icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --OffRoad (9)
 | |
|                         elseif classveh == 9 then
 | |
|                             if blipSprite ~= 757 then
 | |
|                                 SetBlipSprite(blip, 757) --OffRoad icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Industrial (10)
 | |
|                         elseif classveh == 10 then
 | |
|                             if blipSprite ~= 477 then
 | |
|                                 SetBlipSprite(blip, 477) --Truck icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Utility (11)
 | |
|                         elseif classveh == 11 then
 | |
|                             if blipSprite ~= 477 then
 | |
|                                 SetBlipSprite(blip, 477) --Truck icon despite finding better one
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Vans (12)
 | |
|                         elseif classveh == 12 then
 | |
|                             if blipSprite ~= 67 then
 | |
|                                 SetBlipSprite(blip, 67) --Van icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Boats (14)
 | |
|                         elseif classveh == 14 then
 | |
|                             if blipSprite ~= 427 then
 | |
|                                 SetBlipSprite(blip, 427) --Boat icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Helicopters (15)
 | |
|                         elseif classveh == 15 then
 | |
|                             if blipSprite ~= 422 then
 | |
|                                 SetBlipSprite(blip, 422) --Moving helicopter icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Planes (16)
 | |
|                         elseif classveh == 16 then
 | |
|                             if modelveh == 'besra' or modelveh == 'hydra' or modelveh == 'lazer' then
 | |
|                                 if blipSprite ~= 424 then
 | |
|                                     SetBlipSprite(blip, 424) --Jet icon
 | |
|                                     ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                                 end
 | |
|                             elseif blipSprite ~= 423 then
 | |
|                                 SetBlipSprite(blip, 423) --Plane icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Service (17)
 | |
|                         elseif classveh == 17 then
 | |
|                             if blipSprite ~= 198 then
 | |
|                                 SetBlipSprite(blip, 198) --Taxi icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Emergency (18)
 | |
|                         elseif classveh == 18 then
 | |
|                             if blipSprite ~= 56 then
 | |
|                                 SetBlipSprite(blip, 56) --Cop icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Military (19)
 | |
|                         elseif classveh == 19 then
 | |
|                             if modelveh == 'rhino' then
 | |
|                                 if blipSprite ~= 421 then
 | |
|                                     SetBlipSprite(blip, 421) --Tank icon
 | |
|                                     ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                                 end
 | |
|                             elseif blipSprite ~= 750 then
 | |
|                                 SetBlipSprite(blip, 750) --Military truck icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Commercial (20)
 | |
|                         elseif classveh == 20 then
 | |
|                             if blipSprite ~= 477 then
 | |
|                                 SetBlipSprite(blip, 477) --Truck icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                             end
 | |
|                             --Every car (0, 1, 2, 3, 4, 5, 6, 7)
 | |
|                         else
 | |
|                             if modelveh == 'insurgent' or modelveh == 'insurgent2' or modelveh == 'limo2' then
 | |
|                                 if blipSprite ~= 426 then
 | |
|                                     SetBlipSprite(blip, 426) --Armed car icon
 | |
|                                     ShowHeadingIndicatorOnBlip(blip, false)
 | |
|                                 end
 | |
|                             elseif blipSprite ~= 225 then
 | |
|                                 SetBlipSprite(blip, 225) --Car icon
 | |
|                                 ShowHeadingIndicatorOnBlip(blip, true)
 | |
|                             end
 | |
|                         end
 | |
|                         -- Show number in case of passangers
 | |
|                         local passengers = GetVehicleNumberOfPassengers(veh)
 | |
|                         if passengers then
 | |
|                             if not IsVehicleSeatFree(veh, -1) then
 | |
|                                 passengers = passengers + 1
 | |
|                             end
 | |
|                             ShowNumberOnBlip(blip, passengers)
 | |
|                         else
 | |
|                             HideNumberOnBlip(blip)
 | |
|                         end
 | |
|                         --Player on Foot
 | |
|                     else
 | |
|                         HideNumberOnBlip(blip)
 | |
|                         if blipSprite ~= 1 then
 | |
|                             SetBlipSprite(blip, 1)
 | |
|                             ShowHeadingIndicatorOnBlip(blip, true)
 | |
|                         end
 | |
|                     end
 | |
| 
 | |
|                     SetBlipRotation(blip, math.ceil(GetEntityHeading(veh)))
 | |
|                     SetBlipNameToPlayerName(blip, playeridx)
 | |
|                     SetBlipScale(blip, 0.85)
 | |
| 
 | |
|                     if IsPauseMenuActive() then
 | |
|                         SetBlipAlpha(blip, 255)
 | |
|                     else
 | |
|                         local x1, y1 = table.unpack(GetEntityCoords(PlayerPedId(), true))
 | |
|                         local x2, y2 = table.unpack(GetEntityCoords(GetPlayerPed(playeridx), true))
 | |
|                         local distance = (math.floor(math.abs(math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))) / -1)) + 900
 | |
|                         if distance < 0 then
 | |
|                             distance = 0
 | |
|                         elseif distance > 255 then
 | |
|                             distance = 255
 | |
|                         end
 | |
|                         SetBlipAlpha(blip, distance)
 | |
|                     end
 | |
|                 end
 | |
|             else
 | |
|                 RemoveBlip(blip)
 | |
|                 NetCheck1 = false
 | |
|             end
 | |
|         end
 | |
|     end)
 | |
| end)
 | 
