Ir para conteúdo

Porta Que Só Abre Com Chave


Killua

Posts Recomendados

Gente, hoje fique um bom tempo procurando isso, e achei 2 estilos de tutorial...

 

Um tem vários iguais que diz que é apenas colocar Action ID na porta e a mesma Action ID na chave. Claro que funciona assim, mas somente com aquela chave que você pois no map editor(a menos que faça uma quest para pegá-la)

 

Bom este aí não me agradou. Por isso procurei um outro e adorei, mas tem um probleminha. Então resolvi refaser aquele tópico, mas sem o problema. O tópico original é ESTE.

 

Começando

 

1º vá em seuOT/data/actions/scripts (copie qualquer arquivo, cole-o e renomeie para chave.xml) e cole isto dentro:

 

 

[--- Porta Temporizada by Runando/Belianmort ---]

function onUse(cid, item, frompos, item2, topos)

 

-------- Pausa --------

 

local pausa = 10000 -------- Cordenadas --------

 

local door = {x=410, y=387, z=7, stackpos=1}

local ddoor = getThingfromPos(door)

 

-------- ITEM --------

 

local open_door = 5136

 

local itemU = 24000

 

local verify = 0 --- NÃO MEXA AQUI

 

-------- PRIMEIRO SISTEMA --------

 

 

if item2.uid == itemU then

if ddoor.itemid ~= verify then

doTransformItem(ddoor.uid,open_door)

addEvent(close,pausa,door)

end

else

doPlayerSendCancel(cid,"This key can not be used here")

end

return 1

end

 

function close(door)

-------- ITEM --------

 

local to_close_door = 5135

 

------- SEGUNDO SISTEMA --------

 

local the_close_door = getThingfromPos(door)

doTransformItem(the_close_door.uid,to_close_door)

end

 

depois vá em seuOT/data/actions/actions.xml e adicione esta TAG:

<action itemid="2089" script="chave.lua" />

 

Explicação:

PINK (ID DA CHAVE QUE SERA USADA)

Quote

 

Você pode usar outra chave se quiser

 

Vermelho Tempo que a porta ficara aberta EX: 1000 = 1 segundo (aqui no caso seria 10 segundos, entao ta 10000.

Azul ID da porta aberta que voce ira usar.

Roxo ID da porta fechada que voce irá usar

Verde Coordenadas X, Y & Z do local que a porta que sera aberta com a chave ficará.

Cinza Unique ID que sera usado na Porta

 

O tutorial original esta assim, mas você vai seguir o tutorial, e na hora que terminar, vai notar que a porta vai poder ser aberta com ou sem a chave. Eu bolei um geito bobo, mas útil de resolver.

 

Faça o seguinte: pelo map editor, vá nas propriedades da porta que quer que seja aberta apenas pela chave e coloque um Action ID qualquer, não importa se você vai lembrar ou não, a função dele é apenas impedir que a porta seja aberta. Mas o Unique ID faz permitir que a chave a abra.

 

ks12a.jpg

 

Você também não consiguirá fechar a porta, mas isto não é um problema, pois o script permite apenas que ela fique aberta por um certo período de tempo...

 

O meu ficou assim:



 

1yr3gh.jpg

 

2gwwe8w.jpg

 

Quando eu tento com a chave:

 

 

2lmks91.jpg

 

 

Isso ai, espero que gostem. Testei e não tive problemas.

 

Lembrando que fico apenas com 1% dos créditos: por ter resolvido o pequeno problema e por ter revivido o tópico hehe.

 

E o resto dos créditos vão para o allex9213 por ter feito o tutorial.

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

Aew vlw, eu tava precisando desse script para fazer uma quest bem secreta aqe no meu mapa, o script ta funcionando certinho! belo tópico.

 

Snowz.

 

 

Muito obrigado! Fico muito feliz em saber que estou ajudando. E quase numca respondem meus tópicos, valeu!

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Cara o tutorial está bom,

só acho que está meio imbolado sua formatação,

e acho que poderia também usar algumas imagens!

 

Abraços

 

Olha... eu coloquei imagens, e quando a formatação, eu não sei como melhorar. Apenas negritei um paragráfo importante para enfatizá-lo.

 

Abraços

Link para o comentário
Compartilhar em outros sites

1º vá em seuOT/data/actions/scripts (copie qualquer arquivo, cole-o e renomeie para chave.xml) e cole isto dentro:

 

O ideal não seria chave.lua?

:X

 

// Testando

 

EDIT:

 

Bom tava dando um erro por causa dos Cochetes.

Então removi todas as linhas desnecessárias ficando assim.

 

function onUse(cid, item, frompos, item2, topos)

 

 

local pausa = 10000

 

local door = {x=1020, y=850, z=12, stackpos=1}

local ddoor = getThingfromPos(door)

 

 

local open_door = 6256

 

local itemU = 24000

 

local verify = 0

 

 

if item2.uid == itemU then

if ddoor.itemid ~= verify then

doTransformItem(ddoor.uid,open_door)

addEvent(close,pausa,door)

end

else

doPlayerSendCancel(cid,"This key can not be used here")

end

return 1

end

 

function close(door)

 

local to_close_door = 6255

 

local the_close_door = getThingfromPos(door)

doTransformItem(the_close_door.uid,to_close_door)

end

 

Então na porta pelo map editor, coloquei ActionID = 24000 ( para trancar a porta )

E para abrir a porta o UniqueID = 2091.

 

Porém, não funcionou.

O UniqueID seria o id da chave para por na porta?

No caso a chave é 2091, então botei o UniqueID 2091.

------

 

No meu caso, para se ganhar essa chave é necessário fazer umas coisas.. isso pode influenciar no desenvolvimento da script?

É preciso mudar a chaave ;/?

 

------

 

Como por uma action em uma chave?

Acho que esta solução é a mais correta para mim, pois a chave ja esta em quest ;)

 

Abraços~

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

vlw pelo script, so q eu vo ter q fazer um dece pra kada porta q eu qeira editar????

e eu tenhu otra duvida, qeria saber como eu coloco essas chaves certas em quest

 

 

Sim deve ter como em apenas um script, mas nao sei.

 

Quanto a quest, isso não sei direito, mas tem um script para isso e o link está no tópico. Porém todos os links do fórum resolveram bugar...

Link para o comentário
Compartilhar em outros sites

estou tendo um problema parecido com o tonynh eu coloquei o uniqueID da porta igual ao da chave (2089)

 

mas ao ligar o otserv 1 erro aparece : [Warning - Actions::registerEvent] Duplicate registered item id: 2089

 

ja olhei o arquivo actions.xml, nao existe 2 ids 2089 apenas 1 para o seu script (chave.lua) e estou achando que esse erro é gerado pela porta ter o mesmo uniqueID que o ID da chave

 

com esse erro ao ligar o otserv

 

ao usar a chave na porta a porta nao se abre e aparece a mensagem : the keys dont match

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...