Jump to content

Legalsystem problem


Lucario

Recommended Posts

Hi, i have the Legalsystem from the community edited and fixed, i keep the rights of the autors, but when im the cop, i cannot arrest anyone, and anyone cannot arrest me, idk what is the error, here is the server side (edited):

kingCOP = createElement( "Pgroup", "cops" ) 
kingCIV = createElement( "Pgroup", "civs" )
kingNONE = createElement( "Pgroup", "none" )
 
function legalstartup(startedresource)
    if startedresource == getThisResource() then
        WantedWatch = setTimer (wantedlevelmonitor, 1000, 0)
        local allplayers = getElementsByType ( "player" )
        local detectmethod = get("legalsystem.Copmethod")
        for playerKey,thePlayer in ipairs(allplayers) do
            if detectmethod == "team" then
                local copteam = get("legalsystem.Copteam")
                local thisTeam = getPlayerTeam(thePlayer)
                if thisTeam ~= false then
                    if thisTeam == getTeamFromName(copteam) then
                        setElementParent ( thePlayer, kingCOP )
                    else
                        setElementParent ( thePlayer, kingCIV )
                    end
                end
            elseif detectmethod == "skin" then
                local thisSkin = getPedSkin(thePlayer)
                setElementData(getRootElement(),"Copskins",get("legalsystem.Copskins"))
                local copskins = getElementData(getRootElement(),"Copskins")
                if type(copskins) == "table" and #copskins > 0 then
                    for k,skinID in ipairs(copskins) do
                        copskins[skinID] = true
                    end
                end            
                local isacop = 0               
                for ElementKey, ElementValue in ipairs ( copskins ) do
                    if thisSkin == ElementValue then
                        isacop = 1
                    end
                end
                if isacop == 1 then
                    setElementParent ( thePlayer, kingCOP )
                else
                    setElementParent ( thePlayer, kingCIV )
                end
            end
        end
    end
end
addEventHandler( "onResourceStart", getRootElement(), legalstartup)
 
function copSpawnCheck()
    local detectmethod = get("legalsystem.Copmethod")
    if detectmethod == "team" then
        local copteam = get("legalsystem.Copteam")
        local thisTeam = getPlayerTeam(source)
        if thisTeam ~= false then
            if thisTeam == getTeamFromName(copteam) then
                setElementParent ( source, kingCOP )
            else
                setElementParent ( source, kingCIV )
            end
        end
    elseif detectmethod == "skin" then
        local thisSkin = getPedSkin(source)
        setElementData(getRootElement(),"Copskins",get("legalsystem.Copskins"))
        local copskins = getElementData(getRootElement(),"Copskins")
        if type(copskins) == "table" and #copskins > 0 then
            for k,skinID in ipairs(copskins) do
                copskins[skinID] = true
            end
        end
        local isacop = 0
        for ElementKey, ElementValue in ipairs ( copskins ) do
            if thisSkin == ElementValue then
                isacop = 1
            end
        end
        if isacop == 1 then
            setElementParent ( source, kingCOP )
        else
            setElementParent ( source, kingCIV )
        end
    end
end
addEventHandler ( "onPlayerSpawn", getRootElement(), copSpawnCheck )
 
--ARREST PLAYERS BY SMACKING WITH A NIGHTSTICK
function rodneykingcheck ( attacker, weapon, bodypart, loss )
    if (attacker) and (weapon == 3) then   
        if getElementParent(attacker) == kingCOP then
            local thecop = attacker
            local theprisoner = source
            local wlevel = getPlayerWantedLevel( source )   
            if (getElementData ( theprisoner, "currentstatus" ) ~= "underarrest") and (wlevel > 0) then 
                if (getElementData ( attacker, "currentarrests" ) ~= "single" ) and (getElementData ( attacker, "currentarrests" ) ~= "double" ) then   
                    setElementData ( thecop, "currentarrests", "single" )
                    triggerClientEvent(thecop,"copdirections",thecop)
                elseif (getElementData ( attacker, "currentarrests" ) == "single" ) then
                    setElementData ( thecop, "currentarrests", "double" )   
                end
                setElementData ( theprisoner, "currentstatus", "underarrest" )
                setElementData ( theprisoner, "captor", thecop )
                showCursor ( source, true )
                toggleAllControls ( source, false, true, false )
                walktheprisoner ( thecop, theprisoner )
                setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
            end
        end
    end
end
addEventHandler ( "onPlayerDamage", getRootElement(), rodneykingcheck )
 
--ARREST PLAYERS BY HOLDING THEM AT GUNPOINT IF THEY HAVE LOW HP
function sightscheck ( element )
    if isElement(element) then
        if ( getElementType ( element ) == "player" ) then
            if ( getControlState ( source, "aim_weapon" ) ) then
                local currentgun = getPedWeapon ( source )
                local wlevel = getPlayerWantedLevel( element )
                if (currentgun > 19) and (currentgun < 39)  and (wlevel > 0) then
                    if getElementParent(source) == kingCOP then
                        local thecop = source
                        local theprisoner = element
                        local cx, cy, cz = getElementPosition ( source )
                        local px, py, pz = getElementPosition ( element )
                        if ( getElementHealth ( element ) < 15 ) and ( getDistanceBetweenPoints3D ( cx, cy, cz, px, py, pz ) < 3 ) then
                            if (getElementData ( theprisoner, "currentstatus" ) ~= "underarrest" ) then
                                if (getElementData ( thecop, "currentarrests" ) ~= "single" ) and (getElementData ( thecop, "currentarrests" ) ~= "double" ) then
                                    triggerClientEvent(thecop,"copdirections",thecop)
                                    setElementData ( thecop, "currentarrests", "single" )
                                elseif (getElementData ( thecop, "currentarrests" ) == "single" ) then
                                    setElementData ( thecop, "currentarrests", "double" )              
                                end
                                setElementData ( theprisoner, "currentstatus", "underarrest" )
                                setElementData ( theprisoner, "captor", thecop )
                                showCursor ( theprisoner, true )
                                toggleAllControls ( theprisoner, false, true, false )      
                                walktheprisoner ( thecop, theprisoner )
                                setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
--                              local arresttoolong = setTimer ( freetheguy, 180000, 1, theprisoner )
                            end
                        end
                    end
                end
            end
        end
    end
end
addEventHandler ( "onPlayerTarget", getRootElement(), sightscheck )
 
--ARREST PLAYERS BY PULLING THEM OUT OF A VEHICLE
function yankhimout(player, seat, jacker)
    if isElement(jacker) then
        if getElementParent(jacker) == kingCOP then
            local wlevel = getPlayerWantedLevel( player )
            if wlevel > 0 then
                if (getElementData ( jacker, "currentarrests" ) ~= "single" ) and (getElementData ( jacker, "currentarrests" ) ~= "double" ) then
                    local thecop = jacker
                    local theprisoner = player
                    setElementData ( theprisoner, "currentstatus", "underarrest" )
                    setElementData ( theprisoner, "captor", thecop )
                    setElementData ( thecop, "currentarrests", "single" )
                    triggerClientEvent(thecop,"copdirections",thecop)
                    showCursor ( theprisoner, true )
                    toggleAllControls ( theprisoner, false, true, false )      
                    walktheprisoner ( thecop, theprisoner )
                    setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
                elseif (getElementData ( jacker, "currentarrests" ) == "single" ) then
                    local thecop = jacker
                    local theprisoner = player
                    setElementData ( theprisoner, "currentstatus", "underarrest" )
                    setElementData ( theprisoner, "captor", thecop )
                    setElementData ( thecop, "currentarrests", "double" )
                    showCursor ( theprisoner, true )
                    toggleAllControls ( theprisoner, false, true, false )
                    walktheprisoner ( thecop, theprisoner )
                    setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
                end            
            end
        end
    end
end
addEventHandler ( "onVehicleExit", getRootElement(), yankhimout )
 
--FORCES A PRISONER TO FOLLOW THE COP
function walktheprisoner(thecop, theprisoner)
    if (getElementData ( theprisoner, "currentstatus" ) == "underarrest") and (getPedOccupiedVehicle ( theprisoner ) == false ) then
        local copx, copy, copz = getElementPosition ( thecop )
        local prisonerx, prisonery, prisonerz = getElementPosition ( theprisoner )
        copangle = ( 360 - math.deg ( math.atan2 ( ( copx - prisonerx ), ( copy - prisonery ) ) ) ) % 360
        setPedRotation ( theprisoner, copangle )
        setCameraTarget ( theprisoner, theprisoner )
        local dist = getDistanceBetweenPoints2D ( copx, copy, prisonerx, prisonery )
                if ( dist > 40 ) then
                freetheguy ( theprisoner )
                end
            elseif ( dist > 12 ) then
            setControlState ( theprisoner, "sprint", true )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist > 6 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist > 1.5 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", true )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist < 1.5 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", false )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
            end
            end
 
--FREES A PLAYER (RESETS THEIR CONTROLS AND STATUS)
function freetheguy (theprisoner)
    local thecaptor = (getElementData ( theprisoner, "captor" ))
    setElementData ( theprisoner, "currentstatus", "none" )
    setElementData ( theprisoner, "captor", "none" )
    showCursor ( theprisoner, false )
    setControlState ( theprisoner, "sprint", false )
    setControlState ( theprisoner, "walk", false )
    setControlState ( theprisoner, "forwards", false )
    toggleAllControls (theprisoner, true)   
    local prisonercheck = setTimer ( checkforprisoners, 1500, 1, thecaptor )
    TimoutTimer = (getElementData ( theprisoner, "arrestTimeout" ))
    if isTimer(TimoutTimer) then
         killTimer(TimoutTimer)
         setElementData ( theprisoner, "arrestTimeout", nil)
         TimeoutTimer = nil
    end
end
 
