Ir para conteúdo
  • 0

Porta vocation


brendoonh

Pergunta

Boa noite galera.

 

Estou fazendo um trainer exclusivo para os paladin, porém, queria um script onde so iriam entrar os paladins nessa area. E caso tenha alguém na cabine, aparecesse uma "mensagem", lembrando que tem varias cabines de trainer!!!

 

Tibia 8.6/ tfs 0.4

 

Caso n entenda da um toque q tento explicar melhor...

Editado por brendoonh
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Não entendi muito bem...

Seria mais facil botar uma area, com tds os treiners. Mas para entrar nessa area teria que passar por apenas 1 porta. E seria nessa porta que a checagem seria feita. Aí o player, como ele ñ é cego, veria que aql treiner X está ocupado, levando-o a procurar outro.

Caso vc aceite essa minha sugestão, vamos lá:

Em data\actions\scripts crie um arquivo chamado portaVoc.lua e coloque isso dentro:

local voc = {1, 2, 3, 4} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == voc[v] then
			doSendMagicEffect(getCreaturePosition(cid), 2)
		else
			doPlayerSendCancel(cid, "Desculpe, para acessar esta área você precisa ser "..string.explode(getVocationInfo(voc[k]).name, ", ").."")
		return false
		end
	end
return true
end

Agora vá em data\actions e coloque essa tag dentro do arquivo actions.xml:

<action actionid="69785" script="portaVoc.lua" />

*preste atenção nesta parte: coloque a action id na PORTA igual à que vc colocar nessa tag acima. (nesse caso, eu botei pra ser 69785)

 

 

Qualquer duvida, tamo ae.

Link para o comentário
Compartilhar em outros sites

  • 0

A mensagem que deveria aparecer quando a pessoa nao é paladin, nao está aparecendo e a vocação paladin tambem n passa pela porta...

 

"only the worthy may pass" com qualquer tipo de vocação...

local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == voc[v] then
			doSendMagicEffect(getCreaturePosition(cid), 2)
		else
			doPlayerSendCancel(cid, "Desculpe, para acessar esta área você precisa ser "..string.explode(getVocationInfo(voc[k]).name, ", ").."")
		return false
		end
	end
return true
end
<action actionid="65051" script="portapala.lua" />

OBS: troquei o ActionID pois meu server não aceita numero alto de mais...

 

Erro que dei na distro:

2ziq6fl.png

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta agr:

local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == voc[v] then
			doSendMagicEffect(getCreaturePosition(cid), 2)
		else
			doPlayerSendCancel(cid, "Only the worthy may pass.")
			doTeleportThing(cid,frompos,true)
		end
	end
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

 

Tenta agr:

local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == voc[v] then
			doSendMagicEffect(getCreaturePosition(cid), 2)
		else
			doPlayerSendCancel(cid, "Only the worthy may pass.")
			doTeleportThing(cid,frompos,true)
		end
	end
return true
end

kkkkkk, qualquer vocação "passa" pela porta, ao clicar nela, manda a mensagem "only the..." e a pessoa fica no encima da porta, podendo entrar e sair... bugo ausheuhasu

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:

local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) ~= voc[v] then
			doPlayerSendCancel(cid, "Only the worthy may pass.")
			doTeleportThing(cid,frompos)
		return true
		end
		doSendMagicEffect(getCreaturePosition(cid), 2)
	end
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Puta vida...

local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
posi = getCreaturePosition(cid)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == voc[v] then
			doSendMagicEffect(getCreaturePosition(cid), 2)
		else
			doPlayerSendCancel(cid, "Only the worthy may pass.")
			doTeleportThing(cid, posi)
			return false
		end
	end
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

 

Puta vida...

local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
posi = getCreaturePosition(cid)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == voc[v] then
			doSendMagicEffect(getCreaturePosition(cid), 2)
		else
			doPlayerSendCancel(cid, "Only the worthy may pass.")
			doTeleportThing(cid, posi)
			return false
		end
	end
return true
end

Nenhuma vocação passa pela porta... Só fica aparecendo a mensagem!

Link para o comentário
Compartilhar em outros sites

  • 0

Caralho velho... Erro meu. Creio q agr vai:

local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
posi = getCreaturePosition(cid)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == v then
			doSendMagicEffect(getCreaturePosition(cid), 2)
		else
			doPlayerSendCancel(cid, "Only the worthy may pass.")
			doTeleportThing(cid, posi)
			return false
		end
	end
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0
local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
posi = getCreaturePosition(cid)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == v then
			doSendMagicEffect(getCreaturePosition(cid), 2)
			if frompos.x > topos.x then
			doTeleportThing(cid, {x=topos.x - 1, y=topos.y, z=topos.z})
			elseif frompos.x < topos.x then
			doTeleportThing(cid, {x=topos.x + 1, y=topos.y, z=topos.z})
			elseif frompos.y < topos.y then
			doTeleportThing(cid, {x=topos.x, y=topos.y + 1, z=topos.z})
			elseif frompos.y > topos.y then
			doTeleportThing(cid, {x=topos.x, y=topos.y - 1, z=topos.z})
			end
		else
			doPlayerSendCancel(cid, "Only the worthy may pass.")
			doTeleportThing(cid, posi)
			return true
		end
	end
return true
end

~~parte desse script foi escrito pelo NightWolf

Link para o comentário
Compartilhar em outros sites

  • 0
local voc = {3, 7} --vocações que podem acessar a porta

function onUse(cid, item, frompos, item2, topos)
posi = getCreaturePosition(cid)
	for k, v in pairs(voc) do
		if getPlayerVocation(cid) == v then
			doSendMagicEffect(getCreaturePosition(cid), 2)
			if frompos.x > topos.x then
			doTeleportThing(cid, {x=topos.x - 1, y=topos.y, z=topos.z})
			elseif frompos.x < topos.x then
			doTeleportThing(cid, {x=topos.x + 1, y=topos.y, z=topos.z})
			elseif frompos.y < topos.y then
			doTeleportThing(cid, {x=topos.x, y=topos.y + 1, z=topos.z})
			elseif frompos.y > topos.y then
			doTeleportThing(cid, {x=topos.x, y=topos.y - 1, z=topos.z})
			end
		else
			doPlayerSendCancel(cid, "Only the worthy may pass.")
			doTeleportThing(cid, posi)
			return true
		end
	end
return true
end

~~parte desse script foi escrito pelo NightWolf

 

Mesma coisa, clica sai fumaça e mensagem, e n dá pra passar...

Editado por brendoonh
Link para o comentário
Compartilhar em outros sites

  • 0

@@brendoonh, não to entendo o q ta dando errado... Aparece algum erro na distro? Tem certeza que a porta está (action id) está ligada a somente esse script?

Sim, a primeira coisa que fiz foi averiguar se esse ID ja estava sendo utilizado... Não está!

Nenhum erro na distro.

 

30hu78p.png

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...