monitor/resource/menu/client/cl_freeze.lua
2025-04-16 22:30:27 +07:00

40 lines
1.4 KiB
Lua

-- Prevent running if menu is disabled
if not TX_MENU_ENABLED then return end
-- =============================================
-- This file contains all player freeze logic
-- =============================================
local function sendFreezeAlert(isFrozen)
if isFrozen then
sendPersistentAlert('freeze-status', 'warning', 'nui_menu.frozen.was_frozen', true)
else
clearPersistentAlert('freeze-status')
end
end
RegisterSecureNuiCallback('togglePlayerFreeze', function(data, cb)
local targetPlayerId = tonumber(data.id)
if targetPlayerId == GetPlayerServerId(PlayerId()) then
return sendSnackbarMessage('error', 'nui_menu.player_modal.actions.interaction.notifications.freeze_yourself', true)
end
TriggerServerEvent('txsv:req:freezePlayer', targetPlayerId)
cb({})
end)
RegisterNetEvent('txcl:freezePlayerOk', function(isFrozen)
local localeKey = isFrozen and 'nui_menu.frozen.froze_player' or 'nui_menu.frozen.unfroze_player'
sendSnackbarMessage('info', localeKey, true)
end)
RegisterNetEvent('txcl:setFrozen', function(isFrozen)
debugPrint('Frozen: ' .. tostring(isFrozen))
--NOTE: removed the check for vehicle, but could be done with
-- IsPedInAnyVehicle for vehicles and IsPedOnMount for horses
local playerPed = PlayerPedId()
TaskLeaveAnyVehicle(playerPed, 0, 16)
FreezeEntityPosition(playerPed, isFrozen)
sendFreezeAlert(isFrozen)
end)