function checkforprisoners(thecop)
    if isElement(thecop) then
        local prisoners = 0
        local players = getElementsByType ( "player" )
        for theKey,thePlayer in ipairs(players) do
            if (getElementData ( thePlayer, "captor" ) == thecop ) then
                prisoners = prisoners+1
            end
        end
        if prisoners == 0 then
            setElementData ( thecop, "currentarrests", "none" )
            triggerClientEvent( thecop,"clearcopdirections",thecop)
        elseif prisoners == 1 then
            setElementData ( thecop, "currentarrests", "single" )
        elseif prisoners == 2 then
            setElementData ( thecop, "currentarrests", "double" )
        end
   
Link to comment

is the teams created ?!

are you in the cop team ?!

* Edit

try this :

kingCOP = createElement( "Pgroup", "cops" ) 
kingCIV = createElement( "Pgroup", "civs" )
kingNONE = createElement( "Pgroup", "none" )
 
function legalstartup(startedresource)
    if startedresource == getThisResource() then
        createTeam ( get( 'legalsystem.Copteam' ) );
        WantedWatch = setTimer (wantedlevelmonitor, 1000, 0)
        local allplayers = getElementsByType ( "player" )
        local detectmethod = get("legalsystem.Copmethod")
        for playerKey,thePlayer in ipairs(allplayers) do
            if detectmethod == "team" then
                local copteam = get("legalsystem.Copteam")
                local thisTeam = getPlayerTeam(thePlayer)
                if thisTeam ~= false then
                    if thisTeam == getTeamFromName(copteam) then
                        setElementParent ( thePlayer, kingCOP )
                    else
                        setElementParent ( thePlayer, kingCIV )
                    end
                end
            elseif detectmethod == "skin" then
                local thisSkin = getPedSkin(thePlayer)
                setElementData(getRootElement(),"Copskins",get("legalsystem.Copskins"))
                local copskins = getElementData(getRootElement(),"Copskins")
                if type(copskins) == "table" and #copskins > 0 then
                    for k,skinID in ipairs(copskins) do
                        copskins[skinID] = true
                    end
                end            
                local isacop = 0              
                for ElementKey, ElementValue in ipairs ( copskins ) do
                    if thisSkin == ElementValue then
                        isacop = 1
                    end
                end
                if isacop == 1 then
                    setElementParent ( thePlayer, kingCOP )
                else
                    setElementParent ( thePlayer, kingCIV )
                end
            end
        end
    end
end
addEventHandler( "onResourceStart", getRootElement(), legalstartup)
 
function copSpawnCheck()
    local detectmethod = get("legalsystem.Copmethod")
    if detectmethod == "team" then
        local copteam = get("legalsystem.Copteam")
        local thisTeam = getPlayerTeam(source)
        if thisTeam ~= false then
            if thisTeam == getTeamFromName(copteam) then
                setElementParent ( source, kingCOP )
            else
                setElementParent ( source, kingCIV )
            end
        end
    elseif detectmethod == "skin" then
        local thisSkin = getPedSkin(source)
        setElementData(getRootElement(),"Copskins",get("legalsystem.Copskins"))
        local copskins = getElementData(getRootElement(),"Copskins")
        if type(copskins) == "table" and #copskins > 0 then
            for k,skinID in ipairs(copskins) do
                copskins[skinID] = true
            end
        end
        local isacop = 0
        for ElementKey, ElementValue in ipairs ( copskins ) do
            if thisSkin == ElementValue then
                isacop = 1
            end
        end
        if isacop == 1 then
            setElementParent ( source, kingCOP )
        else
            setElementParent ( source, kingCIV )
        end
    end
end
addEventHandler ( "onPlayerSpawn", getRootElement(), copSpawnCheck )
 
--ARREST PLAYERS BY SMACKING WITH A NIGHTSTICK
function rodneykingcheck ( attacker, weapon, bodypart, loss )
    if (attacker) and (weapon == 3) then  
        if getElementParent(attacker) == kingCOP then
            local thecop = attacker
            local theprisoner = source
            local wlevel = getPlayerWantedLevel( source )  
            if (getElementData ( theprisoner, "currentstatus" ) ~= "underarrest") and (wlevel > 0) then
                if (getElementData ( attacker, "currentarrests" ) ~= "single" ) and (getElementData ( attacker, "currentarrests" ) ~= "double" ) then  
                    setElementData ( thecop, "currentarrests", "single" )
                    triggerClientEvent(thecop,"copdirections",thecop)
                elseif (getElementData ( attacker, "currentarrests" ) == "single" ) then
                    setElementData ( thecop, "currentarrests", "double" )  
                end
                setElementData ( theprisoner, "currentstatus", "underarrest" )
                setElementData ( theprisoner, "captor", thecop )
                showCursor ( source, true )
                toggleAllControls ( source, false, true, false )
                walktheprisoner ( thecop, theprisoner )
                setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
            end
        end
    end
end
addEventHandler ( "onPlayerDamage", getRootElement(), rodneykingcheck )
 
