Jump to content

Legalsystem problem


Lucario

Recommended Posts

Posted

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

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
Posted

now it give me bad argument, setelement or getelement data got number, i cant see the line, but i cant arrest anyone and im in the team

Posted

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
       
Posted

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

Posted

LOL, im said this is not my resource! this is the legalsystem from community, but dont work, anyone can test and say the problem plz

Read after write

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