Ir para conteúdo
  • Cadastre-se

Derivado Saber qual comando a Staff usou


Posts Recomendados

versão 8.60 tfs 0.4

 

o Titulo já diz tudo, más serei um pouco mais especifico.

 queria que todo comando que alguém da Staff em meu servidor usasse forem salvos em um arquivo na pasta "logs" ou qualquer outra em meu servidor com o nome do "player" que usou o comando. em formato de arquivo.txt

 

já tive outros servidores que faziam a mesma coisa, más não os possuo no momento.

 

exemplo:

Gm x usou comando /clean

ai dentro da pasta logs, vai ser criado um arquivo com o nome do Gm x e dentro vai mostrar todos os comandos que ele usou e horário.

 

 

quem poder me ajudar com isso ficarei muito grato e darei aquele REP+ camarada. 

preciso mt saber isso pois tenho muitas reclamações de players em relação a alguns membros da Staff.

Link para o post
Compartilhar em outros sites

Basta no talkactions.xml adicionar a tag log="yes"

Por exemplo:
    <talkaction words="/clean" access="3" event="script" value="clean.lua"/>

Ficaria:

    <talkaction log="yes" words="/clean" access="3" event="script" value="clean.lua"/>

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
2 minutos atrás, luangop disse:

Basta no talkactions.xml adicionar a tag log="yes"

Por exemplo:
    <talkaction words="/clean" access="3" event="script" value="clean.lua"/>

Ficaria:

    <talkaction log="yes" words="/clean" access="3" event="script" value="clean.lua"/>

fui olhar e todas as minhas talkactions já estão com a tag log="yes"

Link para o post
Compartilhar em outros sites
1 minuto atrás, dissolima disse:

fui olhar e todas as minhas talkactions já estão com a tag log="yes"

Então na sua pasta logs já deve estar salvando cada comando feito.

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
1 minuto atrás, luangop disse:

Então na sua pasta logs já deve estar salvando cada comando feito.

não está. já até tentei criar um arquivo de texto com o nome de meu ADM e joguei la dentro más msm assim os comandos usados não aparecem dentro do bloco de notas :/

Link para o post
Compartilhar em outros sites
1 minuto atrás, dissolima disse:

não está. já até tentei criar um arquivo de texto com o nome de meu ADM e joguei la dentro más msm assim os comandos usados não aparecem dentro do bloco de notas :/

Então você terá de adicionar uma função em todos os seus scripts.

Em cada script de talkaction que queira registrar o uso, adicione isso:
 

local file = io.open('data/logs/logs.txt','a')
                file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. getPlayerNameByGUID(cid) .." usou o comando ".. words .."\n")
                file:close()

Essa é a forma que conheço, porém será criado apenas um arquivo, onde ficará o log de todos os players.

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
11 minutos atrás, luangop disse:

Então você terá de adicionar uma função em todos os seus scripts.

Em cada script de talkaction que queira registrar o uso, adicione isso:
 


local file = io.open('data/logs/logs.txt','a')
                file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. getPlayerNameByGUID(cid) .." usou o comando ".. words .."\n")
                file:close()

Essa é a forma que conheço, porém será criado apenas um arquivo, onde ficará o log de todos os players.

poderia me explicar onde eu coloco essa função sem bugar o script ? coloqeui aqui mas parou de funcionar. mandarei o Script de createitem.lua

 

Spoiler

function onSay(cid, words, param, channel)
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end

    local t = string.explode(param, ",")
    local ret = RETURNVALUE_NOERROR
    local pos = getCreaturePosition(cid)

    local id = tonumber(t[1])
    if(not id) then
        id = getItemIdByName(t[1], false)
        if(not id) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.")
            return true
        end
    end

    local amount = 100
    if(t[2]) then
        amount = t[2]
    end

    local item = doCreateItemEx(id, amount)
    if(t[3] and getBooleanFromString(t[3])) then
        if(t[4] and getBooleanFromString(t[4])) then
            pos = getCreatureLookPosition(cid)
        end

        ret = doTileAddItemEx(pos, item)
    else
        ret = doPlayerAddItemEx(cid, item, true)
    end

    if(ret ~= RETURNVALUE_NOERROR) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1])
        return true
    end

    doDecayItem(item)
    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(pos, 87)
    end

    return true
end

 

