Ir para conteúdo

Featured Replies

Postado
Em 30/12/2018 em 11:10, jefersonzc disse:

Bom, resolvi desenvolver eu mesmo uma solução, me baseando nos scripts que encontrei pelo caminho :) Segue abaixo.

 

1. Em data/creaturescripts/scripts/login.lua, acrescente:



player:registerEvent("Idle")

2. Em data/creaturescripts/creaturescripts.xml, acrescente:



<event type="think" name="Idle" script="idle.lua"/>

3. Na pasta data/creaturescripts/scripts, crie o arquivo idle.lua, com o seguinte código:



local room = {
	x1 = 1542,
	x2 = 1608,
	y1 = 1528,
	y2 = 1556,
	z1 = 8,
	z2 = 8
}

function onThink(player, interval)
	local target = player:getTarget()
	
	if (player:getIp() > 0) then
		return true
	else
		local pos = player:getPosition()
		if ((pos.x >= room.x1 and pos.x <= room.x2) and (pos.y >= room.y1 and pos.y <= room.y2) and (pos.z >= room.z1 and pos.z <= room.z2)) then
			doRemoveCreature(player)
		end
	end
	return true
end

 

Depois é só configurar o script com as coordenadas da sua room (onde ficam os trainers). Pronto, qualquer player que der quit ali dentro, esteja ele atacando os trainers ou não, vai levar kick alguns segundos depois.

 

Podem fechar como resolvido ;) 

Vc nao explicou direito como coloca os ids dos tiles?  (onde ficam os trainers). ?? onde coloca?

Poxa vida estou com esse problemas a meses e o pessoal aqui do Tibiaking nao ta nem ai pra essa pergunta parece que todos se esconde !!!!

Como resolver esse problemaaa????


Esssa duvida ainda nao foi resolvida como muitas desse TK de merda!

 

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

  • Respostas 9
  • Visualizações 2.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • você poderia resolver também da seguinte forma, se você não atacar o mob ele desloga, então é só parar o ataque ao da exit. troca sua função onTargetCombat function Creature:onTargetCombat(ta

  • Opa! Então meu amigo, vc não precisa configurar ID de tile nenhum. Essa função é executada em tempo real, o que ela faz é ficar checando o player para ver se o IP de conexão dele é igual a 0. Se o IP

  • Essas coordenadas são a posição onde começa e termina a sua sala. O ideal é que vc abra o seu Map Editor e imagine um retângulo grande o suficiente para envolver toda a sua área de treino (já que nem

Posted Images

Postado
  • Autor
18 horas atrás, Heitorzera13 disse:

Vc nao explicou direito como coloca os ids dos tiles?  (onde ficam os trainers). ?? onde coloca?

Poxa vida estou com esse problemas a meses e o pessoal aqui do Tibiaking nao ta nem ai pra essa pergunta parece que todos se esconde !!!!

Como resolver esse problemaaa????


Esssa duvida ainda nao foi resolvida como muitas desse TK de merda!

 

 

Opa! Então meu amigo, vc não precisa configurar ID de tile nenhum. Essa função é executada em tempo real, o que ela faz é ficar checando o player para ver se o IP de conexão dele é igual a 0. Se o IP for 0, significa que o player deu quit ou que a internet dele caiu, daí o script analisa a posição do player dentro do mapa e se essa posição estiver dentro da sala de treinamento significa que é preciso expulsar o player do jogo, forçando o logout. Agora, se ele estiver em qualquer outro canto do mapa, então ele não será expulso.

 

As coordenadas da sala de treinamento são definidas aqui, e vc precisa alterá-las de acordo com a sala de treinamento do seu servidor.

 

local room = {
	x1 = 1542,
	x2 = 1608,
	y1 = 1528,
	y2 = 1556,
	z1 = 8,
	z2 = 8
}

 

Postado
  • Autor
33 minutos atrás, Heitorzera13 disse:

Como são definidas essas cordenadas?
 




local room = {
	x1 = 1542,
	x2 = 1608,
	y1 = 1528,
	y2 = 1556,
	z1 = 8,
	z2 = 8
}

 

Essas coordenadas são a posição onde começa e termina a sua sala. O ideal é que vc abra o seu Map Editor e imagine um retângulo grande o suficiente para envolver toda a sua área de treino (já que nem sempre elas são retangulares, como no meu caso). O X1 e o Y1 são as coordenadas do canto superior esquerdo desse retângulo, e o X2 e o Y2 são as coordenadas do canto inferior direito.

 

Screenshot_2.thumb.png.7e2266144a096169f6b4968b8019359d.png

 

Já o Z1 e o Z2 são referentes aos andares. Como a minha sala só tem um andar, que fica no floor 8, eu coloco o valor 8 nos dois. Mas vamos supor que a minha área de treino fosse um prédio composto pelo térreo, dois andares pra cima e um no subsolo, nesse caso eu usaria Z1 = 6 e Z2 = 9.

 

Espero que tenha ficado mais claro agora ;)

 

Adendo: Se você quiser configurar mais de um "local de quick", que se encontram em lugares distantes um do outro no mapa, terá que configurar uma segunda room (ex.: local room2) e acrescentar um segundo IF relacionado a essa outra sala.

elsif ((pos.x >= room2.x1 and pos.x <= room2.x2) and (pos.y >= room2.y1 and pos.y <= room2.y2) and (pos.z >= room2.z1 and pos.z <= room2.z2)) then
			doRemoveCreature(player)

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

Postado

RESOLVIDO , excelente explicação muito obrigado pela paciencia ^^
 

Obrigadoooooooooooo amigo ?

ganhou meu respeito. Rep++++

4 horas atrás, jefersonzc disse:

 

Essas coordenadas são a posição onde começa e termina a sua sala. O ideal é que vc abra o seu Map Editor e imagine um retângulo grande o suficiente para envolver toda a sua área de treino (já que nem sempre elas são retangulares, como no meu caso). O X1 e o Y1 são as coordenadas do canto superior esquerdo desse retângulo, e o X2 e o Y2 são as coordenadas do canto inferior direito.

 

Screenshot_2.thumb.png.7e2266144a096169f6b4968b8019359d.png

 

Já o Z1 e o Z2 são referentes aos andares. Como a minha sala só tem um andar, que fica no floor 8, eu coloco o valor 8 nos dois. Mas vamos supor que a minha área de treino fosse um prédio composto pelo térreo, dois andares pra cima e um no subsolo, nesse caso eu usaria Z1 = 6 e Z2 = 9.

 

Espero que tenha ficado mais claro agora ;)

 

Adendo: Se você quiser configurar mais de um "local de quick", que se encontram em lugares distantes um do outro no mapa, terá que configurar uma segunda room (ex.: local room2) e acrescentar um segundo IF relacionado a essa outra sala.



elsif ((pos.x >= room2.x1 and pos.x <= room2.x2) and (pos.y >= room2.y1 and pos.y <= room2.y2) and (pos.z >= room2.z1 and pos.z <= room2.z2)) then
			doRemoveCreature(player)

 

 

 

Editado por Heitorzera13 (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.7k

Informação Importante

Confirmação de Termo