Postado Agosto 17, 2014 10 anos Este é um post popular. Eai pessoal, vim trazer hoje um sistema de passagem secreta que um amigo viu no Baiak-wars. Não sei qual server é esse e eu não jogo tibia então pra mim tanto faz mas ele gravou um vídeo, pediu um igual e obviamente eu não fiz um igual porque o sistema dos caras era muito ruim uhauheuhauheuhauheuhuhauhe Enfim, comecei um script do 0 pra fazer exatamente oque ele queria e foi isso daqui que eu consegui:Explicação: Você clica em algum item escondido pelo mapa e abre uma passagem secreta que vai durar X segundos (configurável), após esse tempo a passagem se fecha; Note que nessas imagens ele não tá escondido já que tem uma FUCKING ARVORE NO MEIO DE UM DESERTO mas você pode colocar uma tocha em cima de uma parede e colocar o actionid na tocha pra ativar e vai ficar super foda e com muito rpg Ué, mas oque tem de diferente dos outros scripts? Bem, ele é super fácil de configurar e ele dá a sensação de que o item foi arrastado :] Bom, se isso não foi o bastante pra você entender então observe essas fotinhas Spoiler Spoiler Tendo entendido tudo vamos à parte mais legal da coisa (SCRIPTAR!!!!) Você vai precisar criar um arquivo em actions\scripts chamado hidden.lua com o seguinte conteúdo: local positions = { [1] = {pos = {x=139, y=77, z=7}, id = 1718}, [2] = {pos = {x=140, y=77, z=7}, id = 1718}, [3] = {pos = {x=139, y=76, z=7}, id = 6855, toid = 6884}, [4] = {pos = {x=140, y=76, z=7}, id = 6855, toid = 6884}, } local createpos = { [1] = {pos = {x=138, y=77, z=7}, id = 1718}, [2] = {pos = {x=141, y=77, z=7}, id = 1718} } local tempo = 5 function onUse(cid, item, frompos, item2, topos) if getTileItemById(positions[1].pos, positions[1].id).uid < 100 then doPlayerSendCancel(cid, "Is already open.") return true end doCreatureSay(cid, "You have ".. tempo .." seconds.", 19) function criar_paredes() for i = 1, #positions do if i <= (#positions/2) then doCreateItem(positions[i].id, 1, positions[i].pos) local obst = getTileItemById(createpos[i].pos, createpos[i].id).uid doSendMagicEffect(createpos[i].pos, 2) doRemoveItem(obst, 1) elseif i > (#positions/2) then local obst = getTileItemById(positions[i].pos, positions[i].toid).uid doTransformItem(obst, positions[i].id) end end return true end for i = 1, #positions do local obst = getTileItemById(positions[i].pos, positions[i].id).uid if i <= (#positions/2) and obst ~= 0 then doRemoveItem(obst, 1) doSendMagicEffect(positions[i].pos, 2) doCreateItem(createpos[i].id, 1, createpos[i].pos) elseif i > (#positions/2) and obst ~=0 then doTransformItem(obst, positions[i].toid) end end addEvent(criar_paredes, tempo*1000) return true end Feito isso vc vai precisar declarar no actions.xml a forma que você quer utilizar o script <action actionid="27004" script="hidden.lua"/> note que vc pode colocar algum itemid, actionid ou uniqueid de sua escolhe, só lembre de mudar no map editor dependendo da forma que vc escolher. Agora eu vou ensinar vocês a configurarem o meu monstrinho *-* Quote local tempo = 5 aqui você tem o tempo que a passagem vai ficar aberta Quote local positions = { [1] = {pos = {x=139, y=77, z=7}, id = 1718}, [2] = {pos = {x=140, y=77, z=7}, id = 1718}, [3] = {pos = {x=139, y=76, z=7}, id = 6855, toid = 6884}, [4] = {pos = {x=140, y=76, z=7}, id = 6855, toid = 6884}, } local createpos = { [1] = {pos = {x=138, y=77, z=7}, id = 1718}, [2] = {pos = {x=141, y=77, z=7}, id = 1718} } aqui você vai editar o seguinte: na primeira são as posições dos itens e seus respectivos id's Quote local positions = {[1] = {pos = {x=139, y=77, z=7}, id = 1718},[2] = {pos = {x=140, y=77, z=7}, id = 1718}, posição das duas prateleiras e seus id's Quote [3] = {pos = {x=139, y=76, z=7}, id = 6855, toid = 6884},[4] = {pos = {x=140, y=76, z=7}, id = 6855, toid = 6884}, posição das paredes, id dela e pra qual id ela vai ser transformada. Quote local createpos = {[1] = {pos = {x=138, y=77, z=7}, id = 1718},[2] = {pos = {x=141, y=77, z=7}, id = 1718}} aqui você tem as posições que sua prateleira vai se mover e os id's dela. Lembrando que você pode se sentir livre pra adicionar oque vc quiser e deixar do seu gosto, só lembrando que se vc quiser adicionar mais items ou diminuir itens é só alterar nas duas tabelas seguindo a mesma lógica. Metade pra prateleira, metade pra parede e uma tabela pra fazer as prateleiras se moverem. Os créditos são 60% meus e 40% do @MaXwEllDeN por ter me dado um norte no começo do script. Qualquer coisa comenta aí e dá aquele rep+ pra ajudar ;] Editado Julho 17, 2017 7 anos por xWhiteWolf melhora do código e identação. (veja o histórico de edições) Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Agosto 17, 2014 10 anos DAAAAAAAAAAAAAHORA '-' Servidor com sources estáveis, com sistemas completos e tudo atualizados, para saber mais acessem https://www.facebook.com/pokeVKS
Postado Agosto 17, 2014 10 anos Nem posso testar o sistema no momento, pois estou procurando um TFS bom para o meu projeto, mas curtu demais o sistema. Concerteza isso estará em meu OT. REP+ Conlheça o projeto:
Postado Agosto 17, 2014 10 anos Autor Qual o bug? Você tem que construir uma área parecida com aquela do mapa (2 paredes em cima e 2 obstáculos embaixo com espaço pra se moverem pelo menos 1 sqm pros lados) e colocar todas as posições e id's dos itens que você utilizou Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
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.