Ir para conteúdo
  • 0

[Resolvido] Script Para Porta De Quest


Sofft

Pergunta

Tipo do script: Script para fazer uma porta de quest.

Protocolo (versão do Tibia): 8.60

Servidor utilizado: Global

Nível de experiência: Alta

 

Galera do Xtibia estou precisando do seguinte script:

 

Uma porta fechada (ID:12165), ao clicar vira uma porta aberta (ID:12166), e o player vai passar por ela, assim que ele passar a porta fecha, isso se o player tiver certo storage, como porta de quest mesmo, só que essas portas que estou utilizando são aquelas de zao, e não tem essa pré configuração.

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

amigo isso e com script de so um certo level passa por la aki esse script por exemplo

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

level = item.actionid-1000 ---- decidde aki o lvl que pode passar pela portal

 

if getPlayerLevel(cid) >= level then

doTransformItem(item.uid,item.itemid+1)

doTeleportThing(cid,topos)

 

else

doPlayerSendTextMessage(cid, 22, 'You need level ' .. level .. ' to pass this door.')

 

function offWalk(cid,item,itemuid,itemaid,posx,posy,posz)

 

---ID do chão que fica embaixo da porta

idtile = 407

 

---Não mexa aqui

posix = topos.x

posiy = topos.y

posiz = topos.z

 

if item == idtile and posx == posix and posy == posiy and posz == posiz then

doPlayerSendTextMessage(cid, 22, 'Parabens Você Tem Level Suficiente para passar pela porta.')

doTransformItem(item.uid,item.itemid-1)

 

return 1

end

end

end

end

Link para o comentário
Compartilhar em outros sites

  • 0

@Smartbox, testando e jaja edito...

 

configurei o script da seguinte forma:

function onUse(cid,item,frompos,item2,topos)
level = 10 ---- decidde aki o lvl que pode passar pela portal
if getPlayerLevel(cid) >= level then
doTransformItem(item.uid,item.itemid+1)
doTeleportThing(cid,topos)
else
doPlayerSendTextMessage(cid, 22, 'You need level ' .. level .. ' to pass this door.')
function offWalk(cid,item,itemuid,itemaid,posx,posy,posz)
---ID do chão que fica embaixo da porta
idtile = 11906
---Não mexa aqui
posix = topos.x
posiy = topos.y
posiz = topos.z
if item == idtile and posx == posix and posy == posiy and posz == posiz then
doPlayerSendTextMessage(cid, 22, 'Parabens Você Tem Level Suficiente para passar pela porta.')
doTransformItem(item.uid,item.itemid-1)
return 1
end
end
end
end

e minha tag ficou assim:

<action actionid="9835" event="script" value="zaodoor.lua"/>

 

a porta está abrindo só que não volta ao normal, por favor ajude-me.

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

  • 0

como assim nao volta ? ela continua aberta ??

 

entao faza isso ... vai no rme e poem essa id na porta

 

1100 assim so lvl 100 vao poder entrar se qerer botar outro level poem assim ... 1.e poem o lvl qe vc qer no lado do 1 sem o ponto

Link para o comentário
Compartilhar em outros sites

  • 0

Smartbox leia o tópico, ele não quer uma porta de level, e sim uma porta de storage.

sendo que ao clica ele vai pra cima dela e ao sair a porta fecha.

Link para o comentário
Compartilhar em outros sites

  • 0

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

 

local storage = 9312

 

if getPlayerStorageValue(cid,storage) >= 1 then

doTransformItem(item.uid,item.itemid+1)

doTeleportThing(cid,topos)

else

doPlayerSendTextMessage(cid, 22, 'Você não tem permissão para passar aqui.')

 

function offWalk(cid,item,itemuid,itemaid,posx,posy,posz)

 

idtile = 407

 

posix = topos.x

posiy = topos.y

posiz = topos.z

 

if item == idtile and posx == posix and posy == posiy and posz == posiz then

doTransformItem(item.uid,item.itemid-1)

 

return 1

end

end

end

end

 

Não testei

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

  • 0

Faiz assim, quem sabe resolve o seu problema:

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

local storage = 304392 -- coloque o storage aqui


if getPlayerStorageValue(cid, storage) > 0 then
doTeleportThing(cid, topos)
doSendMagicEffect(topos, 10)
else
doPlayerSendTextMessage(cid, 22, "Você não possui o storage para entrar na porta!")
end

return TRUE
end

 

#Edited - Nem vi que vc postou @Vilden, malz aew.

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

  • 0

@Vilden,

eu fiz um aqui com storage tomando o do @Smartbox

como exemplo:

 

function onUse(cid,item,frompos,item2,topos)
local storage = 12345if getPlayerStorageValue(cid, storage) == -1 then
doTransformItem(item.uid,item.itemid+1)
doTeleportThing(cid,topos)
else
doPlayerSendTextMessage(cid, 22, 'You have no acess')
function offWalk(cid,item,itemuid,itemaid,posx,posy,posz)---ID do chão que fica embaixo da porta
idtile = 11906
---Não mexa aqui
posix = topos.x
posiy = topos.y
posiz = topos.zif posx == posix and posy == posiy and posz == posiz then
doPlayerSendTextMessage(cid, 22, 'Welcome')
doTransformItem(item.uid,item.itemid-1)
return 1
end
end
end
end

mas acontece a mesma coisa, e testei o seu script também, a mesma coisa.

a porta não fecha, eu estou ponto o ID do tile abaixo da porta, e esse mesmo né?

 

@Jhon992, sim esse script é funcional, porem é "FEIO", queria uma porta mais certinha mas de qualquer forma valeu!

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

  • 0

Bom se quiser ainda, você pode usa o script q não fecha a porta e coloca

isso em movements.

 

function onStepOut(cid, item, position, fromPosition)

 

--cola mesmo storage que o da porta

local storage = 9312

 

if getPlayerStorageValue(cid,storage) >= 1 then

doTransformItem(item.uid,item.itemid-1)

end

end

 

 

 

Tag:

<movevent type="StepOut" actionid="9312" event="script" value="nome.lua"/>

 

bota actionid 9312 na porta ou no tile abaixo da porta

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

  • 0

@Vilden,@Smartbox,

Muito Obrigado, consegui configurar perfeitamente, então vou postar aqui a solução que funcionou para mim, talvez sirva para outra pessoa.

 

Actions:

tag

<action actionid="ACTION" event="script" value="door.lua"/>

 

door.lua

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

local storage = STORAGE

if getPlayerStorageValue(cid, storage) >= 1 then
   doTransformItem(item.uid,item.itemid+1)
   doTeleportThing(cid,topos)
else
   doPlayerSendTextMessage(cid, 22, 'You have no acess')
return 1
end
end

 

 

 

Movements:

tag

<movevent type="StepOut" actionid="ACTION" event="script" value="door.lua"/>

 

door.lua

function onStepOut(cid, item, position, fromPosition)
doTransformItem(item.uid,item.itemid-1)
end

 

Abra o seu map editor, e coloque uma ActionID em uma porta fechada qualquer (veja se o item seguinte é a porta aberta, ex IDfechado = 210 IDaberto = 211)

Após colocar esse action id na porta substitua nos script ACTION pelo actionsID colocado na porta, e em STORAGE coloque um storage qualquer.

 

Créditos:

Vilden e Smartbox.

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

×
×
  • Criar Novo...