Jump to content

[HELP] Swat Team


aguia

Recommended Posts

I am currently using these resources: viewtopic.php?f=108&t=82870 (Nerd Gaming by MADEX)

So, there are some jobs (police, criminal and civilians jobs), but I want to create a special police team (SWAT) with the same police functions the only thing I want different is the recruitment: Not all member can take the job, just who gets invited by the founder.

NGJobs\core_client

local _guiSetVisible = guiSetVisible 
function guiSetVisible ( window, visible ) 
    --outputChatBox ( tostring ( window )..": "..tostring( visible ) ) 
    _guiSetVisible ( window, visible ); 
end 
  
  
  
local do3dtextrender = false 
setTimer ( function ( ) 
    do3dtextrender = exports.NGLogin:isClientLoggedin ( ) 
end, 1000, 1 ) 
  
addEvent ( "onClientPlayerLogin", true ) 
addEventHandler ( "onClientPlayerLogin", root, function ( ) 
    do3dtextrender = true 
end ) 
  
  
jobDescriptions = {  
    ['fisherman'] = [[With the Fisher job, you will be able to spawn a boat and drive around the water to collect caught items. To catch items, you need to be in a boat that's in the water, and you MUST be moving, or else you will just be wasting time. Once your holding area is full, you'll need to return to port to sell your fish.\n\nTo view your net, use the command /net]], 
    ['medic'] = [[When you're a medic, you can go around healing other players and getting paid for it. The money that you get for healing the player, depends on the amount of the health that they had before.]],  
    ['police'] = [[When you're a cop, you will be able to arrest wanted players, so they have to pay the tiem for their crime. To know if a player is wanted, you can check for their name in F5, or look at their name tag, and it will be (theirName)[wantedLevel]. They will also have a police star floating over their head. If a player decides to run from you, you can used the silenced pistol as a taser, and when you shoot them, they'll be put into a tased animation, so you can arrest them.]], 
    ['mechanic'] = [[When you're employed as a mechanic, you can go around anywhere in Los Santos fixing players cars. To fix a car, you just need to click on it and then it'll ask the client if they'd like to fix it. If they accept, a progress bar will start and then when it finishes, their car will be fix and you'll be paid.]], 
    ['criminal'] = [[As a criminal, you can go around stealing cars in Los Santos, picking up free weapons in San Fierron and turfing in Las Ventures, but be careful, the police are always after you.]],   
    ['detective'] = [[When you are a detective in the Nerd Gaming server, you will still have all of the features availble to you as being a normal police officer (police panel, radio chat, arrests),  other than when you are a detective you will be called on to crime cases when a fellow police officer is murdered. When you arive at the crime scene, you just have to look around for clues of the killer. You will also have the ability to spawn faster vehicles]], 
    ['pilot'] = [[When you're a pilot, you will fly an aircraft around San Andreas, picking up and delivering passengers from waypoint to waypoint. You will also be able to pick up other players, they will be able to set a waypoint when you deliver them to their waypoint you will be paid]], 
    ['stunter'] = [[If you are a stunter, you can go around San Andreas doing tricks on bikes or motorcycles. For every stunt that you do, you will be paid]], 
    ['swat'] = [[swat description - not added yet]], 
} 
  
  
sx, sy = guiGetScreenSize ( ) 
rSX, rSY = sx / 1280, sx / 1024 
local JobWindow = guiCreateWindow( ( sx / 2 - (rSX*500) / 2 ), (sy-(rSY*230))-rSY*15, rSX*500, rSY*230, "Nexus Gaming Job System", false) 
local JobDescription = guiCreateMemo((rSX*10), (rSY*23), (rSX*480), (rSY*150), "Job Description", false, JobWindow) 
local JobAccept = guiCreateButton((rSX*10), ((rSY*230)-(rSY*25))-rSY*10, (rSX*150), (rSY*25), "Accept Job", false, JobWindow) 
local JobDeny = guiCreateButton((rSX*170), ((rSY*230)-(rSY*25))-rSY*10, (rSX*150), (rSY*25), "Deny Job", false, JobWindow) 
guiSetVisible ( JobWindow, false ) 
guiWindowSetSizable(JobWindow, false) 
guiWindowSetMovable ( JobWindow, false ) 
guiSetFont(JobDeny, "default-bold-small") 
guiSetFont(JobAccept, "default-bold-small") 
guiMemoSetReadOnly ( JobDescription, true ) 
--guiSetFont(JobDescription, "default-bold-small") 
-- settings: { maxDist = 17, showBoarder & Hide rectangle = false } 
  
  
addEventHandler ( 'onClientPreRender', root, function ( ) 
    if ( do3dtextrender ) then 
        for ind, v in ipairs ( getElementsByType ( '3DText' ) ) do 
            local continueRender = true 
            local text = getElementData ( v, 'text' ) 
            local pos = getElementData ( v, 'position' ) 
            local color = getElementData ( v, 'color' ) 
            local parent = getElementData ( v, 'parentElement' ) 
             
            if ( parent ) then 
                if ( isElement ( parent ) ) then 
                    if ( isPedInVehicle ( localPlayer ) and getElementType ( parent ) == 'vehicle' and getPedOccupiedVehicle ( localPlayer ) == parent ) then return end 
                    local offset = pos 
                    local px, py, pz = getElementPosition ( parent ) 
                    pos = { px+offset[1], py+offset[2], pz+offset[3] } 
                    if ( parent == localPlayer ) then 
                        continueRender = false 
                    end 
                else 
                    destroyElement ( v ) 
                end 
            end 
                 
             
            if continueRender and text and pos and color then 
                local x, y, z = unpack ( pos ) 
                local z = z + 1.15 
                local settings = getElementData ( v, 'Settings' ) or { } 
                local maxDist = settings[1] or 17 
                 
                if ( settings[2] ) then 
                    showBoarder = true 
                else 
                    showBoarder = false 
                end 
                 
                local px, py, pz = getElementPosition ( localPlayer ) 
                local _3DDist = getDistanceBetweenPoints3D ( x, y, z, px, py, pz ) 
                if ( _3DDist <= maxDist and isLineOfSightClear ( x, y, z, px, py, pz, true, false, false, true, false, false ) ) then 
                    local x, y = getScreenFromWorldPosition ( x, y, z ) 
                    local r, g, b = unpack ( color ) 
                    if x then 
                        local textSize = rSY*2 
                        local textSize = textSize * ( ( maxDist - _3DDist ) / maxDist ) 
                        --local textSize = 2 
                        local textWidth = dxGetTextWidth(text,textSize,'default') 
                        local height = dxGetFontHeight ( textSize, 'default' ) 
                        local x = x-(textWidth/2) 
                        if x and y and r and g and b then 
                            if ( showBoarder ) then  
                                dxDrawRectangle ( x-6, y+1, textWidth+12, height+2, tocolor ( 0, 0, 0, 120 ) ) 
                                dxDrawText ( tostring ( text ), x, y, 0, 0, tocolor ( r, g, b, 255 ), textSize ) 
                            else 
                                dxDrawBoarderedText ( tostring ( text ), x, y, 0, 0, tocolor ( r, g, b, 255 ), textSize ) 
                            end 
                        end 
                    end 
                end 
            end 
        end 
    end 
end ) 
  
function dxDrawBoarderedText ( text, x, y, endX, endY, color, size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    local text = tostring ( text ) 
    local x = tonumber(x) or 0 
    local y = tonumber(y) or 0 
    local endX = tonumber(endX) or x 
    local endY = tonumber(endY) or y 
    local color = color or tocolor ( 255, 255, 255, 255 ) 
    local size = tonumber(size) or 1 
    local font = font or "default" 
    local alignX = alignX or "left" 
    local alignY = alignY or "top" 
    local clip = clip or false 
    local wordBreak = wordBreak or false 
    local postGUI = postGUI or false 
    local colorCode = colorCode or false 
    local subPixelPos = subPixelPos or false 
    local fRot = tonumber(fRot) or 0 
    local fRotCX = tonumber(fRotCX) or 0 
    local fRotCY = tonumber(fRotCy) or 0 
    local offSet = tonumber(offSet) or 1 
    local t_g = text:gsub ( "#%x%x%x%x%x%x", "" ) 
    dxDrawText ( t_g, x-offSet, y-offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x-offSet, y, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x, y-offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x+offSet, y+offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x+offSet, y, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x, y+offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    return dxDrawText ( text, x, y, endX, endY, color, size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
end 
  
  
function create3DText ( str, pos, color, parent, settings )  
    if str and pos and color then 
        local text = createElement ( '3DText' ) 
        local settings = settings or  { } 
        setElementData ( text, "text", str ) 
        setElementData ( text, "position", pos ) 
        setElementData ( text, "color", color ) 
        if ( not parent ) then 
            parent = nil 
        else 
            if ( isElement ( parent ) ) then 
                parent = parent 
            else 
                parent = nil 
            end 
        end 
        setElementData ( text, "Settings", settings ) 
        setElementData ( text, "parentElement", parent ) 
        return text 
    end 
    return false 
end 
  
local peds = { } 
function refreshGodmodePeds ( ) 
    for i, v in ipairs ( peds ) do 
        destroyElement ( v ) 
    end 
     
    for i, v in ipairs ( getElementsByType ( 'GodmodePed' ) ) do  
        local id = getElementData ( v, "Model" ) 
        local x, y, z, rz = unpack ( getElementData ( v, "Position" ) ) 
        peds[i] = createPed ( id, x, y, z, rz ) 
        setElementFrozen ( peds[i], true ) 
        addEventHandler ( 'onClientPedDamage', peds[i], function ( ) cancelEvent ( ) end ) 
    end 
     
end 
refreshGodmodePeds ( ) 
setTimer ( refreshGodmodePeds, 30000, 0 ) 
  
  
openedJob = nil 
addEvent ( 'NGJobs:OpenJobMenu', true ) 
addEventHandler ( 'NGJobs:OpenJobMenu', root, function ( job ) 
    openedJob = job 
    guiSetVisible ( JobWindow, true ) 
    showCursor ( true ) 
    local desc = jobDescriptions [ job ]  
    guiSetText ( JobDescription, tostring ( desc ) ) 
    addEventHandler ( "onClientGUIClick", root, clickingevents_jobmenu ) 
     
end ) 
  
function clickingevents_jobmenu ( ) 
    if ( source == JobDeny ) then 
        desc = nil 
        openedJob = nil 
        guiSetVisible ( JobWindow, false ) 
        showCursor ( false ) 
        removeEventHandler ( "onClientGUIClick", root, clickingevents_jobmenu ) 
    elseif ( source == JobAccept ) then 
         
        triggerServerEvent ( "NGJobs:SetPlayerJob", localPlayer, openedJob ) 
     
        desc = nil 
        openedJob = nil 
        guiSetVisible ( JobWindow, false ) 
        showCursor ( false ) 
        removeEventHandler ( "onClientGUIClick", root, clickingevents_jobmenu ) 
    end 
end 
  
addEventHandler ( 'onClientPlayerWasted', root, function ( ) 
    if ( source == localPlayer ) then 
        showCursor ( false ) 
        guiSetVisible ( JobWindow, false ) 
    end 
end ) 
  
  
  
  
  
  
  
  
  
  
addEvent ( "onPlayerResign", true ) 
  
  

NGJobs\core_server

max_wanted = { 
    community = 2,
    law = 1,
    criminal = 7
}
 
jobRanks = {
    ['criminal'] = {
        [0] = "L.G",
        [50] = "L.Y.G",
        [75] = "Y.G",
        [120] = "OYG",
        [200] = "O.G",
        [310] = "G.C.L",
        [499] = "G.L",
    },
    ['police officer'] = {
        [0] ="Officer",
        [90]="Corporal",
        [200]="Trooper",
        [310]="Sergeant",
        [450]="Captain",
        [600]="Commander",
        [900]="Chief of Police",
    },
    ['medic'] = {
        [0] = "Assistant",
        [50] = "Training",
        [100]= "Nurse",
        [130] = "Paramedic",
        [200] = "Doctor",
        [260] = "Surgeon"
    },
    ['mechanic'] = {
        [0] = "Rookie",
        [40] = "Wheel Specialist",
        [100]= "Engine Specialist",
        [140]= "Vehicle Professional",
        [200]= "Motorcycle Specialist",
        [245]= "Vehicle Master"
    },
    ['fisherman'] = {
        [0] = "Deck Hand",
        [20]= "Net Baiter",
        [75]= "Line Thrower",
        [100]="Line Roller",
        [140]="Boat Captain",
        [200]="Experienced Fisherman",
        [270]="Underwater Trap Setter"
    },
    ['detective'] = {
        [0] = "Detective"
    },
    ['pilot'] = {
        [0] = "Junior flight officer",
        [25] = "Flight Officer",
        [50] = "First Officer",
        [120] = "Captain",
        [180] = "Senior Captain",
        [250] = "Commercial First Officer",
        [310] = "Commercial Captain",
        [390] = "Commercial Commander",
        [460] = "Commercial Senior Commander",
    },
    ['stunter'] = {
        [0] = "Crash Dummy",
        [50] = "Crash",
        [150] = "Experienced",
        [200] = "Professional",
        [300] = "Expert BMXer"
    }
}
 
function getJobRankTable ( )
    return jobRanks
end
 
exports['Scoreboard']:scoreboardAddColumn  ( "Job", root, 90, "Job", 4 )
exports['Scoreboard']:scoreboardAddColumn  ( "Job Rank", root, 90, "Job Rank", 5 )
 
function create3DText ( str, pos, color, parent, settings )
    if str and pos and color then
        local text = createElement ( '3DText' )
        local settings = settings or  { }
        setElementData ( text, "text", str )
        setElementData ( text, "position", pos )
        setElementData ( text, "color", color )
        if ( not parent ) then
            parent = nil
        else
            if ( isElement ( parent ) ) then
                parent = parent
            else
                parent = nil
            end
        end
        setElementData ( text, "Settings", settings )
        setElementData ( text, "parentElement", parent )
        setElementData ( text, "sourceResource", sourceResource or getThisResource ( ))
        return text
    end
    return false
end
 
addEventHandler ( "onResourceStop", root, function ( r )
    for i, v in pairs ( getElementsByType ( "3DText" ) ) do
        if ( r == getElementData ( v, "sourceResource" ) ) then
            destroyElement ( v )
        end
    end
end )
 
function createJob ( name, x, y, z, rz )
    if ( name == 'Criminal' ) then
        create3DText ( 'Criminal', { x, y, z }, { 255, 0, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 28 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 59, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.criminal ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.criminal )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'criminal' )
            end
        end )
       
    ----------------------------------
    -- Law Jobs                     --
    ----------------------------------    
    elseif ( name == 'Police' ) then
        create3DText ( 'Police', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 281 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'police' )
            end
        end )
       
    elseif ( name == 'Detective' ) then
        create3DText ( 'Detective', { x, y, z }, { 0, 120, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 17 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
               
                local arrests = getJobColumnData ( getAccountName ( getPlayerAccount ( p ) ), getDatabaseColumnTypeFromJob ( "police officer" ) )
                if ( arrests < 150 ) then
                    return exports.NGMessages:sendClientMessage ( "This job requires at least 150 arrests", p, 255, 255, 0 )
                end
               
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'detective' )
            end
        end )
       
       
    ----------------------------------
    -- Emergency Jobs               --
    ----------------------------------
    elseif ( name == 'Medic' ) then
        create3DText ( 'Medic', { x, y, z }, { 0, 255, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 274 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 58, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'medic' )
            end
        end )
       
    ----------------------------------
    -- Community Jobs               --
    ----------------------------------
    elseif ( name == 'Mechanic' ) then
        create3DText ( 'Mechanic', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 30 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'mechanic' )
            end
        end )
    elseif ( name == 'Fisher' ) then
        create3DText ( 'Fisher', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 45 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'fisherman' )
            end
        end )
    elseif ( name == "Pilot" ) then
        create3DText ( 'Pilot', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 61 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'pilot' )
            end
        end )
    elseif ( name == 'Stunter' ) then
        create3DText ( 'Stunter', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 23 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'stunter' )
            end
        end )
    end
end
createJob ( 'Criminal', 1625.92, -1508.65, 13.6, 180 )
createJob ( 'Criminal', 2141.75, -1733.94, 17.28, 0 )
createJob ( 'Criminal', 2460.31, 1324.94, 10.82, -90 )
createJob ( 'Criminal', 1042.26, 2154.03, 10.82, -90 )
createJob
Link to comment

Try this, i made all what you need edit the positions

addEventHandler("onResourceStart", resourceRoot, 
function ()
    createTeam("SWAT", 20, 255, 20)
end)
 
max_wanted = {
    community = 2,
    law = 1,
    criminal = 7
}
 
jobRanks = {
    ['criminal'] = {
        [0] = "L.G",
        [50] = "L.Y.G",
        [75] = "Y.G",
        [120] = "OYG",
        [200] = "O.G",
        [310] = "G.C.L",
        [499] = "G.L",
    },
    ['police officer'] = {
        [0] ="Officer",
        [90]="Corporal",
        [200]="Trooper",
        [310]="Sergeant",
        [450]="Captain",
        [600]="Commander",
        [900]="Chief of Police",
    },
    ['swat officer'] = {
        [0] ="none",
 
    },
    ['medic'] = {
        [0] = "Assistant",
        [50] = "Training",
        [100]= "Nurse",
        [130] = "Paramedic",
        [200] = "Doctor",
        [260] = "Surgeon"
    },
    ['mechanic'] = {
        [0] = "Rookie",
        [40] = "Wheel Specialist",
        [100]= "Engine Specialist",
        [140]= "Vehicle Professional",
        [200]= "Motorcycle Specialist",
        [245]= "Vehicle Master"
    },
    ['fisherman'] = {
        [0] = "Deck Hand",
        [20]= "Net Baiter",
        [75]= "Line Thrower",
        [100]="Line Roller",
        [140]="Boat Captain",
        [200]="Experienced Fisherman",
        [270]="Underwater Trap Setter"
    },
    ['detective'] = {
        [0] = "Detective"
    },
    ['pilot'] = {
        [0] = "Junior flight officer",
        [25] = "Flight Officer",
        [50] = "First Officer",
        [120] = "Captain",
        [180] = "Senior Captain",
        [250] = "Commercial First Officer",
        [310] = "Commercial Captain",
        [390] = "Commercial Commander",
        [460] = "Commercial Senior Commander",
    },
    ['stunter'] = {
        [0] = "Crash Dummy",
        [50] = "Crash",
        [150] = "Experienced",
        [200] = "Professional",
        [300] = "Expert BMXer"
    }
}
 
function getJobRankTable ( )
    return jobRanks
end
 
exports['Scoreboard']:scoreboardAddColumn  ( "Job", root, 90, "Job", 4 )
exports['Scoreboard']:scoreboardAddColumn  ( "Job Rank", root, 90, "Job Rank", 5 )
 
function create3DText ( str, pos, color, parent, settings )
    if str and pos and color then
        local text = createElement ( '3DText' )
        local settings = settings or  { }
        setElementData ( text, "text", str )
        setElementData ( text, "position", pos )
        setElementData ( text, "color", color )
        if ( not parent ) then
            parent = nil
        else
            if ( isElement ( parent ) ) then
                parent = parent
            else
                parent = nil
            end
        end
        setElementData ( text, "Settings", settings )
        setElementData ( text, "parentElement", parent )
        setElementData ( text, "sourceResource", sourceResource or getThisResource ( ))
        return text
    end
    return false
end
 
addEventHandler ( "onResourceStop", root, function ( r )
    for i, v in pairs ( getElementsByType ( "3DText" ) ) do
        if ( r == getElementData ( v, "sourceResource" ) ) then
            destroyElement ( v )
        end
    end
end )
 
function createJob ( name, x, y, z, rz )
    if ( name == 'Criminal' ) then
        create3DText ( 'Criminal', { x, y, z }, { 255, 0, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 28 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 59, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.criminal ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.criminal )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'criminal' )
            end
        end )
       
    ----------------------------------
    -- Law Jobs                     --
    ----------------------------------    
    elseif ( name == 'Police' ) then
        create3DText ( 'Police', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 281 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'police' )
            end
        end )
   
     elseif ( name == 'SWAT' ) then
        create3DText ( 'SWAT', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 285 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'SWAT' )
            end
        end )
       
    elseif ( name == 'Detective' ) then
        create3DText ( 'Detective', { x, y, z }, { 0, 120, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 17 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
               
                local arrests = getJobColumnData ( getAccountName ( getPlayerAccount ( p ) ), getDatabaseColumnTypeFromJob ( "police officer" ) )
                if ( arrests < 150 ) then
                    return exports.NGMessages:sendClientMessage ( "This job requires at least 150 arrests", p, 255, 255, 0 )
                end
               
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'detective' )
            end
        end )
       
       
    ----------------------------------
    -- Emergency Jobs               --
    ----------------------------------
    elseif ( name == 'Medic' ) then
        create3DText ( 'Medic', { x, y, z }, { 0, 255, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 274 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 58, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'medic' )
            end
        end )
       
    ----------------------------------
    -- Community Jobs               --
    ----------------------------------
    elseif ( name == 'Mechanic' ) then
        create3DText ( 'Mechanic', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 30 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'mechanic' )
            end
        end )
    elseif ( name == 'Fisher' ) then
        create3DText ( 'Fisher', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 45 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'fisherman' )
            end
        end )
    elseif ( name == "Pilot" ) then
        create3DText ( 'Pilot', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 61 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..
Link to comment

I gonna test this, I've found out:

    elseif ( job == 'swat' ) then 
        setElementData ( p, 'Job', 'SWAT Officer' ) 
        setPlayerTeam(p, getTeamFromName("Criminal")) 
        setElementModel ( p, 285 ) 
        job = "SWAT Officer" 
       weapons[1] = { weap=3, ammo=2 } 

Why did you place "Criminal" there ? And I'm also thinking there is not an invite system to join SWAT...

Anyway, thanks Karim for the support/time;

I'll post the result here later..

Link to comment

Replace it with the other one i made it quickly thats why

  elseif ( job == 'swat' ) then 
        setElementData ( p, 'Job', 'SWAT Officer' ) 
        setPlayerTeam(p, getTeamFromName("SWAT")) 
        setElementModel ( p, 285 ) 
        job = "SWAT Officer" 
       weapons[1] = { weap=3, ammo=2 } 

About letting this job only for an group system, you have to post the part of GROUP system for getting the elementdata and checking it if equal to the job or not

Link to comment

I got this on my server:

[21:03:45] Creating new DB table SWAT

[21:03:45] SCRIPT ERROR: NGJobs\core_server.lua:400: ')' expected near '='

[21:03:45] ERROR: Loading script failed: NGJobs\core_server.lua:400: ')' expected near '='

[21:03:45] ERROR: NGJobs\community\mechanic\server.lua:11: attempt to call global 'create3DText' (a nil value)

[21:03:46] SCRIPT ERROR: NGPlayerFunctions\server\teams.lua:14: '}' expected (to close '{' at line 11) near 'local'

[21:03:46] ERROR: Loading script failed: NGPlayerFunctions\server\teams.lua:14: '}' expected (to close '{' at line 11) near 'local'

In game doen't work and cause certain bugs...

I've edited the positions.

Link to comment

You missed something in editing, i fixed everything, use this code

addEventHandler("onResourceStart", resourceRoot, 
function ()
    createTeam("SWAT", 20, 255, 20)
end)
 
 
 
max_wanted = {
    community = 2,
    law = 1,
    criminal = 7
}
 
jobRanks = {
    ['criminal'] = {
        [0] = "L.G",
        [50] = "L.Y.G",
        [75] = "Y.G",
        [120] = "OYG",
        [200] = "O.G",
        [310] = "G.C.L",
        [499] = "G.L",
    },
    ['police officer'] = {
        [0] ="Officer",
        [90]="Corporal",
        [200]="Trooper",
        [310]="Sergeant",
        [450]="Captain",
        [600]="Commander",
        [900]="Chief of Police",
    },
    ['swat officer'] = {
        [0] ="none",
 
    },
    ['medic'] = {
        [0] = "Assistant",
        [50] = "Training",
        [100]= "Nurse",
        [130] = "Paramedic",
        [200] = "Doctor",
        [260] = "Surgeon"
    },
    ['mechanic'] = {
        [0] = "Rookie",
        [40] = "Wheel Specialist",
        [100]= "Engine Specialist",
        [140]= "Vehicle Professional",
        [200]= "Motorcycle Specialist",
        [245]= "Vehicle Master"
    },
    ['fisherman'] = {
        [0] = "Deck Hand",
        [20]= "Net Baiter",
        [75]= "Line Thrower",
        [100]="Line Roller",
        [140]="Boat Captain",
        [200]="Experienced Fisherman",
        [270]="Underwater Trap Setter"
    },
    ['detective'] = {
        [0] = "Detective"
    },
    ['pilot'] = {
        [0] = "Junior flight officer",
        [25] = "Flight Officer",
        [50] = "First Officer",
        [120] = "Captain",
        [180] = "Senior Captain",
        [250] = "Commercial First Officer",
        [310] = "Commercial Captain",
        [390] = "Commercial Commander",
        [460] = "Commercial Senior Commander",
    },
    ['stunter'] = {
        [0] = "Crash Dummy",
        [50] = "Crash",
        [150] = "Experienced",
        [200] = "Professional",
        [300] = "Expert BMXer"
    }
}
 
function getJobRankTable ( )
    return jobRanks
end
 
exports['Scoreboard']:scoreboardAddColumn  ( "Job", root, 90, "Job", 4 )
exports['Scoreboard']:scoreboardAddColumn  ( "Job Rank", root, 90, "Job Rank", 5 )
 
function create3DText ( str, pos, color, parent, settings )
    if str and pos and color then
        local text = createElement ( '3DText' )
        local settings = settings or  { }
        setElementData ( text, "text", str )
        setElementData ( text, "position", pos )
        setElementData ( text, "color", color )
        if ( not parent ) then
            parent = nil
        else
            if ( isElement ( parent ) ) then
                parent = parent
            else
                parent = nil
            end
        end
        setElementData ( text, "Settings", settings )
        setElementData ( text, "parentElement", parent )
        setElementData ( text, "sourceResource", sourceResource or getThisResource ( ))
        return text
    end
    return false
end
 
addEventHandler ( "onResourceStop", root, function ( r )
    for i, v in pairs ( getElementsByType ( "3DText" ) ) do
        if ( r == getElementData ( v, "sourceResource" ) ) then
            destroyElement ( v )
        end
    end
end )
 
function createJob ( name, x, y, z, rz )
    if ( name == 'Criminal' ) then
        create3DText ( 'Criminal', { x, y, z }, { 255, 0, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 28 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 59, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.criminal ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.criminal )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'criminal' )
            end
        end )
       
    ----------------------------------
    -- Law Jobs                     --
    ----------------------------------    
    elseif ( name == 'Police' ) then
        create3DText ( 'Police', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 281 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'police' )
            end
        end )
   
     elseif ( name == 'SWAT' ) then
        create3DText ( 'SWAT', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 285 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'SWAT' )
            end
        end )
       
    elseif ( name == 'Detective' ) then
        create3DText ( 'Detective', { x, y, z }, { 0, 120, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 17 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
               
                local arrests = getJobColumnData ( getAccountName ( getPlayerAccount ( p ) ), getDatabaseColumnTypeFromJob ( "police officer" ) )
                if ( arrests < 150 ) then
                    return exports.NGMessages:sendClientMessage ( "This job requires at least 150 arrests", p, 255, 255, 0 )
                end
               
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'detective' )
            end
        end )
       
       
    ----------------------------------
    -- Emergency Jobs               --
    ----------------------------------
    elseif ( name == 'Medic' ) then
        create3DText ( 'Medic', { x, y, z }, { 0, 255, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 274 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 58, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'medic' )
            end
        end )
       
    ----------------------------------
    -- Community Jobs               --
    ----------------------------------
    elseif ( name == 'Mechanic' ) then
        create3DText ( 'Mechanic', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 30 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'mechanic' )
            end
        end )
    elseif ( name == 'Fisher' ) then
        create3DText ( 'Fisher', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 45 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'fisherman' )
            end
        end )
    elseif ( name == "Pilot" ) then
        create3DText ( 'Pilot', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 61 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if (
Edited by Guest
Link to comment

my meta file in NGJobs:

    "NG Scripting Team" name="NG Jobs" type="script" version="1.0" /> 
    true
  
    -- Core scripts --> 
    

NGPlayerFunctions\server\teams:

local teams = {  
    { "Staff", 255, 140, 0 }, 
    { "Criminals", 255, 0, 0 }, 
    { "Law Enforcement", 0, 100, 255 }, 
    { "Services", 255, 255, 0 }, 
    { "Emergency", 0, 255, 255 }, 
    { "Unemployed", 255, 92, 0 }, 
} 
  
local lawTeams = {  
    ['Law Enforcement'] = true 
} 
  
local team = { } 
for i, v in ipairs ( teams ) do 
    team[v[1]] = createTeam ( unpack ( v ) ) 
end 
  
function setTeam ( p, tem )  
    if ( p and getElementType ( p ) == 'player' and tem and type ( tem ) == 'string' ) then 
        for i, v in ipairs ( teams ) do  
            if ( v[1] == tem ) then 
                return setPlayerTeam ( p, getTeamFromName ( v[1] ) ) 
            end 
        end 
    end 
    return false 
end 
  
addEventHandler ( "onResourceStop", root, function ( ) 
    for i, v in ipairs ( getElementsByType ( 'player' ) ) do  
        if ( getPlayerTeam ( v ) ) then 
            setElementData ( v, "NGPlayers:SavedTeam", getTeamName ( getPlayerTeam ( v ) ) ) 
        end 
    end 
end ) 
  
addEventHandler ( 'onResourceStart', resourceRoot, function ( ) 
    for i, v in ipairs ( getElementsByType ( 'player' ) ) do  
        local t = getElementData ( v, 'NGPlayers:SavedTeam' ) 
        if t and getTeamFromName ( t ) then  
            setPlayerTeam ( v, getTeamFromName ( t ) ) 
        else 
            setPlayerTeam ( v, getTeamFromName ( t, "Unemployed" ) ) 
        end 
    end 
end ) 
  
function isTeamLaw ( team ) 
    local team = tostring ( team ) 
    if ( lawTeams[team] ) then 
        return true 
    end 
    return false 
end 

---------------------

I shouldn't remove this:

addEventHandler("onResourceStart", resourceRoot, 
function () 
    createTeam("SWAT", 20, 255, 20) 
end) 

and add this in NGPlayerFunctions\server\teams?:

local teams = {  
    { "Staff", 255, 140, 0 }, 
    { "Criminals", 255, 0, 0 }, 
    { "SWAT", 255, 0, 0 }, 
    { "Law Enforcement", 0, 100, 255 }, 
    { "Services", 255, 255, 0 }, 
    { "Emergency", 0, 255, 255 }, 
    { "Unemployed", 255, 92, 0 }, 
} 
  
local lawTeams = {  
    ['Law Enforcement'] = true, ['SWAT'] = true 
} 
  
local team = { } 
for i, v in ipairs ( teams ) do 
    team[v[1]] = createTeam ( unpack ( v ) ) 
end 
  
function setTeam ( p, tem )  
    if ( p and getElementType ( p ) == 'player' and tem and type ( tem ) == 'string' ) then 
        for i, v in ipairs ( teams ) do  
            if ( v[1] == tem ) then 
                return setPlayerTeam ( p, getTeamFromName ( v[1] ) ) 
            end 
        end 
    end 
    return false 
end 
  
addEventHandler ( "onResourceStop", root, function ( ) 
    for i, v in ipairs ( getElementsByType ( 'player' ) ) do  
        if ( getPlayerTeam ( v ) ) then 
            setElementData ( v, "NGPlayers:SavedTeam", getTeamName ( getPlayerTeam ( v ) ) ) 
        end 
    end 
end ) 
  
addEventHandler ( 'onResourceStart', resourceRoot, function ( ) 
    for i, v in ipairs ( getElementsByType ( 'player' ) ) do  
        local t = getElementData ( v, 'NGPlayers:SavedTeam' ) 
        if t and getTeamFromName ( t ) then  
            setPlayerTeam ( v, getTeamFromName ( t ) ) 
        else 
            setPlayerTeam ( v, getTeamFromName ( t, "Unemployed" ) ) 
        end 
    end 
end ) 
  
function isTeamLaw ( team ) 
    local team = tostring ( team ) 
    if ( lawTeams[team] ) then 
        return true 
    end 
    return false 
end 

Link to comment
You missed something in editing, i fixed everything, use this code
addEventHandler("onResourceStart", resourceRoot, 
function ()
    createTeam("SWAT", 20, 255, 20)
end)
 
 
 
max_wanted = {
    community = 2,
    law = 1,
    criminal = 7
}
 
jobRanks = {
    ['criminal'] = {
        [0] = "L.G",
        [50] = "L.Y.G",
        [75] = "Y.G",
        [120] = "OYG",
        [200] = "O.G",
        [310] = "G.C.L",
        [499] = "G.L",
    },
    ['police officer'] = {
        [0] ="Officer",
        [90]="Corporal",
        [200]="Trooper",
        [310]="Sergeant",
        [450]="Captain",
        [600]="Commander",
        [900]="Chief of Police",
    },
    ['swat officer'] = {
        [0] ="none",
 
    },
    ['medic'] = {
        [0] = "Assistant",
        [50] = "Training",
        [100]= "Nurse",
        [130] = "Paramedic",
        [200] = "Doctor",
        [260] = "Surgeon"
    },
    ['mechanic'] = {
        [0] = "Rookie",
        [40] = "Wheel Specialist",
        [100]= "Engine Specialist",
        [140]= "Vehicle Professional",
        [200]= "Motorcycle Specialist",
        [245]= "Vehicle Master"
    },
    ['fisherman'] = {
        [0] = "Deck Hand",
        [20]= "Net Baiter",
        [75]= "Line Thrower",
        [100]="Line Roller",
        [140]="Boat Captain",
        [200]="Experienced Fisherman",
        [270]="Underwater Trap Setter"
    },
    ['detective'] = {
        [0] = "Detective"
    },
    ['pilot'] = {
        [0] = "Junior flight officer",
        [25] = "Flight Officer",
        [50] = "First Officer",
        [120] = "Captain",
        [180] = "Senior Captain",
        [250] = "Commercial First Officer",
        [310] = "Commercial Captain",
        [390] = "Commercial Commander",
        [460] = "Commercial Senior Commander",
    },
    ['stunter'] = {
        [0] = "Crash Dummy",
        [50] = "Crash",
        [150] = "Experienced",
        [200] = "Professional",
        [300] = "Expert BMXer"
    }
}
 
function getJobRankTable ( )
    return jobRanks
end
 
exports['Scoreboard']:scoreboardAddColumn  ( "Job", root, 90, "Job", 4 )
exports['Scoreboard']:scoreboardAddColumn  ( "Job Rank", root, 90, "Job Rank", 5 )
 
function create3DText ( str, pos, color, parent, settings )
    if str and pos and color then
        local text = createElement ( '3DText' )
        local settings = settings or  { }
        setElementData ( text, "text", str )
        setElementData ( text, "position", pos )
        setElementData ( text, "color", color )
        if ( not parent ) then
            parent = nil
        else
            if ( isElement ( parent ) ) then
                parent = parent
            else
                parent = nil
            end
        end
        setElementData ( text, "Settings", settings )
        setElementData ( text, "parentElement", parent )
        setElementData ( text, "sourceResource", sourceResource or getThisResource ( ))
        return text
    end
    return false
end
 
addEventHandler ( "onResourceStop", root, function ( r )
    for i, v in pairs ( getElementsByType ( "3DText" ) ) do
        if ( r == getElementData ( v, "sourceResource" ) ) then
            destroyElement ( v )
        end
    end
end )
 
function createJob ( name, x, y, z, rz )
    if ( name == 'Criminal' ) then
        create3DText ( 'Criminal', { x, y, z }, { 255, 0, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 28 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 59, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.criminal ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.criminal )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'criminal' )
            end
        end )
       
    ----------------------------------
    -- Law Jobs                     --
    ----------------------------------    
    elseif ( name == 'Police' ) then
        create3DText ( 'Police', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 281 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'police' )
            end
        end )
   
     elseif ( name == 'SWAT' ) then
        create3DText ( 'SWAT', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 285 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'SWAT' )
            end
        end )
       
    elseif ( name == 'Detective' ) then
        create3DText ( 'Detective', { x, y, z }, { 0, 120, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 17 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
               
                local arrests = getJobColumnData ( getAccountName ( getPlayerAccount ( p ) ), getDatabaseColumnTypeFromJob ( "police officer" ) )
                if ( arrests < 150 ) then
                    return exports.NGMessages:sendClientMessage ( "This job requires at least 150 arrests", p, 255, 255, 0 )
                end
               
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'detective' )
            end
        end )
       
       
    ----------------------------------
    -- Emergency Jobs               --
    ----------------------------------
    elseif ( name == 'Medic' ) then
        create3DText ( 'Medic', { x, y, z }, { 0, 255, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 274 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 58, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'medic' )
            end
        end )
       
    ----------------------------------
    -- Community Jobs               --
    ----------------------------------
    elseif ( name == 'Mechanic' ) then
        create3DText ( 'Mechanic', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 30 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'mechanic' )
            end
        end )
    elseif ( name == 'Fisher' ) then
        create3DText ( 'Fisher', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 45 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'fisherman' )
            end
        end )
    elseif ( name == "Pilot" ) then
        create3DText ( 'Pilot', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 61 )
        setElementData ( p, "Position", { x, y, z, rz } )
       
Link to comment

NGPlayerFunctions>server>Teams

change with this code :

local teams = {  
    { "Staff", 76, 0, 153 }, 
    { "Military", 0, 102, 0 }, 
    { "SWAT", 0, 0, 204 }, 
    { "Criminals", 255, 0, 0 }, 
    { "Law Enforcement", 0, 100, 255 }, 
    { "Services", 255, 255, 0 }, 
    { "Emergency", 0, 255, 255 }, 
    { "Unemployed", 192, 192, 192 }, 
     
} 
  
local lawTeams = {  
    ['Law Enforcement'] = true 
} 
  
local team = { } 
for i, v in ipairs ( teams ) do 
    team[v[1]] = createTeam ( unpack ( v ) ) 
end 
  
function setTeam ( p, tem )  
    if ( p and getElementType ( p ) == 'player' and tem and type ( tem ) == 'string' ) then 
        for i, v in ipairs ( teams ) do  
            if ( v[1] == tem ) then 
                return setPlayerTeam ( p, getTeamFromName ( v[1] ) ) 
            end 
        end 
    end 
    return false 
end 
  
addEventHandler ( "onResourceStop", root, function ( ) 
    for i, v in ipairs ( getElementsByType ( 'player' ) ) do  
        if ( getPlayerTeam ( v ) ) then 
            setElementData ( v, "SAEGPlayers:SavedTeam", getTeamName ( getPlayerTeam ( v ) ) ) 
        end 
    end 
end ) 
  
