othereality 46 Postado Maio 5, 2012 Share Postado Maio 5, 2012 (editado) Então galera! Esse é um script que pretendo usar nas Dungeons do meu OT... O que ele teria que fazer: > Teleportar de 2 a 4 players pra dentro da dungeon por alavanca. > Adicionar uma "x" storage a todos player. E foi ai que tive problemas.. porque não sei como adicionar uma storage a um player que não de "use" na alavance. A solução que eu pensei foi fazer o teleport teleportar pra cida de um outro teleport que adicione a storage por "stepIn" mas nem sei se funcionaria. Se alguém souber reduzir meu script também agradeço! Aqui está o que eu fiz: function onUse(cid, item) local pos1= {x=1054, y=1005, z=8, stackpos=253} local pos2= {x=1055, y=1005, z=8, stackpos=253} local pos3= {x=1056, y=1005, z=8, stackpos=253} local pos4= {x=1057, y=1005, z=8, stackpos=253} local newpos1, newpos2, newpos3, newpos4 = {x=1086, y=563, z=7}, {x=1087, y=563, z=7}, {x=1088, y=563, z=7}, {x=1089, y=563, z=7} local thing = getThingFromPos if (isPlayer(thing(pos4).uid)) then doPlayerSendTextMessage(cid, 22, "No minimo duas pessoas para entrar na dungeon!") elseif (isPlayer(thing(pos4).uid)) and isPlayer(thing(pos3).uid) then doTeleportThing(thing(pos4).uid, newpos4) doTeleportThing(thing(pos3).uid, newpos3) doCreateItem(5787, 1, pos4) doCreateItem(5787, 1, pos3) elseif (isPlayer(thing(pos2).uid) and isPlayer(thing(pos3).uid) and isPlayer(thing(pos4).uid)) then doTeleportThing(thing(pos1).uid, newpos1) doTeleportThing(thing(pos2).uid, newpos2) doTeleportThing(thing(pos3).uid, newpos3) doCreateItem(5787, 1, pos1) doCreateItem(5787, 1, pos2) doCreateItem(5787, 1, pos3) elseif (isPlayer(thing(pos1).uid) and isPlayer(thing(pos2).uid) and isPlayer(thing(pos3).uid) and isPlayer(thing(pos4).uid)) then doTeleportThing(thing(pos1).uid, newpos1) doTeleportThing(thing(pos2).uid, newpos2) doTeleportThing(thing(pos3).uid, newpos3) doTeleportThing(thing(pos4).uid, newpos4) doCreateItem(5787, 1, pos1) doCreateItem(5787, 1, pos2) doCreateItem(5787, 1, pos3) doCreateItem(5787, 1, pos4) end return true end só pra esclarecer o "pos4" é o tile que fica do lado da alavanca, "pos3" é um pra esquerda e assim por diante. E aquele CreateItem cria um item que impede que dois grupos façam a dungeon ao mesmo tempo. Eu precisa de alguma coisa como "setPalyerStorageByPos(cid, pos)" eauheaueaheu Obrigado desde já a quem ajudar! Editado Junho 13, 2012 por Vilden Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/ Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 5, 2012 Share Postado Maio 5, 2012 (editado) usa for '-' local t = { entrada = { {x = 192, y = 57, z = 7}, {x = 191, y = 57, z = 7}, {x = 190, y = 57, z = 7} }, saida = { {x = 192, y = 59, z = 7}, {x = 191, y = 59, z = 7}, {x = 190, y = 59, z = 7} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(isPlayer(x)) then table.insert(check, x) end end if(#check < 2) then return doPlayerSendCancel(cid, 'Está faltando player.') end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doTeleportThing(tid, t.saida[i], false) setPlayerStorageValue(tid,78455,1) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end coloquei para dar a storage 78455 Editado Maio 5, 2012 por Vodkart Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1254507 Compartilhar em outros sites More sharing options...
0 othereality 46 Postado Maio 5, 2012 Autor Share Postado Maio 5, 2012 (editado) Talvez eu tenha entendido errado mas eu alterei o script adicionando mais um lugar por que pode entrar até 4 player na dungeon... local t = { entrada = { {x = 1054, y = 1005, z = 8}, {x = 1055, y = 1005, z = 8}, {x = 1056, y = 1005, z = 8}, {x = 1057, y = 1005, z = 8} }, saida = { {x = 1086, y = 563, z = 7}, {x = 1087, y = 563, z = 7}, {x = 1088, y = 563, z = 7}, {x = 1089, y = 563, z = 7} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(isPlayer(x)) then table.insert(check, x) end end if(#check < 2) then return doPlayerSendCancel(cid, 'No minimo duas pessoas para entrar na dungeon!') end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doTeleportThing(tid, t.saida[i], false) setPlayerStorageValue(tid,23122,1) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end O magic effect só sai no cara que puxa a alavanca... Edit: Acabei de perceber que vc não botou pra criar aquele item tb. =P Eu faria isso, mas esse script vai alem da minha compreensão. AUEHaUEhauehAUEH Editado Maio 5, 2012 por OtheReality Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1254632 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 5, 2012 Share Postado Maio 5, 2012 para criar o item só adicionar antes de doTeleportThing(tid, t.saida, false) isso: doCreateItem(5787, 1, t.entrada) Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1254646 Compartilhar em outros sites More sharing options...
0 othereality 46 Postado Maio 8, 2012 Autor Share Postado Maio 8, 2012 (editado) Pronto agora o script ta criando o item certinho mas quero fazer com que ele suma depois de um tempo. Essa foi minha tentativa obviamente FAIL: local t = { entrada = { {x = 1057, y = 1005, z = 8}, {x = 1056, y = 1005, z = 8}, {x = 1055, y = 1005, z = 8}, {x = 1054, y = 1005, z = 8} }, saida = { {x = 1089, y = 563, z = 7}, {x = 1088, y = 563, z = 7}, {x = 1087, y = 563, z = 7}, {x = 1086, y = 563, z = 7} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(isPlayer(x)) then table.insert(check, x) end end if(#check < 1) then return doPlayerSendCancel(cid, 'No minimo uma pessoas para entrar na dungeon!') end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada, CONST_ME_POFF) doCreateItem(5787, 1, t.entrada) doTeleportThing(tid, t.saida, false) setPlayerStorageValue(tid,23122,1) doSendMagicEffect(t.saida, CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end function tirar( ) --não tenho ideia do que devo colocar aqui. local pos = { pedras = { {x = 1057, y = 1005, z = 8}, {x = 1056, y = 1005, z = 8}, {x = 1055, y = 1005, z = 8}, {x = 1054, y = 1005, z = 8} }} for _, as in ipairs(pos.pedras) do --não tenho ideia de como se usa for. local y = getTileItemById(as, 5787) if y then local ri = doRemoveItem(items.uid, 1) local me = doSendMagicEffect(pedras.pos, CONST_ME_POFF) addEvent(tirar, 10000, ri) addEvent(tirar, 10000, me) end end return true end Editado Maio 8, 2012 por OtheReality Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1256442 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 8, 2012 Share Postado Maio 8, 2012 local t = { create = {5787,1}, entrada = { {x = 1057, y = 1005, z = 8, stackpos = 1}, {x = 1056, y = 1005, z = 8, stackpos = 1}, {x = 1055, y = 1005, z = 8, stackpos = 1}, {x = 1054, y = 1005, z = 8, stackpos = 1} }, saida ={ {x = 1089, y = 563, z = 7}, {x = 1088, y = 563, z = 7}, {x = 1087, y = 563, z = 7}, {x = 1086, y = 563, z = 7} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(isPlayer(x)) then table.insert(check, x) end end if(#check < 2) then return doPlayerSendCancel(cid, 'Minimo 2 pessoas.') end for i, tid in ipairs(check) do function remove() if getTileItemById(t.entrada[i], t.create[1]).uid > 0 then doRemoveItem(getThingfromPos(t.entrada[i]).uid,1) end end doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doCreateItem(t.create[1], 1, t.entrada[i]) doTeleportThing(tid, t.saida[i], false) setPlayerStorageValue(tid,t.storage,1) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) addEvent(remove, t.create[2]*1000*60) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end create = {5787,1}, 5787 é o id do item 1 é o tempo em minutos que irá remover os items Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1256486 Compartilhar em outros sites More sharing options...
0 othereality 46 Postado Maio 8, 2012 Autor Share Postado Maio 8, 2012 (editado) if(#check < 2) then return doPlayerSendCancel(cid, 'Minimo 2 pessoas.') eu tinha posto uma pessoa poder testar.. aeuaeuh --- ta funcionando direito. vlw! agora quero fazer o player ser teleportado para fora da area assim que suma o item, se ele ainda estiver na area da quest. Mas eu acho que eu consigo deixa eu tentar.... euaheauehuae edit: da uma olhada na merda que eu pensei aqui.. aeuaheuhae function remove() if getTileItemById(t.entrada[i], t.create[1]).uid > 0 then doRemoveItem(getThingfromPos(t.entrada[i]).uid,1) doSendMagicEffect(t.entrada[i], 2) if getPlayerStorageValue(cid, 23122) then doTeleportThing(cid, t.entrada[i]) end end end eu fiz assim pra sair o Magic effect quando sumir o item, mas não funcionou. =/ e também botei aquela parte da storage, porque quando mata entra no tp pra sair da quest remove essa storage, então eu ia limitar o tempo do cara dentro da quest. o problema é que eu acho que só funcionaria pra quem puxou a alavanca né? não vai teleportar os outros... (eu testei sozinho e funcionou) vou tentar com MC aqui pra ver oque da... edit: é só teleporta quem puxa a alavanca =/ eu tava olhando uns scripts e pensei em fazer assim: function remove() if getTileItemById(t.entrada[i], t.create[1]).uid > 0 then doRemoveItem(getThingfromPos(t.entrada[i]).uid,1) doSendMagicEffect(t.entrada[i], 2) local from, to = {x = 1071, y = 515, z = 7}, {x = 1203, y = 597, z = 7} local ch = getTopCreature(from, to).uid if(isPlayer(ch)) then doTeleportThing(cid, t.entrada[i]) end end end vou ver se funciona. edit: não deu. =/ desisto. aeauehuahe Editado Maio 8, 2012 por OtheReality Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1256508 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 8, 2012 Share Postado Maio 8, 2012 rsrsrs td bem =] Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1256518 Compartilhar em outros sites More sharing options...
0 othereality 46 Postado Maio 8, 2012 Autor Share Postado Maio 8, 2012 (editado) VODKART !!!! vê meus edits.. auehaueaheuah (sabe como é esse xtibia bugado, tu não sabe quando alguém postou a menos que fique atualizando a pagina -.-) Editado Maio 8, 2012 por OtheReality Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1256557 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 8, 2012 Share Postado Maio 8, 2012 function remove() local from, to = {x = 1071, y = 515, z = 7}, {x = 1203, y = 597, z = 7} if getTileItemById(t.entrada[i], t.create[1]).uid > 0 then doRemoveItem(getThingfromPos(t.entrada[i]).uid,1) end if isInRange(getCreaturePosition(tid), from, to) then doTeleportThing(tid, t.entrada[i]) end end Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1256571 Compartilhar em outros sites More sharing options...
0 Nathan Fischer 4 Postado Junho 12, 2012 Share Postado Junho 12, 2012 preciso de 1 tile que quando o player faz a quest não pode passar pelo tile Link para o comentário https://xtibia.com/forum/topic/185622-script-pra-quest/#findComment-1276913 Compartilhar em outros sites More sharing options...
Pergunta
othereality 46
Então galera!
Esse é um script que pretendo usar nas Dungeons do meu OT...
O que ele teria que fazer:
> Teleportar de 2 a 4 players pra dentro da dungeon por alavanca.
> Adicionar uma "x" storage a todos player.
E foi ai que tive problemas.. porque não sei como adicionar uma storage a um player que não de "use" na alavance.
A solução que eu pensei foi fazer o teleport teleportar pra cida de um outro teleport que adicione a storage por "stepIn" mas nem sei se funcionaria.
Se alguém souber reduzir meu script também agradeço!
Aqui está o que eu fiz:
só pra esclarecer o "pos4" é o tile que fica do lado da alavanca, "pos3" é um pra esquerda e assim por diante.
E aquele CreateItem cria um item que impede que dois grupos façam a dungeon ao mesmo tempo.
Eu precisa de alguma coisa como "setPalyerStorageByPos(cid, pos)"
eauheaueaheu
Obrigado desde já a quem ajudar!
Editado por VildenLink para o comentário
https://xtibia.com/forum/topic/185622-script-pra-quest/Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados