Jump to content
Close
lordzetros

Sistema [TFS 1.3] Teleport com janela

Recommended Posts

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 



Não esqueçam de me marca quando eu responder em seu tópico, assim recebo a notificação e volto em seu tópico.
Não dou suporte em mensagem privada ou fora do fórum.
Não esqueça de reputa e agradecer a pessoa que lhe ajudou em algum tópico seu.
"Só ajudo quem eu vejo ajudando." xD

Não esqueça de reputa alguém que lhe ajudou ou tentou lhe ajudar, e agradeça com suas palavras. Seja grato por alguém ter lhe ajudado ou tentado lhe ajudar!

O coitadismo e o conformismo potencializado é a arte de sentir compaixão de si mesmo para você não utilize ferramentas capazes de transformar
sua história!!

-- Augusto Cury

 

                                                               ezgif-1-98aab239f3.gif




Share this post


Link to post
Share on other sites

testado, obrigado amigao me ajudou muito


Edited by Cleiton Felipi
Erro corrigido (see edit history)



Share this post


Link to post
Share on other sites

Como sempre, mostrando que sabe muito!

Rep+ amigo!

 

Abraços





Share this post


Link to post
Share on other sites

@Cleiton Felipi Disponha! 😄 

 

@Semideus Haha, esse daí é o mito. 🤣



Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif




Share this post


Link to post
Share on other sites

teria como passar esse seu sistema de monster level?





Share this post


Link to post
Share on other sites
Em 10/11/2018 em 00:37, lordzetros disse:

TFS 1.3 - TESTADO EM VERSÃO 10.98

* Introdução *

 

    Bom, estive navegando no Fórum e vi que o usuário @Cleiton Felipi pediu um script que ao player entrasse no teleport de um X monstro, um Demon por exemplo, listasse qual hunt o jogador queria entrar. Achei interessante, e resolvi desenvolver e postar no TK, já que não tinha ainda, :).

 

 

 

* Sobre o sistema *

 

     Você utiliza diversas hunts com vários tps criados no mapa no seu servidor do mesmo monstro? Bom, este script será muito útil para você! Pois ele permitirá que você habilite ao jogador em qual hunt ele quer caçar, por exemplo, se tiver Demon 01, Demon 02, Demon 03, Demon X, basta apenas você criar um tp indicando o monstro e que uma janela irá aparecer com a lista de opções de hunts, prático, né? Segue imagens de demonstração:

Screenshot_69.png.4608229bb4c9f711e85466d3f158d7db.png

Screenshot_70.thumb.png.f165d49d596184e5c98a541d2a7a3833.png

 

 

OBS¹.: Você pode colocar TODOS OS MONSTROS neste script, contando que tenha o actionID que ficará no teleporte, não é de uma quantidade limitada, em outras palavras, você pode adicionar as hunts de Demon, Frost Dragon, Dragon, ..., tudo aqui, apenas mudando o actionID (tudo configurável, não se preocupe).

 

* Instalação *

 

Em data/movements/scripts/ crie um arquivo chamado mov_janela_hunts.lua e adicione dentro:


--[[
Script - Lordzetros
Fórum Tibia King
]]

local config = {
	titulo = "BEM VINDO(A) A JANELA DE HUNTS!", -- Título da Janela
	mensagem = "Selecione qual hunt voce deseja ir:", -- Mensagem abaixo do título da janela
}

CONFIG_TPS_JANELA = {
	[19090] = { -- ID do action que ficará no portal da hunt
		{nome = "Demon 01", pos = {x = 98, y = 139, z = 7}}, -- Segue padrão, nome da cave e posição que o player será teleportado
		{nome = "Demon 02", pos = {x = 93, y = 144, z = 7}},
		{nome = "Demon 03", pos = {x = 91, y = 140, z = 7}},
		{nome = "Demon 04", pos = {x = 94, y = 138, z = 7}},
		{nome = "Demon 05", pos = {x = 95, y = 136, z = 7}},
	},
	[19091] = { 
		{nome = "Frost 01", pos = {x = 98, y = 140, z = 7}},
		{nome = "Frost 02", pos = {x = 93, y = 145, z = 7}},
		{nome = "Frost 03", pos = {x = 91, y = 141, z = 7}},
		{nome = "Frost 04", pos = {x = 94, y = 139, z = 7}},
		{nome = "Frost 05", pos = {x = 95, y = 137, z = 7}},
	},
}

local function getActions(tabela) 
	t = {}
	for c, v in pairs(tabela) do
		table.insert(t, c)
	end
	return t
end

