Anzo Posted July 30, 2016 Share Posted July 30, 2016 ¿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
aka Blue Posted July 30, 2016 Share Posted July 30, 2016 Deberías ordenar un poco los códigos. Link to comment
Anzo Posted July 30, 2016 Author Share Posted July 30, 2016 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 ? Link to comment
Tomas Posted July 30, 2016 Share Posted July 30, 2016 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 ? Bindealo para todos, y dentro de la función utiliza isElementWithinColShape. Link to comment
MisterQuestions Posted July 30, 2016 Share Posted July 30, 2016 puedes hacer un export con el freeroam resource para que le de unbind o algo asi. Igual puedes usar getFunctionsBoundToKey, para quitar todas las funciones bindeadas a esa key. Link to comment
Anzo Posted July 30, 2016 Author Share Posted July 30, 2016 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 . 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
Recommended Posts