Ir para conteúdo
  • Cadastre-se

Erro no The Forggoten Server


Posts Recomendados

Olá , eu gostaria de saber como eu arrumo

 

2O5XUj3.pngEstou usando

Olá Galera do TK, venho hoje rapidamente trazer um sistema muito útil e pedido em meu tópico do !eject systemhttp://www.tibiaking...ativo-da-house/


 

Explicação:

Sabe aqueles players chatos que compram as melhores casas e não logam no servidor e enche a desgrama da casa de item só para os novos players não comprar? Pois é, isto não existirá mais! =D

Este script é apenas um arquivo que você colocará em sua pasta mods e ele executará toda vez que o servidor for reiniciado, ou seja: Quando o servidor ligar ele irá verificar os players que não logam a dias (configurável) e então expulsa-los da casamovendo seus items para o depot deixando a casa sem dono.

 

 

 

 

Vamos ao que interessa;
 
Na pasta principal do servidor, onde fica a distro que roda o servidor e tudo mais, entre na pasta MODS e crie um arquivo com o nome de cleanhouses.xml e dentro coloque o seguinte:

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Cleanhouses" version="1.03" author="nsanee" contact="tibiaking.com" enabled="yes">
<description>
v.1.03 - Added 'onlyNonPremium' configurable.
Removed modlib, since the script is run once anyway we don't need it loaded at all times.
It shouldn't now stop execution when a house is nameless.
                
        v.1.02 - now uses only one sql query, removed multiworld configurable since it's not needed anymore
v.1.01 - small fixes, optimized query + multiworld support.

        
This mod will clean houses of inactive players and move their items to the depot.

config explained:

days - If the player hasn't logged in for this number of days his house will be freed.
log - true/false, whether to enable logging of which houses have been cleaned.
file - path to the log file, where logs will be stored. Ignored if 'log' set to false
onlyNonPremium - if set to 'true', the script will clean only the houses of players who don't have any pacc days left.
            
        other notes:
            DO NOT remove doSaveServer() at the end, otherwise if your server happens to crash before the nearest server save you will regret it =)

</description>

<globalevent name="cleanhouses" type="start" event="buffer"><![CDATA[
    
    
local config = {
days = 3,
log = true,
file = getDataDir() .. "/logs/cleanhouses.txt",
     onlyNonPremium = true
}
        
        
        
local ns_query =[[ SELECT houses.owner, houses.id as hid, houses.name as house_name ,players.name FROM houses
LEFT JOIN players ON players.id=houses.owner
LEFT JOIN accounts ON players.account_id=accounts.id
WHERE players.lastlogin < (UNIX_TIMESTAMP() - ]] ..config.days.. [[*24*60*60)
]] ..(config.onlyNonPremium and ' AND accounts.premdays=0 ' or '')..[[
AND    players.world_id =]] .. getConfigValue("worldId")
        
local house = db.getResult(ns_query)
local logs = " :: Houses cleaned:\n\n"
if house:getID() ~= -1 then
repeat
logs = logs .. house:getDataString('house_name') ..", owned by " .. house:getDataString('name') .. "\n"
setHouseOwner(house:getDataInt('hid'), 0)
until not house:next()
house:free()
else
logs = logs .. "There were no houses to clean."
end
if config.log then
doWriteLogFile(config.file, logs)
end
addEvent(doSaveServer, 1000)
        
]]>
</globalevent>
</mod>


Pronto, salve e feche.

 

Toda vez que o servidor iniciar irá expulsar os players que não logam aos dias configuráveis.

 

 

divisor.png

 

 

 

Como configurar:

 days = 3 * É o número em DIAS que o player terá que ficar sem logar para perder a casa.

 

 

 

Configure apenas isto, o resto aconselho não mexer, caso queira aprimorar o sistema aconselho ser avançado na área para não causar erros no mesmo.
 

 

 


O Mesmo foi testado hoje por mim e está em funcionalidade a todas as versões de TFS.

 

 

 

Créditos:
Absolute
nsanee (otland)





Demais dúvidas deixe-me saber!

 

 

Link para o post
Compartilhar em outros sites

Está dando erro ao usar o comando em frente a casa?

Meu Conteúdo no TK:

 

Sources 8.6x, 8.7x, 9.x

 

