Ir para conteúdo

Porta Que Só Abre Com Key.


139

Posts Recomendados

Tipo do script: Action

Protocolo (versão do Tibia): 8.4

Servidor utilizado: Tfs

Nível de experiência: ------

Adicionais/Informações: ------

 

Eu tenho o script de uma porta que só abre com key, ele funciona direito mas tem 1 pequeno problema

A porta fica aberta 10 segundos depois de se usar a chave nela mas se ao final dos 10 segundos tiver algo no sqm da porta

Ex: Magic Wall / Player / Summon

A porta buga e some.

 

Eu queria que algume colocasse no script um jeito de eliminar qualquer coisa que estiver no sqm da porta sem ser a porta ao fim dos 10 segundos, se for possível.

Tá aqui o script:

 

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

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

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

local door = {x=725, y=486, z=3, stackpos=1}
local ddoor = getThingfromPos(door)

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

local open_door = 1226 -- Id da porta aberta

local itemU = 24004 -- UniqueId 

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 = 1225 -- Id da porta fechada

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

local the_close_door = getThingfromPos(door)
doTransformItem(the_close_door.uid,to_close_door)
end

 

 

------- Edited:

Serve se a porta tiver um sistema de espera até o que a está bloqueando sair do lugar.

 

Fiz o topico de manhã e até agr nada...

Eu to precisando do script pra ontem...

Me ajuda ae galera =/

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

  • 1 year later...

Olá, rsrs olha só o script das keys aqui funcionando direitinho.

 

Vai la em data/actions/keys.lua e adiciona.

 

REVERSE_DOORS, CHILD_DOORS = {}, {}
for k, v in pairs(DOORS) do
REVERSE_DOORS[v] = k
local tmp = getItemInfo(v)
if(tmp.transformUseTo ~= 0) then
 CHILD_DOORS[tmp.transformUseTo] = k
end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(item.aid > 0 and itemEx.aid > 0) then
 if(isPlayerPzLocked(cid) and getTileInfo(toPosition).protection) then
  doPlayerSendDefaultCancel(cid, RETURNVALUE_ACTIONNOTPERMITTEDINPROTECTIONZONE)
  return true
 end
 local doors = DOORS[itemEx.itemid]
 if(not doors) then
  doors = REVERSE_DOORS[itemEx.itemid]
 end
 if(not doors) then
  doors = CHILD_DOORS[itemEx.itemid]
 end
 if(doors) then
  if(item.actionid ~= itemEx.actionid) then
doPlayerSendCancel(cid, "The key does not match.")
  else
doTransformItem(itemEx.uid, doors)
  end
  return true
 end
end
return false
end

 

Ai la em actions.xml vc add:

<!-- Keys -->
<action itemid="2086-2092;10032;10091" event="script" value="other/keys.lua"/>

 

Script da quest da key:

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

if item.uid == 3000 then
 if getPlayerStorageValue(cid,3000) == -1 then
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,'You have found a ' .. getItemNameById(2088) .. '.')
  key_uid = doPlayerAddItem(cid,2088,1)
  doItemSetActionId(key_uid,3000)
  setPlayerStorageValue(cid,3000,1)
 else
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"You already have received your reward.")
 end
end
return 1
end

 

Se não funcionar a quest troca:

doItemSetActionId(key_uid,3000)

por

doSetItemActionId(key_uid,3000)

 

Te ajudei? Rep + *-*

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

×
×
  • Criar Novo...