Jump to content

Duda


#Dv^

Recommended Posts

Posted

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

Posted

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

Posted

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?

Posted

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

Posted
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 
) 

Posted (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 by Guest
Posted
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.

Posted
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) 

  • 2 weeks later...
Posted

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

Posted
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

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

Posted

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) 
     

Posted

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.

Posted

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

Posted

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!

Posted

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

  • Recently Browsing   0 members

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