Postado Março 14, 2016 9 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 9 anos por dominus Adicionar informação (veja o histórico de edições)
Postado Março 14, 2016 9 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.
Postado Abril 2, 2016 9 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 9 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.