Jump to content

[AYUDA] Timers de anti-flood con el comando drop


LimoN>w<

Recommended Posts

Buenas, les quería comentar que recientemente he intentado poner un timer sin exito para el drop, lo que yo quiero es que al poner el comando /drop en say, automáticamente se active un timer para que por si el jugador vuelve a tipear el comando deba esperar 5 segundos para volver a hacerlo, de esa manera no me harían un masivo floodeo con el comando, y ademas de eso el comando /drop queda bindeado con la tecla de "backspace" he buscado si en el archivo del teleport estaba la linea del bind pero no la encontré y a la hora de escribir o hacer ciertas cosas con otros resources se vuelve molesto apretar la tecla y que te mande a drop, sin mas que decir dejo la linea del teleport grcias!

 

Aqui la linea del teleport : 

local posicoes =
    {
        { 1497.5999755859, -1853.0999755859, 2516 },
        { 1493.3000488281, -1829.8000488281, 2516 },
        { 1509.1999511719, -1827.3000488281, 2516 },
    }
	
function PosicaoPlayer ( thePlayer, command )
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ( "#FFFFFF[#00FF00Tele#FFFFFF] ".. getPlayerName(thePlayer) .." #FFFFFFFue para drop! (#00FF00/drop#FFFFFF)", root, 0, 255, 0, true )
end
addCommandHandler ( "drop", PosicaoPlayer  )

 

Edited by LimoN>w<
Link to comment

Creo que ésto debería ya funcionarte sin problemas.

local pos = {

	{ 1497.5999755859, -1853.0999755859, 2516 },
    { 1493.3000488281, -1829.8000488281, 2516 },
    { 1509.1999511719, -1827.3000488281, 2516 },	

}

local limitador = { }

function dropPlayer( player )
	if not limitador[player] then
		local azar = math.random( 1, #pos )
		local veh = getPedOccupiedVehicle( player )
		if veh then
			setElementPosition(veh, unpack ( pos [ azar ] ) )
		else
			setElementPosition(player, unpack ( pos [ azar ] ) )
		end
		outputChatBox ( "#FFFFFF[#00FF00Tele#FFFFFF] ".. getPlayerName(thePlayer) .." #FFFFFFFue para drop! (#00FF00/drop#FFFFFF)", root, 0, 255, 0, true )
		limitador[player] = setTimer( function( ) limitador[player] = nil end, 5000, 1 )
	else
		local restante, _, _ = getTimerDetails(limitador[player])
		outputChatBox( "Podras usar el comando en "..math.floor(restante).." segundos.", player, 255, 0, 0 )
	end
end
addCommandHandler( "drop", dropPlayer )

addEventHandler( "onPlayerJoin", getRootElement( ),
	function( )
		bindKey( source, "backspace", "down", dropPlayer )
	end
)

addEventHandler( "onResourceStart", resourceRoot,
	function( )
		local jugadores = getElementsByType( 'player' )
		for i=1, #jugadores do 
			local jug = jugadores[i]
			bindKey( jug, "backspace", "down", dropPlayer )
		end
	end
)

 

Link to comment
On 31/3/2018 at 14:28, aka Blue said:

Creo que ésto debería ya funcionarte sin problemas.


local pos = {

	{ 1497.5999755859, -1853.0999755859, 2516 },
    { 1493.3000488281, -1829.8000488281, 2516 },
    { 1509.1999511719, -1827.3000488281, 2516 },	

}

local limitador = { }

function dropPlayer( player )
	if not limitador[player] then
		local azar = math.random( 1, #pos )
		local veh = getPedOccupiedVehicle( player )
		if veh then
			setElementPosition(veh, unpack ( pos [ azar ] ) )
		else
			setElementPosition(player, unpack ( pos [ azar ] ) )
		end
		outputChatBox ( "#FFFFFF[#00FF00Tele#FFFFFF] ".. getPlayerName(thePlayer) .." #FFFFFFFue para drop! (#00FF00/drop#FFFFFF)", root, 0, 255, 0, true )
		limitador[player] = setTimer( function( ) limitador[player] = nil end, 5000, 1 )
	else
		local restante, _, _ = getTimerDetails(limitador[player])
		outputChatBox( "Podras usar el comando en "..math.floor(restante).." segundos.", player, 255, 0, 0 )
	end
end
addCommandHandler( "drop", dropPlayer )

addEventHandler( "onPlayerJoin", getRootElement( ),
	function( )
		bindKey( source, "backspace", "down", dropPlayer )
	end
)

addEventHandler( "onResourceStart", resourceRoot,
	function( )
		local jugadores = getElementsByType( 'player' )
		for i=1, #jugadores do 
			local jug = jugadores[i]
			bindKey( jug, "backspace", "down", dropPlayer )
		end
	end
)

 

Pues ahora no aparece el texto de teleport cuando el jugador lo hace

Link to comment
On 3/4/2018 at 02:42, aka Blue said:

@LimoN>w< Cambia thePlayer en el outputChatBox por player

Perdon por no responder, pero me funciono de 10 muchisimas gracias!

Solo que aun sigue el bindeo del drop pero bueno vere si puedo arreglarlo

Link to comment

@LimoN>w< si tienes el recurso "heligrab" el bind de "blackspace" se debe a eso ya que tiene un bind con "drop" ese recurso

        for key, state in pairs(getBoundKeys("jump")) do
            bindKey(key, "down", "grab")
        end
        --bindKey("lshift", "down", "grab", "")
        
        bindKey("backspace", "down", "drop", "")
    end

Link to comment
On 11/4/2018 at 15:56, kowixd said:

@LimoN>w< si tienes el recurso "heligrab" el bind de "blackspace" se debe a eso ya que tiene un bind con "drop" ese recurso

        for key, state in pairs(getBoundKeys("jump")) do
            bindKey(key, "down", "grab")
        end
        --bindKey("lshift", "down", "grab", "")
        
        bindKey("backspace", "down", "drop", "")
    end

gracias bro!!! Muchísimas gracias!!! Ya lo encontré y lo saque!! 

 

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