Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? TFS 0.4

 

Qual o motivo deste tópico? Estou precisando de uma ajuda para montar uma ideia que ja existe em alguns servidores hoje em dia, mas tendo o script em mãos consigo renovar um pouco para oque eu quero.

vamos lá, estou precisando de um script que cria X item em uma posição random no mapa no andar "7" no caso em qualquer parte do mapa no andar "7".  Um exemplo seria para aparecer um bau no mapa, eu adcionaria uma action nesse bau para quando o player achar e clicar nele o action criaria um monstro por exemplo.

Mas preciso apenas do script que crie X item em qualquer lugar do mapa de preferencia um globalevents. se for possivel e colocar uma tabela onde eu possa colocar mais items e colocar a chance para cada item aparecer seria ótimo.

tenho em mente uma ideia que seria criar monstros e items em uma area aleatoria no mapa. os monstros dariam alguns items bons como loot e os items serveriam para alguma quest por exemplo.

 

Achei o script abaixo aqui no tibiaking, mas ele não é oque estou precisando, se alguém puder adapta-lo seria de grande ajuda!

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

function onStartup()
  
local fromx = 2795 -- posiçao x superior a esquerda da area que sera analisada
local tox = 2799 -- posiçao x inferior a direita da area que sera analisada
local fromy = 879 -- posiçao y superior a esquerda da area que sera analisada
local toy = 886 -- posiçao y inferior a direita da area que sera analisada
local floor = 7 -- posição z referece ao andar que criara o item
local item = 2160 -- item que sera criado
local pos = {x= math.random(fromx, tox), y=math.random(fromy, toy), z=floor}

local function ckfox()
local pos = {x= math.random(fromx, tox), y=math.random(fromy, toy), z=floor}
if doCreateItem(item, 1, pos) == TRUE then
return true
end
addEvent(ckfox, 100)
end

if doCreateItem(item, 1, pos) == TRUE then
else addEvent(ckfox, 100)
return true
end

return true
end 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Resolvido por Vodkart

Ir para solução
  • Respostas 14
  • Visualizações 1.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Vodkart sim, consigo summonar ele com o /m. Está funcionando com as duas funções, o script cria o monstro, mas continua persistindo o erro. Acredito que o monstro não está sendo verificado se pode se

Posted Images

Postado

Olá eu fiz um script, bem provavel não dará erro mas eu não testei rsrs.. Testa ai e me fala..

O script a seguir, deve ser colocado em globalevents, cria um arquivo.lua dentro de "Servidor/data/globalevents/scripts" e adicione o script a seguir, agora salve-o.

 

Agora você deve colocar a tag em "Servidor/data/globalevents/globalevents.xml" contendo um horário, ou a frequência que o script irá ser chamado, exemplo:

 

<globalevent name="NomeScript" time="21:50" event="script" value="NOMEDOARQUIVO.lua"/>

 

ou

 

<globalevent name="NomeScript" interval="100" event="script" value="NOMEDOARQUIVO.lua"/>

 

 

time, seria o horário que o item vai spawnar, e interval será de segundos em segundos, no caso ali está configurado para ser todos os dias as 21:50 e o de baixo vai ocorrer de 100 em 100 segundos

 

local fromx = 2795 -- posiçao x superior a esquerda da area que sera analisada
local tox = 2799 -- posiçao x inferior a direita da area que sera analisada
local fromy = 879 -- posiçao y superior a esquerda da area que sera analisada
local toy = 886 -- posiçao y inferior a direita da area que sera analisada
local floor = 7 -- posição z referece ao andar que criara o item


-- Inicio e Fim devem ser 0, pois serão preenchidos de acordo com sua chance,
-- e se você preencher não fará diferença pois o valor será modificado mesmo assim :D
-- Quanto maior o número em "Chance" maior será a probabilidade de ser o item escolhido

local Itens = 
{	
	{Item = 2160, Chance = 100, Inicio = 0, Fim = 0}, 
	{Item = 2161, Chance = 100, Inicio = 0, Fim = 0}
	{Item = 2162, Chance = 80, Inicio = 0, Fim = 0}
	{Item = 2163, Chance = 500, Inicio = 0, Fim = 0}
	{Item = 2164, Chance = 200, Inicio = 0, Fim = 0}
}

function onThink(cid, interval, lastExecution)
	
	local pos = {x= math.random(fromx, tox), y=math.random(fromy, toy), z=floor}
	local ItemSpawn = RetornarItemRandom()
	
	
	if ItemSpawn > 0 then
		if doCreateItem(ItemSpawn, 1, pos) == true then
			return true
		end
	end
	
    return true
end

function RetornarItemRandom()
	
	local Num = 0
	
	-- Adicionar probabilidades
	for i = 1, #Itens do
		Itens[i].Inicio = Num
		Num = ((Num + Itens[i].Chance) - 1)
		Itens[i].Fim = Num
	end
	
	-- Criar a chance
	local Math = math.random(0, Num)
	
	-- Retornar item
	for i = 1, #Itens do
		
		if Itens[i].Inicio <= Math and Itens[i].Fim >= Math then
			return Itens[i].Item
		end
		
	end
	
	return 0
end

 

Editado por Pokemon Nox Oficial (veja o histórico de edições)

Postado
  • Autor

@Pokemon Nox Oficial O Script está funcionado, porém está criando items dentro das paredes também e eu não queria isso, quero que crie os items em qualquer parte do mapa, exceto dentro de paredes, montanhas, arvores, etc... você pode me ajudar?

se póssivel colocar para não spawnar em area pz também seria ótimo! agradeço pela ajuda irmão.

Editado por hiquezerah (veja o histórico de edições)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo