Farathor 22 Postado Dezembro 10, 2015 Share Postado Dezembro 10, 2015 Então pessoal, gostaria de pedir um script que funciona da seguinte maneira, bem simples, só será possivel abrir uma determinada porta, se eu usar uma certa chave nela, ou seja, a porta só se abre, quando eu usar a chave nela Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/ Compartilhar em outros sites More sharing options...
0 luizmachado1 34 Postado Dezembro 10, 2015 Share Postado Dezembro 10, 2015 mandar o id da chave a storage quer vc quer! Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/#findComment-1677950 Compartilhar em outros sites More sharing options...
0 MatheusGlad 424 Postado Dezembro 10, 2015 Share Postado Dezembro 10, 2015 Door = {} function Door:new(position, keyaid, openid, closedid) return setmetatable({position=position, keyaid=keyaid, openid=openid, closedid=closedid, locked=true, id=closedid}, {__index = Door}) end function Door:isLocked() if self.id == self.closedid then return self.locked end end function Door:setUid(uid) self.uid = uid return true end function Door:unlock(keyaid) if self.uid and keyaid == self.keyaid then self.locked = false self.id = self.openid doTransformItem(self.uid, self.openid) doItemSetAttribute(self.uid, "aid", 0) return true end end function Door:lock(keyaid) if self.uid and keyaid == self.keyaid then self.locked = true self.id = self.closedid doTransformItem(self.uid, self.closedid) doItemSetAttribute(self.uid, "aid", keyaid) return true end end function getDoorByPosition(position, doors) for _, door in ipairs(doors) do if doComparePositions(door.position, position) then return door end end end -- Door:new(posiçao, actionid, idportaabertam idportafechada) local doors = { [1] = Door:new({x=156, y=54, z=7}, 1230, 5100, 5099), [2] = Door:new({x=152, y=54, z=7}, 1231, 5100, 5099), } function onUse(cid, item, fromPosition, itemEx, toPosition) local door = getDoorByPosition(toPosition, doors) if door then if itemEx.itemid == door.openid or itemEx.itemid == door.closedid then door:setUid(itemEx.uid) if item.uid == itemEx.uid then if door:isLocked() then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.") end else if door:isLocked() then local unlock = door:unlock(item.actionid) if not unlock then return doPlayerSendCancel(cid, "The key does not match.") end else local lock = door:lock(item.actionid) if not lock then return doPlayerSendCancel(cid, "The key does not match.") end end end end end return true end Bota o mesmo action id na porta e na chave. Soh edite a tabela doors. Tag: <action actionid="1230-1231" event="script" value="test.lua"/> Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/#findComment-1677951 Compartilhar em outros sites More sharing options...
0 Farathor 22 Postado Dezembro 10, 2015 Autor Share Postado Dezembro 10, 2015 Só que por exemplo, essa chave iria cair de monstros e quando ela dropa de monstros, vem sem actionID Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/#findComment-1677954 Compartilhar em outros sites More sharing options...
0 MatheusGlad 424 Postado Dezembro 10, 2015 Share Postado Dezembro 10, 2015 Muda: local unlock = door:unlock(item.actionid) ... ... local lock = door:lock(item.actionid) Por: local unlock = door:unlock(item.itemid) ... ... local lock = door:lock(item.itemid) E bota o itemid dessa chave como actionid na porta e na tabela doors. Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/#findComment-1677969 Compartilhar em outros sites More sharing options...
0 Lucas CP 21 Postado Dezembro 11, 2015 Share Postado Dezembro 11, 2015 Só que por exemplo, essa chave iria cair de monstros e quando ela dropa de monstros, vem sem actionID Coloca isso no montros.xml <loot> <item id="ID da chave" actionId="ACTIONID DA CHAVE" chance="140000"/><!-- chave --> </loot> Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/#findComment-1677975 Compartilhar em outros sites More sharing options...
0 Farathor 22 Postado Dezembro 11, 2015 Autor Share Postado Dezembro 11, 2015 OBS: quando eu uso a chave na porta, o actionid some, e ela volta a ser uma porta normal Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/#findComment-1678001 Compartilhar em outros sites More sharing options...
0 MatheusGlad 424 Postado Dezembro 12, 2015 Share Postado Dezembro 12, 2015 OBS: quando eu uso a chave na porta, o actionid some, e ela volta a ser uma porta normal Bem, não era pra ser desse jeito? Voce abre a porta e o actionid some, se voce usar a chave denovo tranca a porta Oo Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/#findComment-1678063 Compartilhar em outros sites More sharing options...
0 Farathor 22 Postado Dezembro 13, 2015 Autor Share Postado Dezembro 13, 2015 (editado) Então, é que quando fecha a porta, da pra abrir ela sem chave E eu queria assim, a porta só pode ser aberta com a chave, não precisa trancar de novo, toda vez que ela estiver fechada, só pode ser aberta com a chave Editado Dezembro 13, 2015 por Farathor Link para o comentário https://xtibia.com/forum/topic/238266-pedido-key-door/#findComment-1678167 Compartilhar em outros sites More sharing options...
Pergunta
Farathor 22
Então pessoal, gostaria de pedir um script que funciona da seguinte maneira, bem simples, só será possivel abrir uma determinada porta, se eu usar uma certa chave nela, ou seja, a porta só se abre, quando eu usar a chave nela
Link para o comentário
https://xtibia.com/forum/topic/238266-pedido-key-door/Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados