PS: coloque uma porta normal, não locked.
faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts
function onUse(cid, item, frompos, item2, topos)
local storage = 304392 -- coloque o storage aqui
local porta = 7049 -- id da porta
local uniqueidporta = 12000
if item2.uid == uniqueidporta and item2.itemid == porta then
setPlayerStorageValue(cid, storage, 1)
doRemoveItem(cid, item.uid, 1)
else
doPlayerSendTextMessage(cid, 22, "Porta errada!")
end
return TRUE
end
Em actions.xml:
<action itemid="ID DA CHAVE" script="doorkeystorage.lua"/>
<action uniqueid="12000" script="doorkeystorage.lua"/>
Aí você põe na porta no map, o uniqueid 12000
e a chave tal, quando usada na porta, dá o storage pro jogador.
em movements/scripts crie um arquivo com o nome doorkeystorage.lua
function onStepIn(cid, item, position, fromPosition, toPosition)
local storage = getPlayerStorageValue(cid, 304392)
if storage == 1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.")
else
doTeleportThing(cid, fromPosition)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.")
end
return true
end
Em movements.xml adicione:
<movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>