Marshmello 270 Postado Outubro 4, 2016 Share Postado Outubro 4, 2016 Ola Galera Bom Eu Vejo Muiitos Topicos De Porta Com Level Muitos N Conseguiram Arrumar Mais Hj Iremos Acabar Com Isso Entao Vamos La Primeiro Va Em Actions/other/doors.lua Troque Todo Q Estar la Por Essa Spoiler 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, "Only the worthy may pass.") 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, "Only the worthy may pass.") 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, "Only the worthy may pass.") 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, "Only the worthy may pass.") 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, "Only the worthy may pass.") 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 Merecedores Podem Passar.") 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, "Essa Porta Estar Selada Contra Intrusos") 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 Depois Va Em Moviments/Scripts/walkback.lua Procure Por Spoiler function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) doTeleportThing(cid, fromPosition) end Troque Isso Por Esse Spoiler function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) doTeleportThing(cid, fromPosition) end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(not isPlayer(cid)) then return true end if(isContainer(item.uid)) then if(not isInArray(SPECIAL_QUESTS, item.actionid) and item.uid > 65535) then return true end elseif(getTileInfo(position).creatures <= 1) then return true end if(fromPosition.x == 0) then -- player just logged in fromPosition = getTownTemplePosition(getPlayerTown(cid)) doSendMagicEffect(fromPosition, CONST_ME_TELEPORT) end doTeleportThing(cid, fromPosition, true) return true end Pronto Agora So Coloca O Level Na Sua Porta E Ira Funcionar Sem Erros Se Ajudei Rep+ Link para o comentário Compartilhar em outros sites More sharing options...
Deadpool 862 Postado Outubro 4, 2016 Share Postado Outubro 4, 2016 Caro membro, seu tópico foi movido de Tutoriais Otserv > Otserv > Tutoriais de Scripting para Scripts > Otserv > Actions, talkactions e moveevents. Procure ler a descrição das seções antes de criar um tópico, pois criando um tópico na área errada, além de receber um alerta chatinho como este, você pode não obter respostas por causa da incoerência do tópico com a seção em que este foi publicado. Se tiver dúvidas a respeito de postagens, mande uma mensagem pra mim que eu irei orientá-lo. Atenciosamente, Xtibia.com. Link para o comentário Compartilhar em outros sites More sharing options...
Marshmello 270 Postado Outubro 4, 2016 Autor Share Postado Outubro 4, 2016 Ops Kk Vlw Por Mover Link para o comentário Compartilhar em outros sites More sharing options...
Administrador Administrador 1435 Postado Outubro 4, 2016 Administrador Share Postado Outubro 4, 2016 Obrigado pelo conteúdo, muito bom. Link para o comentário Compartilhar em outros sites More sharing options...
Marshmello 270 Postado Outubro 4, 2016 Autor Share Postado Outubro 4, 2016 Link para o comentário Compartilhar em outros sites More sharing options...
Poccnn 385 Postado Outubro 4, 2016 Share Postado Outubro 4, 2016 Por que que tem duas funções onstepin na walkback? Link para o comentário Compartilhar em outros sites More sharing options...
Marshmello 270 Postado Outubro 4, 2016 Autor Share Postado Outubro 4, 2016 Foi asssim q Funciono Entao Deixei Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados