Jump to content

Stop the fire after 2 seconds only for lawteam


Hero192

Recommended Posts

Posted

Hey all,

I want to make If the police or LAWTEAM shooted a wanted player with taser the law team need to wait 2 secs to shoot the wanted player again, I tried that but not working fine and no errors on debug.

local lawTeam = {["Police"]=true, ["SWAT"]=true} 
  
function onShoot(target, posX, posY, posZ) 
if (getPlayerTeam(localPlayer) and lawTeam[getTeamName(getPlayerTeam(localPlayer))]) then 
local wanted = getPlayerWantedLevel() 
if (wanted > 0) then 
    if (source == 23) then 
  
        setTimer(function()   
    --HERE i don't know how to stop him shooting only with Silenced gun (ID23) 
            end,2000,1) 
         end 
      end 
   end 
end 
addEventHandler("onClientWeaponFire", root, onShoot) 

Posted

Try this.

local lawTeam = {["Police"]=true, ["SWAT"]=true} 
ostimer = true 
  
function onShoot(target, posX, posY, posZ) 
    if (getPlayerTeam(localPlayer) and lawTeam[getTeamName(getPlayerTeam(localPlayer))]) then 
        local wanted = getPlayerWantedLevel() 
        if (wanted > 0) then 
            if (source == 23) and ostimer == true then 
                -- your code.... 
                ostimer = false 
                setTimer(function() ostimer = true  end,2000,1)              
            end 
        end 
    end 
end 
addEventHandler("onClientWeaponFire", root, onShoot) 

Posted

I don't think that's going to work. The wiki states: "Note: This event is only for custom weapons that were created with createWeapon, for player held weapons use onClientPlayerWeaponFire."

Therefore the entire eventHandler is wrong, second of all. If a player fires a gun and it's streamed in, no one else will be able to shoot again since ostimer is set to true. I would go for an approach like this;

local lawTeam = { [ "Police" ] = true, [ "SWAT" ] = true }; 
local timers = {} 
  
addEventHandler ( "onClientPlayerWeaponFire", getRootElement(), 
    function ( weapon, ammo, _, posX, posY, posZ, target ) 
        if ( getPlayerTeam ( source ) ) then 
            if ( lawTeam [ getTeamName ( getPlayerTeam ( source ) ) ] ) then 
                if ( weapon == 23 ) then 
                    if ( isTimer ( timers [ source ] ) ) then 
                        outputChatBox ( "Your tazer is still on cooldown.", source ); 
                        cancelEvent(); 
                        return; 
                    end 
                     
                    timers [ source ] = setTimer ( function ( thePlayer ) 
                            timers [ thePlayer ] = nil; 
                        end, 2000, 1, source 
                    ); 
                     
                    -- your code to "taze" the person 
                end 
            end 
        end 
    end 
); 

Another thing you can do is disable the aim control for the time that the tazer has been disabled.

logo-small.png?v=3 tiny-sapdfr.png

 

If you want to contact me directly concerning Advanced-Gaming, please contact me at [email protected]

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