Ir para conteúdo
  • 0

7 Alavancas Alguem Me Ajuda?


Dersinho

Pergunta

11 respostass a esta questão

Posts Recomendados

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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 por Newtonnotwen
Link para o comentário
Compartilhar em outros sites

  • 0

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 =/

Link para o comentário
Compartilhar em outros sites

  • 0

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

 

Faça tipo assim:

 

aqui1.png

 

Coloque os itens em cima dos altares:

 

aqui2q.png

 

Puxe a alavanca e seja teleportado para o outro lado:

 

aqui3a.png

 

 

Por fim ponha um teleporte para voltar.

 

Script (by vodkart, explicação e tutorial by Newtonnotwen):

 

function getItemsInPos(items, pos) -- function by vodka

for 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

Link para o comentário
Compartilhar em outros sites

  • 0

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 por brun123
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...