Postado Março 29, 2018 7 anos Desculpe ta revivendo o topico,mas queria saber se teria como bloquear algumas houses para não poder utilizar este comando.
Postado Junho 11, 2018 6 anos Em 08/06/2014 em 19:11, Absolute disse: Salve galerinha do TK. Hoje vim trazer um script muito útil e buscado hoje em dia nos otservers, é o sistema de !eject.Como funciona ? Caso o player fica X dias sem logar (configurável) qualquer outro jogador pode chegar na porta da house dizendo o comando !eject, então a house ficará sem dono e em seugida o player poderá compra-la normalmente, dizendo !buyhouse. É um sript simples e que poderá dar lugar e novas houses a jogadores novos, expulsando os jogadores que não logam mais no seu servidor. Nota: o script é vendido em uma "empresa" de open tibia onde estou colocando os créditos , disponibilizando aqui minha adaptação e o scrpit para vocês, achou errado? não gostou? ENTÃO COMPRA LÁ =pVamos ao que interessa; Abra sua pasta talkactions/scripts e dentro dela crie um arquivo .lua com o nome de: expulse_house.lua e dentro coloque: 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 Pós ter feito isto, abra o seu arquivo talkactions.xml e coloque debaixo de uma linha qualquer a seguinte linha: <talkaction words="!eject" event="script" value="expulse_house.lua"/> Pronto. basta o player chegar na porta da casa e dizer !eject, caso o jogador esteja a 5 dias sem logar, os items do antigo dono irão para o DEPOT e a casa ficará sem dono. @Configuração do script: local days = 5*24*60*60 Onde está o número 5 é o tanto de dias que o player tem que ficar sem logar para outro jogador executar o comando. Para alterar para 3 dias, ficaria como exemplo: local days = 3*24*60*60 E assim sucessivamente. Qualquer dúvida não deixe de me comunicar, estarei disposto a ajuda-lo. Em 08/06/2014 em 19:11, Absolute disse: tá dando esse erro como resolvo fiz tudo certo, já fiz farias vezes mesmo assim continua... [10/06/2018 22:30:30] [Error - LuaScriptInterface::loadFile] cannot open data/talkactions/scripts/expulse_house.lua: No such file or directory [10/06/2018 22:30:30] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/expulse_house.lua) [10/06/2018 22:30:30] cannot open data/talkactions/scripts/expulse_house.lua: No such file or directory Créditos: Keilost
Postado Junho 11, 2018 6 anos @Helder Junio adm na xml o diretório é um, o nome do arquivo na pasta é outro, um não corresponde ao outro!
Postado Junho 11, 2018 6 anos Em 10/06/2018 em 23:07, KotZletY disse: @Helder Junio adm na xml o diretório é um, o nome do arquivo na pasta é outro, um não corresponde ao outro! os nomes estão certos, mas mesmo assim não funfa.
Postado Junho 11, 2018 6 anos você colocou nome "expulse_house.lua" e o correto é "expulse_house" o LUA é a extensão do arquivo.
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.