Jump to content

[HELP]Jail


Best-Killer1

Recommended Posts

Posted

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 ) 
  

Posted
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 

Posted

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 ) 

Posted
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 )
 
Posted

What? The first problem is solved?

Second problem , check in the meta.xml if the 'SAEGPolice:JailPlayer exports is exist or the file is SAEGPolice is like that

Posted
What? The first problem is solved?

Second problem , check in the meta.xml if the 'SAEGPolice:JailPlayer exports is exist or the file is SAEGPolice is like that

when i add your code and cop arrest criminal when he will jail him not will go to jail just this error showing

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...