40 lines
1.4 KiB
Lua
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)
|