#Dv^ Posted June 28, 2016 Share Posted June 28, 2016 Hola! Tengo una duda y quisiera saber que se usa para hacer un gamemode aparte dentro de un servidor Freeroam? Es decir si es un servidor Freeroam y quiero hacer un gamemode con un map en otra dimension que sea "DM" sin que no afecta nada al Freeroam Muchas Gracias Link to comment
Simple0x47 Posted June 28, 2016 Share Posted June 28, 2016 Vamos que quieres hacer un multigamemode o qué? Link to comment
#Dv^ Posted June 28, 2016 Author Share Posted June 28, 2016 Algo parecido que digamos, es decir que con un comando por ejemplo /dm vayan a la zona dm en la dimension por ejemplo 5 y que en esa dimension este un mapa que pondré solo para esa dimension y que en esa zona se maten los players, y el ultimo que sobreviva gana cierta cantidad de dinero No se si me comprendes Muchas Gracias Link to comment
Simple0x47 Posted June 28, 2016 Share Posted June 28, 2016 Pues usa el método que has dicho, un cambio de dimension y la creación del mapa en dicha dimensión. Link to comment
#Dv^ Posted June 28, 2016 Author Share Posted June 28, 2016 Sí eso ya lo hice justo hoy, Gracias. Otra duda es que que se usa para que en cierta dimension los players no puedan usar comandos ni binds? Link to comment
Simple0x47 Posted June 28, 2016 Share Posted June 28, 2016 Podrías remover todos los binds si el jugador se encuentra en la dimensión definida y emplea un reemplazo de addCommandHandler, que cuando se llame el comando identifique la dimensión del jugador se le permita llevar a cabo la función del comando o no hacer nada. Si necesitas información más detallada añademe a skype: killer.68x Link to comment
aka Blue Posted June 28, 2016 Share Posted June 28, 2016 local dimensionProhibida = 90 -- Dimension prohibida addCommandHandler ( "usarArma", function ( player, commandName ) local pdim = getElementDimension ( player ) if pdim == dimensionProhibida then outputChatBox ( "No puedes usar el comando en ésta dimension.", player, 255, 255, 255 ) else outputChatBox ( "Perfecto, has usado el comando "..commandName..".", player, 0, 255, 0 ) end end ) Link to comment
Bc# Posted June 29, 2016 Share Posted June 29, 2016 (edited) Creo que deberia funcionar con esto: local dimensionProhibida = 90 -- Dimension prohibida local comandos = {"comando1", "comando2","comando3"} -- Añade aqui los comandos que deseas quitar de la dimension --Insertar en tu Funcion que inicializa la dimension addEventHandler ( "onPlayerCommand",root,anularComandos) function anularComandos( commandName ) local pdim = getElementDimension ( player ) for i,v in ipairs(comandos) do if commandName == v and pdim == dimensionProhibida then cancelEvent() outputChatBox ( "No puedes usar el comando en ésta dimension.", source, 255, 255, 255 ) return end end outputChatBox ( "Perfecto, has usado el comando "..commandName..".", source 0, 255, 0 ) end Edited June 30, 2016 by Guest Link to comment
Tomas Posted June 29, 2016 Share Posted June 29, 2016 Creo que deberia funcionar con esto: local dimensionProhibida = 90 -- Dimension prohibida local comandos = {"comando1", "comando2","comando3"} -- Añade aqui los comandos que deseas quitar de la dimension --Insertar en tu Funcion que inicializa la dimension addCommandHandler ( "onPlayerCommand",root,anularComandos) function anularComandos( commandName ) local pdim = getElementDimension ( player ) for i,v in ipairs(comandos) do if commandName == v and pdim == dimensionProhibida then cancelEvent() outputChatBox ( "No puedes usar el comando en ésta dimension.", source, 255, 255, 255 ) return end end outputChatBox ( "Perfecto, has usado el comando "..commandName..".", source 0, 255, 0 ) end La función tiene que estar antes del addCommandHandler. Link to comment
#Dv^ Posted June 29, 2016 Author Share Posted June 29, 2016 Gracias a todos por la ayuda, ya pude sacarme la duda y plantear mis ideas, Saludos!. Link to comment
aka Blue Posted June 29, 2016 Share Posted June 29, 2016 El código que te dio bc es mejor ya que contiene una tabla con los comandos restringidos en una dimensión. Pero tiene un error, no es addCommandHandler en el onPlayerCommand, es addEventHandler, ya que es un evento. Link to comment
Enargy, Posted June 29, 2016 Share Posted June 29, 2016 local dimensionProhibida = 90 -- Dimension prohibida local comandos = { ["comando1"] = true, ["comando2"] = true, ["comando3"] = true } function anularComandos( commandName ) local pdim = getElementDimension ( player ) if comandos[commandName] and pdim == dimensionProhibida then outputChatBox ( "No puedes usar el comando en ésta dimension.", source, 255, 255, 255 ) cancelEvent() return end outputChatBox ( "Perfecto, has usado el comando "..commandName..".", source 0, 255, 0 ) end addEventHandler("onPlayerCommand", root, anularComandos) Link to comment
Bc# Posted June 30, 2016 Share Posted June 30, 2016 El código que te dio bc es mejor ya que contiene una tabla con los comandos restringidos en una dimensión. Pero tiene un error, no es addCommandHandler en el onPlayerCommand, es addEventHandler, ya que es un evento. Corregido. Lo hice a la rapida y no me di cuenta, gracias por la correccion. Link to comment
#Dv^ Posted July 9, 2016 Author Share Posted July 9, 2016 Disculpen, y si quiero que no use el jetpack (J)? Osea que no use esa tecla en esa dim y al irse a otra dim pueda usar esa tecla de nuevo Link to comment
Bc# Posted July 9, 2016 Share Posted July 9, 2016 Disculpen, y si quiero que no use el jetpack (J)? Osea que no use esa tecla en esa dim y al irse a otra dim pueda usar esa tecla de nuevo Dentro del mismo codigo usas unbindKey Link to comment
Calculador Posted July 9, 2016 Share Posted July 9, 2016 Disculpen, y si quiero que no use el jetpack (J)? Osea que no use esa tecla en esa dim y al irse a otra dim pueda usar esa tecla de nuevo Te pueden servir las siguientes funciones: doesPlayerHaveJetPack removePlayerJetPack getElementDimension Dentro del mismo codigo usas unbindKey Exacto, en su defecto si ya tienes la tecla, usa està funciòn. Link to comment
#Dv^ Posted July 10, 2016 Author Share Posted July 10, 2016 Lo agregué así pero igual puedo usar el jetPack desde la tecla J o el panel F1 function anularComandos( commandName ) local pdim = getElementDimension ( source ) if comandos[commandName] and pdim == dimensionProhibida then outputChatBox ( "No puedes usar el comando en ésta dimension.", source, 255, 255, 255,true ) unbindKey(source,"J","down", anularComandos) cancelEvent() return end end addEventHandler("onPlayerCommand", root, anularComandos) Link to comment
Calculador Posted July 10, 2016 Share Posted July 10, 2016 Si estas tratando con el script del freeroam directamente, te aconsejo editarlo desde allí, o prueba con esto, no sé si te funcione : function Prohibir (thePlayer) local dim = getElementDimension(thePlayer) if (dim == DimensionProhibida) then if (doesPedHaveJetPack(thePlayer)) then removePedJetPack(thePlayer) outputChatBox("No puedes usar Jetpack en ésta dimensión", thePlayer, 255, 0, 0) end end end PD: No estoy seguro que funcione, no lo pude testear. Link to comment
#Dv^ Posted July 10, 2016 Author Share Posted July 10, 2016 Mmm no, no funciona, no me tira ningun error, aún así puedo usar el jetpack, probé haciendo unbindKey F1 pero eso tampoco PD: Agradezco tu ayuda Link to comment
#Dv^ Posted July 10, 2016 Author Share Posted July 10, 2016 Perdonen, ya pude lograrlo, con el mismo script hice un trigger a Client y desde client me funcionó el unbindKey como esperaba Muchas Gracias por la ayuda! Link to comment
#Dv^ Posted July 10, 2016 Author Share Posted July 10, 2016 Hola perdonen que vuelva a molestar, pero despues que hice el trigger de server a client lo del unbindKey me funciona, ya que luego que muere puede volver a usar el bindKey, pero cuando pasa eso se me congela el server o el mta Yo lo hice así Server local dimensionProhibida = 6752 -- Dimension prohibida local comandos = { ["dm"] = true, } function anularComandos( commandName ) local pdim = getElementDimension ( source ) if comandos[commandName] and pdim == dimensionProhibida then outputChatBox ( "No puedes usar el comando en ésta dimension.", source, 255, 255, 255,true ) triggerClientEvent("unbind",resourceRoot) cancelEvent() return end end addEventHandler("onPlayerCommand", root, anularComandos) function bind () triggerClientEvent("bind", resourceRoot) end addEventHandler("onPlayerWasted", root, bind) Client function unbind() unbindKey("J","down", unbind) unbindKey("F1","down", unbind) end addEvent("unbind", true) addEventHandler("unbind",resourceRoot, unbind) function bind () bindKey("J","down", bind) bindKey("F1","down", bind) end addEvent("bind", true) addEventHandler("bind", resourceRoot, bind) Y lo del unbindKey solo sucede cuando ingresas esos comandos si estas en esa dimension, entonces si no ingresas esos comandos aún así puedes seguir usando el F1 y el JetPack Muchas Gracias Link to comment
Tomas Posted July 10, 2016 Share Posted July 10, 2016 No es mas facil que en la función del comando dm pongas una condicion? Link to comment
Recommended Posts