Link para o post
Compartilhar em outros sites
function onSay(cid, words, param, channel)
  local file = io.open('data/logs/logs.txt','a')
                file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. getPlayerNameByGUID(cid) .." usou o comando ".. words .."\n")
                file:close()
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end
    local t = string.explode(param, ",")
    local ret = RETURNVALUE_NOERROR
    local pos = getCreaturePosition(cid)
    local id = tonumber(t[1])
    if(not id) then
        id = getItemIdByName(t[1], false)
        if(not id) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.")
            return true
        end
    end
    local amount = 100
    if(t[2]) then
        amount = t[2]
    end
    local item = doCreateItemEx(id, amount)
    if(t[3] and getBooleanFromString(t[3])) then
        if(t[4] and getBooleanFromString(t[4])) then
            pos = getCreatureLookPosition(cid)
        end
        ret = doTileAddItemEx(pos, item)
    else
        ret = doPlayerAddItemEx(cid, item, true)
    end
    if(ret ~= RETURNVALUE_NOERROR) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1])
        return true
    end
    doDecayItem(item)
    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(pos, 87)
    end
    return true
end

Logo após o function onSay

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
4 minutos atrás, luangop disse:

function onSay(cid, words, param, channel)
  local file = io.open('data/logs/logs.txt','a')
                file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. getPlayerNameByGUID(cid) .." usou o comando ".. words .."\n")
                file:close()
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end
    local t = string.explode(param, ",")
    local ret = RETURNVALUE_NOERROR
    local pos = getCreaturePosition(cid)
    local id = tonumber(t[1])
    if(not id) then
        id = getItemIdByName(t[1], false)
        if(not id) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.")
            return true
        end
    end
    local amount = 100
    if(t[2]) then
        amount = t[2]
    end
    local item = doCreateItemEx(id, amount)
    if(t[3] and getBooleanFromString(t[3])) then
        if(t[4] and getBooleanFromString(t[4])) then
            pos = getCreatureLookPosition(cid)
        end
        ret = doTileAddItemEx(pos, item)
    else
        ret = doPlayerAddItemEx(cid, item, true)
    end
    if(ret ~= RETURNVALUE_NOERROR) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1])
        return true
    end
    doDecayItem(item)
    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(pos, 87)
    end
    return true
end

Logo após o function onSay

deu esse erro na distro

Sem título.png

Link para o post
Compartilhar em outros sites
1 hora atrás, dissolima disse:

deu esse erro na distro

Sem título.png

function onSay(cid, words, param, channel)
  local file = io.open('data/logs/logs.txt','a')
                file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." :::: ".. getPlayerNameByGUID(getPlayerGUID(cid)) .." usou o comando ".. words .."\n")
                file:close()
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end
    local t = string.explode(param, ",")
    local ret = RETURNVALUE_NOERROR
    local pos = getCreaturePosition(cid)
    local id = tonumber(t[1])
    if(not id) then
        id = getItemIdByName(t[1], false)
        if(not id) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.")
            return true
        end
    end
    local amount = 100
    if(t[2]) then
        amount = t[2]
    end
    local item = doCreateItemEx(id, amount)
    if(t[3] and getBooleanFromString(t[3])) then
        if(t[4] and getBooleanFromString(t[4])) then
            pos = getCreatureLookPosition(cid)
        end
        ret = doTileAddItemEx(pos, item)
    else
        ret = doPlayerAddItemEx(cid, item, true)
    end
    if(ret ~= RETURNVALUE_NOERROR) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1])
        return true
    end
    doDecayItem(item)
    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(pos, 87)
    end
    return true
end

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
  • 2 months later...

@luangop @Way20 Olá, desculpa estar revivendo o tópico, mas estou com uma dúvida, teria como adaptar para que dentro do log.txt aparecesse também o ip/nome do item que a pessoa digitou?
Exemplo 1: se o god digitar "/i 2160" aparecesse no log que ele digitou "/i 2160"
Exemplo 2: se o god digitar "/i gold coin" aparecesse no log que ele giditou "/i gold coin"

 

ou melhor dizendo: teria como adaptar esse script para escrever no log.txt absolutamente os comandos COMPLETOS  que a pessoa digitou? Essa seria a pergunta correta ^^

