Pode ser tipo assim:
Puxa a alavanca e nasce uma em outro lugar, ai vai assim.
Até que quando puxar a ultima a parede abre e todas outras somem, exceto a primeira.
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Pode ser tipo assim:
Puxa a alavanca e nasce uma em outro lugar, ai vai assim.
Até que quando puxar a ultima a parede abre e todas outras somem, exceto a primeira.
tipow e asim colokei 7 alavancas pra puxar la em banuta que ao puxar as alavancas ele abre uma parede e ele entra e pega um chave que permite que ele abra a porta pra ir ao andar a baixo essa e minha ideia eu tentei usa o script de poi mais parece nao ser posivel nao sei o motivo o script e identico e nao funciona deve ser algum bug por isso venho pedir para vcs quem poder me ajuda vou agradecer xD
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Mas pode ser que nem eu sugeri?
Desse jeito ai não sei fazer.
mais ai quando eu puxa todas as alavancas as outras vao sumir ne vai fica so 1 mais ai qualker um que chega vai puxa so 1 alavanca e vai abri a parede e pega a chave?
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Tive uma ideia melhor:
Pode ser 7 altares, quando os 7 altares tiverem seus itens postos sobre eles, então o player puxa a alavanca.
Quando puxar a parede abre.
Pode ser assim?
e que ja tem que faser algumas quest pra chega la ai vai dificultar mais
o escript e esse tem como diminuir ele sei la pra colokar 7 alavancas
local wall1pos = {x=725, y=264, z=10, stackpos=1}
local wall2pos = {x=726, y=264, z=10, stackpos=1}
local leverpos1 = {x=717, y=290, z=10, stackpos=1}
local leverpos2 = {x=721, y=263, z=11, stackpos=1}
local leverpos3 = {x=760, y=268, z=11, stackpos=1}
local leverpos4 = {x=727, y=290, z=12, stackpos=1}
local leverpos5 = {x=724, y=297, z=11, stackpos=1}
local leverpos6 = {x=734, y=295, z=11, stackpos=1}
local leverpos7 = {x=748, y=285, z=12, stackpos=1}
local leverpos8 = {x=748, y=265, z=10, stackpos=1}
local leverpos9 = {x=765, y=259, z=12, stackpos=1}
local leverpos10 = {x=717, y=283, z=12, stackpos=1}
local leverpos11 = {x=763, y=280, z=13, stackpos=1}
local leverpos12 = {x=761, y=261, z=10, stackpos=1}
local leverpos13 = {x=720, y=249, z=10, stackpos=1}
local leverpos14 = {x=761, y=286, z=11, stackpos=1}
function onUse(cid, item, frompos, item2, topos)
local wall1 = getThingfromPos(wall1pos)
local wall2 = getThingfromPos(wall2pos)
local lever1 = getThingfromPos(leverpos1)
local lever2 = getThingfromPos(leverpos2)
local lever3 = getThingfromPos(leverpos3)
local lever4 = getThingfromPos(leverpos4)
local lever5 = getThingfromPos(leverpos5)
local lever6 = getThingfromPos(leverpos6)
local lever7 = getThingfromPos(leverpos7)
local lever8 = getThingfromPos(leverpos8)
local lever9 = getThingfromPos(leverpos9)
local lever10 = getThingfromPos(leverpos10)
local lever11 = getThingfromPos(leverpos11)
local lever12 = getThingfromPos(leverpos12)
local lever13 = getThingfromPos(leverpos13)
local lever14 = getThingfromPos(leverpos14)
if (lever1.itemid == 1946 and lever2.itemid == 1946 and lever3.itemid == 1946 and lever4.itemid == 1946 and lever5.itemid == 1946 and lever6.itemid == 1946 and lever7.itemid == 1946 and lever8.itemid == 1946 and lever9.itemid == 1946 and lever10.itemid == 1946 and lever11.itemid == 1946 and lever12.itemid == 1946 and lever13.itemid == 1946 and lever14.itemid == 1946 and wall1.itemid == 0) then
doSendMagicEffect(wall1pos, 13)
doSendMagicEffect(wall2pos, 13)
doCreateItem(1304,1,wall1pos)
doCreateItem(1304,1,wall2pos)
doTransformItem(item.uid,1945)
elseif (lever1.itemid == 1946 and lever2.itemid == 1946 and lever3.itemid == 1946 and lever4.itemid == 1946 and lever5.itemid == 1946 and lever6.itemid == 1946 and lever7.itemid == 1946 and lever8.itemid == 1946 and lever9.itemid == 1946 and lever10.itemid == 1946 and lever11.itemid == 1946 and lever12.itemid == 1946 and lever13.itemid == 1946 and lever14.itemid == 1946 and wall1.itemid == 1304) then
doSendMagicEffect(wall1pos, 2)
doSendMagicEffect(wall2pos, 2)
doRemoveItem(wall1.uid,1)
doRemoveItem(wall2.uid,1)
doTransformItem(item.uid,1946)
else
doPlayerSendCancel(cid,"You have not pulled all 15 levers.")
end
return 1
end
quem puder ajuda xD
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Diminuir é só retirar alguns locais:
local wall1pos = {x=725, y=264, z=10, stackpos=1} --- localização da porta (não mude o stackpos)local leverpos1 = {x=717, y=290, z=10, stackpos=1} ---- localização da alavanca (não mude o stackpos)
local leverpos2 = {x=721, y=263, z=11, stackpos=1} ---- localização da alavanca (não mude o stackpos)
local leverpos3 = {x=760, y=268, z=11, stackpos=1} ---- localização da alavanca (não mude o stackpos)
local leverpos4 = {x=727, y=290, z=12, stackpos=1} ---- localização da alavanca (não mude o stackpos)
local leverpos5 = {x=724, y=297, z=11, stackpos=1} ---- localização da alavanca (não mude o stackpos)
local leverpos6 = {x=734, y=295, z=11, stackpos=1} ---- localização da alavanca (não mude o stackpos)
local leverpos7 = {x=748, y=285, z=12, stackpos=1} ---- localização da alavanca (não mude o stackpos)
function onUse(cid, item, frompos, item2, topos)
local wall1 = getThingfromPos(wall1pos)
local lever1 = getThingfromPos(leverpos1)
local lever2 = getThingfromPos(leverpos2)
local lever3 = getThingfromPos(leverpos3)
local lever4 = getThingfromPos(leverpos4)
local lever5 = getThingfromPos(leverpos5)
local lever6 = getThingfromPos(leverpos6)
local lever7 = getThingfromPos(leverpos7)
if (lever1.itemid == 1946 and lever2.itemid == 1946 and lever3.itemid == 1946 and lever4.itemid == 1946 and lever5.itemid == 1946 and lever6.itemid == 1946 and lever7.itemid == 1946 and wall1.itemid == 0) then
doSendMagicEffect(wall1pos, 13) --- numero do efeito (/z)
doCreateItem(1304,1,wall1pos) --- item a ser criado (id da parede no caso)
doTransformItem(item.uid,1945)
elseif (lever1.itemid == 1946 and lever2.itemid == 1946 and lever3.itemid == 1946 and lever4.itemid == 1946 and lever5.itemid == 1946 and lever6.itemid == 1946 and lever7.itemid == 1946 and wall1.itemid == 1304) then --- item a ser criado (id da parede no caso)
doSendMagicEffect(wall1pos, 2) --- numero do efeito (/z)
doRemoveItem(wall1.uid,1)
doTransformItem(item.uid,1946)
else
doPlayerSendCancel(cid,"São necessárias 7 alavancas!!!") --- Mensagem
end
return 1
end
Editando:
-Verde: Variáveis.
Editado Setembro 10 por Newtonnotwen
bom esse script nao ta funfando nao sei o motivo colokei as cordenadas actionid 10291 alavanca
as alavancas colokei todas uma do lado da outra pra testa e nao esta funfando
tag <action actionid="10291" event="script" value="banuta.lua"/>
se alguem puder me ajuda agradeço e apenas 7 alavancas que retira uma pedra 1304 =/
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Use o script do vodkart, vai ter muita mais emoção ao meu ver:
Faça tipo assim:

Coloque os itens em cima dos altares:

Puxe a alavanca e seja teleportado para o outro lado:

Por fim ponha um teleporte para voltar.
Script (by vodkart, explicação e tutorial by Newtonnotwen):
function getItemsInPos(items, pos) -- function by vodkafor i = 1,#items do
local stack = getTileItemById(pos, items[1])
if stack.uid > 0 and math.max(1, stack.type) >= items[2] then
if i == #items then
check = true
end
else
check = false
end
end
return check
end
function doRemoveItensInPos(items, pos) -- function by vodka
local items = type(items) == "table" and items or {items}
for i = 1, table.maxn(items) do
doRemoveItem(getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=1}).uid)
end
return nil
end
local t = {
{items = {{5876,1}} , pos = {x=1008, y=1027, z=15}}, ---- localização do altar
{items = {{5876,1}} , pos = {x=1008, y=1027, z=15}}, ---- localização do altar
{items = {{5876,1}} , pos = {x=1008, y=1027, z=15}}, ---- localização do altar
{items = {{5876,1}} , pos = {x=1008, y=1027, z=15}}, ---- localização do altar
{items = {{5876,1}} , pos = {x=1008, y=1027, z=15}}, ---- localização do altar
{items = {{5876,1}} , pos = {x=1008, y=1027, z=15}},---- localização do altar
{items = {{5877,1}} , pos = {x=1010, y=1027, z=15}} ---- localização do altar
}
topos = {x=1009, y=1026, z=15} ---- onde irá teleportar
function onUse(cid, item, fromPosition, itemEx, toPosition)
for _, k in ipairs(t) do
if not getItemsInPos(k.items, k.pos) then
doPlayerSendCancel(cid, 'Está faltando items na mesa.')
return true
end
end
for _, v in ipairs(t) do
doRemoveItensInPos(v.items, v.pos)
end
doTeleportThing(cid, topos)
doSendMagicEffect(topos, CONST_ME_TELEPORT)
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
return true
end
Editando:
-Verde: Variáveis na posição
-Vermelho: Id do item
-Laranja: Quantidade
cara nao era oq eu estava procurando mais blz vlw a tentativa vai meu rep pela forsa xD
Testa ae:
local leversPositions = { -- tabela com posições de todas as alavancas
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
{x = 1, y = 1, z = 1},
}
local wallId = 1285 -- id da parede que vai ser criada/removida
local wallPositions = { -- tabela com posições de todas as paredes a serem criadas/removidas
{x = 1, y = 1, z = 1},
}
local MOSTRAR_MSG = true -- true/false, se true informa ao player quantas alavancas faltam pro caminho ser aberto
local ABRIR_CAMINHO_QUANDO_ID = 1946 -- abre o caminho quando todas as levers estiverem com id 1946 (direita)
local EFFECT_AO_REMOVER_PAREDE = CONST_ME_POFF -- efeito que aparece nas paredes ao remover elas
local EFFECT_AO_CRIAR_PAREDE = CONST_ME_POFF -- efeito que aparece nas paredes ao serem recriadas
local EFFECT_AO_PUXAR_ALAVANCA_PARA_O_LADO_CERTO = CONST_ME_MAGIC_BLUE -- efeito que aparece no player ao puxar a alavanca pro lado que abre o caminho
function onUse(cid, item, frompos, item2, topos)
local right, left, newId = 0, 0, item.itemid == 1945 and 1946 or 1945
doTransformItem(item.uid, newId)
local isTryingToOpen = newId == ABRIR_CAMINHO_QUANDO_ID
for _, lPos in pairs (leversPositions) do
local lever = getTileItemById(lPos, 1945).uid
if lever > 1 then left = left + 1 end
lever = getTileItemById(lPos, 1946).uid
if lever > 1 then right = right + 1 end
end
local check = ABRIR_CAMINHO_QUANDO_ID == 1946 and right or left
local openPath = check == #leversPositions
if isTryingToOpen and MOSTRAR_MSG then
local returnMsg = "Você puxou uma alavanca para abrir um caminho secreto!"
local m = #leversPositions - check ~= 1 and "m" or ""
local s = #leversPositions - check ~= 1 and "s" or ""
returnMsg = returnMsg.." Agora falta"..m.." "..(#leversPositions - check).." alavanca"..s.." para abrir o caminho."
if #leversPositions - check == 0 then
returnMsg = "O caminho secreto foi aberto!"
end
doPlayerSendTextMessage(cid, 27, returnMsg)
doSendMagicEffect(getThingPos(cid), EFFECT_AO_PUXAR_ALAVANCA_PARA_O_LADO_CERTO)
end
for _, wPos in pairs (wallPositions) do
local wall = getTileItemById(wPos, wallId).uid
if openPath and wall > 1 then doRemoveItem(wall) doSendMagicEffect(wPos, EFFECT_AO_REMOVER_PAREDE)
elseif not openPath and wall <= 1 then doCreateItem(wallId, 1, wPos) doSendMagicEffect(wPos, EFFECT_AO_CRIAR_PAREDE)
end
end
return true
end
Editado Setembro 11 por brun123
info
Grupo: Cavaleiro
Registrado: 02/07/08
Posts: 156
Reputação: +4
presiso de um script asim que puxe 7 alavancas em banuta para abrir uma parede se alguem puder me ajuda
agradeço desde ja !
Editado Setembro 10 por Dersinho