Jump to content

Duda


#Dv^

Recommended Posts

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

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

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
Link to comment
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
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
  • 2 weeks later...
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

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

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

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
  • Recently Browsing   0 members

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