Editado por DiigooMix (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
18 minutos atrás, DiigooMix disse:

@luangop @Way20 Olá, desculpa estar revivendo o tópico, mas estou com uma dúvida, teria como adaptar para que dentro do log.txt aparecesse também o ip/nome do item que a pessoa digitou?
Exemplo 1: se o god digitar "/i 2160" aparecesse no log que ele digitou "/i 2160"
Exemplo 2: se o god digitar "/i gold coin" aparecesse no log que ele giditou "/i gold coin"

 

ou melhor dizendo: teria como adaptar esse script para escrever no log.txt absolutamente os comandos COMPLETOS  que a pessoa digitou? Essa seria a pergunta correta ^^

 

O correto seria você ter criado um novo tópico fazendo seu pedido, mas vamos lá.
Tente assim:
 

function onSay(cid, words, param, channel)
	local pname = getPlayerNameByGUID(getPlayerGUID(cid))
	local pip = getPlayerIp(cid)
  local file = io.open('data/logs/'.. pname ..'.txt','a')
                file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." Ip: ".. pip .." usou o comando >> ".. words .." ".. param .."\n")
                file:close()
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end
    local t = string.explode(param, ",")
    local ret = RETURNVALUE_NOERROR
    local pos = getCreaturePosition(cid)
    local id = tonumber(t[1])
    if(not id) then
        id = getItemIdByName(t[1], false)
        if(not id) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.")
            return true
        end
    end
    local amount = 100
    if(t[2]) then
        amount = t[2]
    end
    local item = doCreateItemEx(id, amount)
    if(t[3] and getBooleanFromString(t[3])) then
        if(t[4] and getBooleanFromString(t[4])) then
            pos = getCreatureLookPosition(cid)
        end
        ret = doTileAddItemEx(pos, item)
    else
        ret = doPlayerAddItemEx(cid, item, true)
    end
    if(ret ~= RETURNVALUE_NOERROR) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1])
        return true
    end
    doDecayItem(item)
    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(pos, 87)
    end
    return true
end

Obs: Neste código fiz com que na pasta logs seja criado um .txt com o nome de quem digitou o comando, para separar os comandos de cada staff em arquivo diferente.

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
14 minutos atrás, luangop disse:

O correto seria você ter criado um novo tópico fazendo seu pedido, mas vamos lá.
Tente assim:
 


function onSay(cid, words, param, channel)
	local pname = getPlayerNameByGUID(getPlayerGUID(cid))
	local pip = getPlayerIp(cid)
  local file = io.open('data/logs/'.. pname ..'.txt','a')
                file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." Ip: ".. pip .." usou o comando >> ".. words .." ".. param .."\n")
                file:close()
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end
    local t = string.explode(param, ",")
    local ret = RETURNVALUE_NOERROR
    local pos = getCreaturePosition(cid)
    local id = tonumber(t[1])
    if(not id) then
        id = getItemIdByName(t[1], false)
        if(not id) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.")
            return true
        end
    end
    local amount = 100
    if(t[2]) then
        amount = t[2]
    end
    local item = doCreateItemEx(id, amount)
    if(t[3] and getBooleanFromString(t[3])) then
        if(t[4] and getBooleanFromString(t[4])) then
            pos = getCreatureLookPosition(cid)
        end
        ret = doTileAddItemEx(pos, item)
    else
        ret = doPlayerAddItemEx(cid, item, true)
    end
    if(ret ~= RETURNVALUE_NOERROR) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1])
        return true
    end
    doDecayItem(item)
    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(pos, 87)
    end
    return true
end

Obs: Neste código fiz com que na pasta logs seja criado um .txt com o nome de quem digitou o comando, para separar os comandos de cada staff em arquivo diferente.

 

nesse caso posso usar essa linha de comando para todos os scripts de comandos que eu quero que gere o log? ele vai pegar o comando e os parametros de qualquer talkaction? por exemplo o comando /a 20?

Link para o post
Compartilhar em outros sites
21 minutos atrás, DiigooMix disse:

 

nesse caso posso usar essa linha de comando para todos os scripts de comandos que eu quero que gere o log? ele vai pegar o comando e os parametros de qualquer talkaction? por exemplo o comando /a 20?

Sim!

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

Perdão erro meu...
Modifique a parte:

local pip = getPlayerIp(cid)

para:

local pip = doConvertIntegerToIp(getPlayerIp(cid))


 

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo