forked from Simnation/Main
77 lines
2.4 KiB
Lua
77 lines
2.4 KiB
Lua
-- Client-side freeze handling (put this in a client file)
|
|
RegisterNetEvent('ox_commands:freeze', function(freezeStatus, notify)
|
|
local playerPed = PlayerPedId()
|
|
FreezeEntityPosition(playerPed, freezeStatus)
|
|
|
|
if notify then
|
|
lib.notify({
|
|
title = freezeStatus and 'Frozen' or 'Unfrozen',
|
|
description = freezeStatus and 'You have been frozen by an admin' or 'You have been unfrozen by an admin',
|
|
type = freezeStatus and 'error' or 'success'
|
|
})
|
|
end
|
|
end)
|
|
|
|
-- Server-side commands (put this in a server file)
|
|
lib.addCommand('freeze', {
|
|
help = 'Freeze a player',
|
|
params = {
|
|
{
|
|
name = 'target',
|
|
type = 'playerId',
|
|
help = 'Target player server ID',
|
|
optional = true -- Makes target optional (self-target if omitted)
|
|
}
|
|
},
|
|
restricted = 'group.admin'
|
|
}, function(source, args, raw)
|
|
local target = args.target or source -- If no target specified, target self
|
|
local entity = GetPlayerPed(target)
|
|
|
|
if entity ~= 0 then
|
|
TriggerClientEvent('ox_commands:freeze', target, true, source ~= target) -- Only notify if targeting someone else
|
|
lib.notify(source, {
|
|
title = 'Success',
|
|
description = ('Player %d frozen'):format(target),
|
|
type = 'success'
|
|
})
|
|
else
|
|
lib.notify(source, {
|
|
title = 'Error',
|
|
description = 'Invalid target player',
|
|
type = 'error'
|
|
})
|
|
end
|
|
end)
|
|
|
|
lib.addCommand('thaw', {
|
|
help = 'Unfreeze a player',
|
|
params = {
|
|
{
|
|
name = 'target',
|
|
type = 'playerId',
|
|
help = 'Target player server ID',
|
|
optional = true -- Makes target optional (self-target if omitted)
|
|
}
|
|
},
|
|
restricted = 'group.admin'
|
|
}, function(source, args, raw)
|
|
local target = args.target or source -- If no target specified, target self
|
|
local entity = GetPlayerPed(target)
|
|
|
|
if entity ~= 0 then
|
|
TriggerClientEvent('ox_commands:freeze', target, false, source ~= target) -- Only notify if targeting someone else
|
|
lib.notify(source, {
|
|
title = 'Success',
|
|
description = ('Player %d unfrozen'):format(target),
|
|
type = 'success'
|
|
})
|
|
else
|
|
lib.notify(source, {
|
|
title = 'Error',
|
|
description = 'Invalid target player',
|
|
type = 'error'
|
|
})
|
|
end
|
|
end)
|
|
|