Jump to content

[HELP]Jail


Best-Killer1

Recommended Posts

when cop arrest criminal he will be jailed but when staff unjail him or time of jail finished wanted level not removed this codes

jail_c

local remainingTime = nil 
local sx, sy = guiGetScreenSize ( ) 
  
addEvent ( "onPlayerArrested", true ) 
addEventHandler ( "onPlayerArrested", root, function ( dur ) 
    if dur then 
        remainingTime = dur 
        l_tick = getTickCount ( ) 
        addEventHandler ( 'onClientRender', root, dxDrawRemainingJailTime ) 
    end 
end ) 
  
function dxDrawRemainingJailTime ( ) 
    dxDrawText ( tostring ( remainingTime ).. " seconds", 0, 0, (sx/1.1)+2, (sy/1.1)+2, tocolor ( 0, 0, 0, 255 ), 2.5, 'default-bold', 'right', 'bottom' ) 
    dxDrawText ( tostring ( remainingTime ).. " seconds", 0, 0, sx/1.1, sy/1.1, tocolor ( 255, 255, 0, 255 ), 2.5, 'default-bold', 'right', 'bottom' ) 
    if ( getTickCount ( ) - l_tick >= 1000 ) then 
        remainingTime = remainingTime - 1 
        l_tick = getTickCount ( ) 
        setElementData ( localPlayer, "SAEGPolice:JailTime", remainingTime )  
        if ( remainingTime < 0 ) then 
            triggerServerEvent ( "SAEGJail:UnjailPlayer", localPlayer, false ) 
            remainingTime = nil 
            l_tick = nil 
            removeEventHandler ( "onClientRender", root, dxDrawRemainingJailTime ) 
        end 
    end 
end 
  
addEvent ( "SAEGJail:StopJailClientTimer", true ) 
addEventHandler ( "SAEGJail:StopJailClientTimer", root, function ( ) 
    remainingTime = nil 
    l_tick = nil 
    removeEventHandler ( "onClientRender", root, dxDrawRemainingJailTime ) 
end ) 
  
  
------------------------------- 
-- Export functions  
-- Implemented in NG V1.1.3 
------------------------------- 
function isPlayerJailed ( ) 
    return (  
        getElementData ( localPlayer, 'SAEGPolice:JailTime' ) and  
        tonumber ( getElementData ( localPlayer, 'SAEGPolice:JailTime' ) )  
        ) and  
        tonumber ( getElementData ( localPlayer, 'SAEGPolice:JailTime' ) ) > 0 
end 

jail_s.lua

local WARP_LOCS = {  
    DEFAULT = { }, 
    ADMIN = { }, 
    RELEASE = { } 
} 
  
addEventHandler ( "onResourceStart", resourceRoot, function ( ) 
     
    local warp_default = get ( "*JAIL_WARP_LOCATION" ); 
    local warp_admin = get ( "*JAIL_WARP_ADMIN_LOCATION" ); 
    local warp_release = get ( "*JAIL_WARP_RELEASE_LOCATION" ); 
     
    if ( not warp_default ) then  
        outputDebugString ( "Couldn't find '*JAIL_WARP_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.DEFAULT = { 0, 0, 0 } 
    else  
        local warp_default = split ( warp_default, "," ); 
        if ( #warp_default ~= 3 ) then  
            outputDebugString ( "'*JAIL_WARP_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.DEFAULT = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_default[1] ) or not tonumber ( warp_default[2] ) or not tonumber ( warp_default[3] ) ) then  
            outputDebugString ( "Failed to convert all '*JAIL_WARP_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.DEFAULT = { 0, 0, 0 } 
        else  
            WARP_LOCS.DEFAULT = { tonumber(warp_default[1]), tonumber(warp_default[2]), tonumber(warp_default[3]) }; 
        end  
    end  
     
    if ( not warp_release ) then  
        outputDebugString ( "Couldn't find '*JAIL_WARP_RELEASE_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.RELEASE = { 0, 0, 0 } 
    else  
        local warp_release = split ( warp_release, "," ); 
        if ( #warp_release ~= 3 ) then  
            outputDebugString ( "'*JAIL_WARP_RELEASE_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.RELEASE = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_release[1] ) or not tonumber ( warp_release[2] ) or not tonumber ( warp_release[3] ) ) then  
            outputDebugString ( "Failed to convert all '*JAIL_WARP_RELEASE_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.RELEASE = { 0, 0, 0 } 
        else  
            WARP_LOCS.RELEASE = { tonumber(warp_release[1]), tonumber(warp_release[2]), tonumber(warp_release[3]) }; 
        end  
    end  
     
    if ( not warp_admin ) then  
        outputDebugString ( "Couldn't find '*JAIL_WARP_ADMIN_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.ADMIN = { 0, 0, 0 } 
    else  
        local warp_admin = split ( warp_admin, "," ); 
        if ( #warp_admin ~= 3 ) then  
            outputDebugString ( "'*JAIL_WARP_ADMIN_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.ADMIN = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_admin[1] ) or not tonumber ( warp_admin[2] ) or not tonumber ( warp_admin[3] ) ) then  
            outputDebugString ( "Failed to convert all '*JAIL_WARP_ADMIN_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.ADMIN = { 0, 0, 0 } 
        else  
            WARP_LOCS.ADMIN = { tonumber(warp_admin[1]), tonumber(warp_admin[2]), tonumber(warp_admin[3]) }; 
        end  
    end  
     
    outputDebugString ( "Default jail warp location: "..tostring ( table.concat( WARP_LOCS.DEFAULT, ", " ) ) ) 
    outputDebugString ( "Admin jail warp location: "..tostring ( table.concat( WARP_LOCS.ADMIN, ", " ) ) ) 
    outputDebugString ( "Release jail warp location: "..tostring ( table.concat( WARP_LOCS.RELEASE, ", " ) ) ) 
  
end ); 
  
local jailedPlayers = { } 
  
function isPlayerJailed ( p ) 
    if ( p and getElementType ( p ) == 'player' ) then 
        if ( jailedPlayers[p] ) then 
            return tonumber ( getElementData ( p, 'SAEGPolice:JailTime' ) ) 
        else 
            return false 
        end 
    end 
    return nil 
end 
  
function jailPlayer ( p, dur, announce, element, reason )  
    if( p and dur ) then 
        local announce = announce or false 
        jailedPlayers[p] = dur 
        setElementInterior ( p, 0 ) 
        setElementDimension ( p, 33 ) 
         
        local __x, __y, __z = unpack ( WARP_LOCS.DEFAULT ) 
        if ( element and reason ) then 
            __x, __y, __z = unpack ( WARP_LOCS.ADMIN ) 
        end  
         
        setElementPosition ( p, __x, __y, __z ); 
        --outputChatBox ( table.concat ( { __x, __y, __z }, ", " ) ); 
         
        setElementData ( p, 'SAEGPolice:JailTime', tonumber ( dur ) ) 
        setElementData ( p, "isGodmodeEnabled", true ) 
        exports['SAEGJobs']:updateJobColumn ( getAccountName ( getPlayerAccount ( p ) ), 'TimesArrested', "AddOne" ) 
        if ( announce ) then 
            local reason = reason or "Classified" 
            local msg = "" 
            if ( element and reason ) then 
                msg = getPlayerName ( p ).." has been jailed by "..getPlayerName ( element ).." for "..tostring ( dur ).." seconds ("..reason..")" 
            elseif ( element ) then 
                msg =  getPlayerName ( p ).." has been jailed by "..getPlayerName ( element ).." for "..tostring ( dur ).." seconds" 
            end 
            exports['SAEGMessages']:sendClientMessage ( msg, root, 0, 120, 255 ) 
            exports['SAEGLogs']:outputPunishLog ( p, element or "Console", tostring ( msg ) ) 
        end 
        triggerEvent ( "onPlayerArrested", p, dur, element, reason ) 
        triggerClientEvent ( p, "onPlayerArrested", p, dur, element, reason ) 
        return true 
    end 
    return false 
end 
  
function unjailPlayer ( p, triggerClient ) 
    local p = p or source 
    setElementDimension ( p, 0 ) 
    setElementInterior ( p, 0 ) 
    setElementPosition ( p, 1543.32, -1675.6, 13.56 ) 
    exports['SAEGMessages']:sendClientMessage ( "You've been released from jail! Behave next time.", p, 0, 255, 0 ) 
    jailedPlayers[p] = nil 
    setElementData ( p, "SAEGPolice:JailTime", nil ) 
    setElementData ( p, "isGodmodeEnabled", nil ) 
    exports['SAEGLogs']:outputActionLog ( getPlayerName ( p ).." has been unjailed" ) 
    if ( triggerClient ) then 
        triggerClientEvent ( p, 'SAEGJail:StopJailClientTimer', p )  
    end 
end 
addEvent ( "SAEGJail:UnjailPlayer", true ) 
addEventHandler ( "SAEGJail:UnjailPlayer", root, unjailPlayer ) 
  
function getJailedPlayers ( ) 
    return jailedPlayers 
end 
  
addCommandHandler ( "jail", function ( p, _, p2, time, ... ) 
    if ( exports['SAEGAdministration']:isPlayerStaff ( p ) ) then 
        if ( p2 and time ) then 
            local toJ = getPlayerFromName ( p2 ) or exports['SAEGPlayerFunctions']:getPlayerFromNamePart ( p2 ) 
            if toJ then 
                jailPlayer ( toJ, time, true, p, table.concat ( { ... }, " " ) ) 
            else 
                exports['SAEGMessages']:sendClientMessage ( "No player found with \""..p2.."\" in their name.", p, 255, 0, 0 ) 
            end 
        else 
            exports['SAEGMessages']:sendClientMessage ( "Syntax: /jail [player name/part of name] [seconds] [reason]", p, 255, 255, 0 ) 
        end 
    end 
end ) 
  
addCommandHandler ( "unjail", function ( p, _, p2 )  
    if ( not exports['SAEGAdministration']:isPlayerStaff ( p ) ) then 
        return false 
    end if ( not p2 ) then 
        return exports['SAEGMessages']:sendClientMessage ( "Syntax: /unjail [player]", p, 255, 255, 0 ) 
    end if ( not getPlayerFromName ( p2 ) ) then 
        p2 = exports['SAEGPlayerFunctions']:getPlayerFromNamePart ( p2 ) 
        if not p2 then 
            return exports['SAEGMessages']:sendClientMessage ( "That player doesn't exist on the server.", p, 255, 0, 0 ) 
        end 
    end 
     
    if ( jailedPlayers[p2] ) then 
        exports['SAEGMessages']:sendClientMessage ( "You've unjailed "..getPlayerName ( p2 ).."!", p, 0, 255, 0 ) 
        exports['SAEGMessages']:sendClientMessage ( "You've been unjailed by "..getPlayerName ( p ).."!", p2, 0, 255, 0 ) 
        unjailPlayer ( p2, true ) 
    else 
        exports['SAEGMessages']:sendClientMessage ( "That player isn't jailed.", p, 255, 0, 0 ) 
    end 
     
end ) 
  
  
  
  
  
  
  
addEventHandler ( "onResourceStop", resourceRoot, function ( ) 
    exports['NGSQL']:saveAllData ( false ) 
end )  addEventHandler ( "onResourceStart", resourceRoot, function ( ) 
    setTimer ( function ( ) 
        local q = exports['NGSQL']:db_query ( "SELECT * FROM accountdata" ) 
        local data = { } 
        for i, v in ipairs ( q ) do 
            data[v['Username']] = v['JailTime'] 
        end 
         
         
        for i, v in pairs ( data ) do  
            local p = exports['SAEGPlayerFunctions']:getPlayerFromAcocunt ( i ) 
            if p then 
                local t = tonumber ( getElementData ( p, 'SAEGPolice:JailTime' ) ) or i 
                jailPlayer ( p, tonumber ( t ), false ) 
            end 
        end 
    end, 500, 1 ) 
end ) 
addEvent ( "onPlayerArrested", true ) 
  

Link to comment
Does this RPG gamemode have wanted system if yes post part of it

Wanted_s :

function giveWantedPoints ( p, amount ) 
    if ( p and isElement ( p ) and tonumber ( amount ) ) then 
        local amount = tonumber ( amount ) 
        local wl = tonumber ( getElementData ( p, "WantedPoints" ) ) 
        setElementData ( p, "WantedPoints", tonumber ( wl ) + amount )  
        return true 
    end 
    return false 
end 
  
addEventHandler ( "onPlayerDamage", root, function ( p, weap, loss ) 
    if ( isElement ( p ) and p ~= source ) then 
  
        local x, y, z = getElementPosition ( source ) 
        --if ( getZoneName ( x, y, z, true ) == "Las Venturas" ) then return end 
  
        if ( getElementData ( source, "NGEvents:IsPlayerInEvent" ) or getElementData ( p, "NGEvents:IsPlayerInEvent" ) ) then 
            return 
        end 
         
        if ( getElementType ( p ) == 'vehicle' ) then 
            if ( getVehicleOccupant ( p ) ) then 
                p = getVehicleOccupant ( p ) 
            else 
                return  
            end 
        end 
  
        local t = getPlayerTeam ( p ) 
        if t then 
            local t = tostring ( getTeamName ( t ) ) 
            if weap then 
                if ( t == "Emergency" and getElementHealth ( source ) < 100 and weap == 14 ) then 
                    if ( getElementData ( p, "Job" ) == "Medic" ) then 
                        return 
                    end 
                elseif ( exports['NGPlayerFunctions']:isTeamLaw ( t ) and ( weap == 3 or weap == 23 ) and getPlayerWantedLevel ( source ) > 0 ) then 
                    return 
                end 
            end 
        end 
        giveWantedPoints ( p, math.floor ( loss * 3 ) ) 
    end 
end ) 
  
local ticks = 0 
local tickChange = 50 
setTimer ( function ( ) 
    ticks = ticks + 1 
    for i, v in ipairs ( getElementsByType ( 'player' ) ) do  
        if ( not getElementData ( v, "NGJobs:ArrestingOfficer" ) and not getElementData ( v, "isPlayerJailed" ) ) then 
            local wl = tonumber ( getElementData ( v, "WantedPoints" ) ) or 0 
            if ( wl >= 600 ) then 
                setPlayerWantedLevel ( v, 6 ) 
            elseif ( wl >= 450 ) then 
                setPlayerWantedLevel ( v, 5 ) 
            elseif ( wl >= 320 ) then 
                setPlayerWantedLevel ( v, 4 ) 
            elseif ( wl >= 210 ) then 
                setPlayerWantedLevel ( v, 3 ) 
            elseif ( wl >= 100 ) then 
                setPlayerWantedLevel ( v, 2 ) 
            elseif ( wl > 0 ) then 
                setPlayerWantedLevel ( v, 1 ) 
            elseif ( wl <= 0 ) then  
                setPlayerWantedLevel ( v, 0 ) 
            end 
            if ( ticks >= tickChange ) then 
                setElementData ( v, "WantedPoints", wl - 1 ) 
                if ( wl - 1 < 0 ) then 
                    setElementData ( v, "WantedPoints", 0 ) 
                end 
            end 
        end 
         
        if ( getPlayerWantedLevel ( v ) > 0 ) then 
            setPlayerNametagText ( v, tostring ( getPlayerName ( v ) ).."["..tostring ( getPlayerWantedLevel ( v ) ).."]" ) 
        else 
            setPlayerNametagText ( v, tostring ( getPlayerName ( v ) ) ) 
        end 
         
        local job = getElementData ( v, "Job" ) 
        if job  then 
            local max_ = max_wanted[getJobType(job)] or 7 
            local w_l = getPlayerWantedLevel ( v ) 
            if ( w_l ~= 0 and w_l > max_ ) then 
                exports['NGMessages']:sendClientMessage ( "You've been resigned for having a high wanted level.", v, 255, 255, 0 ) 
                resignPlayer ( v ) 
            end 
        end 
    end 
end, 3000, 0 ) 

wanted_c :

function giveWantedPoints ( amount ) 
    if (tonumber ( amount ) ) then 
        local amount = tonumber ( amount ) 
        local wl = tonumber ( getElementData ( localPlayer, "WantedPoints" ) ) 
        return setElementData ( localPlayer, "WantedPoints", wl + amount )   
    end 
    return false 
end 

Link to comment

Try that and tell me

replace your jail_s.lua with this code

local WARP_LOCS = { 
    DEFAULT = { }, 
    ADMIN = { }, 
    RELEASE = { } 
} 
  
addEventHandler ( "onResourceStart", resourceRoot, function ( ) 
    
    local warp_default = get ( "*JAIL_WARP_LOCATION" ); 
    local warp_admin = get ( "*JAIL_WARP_ADMIN_LOCATION" ); 
    local warp_release = get ( "*JAIL_WARP_RELEASE_LOCATION" ); 
    
    if ( not warp_default ) then 
        outputDebugString ( "Couldn't find '*JAIL_WARP_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.DEFAULT = { 0, 0, 0 } 
    else 
        local warp_default = split ( warp_default, "," ); 
        if ( #warp_default ~= 3 ) then 
            outputDebugString ( "'*JAIL_WARP_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.DEFAULT = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_default[1] ) or not tonumber ( warp_default[2] ) or not tonumber ( warp_default[3] ) ) then 
            outputDebugString ( "Failed to convert all '*JAIL_WARP_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.DEFAULT = { 0, 0, 0 } 
        else 
            WARP_LOCS.DEFAULT = { tonumber(warp_default[1]), tonumber(warp_default[2]), tonumber(warp_default[3]) }; 
        end 
    end 
    
    if ( not warp_release ) then 
        outputDebugString ( "Couldn't find '*JAIL_WARP_RELEASE_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.RELEASE = { 0, 0, 0 } 
    else 
        local warp_release = split ( warp_release, "," ); 
        if ( #warp_release ~= 3 ) then 
            outputDebugString ( "'*JAIL_WARP_RELEASE_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.RELEASE = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_release[1] ) or not tonumber ( warp_release[2] ) or not tonumber ( warp_release[3] ) ) then 
            outputDebugString ( "Failed to convert all '*JAIL_WARP_RELEASE_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.RELEASE = { 0, 0, 0 } 
        else 
            WARP_LOCS.RELEASE = { tonumber(warp_release[1]), tonumber(warp_release[2]), tonumber(warp_release[3]) }; 
        end 
    end 
    
    if ( not warp_admin ) then 
        outputDebugString ( "Couldn't find '*JAIL_WARP_ADMIN_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.ADMIN = { 0, 0, 0 } 
    else 
        local warp_admin = split ( warp_admin, "," ); 
        if ( #warp_admin ~= 3 ) then 
            outputDebugString ( "'*JAIL_WARP_ADMIN_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.ADMIN = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_admin[1] ) or not tonumber ( warp_admin[2] ) or not tonumber ( warp_admin[3] ) ) then 
            outputDebugString ( "Failed to convert all '*JAIL_WARP_ADMIN_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.ADMIN = { 0, 0, 0 } 
        else 
            WARP_LOCS.ADMIN = { tonumber(warp_admin[1]), tonumber(warp_admin[2]), tonumber(warp_admin[3]) }; 
        end 
    end 
    
    outputDebugString ( "Default jail warp location: "..tostring ( table.concat( WARP_LOCS.DEFAULT, ", " ) ) ) 
    outputDebugString ( "Admin jail warp location: "..tostring ( table.concat( WARP_LOCS.ADMIN, ", " ) ) ) 
    outputDebugString ( "Release jail warp location: "..tostring ( table.concat( WARP_LOCS.RELEASE, ", " ) ) ) 
  
end ); 
  
local jailedPlayers = { } 
  
function isPlayerJailed ( p ) 
    if ( p and getElementType ( p ) == 'player' ) then 
        if ( jailedPlayers[p] ) then 
            return tonumber ( getElementData ( p, 'SAEGPolice:JailTime' ) ) 
        else 
            return false 
        end 
    end 
    return nil 
end 
  
function jailPlayer ( p, dur, announce, element, reason ) 
    if( p and dur ) then 
        local announce = announce or false 
        jailedPlayers[p] = dur 
        setElementInterior ( p, 0 ) 
        setElementDimension ( p, 33 ) 
        
        local __x, __y, __z = unpack ( WARP_LOCS.DEFAULT ) 
        if ( element and reason ) then 
            __x, __y, __z = unpack ( WARP_LOCS.ADMIN ) 
        end 
        
        setElementPosition ( p, __x, __y, __z ); 
        --outputChatBox ( table.concat ( { __x, __y, __z }, ", " ) ); 
        
        setElementData ( p, 'SAEGPolice:JailTime', tonumber ( dur ) ) 
        setElementData ( p, "isGodmodeEnabled", true ) 
        exports['SAEGJobs']:updateJobColumn ( getAccountName ( getPlayerAccount ( p ) ), 'TimesArrested', "AddOne" ) 
        if ( announce ) then 
            local reason = reason or "Classified" 
            local msg = "" 
            if ( element and reason ) then 
                msg = getPlayerName ( p ).." has been jailed by "..getPlayerName ( element ).." for "..tostring ( dur ).." seconds ("..reason..")" 
            elseif ( element ) then 
                msg =  getPlayerName ( p ).." has been jailed by "..getPlayerName ( element ).." for "..tostring ( dur ).." seconds" 
            end 
            exports['SAEGMessages']:sendClientMessage ( msg, root, 0, 120, 255 ) 
            exports['SAEGLogs']:outputPunishLog ( p, element or "Console", tostring ( msg ) ) 
        end 
        triggerEvent ( "onPlayerArrested", p, dur, element, reason ) 
        triggerClientEvent ( p, "onPlayerArrested", p, dur, element, reason ) 
        return true 
    end 
    return false 
end 
  
function unjailPlayer ( p, triggerClient ) 
    local p = p or source 
    setElementDimension ( p, 0 ) 
    setElementInterior ( p, 0 ) 
    setElementPosition ( p, 1543.32, -1675.6, 13.56 ) 
    exports['SAEGMessages']:sendClientMessage ( "You've been released from jail! Behave next time.", p, 0, 255, 0 ) 
    jailedPlayers[p] = nil 
    setElementData ( p, "SAEGPolice:JailTime", nil ) 
    setElementData ( p, "isGodmodeEnabled", nil ) 
    exports['SAEGLogs']:outputActionLog ( getPlayerName ( p ).." has been unjailed" ) 
    if ( triggerClient ) then 
        triggerClientEvent ( p, 'SAEGJail:StopJailClientTimer', p ) 
    end 
end 
addEvent ( "SAEGJail:UnjailPlayer", true ) 
addEventHandler ( "SAEGJail:UnjailPlayer", root, unjailPlayer ) 
  
function getJailedPlayers ( ) 
    return jailedPlayers 
end 
  
addCommandHandler ( "jail", function ( p, _, p2, time, ... ) 
    if ( exports['SAEGAdministration']:isPlayerStaff ( p ) ) then 
        if ( p2 and time ) then 
            local toJ = getPlayerFromName ( p2 ) or exports['SAEGPlayerFunctions']:getPlayerFromNamePart ( p2 ) 
            if toJ then 
                jailPlayer ( toJ, time, true, p, table.concat ( { ... }, " " ) ) 
            else 
                exports['SAEGMessages']:sendClientMessage ( "No player found with \""..p2.."\" in their name.", p, 255, 0, 0 ) 
            end 
        else 
            exports['SAEGMessages']:sendClientMessage ( "Syntax: /jail [player name/part of name] [seconds] [reason]", p, 255, 255, 0 ) 
        end 
    end 
end ) 
  
addCommandHandler ( "unjail", function ( p, _, p2 ) 
    if ( not exports['SAEGAdministration']:isPlayerStaff ( p ) ) then 
        return false 
    end if ( not p2 ) then 
        return exports['SAEGMessages']:sendClientMessage ( "Syntax: /unjail [player]", p, 255, 255, 0 ) 
    end if ( not getPlayerFromName ( p2 ) ) then 
        p2 = exports['SAEGPlayerFunctions']:getPlayerFromNamePart ( p2 ) 
        if not p2 then 
            return exports['SAEGMessages']:sendClientMessage ( "That player doesn't exist on the server.", p, 255, 0, 0 ) 
        end 
    end 
    
    if ( jailedPlayers[p2] ) then 
        exports['SAEGMessages']:sendClientMessage ( "You've unjailed "..getPlayerName ( p2 ).."!", p, 0, 255, 0 ) 
        exports['SAEGMessages']:sendClientMessage ( "You've been unjailed by "..getPlayerName ( p ).."!", p2, 0, 255, 0 ) 
        unjailPlayer ( p2, true ) 
        setElementData ( p, "WantedPoints", 0 ) 
    else 
        exports['SAEGMessages']:sendClientMessage ( "That player isn't jailed.", p, 255, 0, 0 ) 
    end 
    
end ) 
   
addEventHandler ( "onResourceStop", resourceRoot, function ( ) 
    exports['NGSQL']:saveAllData ( false ) 
end )  addEventHandler ( "onResourceStart", resourceRoot, function ( ) 
    setTimer ( function ( ) 
        local q = exports['NGSQL']:db_query ( "SELECT * FROM accountdata" ) 
        local data = { } 
        for i, v in ipairs ( q ) do 
            data[v['Username']] = v['JailTime'] 
        end 
        
        
        for i, v in pairs ( data ) do 
            local p = exports['SAEGPlayerFunctions']( i ) 
            if p then 
                local t = tonumber ( getElementData ( p, 'SAEGPolice:JailTime' ) ) or i 
                jailPlayer ( p, tonumber ( t ), false ) 
            end 
        end 
    end, 500, 1 ) 
end ) 
addEvent ( "onPlayerArrested", true ) 

Link to comment
Try that and tell me

replace your jail_s.lua with this code

local WARP_LOCS = { 
    DEFAULT = { }, 
    ADMIN = { }, 
    RELEASE = { } 
} 
  
addEventHandler ( "onResourceStart", resourceRoot, function ( ) 
    
    local warp_default = get ( "*JAIL_WARP_LOCATION" ); 
    local warp_admin = get ( "*JAIL_WARP_ADMIN_LOCATION" ); 
    local warp_release = get ( "*JAIL_WARP_RELEASE_LOCATION" ); 
    
    if ( not warp_default ) then 
        outputDebugString ( "Couldn't find '*JAIL_WARP_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.DEFAULT = { 0, 0, 0 } 
    else 
        local warp_default = split ( warp_default, "," ); 
        if ( #warp_default ~= 3 ) then 
            outputDebugString ( "'*JAIL_WARP_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.DEFAULT = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_default[1] ) or not tonumber ( warp_default[2] ) or not tonumber ( warp_default[3] ) ) then 
            outputDebugString ( "Failed to convert all '*JAIL_WARP_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.DEFAULT = { 0, 0, 0 } 
        else 
            WARP_LOCS.DEFAULT = { tonumber(warp_default[1]), tonumber(warp_default[2]), tonumber(warp_default[3]) }; 
        end 
    end 
    
    if ( not warp_release ) then 
        outputDebugString ( "Couldn't find '*JAIL_WARP_RELEASE_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.RELEASE = { 0, 0, 0 } 
    else 
        local warp_release = split ( warp_release, "," ); 
        if ( #warp_release ~= 3 ) then 
            outputDebugString ( "'*JAIL_WARP_RELEASE_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.RELEASE = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_release[1] ) or not tonumber ( warp_release[2] ) or not tonumber ( warp_release[3] ) ) then 
            outputDebugString ( "Failed to convert all '*JAIL_WARP_RELEASE_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.RELEASE = { 0, 0, 0 } 
        else 
            WARP_LOCS.RELEASE = { tonumber(warp_release[1]), tonumber(warp_release[2]), tonumber(warp_release[3]) }; 
        end 
    end 
    
    if ( not warp_admin ) then 
        outputDebugString ( "Couldn't find '*JAIL_WARP_ADMIN_LOCATION' setting in SAEGPolice" ); 
        WARP_LOCS.ADMIN = { 0, 0, 0 } 
    else 
        local warp_admin = split ( warp_admin, "," ); 
        if ( #warp_admin ~= 3 ) then 
            outputDebugString ( "'*JAIL_WARP_ADMIN_LOCATION' setting value should be x,y,z (no spaces, please confirm format is correct)" ); 
            WARP_LOCS.ADMIN = { 0, 0, 0 } 
        elseif ( not tonumber ( warp_admin[1] ) or not tonumber ( warp_admin[2] ) or not tonumber ( warp_admin[3] ) ) then 
            outputDebugString ( "Failed to convert all '*JAIL_WARP_ADMIN_LOCATION' coordinates to floats. Please confirm they are numbers" ); 
            WARP_LOCS.ADMIN = { 0, 0, 0 } 
        else 
            WARP_LOCS.ADMIN = { tonumber(warp_admin[1]), tonumber(warp_admin[2]), tonumber(warp_admin[3]) }; 
        end 
    end 
    
    outputDebugString ( "Default jail warp location: "..tostring ( table.concat( WARP_LOCS.DEFAULT, ", " ) ) ) 
    outputDebugString ( "Admin jail warp location: "..tostring ( table.concat( WARP_LOCS.ADMIN, ", " ) ) ) 
    outputDebugString ( "Release jail warp location: "..tostring ( table.concat( WARP_LOCS.RELEASE, ", " ) ) ) 
  
end ); 
  
local jailedPlayers = { } 
  
function isPlayerJailed ( p ) 
    if ( p and getElementType ( p ) == 'player' ) then 
        if ( jailedPlayers[p] ) then 
            return tonumber ( getElementData ( p, 'SAEGPolice:JailTime' ) ) 
        else 
            return false 
        end 
    end 
    return nil 
end 
  
function jailPlayer ( p, dur, announce, element, reason ) 
    if( p and dur ) then 
        local announce = announce or false 
        jailedPlayers[p] = dur 
        setElementInterior ( p, 0 ) 
        setElementDimension ( p, 33 ) 
        
        local __x, __y, __z = unpack ( WARP_LOCS.DEFAULT ) 
        if ( element and reason ) then 
            __x, __y, __z = unpack ( WARP_LOCS.ADMIN ) 
        end 
        
        setElementPosition ( p, __x, __y, __z ); 
        --outputChatBox ( table.concat ( { __x, __y, __z }, ", " ) ); 
        
        setElementData ( p, 'SAEGPolice:JailTime', tonumber ( dur ) ) 
        setElementData ( p, "isGodmodeEnabled", true ) 
        exports['SAEGJobs']:updateJobColumn ( getAccountName ( getPlayerAccount ( p ) ), 'TimesArrested', "AddOne" ) 
        if ( announce ) then 
            local reason = reason or "Classified" 
            local msg = "" 
            if ( element and reason ) then 
                msg = getPlayerName ( p ).." has been jailed by "..getPlayerName ( element ).." for "..tostring ( dur ).." seconds ("..reason..")" 
            elseif ( element ) then 
                msg =  getPlayerName ( p ).." has been jailed by "..getPlayerName ( element ).." for "..tostring ( dur ).." seconds" 
            end 
            exports['SAEGMessages']:sendClientMessage ( msg, root, 0, 120, 255 ) 
            exports['SAEGLogs']:outputPunishLog ( p, element or "Console", tostring ( msg ) ) 
        end 
        triggerEvent ( "onPlayerArrested", p, dur, element, reason ) 
        triggerClientEvent ( p, "onPlayerArrested", p, dur, element, reason ) 
        return true 
    end 
    return false 
end 
  
function unjailPlayer ( p, triggerClient ) 
    local p = p or source 
    setElementDimension ( p, 0 ) 
    setElementInterior ( p, 0 ) 
    setElementPosition ( p, 1543.32, -1675.6, 13.56 ) 
    exports['SAEGMessages']:sendClientMessage ( "You've been released from jail! Behave next time.", p, 0, 255, 0 ) 
    jailedPlayers[p] = nil 
    setElementData ( p, "SAEGPolice:JailTime", nil ) 
    setElementData ( p, "isGodmodeEnabled", nil ) 
    exports['SAEGLogs']:outputActionLog ( getPlayerName ( p ).." has been unjailed" ) 
    if ( triggerClient ) then 
        triggerClientEvent ( p, 'SAEGJail:StopJailClientTimer', p ) 
    end 
end 
addEvent ( "SAEGJail:UnjailPlayer", true ) 
addEventHandler ( "SAEGJail:UnjailPlayer", root, unjailPlayer ) 
  
function getJailedPlayers ( ) 
    return jailedPlayers 
end 
  
addCommandHandler ( "jail", function ( p, _, p2, time, ... ) 
    if ( exports['SAEGAdministration']:isPlayerStaff ( p ) ) then 
        if ( p2 and time ) then 
            local toJ = getPlayerFromName ( p2 ) or exports['SAEGPlayerFunctions']:getPlayerFromNamePart ( p2 ) 
            if toJ then 
                jailPlayer ( toJ, time, true, p, table.concat ( { ... }, " " ) ) 
            else 
                exports['SAEGMessages']:sendClientMessage ( "No player found with \""..p2.."\" in their name.", p, 255, 0, 0 ) 
            end 
        else 
            exports['SAEGMessages']:sendClientMessage ( "Syntax: /jail [player name/part of name] [seconds] [reason]", p, 255, 255, 0 ) 
        end 
    end 
end ) 
  
addCommandHandler ( "unjail", function ( p, _, p2 ) 
    if ( not exports['SAEGAdministration']:isPlayerStaff ( p ) ) then 
        return false 
    end if ( not p2 ) then 
        return exports['SAEGMessages']:sendClientMessage ( "Syntax: /unjail [player]", p, 255, 255, 0 ) 
    end if ( not getPlayerFromName ( p2 ) ) then 
        p2 = exports['SAEGPlayerFunctions']:getPlayerFromNamePart ( p2 ) 
        if not p2 then 
            return exports['SAEGMessages']:sendClientMessage ( "That player doesn't exist on the server.", p, 255, 0, 0 ) 
        end 
    end 
    
    if ( jailedPlayers[p2] ) then 
        exports['SAEGMessages']:sendClientMessage ( "You've unjailed "..getPlayerName ( p2 ).."!", p, 0, 255, 0 ) 
        exports['SAEGMessages']:sendClientMessage ( "You've been unjailed by "..getPlayerName ( p ).."!", p2, 0, 255, 0 ) 
        unjailPlayer ( p2, true ) 
        setElementData ( p, "WantedPoints", 0 ) 
    else 
        exports['SAEGMessages']:sendClientMessage ( "That player isn't jailed.", p, 255, 0, 0 ) 
    end 
    
end ) 
   
addEventHandler ( "onResourceStop", resourceRoot, function ( ) 
    exports['NGSQL']:saveAllData ( false ) 
end )  addEventHandler ( "onResourceStart", resourceRoot, function ( ) 
    setTimer ( function ( ) 
        local q = exports['NGSQL']:db_query ( "SELECT * FROM accountdata" ) 
        local data = { } 
        for i, v in ipairs ( q ) do 
            data[v['Username']] = v['JailTime'] 
        end 
        
        
        for i, v in pairs ( data ) do 
            local p = exports['SAEGPlayerFunctions']( i ) 
            if p then 
                local t = tonumber ( getElementData ( p, 'SAEGPolice:JailTime' ) ) or i 
                jailPlayer ( p, tonumber ( t ), false ) 
            end 
        end 
    end, 500, 1 ) 
end ) 
addEvent ( "onPlayerArrested", true ) 

Error : arrest_server.lua:243: call : failed to call 'SAEGPolice:JailPlayer

this code :

arrest_server.lua

arresties = { } 
tased = { }
 
addEventHandler ( "onPlayerDamage", root, function ( cop, weapon, _, loss )
    -- arrest system
    if ( isElement ( cop ) and weapon and cop ~= source  ) then
       
        if ( getElementData ( cop, "SAEGEvents:IsPlayerInEvent" ) or getElementData ( source, "SAEGEvents:IsPlayerInEvent" ) ) then
            return
        end
   
        if ( cop == source ) then return end
        if ( getElementType ( cop ) == 'vehicle' ) then
            cop = getVehicleOccupant ( cop )
        end
        if ( not isElement ( cop ) or getElementType ( cop ) ~= 'player' ) then return end
        if ( not getPlayerTeam ( cop ) ) then
            return
        end
 
        if ( exports['SAEGPlayerFunctions']:isTeamLaw ( getTeamName ( getPlayerTeam ( cop ) ) ) ) then
            if ( getElementData ( source, "isSpawnProtectionEnabled" ) == true ) then
                return exports['SAEGMessages']:sendClientMessage ( "This player has spawn-protection enabled.", cop, 255, 0, 0 )
            end
           
            if ( getPlayerTeam ( source ) and getTeamName ( getPlayerTeam ( source ) ) == "Staff" ) then
                return exports['SAEGMessages']:sendClientMessage ( "You cannot arrest/tase on-duty staff.", cop, 255, 0, 0 )
            end
           
            if ( arresties[source] ) then
                return exports['SAEGMessages']:sendClientMessage ( "This player is already arrested.", cop, 255, 0, 0 )
            end
            if ( getPlayerWantedLevel ( source ) >= 1 ) then
                if ( weapon == 3 ) then
                    -- Arrest
                    arrestPlayer ( source, cop )
                    exports['SAEGMessages']:sendClientMessage ( "You have arrested "..getPlayerName ( source )..", take him to a police station.", cop, 0, 255, 0 )
                    exports['SAEGMessages']:sendClientMessage ( getPlayerName ( cop ).." arrested you!", source, 255, 255, 0 )
                    setElementHealth ( source, getElementHealth ( source ) + loss )
                    setElementData ( source, "SAEGJobs:ArrestingOfficer", cop )
                   
                    addEventHandler ( "onPlayerQuit", source, onPlayerAttmemptArrestAvoid );
                elseif ( weapon == 23 ) then
                    -- Taze Player
                    if ( tased [ source ] ) then
                        return exports.SAEGMessages:sendClientMessage ( "This player is already tased", cop, 255, 255, 255 )
                    end
                   
                    local a = cop
                    local t = getPlayerTeam ( a )
                    if ( not t ) then return end
                    if ( getPlayerWantedLevel ( source ) == 0 ) then return end
                    if ( exports.SAEGPlayerFunctions:isTeamLaw ( getTeamName ( t ) ) and not getElementData ( source, "SAEGJobs:ArrestingOfficer" ) ) then
                        -- now we know:
                        -- source   -> wanted, not arrested
                        -- w        -> teaser
                        toggleAllControls ( source, false )
                        if ( isPedInVehicle ( source ) ) then
                            removePedFromVehicle ( source )
                        end
                        setPedAnimation(source, "CRACK", "crckdeth2", 4000, false, true, false)
                       
                        exports.SAEGMessages:sendClientMessage ( "You have tased ".. getPlayerName ( source ), a, 0, 255, 0 )
                        exports.SAEGMessages:sendClientMessage ( "You have been tased by "..getPlayerName ( a ), source, 255, 0, 0 )
                        tased [ source ] = true
                        setTimer ( function ( p, c )
                            if ( isElement ( p ) ) then
                                setPedAnimation ( p )
                                toggleAllControls ( p, true )
                                exports.SAEGMessages:sendClientMessage ( "You are no longer tased", p, 0, 255, 0 )
                                if ( isElement ( c ) ) then
                                    exports.SAEGMessages:sendClientMessage ( getPlayerName ( p ).." is now un-tased!", c, 255, 255, 0 )
                                end
                            end
                            tased [ p ] = false
                        end, 4000, 1, source, a )
                    end
                else
                    if ( isPedInVehicle ( cop ) ) then return end
                    exports['SAEGMessages']:sendClientMessage ( "Use a nightstick to arrest and a silenced pistol to tase", cop, 255, 255, 255 )
                end
            else
                local f = math.floor ( loss * 1.2)
                setElementHealth ( cop, getElementHealth ( cop ) - f )
                exports['SAEGMessages']:sendClientMessage ( "You've lost "..tostring ( f ).."% health for hurting an innocent player.", cop, 255, 255, 0 )
            end
        end 
    end
end )
 
function onPlayerAttmemptArrestAvoid ( )
    --outputChatBox ( getPlayerName ( source )..  " attempted to arrest avoid" )
    triggerEvent ( "saegpolice:onJailCopCrimals", getElementData ( source, "SAEGJobs:ArrestingOfficer" ) )
end
 
addCommandHandler ( "release", function ( p, _, p2 )
    if ( getPlayerTeam ( p ) and exports['SAEGPlayerFunctions']:isTeamLaw ( getTeamName ( getPlayerTeam ( p ) ) ) ) then
        if ( p2 ) then
            local c = getPlayerFromName ( p2 ) or exports['SAEGPlayerFunctions']:getPlayerFromNamePart ( p2 )
            if c then
                if ( arresties[c] ) then
                    if ( getElementData ( c, "SAEGJobs:ArrestingOfficer") == p ) then
                        exports['SAEGMessages']:sendClientMessage ( "You have released "..getPlayerName ( c ), p, 0, 255, 0)
                        exports['SAEGMessages']:sendClientMessage ( getPlayerName ( p ).." released you.", c, 0, 255, 0 )
                        releasePlayer ( c )
                        local arresties2 = { }
                        for i, v in pairs ( arresties ) do
                            if ( getElementData ( v, "SAEGJobs:ArrestingOfficer" ) == p ) then
                                table.insert ( arresties2, v )
                            end
                        end
                        triggerClientEvent ( root, "onPlayerEscapeCop", root, c, p, arresties2 )
                    else exports['SAEGMessages']:sendClientMessage ( "You're not "..getPlayerName ( c ).."'s arresting officer, you cannot release him.", p, 255, 255, 0 ) end
                else exports['SAEGMessages']:sendClientMessage ( getPlayerName ( c ).." isn't being arrested", p, 255, 255, 0 ) end
            else exports['SAEGMessages']:sendClientMessage ( p2.." doesn't exist. ", p, 255, 255, 0 ) end
        else exports['SAEGMessages']:sendClientMessage ( "Syntax error. /release [player]", p, 255, 255, 0 ) end
    else exports['SAEGMessages']:sendClientMessage ( "You're not a law officer.", p, 255, 255, 0 ) end
end )
 
function arrestPlayer ( crim, cop )
    showCursor ( crim, true )
    arresties[crim] = true
    toggleControl ( crim, 'right', false )
    toggleControl ( crim, 'left', false )
    toggleControl ( crim, 'forwards', false )
    toggleControl ( crim, 'backwards', false )
    toggleControl ( crim, 'jump', false )
    toggleControl ( crim, 'sprint', false )
    toggleControl ( crim, 'walk', false )
    toggleControl ( crim, 'fire', false )
    onTimer ( crim, cop )
    triggerClientEvent ( root, "onPlayerStartArrested", root, crim, cop )
end
 
function onTimer ( crim, cop )
    if ( isElement ( crim ) and isElement ( cop ) ) then
        if ( not getPlayerTeam ( cop ) or not exports['SAEGPlayerFunctions']:isTeamLaw ( getTeamName ( getPlayerTeam ( cop ) ) ) ) then return releasePlayer ( crim ) end
        if ( not arresties[crim] ) then return  end
        local cx, cy, cz = getElementPosition ( crim )
        local px, py, pz = getElementPosition ( cop )
        local rot = findRotation ( cx, cy, px, py )
        setPedRotation ( crim, rot )
        setCameraTarget ( crim, crim )
        local dist = getDistanceBetweenPoints3D ( cx, cy, cz, px, py, pz )
        if ( isPedInVehicle ( cop ) ) then
            if ( not isPedInVehicle ( crim ) ) then
                warpPedIntoVehicle ( crim, getPedOccupiedVehicle ( cop ), 1 )
            end
        else
            if ( isPedInVehicle ( crim ) ) then
                removePedFromVehicle ( crim )
            end
        end
        if ( not isPedInVehicle ( crim ) ) then
            if ( dist >= 20 ) then
                setElementPosition ( crim, px +1, py+1, pz )
            elseif ( dist >= 15 ) then
                setControlState ( crim, 'walk', false )
                setControlState ( crim, 'jump', true )
                setControlState ( crim, 'sprint', true )
                setControlState ( crim, "forwards", true )
            elseif ( dist >= 10 ) then
                setControlState ( crim, 'walk', false )
                setControlState ( crim, 'jump', false )
                setControlState ( crim, 'sprint', true )
                setControlState ( crim, "forwards", true )
            elseif ( dist >= 7 ) then
                setControlState ( crim, 'walk', false )
                setControlState ( crim, 'jump', true )
                setControlState ( crim, 'sprint', false )
                setControlState ( crim, "forwards", true )
            elseif ( dist >= 2 ) then
                setControlState ( crim, 'walk', true )
                setControlState ( crim, 'jump', false )
                setControlState ( crim, 'sprint', false )
                setControlState ( crim, "forwards", true )
            else
                setControlState ( crim, 'walk', false )
                setControlState ( crim, 'jump', false )
                setControlState ( crim, 'sprint', false )
                setControlState ( crim, "forwards", false )
            end
        end
       
        crim.interior = cop.interior;
        crim.dimension = cop.dimension
       
        setTimer ( onTimer, 500, 1, crim, cop )
    else
        arresties[crim] = false
        if ( not isElement ( cop ) and isElement ( crim ) ) then
            releasePlayer ( crim )
            exports['SAEGMessages']:sendClientMessage ( "Your arresting officer has quit, therefore, you've been released.", crim, 0, 255, 0 )
        end
    end
end
 
function findRotation(x1,y1,x2,y2)
    local t = -math.deg(math.atan2(x2-x1,y2-y1))
    if t < 0 then t = t + 360 end;
    return t;
end
 
function releasePlayer ( p )
    toggleAllControls ( p, true )
    setControlState ( p, 'walk', false )
    setControlState ( p, 'jump', false )
    setControlState ( p, 'sprint', false )
    setControlState ( p, "forwards", true )
    setElementData ( p, "SAEGJobs:ArrestingOfficer", nil )
    arresties[p] = nil
    showCursor ( p, false )
    removeEventHandler ( "onPlayerQuit", p, onPlayerAttmemptArrestAvoid );
end
 
 
function onJailCopCriminals( )
    for v, _ in pairs ( arresties ) do
        if ( getElementData ( v, "SAEGJobs:ArrestingOfficer" ) == source ) then
           
            releasePlayer ( v )
            local time = math.floor ( ( getElementData ( v, "WantedPoints" ) * 2 ) or 50 )
            local orgTime = time
            local vip = getElementData ( v, "VIP" )
            if ( exports.SAEGVIP:getVipLevelFromName ( vip ) == 4 ) then
                time = time - ( time * 0.5 )
                exports.SAEGMessages:sendClientMessage ( "You're serving 50% less jail time due to diamond VIP! (Original time: "..orgTime.." seconds)", v, 0, 255, 0 )
            elseif ( exports.SAEGVIP:getVipLevelFromName ( vip ) == 3  ) then
                time = time - ( time * 0.25 )
                exports.SAEGMessages:sendClientMessage ( "You're serving 25% less jail time due to gold VIP! (Original time: "..orgTime.." seconds)", v, 0, 255, 0 )
            elseif ( exports.SAEGVIP:getVipLevelFromName ( vip ) == 2 ) then
                time = time - ( time * 0.15 )
                exports.SAEGMessages:sendClientMessage ( "You're serving 15% less jail time due to silver VIP! (Original time: "..orgTime.." seconds)", v, 0, 255, 0 )
            elseif ( exports.SAEGVIP:getVipLevelFromName ( vip ) == 1 ) then
                time = time - ( time * 0.05 )
                exports.SAEGMessages:sendClientMessage ( "You're serving 5% less jail time due to bronze VIP! (Original time: "..orgTime.." seconds)", v, 0, 255, 0 )
            end
           
            local time = math.floor ( time )
           
            givePlayerMoney ( source, math.floor ( orgTime*2 ) )
            exports['SAEGMessages']:sendClientMessage ( "You were paid $"..math.floor ( orgTime*2 ).." for arresting "..getPlayerName ( v ).."!", source, 0, 255, 0 )
            exports['SAEGPolice']:jailPlayer ( v, time, false, source, "Police Arrest" )
            updateJobColumn ( getAccountName ( getPlayerAccount ( source ) ), "Arrests", "AddOne" )
        end
    end
end
 
addEvent ( "saegpolice:onJailCopCrimals", true )
addEventHandler ( "saegpolice:onJailCopCrimals", root, onJailCopCriminals )
 
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...