--ARREST PLAYERS BY HOLDING THEM AT GUNPOINT IF THEY HAVE LOW HP
function sightscheck ( element )
    if isElement(element) then
        if ( getElementType ( element ) == "player" ) then
            if ( getControlState ( source, "aim_weapon" ) ) then
                local currentgun = getPedWeapon ( source )
                local wlevel = getPlayerWantedLevel( element )
                if (currentgun > 19) and (currentgun < 39)  and (wlevel > 0) then
                    if getElementParent(source) == kingCOP then
                        local thecop = source
                        local theprisoner = element
                        local cx, cy, cz = getElementPosition ( source )
                        local px, py, pz = getElementPosition ( element )
                        if ( getElementHealth ( element ) < 15 ) and ( getDistanceBetweenPoints3D ( cx, cy, cz, px, py, pz ) < 3 ) then
                            if (getElementData ( theprisoner, "currentstatus" ) ~= "underarrest" ) then
                                if (getElementData ( thecop, "currentarrests" ) ~= "single" ) and (getElementData ( thecop, "currentarrests" ) ~= "double" ) then
                                    triggerClientEvent(thecop,"copdirections",thecop)
                                    setElementData ( thecop, "currentarrests", "single" )
                                elseif (getElementData ( thecop, "currentarrests" ) == "single" ) then
                                    setElementData ( thecop, "currentarrests", "double" )              
                                end
                                setElementData ( theprisoner, "currentstatus", "underarrest" )
                                setElementData ( theprisoner, "captor", thecop )
                                showCursor ( theprisoner, true )
                                toggleAllControls ( theprisoner, false, true, false )      
                                walktheprisoner ( thecop, theprisoner )
                                setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
--                              local arresttoolong = setTimer ( freetheguy, 180000, 1, theprisoner )
                            end
                        end
                    end
                end
            end
        end
    end
end
addEventHandler ( "onPlayerTarget", getRootElement(), sightscheck )
 
--ARREST PLAYERS BY PULLING THEM OUT OF A VEHICLE
function yankhimout(player, seat, jacker)
    if isElement(jacker) then
        if getElementParent(jacker) == kingCOP then
            local wlevel = getPlayerWantedLevel( player )
            if wlevel > 0 then
                if (getElementData ( jacker, "currentarrests" ) ~= "single" ) and (getElementData ( jacker, "currentarrests" ) ~= "double" ) then
                    local thecop = jacker
                    local theprisoner = player
                    setElementData ( theprisoner, "currentstatus", "underarrest" )
                    setElementData ( theprisoner, "captor", thecop )
                    setElementData ( thecop, "currentarrests", "single" )
                    triggerClientEvent(thecop,"copdirections",thecop)
                    showCursor ( theprisoner, true )
                    toggleAllControls ( theprisoner, false, true, false )      
                    walktheprisoner ( thecop, theprisoner )
                    setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
                elseif (getElementData ( jacker, "currentarrests" ) == "single" ) then
                    local thecop = jacker
                    local theprisoner = player
                    setElementData ( theprisoner, "currentstatus", "underarrest" )
                    setElementData ( theprisoner, "captor", thecop )
                    setElementData ( thecop, "currentarrests", "double" )
                    showCursor ( theprisoner, true )
                    toggleAllControls ( theprisoner, false, true, false )
                    walktheprisoner ( thecop, theprisoner )
                    setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
                end            
            end
        end
    end
end
addEventHandler ( "onVehicleExit", getRootElement(), yankhimout )
 
--FORCES A PRISONER TO FOLLOW THE COP
function walktheprisoner(thecop, theprisoner)
    if (getElementData ( theprisoner, "currentstatus" ) == "underarrest") and (getPedOccupiedVehicle ( theprisoner ) == false ) then
        local copx, copy, copz = getElementPosition ( thecop )
        local prisonerx, prisonery, prisonerz = getElementPosition ( theprisoner )
        copangle = ( 360 - math.deg ( math.atan2 ( ( copx - prisonerx ), ( copy - prisonery ) ) ) ) % 360
        setPedRotation ( theprisoner, copangle )
        setCameraTarget ( theprisoner, theprisoner )
        local dist = getDistanceBetweenPoints2D ( copx, copy, prisonerx, prisonery )
                if ( dist > 40 ) then
                freetheguy ( theprisoner )
                end
            elseif ( dist > 12 ) then
            setControlState ( theprisoner, "sprint", true )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist > 6 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist > 1.5 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", true )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist < 1.5 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", false )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
            end
            end
 
--FREES A PLAYER (RESETS THEIR CONTROLS AND STATUS)
function freetheguy (theprisoner)
    local thecaptor = (getElementData ( theprisoner, "captor" ))
    setElementData ( theprisoner, "currentstatus", "none" )
    setElementData ( theprisoner, "captor", "none" )
    showCursor ( theprisoner, false )
    setControlState ( theprisoner, "sprint", false )
    setControlState ( theprisoner, "walk", false )
    setControlState ( theprisoner, "forwards", false )
    toggleAllControls (theprisoner, true)  
    local prisonercheck = setTimer ( checkforprisoners, 1500, 1, thecaptor )
    TimoutTimer = (getElementData ( theprisoner, "arrestTimeout" ))
    if isTimer(TimoutTimer) then
         killTimer(TimoutTimer)
         setElementData ( theprisoner, "arrestTimeout", nil)
         TimeoutTimer = nil
    end
end
 
function checkforprisoners(thecop)
    if isElement(thecop) then
        local prisoners = 0
        local players = getElementsByType ( "player" )
        for theKey,thePlayer in ipairs(players) do
            if (getElementData ( thePlayer, "captor" ) == thecop ) then
                prisoners = prisoners+1
            end
        end
        if prisoners == 0 then
            setElementData ( thecop, "currentarrests", "none" )
            triggerClientEvent( thecop,"clearcopdirections",thecop)
        elseif prisoners == 1 then
            setElementData ( thecop, "currentarrests", "single" )
        elseif prisoners == 2 then
           
Edited by Guest
Link to comment

Sorry, the resource dont get errors, when anyone hit me with the nighstick and i have stars, nothing happen, the name is legalsystem, i have fixed the meta:

    "jail.map" /> 
    

The clientside and server side:

kingCOP = createElement( "Pgroup", "cops" ) 
kingCIV = createElement( "Pgroup", "civs" )
kingNONE = createElement( "Pgroup", "none" )
 
function legalstartup(startedresource)
    if startedresource == getThisResource() then
        createTeam ( get( 'legalsystem.Copteam' ) );
        WantedWatch = setTimer (wantedlevelmonitor, 1000, 0)
        local allplayers = getElementsByType ( "player" )
        local detectmethod = get("legalsystem.Copmethod")
        for playerKey,thePlayer in ipairs(allplayers) do
            if detectmethod == "team" then
                local copteam = get("legalsystem.Copteam")
                local thisTeam = getPlayerTeam(thePlayer)
                if thisTeam ~= false then
                    if thisTeam == getTeamFromName(copteam) then
                        setElementParent ( thePlayer, kingCOP )
                    else
                        setElementParent ( thePlayer, kingCIV )
                    end
                end
            elseif detectmethod == "skin" then
                local thisSkin = getPedSkin(thePlayer)
                setElementData(getRootElement(),"Copskins",get("legalsystem.Copskins"))
                local copskins = getElementData(getRootElement(),"Copskins")
                if type(copskins) == "table" and #copskins > 0 then
                    for k,skinID in ipairs(copskins) do
                        copskins[skinID] = true
                    end
                end            
                local isacop = 0              
                for ElementKey, ElementValue in ipairs ( copskins ) do
                    if thisSkin == ElementValue then
                        isacop = 1
                    end
                end
                if isacop == 1 then
                    setElementParent ( thePlayer, kingCOP )
                else
                    setElementParent ( thePlayer, kingCIV )
                end
            end
        end
    end
end
addEventHandler( "onResourceStart", getRootElement(), legalstartup)
 
function copSpawnCheck()
    local detectmethod = get("legalsystem.Copmethod")
    if detectmethod == "team" then
        local copteam = get("legalsystem.Copteam")
        local thisTeam = getPlayerTeam(source)
        if thisTeam ~= false then
            if thisTeam == getTeamFromName(copteam) then
                setElementParent ( source, kingCOP )
            else
                setElementParent ( source, kingCIV )
            end
        end
    elseif detectmethod == "skin" then
        local thisSkin = getPedSkin(source)
        setElementData(getRootElement(),"Copskins",get("legalsystem.Copskins"))
        local copskins = getElementData(getRootElement(),"Copskins")
        if type(copskins) == "table" and #copskins > 0 then
            for k,skinID in ipairs(copskins) do
                copskins[skinID] = true
            end
        end
        local isacop = 0
        for ElementKey, ElementValue in ipairs ( copskins ) do
            if thisSkin == ElementValue then
                isacop = 1
            end
        end
        if isacop == 1 then
            setElementParent ( source, kingCOP )
        else
            setElementParent ( source, kingCIV )
        end
    end
end
addEventHandler ( "onPlayerSpawn", getRootElement(), copSpawnCheck )
 
--ARREST PLAYERS BY SMACKING WITH A NIGHTSTICK
function rodneykingcheck ( attacker, weapon, bodypart, loss )
    if (attacker) and (weapon == 3) then  
        if getElementParent(attacker) == kingCOP then
            local thecop = attacker
            local theprisoner = source
            local wlevel = getPlayerWantedLevel( source )  
            if (getElementData ( theprisoner, "currentstatus" ) ~= "underarrest") and (wlevel > 0) then
                if (getElementData ( attacker, "currentarrests" ) ~= "single" ) and (getElementData ( attacker, "currentarrests" ) ~= "double" ) then  
                    setElementData ( thecop, "currentarrests", "single" )
                    triggerClientEvent(thecop,"copdirections",thecop)
                elseif (getElementData ( attacker, "currentarrests" ) == "single" ) then
                    setElementData ( thecop, "currentarrests", "double" )  
                end
                setElementData ( theprisoner, "currentstatus", "underarrest" )
                setElementData ( theprisoner, "captor", thecop )
                showCursor ( source, true )
                toggleAllControls ( source, false, true, false )
                walktheprisoner ( thecop, theprisoner )
                setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
            end
        end
    end
