Jump to content

Desactivar un bindKey al entrar en una colShape


Anzo

Recommended Posts

¿Cómo puedo hacer para que al entrar en una colShape se desactive el F1 > Panel freeroam (o cualquier otro bindKey, en este caso, el freeroam)?

Yo intente así:

Areas = { 
{-2288.12427, 2282.45581, 120, 120, 0, 255, 0, 255}, 
{2814.41113, 936.38287,120,120, 255, 0, 0, 255}, 
} 
  
ColRectangles = { 
{-2288.12427, 2282.45581, 120, 120}, --Verde 
{2814.41113, 936.38287,120,120}, --Rojo 
} 
  
for _,a in ipairs (Areas)  do 
for _,b in ipairs (ColRectangles) do 
MapArea = createRadarArea (unpack(a)) 
  
rectangle = createColRectangle(unpack (b)) 
end 
end 
  
  
function enterZone(hitPlayer) 
    if (getElementType (hitPlayer) == "player") then 
        setElementData(hitPlayer,"godmode",true) 
        toggleControl (hitPlayer, "next_weapon", false) 
        toggleControl (hitPlayer, "previous_weapon", false) 
        toggleControl (hitPlayer, "fire", false) 
        setPedWeaponSlot(hitPlayer,0) 
        unbindKey( hitPlayer, "F1","down") 
        triggerClientEvent(hitPlayer, "onEnter", hitPlayer) 
         
         
     
    end 
end 
addEventHandler( "onColShapeHit", rectangle, enterZone ) 

No da ningún error en el debug y no se desactiva el F1.

También tengo una duda, en client-side tengo para que mande un dxText al entrar en la colShape, todo bien por allí, manda el mensaje, pero sólo cuando entro en la colShape roja, en la verde no manda ningún mensaje. (tampoco manda errores en el debug).

Link to comment
Deberías ordenar un poco los códigos.

Si,lo sé, normalmente a veces los tengo desordenados por que voy cambiando varias cosas y al final se me olvida ordenarlo bien.

Todavía no puedo hacer que no puedan usar el F1 al entrar en la colShape... alguien que me ilumine ? xD

Link to comment
Deberías ordenar un poco los códigos.

Si,lo sé, normalmente a veces los tengo desordenados por que voy cambiando varias cosas y al final se me olvida ordenarlo bien.

Todavía no puedo hacer que no puedan usar el F1 al entrar en la colShape... alguien que me ilumine ? xD

Bindealo para todos, y dentro de la función utiliza isElementWithinColShape.

Link to comment

Ahora mismo no puedo probar los métodos que dicen, más tarde los pruebo y aviso si me funciona o no.

EDIT: Use onClientKey para desactivar el F1 por que no sabía como hacerlo con lo que me dijeron :roll: .

Tengo un problema, el bind se desactiva al entrar en la colShape pero al salir no se vuelve a activar, además de que en vez de abrir el panel de F1 cuando sales de la colShape, abre es el texto cuando entras en la colShape. Así fue como lo hice:

local screenW, screenH = guiGetScreenSize() 
local secounds = 5 
  
function ren(b) 
    local progress = (getTickCount()-start)/ 3000 
    local alpha = interpolateBetween(0,0,0,1,0,0,progress,"OutBounce") 
    --Este es el texto 
    dxDrawText("#000000[#ffffffServer#000000] #00ff00Has entrado a zona segura", screenW * 0.0138, screenH * 0.4667, screenW * 0.3237, screenH * 0.4983, tocolor(255, 255, 255,   alpha*255), 1.00, "clear", "left", "top", false, false, false, true, false) 
          
    if b == 'F1' then 
        cancelEvent () 
    end 
end 
addEventHandler ( 'onClientKey', root, ren) 
addEvent("onEnter", true) 
addEventHandler("onEnter", root, function() 
  
    if ( eventadded ) then 
        return 
    end 
    eventadded = true 
    start = getTickCount() 
    addEventHandler("onClientRender",root,ren) 
    setTimer(function() 
        
        removeEventHandler("onClientRender",root,ren) 
          
        eventadded = false 
         
    end,secounds*1000,1) 
    end) 

La parte cuando pisa en la col:

function enterZone(hitPlayer,player) 
    if (getElementType (hitPlayer) == "player") then 
        setElementData(hitPlayer,"godmode",true) 
        toggleControl (hitPlayer, "next_weapon", false) 
        toggleControl (hitPlayer, "previous_weapon", false) 
        toggleControl (hitPlayer, "fire", false) 
        setPedWeaponSlot(hitPlayer,0) 
        triggerClientEvent(hitPlayer, "onEnter", hitPlayer) 
    end 
end 
addEventHandler( "onColShapeHit", rectangle, enterZone ) 

También intente poniendo en otra función la parte para cancelar la key:

function ren2(b) 
    if b == 'F1' then 
        cancelEvent () 
    end 
end 
addEventHandler ( 'onClientKey', root, ren2) 
addEvent("onEnter2", true) 
addEventHandler("onEnter2", root, ren2) 

Si lo uso así no me deja abrir la Key cuando inicio el script, con lo de arriba tendría el server-side así:

function enterZone(hitPlayer,player) 
    if (getElementType (hitPlayer) == "player") then 
        setElementData(hitPlayer,"godmode",true) 
        toggleControl (hitPlayer, "next_weapon", false) 
        toggleControl (hitPlayer, "previous_weapon", false) 
        toggleControl (hitPlayer, "fire", false) 
        setPedWeaponSlot(hitPlayer,0) 
        triggerClientEvent(hitPlayer, "onEnter", hitPlayer) 
        triggerClientEvent(hitPlayer, "onEnter2", hitPlayer) 
    end 
end 
addEventHandler( "onColShapeHit", rectangle, enterZone ) 

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...