function onStepIn(creature, item, pos, fromPosition)
	local t_actions = getActions(CONFIG_TPS_JANELA)
	if (isInArray(t_actions, item:getActionId()) and creature:isPlayer()) then
		local i_action = item:getActionId()
		creature:teleportTo(fromPosition, true)
		creature:registerEvent("janela hunts")
		local janela = ModalWindow(1000, config.titulo, config.mensagem)
		
		for i, v in ipairs(CONFIG_TPS_JANELA[i_action]) do
			janela:addChoice(i, v.nome)
		end
		janela:addButton(100, "Confirmar")
		janela:addButton(101, "Fechar")
		janela:setDefaultEnterButton(100)
		janela:setDefaultEscapeButton(101)
		JANELA_TP_ACTION = i_action
		janela:sendToPlayer(creature)
	end
	return true
end

 

Em data/movements/movements.xml adicione o seguinte código abaixo de um semelhante:


<movevent event="StepIn" itemid="5023" script="mov_janela_hunts.lua" />

 

 

Agora em data/creaturescripts/scripts/ crie um arquivo chamado creature_janela_hunts.lua e adicione dentro:


function onModalWindow(player, modalWindowId, buttonId, choiceId)
	player:unregisterEvent("janela hunts")
	if (modalWindowId == 1000) then
		if (buttonId == 100) then
			local tele_pos = CONFIG_TPS_JANELA[JANELA_TP_ACTION][choiceId].pos
			player:teleportTo(tele_pos)
			local pos_t = Position(tele_pos)
			pos_t:sendMagicEffect(CONST_ME_MAGIC_BLUE)
		end
	end
	return true
end

 

Em data/creaturescripts/creaturescripts.xml adicione o seguinte código abaixo de um semelhante:


<event type="ModalWindow" name="janela hunts" script="creature_janela_hunts.lua"/>

 

* Configuração *

    Bom, apesar de que não seja difícil de configurar, é necessário uma explicação, vamos lá...

1 - 


[19090] = { -- ID do action que ficará no portal da hunt
		{nome = "Demon 01", pos = {x = 98, y = 139, z = 7}}, -- Segue padrão, nome da cave e posição que o player será teleportado
		{nome = "Demon 02", pos = {x = 93, y = 144, z = 7}},
		{nome = "Demon 03", pos = {x = 91, y = 140, z = 7}},
		{nome = "Demon 04", pos = {x = 94, y = 138, z = 7}},
		{nome = "Demon 05", pos = {x = 95, y = 136, z = 7}},
	},

Em [19090] este número de dentro é o actionID que ficará no portal. Com ele será identificado de qual monstro se trata, bastando apenas configurar este número e o nome das opções de monstros que você quer aparecendo na janela, em seguida, a posição na qual o jogador será teleportado, seguindo a ordem. Segue imagem de como deve ficar o seu portal:

Screenshot_71.png.d5bd967d26e4cd1b17c63f4a82e38a5d.png

OBS²: VOCÊ EDITA O ACTIONID NO SEU EDITOR DE MAPA COLOCANDO NO ID DO ITEM DE TELEPORTE.

OBS³: PARA ADICIONAR NOVAS HUNTS NO SCRIPT, BASTA SEGUIR O PADRÃO QUE ESTÁ NO CÓDIGO, DO 19090 PARA O 19091.

 

2 - (por fim)

Em data/movements/movements.xml


<movevent event="StepIn" itemid="5023" script="mov_janela_hunts.lua" />

itemID = Id do item que o player andará para abrir a janela de hunt

Está como 5023 por conta que o magic forcefield é 5023, no qual utilizei para teste, aconselho você deixar da mesma forma (caso seja o mesmo id no seu servidor), ou mude, mas cuidado para não cometer algum erro.

 

 

Enfim, algo simples, porém não encontrei no TK.

Abraços. :) 
 

 

 

mano deu esse erro, porém meu tfs é 1.2, será que é por isso?

 

erro.jpg


Edited by JuremaFox (see edit history)



Share this post


Link to post
Share on other sites

.@JuremaFox Qual a versão do seu servidor? Modal Window só foi implementada a partir do 9.6.
 



Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif




Share this post


Link to post
Share on other sites
7 horas atrás, lordzetros disse:

.@JuremaFox Qual a versão do seu servidor? Modal Window só foi implementada a partir do 9.6.
 

 

8.6 tfs 1.2, não sabia que estava relacionado a versao do tibia e sim do tfs





Share this post


Link to post
Share on other sites

Ja adicionei aqui, to usando <3





Share this post


Link to post
Share on other sites

Detalhe: existe um limite de 256 opções em uma janela.





Share this post


Link to post
Share on other sites

Se o player não selecionar um lugar da erro no distro:

 

Lua Script Error: [CreatureScript Interface]
data/creaturescripts/scripts/modalgatekeeper.lua:onModalWindow
data/creaturescripts/scripts/modalgatekeeper.lua:5: attempt to index a nil value
stack traceback:
        [C]: in function '__index'
        data/creaturescripts/scripts/modalgatekeeper.lua:5: in function <data/creaturescripts/scripts/modalgatekeeper.lua:1>

 

Alguem sabe como checar se n tiver selecionado destino ?





Share this post


Link to post
Share on other sites
5 horas atrás, danilo9317 disse:

Se o player não selecionar um lugar da erro no distro:

 


Lua Script Error: [CreatureScript Interface]
data/creaturescripts/scripts/modalgatekeeper.lua:onModalWindow
data/creaturescripts/scripts/modalgatekeeper.lua:5: attempt to index a nil value
stack traceback:
        [C]: in function '__index'
        data/creaturescripts/scripts/modalgatekeeper.lua:5: in function <data/creaturescripts/scripts/modalgatekeeper.lua:1>

 

Alguem sabe como checar se n tiver selecionado destino ?

 

Testa colocando isto:

 

function onModalWindow(player, modalWindowId, buttonId, choiceId)
	player:unregisterEvent("janela hunts")
	if (modalWindowId == 1000) then
            if (buttonId == 100) then
                local tele_pos = CONFIG_TPS_JANELA[JANELA_TP_ACTION][choiceId].pos
                player:teleportTo(tele_pos)
                local pos_t = Position(tele_pos)
                pos_t:sendMagicEffect(CONST_ME_MAGIC_BLUE)
            else
                player:sendCancelMessage('Você não escolheu uma opção.')
            end
	end
	return true
end

 



Contribuições:
 

=> Distribuições/Servidores

  1. [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64)

 

=> Scripts/Códigos/Tutoriais

  1. Pokemon pescado aparece em volta do seu pokemon
  2. [Gesior]Dobrar pontos PagSeguro a partir de x valor doado

 

 Gostou de alguma contribuição? Rep +😁




Share this post


Link to post
Share on other sites

@Rayo

Não funcionou, estou tentando pensar uma logica

 

function onModalWindow(player, modalWindowId, buttonId, choiceId)

	player:unregisterEvent("janela hunts")
	if (modalWindowId == 1000) then
			if buttonId == 100 then	
					if  choiceId == 1 or choiceId == 2 or choiceId == 3 or choiceId == 4 then -- Adicionei as escolhas que adicionei no vetor de TPs
						local tele_pos = CONFIG_TPS_JANELA[JANELA_TP_ACTION][choiceId].pos
						player:teleportTo(tele_pos)
						local pos_t = Position(tele_pos)
						pos_t:sendMagicEffect(CONST_ME_MAGIC_BLUE)
					else
						player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Escolha um destino.')
						return false
					end	
			end
	end
end


A solução que encontrei foi adicionar a lista de lugares que adicionei pelo AddChoice.

por algum motivo ele não tava conseguindo ler operadores ( >= , <=,  ao tentar usar retornava index nil) para comparar o choiceID  e encurtar, se alguém souber por que gostaria de saber.


Edited by danilo9317 (see edit history)



Share this post


Link to post
Share on other sites
7 horas atrás, danilo9317 disse:

@Rayo

Não funcionou, estou tentando pensar uma logica

 


function onModalWindow(player, modalWindowId, buttonId, choiceId)

	player:unregisterEvent("janela hunts")
	if (modalWindowId == 1000) then
			if buttonId == 100 then	
					if  choiceId == 1 or choiceId == 2 or choiceId == 3 or choiceId == 4 then -- Adicionei as escolhas que adicionei no vetor de TPs
						local tele_pos = CONFIG_TPS_JANELA[JANELA_TP_ACTION][choiceId].pos
						player:teleportTo(tele_pos)
						local pos_t = Position(tele_pos)
						pos_t:sendMagicEffect(CONST_ME_MAGIC_BLUE)
					else
						player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Escolha um destino.')
						return false
					end	
			end
	end
end


A solução que encontrei foi adicionar a lista de lugares que adicionei pelo AddChoice.

por algum motivo ele não tava conseguindo ler operadores ( >= , <=,  ao tentar usar retornava index nil) para comparar o choiceID  e encurtar, se alguém souber por que gostaria de saber.

 

Você está usando TFS 1.3?



Contribuições:
 

=> Distribuições/Servidores

  1. [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64)

 

=> Scripts/Códigos/Tutoriais

  1. Pokemon pescado aparece em volta do seu pokemon
  2. [Gesior]Dobrar pontos PagSeguro a partir de x valor doado

 

 Gostou de alguma contribuição? Rep +😁




Share this post


Link to post
Share on other sites

@rayo

 

Sim





Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...