end
addEventHandler ( "onPlayerDamage", getRootElement(), rodneykingcheck )
 
--ARREST PLAYERS BY HOLDING THEM AT GUNPOINT IF THEY HAVE LOW HP
function sightscheck ( element )
    if isElement(element) then
        if ( getElementType ( element ) == "player" ) then
            if ( getControlState ( source, "aim_weapon" ) ) then
                local currentgun = getPedWeapon ( source )
                local wlevel = getPlayerWantedLevel( element )
                if (currentgun > 19) and (currentgun < 39)  and (wlevel > 0) then
                    if getElementParent(source) == kingCOP then
                        local thecop = source
                        local theprisoner = element
                        local cx, cy, cz = getElementPosition ( source )
                        local px, py, pz = getElementPosition ( element )
                        if ( getElementHealth ( element ) < 15 ) and ( getDistanceBetweenPoints3D ( cx, cy, cz, px, py, pz ) < 3 ) then
                            if (getElementData ( theprisoner, "currentstatus" ) ~= "underarrest" ) then
                                if (getElementData ( thecop, "currentarrests" ) ~= "single" ) and (getElementData ( thecop, "currentarrests" ) ~= "double" ) then
                                    triggerClientEvent(thecop,"copdirections",thecop)
                                    setElementData ( thecop, "currentarrests", "single" )
                                elseif (getElementData ( thecop, "currentarrests" ) == "single" ) then
                                    setElementData ( thecop, "currentarrests", "double" )              
                                end
                                setElementData ( theprisoner, "currentstatus", "underarrest" )
                                setElementData ( theprisoner, "captor", thecop )
                                showCursor ( theprisoner, true )
                                toggleAllControls ( theprisoner, false, true, false )      
                                walktheprisoner ( thecop, theprisoner )
                                setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
--                              local arresttoolong = setTimer ( freetheguy, 180000, 1, theprisoner )
                            end
                        end
                    end
                end
            end
        end
    end
end
addEventHandler ( "onPlayerTarget", getRootElement(), sightscheck )
 
--ARREST PLAYERS BY PULLING THEM OUT OF A VEHICLE
function yankhimout(player, seat, jacker)
    if isElement(jacker) then
        if getElementParent(jacker) == kingCOP then
            local wlevel = getPlayerWantedLevel( player )
            if wlevel > 0 then
                if (getElementData ( jacker, "currentarrests" ) ~= "single" ) and (getElementData ( jacker, "currentarrests" ) ~= "double" ) then
                    local thecop = jacker
                    local theprisoner = player
                    setElementData ( theprisoner, "currentstatus", "underarrest" )
                    setElementData ( theprisoner, "captor", thecop )
                    setElementData ( thecop, "currentarrests", "single" )
                    triggerClientEvent(thecop,"copdirections",thecop)
                    showCursor ( theprisoner, true )
                    toggleAllControls ( theprisoner, false, true, false )      
                    walktheprisoner ( thecop, theprisoner )
                    setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
                elseif (getElementData ( jacker, "currentarrests" ) == "single" ) then
                    local thecop = jacker
                    local theprisoner = player
                    setElementData ( theprisoner, "currentstatus", "underarrest" )
                    setElementData ( theprisoner, "captor", thecop )
                    setElementData ( thecop, "currentarrests", "double" )
                    showCursor ( theprisoner, true )
                    toggleAllControls ( theprisoner, false, true, false )
                    walktheprisoner ( thecop, theprisoner )
                    setElementData ( theprisoner, "arrestTimeout", setTimer ( freetheguy, 180000, 1, theprisoner ))
                end            
            end
        end
    end
end
addEventHandler ( "onVehicleExit", getRootElement(), yankhimout )
 
--FORCES A PRISONER TO FOLLOW THE COP
function walktheprisoner(thecop, theprisoner)
    if (getElementData ( theprisoner, "currentstatus" ) == "underarrest") and (getPedOccupiedVehicle ( theprisoner ) == false ) then
        local copx, copy, copz = getElementPosition ( thecop )
        local prisonerx, prisonery, prisonerz = getElementPosition ( theprisoner )
        copangle = ( 360 - math.deg ( math.atan2 ( ( copx - prisonerx ), ( copy - prisonery ) ) ) ) % 360
        setPedRotation ( theprisoner, copangle )
        setCameraTarget ( theprisoner, theprisoner )
        local dist = getDistanceBetweenPoints2D ( copx, copy, prisonerx, prisonery )
        if ( dist > 40 ) then
        local element = "vehicle"
        local radius = 40
        local warp_successful = "Nearest vehicles warped to you."
        local x, y, z = getElementPosition(player)
        local colshape = createColSphere(tonumber(x), tonumber(y), tonumber(z), tonumber(radius))
     for index, value in ipairs(getElementsWithinColShape(colshape, element)) do
          setElementPosition(value, tonumber(x) - 2, tonumber(y), tonumber(z))
                elseif ( dist > 40 ) then
                freetheguy ( theprisoner )
                end
            elseif ( dist > 12 ) then
            setControlState ( theprisoner, "sprint", true )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist > 6 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist > 1.5 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", true )
            setControlState ( theprisoner, "forwards", true )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
        elseif ( dist < 1.5 ) then
            setControlState ( theprisoner, "sprint", false )
            setControlState ( theprisoner, "walk", false )
            setControlState ( theprisoner, "forwards", false )
            local zombify = setTimer ( walktheprisoner, 500, 1, thecop, theprisoner )
            end
            end
 
