Postado Dezembro 27, 2020 4 anos .Qual servidor ou website você utiliza como base? TFS 1.3 Qual o motivo deste tópico? Ao usar 1 chave com qualquer actionID, em um portão de cityquest aparece o seguinte erro.. Segue abaixo o erro e o código do script data/actions/other/doors.lua Aguardo, vlw! Está surgindo algum erro? Se sim coloque-o aqui. Citar Lua Script Error: [Action Interface] data/actions/scripts/other/doors.lua:onUse data/actions/scripts/other/doors.lua:23: attempt to call global 'getItemLevelDoor' (a nil value) stack traceback: [C]: in function 'getItemLevelDoor' data/actions/scripts/other/doors.lua:23: in function <data/actions/scripts/other/doors.lua:16> Você tem o código disponível? Se tiver publique-o aqui: 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, toPosition) 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, "Somente os fortes passarão.") return true end doorEnter(cid, item, toPosition) 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, "Somente os fortes passarão.") return true end doorEnter(cid, item, toPosition) 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, "Somente os fortes passarão.") return true end doorEnter(cid, item, toPosition) 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, "Somente os fortes passarão.") return true end doorEnter(cid, item, toPosition) 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, "Somente os fortes passarão.") return true end doorEnter(cid, item, toPosition) return true end if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then doorEnter(cid, item, toPosition) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente os fortes passarão.") 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, toPosition) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Está trancada") 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, "Essa chave não serve aqui.") return true end return false end if(isInArray(horizontalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then if item.actionid > 0 and getPlayerAccess(cid) <= 2 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Está emperrada") return true end 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 if (item.actionid > 0) and (getPlayerAccess(cid) <= 2) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Está emperrada.") return true end 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) or getPlayerAccess(cid) > 2 then doTransformItem(item.uid, doors[item.itemid]) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Está trancada.") end return true end return false end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Postado Dezembro 31, 2020 4 anos Bom dia meu amigo não sei que e bem isso que vc quer mais ira te ajudar. crie um arquivo chamando chave.lua function onUse(cid, item, frompos, item2, topos) local pausa = 1000 local door = {x=944, y=230, z=7, stackpos=1} local ddoor = getThingfromPos(door) local open_door = 6251 local itemU = 24000 local verify = 0 if item2.uid == itemU then if ddoor.itemid ~= verify then doTransformItem(ddoor.uid,open_door) addEvent(close,pausa,door) end else doPlayerSendCancel(cid,"voce nao pode usar a chave aqui!") end return 1 end function close(door) local to_close_door = 6249 local the_close_door = getThingfromPos(door) doTransformItem(the_close_door.uid,to_close_door) end Local pausa = o tempo porta ficara aberta no caso 1000 = a 1s Local door = pos da porta local open_door = id da porta local itemU - Uid que esta na porta via rme (se n estiver usando o UID nao precisa trocar) local varify Nao mecha local to_close_door = id da porta fechada agoa em actions xml add <action itemid="ID DA CHAVE" script="chave.lua" /> PokeWorks-Pokemon Rpg Online venha Fazer parte dessa Incrivel Aventura Criar Conta ____________##___________ Object Builder 0.5.441
Postado Dezembro 31, 2020 4 anos não tem essa função na sua lib, tenta adicionar na lib: function getItemLevelDoor(itemid) local item = getItemInfo(itemid) return item and item.levelDoor or false end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.