Dennyz Dias 9 Postado Dezembro 15, 2015 Share Postado Dezembro 15, 2015 (editado) tem um erro do caramba na minha doors ja trokei por varios script e nada ainda to usando um OTX Server Version: (2.51 - SE - 1549) esta acontecendo em todas minhas porta quando vo abrir [Error - Action Interface] [15/12/2015 17:13:28] data/actions/scripts/other/doors.lua:onUse [15/12/2015 17:13:28] Description: [15/12/2015 17:13:28] data/actions/scripts/other/doors.lua:13: attempt to index global 'DOORS' (a nil value) [15/12/2015 17:13:28] stack traceback: [15/12/2015 17:13:28] data/actions/scripts/other/doors.lua:13: in function <data/actions/scripts/other/doors.lua:7> local function doorEnter(cid, uid, id, position) doTransformItem(uid, id) doTeleportThing(cid, position) return true 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 local locked = DOORS[item.itemid] if(locked) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.") return true end local door = getItemInfo(item.itemid) if(door.levelDoor > 0) then if(item.aid == 189) then if(not isPremium(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end local gender = item.aid - 186 if(isInArray({PLAYERSEX_FEMALE, PLAYERSEX_MALE}, gender)) then if(gender ~= getPlayerSex(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end local skull = item.aid - 180 if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then if(skull ~= getCreatureSkullType(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end local group = item.aid - 150 if(group >= 0 and group < 30) then if(group > getPlayerGroupId(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end local vocation = item.aid - 100 if(vocation >= 0 and vocation < 50) then local vocationEx = getVocationInfo(getPlayerVocation(cid)) if(vocationEx.id ~= vocation and vocationEx.fromVocation ~= vocation) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end if(item.aid == 190 or (item.aid ~= 0 and getPlayerLevel(cid) >= (item.aid - door.levelDoor))) then return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end if(door.specialDoor) then if(item.aid == 100 or (item.aid ~= 0 and getCreatureStorage(cid, item.aid) > 0)) then return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "The door seems to be sealed against unwanted intruders.") return true end toPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local fields, thing = getTileItemsByType(fromPosition, ITEM_TYPE_MAGICFIELD), getThingFromPosition(toPosition) if(item.uid ~= thing.uid and thing.itemid >= 100 and table.maxn(fields) ~= 0) then return true end local doorCreature = getThingFromPosition(toPosition) if(doorCreature.itemid ~= 0) then toPosition.x = toPosition.x + 1 local query = doTileQueryAdd(doorCreature.uid, toPosition, 20) -- allow to stack outside doors, but not on teleports or floor changing tiles if(query == RETURNVALUE_NOTPOSSIBLE) then toPosition.x = toPosition.x - 1 toPosition.y = toPosition.y + 1 query = doTileQueryAdd(doorCreature.uid, toPosition, 20) -- repeat until found end if(query ~= RETURNVALUE_NOERROR) then doPlayerSendDefaultCancel(cid, query) return true end doTeleportThing(doorCreature.uid, toPosition) if(not door.closingDoor) then doTransformItem(item.uid, door.transformUseTo) end return true end return false end REP ++ tem um erro do caramba na minha doors ja trokei por varios script e nada ainda to usando um OTX Server Version: (2.51 - SE - 1549) esta acontecendo em todas minhas porta quando vo abrir [Error - Action Interface] [15/12/2015 17:13:28] data/actions/scripts/other/doors.lua:onUse [15/12/2015 17:13:28] Description: [15/12/2015 17:13:28] data/actions/scripts/other/doors.lua:13: attempt to index global 'DOORS' (a nil value) [15/12/2015 17:13:28] stack traceback: [15/12/2015 17:13:28] data/actions/scripts/other/doors.lua:13: in function <data/actions/scripts/other/doors.lua:7> local function doorEnter(cid, uid, id, position) doTransformItem(uid, id) doTeleportThing(cid, position) return true 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 local locked = DOORS[item.itemid] if(locked) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.") return true end local door = getItemInfo(item.itemid) if(door.levelDoor > 0) then if(item.aid == 189) then if(not isPremium(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end local gender = item.aid - 186 if(isInArray({PLAYERSEX_FEMALE, PLAYERSEX_MALE}, gender)) then if(gender ~= getPlayerSex(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end local skull = item.aid - 180 if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then if(skull ~= getCreatureSkullType(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end local group = item.aid - 150 if(group >= 0 and group < 30) then if(group > getPlayerGroupId(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end local vocation = item.aid - 100 if(vocation >= 0 and vocation < 50) then local vocationEx = getVocationInfo(getPlayerVocation(cid)) if(vocationEx.id ~= vocation and vocationEx.fromVocation ~= vocation) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end if(item.aid == 190 or (item.aid ~= 0 and getPlayerLevel(cid) >= (item.aid - door.levelDoor))) then return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") return true end if(door.specialDoor) then if(item.aid == 100 or (item.aid ~= 0 and getCreatureStorage(cid, item.aid) > 0)) then return doorEnter(cid, item.uid, door.transformUseTo, toPosition) end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "The door seems to be sealed against unwanted intruders.") return true end toPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local fields, thing = getTileItemsByType(fromPosition, ITEM_TYPE_MAGICFIELD), getThingFromPosition(toPosition) if(item.uid ~= thing.uid and thing.itemid >= 100 and table.maxn(fields) ~= 0) then return true end local doorCreature = getThingFromPosition(toPosition) if(doorCreature.itemid ~= 0) then toPosition.x = toPosition.x + 1 local query = doTileQueryAdd(doorCreature.uid, toPosition, 20) -- allow to stack outside doors, but not on teleports or floor changing tiles if(query == RETURNVALUE_NOTPOSSIBLE) then toPosition.x = toPosition.x - 1 toPosition.y = toPosition.y + 1 query = doTileQueryAdd(doorCreature.uid, toPosition, 20) -- repeat until found end if(query ~= RETURNVALUE_NOERROR) then doPlayerSendDefaultCancel(cid, query) return true end doTeleportThing(doorCreature.uid, toPosition) if(not door.closingDoor) then doTransformItem(item.uid, door.transformUseTo) end return true end return false end REP ++ Achei a solução in outro FORUM ta ai para quem tiver com esse problema! 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) if(item.uid ~= thing.uid and thing.itemid >= 100 or field.itemid ~= 0) then return FALSE end return TRUE end function onUse(cid, item, fromPosition, itemEx, toPosition) local nuevas = { {closed=10269, open=10270}, {closed=10272, open=10273}, {closed=10274, open=10275}, {closed=10276, open=10277}, {closed=10278, open=10279}, {closed=10280, open=10281}, {closed=10282, open=10283}, {closed=10284, open=10285}, {closed=10469, open=10470}, {closed=10471, open=10472}, {closed=10473, open=10474}, {closed=10475, open=10476}, {closed=10478, open=10479}, {closed=10480, open=10481}, {closed=10482, open=10483}, {closed=10484, open=10485}, } for ia = 1,#nuevas do if (item.itemid == nuevas[ia].closed) then doTransformItem(item.uid, nuevas[ia].open) elseif (item.itemid == nuevas[ia].open) then doTransformItem(item.uid, nuevas[ia].closed) end end if(getItemLevelDoor(item.itemid) > 0) then if(item.actionid > 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid))) then doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, toPosition, TRUE) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") end return TRUE end if(isInArray(specialDoors, item.itemid) == TRUE) then if(item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) ~= -1) then doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, toPosition, TRUE) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.") end return TRUE end if(isInArray(keys, item.itemid) == TRUE) then if(itemEx.actionid > 0) then if(item.actionid == itemEx.actionid) then if doors[itemEx.itemid] ~= nil then doTransformItem(itemEx.uid, doors[itemEx.itemid]) return TRUE end end doPlayerSendCancel(cid, "The key does not match.") return TRUE end return FALSE end if(isInArray(horizontalOpenDoors, item.itemid) == TRUE and checkStackpos(item, fromPosition) == TRUE) 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 if(getTilePzInfo(doorPosition) == TRUE and getTilePzInfo(newPosition) == FALSE and doorCreature.uid ~= cid) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) else doTeleportThing(doorCreature.uid, newPosition, TRUE) if(isInArray(closingDoors, item.itemid) ~= TRUE) 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) == TRUE and checkStackpos(item, fromPosition) == TRUE) 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(getTilePzInfo(doorPosition) == TRUE and getTilePzInfo(newPosition) == FALSE and doorCreature.uid ~= cid) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) else doTeleportThing(doorCreature.uid, newPosition, TRUE) if(isInArray(closingDoors, item.itemid) ~= TRUE) 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) == TRUE) 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 return FALSE end Editado Dezembro 15, 2015 por Dennyz Dias Link para o comentário https://xtibia.com/forum/topic/238336-ajuda-bug-na-doors/ Compartilhar em outros sites More sharing options...
Pergunta
Dennyz Dias 9
tem um erro do caramba na minha doors ja trokei por varios script e nada ainda
to usando um OTX Server Version: (2.51 - SE - 1549)
esta acontecendo em todas minhas porta quando vo abrir
Achei a solução in outro FORUM
ta ai para quem tiver com esse problema!
Link para o comentário
https://xtibia.com/forum/topic/238336-ajuda-bug-na-doors/Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados