Scripts/resources/[standalone]/xsound/addon/crewphone/client/client.lua
2024-12-29 21:02:43 +01:00

186 lines
7.1 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

if config.AddonList.crewPhone then
local calanMuzikler = {}
local musicOn = false
local ESX = nil
CreateThread(function()
xpcall(function()
ESX = exports['es_extended']['getSharedObject']()
end, function(error)
while ESX == nil do
Wait(50)
TriggerEvent('esx:getSharedObject', function(obj)
ESX = obj
end)
end
end)
end)
-- Müzik çalma
exports('Cal', function(link, mp3)
local ped = PlayerPedId()
local pos = GetEntityCoords(ped)
local serverId = GetPlayerServerId(PlayerId())
local muzikAdi = tostring(serverId)
if musicOn then
TriggerServerEvent("muzik-durdur", muzikAdi)
musicOn = false
end
if #calanMuzikler <= 99 then
if mp3 then
TriggerServerEvent("muzik-cal", pos, muzikAdi, "phone-ring/" .. link, serverId, true)
else
TriggerServerEvent("muzik-cal", pos, muzikAdi, "https://www.youtube.com/watch?v=" .. link, serverId, false)
end
musicOn = true
else
ESX.ShowNotification("Fazla kişi youtube uygulamasını kullandığı için açtığınız videonun sesini yakındaki kişiler duyamıyor", "error")
end
end)
RegisterNetEvent('client-muzik-cal')
AddEventHandler('client-muzik-cal', function(pos, muzikAdi, link, serverId, mp3)
if tostring(GetPlayerServerId(PlayerId())) ~= muzikAdi then
calanMuzikler[muzikAdi] = {}
calanMuzikler[muzikAdi]["duraklat"] = false
calanMuzikler[muzikAdi]["serverId"] = serverId
calanMuzikler[muzikAdi]["mp3"] = mp3
if mp3 then
PlayUrlPos(muzikAdi, link, 0.1, pos)
setVolumeMax(muzikAdi, 0.1)
Distance(muzikAdi, 10)
else
PlayUrlPos(muzikAdi, link, 0.15, pos)
setVolumeMax(muzikAdi, 0.15)
Distance(muzikAdi, 15)
end
end
end)
-- Müzik durdurma
exports('Durdur', function(link)
if musicOn then
musicOn = false
TriggerServerEvent("muzik-durdur", tostring(GetPlayerServerId(PlayerId())))
end
end)
RegisterNetEvent('client-muzik-durdur')
AddEventHandler('client-muzik-durdur', function(muzikAdi)
if GetPlayerServerId(PlayerId()) ~= muzikAdi then
calanMuzikler[muzikAdi] = nil
Destroy(muzikAdi)
end
end)
-- Müzik duraklatma
exports('Duraklat', function(link)
local myId = tostring(GetPlayerServerId(PlayerId()))
TriggerServerEvent("muzik-duraklat", myId)
end)
RegisterNetEvent('client-muzik-duraklat')
AddEventHandler('client-muzik-duraklat', function(muzikAdi)
if tostring(GetPlayerServerId(PlayerId())) ~= muzikAdi then
if calanMuzikler[muzikAdi]["duraklat"] == false then
calanMuzikler[muzikAdi]["duraklat"] = true
Pause(muzikAdi)
end
end
end)
-- Müzik duraklatma
exports('Devamet', function(link)
local myId = tostring(GetPlayerServerId(PlayerId()))
TriggerServerEvent("muzik-devamet", myId)
end)
RegisterNetEvent('client-muzik-devamet')
AddEventHandler('client-muzik-devamet', function(muzikAdi)
if tostring(GetPlayerServerId(PlayerId())) ~= muzikAdi then
if calanMuzikler[muzikAdi]["duraklat"] == true then
calanMuzikler[muzikAdi]["duraklat"] = false
Resume(muzikAdi)
end
end
end)
-- Müzik Konum güncelleme
local time = 100
Citizen.CreateThread(function()
while true do
Citizen.Wait(time)
for x, y in pairs(calanMuzikler) do
local player = GetPlayerFromServerId(calanMuzikler[x]["serverId"])
if player ~= -1 then
local ped = GetPlayerPed(player)
local kordinat = GetEntityCoords(ped)
local benimKordinat = GetEntityCoords(PlayerPedId())
local mesafe = #(benimKordinat - kordinat)
if mesafe < 200 then
time = 100
Position(x, kordinat)
if calanMuzikler[x]["mp3"] then
if IsPedInAnyVehicle(ped, true) == 1 then
local vehicle = GetVehiclePedIsIn(ped, false)
if GetEntitySpeed(vehicle) * 3.6 > 200.0 then
Distance(x, 140)
elseif GetEntitySpeed(vehicle) * 3.6 > 150.0 then
Distance(x, 125)
elseif GetEntitySpeed(vehicle) * 3.6 > 110.0 then
Distance(x, 100)
elseif GetEntitySpeed(vehicle) * 3.6 > 90.0 then
Distance(x, 80)
elseif GetEntitySpeed(vehicle) * 3.6 > 60.0 then
Distance(x, 65)
elseif GetEntitySpeed(vehicle) * 3.6 > 30.0 then
Distance(x, 40)
else
Distance(x, 25)
end
else
Distance(x, 10)
end
else
if IsPedInAnyVehicle(ped, true) == 1 then
local vehicle = GetVehiclePedIsIn(ped, false)
if GetEntitySpeed(vehicle) * 3.6 > 200.0 then
Distance(x, 140)
elseif GetEntitySpeed(vehicle) * 3.6 > 150.0 then
Distance(x, 125)
elseif GetEntitySpeed(vehicle) * 3.6 > 110.0 then
Distance(x, 100)
elseif GetEntitySpeed(vehicle) * 3.6 > 90.0 then
Distance(x, 80)
elseif GetEntitySpeed(vehicle) * 3.6 > 60.0 then
Distance(x, 65)
elseif GetEntitySpeed(vehicle) * 3.6 > 30.0 then
Distance(x, 40)
else
Distance(x, 25)
end
else
Distance(x, 15)
end
end
else
time = 2000
Position(x, kordinat)
end
else
local muzikAdi = tostring(calanMuzikler[x]["serverId"])
calanMuzikler[muzikAdi] = nil
Destroy(muzikAdi)
end
end
end
end)
end