Naruto Sprites

 

 

Se eu lhe ajudar, você reconhecer que ajudei, mas não der Rep+, não espere por ajuda na próxima duvida.

 

aODwHkU.png

 

Link para o post
Compartilhar em outros sites

Sim, eu já fiz uso dele, se você remove o script o server abre normalmente sem nem um destes erros?

Meu Conteúdo no TK:

 

Sources 8.6x, 8.7x, 9.x

 

Naruto Sprites

 

 

Se eu lhe ajudar, você reconhecer que ajudei, mas não der Rep+, não espere por ajuda na próxima duvida.

 

aODwHkU.png

 

Link para o post
Compartilhar em outros sites

Seguinte, vai em talkactions/scripts, copia e cola qualquer um dos arquivos lua, depois renomeia a copia pra:

 

eject

 

Após isto abre o arquivo, apaga tudo e põe isso no lugar:

 

function onSay(cid, words, param)
    local position = getPlayerPosition(cid)

    if getPlayerLookDir(cid) == 0 then
        positions = {x=position.x, y=position.y-1, z=position.z}
    elseif getPlayerLookDir(cid) == 1 then
        positions = {x=position.x+1, y=position.y, z=position.z}
    elseif getPlayerLookDir(cid) == 2 then
        positions = {x=position.x, y=position.y+1, z=position.z}
    elseif getPlayerLookDir(cid) == 3 then
        positions = {x=position.x-1, y=position.y, z=position.z}
    end

    if getHouseFromPos(positions) == false then
        doPlayerSendTextMessage(cid, 27, "Voce precisa estar na frente a porta da casa para usar o comando.")
    return true
    end

    local days = 5*24*60*60
    local own = getHouseOwner(getHouseFromPos(positions))
    local qry = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = "..own)
    
    
if(qry:getID() ~= -1) then
        last = tonumber(qry:getDataInt("lastlogin"))
        if last < os.time() - days then
            setHouseOwner(getHouseFromPos(positions), NO_OWNER_PHRASE,true)
            doPlayerSendTextMessage(cid, 27, "A Casa agora esta sem dono, você ou outro jogador pode compra-la")
        end
        if last > os.time() - days then
            doPlayerSendTextMessage(cid, 27, "O proprierário desta casa ainda está ativo no servidor, tente outra casa.")
        end
    end
    return true
end

 

 

Depois vai na pasta talkactions e abre o arquivo talkactions.xml, dentro dele adiciona isso:

<talkaction words="!eject" event="script" value="eject.lua"/>

 

A diferença desse sistema que estou te dando, para o outro, é que nesse aqui, se o player ficar tantos dias sem logar, qualquer outro player que chegar na frente da casa e falar !eject, vai deixar a casa livre, e todos os itens do cara que estão na casa irão pro dp dele. A quantidade de dias tu configuras em  local days = 5*24*60*60 onde o primeiro número é a quantidade de dias, no caso está configurado para 5 dias.

Editado por kbelin (veja o histórico de edições)

Meu Conteúdo no TK:

 

Sources 8.6x, 8.7x, 9.x

 

Naruto Sprites

 

 

Se eu lhe ajudar, você reconhecer que ajudei, mas não der Rep+, não espere por ajuda na próxima duvida.

 

aODwHkU.png

 

Link para o post
Compartilhar em outros sites

Então deixa eu fazer uma pergunta , eu apago tudo o que eu fiz daquele la de cima e substituo o seu por aquele la de cima??? 

Link para o post
Compartilhar em outros sites

Remove aquele, tira ele do server, se quiser guarde-o. Aí então faça do jeito que eu falei.

Meu Conteúdo no TK:

 

Sources 8.6x, 8.7x, 9.x

 

Naruto Sprites

 

 

Se eu lhe ajudar, você reconhecer que ajudei, mas não der Rep+, não espere por ajuda na próxima duvida.

 

aODwHkU.png

 

Link para o post
Compartilhar em outros sites

Me adiciona lá no face que lhe mandei por PM.

Meu Conteúdo no TK:

 

Sources 8.6x, 8.7x, 9.x

 

Naruto Sprites

 

 

Se eu lhe ajudar, você reconhecer que ajudei, mas não der Rep+, não espere por ajuda na próxima duvida.

 

aODwHkU.png

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo