Jump to content
×
×
  • Create New...
  • 0

Executar uma Janela


No Face
 Share

Question

Opa, faz muito tempo que não faço um tópico, então perdão se estiver no lugar errado 😶

 

Venho aqui para questiona-los sobre como posso criar um Script, o funcionamento dele seria simples, ao enviar/falar um certo comando, iria executar uma janela na tela do jogador, não ocuparia todo o espaço da tela, nessa janela, iria ter algumas anotações feitas pela administração, como regras, dicas, informações extras, etc, o jogador não poderia alterar nada nela, apenas poderia copiar a mensagem que aparece para colar em outro lugar, essa janela teria mais de 1 página, sendo possível ir passando e mostrando diferentes anotações. Como eu poderia criar um Script destes? 

 

Nota: A janela poderia ser modificada, ou seja, as anotações poderiam ser alteradas e até mesmo o visual da janela, se não for possível, ignore essa parte.

Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Você poderia usar a função doShowTextDialog(cid, itemid, text), que no caso seria essa janela:

 

Lua - Perfect addon lever! BIG PROBLEM... | OTLand

 

Essa janela é bem útil porque tem scroll e ela tem um tamanho bom no cliente. E o interessante dessa função é que você pode passar o id de um item que ficaria como "ícone" dessa janela.

Link to post
Share on other sites

  • 0
Em 02/11/2021 em 01:44, Yan Oliveira disse:

Você poderia usar a função doShowTextDialog(cid, itemid, text), que no caso seria essa janela:

 

Lua - Perfect addon lever! BIG PROBLEM... | OTLand

 

Essa janela é bem útil porque tem scroll e ela tem um tamanho bom no cliente. E o interessante dessa função é que você pode passar o id de um item que ficaria como "ícone" dessa janela.

Entendi. Aqui no fórum há algum "tutorial" sobre como posso usa-la/coloca-la? Sou leigo no assunto 'u'

Link to post
Share on other sites

  • 0
21 horas atrás, No Face disse:

Entendi. Aqui no fórum há algum "tutorial" sobre como posso usa-la/coloca-la? Sou leigo no assunto 'u'

Tutorial explicando e ensinando a como usar diretamente essa janela doShowTextDialog() acho que não tem, mas tem alguns tutoriais ensinando a usar para coisas específicas, como por exemplo, um tutorial meu de colocar todas as quests do servidor nela: https://xtibia.com/forum/topic/251549-quest-log-em-janela/?tab=comments#comment-1759135

 

Como não sei se você possui algum conhecimento em programação, vou fazer para você, mas se tiver, pode entrar nesse link do meu tutorial e colocar somente os textos desejados.

 

Vai em Data/Talkactions/Scripts e crie um arquivo chamado rules.lua e adicione o script dentro:

 

Se seu servidor for TFS 0.x adicione esse script:

 

-- AVISOS --
local avisos = {
[1] = "Não ofender ninguém.",
[2] = "Não compartilhar sua conta com nenhuma pessoa.",
[3] = "Respeitar todos os jogadores.",
}

-- DICAS --
local dicas = {
[1] = "Se você estiver com algum problema, reporte para a administração utilizando o atalho CTRL+R.",
[2] = "Para saber quantos jogadores há online, utilize o comando !online.",
}

-------------- VARIÁVEIS -------------
local id_icon_item = 2160 -- ID DO ITEM QUE FICARÁ COMO ÍCONE DA JANELA
local text = "" -- TEXTO QUE CONCATENARÁ TODAS AS MENSAGENS PARA ADICIONAR NA JANELA


------------------------ CÓDIGO ----------------------------
function onSay(cid, words, param)

	-- REGRAS --
	for index, value in ipairs(avisos) do
		if index == 1 then
			text = "\t- REGRAS"
			text = text .. "\n\n" .. index .. "- " .. value
		
		elseif index > 1 and index < #avisos then		
			text = text .. "\n" .. index .. "- " .. value
			
		else
			text = text .. "\n" .. index .. "- " .. value .. "\n\n\n"
		end			
	end
	
	-- DICAS --
	for index, value in ipairs(dicas) do
		if index == 1 then
			text = text .. "\t- DICAS"
			text = text .. "\n\n" .. index .. "- " .. value
		
		elseif index > 1 and index < #avisos then	
			text = text .. "\n" .. index .. "- " .. value
		
		else
			text = text .. "\n" .. index .. "- " .. value		
		end
	end
	
return doShowTextDialog(cid, id_icon_item, text)
end

 

 

Se for TFS 1.X, adicione esse script:

 

-- AVISOS --
local avisos = {
[1] = "Não ofender ninguém.",
[2] = "Não compartilhar sua conta com nenhuma pessoa.",
[3] = "Respeitar todos os jogadores.",
}

-- DICAS --
local dicas = {
[1] = "Se você estiver com algum problema, reporte para a administração utilizando o atalho CTRL+R.",
[2] = "Para saber quantos jogadores há online, utilize o comando !online.",
}

-------------- VARIÁVEIS -------------
local id_icon_item = 2160 -- ID DO ITEM QUE FICARÁ COMO ÍCONE DA JANELA
local text = "" -- TEXTO QUE CONCATENARÁ TODAS AS MENSAGENS PARA ADICIONAR NA JANELA


------------------------ CÓDIGO ----------------------------
function onSay(player, words, param, channel)

	-- REGRAS --
	for index, value in ipairs(avisos) do
		if index == 1 then
			text = "\t- REGRAS"
			text = text .. "\n\n" .. index .. "- " .. value
		
		elseif index > 1 and index < #avisos then		
			text = text .. "\n" .. index .. "- " .. value
			
		else
			text = text .. "\n" .. index .. "- " .. value .. "\n\n\n"
		end			
	end
	
	-- DICAS --
	for index, value in ipairs(dicas) do
		if index == 1 then
			text = text .. "\t- DICAS"
			text = text .. "\n\n" .. index .. "- " .. value
		
		elseif index > 1 and index < #avisos then	
			text = text .. "\n" .. index .. "- " .. value
		
		else
			text = text .. "\n" .. index .. "- " .. value		
		end
	end
	
return player:showTextDialog(id_icon_item, text)
end

 

Agora vá abra o talkactions.xml e adicione a tag:

 

<talkaction words="!rules" event="script" value="rules.lua"/> <!-- SE QUISER MUDAR O COMANDO, SÓ MUDAR DENTRO DE words -->

 

As únicas coisas que você precisará mexer é nas tabelas que contém as mensagens, coloquei textos genéricos, e o id do ícone que ficará na janela que está na variável id_icon_item (coloquei um id aleatório).

 

Eu deixei o comando !rules para executar o comando na tag do xml, então usando o comando, esse será o resultado:

 

image.png.8fa8bff7c3d05d7949db5133806cc616.png

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.