Postado Janeiro 20, 2015 10 anos Sala Secreta Esse código foi testado no TFS 0.3.6 mas da maneira que fiz deve funcionar em todos os demais. O script é de uma sala misteriosa na qual os players vão parar por acidente (Não serão teleportados). Ao pisar em um determinado SQM, a sala é inteira trancada em volta do player, deixando ele sozinho ali dentro. Após isso, 3 pilares começam a "atirar" uns nos outros e, em seguida, começam a atirar no player. Nesse momento, o player deve sair andando pela sala até encontrar o SQM correto, onde deve permancer. Quando ele levar os "tiros" estando no SQM correto, uma chest aparecerá na sua frente. Ao abrir a chest, ele recebe o prêmio, a chest some, a sala é destrancada e ele é enviado para fora. OBS: As posições dos pilares, SQM correto e chest, bem como o prêmio da quest são de fácil configuração nas tabelas no início do código. Vídeo demonstrativo: Instalação Crie secretRoom.lua em data/movements/scripts e cole este código: --[[Secret Room Quest feita por Vítor Bertolucci (Killua) CMS #01]] local Room = { pillars = {{x = 168, y = 52, z = 11}, {x = 158, y = 56, z = 11}, {x = 160, y = 48, z = 11}}, right_spot = {x = 163, y = 50, z = 11}, rocks = {{x = 160, y = 62, z = 11}, {x = 161, y = 62, z = 11}, {x = 162, y = 62, z = 11}}, chest = {x = 163, y = 51, z = 11}, kick_pos = {x = 161, y = 66, z = 11} } function Room:New(infos) if type(infos) ~= "table" then return end local tab = {} tab.cid = infos.cid or false tab.pillars = infos.pillars tab.right_spot = infos.right_spot tab.rocks = infos.rocks tab.chest = infos.chest; if not tab.cid then return end return setmetatable(tab, { __index = self}) end function Room:Lock() for index, r in pairs(self.rocks) do if getTopCreature(r) and getTopCreature(r).uid > 0 then doRemoveCreature(getTopCreature(r).uid) end doCreateItem(1304, 1, r); end end function Room:Shoot(times) if times == 30 then return end doSendDistanceShoot(self.pillars[1], self.pillars[2], 35) addEvent(doSendDistanceShoot, 200, self.pillars[2], self.pillars[3], 35) addEvent(doSendDistanceShoot, 400, self.pillars[3], self.pillars[1], 35) addEvent(self.Shoot, 400, self, times + 1) end function Room:ShootPlayer(interval) addEvent(function() local pos = getThingPos(self.cid) doSendDistanceShoot(self.pillars[1], pos, 30) doSendDistanceShoot(self.pillars[2], pos, 30) doSendDistanceShoot(self.pillars[3], pos, 30) if pos.x == self.right_spot.x and pos.y == self.right_spot.y then local count = 1000; for i = 1,5 do addEvent(doSendMagicEffect, count, pos, 29) count = count + 1000 end; doCreatureSay(self.cid, "Encontrei o baú secreto!", 19) doSendMagicEffect(self.chest, 30) local chest = doCreateItem(1746, 1, self.chest) doItemSetAttribute(chest, "uid", 9123) return; else addEvent(self.ShootPlayer, 600, self) end end, interval) end function onStepIn(cid) if getPlayerStorageValue(cid, 123582) == -1 then doCreatureSay(cid, "Você entrou na sala secreta!", 19) local obj = Room:New({cid = cid, pillars = Room.pillars, right_spot = Room.right_spot, rocks = Room.rocks, chest = Room.chest}); obj:Lock() obj:Shoot(0) obj:ShootPlayer(12000) else doTeleportThing(cid, Room.kick_pos) doPlayerSendCancel(cid, "Você não é mais bem vindo na sala secreta.") end return true end Em movements.xml, cole esta TAG: <movevent type="StepIn" actionid="3781" event="script" value="secretRoom.lua"/> Crie secretRoomChest.lua em data/actions/scripts e cole este código: --[[Secret Room Quest feita por Vítor Bertolucci (Killua) CMS #01]] local rocks = {{x = 160, y = 62, z = 11}, {x = 161, y = 62, z = 11}, {x = 162, y = 62, z = 11}} local kick_pos = {x = 161, y = 66, z = 11} function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, 123582) == -1 then doPlayerSetStorageValue(cid, 123582, 1) doPlayerAddItem(cid, 2160, 100) doPlayerSendTextMessage(cid, 25, "Você ganhou 1kk!") doRemoveItem(item.uid) for k, v in pairs(rocks) do local rock = getTileItemById(v, 1304) if rock and rock.uid > 0 then doRemoveItem(rock.uid); end end addEvent(doTeleportThing, 5000, cid, kick_pos) end return true end Em actions.xml, cole esta TAG: <action uniqueid="9123" event="script" value="secretRoomChest.lua"/> Coloque actionID 3781 nos pisos que servirão de entrada para a sala. Está feito, espero que gostem. Com criatividade dá pra montar uma quest legal e com bastante RPG. Eu irei aproveitar esse script no otPokémon também Editado Janeiro 21, 2015 10 anos por Killua (veja o histórico de edições) Meus trabalhos no fórum
Postado Fevereiro 4, 2015 10 anos Criatividade e Inovação: 19,5/25 -- 12,5/12,5 de código e 7/12,5 de execução Aplicabilidade: 5/15 Simplicidade e Organização: 10/10 Nota final: 6,9 Comentário final: Seu código está impecável, foi o melhor script que eu corrigi durante todo o campeonato e consequentemente você foi o único a gabaritar um dos critérios; Contudo, não pude deixar de notar o quão estranha foi a sua idéia (e a execução dela) e isso lhe fez perder pontos em aplicabilidade pois num servidor de tibia normal ficaria muito estranho ter pilares que atiram uns nos outros e depois atiram nos players. Fora que muitas pessoas apenas não entenderiam e ficariam andando aleatoriamente até acharem (tirando a parte realmente "pensante" de uma quest), ou então, iria achar que estão presas e iriam deslogar e dar merda pro server. 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 Fevereiro 5, 2015 10 anos Obrigado por participar do concurso, espero que também participe dos próximos. O tópico foi movido para a área correta. Bruno Carvalho / Ex-Administrador TibiaKing [email protected] Em 26/12/2016 em 03:47, Spraypaint disse: A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une. -miltinho
Postado Fevereiro 6, 2015 10 anos Autor Obrigado Eu realmente não gastei muito tempo pensando o que fazer, fiz a primeira coisa que me veio a mente kkkk Meus trabalhos no fórum
Postado Fevereiro 6, 2015 10 anos Você tem potencial cara, eu já vi alguns tópicos/posts seus e eu confesso que esperava algo melhor. Tá perfeito em quesito de scripting mas sua idéia realmente não foi boa, acho que se você tivesse tomado um pouco mais do seu tempo poderia ter feito um script muito melhor. Espero que você saiba disso, isso foi longe do melhor que você poderia ter feito (ao meu ver) e ainda assim você conseguiu o segundo lugar.. 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.