--FREES A PLAYER (RESETS THEIR CONTROLS AND STATUS)
function freetheguy (theprisoner)
    local thecaptor = (getElementData ( theprisoner, "captor" ))
    setElementData ( theprisoner, "currentstatus", "none" )
    setElementData ( theprisoner, "captor", "none" )
    showCursor ( theprisoner, false )
    setControlState ( theprisoner, "sprint", false )
    setControlState ( theprisoner, "walk", false )
    setControlState ( theprisoner, "forwards", false )
    toggleAllControls (theprisoner, true)  
    local prisonercheck = setTimer ( checkforprisoners, 1500, 1, thecaptor )
    TimoutTimer = (getElementData ( theprisoner, "arrestTimeout" ))
    if isTimer(TimoutTimer) then
         killTimer(TimoutTimer)
         setElementData ( theprisoner, "arrestTimeout", nil)
         TimeoutTimer = nil
    end
end
 
function checkforprisoners(thecop)
    if isElement(thecop) then
        local prisoners = 0
        local players = getElementsByType ( "player" )
        for theKey,thePlayer in ipairs(players) do
            if (getElementData ( thePlayer, "captor" ) == thecop ) then
                prisoners = prisoners+1
            end
       
Link to comment

1- This code is not you're code :

      --\\\\\\\\\\\\\\\\\\\\\\\\\\ 
    --//    Setting 
      
    local g_screenX, g_screenY = guiGetScreenSize(); 
    local gScale = 0.3; 
    local gAlphaDistance = 25; 
    local gMaxDistance = 50; -- Max Distance 
    local gTextAlpha = 120; 
    local gTextSize = 1; 
    local gAlphaDiff = gMaxDistance - gAlphaDistance; 
    gScale = 1 / gScale * 800 / g_screenY; 
    local gMaxScaleCurve = { { 0, 0 }, { 3, 3 }, { 13, 5 } }; 
    local gTextScaleCurve = { { 0, 0.8 }, { 0.8, 1.2 }, { 99, 99 } }; 
    local gTextAlphaCurve = { { 0, 0 }, { 25, 100 }, { 120, 190 }, { 255, 190 } }; 
      
    local markerp = createMarker( 1552.4996337891, -1677.3264160156, 15.1953125, 'Cylinder', 1.5, 0, 0, 255, 150 ); 
    local marker1p = createMarker( -1604.5458984375, 712.25848388672, 12.8671875, 'Cylinder', 1.5, 0, 0, 255, 150 ); 
    local marker2p = createMarker( 2340.9245605469, 2456.0463867188, 13.96875, 'Cylinder', 1.5, 0, 0, 255, 150 ); 
      
    addEventHandler ( 'onClientRender', root, 
        function ( ) 
            -- 
            local x, y, z = getCameraMatrix(); 
            local x1, y1, z1 = getElementPosition ( markerp ); 
            local x2, y2, z2 = getElementPosition ( marker1p ); 
            local x3, y3, z3 = getElementPosition ( marker2p ); 
            local distance_1 = getDistanceBetweenPoints3D( x, y, z, x1, y1, z1 ); 
            local distance_2 = getDistanceBetweenPoints3D( x, y, z, x2, y2, z2 ); 
            local distance_3 = getDistanceBetweenPoints3D( x, y, z, x3, y3, z3 ); 
            -- 
            -- Marker #1 
            if distance_1 <= gMaxDistance then 
                local x1_, y1_ = getScreenFromWorldPosition( x1, y1, z1 + 0.95, 0.06 ); 
                if x1_ and y1_ then 
                    -- 
                    local scale = 1 / ( gScale * ( distance_1 / gMaxDistance ) ); 
                    local alpha = ( ( distance_1 - gAlphaDistance ) / gAlphaDiff ); 
                    alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha ); 
                    scale = math.evalCurve( gMaxScaleCurve, scale ); 
                    local textscale = math.evalCurve( gTextScaleCurve, scale ); 
                    local textalpha = math.evalCurve( gTextAlphaCurve, alpha ); 
                    -- 
                    dxDrawText( "Trabajo de Policia", x1_, y1_, x1_, y1_, tocolor ( 255, 255, 255, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); 
                end 
                -- Marker #2 
            elseif distance_2 <= gMaxDistance then 
                local x2_, y2_ = getScreenFromWorldPosition( x2, y2, z2 + 0.95, 0.06 ); 
                if x2_ and y2_ then 
                    -- 
                    local scale = 1 / ( gScale * ( distance_2 / gMaxDistance ) ); 
                    local alpha = ( ( distance_2 - gAlphaDistance ) / gAlphaDiff ); 
                    alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha ); 
                    scale = math.evalCurve( gMaxScaleCurve, scale ); 
                    local textscale = math.evalCurve( gTextScaleCurve, scale ); 
                    local textalpha = math.evalCurve( gTextAlphaCurve, alpha ); 
                    -- 
                    dxDrawText( "Trabajo de Policia", x2_, y2_, x2_, y2_, tocolor ( 255, 255, 255, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); 
                end  
                -- Marker #3 
            elseif distance_3 <= gMaxDistance then 
                local x3_, y3_ = getScreenFromWorldPosition( x3, y3, z3 + 0.95, 0.06 ); 
                if x3_ and y3_ then 
                -- 
                    local scale = 1 / ( gScale * ( distance_3 / gMaxDistance ) ); 
                    local alpha = ( ( distance_3 - gAlphaDistance ) / gAlphaDiff ); 
                    alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha ); 
                    scale = math.evalCurve( gMaxScaleCurve, scale ); 
                    local textscale = math.evalCurve( gTextScaleCurve, scale ); 
                    local textalpha = math.evalCurve( gTextAlphaCurve, alpha ); 
                    -- 
                    dxDrawText( "Trabajo de Policia", x3_, y3_, x3_, y3_, tocolor ( 255, 255, 255, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); 
                end  
            end 
        end 
    ); 
      
    -- ////////////////////////////////// 
    -- //       MATH FUNCTIONS         // 
    -- ////////////////////////////////// 
      
    function math.evalCurve( curve, input ) 
        if input < curve[ 1 ][ 1 ] then 
            return curve[ 1 ][ 2 ]; 
        end 
        for idx = 2, #curve do 
            if input < curve[ idx ][ 1 ] then 
                local x1 = curve[ idx - 1 ][ 1 ]; 
                local y1 = curve[ idx - 1 ][ 2 ]; 
                local x2 = curve[ idx ][ 1 ]; 
                local y2 = curve[ idx ][ 2 ]; 
                local alpha = ( input - x1 ) / ( x2 - x1 ); 
                return math.lerp( y1, y2, alpha ); 
            end 
        end 
        return curve[ #curve ][ 2 ]; 
    end 
      
    function math.lerp( from, to, alpha ) 
        return from + ( to-from ) * alpha; 
    end 
         
         
Wnd = guiCreateWindow ( 0.2, 0.2, 0.50, 0.60, "Trabajo de Policia Version Full", true ) 
guiSetAlpha( Wnd, 1 ) 
 button = guiCreateButton ( 0.5, 0.8, 0.45, 0.15, "Cerrar", true, Wnd ) 
 button1 = guiCreateButton ( 0.01, 0.8, 0.45, 0.15, "Escoger Trabajo", true, Wnd ) 
label = guiCreateLabel ( 0.05, 0.1, 0.9, 0.2, "Los Policias Pueden Arrestar Criminales \nPegandoles 3 Veces con la Porra.", true, Wnd ) 
showCursor(false) 
guiSetVisible( Wnd, false ) 
guiWindowSetSizable( Wnd, false ) 
guiWindowSetMovable( Wnd, false ) 
  
    skins = 
            { 
            {"Policia 1", 280}, 
            {"Policia 2", 281}, 
            {"Ranger 1", 283}, 
            {"Ranger 2", 288}, 
            {"Vigilante de Trafico", 284},             
            } 
      
    skinG = guiCreateGridList(0.01, 0.3, 0.99, 0.5, true, Wnd) 
    guiGridListAddColumn(skinG, "Skins", 0.85) 
      
    for i,skins in ipairs(skins) do 
         row = guiGridListAddRow(skinG) 
         -- 
         guiGridListSetItemText(skinG, row, 1, tostring(skins[1]), false, false) 
         guiGridListSetItemData(skinG, row, 1, tostring(skins[2])) 
    end 
     
function SAPDjob(hitElement) 
             if getElementType(hitElement) == "player" and (hitElement == localPlayer) then 
                  if not guiGetVisible(Wnd) then 
                       guiSetVisible(Wnd, true) 
                       showCursor(true) 
                  end 
             end 
        end 
addEventHandler("onClientMarkerHit", markerp, SAPDjob) 
addEventHandler("onClientMarkerHit", marker1p, SAPDjob) 
addEventHandler("onClientMarkerHit", marker2p, SAPDjob) 
  
      
    function takeJob() 
        local row, col = guiGridListGetSelectedItem(skinG)   
        if (row and col and row ~= -1 and col ~= -1) then 
            local models = tonumber(guiGridListGetItemData(skinG, row, 1)) 
            if model ~= "" then 
                triggerServerEvent("getJob", localPlayer, models) 
                guiSetVisible(Wnd,false) 
            showCursor(false) 
            end 
        end 
    end 
    addEventHandler("onClientGUIClick", button1, takeJob, false) 
     
    function close() 
    if (source == button) then 
    guiSetVisible(Wnd,false) 
    showCursor(false) 
    end 
    end 
    addEventHandler("onClientGUIClick", button, close) 

Am talking about the 3D Text

2- About the off topic you can get the answer here :

Report Community Resources Center

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