Alguém pode me ajudar aqui, seguinte.. eu tenho um sistema aqui de portas por level ex: level 1500 pode passar pela porta. só que eu uso aquela porta que vc abre passa e fexa, só que qualquer um consegue abrir ela mesmo sendo level baixo. ex: eu lvl 1 abro uma porta de level 1500 , ela abre e aparece a mensagem que precisa ter level 1500 só que eu consigo abrir e passar normalmente, quando clica nela ela abre e fica aberta, só que ai quando eu abro ela e entro e depois saio dela sem clicar, ela fexa sozinha e aí ela funciona, nao consigo entrar mais e pede o level certo. mais também se eu abrir a porta ficar no meio dela e clicar pra fechar a porta buga, se transforma em outro item.. da esse erro aqui quando a porta buga nao sei se é esse arquivo aqui olha :
[Error - Action Interface] data/actions/scripts/transformaporta.lua:onUse Description: (luaDoDecayItem) Item not found
meu arquivo transformporta.lua :
-- By:davialves ;] -- local ITEM_IDS = { [12158] = 12160, [12160] = 12158, } function onUse(cid, item, fromPosition, itemEx, toPosition) if(not ITEM_IDS[item.itemid]) then return false end doTransformItem(item.uid, ITEM_IDS[item.itemid]) doDecayItem(item.uid) return true end
e o transformporta2.lua
-- By:davialves ;] -- local ITEM_IDS = { [12154] = 12157, [12157] = 12154, } function onUse(cid, item, fromPosition, itemEx, toPosition) if(not ITEM_IDS[item.itemid]) then return false end doTransformItem(item.uid, ITEM_IDS[item.itemid]) doDecayItem(item.uid) return true end
no caso, eu uso dois tipos de portas
uma é 12154 e a outra 12158
e aqui tá elas na actions
<action itemid="12154" script="leveldoor.lua" /> <action itemid="12158" script="leveldoor.lua" />
e aqui o leveldoor.lua
function onStepOut(cid, item, pos)
if isPlayer(cid) == 1 then
if item.actionid < 2000 and item.actionid >= 1000 then
doorHandler:useDoor(item, getThingPos(item.uid), cid, nil, false)
end
end
return 1
end[/quotepost]
e o leveldoors.lua
-- level doors based on actionId
-- to make door for level x create door on map and set its actionid to x+1000
function onUse(cid, item, frompos, item2, topos)
reqlevel = item.actionid - 1000 -- actionids below 100 are reserved
if reqlevel > 0 then
if getPlayerLevel(cid) >= reqlevel then
pos = getPlayerPosition(cid)
if pos.x == topos.x then
if pos.y < topos.y then
pos.y = topos.y + 1
else
pos.y = topos.y - 1
end
elseif pos.y == topos.y then
if pos.x < topos.x then
pos.x = topos.x + 1
else
pos.x = topos.x - 1
end
else
doPlayerSendTextMessage(cid,22,'Stand in front of the door.')
return 1
end
doTeleportThing(cid,pos)
doSendMagicEffect(topos,12)
else
doPlayerSendTextMessage(cid,22,'You need level ' .. reqlevel .. ' to pass this door.')
end
return 1
else
return 0
end
end[/quotepost]
e aqui um exemplo da actionid que eu uso na porta (axo q pra porta é actionid, se tiver errado me corrigem)
barathusdoor.lua
function onUse(cid,item,frompos,item2,topos)
level = 1500
if getPlayerLevel(cid) >= level then
doTransformItem(item.uid,item.itemid+1)
doTeleportThing(cid,topos)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, '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[/quotepost]<action actionid="1189" event="script" value="barathusdoor.lua"/>alguém pode me ajudar?