• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Luascript channel (Tfs 1.x en adelante)

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Hola usuarios de tibiaface



    Bueno aqui les traigo el channel para ver los errores de sus scripts cuando el servidor lo esta ejecutando y saber cual es el problema y donde radica

    [Sistema] Luascript channel (Tfs 1.x en adelante) Zpotgo10

    nos vamos a:

    data\chatchannels

    abrimos el archivo y agregamos esta tag

    Código:
    <channel id="9" name="Lua_advanced" public="1" script="execute.lua" />

    ahora nos vamos a:

    data\chatchannels\scripts

    copiamos cualquier archivo y renombramo por execute.lua y pegamos esto dentro

    Código:
    local CHAT_ID = 9
     
    function canJoin(player)
        return player:getAccountType() >= ACCOUNT_TYPE_GOD
    end
     
    local function InteractiveConsole(env)
        return coroutine.wrap(function(inp, out, err)
            local sandbox = setmetatable({ },
                {
                    __index = function(t, index)
                        return rawget(t, index) or env[index] or _G[index]
                    end
                }
            )
            sandbox._G = sandbox
            sandbox.os = {
                time = function() return os.time() end
            }
            sandbox.io = { }
            sandbox.debug = { }
            sandbox.pcall = { }
            sandbox.loadstring = { }
            sandbox.error = err
            sandbox.print = function(...)
                local r = {}
                for _, v in ipairs({...}) do
                    table.insert(r, tostring(v))
                end
                local s = table.concat(r, string.rep(' ', 4))
                return out(#s > 0 and s or 'nil')
            end   
     
            local chunks = {}
            local level = 1
     
            while true do
                table.insert(chunks, coroutine.yield())
     
                local func, e = loadstring(table.concat(chunks, ' '), 'console')
                if func then         
                    setfenv(func, sandbox)
                    inp(string.rep('>', level) .. ' ' .. chunks[#chunks])
                    local s, e = pcall(func)
                    if not s then
                        err(e)
                    end
     
                    chunks = { }
                    level = 1
                else
                    if not e:find('near \'<eof>\'$') then
                        inp(string.rep('>', level) .. ' ' .. chunks[#chunks])
                        chunks = { }
                        level = 1
                        err(e)
                    else                 
                        inp(string.rep('>', level) .. ' ' .. chunks[#chunks])
                        level = 2
                    end
                end
            end
        end)
    end
     
    local consoles = { }
     
    function onSpeak(player, type, message)
        if player:getAccountType() < ACCOUNT_TYPE_GOD then
            return false
        end
     
        local pid = player:getId()
     
        local console = consoles[pid]
        if not console then
            console = InteractiveConsole {
                player = player,
                cid = pid,
            }
     
            console(
                function(inp)
                    local player = Player(pid)
                    if player then
                        player:sendChannelMessage(player:getName(), inp, TALKTYPE_CHANNEL_Y, CHAT_ID)
                    end
                end,
             
                function(s)
                    local player = Player(pid)
                    if player then
                        player:sendChannelMessage(nil, s, TALKTYPE_CHANNEL_O, CHAT_ID)
                    end
                end,
     
                function(e)
                    local player = Player(pid)
                    if player then
                        player:sendChannelMessage(nil, e, TALKTYPE_CHANNEL_R1, CHAT_ID)
                    end
                end
            )
     
            consoles[pid] = console
        end
     
        console(message)
        return false
    end

    y listo

    creditos: LaloHao / Summ and Non Sequitur



    [Sistema] Luascript channel (Tfs 1.x en adelante) YNU5B25
    2 participantes
    http://www.tibiaface.com

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    Excelente aporte para la comunida. las ideas estan rondando por todo el mundo.
    en mi ot tenia un channel parecido, pero solo ejecuta funciones, no es que sea de gran ayuda esto de un channel, para eso tenemos la consola pero es algo que merece darle una oportunidad xd



    Si necesitas hospedaje para tu servidor usa este enlace y mira los buenos planes de Windows y Linux:
    Si tu cuenta de PayPal no esta verificada no importara, igual aceptan pagos con cuentas no verificadas.


    [Sistema] Luascript channel (Tfs 1.x en adelante) TRJEB8aSRYK5IulEU6ilJw
    2 participantes

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).