QUEST COM QUEBRA-CABEÇA COMPOSTO
:INTRO:
Esse quebra-cabeça foi maldosamente invetado por mim, com a intenção de deixar os players com um ataque de nervos. O problema foi que ele acabou se tornando um dos mais legais mini-games do meu ot... o povo ia lá só pra jogar, eles faziam disputa de tempo, ficaram totalmente viciados. Ele foi originalmente desenvolvido para uma quest, e assim será postado aqui. Ao final do tópico, darei instruções para quem quiser usa-lo como mini-game. O objetivo do player é fazer com que os quadrados de uma sala à esquerda fiquem igual ao modelo na sala da esquerda usando apenas algumas alavancas. Após completo o desafio, o player poderá passar por uma porta que antes não conseguia passar.
:COMO FUNCIONA:
Ele é formado por 34 alavancas, sendo 16 alavancas que clonam o quadrado que está acima, pré dispostas em uma ordem maldosamente trocada, 16 alavancas que clonam o quadrado que está a direita, postos em ordem correta, 1 alavanca de reset, 1 alavanca de vitória.
Requesitos
Apenas um editor de mapas e um server.
:LEMBRETE:
Não é exatamente uma quest inteira, depende da sua criatividade para fazer o quebra-cabeça apenas como uma parte de outra quest. Além disso, esse pode ser usado como mini-game.
EU ACONSELHO PARA QUEM NÃO CONSEGUE ENTENDER A ACTION, MECHER APENAS NAS POSIÇÕES DOS QUADRADINHOS E SEGUIR OS IDS DAS ALAVANCAS E DOS ITEMS A RISCA.
COMEÇANDO
1- Faça uma área QUASE IGUAL com essa: (exeto as alavancas 35, 36 e 37)
2- Agora coloque os seguintes unique ids nas alavancas: LEGENDA: (Número da alavanca-UniqueId)
1-80702-8071
3-8072
4-8073
5-8074
6-8075
7-8076
8-8077
9-8078
10-8079
11-8080
12-8081
13-8082
14-8083
15-8084
16-8085
17-8086
18-8087
19-8088
20-8089
21-8090
22-8091
23-8092
24-8093
25-8094
26-8095
27-8096
28-8097
29-8098
30-8099
31-8100
32-8101
33-8102
34-8103
3- Agora crie outra área, essa porém, vai ser a sala da quest ou uma sala com um teleport, enfim, com o que for fazer da quest. A única exigência, é que a sala só pode ter uma entrada: UMA LEVEL DOOR. (Não coloque ids na door ainda.)
4- Agora pegue as coordenadas de todos aqueles 16 quadrados da sala da direita (Do quebra-cabeça).
5- Copie um arquivo da pasta data/actions/scripts do seu server e cole em qualquer lugar.
6- Apague TODO seu conteúdo e cole isso:
function onUse(cid, item, frompos, item2, topos)
item1pos = {x=719, y=1226, z=7, stackpos=255}
item2pos = {x=720, y=1226, z=7, stackpos=255}
item3pos = {x=721, y=1226, z=7, stackpos=255}
item4pos = {x=722, y=1226, z=7, stackpos=255}
item5pos = {x=719, y=1227, z=7, stackpos=255}
item6pos = {x=720, y=1227, z=7, stackpos=255}
item7pos = {x=721, y=1227, z=7, stackpos=255}
item8pos = {x=722, y=1227, z=7, stackpos=255}
item9pos = {x=719, y=1228, z=7, stackpos=255}
item10pos = {x=720, y=1228, z=7, stackpos=255}
item11pos = {x=721, y=1228, z=7, stackpos=255}
item12pos = {x=722, y=1228, z=7, stackpos=255}
item13pos = {x=719, y=1229, z=7, stackpos=255}
item14pos = {x=720, y=1229, z=7, stackpos=255}
item15pos = {x=721, y=1229, z=7, stackpos=255}
item16pos = {x=722, y=1229, z=7, stackpos=255}
item1 = getThingfromPos(item1pos)
item2 = getThingfromPos(item2pos)
item3 = getThingfromPos(item3pos)
item4 = getThingfromPos(item4pos)
item5 = getThingfromPos(item5pos)
item6 = getThingfromPos(item6pos)
item7 = getThingfromPos(item7pos)
item8 = getThingfromPos(item8pos)
item9 = getThingfromPos(item9pos)
item10 = getThingfromPos(item10pos)
item11 = getThingfromPos(item11pos)
item12 = getThingfromPos(item12pos)
item13 = getThingfromPos(item13pos)
item14 = getThingfromPos(item14pos)
item15 = getThingfromPos(item15pos)
item16 = getThingfromPos(item16pos)
if item.uid == 8070 and item.itemid == 1945 then
doRemoveItem(item1.uid,1)
doSendMagicEffect(item13pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8070 and item.itemid == 1946 then
doCreateItem(item13.itemid,1,item1pos)
doSendMagicEffect(item1pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8071 and item.itemid == 1945 then
doRemoveItem(item13.uid,1)
doSendMagicEffect(item9pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8071 and item.itemid == 1946 then
doCreateItem(item9.itemid,1,item13pos)
doSendMagicEffect(item13pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8072 and item.itemid == 1945 then
doRemoveItem(item9.uid,1)
doSendMagicEffect(item5pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8072 and item.itemid == 1946 then
doCreateItem(item5.itemid,1,item9pos)
doSendMagicEffect(item9pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8073 and item.itemid == 1945 then
doRemoveItem(item5.uid,1)
doSendMagicEffect(item1pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8073 and item.itemid == 1946 then
doCreateItem(item1.itemid,1,item5pos)
doSendMagicEffect(item5pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8074 and item.itemid == 1945 then
doRemoveItem(item2.uid,1)
doSendMagicEffect(item14pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8074 and item.itemid == 1946 then
doCreateItem(item14.itemid,1,item2pos)
doSendMagicEffect(item2pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8075 and item.itemid == 1945 then
doRemoveItem(item14.uid,1)
doSendMagicEffect(item10pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8075 and item.itemid == 1946 then
doCreateItem(item10.itemid,1,item14pos)
doSendMagicEffect(item14pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8076 and item.itemid == 1945 then
doRemoveItem(item10.uid,1)
doSendMagicEffect(item6pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8076 and item.itemid == 1946 then
doCreateItem(item6.itemid,1,item10pos)
doSendMagicEffect(item10pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8077 and item.itemid == 1945 then
doRemoveItem(item6.uid,1)
doSendMagicEffect(item2pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8077 and item.itemid == 1946 then
doCreateItem(item2.itemid,1,item6pos)
doSendMagicEffect(item6pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8078 and item.itemid == 1945 then
doRemoveItem(item3.uid,1)
doSendMagicEffect(item15pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8078 and item.itemid == 1946 then
doCreateItem(item15.itemid,1,item3pos)
doSendMagicEffect(item3pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8079 and item.itemid == 1945 then
doRemoveItem(item15.uid,1)
doSendMagicEffect(item11pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8079 and item.itemid == 1946 then
doCreateItem(item11.itemid,1,item15pos)
doSendMagicEffect(item15pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8080 and item.itemid == 1945 then
doRemoveItem(item11.uid,1)
doSendMagicEffect(item7pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8080 and item.itemid == 1946 then
doCreateItem(item7.itemid,1,item11pos)
doSendMagicEffect(item11pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8081 and item.itemid == 1945 then
doRemoveItem(item7.uid,1)
doSendMagicEffect(item3pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8081 and item.itemid == 1946 then
doCreateItem(item3.itemid,1,item7pos)
doSendMagicEffect(item7pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8082 and item.itemid == 1945 then
doRemoveItem(item4.uid,1)
doSendMagicEffect(item16pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8082 and item.itemid == 1946 then
doCreateItem(item16.itemid,1,item4pos)
doSendMagicEffect(item4pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8083 and item.itemid == 1945 then
doRemoveItem(item16.uid,1)
doSendMagicEffect(item12pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8083 and item.itemid == 1946 then
doCreateItem(item12.itemid,1,item16pos)
doSendMagicEffect(item16pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8084 and item.itemid == 1945 then
doRemoveItem(item12.uid,1)
doSendMagicEffect(item8pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8084 and item.itemid == 1946 then
doCreateItem(item8.itemid,1,item12pos)
doSendMagicEffect(item12pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8085 and item.itemid == 1945 then
doRemoveItem(item8.uid,1)
doSendMagicEffect(item4pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8085 and item.itemid == 1946 then
doCreateItem(item4.itemid,1,item8pos)
doSendMagicEffect(item8pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8086 and item.itemid == 1945 then
doRemoveItem(item1.uid,1)
doSendMagicEffect(item4pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8086 and item.itemid == 1946 then
doCreateItem(item4.itemid,1,item1pos)
doSendMagicEffect(item1pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8087 and item.itemid == 1945 then
doRemoveItem(item5.uid,1)
doSendMagicEffect(item8pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8087 and item.itemid == 1946 then
doCreateItem(item8.itemid,1,item5pos)
doSendMagicEffect(item5pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8088 and item.itemid == 1945 then
doRemoveItem(item9.uid,1)
doSendMagicEffect(item12pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8088 and item.itemid == 1946 then
doCreateItem(item12.itemid,1,item9pos)
doSendMagicEffect(item9pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8089 and item.itemid == 1945 then
doRemoveItem(item13.uid,1)
doSendMagicEffect(item16pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8089 and item.itemid == 1946 then
doCreateItem(item16.itemid,1,item13pos)
doSendMagicEffect(item13pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8090 and item.itemid == 1945 then
doRemoveItem(item2.uid,1)
doSendMagicEffect(item1pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8090 and item.itemid == 1946 then
doCreateItem(item1.itemid,1,item2pos)
doSendMagicEffect(item2pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8091 and item.itemid == 1945 then
doRemoveItem(item6.uid,1)
doSendMagicEffect(item5pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8091 and item.itemid == 1946 then
doCreateItem(item5.itemid,1,item6pos)
doSendMagicEffect(item6pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8092 and item.itemid == 1945 then
doRemoveItem(item10.uid,1)
doSendMagicEffect(item9pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8092 and item.itemid == 1946 then
doCreateItem(item9.itemid,1,item10pos)
doSendMagicEffect(item10pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8093 and item.itemid == 1945 then
doRemoveItem(item14.uid,1)
doSendMagicEffect(item13pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8093 and item.itemid == 1946 then
doCreateItem(item13.itemid,1,item14pos)
doSendMagicEffect(item14pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8094 and item.itemid == 1945 then
doRemoveItem(item3.uid,1)
doSendMagicEffect(item2pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8094 and item.itemid == 1946 then
doCreateItem(item2.itemid,1,item3pos)
doSendMagicEffect(item3pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8095 and item.itemid == 1945 then
doRemoveItem(item7.uid,1)
doSendMagicEffect(item6pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8095 and item.itemid == 1946 then
doCreateItem(item6.itemid,1,item7pos)
doSendMagicEffect(item7pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8096 and item.itemid == 1945 then
doRemoveItem(item11.uid,1)
doSendMagicEffect(item10pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8096 and item.itemid == 1946 then
doCreateItem(item10.itemid,1,item11pos)
doSendMagicEffect(item11pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8097 and item.itemid == 1945 then
doRemoveItem(item15.uid,1)
doSendMagicEffect(item14pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8097 and item.itemid == 1946 then
doCreateItem(item14.itemid,1,item15pos)
doSendMagicEffect(item15pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8098 and item.itemid == 1945 then
doRemoveItem(item4.uid,1)
doSendMagicEffect(item3pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8098 and item.itemid == 1946 then
doCreateItem(item3.itemid,1,item4pos)
doSendMagicEffect(item4pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8099 and item.itemid == 1945 then
doRemoveItem(item8.uid,1)
doSendMagicEffect(item7pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8099 and item.itemid == 1946 then
doCreateItem(item7.itemid,1,item8pos)
doSendMagicEffect(item8pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8100 and item.itemid == 1945 then
doRemoveItem(item12.uid,1)
doSendMagicEffect(item11pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8100 and item.itemid == 1946 then
doCreateItem(item11.itemid,1,item12pos)
doSendMagicEffect(item12pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8101 and item.itemid == 1945 then
doRemoveItem(item16.uid,1)
doSendMagicEffect(item15pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8101 and item.itemid == 1946 then
doCreateItem(item15.itemid,1,item16pos)
doSendMagicEffect(item16pos, 10)
doTransformItem(item.uid,item.itemid-1)
elseif item.uid == 8102 and item.itemid == 1945 then
doRemoveItem(item1.uid,1)
doRemoveItem(item2.uid,1)
doRemoveItem(item3.uid,1)
doRemoveItem(item4.uid,1)
doRemoveItem(item5.uid,1)
doRemoveItem(item6.uid,1)
doRemoveItem(item7.uid,1)
doRemoveItem(item8.uid,1)
doRemoveItem(item9.uid,1)
doRemoveItem(item10.uid,1)
doRemoveItem(item11.uid,1)
doRemoveItem(item12.uid,1)
doRemoveItem(item13.uid,1)
doRemoveItem(item14.uid,1)
doRemoveItem(item15.uid,1)
doRemoveItem(item16.uid,1)
doSendMagicEffect(item1pos, 12)
doSendMagicEffect(item2pos, 12)
doSendMagicEffect(item3pos, 12)
doSendMagicEffect(item4pos, 12)
doSendMagicEffect(item5pos, 12)
doSendMagicEffect(item6pos, 12)
doSendMagicEffect(item7pos, 12)
doSendMagicEffect(item8pos, 12)
doSendMagicEffect(item9pos, 12)
doSendMagicEffect(item10pos, 12)
doSendMagicEffect(item11pos, 12)
doSendMagicEffect(item12pos, 12)
doSendMagicEffect(item13pos, 12)
doSendMagicEffect(item14pos, 12)
doSendMagicEffect(item15pos, 12)
doSendMagicEffect(item16pos, 12)
doTransformItem(item.uid,item.itemid+1)
elseif item.uid == 8102 and item.itemid == 1946 then
doCreateItem(1689,1,item1pos)
doCreateItem(2145,1,item2pos)
doCreateItem(2145,1,item3pos)
doCreateItem(1686,1,item4pos)
doCreateItem(2145,1,item5pos)
doCreateItem(2145,1,item6pos)
doCreateItem(2145,1,item7pos)
doCreateItem(2145,1,item8pos)
doCreateItem(2145,1,item9pos)
doCreateItem(2145,1,item10pos)
doCreateItem(2145,1,item11pos)
doCreateItem(2145,1,item12pos)
doCreateItem(1687,1,item13pos)
doCreateItem(2145,1,item14pos)
doCreateItem(2145,1,item15pos)
doCreateItem(1688,1,item16pos)
doSendMagicEffect(item1pos, 10)
doSendMagicEffect(item2pos, 10)
doSendMagicEffect(item3pos, 10)
doSendMagicEffect(item4pos, 10)
doSendMagicEffect(item5pos, 10)
doSendMagicEffect(item6pos, 10)
doSendMagicEffect(item7pos, 10)
doSendMagicEffect(item8pos, 10)
doSendMagicEffect(item9pos, 10)
doSendMagicEffect(item10pos, 10)
doSendMagicEffect(item11pos, 10)
doSendMagicEffect(item12pos, 10)
doSendMagicEffect(item13pos, 10)
doSendMagicEffect(item14pos, 10)
doSendMagicEffect(item15pos, 10)
doSendMagicEffect(item16pos, 10)
doTransformItem(item.uid,item.itemid-1)
end
end
7- Em Marrom, você deve por as coordenadas dos quadrados. (Passo 4) LEGENDA: (itemXpos-quadrado)
item1pos-1item2pos-2...
8- Salve, Feche-o, e renomeie o documento para testlever
9- Agora lembra aquela level door que eu mencionei no passo número 3? Chegou a hora de dar um UNIQUE ID para ela.
10- Agora copie um arquivo da pasta data/actions/scripts do seu server e cole em qualquer lugar.
11- Apague TODO seu conteúdo e cole isso:
function onUse(cid, item, frompos, item2, topos)
if item.uid == 8104 then
status = getPlayerStorageValue(cid,8103)
if status == 1 then
pos = getPlayerPosition(cid)
if pos.x == topos.x then
if pos.y < topos.y then
pos.y = topos.y + 1
else
pos.y = topos.y - 1
end
elseif pos.y == topos.y then
if pos.x < topos.x then
pos.x = topos.x + 1
else
pos.x = topos.x - 1
end
else
doPlayerSendTextMessage(cid,22,'Stand in front of the door.')
return 1
end
doTeleportThing(cid,pos)
doSendMagicEffect(topos,12)
else
doPlayerSendTextMessage(cid,22,'You need to have completed the challenge first.')
end
return 1
else
return 0
end
end
Em Laranja, o Unique Id da porta.
Em Rosa, o unique id da alavanca de vitória (34).
12- Salve, Feche-o, e renomeie o documento para wldoor2
13- Agora copie novamente um arquivo da pasta data/actions/scripts do seu server e cole em qualquer lugar.
14- Apague TODO seu conteúdo e cole isso: (As coordesadas devem ser as mesmas que você colocou na action do passo 6)
Malz aew gente, continua no próximo post \/