Diretor Yan Liima 575 Postado Abril 22, 2015 Diretor Share Postado Abril 22, 2015 Olá galera do Xtibia, venho hoje trazer um sistema muito útil como pode ver no Título ele remove casa dos players que não logam mais. Explicação: Sabe aqueles players filho da mãe que compram as melhores casas e não logam mais no servidor e enche a porra da casa de item pros novos players não comprar? Pois é esse sistema dara um jeito nesses safados! xD Este script é apenas um arquivo que você colocará em sua pasta mods e ele executará toda vez que o servidor for reiniciado/ligado, ou seja: Quando o servidor ligar ele irá verificar os players que não logam a X dias (configurável) e então expulsa-los da casa movendo seus items para o depot deixando a casa sem dono. Bom chega de explicação e 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 codigo: <?xml version="1.0" encoding="UTF-8"?><mod name="Cleanhouses" version="1.04" author="Yan Liima-Night" contact="xtibia.com" enabled="yes"> <description> v.1.04 - Adicionado 'onlyNonPremium' configurável. Versão sem erros por favor caso não é avançado na área não modifique nada. Criado e modificado por Yan Liima Nick: [ADM] Night Este mod irá limpar casas de jogadores inativos e mover os seus itens para o depósito.explicação das configurações: days - Se o jogador não tiver logado para este número de dias de sua casa será liberado. log - true/false, é para habilitar o registro de quais casas foram limpas. file - caminho para o arquivo de log, onde os logs serão armazenados. Ignorado se 'log' definido como falso onlyNonPremium - se definido como 'true', o script irá limpar apenas as casas dos jogadores que não lougou X dias. Outras indicações: NÃO remova doSaveServer() no final, caso contrário, se o servidor parar de funciona antes que o servidor salve você vai se arrepender =) </description> <globalevent name="cleanhouses" type="start" event="buffer"><![CDATA[ local config = { days = 60, 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. Como configurar: days = 60 * É o número em DIAS que o player terá que ficar sem logar para perder a casa. Aconselho a não mexer, caso queira modificar algo aconselho ser avançado na área para não causar error no sistema. Este sistema funciona em qualquer TFS. Créditos Yan Liima Bom eu tinha publicado um post igual esse faz anos so que não lembro minha conta, e pegaro meu post postaro em outro fórum que não merece ser citado com outros créditos estou apenas avisando. Te ajudei?? REP + e ficamos quites... Atenciosamente, Yan Liima Abraços! Spring Trap reagiu a isso 1 Link para o comentário Compartilhar em outros sites More sharing options...
LeoTK 173 Postado Abril 22, 2015 Share Postado Abril 22, 2015 Lindo muito bom para servidores que reinicia de madruga todos os dias ^^ +rep Lindo Link para o comentário Compartilhar em outros sites More sharing options...
Diretor Yan Liima 575 Postado Abril 22, 2015 Autor Diretor Share Postado Abril 22, 2015 <3 Link para o comentário Compartilhar em outros sites More sharing options...
P0ker 5 Postado Abril 22, 2015 Share Postado Abril 22, 2015 Muito útil e de fácil implantação, bom topic Link para o comentário Compartilhar em outros sites More sharing options...
mkbrabsolute 134 Postado Abril 22, 2015 Share Postado Abril 22, 2015 Poste os devidos créditos. Link para o comentário Compartilhar em outros sites More sharing options...
Diretor Yan Liima 575 Postado Abril 25, 2015 Autor Diretor Share Postado Abril 25, 2015 Devidos créditos do que chapa? Que eu saiba a script não é sua não foi tu que criou unica coisa que peguei foi sua explicação xD se quiser ganha créditos pela explicação so fala pow eu ponho aqui Link para o comentário Compartilhar em outros sites More sharing options...
Marfito 9 Postado Abril 25, 2015 Share Postado Abril 25, 2015 Rep+, obrigado por compartilhar. Link para o comentário Compartilhar em outros sites More sharing options...
Spring Trap 2 Postado Maio 3, 2015 Share Postado Maio 3, 2015 Rep + adoro seus trabalhos, mais você podia postar mais de suas script aqui faz anos que não vejo você postando script suas, Liga pro absolute não ele é cheio de roubar script e mudar créditos. Link para o comentário Compartilhar em outros sites More sharing options...
chateadoagr 12 Postado Maio 3, 2015 Share Postado Maio 3, 2015 otimo systema agradeço por nos ensinar e disponibilizar Link para o comentário Compartilhar em outros sites More sharing options...
Boos 7 Postado Fevereiro 17, 2016 Share Postado Fevereiro 17, 2016 Está dando esse erro OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such function: UNIX_TIMESTAMP ( SELECT houses.owner, houses.id as hid, houses.name as house_name ,players.name FROM housesLEFT JOIN players ON players.id=houses.ownerLEFT JOIN accounts ON players.account_id=accounts.idWHERE players.lastlogin < (UNIX_TIMESTAMP() - 60*24*60*60)AND accounts.premdays=0 AND players.world_id =0) Link para o comentário Compartilhar em outros sites More sharing options...
Diretor Yan Liima 575 Postado Fevereiro 17, 2016 Autor Diretor Share Postado Fevereiro 17, 2016 Está dando esse erro OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such function: UNIX_TIMESTAMP ( 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() - 60*24*60*60) AND accounts.premdays=0 AND players.world_id =0) Você usa SQLITE certo? este MOD so funciona em Mysql. Link para o comentário Compartilhar em outros sites More sharing options...
leozinpbb 7 Postado Fevereiro 17, 2016 Share Postado Fevereiro 17, 2016 Não tem alguma forma de fazer para pegar em sqlite ? por favor ! Link para o comentário Compartilhar em outros sites More sharing options...
Boos 7 Postado Fevereiro 20, 2016 Share Postado Fevereiro 20, 2016 Você usa SQLITE certo? este MOD so funciona em Mysql. Aff Link para o comentário Compartilhar em outros sites More sharing options...
disso 1 Postado Novembro 10, 2016 Share Postado Novembro 10, 2016 Rep+ vlw pela contribuição. ajudou mt em meu servidor Link para o comentário Compartilhar em outros sites More sharing options...
Wicke 60 Postado Novembro 10, 2016 Share Postado Novembro 10, 2016 Obrigado, Rep + Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados