Postado Janeiro 28, 2016 9 anos Olá pessoal, preciso de um grande favor, o pedido é o seguinte: Existem 6 teleports, os quais preciso que dão uma Storage para o player, cada um da uma exemplo: teleport1 = storage 1001.. teleport6 = storage 1006 Quando o player passar por cima dos 6 teleports, ele irá acumular as 6 storages, com elas ele poderá passar em um outro, lembrando que o player só poderá passar neste outro se tiver as 6 storages dos 6 teleports, não sei se isto é impossível de fazer, sei que é possível.. se alguem ajudar ai ficarei muito agradecido e vai um repzão! :D Obrigado!
Postado Janeiro 28, 2016 9 anos sim é possível, mas porque não usar uma só storage e mudar o valor)quantidade) delas? por exemplo: storage 1001(+1) storage 1001(+2) storage 1001(+3) etc...
Postado Janeiro 28, 2016 9 anos Autor 17 minutos atrás, Vodkart disse: sim é possível, mas porque não usar uma só storage e mudar o valor)quantidade) delas? por exemplo: storage 1001(+1) storage 1001(+2) storage 1001(+3) etc... É tipo assim, existem 6 salas, e um teleport em determinado local, apos entrar nas 6 salas e passar pelos teleports, ele poderá passar pelo teleport no determinado local, eu nao faço nem ideia como poderá ser feito isto, mas deve ser adicionando algumas actions ou creaturescripts.. xD
Postado Janeiro 28, 2016 9 anos Seria interessante parar para pensar em fazer como o @Vodkart mencionou, mas, caso seja do interesse do 'player' o 'script' que utiliza mais 'storages' poderá indicar qual ainda não foi passado. Embora eu não tenha pensado no que ele mencionou, fiz um rascunho aqui. Coloque isto no 'actions.xml': <action actionid="18181" event="script" value="portais.lua"/> E cria um arquivo 'portais.lua' na pasta 'data > actions > scripts' e coloque isto aí dentro: local PLACA = { -- Portal 1 [10001] = {storage = 11222, unique = 10001}, -- Portal 2 [10002] = {storage = 11223, unique = 10002}, -- Portal 3 [10003] = {storage = 11224, unique = 10003}, -- Portal 4 [10004] = {storage = 11225, unique = 10004}, -- Portal 5 [10005] = {storage = 11226, unique = 10005}, -- Portal 6 [10006] = {storage = 11227, unique = 10006}, -- Portal 7 (precisa dos outros storage) [10007] = {storage = 11228, unique = 10007}, } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local placas = PLACAS[item.uid] local sto1 = getPlayerStorageValue(cid, 11222) local sto2 = getPlayerStorageValue(cid, 11223) local sto3 = getPlayerStorageValue(cid, 11224) local sto4 = getPlayerStorageValue(cid, 11225) local sto5 = getPlayerStorageValue(cid, 11226) local sto6 = getPlayerStorageValue(cid, 11227) local novaPos = {x = 123, y = 123, z = 7} -- Esta é a coordenada para onde o último portal enviará o player if (placas.unique == 10007) then if (sto1 == 1 and sto2 == 1 and sto3 == 1 and sto4 == 1 and sto5 == 1 and sto6 == 1) then doTeleportThing(cid, novaPos) else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você ainda não passou por todos os portais.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end else doPlayerSetStorageValue(cid, placas.storage,1) doPlayerSendCancel(cid, "Você não pode entrar com nenhuma "..getItemNameById(itemNecessario)..".") return true end end Depois, em cada portal, coloque (utilizando o ReMere Map Editor - duplo clique no portal) o 'actionId' 18181, e os Unique Id´s de 10001 até 10006. O 10007 deverá ser para o último portal. Além disto, olha no 'script' para colocar a posição para onde o último portal iráenviar. Teste aí e veja o que deu.
Postado Janeiro 29, 2016 9 anos Autor 26 minutos atrás, Xagah disse: Seria interessante parar para pensar em fazer como o @Vodkart mencionou, mas, caso seja do interesse do 'player' o 'script' que utiliza mais 'storages' poderá indicar qual ainda não foi passado. Embora eu não tenha pensado no que ele mencionou, fiz um rascunho aqui. Coloque isto no 'actions.xml': <action actionid="18181" event="script" value="portais.lua"/> E cria um arquivo 'portais.lua' na pasta 'data > actions > scripts' e coloque isto aí dentro: local PLACA = { -- Portal 1 [10001] = {storage = 11222, unique = 10001}, -- Portal 2 [10002] = {storage = 11223, unique = 10002}, -- Portal 3 [10003] = {storage = 11224, unique = 10003}, -- Portal 4 [10004] = {storage = 11225, unique = 10004}, -- Portal 5 [10005] = {storage = 11226, unique = 10005}, -- Portal 6 [10006] = {storage = 11227, unique = 10006}, -- Portal 7 (precisa dos outros storage) [10007] = {storage = 11228, unique = 10007}, } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local placas = PLACAS[item.uid] local sto1 = getPlayerStorageValue(cid, 11222) local sto2 = getPlayerStorageValue(cid, 11223) local sto3 = getPlayerStorageValue(cid, 11224) local sto4 = getPlayerStorageValue(cid, 11225) local sto5 = getPlayerStorageValue(cid, 11226) local sto6 = getPlayerStorageValue(cid, 11227) local novaPos = {x = 123, y = 123, z = 7} -- Esta é a coordenada para onde o último portal enviará o player if (placas.unique == 10007) then if (sto1 == 1 and sto2 == 1 and sto3 == 1 and sto4 == 1 and sto5 == 1 and sto6 == 1) then doTeleportThing(cid, novaPos) else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você ainda não passou por todos os portais.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end else doPlayerSetStorageValue(cid, placas.storage,1) doPlayerSendCancel(cid, "Você não pode entrar com nenhuma "..getItemNameById(itemNecessario)..".") return true end end Depois, em cada portal, coloque (utilizando o ReMere Map Editor - duplo clique no portal) o 'actionId' 18181, e os Unique Id´s de 10001 até 10006. O 10007 deverá ser para o último portal. Além disto, olha no 'script' para colocar a posição para onde o último portal iráenviar. Teste aí e veja o que deu. Deu isto na distro: [Warning - Event::loadScript] Event onUse not found (data/actions/scripts/portais.lua)
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.