ed
|
@ -1,24 +0,0 @@
|
||||||
function GetFrameworkObject()
|
|
||||||
local object = nil
|
|
||||||
if Config.Framework == "esx" then
|
|
||||||
while object == nil do
|
|
||||||
if Config.NewESX then
|
|
||||||
object = exports['es_extended']:getSharedObject()
|
|
||||||
else
|
|
||||||
TriggerEvent('esx:getSharedObject', function(obj) object = obj end)
|
|
||||||
end
|
|
||||||
|
|
||||||
Citizen.Wait(0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if Config.Framework == "newqb" then
|
|
||||||
object = exports["qb-core"]:GetCoreObject()
|
|
||||||
end
|
|
||||||
if Config.Framework == "oldqb" then
|
|
||||||
while object == nil do
|
|
||||||
TriggerEvent('QBCore:GetObject', function(obj) object = obj end)
|
|
||||||
Citizen.Wait(200)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return object
|
|
||||||
end
|
|
|
@ -1,273 +0,0 @@
|
||||||
local lastCash = nil
|
|
||||||
local lastBlackMoney = nil
|
|
||||||
local lastBank = nil
|
|
||||||
function loadESXMoneyAndJob()
|
|
||||||
local breakLoop = false
|
|
||||||
while true do
|
|
||||||
if frameworkObject ~= nil then
|
|
||||||
if frameworkObject.GetPlayerData() then
|
|
||||||
while frameworkObject.GetPlayerData().job == nil do
|
|
||||||
Citizen.Wait(0)
|
|
||||||
end
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_job",
|
|
||||||
joblabel = frameworkObject.GetPlayerData().job.label,
|
|
||||||
grade_label = frameworkObject.GetPlayerData().job.grade_label
|
|
||||||
})
|
|
||||||
frameworkObject.TriggerServerCallback("codem-blvckhudv2:GetMoney", function(cash)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_money",
|
|
||||||
money = cash
|
|
||||||
})
|
|
||||||
lastCash = cash
|
|
||||||
end, "cash")
|
|
||||||
|
|
||||||
frameworkObject.TriggerServerCallback("codem-blvckhudv2:GetMoney", function(blackmoney)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "SetBlackMoney",
|
|
||||||
money = blackmoney
|
|
||||||
})
|
|
||||||
lastBlackMoney = blackmoney
|
|
||||||
end, "black_money")
|
|
||||||
|
|
||||||
local gradeName = 'boss'
|
|
||||||
if Config.BossGradeNames[frameworkObject.GetPlayerData().job.name] then
|
|
||||||
gradeName = Config.BossGradeNames[frameworkObject.GetPlayerData().job.name]
|
|
||||||
end
|
|
||||||
|
|
||||||
if frameworkObject.GetPlayerData().job.grade_name == gradeName then
|
|
||||||
frameworkObject.TriggerServerCallback('esx_society:getSocietyMoney', function(money)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "SetBossMoney",
|
|
||||||
money = money
|
|
||||||
})
|
|
||||||
|
|
||||||
SendNUIMessage({type = 'SetIsBoss', value = true})
|
|
||||||
end, frameworkObject.GetPlayerData().job.name)
|
|
||||||
else
|
|
||||||
SendNUIMessage({type = 'SetIsBoss', value = false})
|
|
||||||
end
|
|
||||||
|
|
||||||
frameworkObject.TriggerServerCallback("codem-blvckhudv2:GetMoney", function(bank)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_bank",
|
|
||||||
money = bank
|
|
||||||
})
|
|
||||||
lastBank = bank
|
|
||||||
breakLoop = true
|
|
||||||
end, "bank")
|
|
||||||
if breakLoop then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Citizen.Wait(0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
while not response do
|
|
||||||
Citizen.Wait(0)
|
|
||||||
end
|
|
||||||
if Config.Framework == "esx" then
|
|
||||||
Citizen.Wait(1000)
|
|
||||||
loadESXMoneyAndJob()
|
|
||||||
else
|
|
||||||
Citizen.Wait(1000)
|
|
||||||
local breakLoop = false
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(0)
|
|
||||||
if frameworkObject ~= nil then
|
|
||||||
local Player = frameworkObject.Functions.GetPlayerData()
|
|
||||||
if Player then
|
|
||||||
if Player.job ~= nil then
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_job",
|
|
||||||
joblabel = Player.job.label,
|
|
||||||
grade_label = Player.job.grade.name
|
|
||||||
})
|
|
||||||
end
|
|
||||||
if Player.money ~= nil then
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_money",
|
|
||||||
money = Player.money.cash
|
|
||||||
})
|
|
||||||
lastCash = Player.money.cash
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_bank",
|
|
||||||
money = Player.money.bank
|
|
||||||
})
|
|
||||||
lastBank = Player.money.bank
|
|
||||||
|
|
||||||
breakLoop = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if breakLoop then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent("es:addedMoney")
|
|
||||||
AddEventHandler("es:addedMoney", function(a, b, m)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_money",
|
|
||||||
money = m
|
|
||||||
})
|
|
||||||
if Config.EnableWatermarkCash then
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', m - lastCash, false, "cash")
|
|
||||||
lastCash = m
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent("es:removedMoney")
|
|
||||||
AddEventHandler("es:removedMoney", function(a, b, m)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_money",
|
|
||||||
money = m
|
|
||||||
})
|
|
||||||
if Config.EnableWatermarkCash then
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', (m - lastCash) * -1, true, "cash")
|
|
||||||
lastCash = m
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent("esx:setJob")
|
|
||||||
AddEventHandler("esx:setJob", function(job)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_job",
|
|
||||||
joblabel =job.label,
|
|
||||||
grade_label = job.grade_label
|
|
||||||
})
|
|
||||||
local gradeName = 'boss'
|
|
||||||
if Config.BossGradeNames[job.name] then
|
|
||||||
gradeName = Config.BossGradeNames[job.name]
|
|
||||||
end
|
|
||||||
if job.grade_name == gradeName then
|
|
||||||
frameworkObject.TriggerServerCallback('esx_society:getSocietyMoney', function(money)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "SetBossMoney",
|
|
||||||
money = money
|
|
||||||
})
|
|
||||||
SendNUIMessage({type = 'SetIsBoss', value = true})
|
|
||||||
end, job.name)
|
|
||||||
else
|
|
||||||
SendNUIMessage({type = 'SetIsBoss', value = false})
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('esx_addonaccount:setMoney')
|
|
||||||
AddEventHandler('esx_addonaccount:setMoney', function(society, money)
|
|
||||||
local gradeName = 'boss'
|
|
||||||
if Config.BossGradeNames[frameworkObject.GetPlayerData().job.name] then
|
|
||||||
gradeName = Config.BossGradeNames[frameworkObject.GetPlayerData().job.name]
|
|
||||||
end
|
|
||||||
if frameworkObject.GetPlayerData().job and frameworkObject.GetPlayerData().job.grade_name == gradeName and 'society_' .. frameworkObject.GetPlayerData().job.name == society then
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "SetBossMoney",
|
|
||||||
money = money
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent("QBCore:Player:SetPlayerData")
|
|
||||||
AddEventHandler("QBCore:Player:SetPlayerData", function(data)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_money",
|
|
||||||
money = data.money.cash
|
|
||||||
|
|
||||||
})
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_bank",
|
|
||||||
money = data.money.bank
|
|
||||||
})
|
|
||||||
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_job",
|
|
||||||
joblabel = data.job.label,
|
|
||||||
grade_label = data.job.grade.name
|
|
||||||
})
|
|
||||||
if Config.EnableWatermarkCash then
|
|
||||||
if lastCash ~= nil and lastCash ~= data.money.cash then
|
|
||||||
if data.money.cash > lastCash then
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', data.money.cash - lastCash, false , "cash")
|
|
||||||
else
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', (data.money.cash - lastCash) * -1, true , "cash")
|
|
||||||
end
|
|
||||||
lastCash = data.money.cash
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
if Config.EnableWatermarkBankMoney then
|
|
||||||
if lastBank ~= nil and lastBank ~= data.money.bank then
|
|
||||||
if data.money.bank > lastBank then
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', data.money.bank - lastBank, false, "bank")
|
|
||||||
else
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', (data.money.bank - lastBank)* -1, true, "bank")
|
|
||||||
end
|
|
||||||
lastBank = data.money.bank
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('esx:setAccountMoney')
|
|
||||||
AddEventHandler('esx:setAccountMoney', function(account)
|
|
||||||
if account.name == "bank" then
|
|
||||||
local money = account.money
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_bank",
|
|
||||||
money = money
|
|
||||||
})
|
|
||||||
if Config.EnableWatermarkBankMoney then
|
|
||||||
if lastBank ~= nil and lastBank ~= money then
|
|
||||||
if money > lastBank then
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney',money - lastBank, false, "bank")
|
|
||||||
else
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', (money - lastBank) * -1, true, "bank")
|
|
||||||
end
|
|
||||||
lastBank = money
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if account.name == 'black_money' then
|
|
||||||
local money = account.money
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "SetBlackMoney",
|
|
||||||
money = money
|
|
||||||
})
|
|
||||||
if Config.EnableWatermarkBlackMoney then
|
|
||||||
if lastBlackMoney ~= nil and lastBlackMoney ~= money then
|
|
||||||
if money > lastBlackMoney then
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', money - lastBlackMoney, false, "black_money")
|
|
||||||
else
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', (money - lastBlackMoney ) * -1, true, "black_money")
|
|
||||||
end
|
|
||||||
lastBlackMoney = money
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if account.name == 'money' then
|
|
||||||
local money = account.money
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "update_money",
|
|
||||||
money = money
|
|
||||||
})
|
|
||||||
|
|
||||||
if Config.EnableWatermarkCash then
|
|
||||||
if lastCash ~= nil and lastCash ~= money then
|
|
||||||
if money > lastCash then
|
|
||||||
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney',money - lastCash, false, "cash")
|
|
||||||
else
|
|
||||||
TriggerEvent('codem-blvckhudv2:OnAddedMoney', (money - lastCash ) * -1, true, "cash")
|
|
||||||
end
|
|
||||||
lastCash = money
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
|
@ -1,269 +0,0 @@
|
||||||
nitro = {}
|
|
||||||
local vehicles = {}
|
|
||||||
local particles = {}
|
|
||||||
local vehicles2 = {}
|
|
||||||
local particles2 = {}
|
|
||||||
if Config.EnableNitro then
|
|
||||||
|
|
||||||
function CreateVehicleExhaustBackfire(vehicle, scale)
|
|
||||||
local exhaustNames = {
|
|
||||||
"exhaust", "exhaust_2", "exhaust_3", "exhaust_4",
|
|
||||||
"exhaust_5", "exhaust_6", "exhaust_7", "exhaust_8",
|
|
||||||
"exhaust_9", "exhaust_10", "exhaust_11", "exhaust_12",
|
|
||||||
"exhaust_13", "exhaust_14", "exhaust_15", "exhaust_16"
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, exhaustName in ipairs(exhaustNames) do
|
|
||||||
local boneIndex = GetEntityBoneIndexByName(vehicle, exhaustName)
|
|
||||||
|
|
||||||
if boneIndex ~= -1 then
|
|
||||||
local pos = GetWorldPositionOfEntityBone(vehicle, boneIndex)
|
|
||||||
local off = GetOffsetFromEntityGivenWorldCoords(vehicle, pos.x, pos.y, pos.z)
|
|
||||||
|
|
||||||
UseParticleFxAssetNextCall('core')
|
|
||||||
StartParticleFxNonLoopedOnEntity('veh_backfire', vehicle, off.x, off.y, off.z, 0.0, 0.0, 0.0, scale, false, false, false)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function CreateVehiclePurgeSpray(vehicle, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale)
|
|
||||||
UseParticleFxAssetNextCall('core')
|
|
||||||
return StartParticleFxLoopedOnEntity('ent_sht_steam', vehicle, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, false, false, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
function CreateVehicleLightTrail(vehicle, bone, scale)
|
|
||||||
UseParticleFxAssetNextCall('core')
|
|
||||||
local ptfx = StartParticleFxLoopedOnEntityBone('veh_light_red_trail', vehicle, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, bone, scale, false, false, false)
|
|
||||||
SetParticleFxLoopedEvolution(ptfx, "speed", 1.0, false)
|
|
||||||
return ptfx
|
|
||||||
end
|
|
||||||
|
|
||||||
function StopVehicleLightTrail(ptfx, duration)
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
local startTime = GetGameTimer()
|
|
||||||
local endTime = GetGameTimer() + duration
|
|
||||||
while GetGameTimer() < endTime do
|
|
||||||
Citizen.Wait(0)
|
|
||||||
local now = GetGameTimer()
|
|
||||||
local scale = (endTime - now) / duration
|
|
||||||
SetParticleFxLoopedScale(ptfx, scale)
|
|
||||||
SetParticleFxLoopedAlpha(ptfx, scale)
|
|
||||||
end
|
|
||||||
StopParticleFxLooped(ptfx)
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
function IsVehicleLightTrailEnabled(vehicle)
|
|
||||||
return vehicles2[vehicle] == true
|
|
||||||
end
|
|
||||||
|
|
||||||
function SetVehicleLightTrailEnabled(vehicle, enabled)
|
|
||||||
if IsVehicleLightTrailEnabled(vehicle) == enabled then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if enabled then
|
|
||||||
local ptfxs = {}
|
|
||||||
|
|
||||||
local leftTrail = CreateVehicleLightTrail(vehicle, GetEntityBoneIndexByName(vehicle, "taillight_l"), 1.0)
|
|
||||||
local rightTrail = CreateVehicleLightTrail(vehicle, GetEntityBoneIndexByName(vehicle, "taillight_r"), 1.0)
|
|
||||||
|
|
||||||
table.insert(ptfxs, leftTrail)
|
|
||||||
table.insert(ptfxs, rightTrail)
|
|
||||||
|
|
||||||
vehicles2[vehicle] = true
|
|
||||||
particles2[vehicle] = ptfxs
|
|
||||||
else
|
|
||||||
if particles2[vehicle] and #particles2[vehicle] > 0 then
|
|
||||||
for _, particleId in ipairs(particles2[vehicle]) do
|
|
||||||
StopVehicleLightTrail(particleId, 500)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vehicles2[vehicle] = nil
|
|
||||||
particles2[vehicle] = nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
function SetVehicleNitroBoostEnabled(vehicle, enabled)
|
|
||||||
|
|
||||||
|
|
||||||
if IsPedInVehicle(PlayerPedId(), vehicle) then
|
|
||||||
SetNitroBoostScreenEffectsEnabled(enabled)
|
|
||||||
end
|
|
||||||
|
|
||||||
SetVehicleBoostActive(vehicle, enabled)
|
|
||||||
end
|
|
||||||
function IsVehicleNitroPurgeEnabled(vehicle)
|
|
||||||
return vehicles[vehicle] == true
|
|
||||||
end
|
|
||||||
function SetVehicleNitroPurgeEnabled(vehicle, enabled)
|
|
||||||
if IsVehicleNitroPurgeEnabled(vehicle) == enabled then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if enabled then
|
|
||||||
local bone = GetEntityBoneIndexByName(vehicle, 'bonnet')
|
|
||||||
local pos = GetWorldPositionOfEntityBone(vehicle, bone)
|
|
||||||
local off = GetOffsetFromEntityGivenWorldCoords(vehicle, pos.x, pos.y, pos.z)
|
|
||||||
local ptfxs = {}
|
|
||||||
|
|
||||||
for i=0,3 do
|
|
||||||
local leftPurge = CreateVehiclePurgeSpray(vehicle, off.x - 0.5, off.y + 0.05, off.z, 40.0, -20.0, 0.0, 0.5)
|
|
||||||
local rightPurge = CreateVehiclePurgeSpray(vehicle, off.x + 0.5, off.y + 0.05, off.z, 40.0, 20.0, 0.0, 0.5)
|
|
||||||
|
|
||||||
table.insert(ptfxs, leftPurge)
|
|
||||||
table.insert(ptfxs, rightPurge)
|
|
||||||
end
|
|
||||||
|
|
||||||
vehicles[vehicle] = true
|
|
||||||
particles[vehicle] = ptfxs
|
|
||||||
else
|
|
||||||
if particles[vehicle] and #particles[vehicle] > 0 then
|
|
||||||
for _, particleId in ipairs(particles[vehicle]) do
|
|
||||||
StopParticleFxLooped(particleId)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vehicles[vehicle] = nil
|
|
||||||
particles[vehicle] = nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function SetNitroBoostScreenEffectsEnabled(enabled)
|
|
||||||
if enabled then
|
|
||||||
StartScreenEffect('RaceTurbo', 0, false)
|
|
||||||
SetTimecycleModifier('rply_motionblur')
|
|
||||||
ShakeGameplayCam('SKY_DIVING_SHAKE', 0.30)
|
|
||||||
TriggerServerEvent("InteractSound_SV:PlayOnSource", "nitro", 0.5)
|
|
||||||
else
|
|
||||||
StopScreenEffect('RaceTurbo')
|
|
||||||
StopGameplayCamShaking(true)
|
|
||||||
SetTransitionTimecycleModifier('default', 0.35)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
function GetVehicleInDirection()
|
|
||||||
|
|
||||||
local playerCoords = GetEntityCoords(playerPed)
|
|
||||||
local inDirection = GetOffsetFromEntityInWorldCoords(playerPed, 0.0, 5.0, 0.0)
|
|
||||||
local rayHandle = StartShapeTestRay(playerCoords, inDirection, 10, playerPed, 0)
|
|
||||||
local numRayHandle, hit, endCoords, surfaceNormal, entityHit = GetShapeTestResult(rayHandle)
|
|
||||||
|
|
||||||
if hit == 1 and GetEntityType(entityHit) == 2 then
|
|
||||||
return entityHit
|
|
||||||
end
|
|
||||||
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
RegisterNetEvent('codem-blvckhudv2:SetupNitro')
|
|
||||||
AddEventHandler('codem-blvckhudv2:SetupNitro', function()
|
|
||||||
local vehicle = GetVehicleInDirection()
|
|
||||||
if IsPedSittingInAnyVehicle(playerPed) then
|
|
||||||
Config.Notification(Config.Notifications["cant_install_nitro"]["message"], Config.Notifications["cant_install_nitro"]["type"])
|
|
||||||
else
|
|
||||||
if vehicle ~= nil and DoesEntityExist(vehicle) and IsPedOnFoot(playerPed) then
|
|
||||||
TaskStartScenarioInPlace(playerPed, 'PROP_HUMAN_BUM_BIN', 0, true)
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
Citizen.Wait(5000)
|
|
||||||
ClearPedTasksImmediately(playerPed)
|
|
||||||
TriggerServerEvent('codem-blvckhudv2:RemoveItem',Config.NitroItem, 1)
|
|
||||||
TriggerServerEvent('codem-blvckhudv2:InstallNitro', GetVehicleNumberPlateText(vehicle))
|
|
||||||
end)
|
|
||||||
else
|
|
||||||
Config.Notification(Config.Notifications["no_veh_nearby"]["message"], Config.Notifications["no_veh_nearby"]["type"])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
RegisterNetEvent('codem-blvckhudv2:UpdateNitroData')
|
|
||||||
AddEventHandler('codem-blvckhudv2:UpdateNitroData', function(nitroData)
|
|
||||||
while not response do
|
|
||||||
Citizen.Wait(0)
|
|
||||||
end
|
|
||||||
nitro = nitroData
|
|
||||||
|
|
||||||
local playerVeh = GetVehiclePedIsIn(playerPed, false)
|
|
||||||
if playerVeh ~= 0 and nitro[GetVehicleNumberPlateText(playerVeh)] ~= nil then
|
|
||||||
SendNUIMessage({ type="set_status", statustype = "nitro", value = nitro[GetVehicleNumberPlateText(playerVeh)]})
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
local isPressing = false
|
|
||||||
RegisterCommand('+nitro', function()
|
|
||||||
local playerVeh = GetVehiclePedIsIn(playerPed, false)
|
|
||||||
isPressing = true
|
|
||||||
if playerVeh ~= 0 and nitro[GetVehicleNumberPlateText(playerVeh)] ~= nil then
|
|
||||||
if tonumber(nitro[GetVehicleNumberPlateText(playerVeh)]) > 0 then
|
|
||||||
if GetPedInVehicleSeat(playerVeh, -1) == playerPed then
|
|
||||||
while isPressing do
|
|
||||||
playerVeh = GetVehiclePedIsIn(playerPed, false)
|
|
||||||
if tonumber(nitro[GetVehicleNumberPlateText(playerVeh)]) <= 0 then
|
|
||||||
if tonumber(nitro[GetVehicleNumberPlateText(playerVeh)]) < 0 then
|
|
||||||
nitro[GetVehicleNumberPlateText(playerVeh)] = 0
|
|
||||||
end
|
|
||||||
isPressing = false
|
|
||||||
SetVehicleNitroBoostEnabled(playerVeh, false)
|
|
||||||
SetVehicleLightTrailEnabled(playerVeh, false)
|
|
||||||
SetVehicleNitroPurgeEnabled(playerVeh, false)
|
|
||||||
SetVehicleEnginePowerMultiplier(playerVeh,1.0)
|
|
||||||
|
|
||||||
TriggerServerEvent('codem-blvckhudv2:UpdateNitro', GetVehicleNumberPlateText(playerVeh), nitro[GetVehicleNumberPlateText(playerVeh)])
|
|
||||||
break
|
|
||||||
|
|
||||||
end
|
|
||||||
if playerVeh == 0 then
|
|
||||||
isPressing = false
|
|
||||||
SetVehicleEnginePowerMultiplier(playerVeh,1.0)
|
|
||||||
|
|
||||||
SetVehicleNitroBoostEnabled(playerVeh, false)
|
|
||||||
SetVehicleLightTrailEnabled(playerVeh, false)
|
|
||||||
SetVehicleNitroPurgeEnabled(playerVeh, false)
|
|
||||||
TriggerServerEvent('codem-blvckhudv2:UpdateNitro', GetVehicleNumberPlateText(playerVeh), nitro[GetVehicleNumberPlateText(playerVeh)])
|
|
||||||
break
|
|
||||||
end
|
|
||||||
if GetPedInVehicleSeat(playerVeh, -1) == playerPed then
|
|
||||||
local force = Config.NitroForce
|
|
||||||
nitro[GetVehicleNumberPlateText(playerVeh)] = nitro[GetVehicleNumberPlateText(playerVeh)] - Config.RemoveNitroOnpress
|
|
||||||
SendNUIMessage({ type="set_status", statustype = "nitro", value = nitro[GetVehicleNumberPlateText(playerVeh)]})
|
|
||||||
|
|
||||||
SetVehicleNitroBoostEnabled(playerVeh, true)
|
|
||||||
SetVehicleLightTrailEnabled(playerVeh, true)
|
|
||||||
SetVehicleNitroPurgeEnabled(playerVeh, true)
|
|
||||||
CreateVehicleExhaustBackfire(playerVeh, 1.25)
|
|
||||||
SetVehicleEnginePowerMultiplier(playerVeh,55.0)
|
|
||||||
else
|
|
||||||
SetVehicleNitroBoostEnabled(playerVeh, false)
|
|
||||||
SetVehicleLightTrailEnabled(playerVeh, false)
|
|
||||||
SetVehicleNitroPurgeEnabled(playerVeh, false)
|
|
||||||
SetVehicleEnginePowerMultiplier(playerVeh,1.0)
|
|
||||||
|
|
||||||
isPressing = false
|
|
||||||
TriggerServerEvent('codem-blvckhudv2:UpdateNitro', GetVehicleNumberPlateText(playerVeh), nitro[GetVehicleNumberPlateText(playerVeh)])
|
|
||||||
|
|
||||||
break
|
|
||||||
end
|
|
||||||
Citizen.Wait(400)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
RegisterCommand('-nitro', function()
|
|
||||||
local playerVeh = GetVehiclePedIsIn(playerPed, false)
|
|
||||||
if playerVeh ~= 0 and nitro[GetVehicleNumberPlateText(playerVeh)] ~= nil then
|
|
||||||
if GetPedInVehicleSeat(playerVeh, -1) == playerPed then
|
|
||||||
isPressing = false
|
|
||||||
SetVehicleNitroBoostEnabled(playerVeh, false)
|
|
||||||
SetVehicleLightTrailEnabled(playerVeh, false)
|
|
||||||
SetVehicleNitroPurgeEnabled(playerVeh, false)
|
|
||||||
SetVehicleEnginePowerMultiplier(playerVeh,1.0)
|
|
||||||
|
|
||||||
SendNUIMessage({ type="set_status", statustype = "nitro", value = nitro[GetVehicleNumberPlateText(playerVeh)]})
|
|
||||||
TriggerServerEvent('codem-blvckhudv2:UpdateNitro', GetVehicleNumberPlateText(playerVeh), nitro[GetVehicleNumberPlateText(playerVeh)])
|
|
||||||
end
|
|
||||||
else
|
|
||||||
SendNUIMessage({ type="set_status", statustype = "nitro", value = 0})
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterKeyMapping('+nitro', 'Toggle Nitro', 'keyboard', Config.NitroKey)
|
|
||||||
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,254 +0,0 @@
|
||||||
seatbeltOn = false
|
|
||||||
if Config.EnableSeatbelt then
|
|
||||||
lastSpeed = 0
|
|
||||||
function CheckVehicleHasSeatbelt(vehicle)
|
|
||||||
if DoesEntityExist(vehicle) then
|
|
||||||
local model = GetEntityModel(vehicle)
|
|
||||||
local modelName = GetDisplayNameFromVehicleModel(model):lower()
|
|
||||||
|
|
||||||
-- Liste der Polizeimotorräder, die ausgeschlossen werden sollen
|
|
||||||
local policeBikes = {
|
|
||||||
"policeb",
|
|
||||||
"policeb2",
|
|
||||||
"sheriff2",
|
|
||||||
"mbu3rb",
|
|
||||||
"mbu2rb",
|
|
||||||
"mbu1flagrb",
|
|
||||||
"bomberbike"
|
|
||||||
-- Fügen Sie hier weitere Polizeimotorrad-Spawnnames hinzu, falls nötig
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Prüfe, ob das Fahrzeug ein Polizeimotorrad ist
|
|
||||||
for _, bikeName in ipairs(policeBikes) do
|
|
||||||
if modelName == bikeName then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local class = GetVehicleClass(vehicle)
|
|
||||||
-- Exclude motorcycles (8)
|
|
||||||
if class == 8 then return false end
|
|
||||||
-- Cars (0-7), Industrial vehicles (9), SUVs (2), Service vehicles (17),
|
|
||||||
-- Military vehicles (19), Commercial vehicles (20)
|
|
||||||
return class >= 0 and class <= 7 or class == 9 or class == 17 or class == 18 or class == 19 or class == 20
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if Config.SeatbeltSound then
|
|
||||||
CreateThread(function()
|
|
||||||
while true do
|
|
||||||
local ped = playerPed
|
|
||||||
local car = GetVehiclePedIsIn(ped)
|
|
||||||
if DoesEntityExist(car) and CheckVehicleHasSeatbelt(car) then
|
|
||||||
if not seatbeltOn then
|
|
||||||
local speed = GetEntitySpeed(car) * 3.6
|
|
||||||
if speed > 100.0 then -- Alarm nur über 100 km/h
|
|
||||||
SendNUIMessage({
|
|
||||||
type="PLAY_SEATBELT_SOUND",
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Wait(2800)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
local seatbeltSpam = 0
|
|
||||||
function playSound(action)
|
|
||||||
local ped = playerPed
|
|
||||||
local car = GetVehiclePedIsIn(ped)
|
|
||||||
local seatPlayerId = {}
|
|
||||||
if IsCar(car) then
|
|
||||||
for i=1, GetVehicleModelNumberOfSeats(GetEntityModel(car)) do
|
|
||||||
if not IsVehicleSeatFree(car, i-2) then
|
|
||||||
local otherPlayerId = GetPedInVehicleSeat(car, i-2)
|
|
||||||
local playerHandle = NetworkGetPlayerIndexFromPed(otherPlayerId)
|
|
||||||
local playerServerId = GetPlayerServerId(playerHandle)
|
|
||||||
table.insert(seatPlayerId, playerServerId)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if #seatPlayerId > 0 then TriggerServerEvent("seatbelt:server:PlaySound", action, seatPlayerId) end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
RegisterNetEvent('seatbelt:client:PlaySound')
|
|
||||||
AddEventHandler('seatbelt:client:PlaySound', function(action, volume)
|
|
||||||
SendNUIMessage({type = action, volume = volume})
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterKeyMapping('seatbelt', 'Toggle Seatbelt', 'keyboard', Config.DefaultSeatbeltControlKey)
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(1500)
|
|
||||||
if seatbeltSpam > 0 then
|
|
||||||
Citizen.Wait(3500)
|
|
||||||
seatbeltSpam = 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('codem-blackhudv2:seatbelt:toggle')
|
|
||||||
AddEventHandler('codem-blackhudv2:seatbelt:toggle', function(toggle)
|
|
||||||
local car = GetVehiclePedIsIn(playerPed)
|
|
||||||
if car ~= 0 and IsCar(car) then
|
|
||||||
if seatbeltSpam >= 3 then
|
|
||||||
if Config.EnableSpamNotification then
|
|
||||||
Config.Notification(Config.Notifications["spam"]["message"], Config.Notifications["spam"]["type"])
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
seatbeltOn = toggle
|
|
||||||
if seatbeltOn then
|
|
||||||
SendNUIMessage({
|
|
||||||
type="update_seatbelt",
|
|
||||||
toggle = true
|
|
||||||
})
|
|
||||||
playSound("buckle")
|
|
||||||
Config.Notification(Config.Notifications["took_seatbelt"]["message"], Config.Notifications["took_seatbelt"]["type"])
|
|
||||||
else
|
|
||||||
SendNUIMessage({
|
|
||||||
type="update_seatbelt",
|
|
||||||
toggle = false
|
|
||||||
})
|
|
||||||
playSound("unbuckle")
|
|
||||||
Config.Notification(Config.Notifications["took_off_seatbelt"]["message"], Config.Notifications["took_off_seatbelt"]["type"])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterCommand('seatbelt', function()
|
|
||||||
if IsPedHangingOnToVehicle(playerPed) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local car = GetVehiclePedIsIn(playerPed)
|
|
||||||
if car ~= 0 and IsCar(car) then
|
|
||||||
if seatbeltSpam >= 3 then
|
|
||||||
if Config.EnableSpamNotification then
|
|
||||||
Config.Notification(Config.Notifications["spam"]["message"], Config.Notifications["spam"]["type"])
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
seatbeltOn = not seatbeltOn
|
|
||||||
if seatbeltOn then
|
|
||||||
SendNUIMessage({
|
|
||||||
type="update_seatbelt",
|
|
||||||
toggle = true
|
|
||||||
})
|
|
||||||
playSound("buckle")
|
|
||||||
Config.Notification(Config.Notifications["took_seatbelt"]["message"], Config.Notifications["took_seatbelt"]["type"])
|
|
||||||
else
|
|
||||||
SendNUIMessage({
|
|
||||||
type="update_seatbelt",
|
|
||||||
toggle = false
|
|
||||||
})
|
|
||||||
playSound("unbuckle")
|
|
||||||
Config.Notification(Config.Notifications["took_off_seatbelt"]["message"], Config.Notifications["took_off_seatbelt"]["type"])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end, false)
|
|
||||||
|
|
||||||
function Fwv(entity)
|
|
||||||
local hr = GetEntityHeading(entity) + 90.0
|
|
||||||
if hr < 0.0 then hr = 360.0 + hr end
|
|
||||||
hr = hr * 0.0174533
|
|
||||||
return { x = math.cos(hr) * 2.0, y = math.sin(hr) * 2.0 }
|
|
||||||
end
|
|
||||||
|
|
||||||
function IsCar(veh)
|
|
||||||
if DoesEntityExist(veh) then
|
|
||||||
local model = GetEntityModel(veh)
|
|
||||||
local modelName = GetDisplayNameFromVehicleModel(model):lower()
|
|
||||||
|
|
||||||
-- Liste der Polizeimotorräder
|
|
||||||
local policeBikes = {
|
|
||||||
"policeb",
|
|
||||||
"policeb2",
|
|
||||||
"sheriff2",
|
|
||||||
"mbu3rb",
|
|
||||||
"mbu2rb",
|
|
||||||
"mbu1flagrb",
|
|
||||||
"bomberbike"
|
|
||||||
-- Fügen Sie hier weitere Polizeimotorrad-Spawnnames hinzu, falls nötig
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Prüfe, ob das Fahrzeug ein Polizeimotorrad ist
|
|
||||||
for _, bikeName in ipairs(policeBikes) do
|
|
||||||
if modelName == bikeName then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local vc = GetVehicleClass(veh)
|
|
||||||
if vc == 8 then return false end
|
|
||||||
return (vc >= 0 and vc <= 7) or vc == 9 or vc == 17 or vc == 18 or vc == 19 or vc == 20
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
RegisterNetEvent('codem-blackhud-v2:client:EjectPlayer')
|
|
||||||
AddEventHandler('codem-blackhud-v2:client:EjectPlayer', function(velocity)
|
|
||||||
print("Ejecting player")
|
|
||||||
if not seatbeltOn then
|
|
||||||
local ped = PlayerPedId()
|
|
||||||
local coords = GetEntityCoords(ped)
|
|
||||||
local fw = Fwv(ped)
|
|
||||||
lastSpeed = 0
|
|
||||||
SetEntityCoords(ped, coords.x + fw.x, coords.y + fw.y, coords.z - .47, true, true, true)
|
|
||||||
SetEntityVelocity(ped, lastVelocity.x, lastVelocity.y, lastVelocity.z)
|
|
||||||
Wait(500)
|
|
||||||
ApplyDamageToPed(ped, math.random(10, 30), false)
|
|
||||||
SetPedToRagdoll(ped, 1000, 1000, 0, 0, 0, 0)
|
|
||||||
seatbeltOn = false
|
|
||||||
SendNUIMessage({
|
|
||||||
type="update_seatbelt",
|
|
||||||
toggle = false
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
CreateThread(function()
|
|
||||||
while true do
|
|
||||||
local ped = PlayerPedId()
|
|
||||||
local Vehicle = GetVehiclePedIsIn(ped)
|
|
||||||
if IsPedInAnyVehicle(ped) and CheckVehicleHasSeatbelt(Vehicle) then
|
|
||||||
local vehicle = Vehicle
|
|
||||||
local speed = GetEntitySpeed(vehicle) * 3.6
|
|
||||||
if lastSpeed > (Config.SeatBeltFlySpeed) and (lastSpeed - speed) > (speed * 1.7) then
|
|
||||||
if not seatbeltOn then
|
|
||||||
print("Ejecting player", lastSpeed, speed)
|
|
||||||
local seatPlayerId = {}
|
|
||||||
for i=1, GetVehicleModelNumberOfSeats(GetEntityModel(vehicle)) do
|
|
||||||
if not IsVehicleSeatFree(vehicle, i-2) then
|
|
||||||
local otherPlayerId = GetPedInVehicleSeat(vehicle, i-2)
|
|
||||||
local playerHandle = NetworkGetPlayerIndexFromPed(otherPlayerId)
|
|
||||||
local playerServerId = GetPlayerServerId(playerHandle)
|
|
||||||
table.insert(seatPlayerId, playerServerId)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
seatbeltOn = false
|
|
||||||
SendNUIMessage({
|
|
||||||
type="update_seatbelt",
|
|
||||||
toggle = false
|
|
||||||
})
|
|
||||||
if #seatPlayerId > 0 then TriggerServerEvent("codem-blackhud-v2:server:EjectPlayer", seatPlayerId) end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
lastSpeed = speed
|
|
||||||
lastVelocity = GetEntityVelocity(vehicle)
|
|
||||||
else
|
|
||||||
if seatbeltOn then
|
|
||||||
seatbeltOn = false
|
|
||||||
SendNUIMessage({
|
|
||||||
type="update_seatbelt",
|
|
||||||
toggle = false
|
|
||||||
})
|
|
||||||
lastSpeed = 0
|
|
||||||
end
|
|
||||||
Wait(2000)
|
|
||||||
end
|
|
||||||
Wait(150)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
|
@ -1,314 +0,0 @@
|
||||||
speedMultiplier = Config.DefaultSpeedUnit == "kmh" and 3.6 or 2.23694
|
|
||||||
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
while true do
|
|
||||||
HideHudComponentThisFrame(6) -- VEHICLE_NAME
|
|
||||||
HideHudComponentThisFrame(7) -- AREA_NAME
|
|
||||||
HideHudComponentThisFrame(8) -- VEHICLE_CLASS
|
|
||||||
HideHudComponentThisFrame(9) -- STREET_NAME
|
|
||||||
HideHudComponentThisFrame(3) -- CASH
|
|
||||||
HideHudComponentThisFrame(4) -- MP_CASH
|
|
||||||
HideHudComponentThisFrame(21) -- 21 : HUD_COMPONENTS
|
|
||||||
HideHudComponentThisFrame(22) -- 22 : HUD_WEAPONS
|
|
||||||
|
|
||||||
DisplayAmmoThisFrame(false)
|
|
||||||
Citizen.Wait(4)
|
|
||||||
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('esx:playerLoaded')
|
|
||||||
AddEventHandler('esx:playerLoaded', function(xPlayer)
|
|
||||||
TriggerServerEvent('codem-blackhudv2:LoadHud')
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
loadESXMoneyAndJob()
|
|
||||||
end)
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('QBCore:Client:OnPlayerLoaded')
|
|
||||||
AddEventHandler('QBCore:Client:OnPlayerLoaded', function()
|
|
||||||
TriggerServerEvent('codem-blackhudv2:LoadHud')
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
WaitPlayer()
|
|
||||||
Citizen.Wait(2500)
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(4000)
|
|
||||||
if Config.Framework == "esx" then
|
|
||||||
TriggerEvent('esx_status:getStatus', 'hunger', function(hunger)
|
|
||||||
TriggerEvent('esx_status:getStatus', 'thirst', function(thirst)
|
|
||||||
local myhunger = hunger.getPercent()
|
|
||||||
local mythirst = thirst.getPercent()
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "hunger",
|
|
||||||
value = myhunger,
|
|
||||||
})
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "thirst",
|
|
||||||
value = mythirst,
|
|
||||||
})
|
|
||||||
end)
|
|
||||||
end)
|
|
||||||
else
|
|
||||||
local myhunger = frameworkObject.Functions.GetPlayerData().metadata["hunger"]
|
|
||||||
local mythirst = frameworkObject.Functions.GetPlayerData().metadata["thirst"]
|
|
||||||
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "hunger",
|
|
||||||
value = myhunger,
|
|
||||||
})
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "thirst",
|
|
||||||
value = mythirst,
|
|
||||||
})
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(1)
|
|
||||||
if GetEntityMaxHealth(PlayerPedId()) ~= 200 then
|
|
||||||
SetEntityMaxHealth(PlayerPedId(), 200)
|
|
||||||
SetEntityHealth(PlayerPedId(), 200)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
function LoadRectMinimap(hud)
|
|
||||||
|
|
||||||
local defaultAspectRatio = 1920/1080 -- Don't change this.
|
|
||||||
local resolutionX, resolutionY = GetActiveScreenResolution()
|
|
||||||
local aspectRatio = resolutionX/resolutionY
|
|
||||||
local minimapOffset = 0
|
|
||||||
if aspectRatio > defaultAspectRatio then
|
|
||||||
minimapOffset = ((defaultAspectRatio-aspectRatio)/3.6)-0.008
|
|
||||||
end
|
|
||||||
RequestStreamedTextureDict("squaremap", false)
|
|
||||||
while not HasStreamedTextureDictLoaded("squaremap") do
|
|
||||||
Wait(150)
|
|
||||||
end
|
|
||||||
|
|
||||||
SetMinimapClipType(0)
|
|
||||||
AddReplaceTexture("platform:/textures/graphics", "radarmasksm", "squaremap", "radarmasksm")
|
|
||||||
AddReplaceTexture("platform:/textures/graphics", "radarmask1g", "squaremap", "radarmasksm")
|
|
||||||
-- 0.0 = nav symbol and icons left
|
|
||||||
-- 0.1638 = nav symbol and icons stretched
|
|
||||||
-- 0.216 = nav symbol and icons raised up
|
|
||||||
SetMinimapComponentPosition("minimap", "L", "B", 0.0 + minimapOffset, -0.047, 0.1638, 0.183)
|
|
||||||
|
|
||||||
-- icons within map
|
|
||||||
SetMinimapComponentPosition("minimap_mask", "L", "B", 0.0 + minimapOffset, 0.0, 0.128, 0.20)
|
|
||||||
|
|
||||||
-- -0.01 = map pulled left
|
|
||||||
-- 0.025 = map raised up
|
|
||||||
-- 0.262 = map stretched
|
|
||||||
-- 0.315 = map shorten
|
|
||||||
|
|
||||||
SetMinimapComponentPosition('minimap_blur', 'L', 'B', -0.01 + minimapOffset, 0.025, 0.262, 0.300)
|
|
||||||
|
|
||||||
SetBlipAlpha(GetNorthRadarBlip(), 0)
|
|
||||||
SetRadarBigmapEnabled(true, false)
|
|
||||||
SetMinimapClipType(0)
|
|
||||||
Wait(0)
|
|
||||||
SetRadarBigmapEnabled(false, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
function LoadRadialMap(hud)
|
|
||||||
local defaultAspectRatio = 1920/1080 -- Don't change this.
|
|
||||||
local resolutionX, resolutionY = GetActiveScreenResolution()
|
|
||||||
local aspectRatio = resolutionX/resolutionY
|
|
||||||
local minimapOffset = 0
|
|
||||||
if aspectRatio > defaultAspectRatio then
|
|
||||||
minimapOffset = ((defaultAspectRatio-aspectRatio)/3.6)-0.008
|
|
||||||
end
|
|
||||||
RequestStreamedTextureDict("circlemap", false)
|
|
||||||
while not HasStreamedTextureDictLoaded("circlemap") do
|
|
||||||
Wait(150)
|
|
||||||
end
|
|
||||||
SetMinimapClipType(1)
|
|
||||||
|
|
||||||
AddReplaceTexture("platform:/textures/graphics", "radarmasksm", "circlemap", "radarmasksm")
|
|
||||||
AddReplaceTexture("platform:/textures/graphics", "radarmask1g", "circlemap", "radarmasksm")
|
|
||||||
-- -0.0100 = nav symbol and icons left
|
|
||||||
-- 0.180 = nav symbol and icons stretched
|
|
||||||
-- 0.258 = nav symbol and icons raised up
|
|
||||||
SetMinimapComponentPosition("minimap", "L", "B", -0.0100 + minimapOffset, -0.030, 0.180, 0.258)
|
|
||||||
|
|
||||||
-- icons within map
|
|
||||||
SetMinimapComponentPosition("minimap_mask", "L", "B", 0.200 + minimapOffset, 0.0, 0.065, 0.20)
|
|
||||||
|
|
||||||
-- -0.00 = map pulled left
|
|
||||||
-- 0.015 = map raised up
|
|
||||||
-- 0.252 = map stretched
|
|
||||||
-- 0.338 = map shorten
|
|
||||||
SetMinimapComponentPosition('minimap_blur', 'L', 'B', -0.00 + minimapOffset, 0.015, 0.252, 0.338)
|
|
||||||
SetBlipAlpha(GetNorthRadarBlip(), 0)
|
|
||||||
SetMinimapClipType(1)
|
|
||||||
SetRadarBigmapEnabled(true, false)
|
|
||||||
Wait(0)
|
|
||||||
SetRadarBigmapEnabled(false, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
local ped = PlayerPedId()
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(100)
|
|
||||||
SetRadarZoom(1100)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(100)
|
|
||||||
SetBigmapActive(false, false)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
if Config.Framework == "esx" then
|
|
||||||
WaitPlayer()
|
|
||||||
Citizen.Wait(2500)
|
|
||||||
TriggerEvent('esx_status:getStatus', 'hunger', function(hunger)
|
|
||||||
TriggerEvent('esx_status:getStatus', 'thirst', function(thirst)
|
|
||||||
local myhunger = hunger.getPercent()
|
|
||||||
local mythirst = thirst.getPercent()
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "hunger",
|
|
||||||
value = myhunger,
|
|
||||||
})
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "thirst",
|
|
||||||
value = mythirst,
|
|
||||||
})
|
|
||||||
end)
|
|
||||||
end)
|
|
||||||
else
|
|
||||||
WaitPlayer()
|
|
||||||
local myhunger = frameworkObject.Functions.GetPlayerData().metadata["hunger"]
|
|
||||||
local mythirst = frameworkObject.Functions.GetPlayerData().metadata["thirst"]
|
|
||||||
Citizen.Wait(2500)
|
|
||||||
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "hunger",
|
|
||||||
value = myhunger,
|
|
||||||
})
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "thirst",
|
|
||||||
value = mythirst,
|
|
||||||
})
|
|
||||||
|
|
||||||
end
|
|
||||||
local playerPed = playerPed
|
|
||||||
local health = GetEntityHealth(playerPed)
|
|
||||||
local val = health-100
|
|
||||||
|
|
||||||
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "health",
|
|
||||||
value = val,
|
|
||||||
})
|
|
||||||
end)
|
|
||||||
|
|
||||||
local lastHealth = nil
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(1250)
|
|
||||||
local playerPed = playerPed
|
|
||||||
local health = GetEntityHealth(playerPed)
|
|
||||||
if lastHealth ~= health then
|
|
||||||
local val = health-100
|
|
||||||
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "health",
|
|
||||||
value = val,
|
|
||||||
})
|
|
||||||
|
|
||||||
lastHealth = health
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNUICallback('ResetHudPositions', function(data, cb)
|
|
||||||
local data = {}
|
|
||||||
|
|
||||||
for _, v in pairs(Config.DefaultHudPositions) do
|
|
||||||
if type(v) == 'string' and Config.AvaliablePositions[v] then
|
|
||||||
data[_] = Config.AvaliablePositions[v]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
TriggerServerEvent('codem-blvckhudv2:UpdateData', "positionsData", data)
|
|
||||||
cb("ok")
|
|
||||||
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
RegisterNUICallback('hudselected', function(data, cb)
|
|
||||||
local hudtype = data.type
|
|
||||||
local defaultAspectRatio = 1920/1080 -- Don't change this.
|
|
||||||
local resolutionX, resolutionY = GetActiveScreenResolution()
|
|
||||||
local aspectRatio = resolutionX/resolutionY
|
|
||||||
local minimapOffset = 0
|
|
||||||
if aspectRatio > defaultAspectRatio then
|
|
||||||
minimapOffset = ((defaultAspectRatio-aspectRatio)/3.6)-0.008
|
|
||||||
end
|
|
||||||
TriggerServerEvent('codem-blvckhudv2:UpdateData', data.settingstype, data.val)
|
|
||||||
if data.settingstype == "hud" then
|
|
||||||
|
|
||||||
if data.val == "radial" then
|
|
||||||
local playerPed = playerPed
|
|
||||||
local armour = GetPedArmour(playerPed)
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "armour_update",
|
|
||||||
armour = armour,
|
|
||||||
})
|
|
||||||
if Config.Framework == "esx" then
|
|
||||||
|
|
||||||
else
|
|
||||||
local myhunger = frameworkObject.Functions.GetPlayerData().metadata["hunger"]
|
|
||||||
local mythirst = frameworkObject.Functions.GetPlayerData().metadata["thirst"]
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "hunger",
|
|
||||||
value = myhunger,
|
|
||||||
})
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "thirst",
|
|
||||||
value = mythirst,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
local health = GetEntityHealth(playerPed)
|
|
||||||
local val = health-100
|
|
||||||
|
|
||||||
SendNUIMessage({
|
|
||||||
type = "set_status",
|
|
||||||
statustype = "health",
|
|
||||||
value = val,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
cb("ok")
|
|
||||||
|
|
||||||
end)
|
|
|
@ -1,273 +0,0 @@
|
||||||
if Config.UseStress then
|
|
||||||
local stress = 0
|
|
||||||
RegisterNetEvent('hud:client:UpdateStress', function(newStress) -- Add this event with adding stress elsewhere
|
|
||||||
stress = newStress
|
|
||||||
SendNUIMessage({ type="set_status", statustype = "stress", value = newStress})
|
|
||||||
end)
|
|
||||||
function IsWhitelistedWeaponStress(weapon)
|
|
||||||
if weapon then
|
|
||||||
for _, v in pairs(Config.WhitelistedWeaponStress) do
|
|
||||||
if weapon == v then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
CreateThread(function() -- Speeding
|
|
||||||
if Config.AddStress["on_fastdrive"].enable then
|
|
||||||
while true do
|
|
||||||
local ped = playerPed
|
|
||||||
if IsPedInAnyVehicle(ped, false) then
|
|
||||||
local speed = GetEntitySpeed(GetVehiclePedIsIn(ped, false)) * speedMultiplier
|
|
||||||
local stressSpeed = 110
|
|
||||||
if speed >= stressSpeed then
|
|
||||||
TriggerServerEvent('hud:server:GainStress', math.random(Config.AddStress["on_fastdrive"].min, Config.AddStress["on_fastdrive"].max))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Wait(10000)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end)
|
|
||||||
|
|
||||||
CreateThread(function() -- Shooting
|
|
||||||
if Config.AddStress["on_shoot"].enable then
|
|
||||||
while true do
|
|
||||||
local ped = playerPed
|
|
||||||
local weapon = GetSelectedPedWeapon(ped)
|
|
||||||
if weapon ~= `WEAPON_UNARMED` then
|
|
||||||
if IsPedShooting(ped) then
|
|
||||||
if math.random() < 0.15 and not IsWhitelistedWeaponStress(weapon) then
|
|
||||||
TriggerServerEvent('hud:server:GainStress', math.random(Config.AddStress["on_shoot"].min, Config.AddStress["on_shoot"].max))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
Wait(900)
|
|
||||||
end
|
|
||||||
Wait(8)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end)
|
|
||||||
|
|
||||||
CreateThread(function()
|
|
||||||
while true do
|
|
||||||
local ped = playerPed
|
|
||||||
if stress >= 100 then
|
|
||||||
|
|
||||||
local ShakeIntensity = GetShakeIntensity(stress)
|
|
||||||
local FallRepeat = math.random(2, 4)
|
|
||||||
local RagdollTimeout = (FallRepeat * 1750)
|
|
||||||
ShakeGameplayCam('SMALL_EXPLOSION_SHAKE', ShakeIntensity)
|
|
||||||
SetFlash(0, 0, 500, 3000, 500)
|
|
||||||
|
|
||||||
if not IsPedRagdoll(ped) and IsPedOnFoot(ped) and not IsPedSwimming(ped) then
|
|
||||||
SetPedToRagdollWithFall(ped, RagdollTimeout, RagdollTimeout, 1, GetEntityForwardVector(ped), 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
|
|
||||||
end
|
|
||||||
|
|
||||||
Wait(500)
|
|
||||||
for i=1, FallRepeat, 1 do
|
|
||||||
Wait(750)
|
|
||||||
DoScreenFadeOut(200)
|
|
||||||
Wait(1000)
|
|
||||||
DoScreenFadeIn(200)
|
|
||||||
ShakeGameplayCam('SMALL_EXPLOSION_SHAKE', ShakeIntensity)
|
|
||||||
SetFlash(0, 0, 200, 750, 200)
|
|
||||||
end
|
|
||||||
elseif stress >= 50 then
|
|
||||||
local ShakeIntensity = GetShakeIntensity(stress)
|
|
||||||
ShakeGameplayCam('SMALL_EXPLOSION_SHAKE', ShakeIntensity)
|
|
||||||
SetFlash(0, 0, 500, 2500, 500)
|
|
||||||
end
|
|
||||||
Wait(GetEffectInterval(stress))
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
function GetShakeIntensity(stresslevel)
|
|
||||||
local retval = 0.05
|
|
||||||
local Intensity = {
|
|
||||||
["shake"] = {
|
|
||||||
[1] = {
|
|
||||||
min = 50,
|
|
||||||
max = 60,
|
|
||||||
intensity = 0.12,
|
|
||||||
},
|
|
||||||
[2] = {
|
|
||||||
min = 60,
|
|
||||||
max = 70,
|
|
||||||
intensity = 0.17,
|
|
||||||
},
|
|
||||||
[3] = {
|
|
||||||
min = 70,
|
|
||||||
max = 80,
|
|
||||||
intensity = 0.22,
|
|
||||||
},
|
|
||||||
[4] = {
|
|
||||||
min = 80,
|
|
||||||
max = 90,
|
|
||||||
intensity = 0.28,
|
|
||||||
},
|
|
||||||
[5] = {
|
|
||||||
min = 90,
|
|
||||||
max = 100,
|
|
||||||
intensity = 0.32,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for k, v in pairs(Intensity['shake']) do
|
|
||||||
if stresslevel >= v.min and stresslevel <= v.max then
|
|
||||||
retval = v.intensity
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return retval
|
|
||||||
end
|
|
||||||
|
|
||||||
function GetEffectInterval(stresslevel)
|
|
||||||
local EffectInterval = {
|
|
||||||
[1] = {
|
|
||||||
min = 50,
|
|
||||||
max = 60,
|
|
||||||
timeout = math.random(14000, 15000)
|
|
||||||
},
|
|
||||||
[2] = {
|
|
||||||
min = 60,
|
|
||||||
max = 70,
|
|
||||||
timeout = math.random(12000, 13000)
|
|
||||||
},
|
|
||||||
[3] = {
|
|
||||||
min = 70,
|
|
||||||
max = 80,
|
|
||||||
timeout = math.random(10000, 11000)
|
|
||||||
},
|
|
||||||
[4] = {
|
|
||||||
min = 80,
|
|
||||||
max = 90,
|
|
||||||
timeout = math.random(8000, 9000)
|
|
||||||
},
|
|
||||||
[5] = {
|
|
||||||
min = 90,
|
|
||||||
max = 100,
|
|
||||||
timeout = math.random(6000, 7000)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
local retval = 10000
|
|
||||||
for k, v in pairs(EffectInterval) do
|
|
||||||
if stresslevel >= v.min and stresslevel <= v.max then
|
|
||||||
retval = v.timeout
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return retval
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
RegisterNetEvent('esx_basicneeds:onEat')
|
|
||||||
AddEventHandler('esx_basicneeds:onEat', function()
|
|
||||||
if Config.RemoveStress["on_eat"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_eat"].min, Config.RemoveStress["on_eat"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('consumables:client:Eat')
|
|
||||||
AddEventHandler('consumables:client:Eat', function()
|
|
||||||
if Config.RemoveStress["on_eat"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_eat"].min, Config.RemoveStress["on_eat"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
RegisterNetEvent('consumables:client:Drink')
|
|
||||||
AddEventHandler('consumables:client:Drink', function()
|
|
||||||
if Config.RemoveStress["on_drink"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_drink"].min, Config.RemoveStress["on_drink"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
RegisterNetEvent('consumables:client:DrinkAlcohol')
|
|
||||||
AddEventHandler('consumables:client:DrinkAlcohol', function()
|
|
||||||
if Config.RemoveStress["on_drink"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_drink"].min, Config.RemoveStress["on_drink"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('devcore_needs:client:StartEat')
|
|
||||||
AddEventHandler('devcore_needs:client:StartEat', function()
|
|
||||||
if Config.RemoveStress["on_eat"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_eat"].min, Config.RemoveStress["on_eat"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
RegisterNetEvent('devcore_needs:client:DrinkShot')
|
|
||||||
AddEventHandler('devcore_needs:client:DrinkShot', function()
|
|
||||||
if Config.RemoveStress["on_drink"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_drink"].min, Config.RemoveStress["on_drink"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('devcore_needs:client:StartDrink')
|
|
||||||
AddEventHandler('devcore_needs:client:StartDrink', function()
|
|
||||||
if Config.RemoveStress["on_drink"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_drink"].min, Config.RemoveStress["on_drink"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('esx_optionalneeds:onDrink')
|
|
||||||
AddEventHandler('esx_optionalneeds:onDrink', function()
|
|
||||||
if Config.RemoveStress["on_drink"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_drink"].min, Config.RemoveStress["on_drink"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
RegisterNetEvent('esx_basicneeds:onDrink')
|
|
||||||
AddEventHandler('esx_basicneeds:onDrink', function()
|
|
||||||
if Config.RemoveStress["on_drink"].enable then
|
|
||||||
local val = math.random(Config.RemoveStress["on_drink"].min, Config.RemoveStress["on_drink"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
AddEventHandler('esx:onPlayerDeath', function()
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', 10000)
|
|
||||||
end)
|
|
||||||
|
|
||||||
RegisterNetEvent('hospital:client:RespawnAtHospital')
|
|
||||||
AddEventHandler('hospital:client:RespawnAtHospital', function()
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', 10000)
|
|
||||||
end)
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
if Config.RemoveStress["on_swimming"].enable then
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(10000)
|
|
||||||
if IsPedSwimming(playerPed) then
|
|
||||||
local val = math.random(Config.RemoveStress["on_swimming"].min, Config.RemoveStress["on_swimming"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
|
||||||
if Config.RemoveStress["on_running"].enable then
|
|
||||||
while true do
|
|
||||||
Citizen.Wait(10000)
|
|
||||||
if IsPedRunning(playerPed) then
|
|
||||||
local val = math.random(Config.RemoveStress["on_running"].min, Config.RemoveStress["on_running"].max)
|
|
||||||
TriggerServerEvent('hud:server:RelieveStress', val)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
|
@ -1,408 +0,0 @@
|
||||||
|
|
||||||
-------------------------------------------- General --------------------------------------------
|
|
||||||
Config = {}
|
|
||||||
Config.Framework = "newqb" -- newqb, oldqb, esx
|
|
||||||
Config.NewESX = false
|
|
||||||
Config.Mysql = "oxmysql" -- mysql-async, ghmattimysql, oxmysql
|
|
||||||
Config.MysqlTableName = "codem_hud_data" -- Don't change if you don't know what you're doing
|
|
||||||
Config.Voice = "saltychat" -- mumble, saltychat, pma
|
|
||||||
Config.DefaultHud = "radial" -- Default hud when player first login avaliable huds [radial, classic, text]
|
|
||||||
Config.EnableDynamicStatusFirstJoin = false -- Enable dynamic status first join
|
|
||||||
Config.DefaultSpeedUnit = "kmh" -- Default speed unit when player first login avaliable speed units [kmh, mph]
|
|
||||||
Config.HudSettingsCommand = 'hudsettings' -- Command for open hud settings
|
|
||||||
Config.DisplayMapOnWalk = true -- true - Show map when walking | false - Hide map when walking
|
|
||||||
Config.DisplayRealTime = true -- if you set this to true will show the real time according to player local time | if false it will show the game time
|
|
||||||
Config.EnableSpamNotification = true -- Spam preventation for seatbelt, cruise etc.
|
|
||||||
Config.EnableDateDisplay = true -- Determines if display date or nor
|
|
||||||
Config.DefaultMap = "rectangle" -- rectangle, radial
|
|
||||||
Config.DefaultSpeedometerSize = 1.2 -- 0.5 - 1.3
|
|
||||||
Config.DefaultHudSize = 1.0 -- 0.5 - 1.3
|
|
||||||
Config.EnableAmmoHud = true -- Determines if display ammo hud or nor
|
|
||||||
Config.DefaultRefreshRate = 200 -- Refresh rate for vehicle hud
|
|
||||||
Config.EnableCompass = true
|
|
||||||
Config.EnableHealth = true
|
|
||||||
Config.EnableHunger = true
|
|
||||||
Config.EnableThirst = true
|
|
||||||
Config.EnableHud = true
|
|
||||||
Config.EnableArmor = true
|
|
||||||
Config.EnableStamina = true
|
|
||||||
Config.EnableSpeedometer = true
|
|
||||||
Config.EnableToggleMapButton = true -- true | enables the toggle minimap button from the hud settings menu | -- false | disables the toggle minimap button from the hud settings menu
|
|
||||||
Config.LocationUpdateTime = 2000 -- if you reduce wait time resmon could increase
|
|
||||||
Config.SeatBeltFlySpeed = 150 -- Determines at what speed player will be ejected from vehicle when he/she doesn't have seatbelt on
|
|
||||||
Config.SeatbeltSound = true
|
|
||||||
Config.SeatbeltSoundSpeedLimit = 30
|
|
||||||
|
|
||||||
-- 1 means smallest and 4 biggest size
|
|
||||||
Config.AccountSize = {
|
|
||||||
cash = 4,
|
|
||||||
bank = 3,
|
|
||||||
black_money = 2,
|
|
||||||
boss_money = 1,
|
|
||||||
}
|
|
||||||
|
|
||||||
Config.AvaliablePositions = {
|
|
||||||
["bottom-center"] = {
|
|
||||||
left = '48.75rem',
|
|
||||||
bottom = '1rem',
|
|
||||||
right = 'unset',
|
|
||||||
},
|
|
||||||
["bottom-right"] = {
|
|
||||||
right = '1rem',
|
|
||||||
bottom = '1rem',
|
|
||||||
left = 'unset',
|
|
||||||
},
|
|
||||||
["top-center"] = {
|
|
||||||
left = '48.75rem',
|
|
||||||
top = '1rem',
|
|
||||||
right = 'unset',
|
|
||||||
},
|
|
||||||
["top-left"] = {
|
|
||||||
left = '1rem',
|
|
||||||
top = '1rem',
|
|
||||||
right = 'unset',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- This option sets the default hud positions for players who do not set their own positions from hud settings
|
|
||||||
Config.DefaultHudPositions = {
|
|
||||||
-- TEXT HUD
|
|
||||||
["text-main"] = 'default', -- avaliable options are [default, bottom-center, bottom-right, top-center, top-left]
|
|
||||||
-- RADIAL HUD
|
|
||||||
["radial-hudall"] = 'default', -- avaliable options are [default, bottom-center, bottom-right, top-center, top-left]
|
|
||||||
-- CLASSIC HUD
|
|
||||||
["classic-container"] = 'default', -- avaliable options are [default, bottom-center, bottom-right, top-center, top-left]
|
|
||||||
-- RADIAL HUD'S COMPASS
|
|
||||||
["radial-compass"] = 'default', -- avaliable options are [default, bottom-center, bottom-right, top-center, top-left]
|
|
||||||
-- TEXT HUD'S COMPASS
|
|
||||||
["text-compass"] = 'default', -- avaliable options are [default, bottom-center, bottom-right, top-center, top-left]
|
|
||||||
-- CLASSIC HUD'S COMPASS
|
|
||||||
["classic-compass"] = 'default', -- avaliable options are [default, bottom-center, bottom-right, top-center, top-left]
|
|
||||||
}
|
|
||||||
|
|
||||||
Config.DefaultHudColors = {
|
|
||||||
["radial"] = {
|
|
||||||
["health"] = "#FF4848ac",
|
|
||||||
["armor"] = "#FFFFFFac",
|
|
||||||
["hunger"] = "#FFA048ac",
|
|
||||||
["thirst"] = "#4886FFac",
|
|
||||||
["stress"] = "#48A7FFac",
|
|
||||||
["stamina"] = "#C4FF48ac",
|
|
||||||
["oxy"] = "#48A7FFac",
|
|
||||||
["parachute"] = "#48FFBDac",
|
|
||||||
["nitro"] = "#AFFF48ac",
|
|
||||||
["altitude"] = "#00FFF0ac",
|
|
||||||
},
|
|
||||||
["text"] = {
|
|
||||||
["health"] = "#FF4848ac",
|
|
||||||
["armor"] = "#FFFFFFac",
|
|
||||||
["hunger"] = "#FFA048ac",
|
|
||||||
["thirst"] = "#4886FFac",
|
|
||||||
["stress"] = "#48A7FFac",
|
|
||||||
["stamina"] = "#C4FF48ac",
|
|
||||||
["parachute"] = "#48FFBDac",
|
|
||||||
["oxy"] = "#48A7FFac",
|
|
||||||
["nitro"] = "#AFFF48ac",
|
|
||||||
["altitude"] = "#00FFF0ac",
|
|
||||||
},
|
|
||||||
["classic"] = {
|
|
||||||
["health"] = "#9F2929",
|
|
||||||
["armor"] = "#2E3893",
|
|
||||||
["hunger"] = "#B3743A",
|
|
||||||
["thirst"] = "#2F549C",
|
|
||||||
["stress"] = "#AA35A6",
|
|
||||||
["oxy"] = "#48A7FFac",
|
|
||||||
["stamina"] = "#c4ff48",
|
|
||||||
["parachute"] = "#48ffde",
|
|
||||||
["nitro"] = "#8eff48",
|
|
||||||
["altitude"] = "#48deff",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------- Watermark hud --------------------------------------------
|
|
||||||
Config.DisableWaterMarkTextAndLogo = false -- true - Disable watermark text and logo
|
|
||||||
Config.UseWaterMarkText = false -- if true text will be shown | if false logo will be shown
|
|
||||||
Config.WaterMarkText1 = "CODEM" -- Top right server text
|
|
||||||
Config.WaterMarkText2 = "SCRiPTS" -- Top right server text
|
|
||||||
Config.WaterMarkLogo = "https://cdn.discordapp.com/attachments/862018783391252500/967359920703942686/Frame_303.png" -- Logo url
|
|
||||||
Config.LogoWidth = "11.875rem"
|
|
||||||
Config.LogoHeight = "3.313rem"
|
|
||||||
Config.EnableId = true -- Determines if display server id or nor
|
|
||||||
Config.EnableWatermarkCash = true -- Determines if display cash or nor
|
|
||||||
Config.EnableWatermarkBlackMoney = true -- Determines if display black_money or nor (only esx)
|
|
||||||
Config.EnableWatermarkBossMoney = true -- Determines if display boss money or nor (only esx)
|
|
||||||
Config.BossGradeNames = { -- you can set custom boss grade names here otherwise hud gets grade name as boss
|
|
||||||
["police"] = 'boss',
|
|
||||||
["ambulance"] = 'boss',
|
|
||||||
}
|
|
||||||
|
|
||||||
Config.EnableWatermarkBankMoney = true -- Determines if display bank money or nor
|
|
||||||
Config.EnableWatermarkJob = true -- Determines if display job or nor
|
|
||||||
Config.EnableWatermarkWeaponImage = true -- Determines if display weapon image or nor
|
|
||||||
Config.EnableWaterMarkHud = true -- Determines if right-top hud is enabled or not
|
|
||||||
|
|
||||||
Config.EnableWaterMarkHudHideButtons = true
|
|
||||||
|
|
||||||
Config.Text1Style = {
|
|
||||||
["color"] = '#e960c7',
|
|
||||||
["text-shadow"] = "0px 0.38rem 2.566rem rgba(116, 5, 147, 0.55)",
|
|
||||||
}
|
|
||||||
|
|
||||||
Config.Text2Style = {
|
|
||||||
["color"] = "#ffffff",
|
|
||||||
}
|
|
||||||
|
|
||||||
-------------------------------------------- Keys --------------------------------------------
|
|
||||||
Config.DefaultCruiseControlKey = "p" -- Default control key for cruise. Players can change the key according to their desire
|
|
||||||
Config.DefaultSeatbeltControlKey = "b" -- Default control key for seatbelt. Players can change the key according to their desire
|
|
||||||
Config.VehicleEngineToggleKey = "o" -- Default control key for toggle engine. Players can change the key according to their desire
|
|
||||||
Config.NitroKey = "n" -- Default control key for use nitro. Players can change the key according to their desire
|
|
||||||
|
|
||||||
-------------------------------------------- Nitro --------------------------------------------
|
|
||||||
Config.RemoveNitroOnpress = 2 -- Determines of how much you want to remove nitro when player press nitro key
|
|
||||||
Config.NitroItem = "nitrous" -- item to install nitro to a vehicle
|
|
||||||
Config.EnableNitro = true -- Determines if nitro system is enabled or not
|
|
||||||
Config.NitroForce = 40.0 -- Nitro force when player using nitro
|
|
||||||
|
|
||||||
-------------------------------------------- Money commands --------------------------------------------
|
|
||||||
Config.EnableCashAndBankCommands = true -- Determines if money commands are enabled or not
|
|
||||||
Config.CashCommand = "cash" -- command to see cash
|
|
||||||
Config.BankCommand = "bank" -- command to see bank money
|
|
||||||
|
|
||||||
-------------------------------------------- Engine Toggle --------------------------------------------
|
|
||||||
Config.EnableEngineToggle = true -- Determines if engine toggle is enabled or not
|
|
||||||
|
|
||||||
-------------------------------------------- Vehicle Functionality --------------------------------------------
|
|
||||||
Config.EnableCruise = true -- Determines if cruise mode is active
|
|
||||||
Config.EnableSeatbelt = true -- Determines if seatbelt is active
|
|
||||||
|
|
||||||
-------------------------------------------- Settings text --------------------------------------------
|
|
||||||
Config.SettingsLocale = { -- Settings texts
|
|
||||||
["text_hud_1"] = "text",
|
|
||||||
["text_hud_2"] = "hud",
|
|
||||||
["classic_hud_1"] = "classic",
|
|
||||||
["classic_hud_2"] = "hud",
|
|
||||||
["radial_hud_1"] = "radial",
|
|
||||||
["radial_hud_2"] = "hud",
|
|
||||||
["hide_hud"] = "Hide Hud",
|
|
||||||
["health"] = "Health",
|
|
||||||
["armor"] = "Armor",
|
|
||||||
["thirst"] = "Thirst",
|
|
||||||
["stress"] = "Stress",
|
|
||||||
["oxy"] = "Oxygen",
|
|
||||||
["hunger"] = "Hunger",
|
|
||||||
["show_hud"] = "Show Hud",
|
|
||||||
["stamina"] = "Stamina",
|
|
||||||
["nitro"] = "Nitro",
|
|
||||||
["Altitude"] = "Altitude",
|
|
||||||
["Parachute"] = "Parachute",
|
|
||||||
["enable_cinematicmode"] = "Cinematic Mode",
|
|
||||||
["disable_cinematicmode"] = "Disable Cinematic",
|
|
||||||
|
|
||||||
["speedometer"] = "SPEEDOMETER",
|
|
||||||
["map"] = "MAP",
|
|
||||||
["show_compass"] = "Show Compass",
|
|
||||||
["hide_compass"] = "Hide Compass",
|
|
||||||
["rectangle"] = "Rectangle",
|
|
||||||
["radial"] = "Radial",
|
|
||||||
["dynamic"] = "DYNAMiC",
|
|
||||||
["status"] = "STATUS",
|
|
||||||
["enable"] = "Enable",
|
|
||||||
["hud_size"] = "Status size",
|
|
||||||
["disable"] = "Disable",
|
|
||||||
["hide_at"] = "Hide at",
|
|
||||||
["and_above"] = "and above",
|
|
||||||
["and_below"] = "and below",
|
|
||||||
["enable_edit_mode"] = "Drag HUD (One by one)",
|
|
||||||
["enable_edit_mode_2"] = "Drag HUD (All)",
|
|
||||||
["change_status_size"] = "Change status size",
|
|
||||||
["change_color"] = "Change color of selected hud ",
|
|
||||||
["disable_edit_mode"] = "Disable Edit Mode",
|
|
||||||
["reset_hud_positions"] = "Reset Hud Positions",
|
|
||||||
["info_text"] = "Be aware decraising refresh rate may decrease your in game performance!",
|
|
||||||
["speedometer_size"] = "Speedometer Size",
|
|
||||||
["refresh_rate"] = "Refresh Rate",
|
|
||||||
["esc_to_exit"] = "PRESS ESC TO EXIT EDIT MODE",
|
|
||||||
["toggle_minimap"] = "Toggle Minimap",
|
|
||||||
["currency"] = '$',
|
|
||||||
["hide_id"] = 'Hide ID',
|
|
||||||
["hide_logo"] = 'Hide Logo',
|
|
||||||
["hide_cash"] = 'Hide Cash Money',
|
|
||||||
["hide_bank"] = 'Hide Bank Money',
|
|
||||||
["hide_boss_money"] = 'Hide Boss Money',
|
|
||||||
["hide_black_money"] = 'Hide Black Money',
|
|
||||||
["hide_weapon"] = 'Hide Weapon',
|
|
||||||
["hide_ammo"] = 'Hide Ammo',
|
|
||||||
["hide_job"] = 'Hide Job',
|
|
||||||
["hide_all"] = 'Hide All',
|
|
||||||
|
|
||||||
|
|
||||||
["show_id"] = 'Show ID',
|
|
||||||
["show_logo"] = 'Show Logo',
|
|
||||||
["show_cash"] = 'Show Cash Money',
|
|
||||||
["show_bank"] = 'Show Bank Money',
|
|
||||||
["show_boss_money"] = 'Show Boss Money',
|
|
||||||
["show_black_money"] = 'Show Black Money',
|
|
||||||
["show_weapon"] = 'Show Weapon',
|
|
||||||
["show_ammo"] = 'Show Ammo',
|
|
||||||
["show_job"] = 'Show Job',
|
|
||||||
["show_all"] = 'Show All'
|
|
||||||
}
|
|
||||||
|
|
||||||
-------------------------------------------- Fuel --------------------------------------------
|
|
||||||
-------------------------------------------- Fuel --------------------------------------------
|
|
||||||
Config.EnableFuel = true -- Do NOT Touch if you have any fuel system
|
|
||||||
Config.FuelSystem = 'lc_fuel' -- LegacyFuel / ox-fuel / nd-fuel / frfuel / cdn-fuel
|
|
||||||
|
|
||||||
Config.GetVehicleFuel = function(vehicle)
|
|
||||||
if Config.EnableFuel then
|
|
||||||
if DoesEntityExist(vehicle) then
|
|
||||||
if Config.FuelSystem == 'LegacyFuel' then
|
|
||||||
return exports["LegacyFuel"]:GetFuel(vehicle)
|
|
||||||
elseif Config.FuelSystem == 'ox-fuel' then
|
|
||||||
return GetVehicleFuelLevel(vehicle)
|
|
||||||
elseif Config.FuelSystem == 'cdn_fuel' then
|
|
||||||
return exports["nd-fuel"]:GetFuel(vehicle)
|
|
||||||
elseif Config.FuelSystem == 'frfuel' then
|
|
||||||
return exports.frfuel:getCurrentFuelLevel(vehicle)
|
|
||||||
elseif Config.FuelSystem == 'cdn_fuel' then
|
|
||||||
return exports['cdn-fuel']:GetFuel(vehicle)
|
|
||||||
elseif Config.FuelSystem == 'lc_fuel' then
|
|
||||||
return exports["lc_fuel"]:GetFuel(vehicle)
|
|
||||||
else
|
|
||||||
-- You can added export if you want it
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
return GetVehicleFuelLevel(vehicle)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-------------------------------------------- Stress --------------------------------------------
|
|
||||||
|
|
||||||
Config.UseStress = false -- if you set this to false the stress hud will be removed
|
|
||||||
Config.StressWhitelistJobs = { -- Add here jobs you want to disable stress
|
|
||||||
'police', 'ambulance'
|
|
||||||
}
|
|
||||||
|
|
||||||
Config.WhitelistedWeaponStress = {
|
|
||||||
'weapon_petrolcan',
|
|
||||||
'weapon_hazardcan',
|
|
||||||
'weapon_fireextinguisher'
|
|
||||||
}
|
|
||||||
|
|
||||||
Config.AddStress = {
|
|
||||||
["on_shoot"] = {
|
|
||||||
min = 1,
|
|
||||||
max = 3,
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
["on_fastdrive"] = {
|
|
||||||
min = 1,
|
|
||||||
max = 3,
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
Config.RemoveStress = { -- You can set here amounts by your desire
|
|
||||||
["on_eat"] = {
|
|
||||||
min = 5,
|
|
||||||
max = 10,
|
|
||||||
enable = true,
|
|
||||||
|
|
||||||
},
|
|
||||||
["on_drink"] = {
|
|
||||||
min = 5,
|
|
||||||
max = 10,
|
|
||||||
enable = true,
|
|
||||||
|
|
||||||
},
|
|
||||||
["on_swimming"] = {
|
|
||||||
min = 5,
|
|
||||||
max = 10,
|
|
||||||
enable = true,
|
|
||||||
|
|
||||||
},
|
|
||||||
["on_running"] = {
|
|
||||||
min = 5,
|
|
||||||
max = 10,
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------- Notifications --------------------------------------------
|
|
||||||
|
|
||||||
Config.Notifications = { -- Notifications
|
|
||||||
["stress_gained"] = {
|
|
||||||
message = 'Getting Stressed',
|
|
||||||
type = "error",
|
|
||||||
},
|
|
||||||
["stress_relive"] = {
|
|
||||||
message = 'You Are Relaxing',
|
|
||||||
type = "success",
|
|
||||||
},
|
|
||||||
["took_off_seatbelt"] = {
|
|
||||||
type = "error",
|
|
||||||
message = "Du hast dich abgeschnallt.",
|
|
||||||
},
|
|
||||||
["took_seatbelt"] = {
|
|
||||||
type = "success",
|
|
||||||
message = "Du hast dich angeschnallt.",
|
|
||||||
},
|
|
||||||
["cruise_actived"] = {
|
|
||||||
type = "success",
|
|
||||||
message = "Cruise actived.",
|
|
||||||
},
|
|
||||||
["cruise_disabled"] = {
|
|
||||||
type = "error",
|
|
||||||
message = "Cruise disabled.",
|
|
||||||
},
|
|
||||||
["spam"] = {
|
|
||||||
type = "error",
|
|
||||||
message = "Please wait for a few seconds.",
|
|
||||||
},
|
|
||||||
["engine_on"] = {
|
|
||||||
type = "success",
|
|
||||||
message = "Motor an",
|
|
||||||
},
|
|
||||||
["engine_off"] = {
|
|
||||||
type = "success",
|
|
||||||
message = "Motor aus",
|
|
||||||
},
|
|
||||||
["cant_install_nitro"] = {
|
|
||||||
type = "error",
|
|
||||||
message = "You can't install nitro inside vehicle.",
|
|
||||||
},
|
|
||||||
["no_veh_nearby"] = {
|
|
||||||
type = "error",
|
|
||||||
message = "No vehicle nearby.",
|
|
||||||
},
|
|
||||||
["cash_display"] = {
|
|
||||||
type = "success",
|
|
||||||
message = "You have $%s in your pocket.",
|
|
||||||
},
|
|
||||||
["bank_display"] = {
|
|
||||||
type = "success",
|
|
||||||
message = "You have $%s in your bank.",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
Config.Notification = function(message, type, isServer, src) -- You can change here events for notifications
|
|
||||||
if isServer then
|
|
||||||
if Config.Framework == "esx" then
|
|
||||||
TriggerClientEvent("esx:showNotification", src, message)
|
|
||||||
else
|
|
||||||
TriggerClientEvent('QBCore:Notify', src, message, type, 1500)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if Config.Framework == "esx" then
|
|
||||||
TriggerEvent("esx:showNotification", message)
|
|
||||||
else
|
|
||||||
TriggerEvent('QBCore:Notify', message, type, 1500)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,63 +0,0 @@
|
||||||
fx_version 'cerulean'
|
|
||||||
game 'gta5'
|
|
||||||
author 'Lucid#3604'
|
|
||||||
|
|
||||||
|
|
||||||
shared_scripts {
|
|
||||||
'config.lua'
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
client_scripts {
|
|
||||||
'GetFrameworkObject.lua',
|
|
||||||
'client/client.lua',
|
|
||||||
'client/nitro.lua',
|
|
||||||
'client/seatbelt.lua',
|
|
||||||
'client/stress.lua',
|
|
||||||
'client/UpdateMoney.lua',
|
|
||||||
'client/status.lua',
|
|
||||||
}
|
|
||||||
server_scripts {
|
|
||||||
'@mysql-async/lib/MySQL.lua',
|
|
||||||
'@oxmysql/lib/MySQL.lua',
|
|
||||||
'GetFrameworkObject.lua',
|
|
||||||
'server/server.lua',
|
|
||||||
'server/seatbelt.lua',
|
|
||||||
'server/PlayerLoaded.lua',
|
|
||||||
'server/stress.lua',
|
|
||||||
'server/nitro.lua',
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_page {
|
|
||||||
'html/index.html',
|
|
||||||
}
|
|
||||||
|
|
||||||
files {
|
|
||||||
'html/assets/fonts/*.otf',
|
|
||||||
'html/assets/images/*.png',
|
|
||||||
'html/assets/weapons/*.png',
|
|
||||||
|
|
||||||
'html/lib/*.js',
|
|
||||||
'html/script/*.js',
|
|
||||||
'html/index.html',
|
|
||||||
'html/*.ogg',
|
|
||||||
'html/style/*.css',
|
|
||||||
}
|
|
||||||
|
|
||||||
lua54 'on'
|
|
||||||
|
|
||||||
|
|
||||||
escrow_ignore {
|
|
||||||
'config.lua',
|
|
||||||
'GetFrameworkObject.lua',
|
|
||||||
'server/PlayerLoaded.lua',
|
|
||||||
'server/stress.lua',
|
|
||||||
'server/nitro.lua',
|
|
||||||
'client/nitro.lua',
|
|
||||||
'server/seatbelt.lua',
|
|
||||||
'client/seatbelt.lua',
|
|
||||||
'client/stress.lua',
|
|
||||||
'client/UpdateMoney.lua',
|
|
||||||
'client/status.lua'
|
|
||||||
}
|
|
||||||
dependency '/assetpacks'
|
|
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 548 B |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 932 B |
Before Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 179 B |
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 374 B |
Before Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 266 B |
Before Width: | Height: | Size: 826 B |
Before Width: | Height: | Size: 307 B |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 733 B |
Before Width: | Height: | Size: 817 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 894 B |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 523 B |
Before Width: | Height: | Size: 440 B |
Before Width: | Height: | Size: 536 B |
Before Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 550 B |
Before Width: | Height: | Size: 343 B |
Before Width: | Height: | Size: 495 B |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 635 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 21 KiB |