Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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 por Killua (veja o histórico de edições)

 

 

 

 

 

v61snZO.png?129bcx1x.pngiVgTXVz.png?1

 

 

 

 

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • Respostas 10
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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 S

^ Seu servidor não possui a função getThingPos. Troque: local pos = getThingPos(self.cid) por: local pos = getCreaturePosition(self.cid) e veja se o erro persiste.

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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

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

 

wMwSJFE.png?1

 

Link para o post
Compartilhar em outros sites

Obrigado :) Eu realmente não gastei muito tempo pensando o que fazer, fiz a primeira coisa que me veio a mente kkkk

 

 

 

 

 

v61snZO.png?129bcx1x.pngiVgTXVz.png?1

 

 

 

 

 

Link para o post
Compartilhar em outros sites

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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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.

  • Conteúdo Similar

    • Por Nextbr
      Boa Noite Glaera, BLZ?
       
      Hoje Vou Postar Mais uma de minhas Ideias Loucas de Poketibia que eu particulamente achei legal ate que se Chama "Catch Channel"
       
      [+] Para que Serve o Catch Channel?
      - Simples Serve Para voce Ver todos os Catch do Servidor no Canal "Catch Channel"
      - O Script é Bem Basico!
       
       
      [+] Intao Vamos La:
       
      [+] Servidor Testado:
      Pokemon Dash Advanced (PDA V2.5 BY: BOLZ)
       
       
      Vai em data/lib/CATCHSYSTEM.LUA  e Procure por Essa funçao: 



       
      - Procure por essa Parte do Script:



       
      - Logo Abaixo Adiciona isso:



       
      Explicando:
       
      TALKTYPE_CHANNEL_W: Letra Branca 
      5 : Channel ID (No Caso é o Game-Chat)
       
      Depois vai em data/xml/channels.xml e troca seu Channel id "5" Para Esse:



       
      [+] Imagem:

      Hidden Content
      Give reaction to this post to see the hidden content.  
      Creditos: NextBR
    • Por Nextbr
      Eae Galera Tudo na Paz?

      [+] Hoje Vou Postar um Script de Catch Por Skill Configurado No "Sword Fighting" do Seu Old Client Intao vamos La:

      -Resumo: Quanto Maior o Skill "Catching" Maior a chance de Captura do Pokemon!

      [+] OBS: Eu nao Vou Postar o Script Completo Pois de Cada (PDA) ou (PDA - COM PokeLevel) é Diferente um do Outro, Eu So vou Ensinar a Voces a como Adicionar o Sistema em Seus Servidores!

      [+] Servidor Testado:
      - Pokemon Dash Advanced

      [+] Primeiro Vai em Data/Lib/catchsystem.lua e Procure por essa Funçao:






      [+] Na Parte aonde manda a MSG de que Voce "capturou um Pokemon" e "Capturou um Pokemon e Foi para o CP" add Isso Abaixo dessas Msg:




      - Resumo: doPlayerAddSkillTry(cid,2,10) --- Quando Capturar um Pokemon vai Ganhar 10% de Skill "2".
      - Obs: No meu Client o Skill Catching Esta no Skill "Sword Fighting"



      [+] Bom Logo Apos Voce vai em data/actions/catch.lua e no Começo do Script add isso:


        [+] Agora Procure essa Funçao: local catchinfo = {}

      - E Troca por Isso:




      -OBS: O Script é Bem Basico. Dar Para adicionar varios Coisas Como (Ganhar EXP Dependendo do Skill/Almentar Chance de Catch para Premium Account e etc...)

      [+] Imagens:

      Hidden Content
      Give reaction to this post to see the hidden content.

      [+] OBS: So vai ganhar Skill se Voce Capturar o Pokemon e Recomendo voces Deixar o Catch BAIXO! Por que o Script faz a Soma de Rate um Exemplo:
      Pokeball Rate: 50
      Skill Cathing Rate (com 25 de Skill Cathing) : 100
      Somar: 50+100 = 150 de Rate o Jogador vai ter  
      [script Atualizado Dia 25/01/2015]




      [+] Creditos: NextBR
    • Por Under
      Apresentando o Tibia-IA: A IA para Desenvolvimento de Servidores Tibia! 
       O que é o Tibia-IA?
      Um modelo de IA especializado para Tibia! Ele está atualmente em teste gratuito, e eu adoraria que vocês o experimentassem. Basta acessar https://ai.tibiaking.com, criar uma conta e começar a usar totalmente de graça! 
       Versão Experimental Fechada
      Atualmente, algumas funcionalidades ainda estão em desenvolvimento. No momento, apenas a geração de scripts está disponível para o público.
      Se encontrarem qualquer problema nos scripts gerados, me avisem! Vamos juntos construir a IA mais poderosa para ajudar no desenvolvimento de servidores Tibia!  
      Contato direto discord : underewar
       Acesse agora: https://ai.tibiaking.com
       Como funciona?
       Geração automática de scripts LUA para TFS  Suporte a diferentes eventos, criaturas, NPCs, magias, etc.  Ferramenta em constante evolução para aprimorar o desenvolvimento Novidades em breve confira no site. O acesso ao Tibia-IA está disponível para testes GRATUITOS! 
      Basta criar uma conta em: https://ai.tibiaking.com
      Utilize a IA para gerar seus scripts de forma simples e rápida
      Envie feedbacks para ajudarmos a tornar a ferramenta ainda melhor!

      Problemas relatar diretamente no meu discord pessoal : underewar
       
       
    • Por Mathwsz
      Bom galera, estou trazendo um script de fusão que funciona assim:
      Explicação: É necessário de 7 itens, na qual você coloca em tal coordenada e aperte a alavanca, sendo assim formando um item na qual você deseja em tal lugar configurado.
      Exemplo: Você pode fazer 7 bosses na qual dropa tals itens "Parecidos" e formando um item raro de sua escolha, ou como preferir.. Vamos ao script!
       
      Em Data/Actions/Scripts crie um arquivo chamado fusaoitens.lua e adicione isto dentro:
       
       
      Agora, em Data/Actions.xml adicione o seguinte:
       
      <action uniqueid="9900" script="fusaoitens.lua" /> E no seu RemeresMapEditor , pegue sua alavanca, vai em Propriedades e adicione o UniqueID 9900 nele! 
      PRONTO! Agora configure e divirta-se! Obs: Caso lhe ajudei, da um REP+ Aí !
    • Por Maniaco
      Salve TibiaKing!!! TFS 0.4 . 8.60
       
      Estou implementando o Sistema do @WooX de Cave Exlusiva

      Link:
       
      Porem estou com um problema seguindo o tutorial completo dele acabo tendo um retorno de erro na Distro! E ja que o mesmo nao entra no forum deis de 14/01! Venho solicitar ajuda de vocês!
      Caso alguem tenha o Discord Dele Favor me Passe  
      Vamos lá!
      Erro:
       
      Script :
       
      Lib
       
       
      Print Rme:
       
       
      Lembrando que nao esta funcionando em geral, Acrédito que eu tenha pulado algo ou deixado passar despercebido!
      Espero que alguem consiga me ajudar vlw!
  • Estatísticas dos Fóruns

    96844
    Tópicos
    519613
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo