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

Ok... Vamos tentar outra coisa. Remova o action id da porta. Adicione o action id ao piso da porta.

 

script.lua:

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

function onStepIn(cid, frompos)
	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, frompos)
		end
	end
return true
end

*atenção! O script agora é um movement. Caso não saiba instalá-lo, avisa que eu ensino.

Link para o comentário
Compartilhar em outros sites

  • 0

Vá em data\movements e adicione essa tag ao arquivo movements.xml:

<movevent type="StepIn" actionid="5876" event="script" value="pisovoc.lua"/>

Agora adicione a action id 5876 ao piso que fica em baixo da porta, pois é o action que está configurado na tag acima.

Agora vá em data\movements\scripts e crie um arquivo chamado pisovoc.lua e coloque o script q eu mandei acima.

Link para o comentário
Compartilhar em outros sites

  • 0

Vá em data\movements e adicione essa tag ao arquivo movements.xml:

<movevent type="StepIn" actionid="5876" event="script" value="pisovoc.lua"/>

Agora adicione a action id 5876 ao piso que fica em baixo da porta, pois é o action que está configurado na tag acima.

 

Agora vá em data\movements\scripts e crie um arquivo chamado pisovoc.lua e coloque o script q eu mandei acima.

34sh2xl.png

 

OBS, lembrando que coloquei o ID no chao, como voce falou...

Link para o comentário
Compartilhar em outros sites

  • 0

@@brendoonh, o erro está reportando que não conseguiu encontrar o arquivo. Pf, garanta de que a instalação dos scripts foi feita de forma correta.

 

*de acordo com o erro, vc precisa btoar o nome do script como: portapala.lua

Link para o comentário
Compartilhar em outros sites

  • 0

@@brendoonh, o erro está reportando que não conseguiu encontrar o arquivo. Pf, garanta de que a instalação dos scripts foi feita de forma correta.

 

*de acordo com o erro, vc precisa btoar o nome do script como: portapala.lua

Na verdade foi um errinho meu, eu adicionei o seu e esqueci de tirar a tag que eu tinha tentado...

O erro saiu, fiz como voce falou.. quando passa pelo SQM da porta aparece a mensagem e qlq vocação consegue passar...

Link para o comentário
Compartilhar em outros sites

  • 0

Tranquilo... Esse script aqui eu já testei e tá 100%. Falta apenas funcionar aí pra vc... sauhsahuas:

function onStepIn(cid, item, position, fromPosition)
local tileConfig = {
kickPos = fromPosition,
kickEffect = CONST_ME_POFF,
kickMsg = "Only the worthy may pass.",
enterMsg = "Welcome!",
enterEffect = CONST_ME_MAGIC_BLUE,
}
local vocations = {3,4,7}

    if isInArray(vocations, getPlayerVocation(cid)) then
    doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg)
    doSendMagicEffect(position, tileConfig.enterEffect)
    return true
    else
    doTeleportThing(cid, tileConfig.kickPos)
    doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect)
    doPlayerSendCancel(cid, tileConfig.kickMsg)
    return true
    end
end

~~agradecimentos ao Matheus Duarte

Editado por Danihcv
correção de codigos
Link para o comentário
Compartilhar em outros sites

  • 0

Tranquilo... Esse script aqui eu já testei e tá 100%. Falta apenas funcionar aí pra vc... sauhsahuas:

function onStepIn(cid, item, position, fromPosition)
local tileConfig = {
kickPos = fromPosition,
kickEffect = CONST_ME_POFF,
kickMsg = "Only the worthy may pass.",
enterMsg = "Welcome!",
enterEffect = CONST_ME_MAGIC_BLUE,
}
local vocs = {3,7}
 
for i = 1, #vocs do
    if getPlayerVocation(cid) == vocs[i] then
    doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg)
    doSendMagicEffect(position, tileConfig.enterEffect)
    return true
    else
    doTeleportThing(cid, tileConfig.kickPos)
    doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect)
    doPlayerSendCancel(cid, tileConfig.kickMsg)
    end
end
return true
end

#PODE SER QUE NO SEU NÃO FUNCIONE...

Tem Como Fazer Mais de 2 Voc Passar ?

@UP

@UP

@UP

Link para o comentário
Compartilhar em outros sites

  • 0

@@Vasto Lord X, tem sim. Basta ir acrescentando nessa parte:

local vocations = {3,4,7} --vocações permitidas

 

Segue a nova versão do script, sem erro:

function onStepIn(cid, item, position, fromPosition)
local tileConfig = {
kickPos = fromPosition,
kickEffect = CONST_ME_POFF,
kickMsg = "Only the worthy may pass.",
enterMsg = "Welcome!",
enterEffect = CONST_ME_MAGIC_BLUE,
}
local vocations = {3,4,7}

	if isInArray(vocations, getPlayerVocation(cid)) then
    doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg)
    doSendMagicEffect(position, tileConfig.enterEffect)
    return true
    else
    doTeleportThing(cid, tileConfig.kickPos)
    doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect)
    doPlayerSendCancel(cid, tileConfig.kickMsg)
	return true
    end
end
Link para o comentário
Compartilhar em outros sites

  • 0

@@Vasto Lord X, tem sim. Basta ir acrescentando nessa parte:

 

 

Segue a nova versão do script, sem erro:

function onStepIn(cid, item, position, fromPosition)
local tileConfig = {
kickPos = fromPosition,
kickEffect = CONST_ME_POFF,
kickMsg = "Only the worthy may pass.",
enterMsg = "Welcome!",
enterEffect = CONST_ME_MAGIC_BLUE,
}
local vocations = {3,4,7}

	if isInArray(vocations, getPlayerVocation(cid)) then
    doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg)
    doSendMagicEffect(position, tileConfig.enterEffect)
    return true
    else
    doTeleportThing(cid, tileConfig.kickPos)
    doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect)
    doPlayerSendCancel(cid, tileConfig.kickMsg)
	return true
    end
end

@

Esqueci de Salvar no Notepad, Agora Funciono .

 

Outra Pergunta Você Sabe Por Exausted No Comando transformar?

Editado por Vasto Lord X
Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, vc tá usando o script antigo, que estava com erro. O certo a usar é esse ultimo que eu postei:

function onStepIn(cid, item, position, fromPosition)
local tileConfig = {
kickPos = fromPosition,
kickEffect = CONST_ME_POFF,
kickMsg = "Only the worthy may pass.",
enterMsg = "Welcome!",
enterEffect = CONST_ME_MAGIC_BLUE,
}
local vocations = {3,4,7}

    if isInArray(vocations, getPlayerVocation(cid)) then
    doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg)
    doSendMagicEffect(position, tileConfig.enterEffect)
    return true
    else
    doTeleportThing(cid, tileConfig.kickPos)
    doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect)
    doPlayerSendCancel(cid, tileConfig.kickMsg)
	return true
    end
end
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...