Postado Março 14, 2016 10 anos Fala trutas! Firmeza total! Bem, eu ia postar outro sistema, mas a maldita da cachaça não deixou. Então vou deixar esse script de key doors que acho bem interessante. Não sei se já fizerem algum semelhante, mas vou deixar o que eu fiz. Como funciona? É o velho sistema de doors, ou seja, ainda voga os sistemas de leveldoors, specialdoors etc; eu apenas modifiquei o sistema de key doors. Quando alguém usa a chave certa na porta certa, ela fica destrancada, então você pode usá -la livremente até usar de novo a chave na porta para tranca-la. Vejam as imagens: Então agora vamos por pra funcionar: Em actions/actions.xml Substitua essas tags que fazem referência para doors.lua por essas: Citar <action fromid="1209" toid="1214" event="script" value="other/doors.lua"/> <action fromid="1219" toid="1262" event="script" value="other/doors.lua"/> <action fromid="1539" toid="1542" event="script" value="other/doors.lua"/> <action fromid="2086" toid="2092" event="script" value="other/doors.lua"/> <action fromid="3535" toid="3552" event="script" value="other/doors.lua"/> <action fromid="4913" toid="4918" event="script" value="other/doors.lua"/> <action fromid="5082" toid="5085" event="script" value="other/doors.lua"/> <action fromid="5098" toid="5145" event="script" value="other/doors.lua"/> <action fromid="5278" toid="5295" event="script" value="other/doors.lua"/> <action fromid="5515" toid="5518" event="script" value="other/doors.lua"/> <action fromid="5733" toid="5737" event="script" value="other/doors.lua"/> <action fromid="5745" toid="5749" event="script" value="other/doors.lua"/> <action fromid="6192" toid="6209" event="script" value="other/doors.lua"/> <action fromid="6249" toid="6266" event="script" value="other/doors.lua"/> <action fromid="6795" toid="6802" event="script" value="other/doors.lua"/> <action fromid="6891" toid="6908" event="script" value="other/doors.lua"/> <action fromid="7033" toid="7050" event="script" value="other/doors.lua"/> <action fromid="7054" toid="7057" event="script" value="other/doors.lua"/> <action fromid="8541" toid="8558" event="script" value="other/doors.lua"/> <action fromid="9165" toid="9184" event="script" value="other/doors.lua"/> <action fromid="9267" toid="9286" event="script" value="other/doors.lua"/> <action itemid="10032" event="script" value="other/doors.lua"/> <action itemid="10091" event="script" value="other/doors.lua"/> <action fromid="10268" toid="10285" event="script" value="other/doors.lua"/> <action fromid="10468" toid="10486" event="script" value="other/doors.lua"/> <action fromid="10774" toid="10776" event="script" value="other/doors.lua"/> <action fromid="10779" toid="10785" event="script" value="other/doors.lua"/> <action fromid="10788" toid="10791" event="script" value="other/doors.lua"/> Agora em actions/scripts/other/doors.lua Abra ele, apague tudo dentro dele e adicikne esse código: 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 end function onUse(cid, item, fromPosition, itemEx, toPosition) local MSG = MESSAGE_INFO_DESCR if not(checkStackpos(fromPosition,toPosition))then return true,doPlayerSendTextMessage(cid,MSG,'You can not close the door because someone is using it.')end if(item.actionid == 0 and not(isInArray(keys, item.itemid)))then if(doors[item.itemid])then doTransformItem(item.uid,doors[item.itemid]) elseif(isInArray(horizontalOpenDoors,item.itemid) or isInArray(verticalOpenDoors, item.itemid))then doTransformItem(item.uid, item.itemid -1) elseif(isInArray(closingDoors, item.itemid) ~= true)then doTransformItem(item.uid, item.itemid +1) end elseif(getItemLevelDoor(item.itemid) > 0)then if(getPlayerLevel(cid) >= item.actionid-getItemLevelDoor(item.itemid))then doTransformItem(item.uid, item.itemid +1) doTeleportThing(cid, toPosition, true) else doPlayerSendTextMessage(cid, MSG, "You are not experienced enough to pass.") end elseif(isInArray(specialDoors, item.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 doTransformItem(item.uid, item.itemid +1) doTeleportThing(cid, toPosition, true) else doPlayerSendTextMessage(cid, MSG, "The door seems to be sealed against unwanted intruders.") end else if(getPlayerStorageValue(cid, item.actionid) > 0)then doTransformItem(item.uid, item.itemid +1) doTeleportThing(cid, toPosition, true) else doPlayerSendTextMessage(cid, MSG, "The door seems to be sealed against unwanted intruders.") end end elseif(isInArray(keys, item.itemid))then if(isCreature(itemEx.uid))then doPlayerSendTextMessage(cid,25,'Using this key in some doors.') elseif(item.itemid == 10091 or item.itemid == 2090)then doPlayerSendTextMessage(cid,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 doPlayerSendCancel(cid,'Wrong key for this door.') doSendMsgText(toPosition,"Cleck",4) else doPlayerSendCancel(cid,'Use this key in doors.') end elseif(getKeyUsed(itemEx.actionid,toPosition.x,toPosition.y) and doors[item.itemid])then doTransformItem(item.uid, doors[item.itemid]) elseif(isInArray(horizontalOpenDoors, item.itemid) or isInArray(verticalOpenDoors, item.itemid) and getKeyUsed(itemEx.actionid,toPosition.x,toPosition.y))then doTransformItem(item.uid,item.itemid-1) else doPlayerSendTextMessage(cid,25,'It is locked.') end return true end Agora em: data/lib/constante.lua Procure pelas tabelas de keys, doors etc; substitua todas por essas: Citar doors = {[1209] = 1211, [1210] = 1211, [1212] = 1214, [1213] = 1214, [1219] = 1220, [1221] = 1222, [1231] = 1233, [1232] = 1233, [1234] = 1236, [1235] = 1236, [1237] = 1238, [1239] = 1240, [1249] = 1251, [1250] = 1251, [1252] = 1254, [1253] = 1254, [1539] = 1540, [1541] = 1542, [3535] = 3537, [3536] = 3537, [3538] = 3539, [3544] = 3546, [3545] = 3546, [3547] = 3548, [4913] = 4915, [4914] = 4915, [4916] = 4918, [4917] = 4918, [5082] = 5083, [5084] = 5085, [5098] = 5100, [5099] = 5100, [5101] = 5102, [5107] = 5109, [5108] = 5109, [5110] = 5111, [5116] = 5118, [5117] = 5118, [5119] = 5120, [5125] = 5127, [5126] = 5127, [5128] = 5129, [5134] = 5136, [5135] = 5136, [5137] = 5139, [5138] = 5139, [5140] = 5142, [5141] = 5142, [5143] = 5145, [5144] = 5145, [5278] = 5280, [5279] = 5280, [5281] = 5283, [5282] = 5283, [5284] = 5285, [5286] = 5287, [5515] = 5516, [5517] = 5518, [5732] = 5734, [5733] = 5734, [5735] = 5737, [5736] = 5737, [6192] = 6194, [6193] = 6194, [6195] = 6197, [6196] = 6197, [6198] = 6199, [6200] = 6201, [6249] = 6251, [6250] = 6251, [6252] = 6254, [6253] = 6254, [6255] = 6256, [6257] = 6258, [6795] = 6796, [6797] = 6798, [6799] = 6800, [6801] = 6802, [6891] = 6893, [6892] = 6893, [6894] = 6895, [6900] = 6902, [6901] = 6902, [6903] = 6904, [7033] = 7035, [7034] = 7035, [7036] = 7037, [7042] = 7044, [7043] = 7044, [7045] = 7046, [7054] = 7055, [7056] = 7057, [8541] = 8543, [8542] = 8543, [8544] = 8546, [8545] = 8546, [8547] = 8548, [8549] = 8550, [9165] = 9167, [9166] = 9167, [9168] = 9170, [9169] = 9170, [9171] = 9172, [9173] = 9174, [9267] = 9269, [9268] = 9269, [9270] = 9272, [9271] = 9272, [9273] = 9274, [9275] = 9276, [10276] = 10277, [10274] = 10275, [10268] = 10270, [10269] = 10270, [10271] = 10273, [10272] = 10273, [10471] = 10472, [10480] = 10481, [10477] = 10479, [10478] = 10479, [10468] = 10470, [10469] = 10470, [10774] = 10776, [10775] = 10776, [10779] = 10780, [10781] = 10782, [10783] = 10785, [10784] = 10785, [10788] = 10789, [10790] = 10791} closingDoors = {1224, 1226, 1228, 1230, 1242, 1244, 1246, 1248, 1256, 1258, 1260, 1262, 3541, 3543, 3550, 3552, 5104, 5106, 5113, 5115, 5122, 5124, 5131, 5133, 5289, 5291, 5293, 5295, 6203, 6205, 6207, 6209, 6260, 6262, 6264, 6266, 6897, 6899, 6906, 6908, 7039, 7041, 7048, 7050, 8552, 8554, 8556, 8558, 9176, 9178, 9180, 9182, 9278, 9280, 9282, 9284, 10279, 10281, 10283, 10285, 10474, 10476, 10483, 10485, 10780, 10782, 10789, 10791} verticalOpenDoors = {1211, 1220, 1224, 1228, 1233, 1238, 1242, 1246, 1251, 1256, 1260, 1540, 3546, 3548, 3550, 3552, 4915, 5083, 5109, 5111, 5113, 5115, 5127, 5129, 5131, 5133, 5142, 5145, 5283, 5285, 5289, 5293, 5516, 5737, 5749, 6194, 6199, 6203, 6207, 6251, 6256, 6260, 6264, 6798, 6802, 6902, 6904, 6906, 6908, 7044, 7046, 7048, 7050, 7055, 8543, 8548, 8552, 8556, 9167, 9172, 9269, 9274, 9278, 9282, 10270, 10275, 10279, 10283, 10479, 10481, 10483, 10485, 10789, 10791} horizontalOpenDoors = {1214, 1222, 1226, 1230, 1236, 1240, 1244, 1248, 1254, 1258, 1262, 1542, 3537, 3539, 3541, 3543, 4918, 5085, 5100, 5102, 5104, 5106, 5118, 5120, 5122, 5124, 5136, 5139, 5280, 5287, 5291, 5295, 5518, 5734, 5746, 6197, 6201, 6205, 6209, 6254, 6258, 6262, 6266, 6796, 6800, 6893, 6895, 6897, 6899, 7035, 7037, 7039, 7041, 7057, 8546, 8550, 8554, 8558, 9170, 9174, 9272, 9276, 9280, 9284, 10273, 10277, 10281, 10285, 10470, 10472, 10474, 10476, 10780, 10782} specialDoors = {1223, 1225, 1241, 1243, 1255, 1257, 3542, 3551, 5105, 5114, 5123, 5132, 5288, 5290, 5745, 5748, 6202, 6204, 6259, 6261, 6898, 6907, 7040, 7049, 8551, 8553, 9175, 9177, 9277, 9279, 10278, 10280, 10475, 10484, 10781, 10790} keys = {2086, 2087, 2088, 2089, 2090, 2091, 2092, 10032, 10091, 8978} Lembrando pessoal que esse script foi criado para um servidor 8.54 TFS, caso seu servidor seja outro, deveras ser feito as devidas alterações. É isso pessoal, espero que gostem, caso encontrem algum erro, ou esteja faltando algo, posta ae que eu dou assistência. Editado Março 14, 2016 10 anos por dominus Adicionar informação (veja o histórico de edições)
Postado Março 14, 2016 10 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Bom, o sistema de keys que eu saiba ja funciona automaticamente, se não me engano o id da key (número da chave) deve ser o actionid da porta (não me lembro ao certo)... Mas bem, está aprovado. Bruno Carvalho / Ex-Administrador TibiaKing [email protected] Em 26/12/2016 em 03:47, Spraypaint disse: A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une. -miltinho
Postado Abril 2, 2016 10 anos Autor Desde que eu baixei o TFS 0.3.6 que eu queria esse sistema, mas não vi em outro lugar; então resolvi fazer as devidas modificações no script de doors. Editado Abril 2, 2016 10 anos por dominus (veja o histórico de edições)
Postado Abril 27, 2017 8 anos Alguém tem um sistem de doors que funcione em dbo 8.6 que teletransporte entre as portas? Sem precisar abrir elas...
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.