Substituiu todos eles?
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino

sss
Desculpe o Doble Port
Man Agr ta dando esse erro
[18/08/2016 20:54:31] [Error - Action Interface]
[18/08/2016 20:54:31] data/actions/scripts/other/doors.lua:onUse
[18/08/2016 20:54:31] Description:
[18/08/2016 20:54:31] attempt to index a nil value
[18/08/2016 20:54:31] stack traceback:
[18/08/2016 20:54:31] [C]: in function 'doTeleportThing'
[18/08/2016 20:54:31] data/actions/scripts/other/doors.lua:13: in function 'doorEnter'
[18/08/2016 20:54:31] data/actions/scripts/other/doors.lua:79: in function <data/actions/scripts/other/doors.lua:16>
ELE Abre a Porta Mais n Entra Da Esse Erro ae
Editado Agosto 18 por BrendoGraphics0
ERros
info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino

Ajuda
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Você tem certeza que substituiu todas as funções com esse nome, por esta:
CitardoorEnter(cid, item, fromPosition)
info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino

SS foi todos ae da esse erro aki
[18/08/2016 20:54:31] [Error - Action Interface]
[18/08/2016 20:54:31] data/actions/scripts/other/doors.lua:onUse
[18/08/2016 20:54:31] Description:
[18/08/2016 20:54:31] attempt to index a nil value
[18/08/2016 20:54:31] stack traceback:
[18/08/2016 20:54:31] [C]: in function 'doTeleportThing'
[18/08/2016 20:54:31] data/actions/scripts/other/doors.lua:13: in function 'doorEnter'
[18/08/2016 20:54:31] data/actions/scripts/other/doors.lua:79: in function <data/actions/scripts/other/doors.lua:16>
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Posta o script como ele está sendo usado.
info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino

Eu estou Usando Uma Pota de Level com Level 350
Doors.lua
local function checkStackpos(item, position)
position.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local thing = getThingFromPos(position)
position.stackpos = STACKPOS_TOP_FIELD
local field = getThingFromPos(position)
return (item.uid == thing.uid or thing.itemid < 100 or field.itemid == 0)
end
local function doorEnter(cid, item, fromPosition)
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition)
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(fromPosition.x ~= CONTAINER_POSITION and isPlayerPzLocked(cid) and getTileInfo(fromPosition).protection) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
return true
end
if(getItemLevelDoor(item.itemid) > 0) then
if(item.actionid == 189) then
if(not isPremium(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end
doorEnter(cid, item, fromPosition)
return true
end
local gender = item.actionid - 186
if(isInArray({PLAYERSEX_FEMALE, PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender)) then
if(gender ~= getPlayerSex(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end
doorEnter(cid, item, fromPosition)
return true
end
local skull = item.actionid - 180
if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then
if(skull ~= getCreatureSkullType(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end
doorEnter(cid, item, fromPosition)
return true
end
local group = item.actionid - 150
if(group >= 0 and group < 30) then
if(group > getPlayerGroupId(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end
doorEnter(cid, item, fromPosition)
return true
end
local vocation = item.actionid - 100
if(vocation >= 0 and vocation < 50) then
local playerVocationInfo = getVocationInfo(getPlayerVocation(cid))
if(playerVocationInfo.id ~= vocation and playerVocationInfo.fromVocation ~= vocation) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end
doorEnter(cid, item, fromPosition)
return true
end
if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then
doorEnter(cid, item, fromPosition)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
end
return true
end
if(isInArray(specialDoors, item.itemid)) then
if(item.actionid == 100 or (item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) > 0)) then
doorEnter(cid, item, fromPosition)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
end
return true
end
if(isInArray(keys, item.itemid)) then
if(itemEx.actionid > 0) then
if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then
doTransformItem(itemEx.uid, doors[itemEx.itemid])
return true
end
doPlayerSendCancel(cid, "The key does not match.")
return true
end
return false
end
if(isInArray(horizontalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then
local newPosition = toPosition
newPosition.y = newPosition.y + 1
local doorPosition = fromPosition
doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local doorCreature = getThingfromPos(doorPosition)
if(doorCreature.itemid ~= 0) then
local pzDoorPosition = getTileInfo(doorPosition).protection
local pzNewPosition = getTileInfo(newPosition).protection
if((pzDoorPosition and not pzNewPosition and doorCreature.uid ~= cid) or
(not pzDoorPosition and pzNewPosition and doorCreature.uid == cid and isPlayerPzLocked(cid))) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTeleportThing(doorCreature.uid, newPosition)
if(not isInArray(closingDoors, item.itemid)) then
doTransformItem(item.uid, item.itemid - 1)
end
end
return true
end
doTransformItem(item.uid, item.itemid - 1)
return true
end
if(isInArray(verticalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then
local newPosition = toPosition
newPosition.x = newPosition.x + 1
local doorPosition = fromPosition
doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local doorCreature = getThingfromPos(doorPosition)
if(doorCreature.itemid ~= 0) then
if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTeleportThing(doorCreature.uid, newPosition)
if(not isInArray(closingDoors, item.itemid)) then
doTransformItem(item.uid, item.itemid - 1)
end
end
return true
end
doTransformItem(item.uid, item.itemid - 1)
return true
end
if(doors[item.itemid] ~= nil and checkStackpos(item, fromPosition)) then
if(item.actionid == 0) then
doTransformItem(item.uid, doors[item.itemid])
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.")
end
return true
end
local houseDoors = {
[11790] = 11792,
[11791] = 11792,
[11792] = 11790,
[11793] = 11795,
[11794] = 11795,
[11795] = 11793,
[11796] = 11797,
[11797] = 11796,
[11798] = 11799,
[11799] = 11798,
[11800] = 11801,
[11801] = 11800,
[11802] = 11803, --alterado v1.6
[11803] = 11802,
}
if houseDoors[item.itemid] then
doTransformItem(item.uid, houseDoors[item.itemid])
return true
end
return false
end
Tile.lua
local config = {
maxLevel = getConfigInfo('maximumDoorLevel')
}
local increasingItems = {[416] = 417, [426] = 425, [446] = 447, [3216] = 3217, [3202] = 3215, [11059] = 11060}
local decreasingItems = {[417] = 416, [425] = 426, [447] = 446, [3217] = 3216, [3215] = 3202, [11060] = 11059}
local depots = {2589, 2590, 2591, 2592}
local checkCreature = {isPlayer, isMonster, isNpc}
local function pushBack(cid, position, fromPosition, displayMessage)
doTeleportThing(cid, fromPosition, false)
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
if(displayMessage) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The tile seems to be protected against unwanted intruders.")
end
end
function onStepIn(cid, item, position, fromPosition)
if(not increasingItems[item.itemid]) then
return false
end
if(not isPlayerGhost(cid)) then
doTransformItem(item.uid, increasingItems[item.itemid])
end
if(item.actionid >= 194 and item.actionid <= 196) then
local f = checkCreature[item.actionid - 193]
if(f(cid)) then
pushBack(cid, position, fromPosition, false)
end
return true
end
if(item.actionid >= 191 and item.actionid <= 193) then
local f = checkCreature[item.actionid - 190]
if(not f(cid)) then
pushBack(cid, position, fromPosition, false)
end
return true
end
if(not isPlayer(cid)) then
return true
end
if(item.actionid == 189 and not isPremium(cid)) then
pushBack(cid, position, fromPosition, true)
return true
end
local gender = item.actionid - 186
if(isInArray({PLAYERSEX_FEMALE, PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender)) then
if(gender ~= getPlayerSex(cid)) then
pushBack(cid, position, fromPosition, true)
end
return true
end
local skull = item.actionid - 180
if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then
if(skull ~= getCreatureSkullType(cid)) then
pushBack(cid, position, fromPosition, true)
end
return true
end
local group = item.actionid - 150
if(group >= 0 and group < 30) then
if(group > getPlayerGroupId(cid)) then
pushBack(cid, position, fromPosition, true)
end
return true
end
local vocation = item.actionid - 100
if(vocation >= 0 and vocation < 50) then
local playerVocationInfo = getVocationInfo(getPlayerVocation(cid))
if(playerVocationInfo.id ~= vocation and playerVocationInfo.fromVocation ~= vocation) then
pushBack(cid, position, fromPosition, true)
end
return true
end
if(item.actionid >= 1000 and (item.actionid-1000) <= config.maxLevel) then
if(getPlayerLevel(cid) < item.actionid - 1000) then
pushBack(cid, position, fromPosition, true)
end
return true
end
if(item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) <= 0) then
pushBack(cid, position, fromPosition, true)
return true
end
if(getTileInfo(position).protection) then
local depotPos, depot = getCreatureLookPosition(cid), {}
depotPos.stackpos = STACKPOS_GROUND
while(true) do
if(not getTileInfo(depotPos).depot) then
break
end
depotPos.stackpos = depotPos.stackpos + 1
depot = getThingFromPos(depotPos)
if(depot.uid == 0) then
break
end
if(isInArray(depots, depot.itemid)) then
local depotItems = getPlayerDepotItems(cid, getDepotId(depot.uid))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Your depot contains " .. depotItems .. " item" .. (depotItems > 1 and "s" or "") .. ".")
break
end
end
return true
end
return false
end
function onStepOut(cid, item, position, fromPosition)
if(not decreasingItems[item.itemid]) then
return false
end
if(not isPlayerGhost(cid)) then
doTransformItem(item.uid, decreasingItems[item.itemid])
return true
end
return false
end
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Aqui está o erro:
Citarlocal function doorEnter(cid, item, fromPosition)
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition)
end
A função telepothing está com o nome do parâmetro errado.
Substitua ela por esta:
Citarlocal function doorEnter(cid, item, toPosition)
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition)
end
info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino

Agr ela volto a msm coisa de entra e sair
Editado Agosto 20 por BrendoGraphics0
'
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Exatamente só essa.
Somente apague isso:
Citarlocal function doorEnter(cid, item, fromPosition)
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition)
end
E ponha isso no lugar dele.
Citarlocal function doorEnter(cid, item, toPosition)
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition)
end
info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino

Agr Ela Com O Msm Problema De Entra e Sair
info
Grupo: Infante
Registrado: 06/03/13
Posts: 1.6k
Reputação: +319
Gênero: Masculino
Char no Tibia: Lord Sorte

Seu servidor é PDA né? se for esse erro é comum já tentei de inumeras formas conserta mais não obtive sucesso. Ao invez de porta eu usava um tile de level..
info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino

Mais tipo Eu tenho um PDA aki cheio do erro mais ele passa a porta tranquilo so o meu q n
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Mudanças de distro acarreta em mudanças de funções.
Isso pode piorar ou resolver seu problema.
Cria uma copia do arquivo doors.lua para caso dê errado, você repor o script original.
No script doors.lua, apague tudo e ponha esse no lugar:
Citar--[[> Marcryzius <]]--
CHAVE_DOORS = {}
local function getKeyUsed(key,posx,posy)
for k,v in pairs(CHAVE_DOORS) do
if(v.aid == key and v.x == posx and v.y == posy)then
return k
end
end
return false
endfunction onUse(cid, item, fromPosition, itemEx, toPosition)
local self = Player(cid)
local door = Item(item)
local itemid = door:getItemId()
local MSG = MESSAGE_INFO_DESCR
if not(checkStackpos(fromPosition,toPosition))then return true,self:sendTextMessage(MSG,'You can not close the door because someone is using it.')end
if(item.actionid == 0 and not(isInArray(keys, itemid)))then
if(doors[itemid])then
door:transformItem(doors[itemid])
elseif(isInArray(horizontalOpenDoors,itemid) or isInArray(verticalOpenDoors, itemid))then
door:transformItem(itemid -1)
elseif(isInArray(closingDoors, itemid) ~= true)then
door:transformItem(itemid +1)
end
elseif(getItemLevelDoor(itemid) > 0)then
if(getPlayerLevel(cid) >= item.actionid-getItemLevelDoor(itemid))then
door:transformItem(itemid +1)
self:teleportThing(toPosition, true)
else
self:sendTextMessage(MSG, "You are not experienced enough to pass.")
end
elseif(isInArray(specialDoors, itemid))then
if(item.uid > 0 and item.uid < 1100)then
local id = item.uid > 0 and item.uid-1000 or 0
if(getPlayerStorageValue(cid, item.actionid) == id)then
door:transformItem(itemid +1)
self:teleportThing(toPosition, true)
else
self:sendTextMessage(MSG, "The door seems to be sealed against unwanted intruders.")
end
else
if(getPlayerStorageValue(cid, item.actionid) > 0)then
door:transformItem(itemid +1)
self:teleportThing(toPosition, true)
else
self:sendTextMessage(MSG, "The door seems to be sealed against unwanted intruders.")
end
end
elseif(isInArray(keys, itemid))then
if(isCreature(itemEx.uid))then
self:sendTextMessage(25,'Using this key in some doors.')
elseif(itemid == 10091 or itemid == 2090)then
self:sendTextMessage(25,'Key: '..(itemEx.actionid == 9999 and 'Not Find..' or itemEx.actionid == 0 and 'Door Unlock' or itemEx.actionid)..'.')
elseif(itemEx.actionid == item.actionid and doors[itemEx.itemid])then
if not(getKeyUsed(itemEx.actionid,toPosition.x,toPosition.y))then
table.insert(CHAVE_DOORS,{aid=itemEx.actionid,x=toPosition.x,y=toPosition.y})
else
table.remove(CHAVE_DOORS,getKeyUsed(itemEx.actionid,toPosition.x,toPosition.y))
end
doSendMsgText(toPosition,"Click",1)
elseif(isInArray(horizontalOpenDoors,itemEx.itemid) or isInArray(verticalOpenDoors,itemEx.itemid) and item.actionid == itemEx.actionid)then
doTransformItem(itemEx.uid,itemEx.itemid-1)
for k,v in pairs(CHAVE_DOORS) do
if(v.aid == itemEx.actionid and
v.x == toPosition.x and v.y == toPosition.y)then
table.remove(CHAVE_DOORS,k)
end
end
doSendMsgText(toPosition,"Cleck",2)
elseif(doors[itemEx.itemid])then
self:sendCancelMessage('Wrong key for this door.')
doSendMsgText(toPosition,"Cleck",4)
else
self:sendCancelMessage('Use this key in doors.')
end
elseif(getKeyUsed(itemEx.actionid,toPosition.x,toPosition.y) and doors[itemid])then
door:transformItem(doors[itemid])
elseif(isInArray(horizontalOpenDoors, itemid) or isInArray(verticalOpenDoors, itemid) and getKeyUsed(itemEx.actionid,toPosition.x,toPosition.y))then
door:transformItem(itemid-1)
else
self:sendTextMessage(25,'It is locked.')
end
return true
end
Tu irás a precisar usar essa livraria em seu servidor.



info
Grupo: Conde
Registrado: 21/04/16
Posts: 831
Reputação: +271
Gênero: Masculino
Msm coisa