addEventHandler ( 'onResourceStart', resourceRoot, function ( ) 
    for i, v in ipairs ( getElementsByType ( 'player' ) ) do  
        local t = getElementData ( v, 'SAEGPlayers:SavedTeam' ) 
        if t and getTeamFromName ( t ) then  
            setPlayerTeam ( v, getTeamFromName ( t ) ) 
        else 
            setPlayerTeam ( v, getTeamFromName ( t, "Unemployed" ) ) 
        end 
    end 
end ) 
  
function isTeamLaw ( team ) 
    local team = tostring ( team ) 
    if ( lawTeams[team] ) then 
        return true 
    end 
    return false 
end 

NGJobs>core_client :

change with this code :

local _guiSetVisible = guiSetVisible 
function guiSetVisible ( window, visible ) 
    --outputChatBox ( tostring ( window )..": "..tostring( visible ) ) 
    _guiSetVisible ( window, visible ); 
end 
  
  
  
local do3dtextrender = false 
setTimer ( function ( ) 
    do3dtextrender = exports.SAEGLogin:isClientLoggedin ( ) 
end, 1000, 1 ) 
  
addEvent ( "onClientPlayerLogin", true ) 
addEventHandler ( "onClientPlayerLogin", root, function ( ) 
    do3dtextrender = true 
end ) 
  
  
jobDescriptions = {  
    ['fisherman'] = [[With the Fisher job, you will be able to spawn a boat and drive around the water to collect caught items. To catch items, you need to be in a boat that's in the water, and you MUST be moving, or else you will just be wasting time. Once your holding area is full, you'll need to return to port to sell your fish.\n\nTo view your net, use the command /net]], 
    ['medic'] = [[When you're a medic, you can go around healing other players and getting paid for it. The money that you get for healing the player, depends on the amount of the health that they had before.]],  
    ['police'] = [[When you're a cop, you will be able to arrest wanted players, so they have to pay the tiem for their crime. To know if a player is wanted, you can check for their name in F5, or look at their name tag, and it will be (theirName)[wantedLevel]. They will also have a police star floating over their head. If a player decides to run from you, you can used the silenced pistol as a taser, and when you shoot them, they'll be put into a tased animation, so you can arrest them.]], 
    ['mechanic'] = [[When you're employed as a mechanic, you can go around anywhere in Los Santos fixing players cars. To fix a car, you just need to click on it and then it'll ask the client if they'd like to fix it. If they accept, a progress bar will start and then when it finishes, their car will be fix and you'll be paid.]], 
    ['criminal'] = [[As a criminal, you can go around stealing cars in Los Santos, picking up free weapons in San Fierron and turfing in Las Ventures, but be careful, the police are always after you.]],   
    ['detective'] = [[When you are a detective in the SAEG:RPG server, you will still have all of the features availble to you as being a normal police officer (police panel, radio chat, arrests),  other than when you are a detective you will be called on to crime cases when a fellow police officer is murdered. When you arive at the crime scene, you just have to look around for clues of the killer. You will also have the ability to spawn faster vehicles]], 
    ['pilot'] = [[When you're a pilot, you will fly an aircraft around San Andreas, picking up and delivering passengers from waypoint to waypoint. You will also be able to pick up other players, they will be able to set a waypoint when you deliver them to their waypoint you'll be paid]], 
    ['stunter'] = [[if you're a stunter, you can go around San Andreas doing tricks on bikes or motorcycles. For every stunt that you do, you'll be paid]], 
    ['military'] = [[This Job is only for "Military" Soldiers]], 
    ['swat'] = [[This job is only for "SWAT" Officers]], 
} 
  
  
sx, sy = guiGetScreenSize ( ) 
rSX, rSY = sx / 1280, sx / 1024 
local JobWindow = guiCreateWindow( ( sx / 2 - (rSX*500) / 2 ), (sy-(rSY*230))-rSY*15, rSX*500, rSY*230, "SAEG:RPG ~ Job System", false) 
local JobDescription = guiCreateMemo((rSX*10), (rSY*23), (rSX*480), (rSY*150), "Job Description", false, JobWindow) 
local JobAccept = guiCreateButton((rSX*10), ((rSY*230)-(rSY*25))-rSY*10, (rSX*150), (rSY*25), "Accept Job", false, JobWindow) 
local JobDeny = guiCreateButton((rSX*170), ((rSY*230)-(rSY*25))-rSY*10, (rSX*150), (rSY*25), "Deny Job", false, JobWindow) 
guiSetVisible ( JobWindow, false ) 
guiWindowSetSizable(JobWindow, false) 
guiWindowSetMovable ( JobWindow, false ) 
guiSetFont(JobDeny, "default-bold-small") 
guiSetFont(JobAccept, "default-bold-small") 
guiMemoSetReadOnly ( JobDescription, true ) 
--guiSetFont(JobDescription, "default-bold-small") 
-- settings: { maxDist = 17, showBoarder & Hide rectangle = false } 
  
  
addEventHandler ( 'onClientPreRender', root, function ( ) 
    if ( do3dtextrender ) then 
        for ind, v in ipairs ( getElementsByType ( '3DText' ) ) do 
            local continueRender = true 
            local text = getElementData ( v, 'text' ) 
            local pos = getElementData ( v, 'position' ) 
            local color = getElementData ( v, 'color' ) 
            local parent = getElementData ( v, 'parentElement' ) 
             
            if ( parent ) then 
                if ( isElement ( parent ) ) then 
                    if ( isPedInVehicle ( localPlayer ) and getElementType ( parent ) == 'vehicle' and getPedOccupiedVehicle ( localPlayer ) == parent ) then return end 
                    local offset = pos 
                    local px, py, pz = getElementPosition ( parent ) 
                    pos = { px+offset[1], py+offset[2], pz+offset[3] } 
                    if ( parent == localPlayer ) then 
                        continueRender = false 
                    end 
                else 
                    destroyElement ( v ) 
                end 
            end 
                 
             
            if continueRender and text and pos and color then 
                local x, y, z = unpack ( pos ) 
                local z = z + 1.15 
                local settings = getElementData ( v, 'Settings' ) or { } 
                local maxDist = settings[1] or 17 
                 
                if ( settings[2] ) then 
                    showBoarder = true 
                else 
                    showBoarder = false 
                end 
                 
                local px, py, pz = getElementPosition ( localPlayer ) 
                local _3DDist = getDistanceBetweenPoints3D ( x, y, z, px, py, pz ) 
                if ( _3DDist <= maxDist and isLineOfSightClear ( x, y, z, px, py, pz, true, false, false, true, false, false ) ) then 
                    local x, y = getScreenFromWorldPosition ( x, y, z ) 
                    local r, g, b = unpack ( color ) 
                    if x then 
                        local textSize = rSY*2 
                        local textSize = textSize * ( ( maxDist - _3DDist ) / maxDist ) 
                        --local textSize = 2 
                        local textWidth = dxGetTextWidth(text,textSize,'default') 
                        local height = dxGetFontHeight ( textSize, 'default' ) 
                        local x = x-(textWidth/2) 
                        if x and y and r and g and b then 
                            if ( showBoarder ) then  
                                dxDrawRectangle ( x-6, y+1, textWidth+12, height+2, tocolor ( 0, 0, 0, 120 ) ) 
                                dxDrawText ( tostring ( text ), x, y, 0, 0, tocolor ( r, g, b, 255 ), textSize ) 
                            else 
                                dxDrawBoarderedText ( tostring ( text ), x, y, 0, 0, tocolor ( r, g, b, 255 ), textSize ) 
                            end 
                        end 
                    end 
                end 
            end 
        end 
    end 
end ) 
  
function dxDrawBoarderedText ( text, x, y, endX, endY, color, size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    local text = tostring ( text ) 
    local x = tonumber(x) or 0 
    local y = tonumber(y) or 0 
    local endX = tonumber(endX) or x 
    local endY = tonumber(endY) or y 
    local color = color or tocolor ( 255, 255, 255, 255 ) 
    local size = tonumber(size) or 1 
    local font = font or "default" 
    local alignX = alignX or "left" 
    local alignY = alignY or "top" 
    local clip = clip or false 
    local wordBreak = wordBreak or false 
    local postGUI = postGUI or false 
    local colorCode = colorCode or false 
    local subPixelPos = subPixelPos or false 
    local fRot = tonumber(fRot) or 0 
    local fRotCX = tonumber(fRotCX) or 0 
    local fRotCY = tonumber(fRotCy) or 0 
    local offSet = tonumber(offSet) or 1 
    local t_g = text:gsub ( "#%x%x%x%x%x%x", "" ) 
    dxDrawText ( t_g, x-offSet, y-offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x-offSet, y, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x, y-offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x+offSet, y+offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x+offSet, y, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    dxDrawText ( t_g, x, y+offSet, endX, endY, tocolor(0,0,0,255), size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
    return dxDrawText ( text, x, y, endX, endY, color, size, font, alignX, alignY, clip, wordBreak, postGUI, colorCode, subPixelPos, fRot, fRotCX, fRotCY, offSet ) 
end 
  
  
function create3DText ( str, pos, color, parent, settings )  
    if str and pos and color then 
        local text = createElement ( '3DText' ) 
        local settings = settings or  { } 
        setElementData ( text, "text", str ) 
        setElementData ( text, "position", pos ) 
        setElementData ( text, "color", color ) 
        if ( not parent ) then 
            parent = nil 
        else 
            if ( isElement ( parent ) ) then 
                parent = parent 
            else 
                parent = nil 
            end 
        end 
        setElementData ( text, "Settings", settings ) 
        setElementData ( text, "parentElement", parent ) 
        return text 
    end 
    return false 
end 
  
local peds = { } 
function refreshGodmodePeds ( ) 
    for i, v in ipairs ( peds ) do 
        destroyElement ( v ) 
    end 
     
    for i, v in ipairs ( getElementsByType ( 'GodmodePed' ) ) do  
        local id = getElementData ( v, "Model" ) 
        local x, y, z, rz = unpack ( getElementData ( v, "Position" ) ) 
        peds[i] = createPed ( id, x, y, z, rz ) 
        setElementFrozen ( peds[i], true ) 
        addEventHandler ( 'onClientPedDamage', peds[i], function ( ) cancelEvent ( ) end ) 
    end 
     
end 
refreshGodmodePeds ( ) 
setTimer ( refreshGodmodePeds, 30000, 0 ) 
  
  
openedJob = nil 
addEvent ( 'SAEGJobs:OpenJobMenu', true ) 
addEventHandler ( 'SAEGJobs:OpenJobMenu', root, function ( job ) 
    openedJob = job 
    guiSetVisible ( JobWindow, true ) 
    showCursor ( true ) 
    local desc = jobDescriptions [ job ]  
    guiSetText ( JobDescription, tostring ( desc ) ) 
    addEventHandler ( "onClientGUIClick", root, clickingevents_jobmenu ) 
     
end ) 
  
function clickingevents_jobmenu ( ) 
    if ( source == JobDeny ) then 
        desc = nil 
        openedJob = nil 
        guiSetVisible ( JobWindow, false ) 
        showCursor ( false ) 
        removeEventHandler ( "onClientGUIClick", root, clickingevents_jobmenu ) 
    elseif ( source == JobAccept ) then 
         
        triggerServerEvent ( "SAEGJobs:SetPlayerJob", localPlayer, openedJob ) 
     
        desc = nil 
        openedJob = nil 
        guiSetVisible ( JobWindow, false ) 
        showCursor ( false ) 
        removeEventHandler ( "onClientGUIClick", root, clickingevents_jobmenu ) 
    end 
end 
  
addEventHandler ( 'onClientPlayerWasted', root, function ( ) 
    if ( source == localPlayer ) then 
        showCursor ( false ) 
        guiSetVisible ( JobWindow, false ) 
    end 
end ) 
  
  
  
  
  
  
  
  
  
  
addEvent ( "onPlayerResign", true ) 
  
 

NGJobs > core_server

change with this code :

max_wanted = { 
    community = 2,
    law = 3,
    criminal = 7
}
 
jobRanks = {
    ['criminal'] = {
        [0] = "L.G",
        [50] = "L.Y.G",
        [75] = "Y.G",
        [120] = "OYG",
        [200] = "O.G",
        [310] = "G.C.L",
        [499] = "G.L",
    },
    ['police officer'] = {
        [0] ="Officer",
        [90]="Corporal",
        [200]="Trooper",
        [310]="Sergeant",
        [450]="Captain",
        [600]="Commander",
        [900]="Chief of Police",
    },
    ['medic'] = {
        [0] = "Assistant",
        [50] = "Training",
        [100]= "Nurse",
        [130] = "Paramedic",
        [200] = "Doctor",
        [260] = "Surgeon"
    },
    ['mechanic'] = {
        [0] = "Rookie",
        [40] = "Wheel Specialist",
        [100]= "Engine Specialist",
        [140]= "Vehicle Professional",
        [200]= "Motorcycle Specialist",
        [245]= "Vehicle Master"
    },
    ['fisherman'] = {
        [0] = "Deck Hand",
        [20]= "Net Baiter",
        [75]= "Line Thrower",
        [100]="Line Roller",
        [140]="Boat Captain",
        [200]="Experienced Fisherman",
        [270]="Underwater Trap Setter"
    },
    ['detective'] = {
        [0] = "Detective",
    },
  ['military'] = {
        [0] ="Soldier",
    },
     ['swat'] = {
        [0] ="Officer",
    },
         ['riot'] = {
        [0] ="RIOT Officer",
    },
    ['pilot'] = {
        [0] = "Junior flight officer",
        [25] = "Flight Officer",
        [50] = "First Officer",
        [120] = "Captain",
        [180] = "Senior Captain",
        [250] = "Commercial First Officer",
        [310] = "Commercial Captain",
        [390] = "Commercial Commander",
        [460] = "Commercial Senior Commander",
    },
    ['stunter'] = {
        [0] = "Crash Dummy",
        [50] = "Crash",
        [150] = "Experienced",
        [200] = "Professional",
        [300] = "Expert BMXer"
    }
}
 
function getJobRankTable ( )
    return jobRanks
end
 
exports['Scoreboard']:scoreboardAddColumn  ( "Job", root, 90, "Job", 4 )
exports['Scoreboard']:scoreboardAddColumn  ( "Job Rank", root, 90, "Job Rank", 5 )
 
function create3DText ( str, pos, color, parent, settings )
    if str and pos and color then
        local text = createElement ( '3DText' )
        local settings = settings or  { }
        setElementData ( text, "text", str )
        setElementData ( text, "position", pos )
        setElementData ( text, "color", color )
        if ( not parent ) then
            parent = nil
        else
            if ( isElement ( parent ) ) then
                parent = parent
            else
                parent = nil
            end
        end
        setElementData ( text, "Settings", settings )
        setElementData ( text, "parentElement", parent )
        setElementData ( text, "sourceResource", sourceResource or getThisResource ( ))
        return text
    end
    return false
end
 
addEventHandler ( "onResourceStop", root, function ( r )
    for i, v in pairs ( getElementsByType ( "3DText" ) ) do
        if ( r == getElementData ( v, "sourceResource" ) ) then
            destroyElement ( v )
        end
    end
end )
 
function createJob ( name, x, y, z, rz )
    if ( name == 'Criminal' ) then
        create3DText ( 'Criminal', { x, y, z }, { 255, 0, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 109 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 59, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.criminal ) then
                    return exports['SAEGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.criminal )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'SAEGJobs:OpenJobMenu', p, 'criminal' )
            end
        end )
       
    ----------------------------------
    -- Law Jobs                     --
    ----------------------------------    
    elseif ( name == 'Police' ) then
        create3DText ( 'Police', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 286 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['SAEGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'SAEGJobs:OpenJobMenu', p, 'police' )
            end
        end )
       
    elseif ( name == 'Detective' ) then
        create3DText ( 'Detective', { x, y, z }, { 0, 120, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 17 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['SAEGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
               
                local arrests = getJobColumnData ( getAccountName ( getPlayerAccount ( p ) ), getDatabaseColumnTypeFromJob ( "police officer" ) )
                if ( arrests < 0 ) then
                    return exports.SAEGMessages:sendClientMessage ( "This job requires at least 150 arrests", p, 255, 255, 0 )
                end
               
                triggerClientEvent ( p, 'SAEGJobs:OpenJobMenu', p, 'detective' )
            end
        end )
       
    elseif ( name == 'Military' ) then
        create3DText ( 'Military', { x, y, z }, { 0, 120, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 287 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['SAEGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                if ( getElementData(p, "Group") ~= "Military" ) then
                    return exports['SAEGMessages']:sendClientMessage ( "This job is available only for Military members.", p, 255, 0, 0)
                end
                local arrests = getJobColumnData ( getAccountName ( getPlayerAccount ( p ) ), getDatabaseColumnTypeFromJob ( "police officer" ) )
                if ( arrests < 0 ) then
                    return exports.SAEGMessages:sendClientMessage ( "This job requires at least 150 arrests", p, 255, 255, 0 )
                end
               
                triggerClientEvent ( p, 'SAEGJobs:OpenJobMenu', p, 'military' )
            end
        end )      
    elseif ( name == 'SWAT' ) then
        create3DText ( 'SWAT', { x, y, z }, { 0, 120, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 285 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['SAEGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                if ( getElementData(p, "Group") ~= "SWAT" ) then
                    return exports['SAEGMessages']:sendClientMessage ( "This job is available only for SWAT members.", p, 255, 0, 0)
                end
                local arrests = getJobColumnData ( getAccountName ( getPlayerAccount ( p ) ), getDatabaseColumnTypeFromJob ( "police officer" ) )
                if ( arrests < 0 ) then
                    return exports.SAEGMessages:sendClientMessage ( "This job requires at least 150 arrests", p, 255, 255, 0 )
                end
               
                triggerClientEvent ( p, 'SAEGJobs:OpenJobMenu', p, 'swat' )
            end
        end )      
       
    ----------------------------------
    -- Emergency Jobs               --
    ----------------------------------
    elseif ( name == 'Medic' ) then
        create3DText ( 'Medic', { x, y, z }, { 0, 255, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 274 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 58, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['SAEGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'SAEGJobs:OpenJobMenu', p, 'medic' )
            end
        end )
       
    ----------------------------------
    -- Community Jobs               --
    ----------------------------------
    elseif ( name == 'Mechanic' ) then
        create3DText ( 'Mechanic', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 30 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if (
Link to comment
addEventHandler("onResourceStart", resourceRoot, 
function ()
    createTeam("SWAT", 20, 255, 20)
end)
 
 
 
max_wanted = {
    community = 2,
    law = 1,
    criminal = 7
}
 
jobRanks = {
    ['criminal'] = {
        [0] = "L.G",
        [50] = "L.Y.G",
        [75] = "Y.G",
        [120] = "OYG",
        [200] = "O.G",
        [310] = "G.C.L",
        [499] = "G.L",
    },
    ['police officer'] = {
        [0] ="Officer",
        [90]="Corporal",
        [200]="Trooper",
        [310]="Sergeant",
        [450]="Captain",
        [600]="Commander",
        [900]="Chief of Police",
    },
    ['swat officer'] = {
        [0] ="none",
 
    },
    ['medic'] = {
        [0] = "Assistant",
        [50] = "Training",
        [100]= "Nurse",
        [130] = "Paramedic",
        [200] = "Doctor",
        [260] = "Surgeon"
    },
    ['mechanic'] = {
        [0] = "Rookie",
        [40] = "Wheel Specialist",
        [100]= "Engine Specialist",
        [140]= "Vehicle Professional",
        [200]= "Motorcycle Specialist",
        [245]= "Vehicle Master"
    },
    ['fisherman'] = {
        [0] = "Deck Hand",
        [20]= "Net Baiter",
        [75]= "Line Thrower",
        [100]="Line Roller",
        [140]="Boat Captain",
        [200]="Experienced Fisherman",
        [270]="Underwater Trap Setter"
    },
    ['detective'] = {
        [0] = "Detective"
    },
    ['pilot'] = {
        [0] = "Junior flight officer",
        [25] = "Flight Officer",
        [50] = "First Officer",
        [120] = "Captain",
        [180] = "Senior Captain",
        [250] = "Commercial First Officer",
        [310] = "Commercial Captain",
        [390] = "Commercial Commander",
        [460] = "Commercial Senior Commander",
    },
    ['stunter'] = {
        [0] = "Crash Dummy",
        [50] = "Crash",
        [150] = "Experienced",
        [200] = "Professional",
        [300] = "Expert BMXer"
    }
}
 
function getJobRankTable ( )
    return jobRanks
end
 
exports['Scoreboard']:scoreboardAddColumn  ( "Job", root, 90, "Job", 4 )
exports['Scoreboard']:scoreboardAddColumn  ( "Job Rank", root, 90, "Job Rank", 5 )
 
function create3DText ( str, pos, color, parent, settings )
    if str and pos and color then
        local text = createElement ( '3DText' )
        local settings = settings or  { }
        setElementData ( text, "text", str )
        setElementData ( text, "position", pos )
        setElementData ( text, "color", color )
        if ( not parent ) then
            parent = nil
        else
            if ( isElement ( parent ) ) then
                parent = parent
            else
                parent = nil
            end
        end
        setElementData ( text, "Settings", settings )
        setElementData ( text, "parentElement", parent )
        setElementData ( text, "sourceResource", sourceResource or getThisResource ( ))
        return text
    end
    return false
end
 
addEventHandler ( "onResourceStop", root, function ( r )
    for i, v in pairs ( getElementsByType ( "3DText" ) ) do
        if ( r == getElementData ( v, "sourceResource" ) ) then
            destroyElement ( v )
        end
    end
end )
 
function createJob ( name, x, y, z, rz )
    if ( name == 'Criminal' ) then
        create3DText ( 'Criminal', { x, y, z }, { 255, 0, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 28 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 59, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.criminal ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.criminal )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'criminal' )
            end
        end )
       
    ----------------------------------
    -- Law Jobs                     --
    ----------------------------------    
    elseif ( name == 'Police' ) then
        create3DText ( 'Police', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 281 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'police' )
            end
        end )
   
     elseif ( name == 'SWAT' ) then
        create3DText ( 'SWAT', { x, y, z }, { 0, 100, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 285 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'swat' )
            end
        end )
       
    elseif ( name == 'Detective' ) then
        create3DText ( 'Detective', { x, y, z }, { 0, 120, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 17 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 61, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.law ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.law )..".", p, 255, 0, 0 )
                end
               
                local arrests = getJobColumnData ( getAccountName ( getPlayerAccount ( p ) ), getDatabaseColumnTypeFromJob ( "police officer" ) )
                if ( arrests < 150 ) then
                    return exports.NGMessages:sendClientMessage ( "This job requires at least 150 arrests", p, 255, 255, 0 )
                end
               
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'detective' )
            end
        end )
       
       
    ----------------------------------
    -- Emergency Jobs               --
    ----------------------------------
    elseif ( name == 'Medic' ) then
        create3DText ( 'Medic', { x, y, z }, { 0, 255, 255 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 274 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 58, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'medic' )
            end
        end )
       
    ----------------------------------
    -- Community Jobs               --
    ----------------------------------
    elseif ( name == 'Mechanic' ) then
        create3DText ( 'Mechanic', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 30 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'mechanic' )
            end
        end )
    elseif ( name == 'Fisher' ) then
        create3DText ( 'Fisher', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 45 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) and not isPedDead ( p ) ) then
                if ( getPlayerWantedLevel ( p ) > max_wanted.community ) then
                    return exports['NGMessages']:sendClientMessage ( "The max wanted level for this job is "..tostring ( max_wanted.community )..".", p, 255, 0, 0 )
                end
                triggerClientEvent ( p, 'NGJobs:OpenJobMenu', p, 'fisherman' )
            end
        end )
    elseif ( name == "Pilot" ) then
        create3DText ( 'Pilot', { x, y, z }, { 255, 255, 0 }, { nil, true } )
        local p = createElement ( "GodmodePed" )
        setElementData ( p, "Model", 61 )
        setElementData ( p, "Position", { x, y, z, rz } )
        createBlip ( x, y, z, 60, 2, 255, 255, 255, 255, 0, 450 )
        addEventHandler ( 'onMarkerHit', createMarker ( x, y, z - 1, 'cylinder', 2, 0, 0, 0, 0 ), function ( p )
            if (
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...