Ir para conteúdo
Entre para seguir isso  
wendelshm

[N:Fácil] Quest q precisa de 4 itens

Recommended Posts

wendelshm    0
wendelshm

Ola pessoal :bye: !! Bom, rescentimente postei um tutorial q enssina a fazer uma quest onde o player, se encontrava em frente de uma mesa e do lado, havia uma alavanca, e quando ele colocase um item especifico sobre a mesa e puxase a alavanca ele seria teleportado .

 

 

Com a mesma ideia desta quest eu criei uma outra quest q tem a seguinte função:

 

O player ira se encontra em uma posição especifica (ex.piso q afunda:P) com uma alavanca a sua frente e havera 4 mesas, que quando colocados os itens certos na posição certa ele ira telepor para otro lugar (ex. um lugar q se encontre o bau). E se ele colocar os itens na posição errada e puxar a alavanca ele ira teleporta para otro lugar (ex. templo) e ira aparecer uma menssagem para ele dizendo q ele fracassou ;).

Bom da maneira q eu fiz o player vai ter a oportunidade de tentar realizar a quest so uma vez pq quando ele por os itens na mesa da maneira certa ou errado e acionar a alavanca os itens ira desaparecer. Se por acaso tiver alguem q quer q eu poste de como nao desaparecer os itens ou o player nao ser teleportado quando os itens estiverem na posição errada, avisem, q terei o prazer de postar novo script.

 

 

 

Olhe a foto abaixo e veja como eu fiz :

Tutorial.jpg

 

Deu para entender a ideia (Y) ?

 

 

Veja: os itens "magicos" q eu escolhi para a quest ser executada foram esses "cristais" vamus pegar de exemplos eles para vcs aprenderem.

 

 

 

 

Vamus!!! mãos a obra :

 

 

 

 

1° PASSO

 

Vah em propriedade da sua alavanca, e onde estiver escrito Uniqueid ou Quests ID Ponha 8001 ou um numero q o Actions não esteja usando.(Use 8001 como exemplo)

 

 

 

2° PASSO

 

Va na pasta do seu ot abra a pasta data depois procure a pasta Actions clique com botão direito do mause sobre o arquivo Actions.xml e depois em editar.

 

Agora vamos adicionar o script q o action vai obedecer.

Citação:

<action uniqueid="8001" script="Quest4elements.lua" />

Cole esse comando em qualquer lugar do arquivo

 

O que esta em azul eh o numero que vc decidio q vai usar na alavanca, vamus usar 8001 como exemplo.

 

O que esta de roxo eh o nome do arquivo.lua q vamus usar, usaremos Quest4elements.lua como exemplo

 

Salve e fexe o arquivo

 

OBS : O nome do arquivo .lua nao deve conter espaços c nao o action nao reconhece .

 

 

3° PASSO

 

 

Agora va na pasta scripts copie qualquer arquivo, e modifique o nome do arquivo copiado para Quest4elements (lembrando q c vc for criar um nome diferente para seu script, ele nao deve conter espaços).Agora abra e pague tudo q tiver dentro do arquivo dexando o bloco de notas branquinho^^

 

4° Passo

 

 

Agora cole esse texto :

function onUse(cid, item, frompos, item2, topos)

 

positem1 = {x=99, y=184, z=10, stackpos=2}

magicitem1 = getThingfromPos(positem1)

 

positem2 = {x=102, y=187, z=10, stackpos=2}

magicitem2 = getThingfromPos(positem2)

 

positem3 = {x=99, y=190, z=10, stackpos=2}

magicitem3 = getThingfromPos(positem3)

 

positem4 = {x=96, y=187, z=10, stackpos=2}

magicitem4 = getThingfromPos(positem4)

 

 

if magicitem1.itemid == 2153 and magicitem2.itemid == 2155 and magicitem3.itemid == 2156 and magicitem4.itemid == 2154 then

 

doRemoveItem(magicitem1.uid,1)

doRemoveItem(magicitem2.uid,1)

doRemoveItem(magicitem3.uid,1)

doRemoveItem(magicitem4.uid,1)

 

doSendMagicEffect(positem1,6)

doSendMagicEffect(positem2,6)

doSendMagicEffect(positem3,6)

doSendMagicEffect(positem4,6)

 

 

if item.itemid == 1946 then

 

playerpos = {x=99, y=187, z=10, stackpos=253}

player = getThingfromPos(playerpos)

nplayerpos = {x=125, y=189, z=10}

 

doSendMagicEffect(playerpos,2)

 

doTeleportThing(player.uid, nplayerpos)

 

doSendMagicEffect(nplayerpos,10)

 

doTransformItem(item.uid,1945)

 

doSendAnimatedText(getPlayerPosition(cid), "Consegui!.!.!", TEXTCOLOR_ORANGE)

doPlayerSendTextMessage(cid,22,"Parabens!! Pegue todos os itens.")

 

end

 

if item.itemid == 1945 then

 

playerpos = {x=99, y=187, z=10, stackpos=253}

player = getThingfromPos(playerpos)

nplayerpos = {x=125, y=189, z=10}

 

doSendMagicEffect(playerpos,2)

 

doTeleportThing(player.uid, nplayerpos)

 

doSendMagicEffect(nplayerpos,10)

 

doTransformItem(item.uid,1946)

 

doSendAnimatedText(getPlayerPosition(cid), "Consegui!.!.!", TEXTCOLOR_ORANGE)

doPlayerSendTextMessage(cid,22,"Parabens!! Pegue todos os itens.")

 

end

 

 

 

elseif item.itemid == 1946 then

 

playerpos = {x=99, y=187, z=10, stackpos=253}

player = getThingfromPos(playerpos)

nplayerpos = {x=60, y=155, z=7}

 

doSendMagicEffect(playerpos,2)

 

doTeleportThing(player.uid, nplayerpos)

 

doSendMagicEffect(nplayerpos,10)

 

doTransformItem(item.uid,1945)

 

doRemoveItem(magicitem1.uid,1)

doRemoveItem(magicitem2.uid,1)

doRemoveItem(magicitem3.uid,1)

doRemoveItem(magicitem4.uid,1)

 

doSendMagicEffect(positem1,6)

doSendMagicEffect(positem2,6)

doSendMagicEffect(positem3,6)

doSendMagicEffect(positem4,6)

 

 

doSendAnimatedText(getPlayerPosition(cid), "Falhou!.!.!", TEXTCOLOR_ORANGE)

doPlayerSendTextMessage(cid,22,"Voce falhou!! Deveria ter colocado os itens nos lugares certos.")

 

 

 

elseif item.itemid == 1945 then

 

playerpos = {x=99, y=187, z=10, stackpos=253}

player = getThingfromPos(playerpos)

nplayerpos = {x=60, y=155, z=7}

 

doSendMagicEffect(playerpos,2)

 

doTeleportThing(player.uid, nplayerpos)

 

doSendMagicEffect(nplayerpos,10)

 

doTransformItem(item.uid,1946)

 

doRemoveItem(magicitem1.uid,1)

doRemoveItem(magicitem2.uid,1)

doRemoveItem(magicitem3.uid,1)

doRemoveItem(magicitem4.uid,1)

 

doSendMagicEffect(positem1,6)

doSendMagicEffect(positem2,6)

doSendMagicEffect(positem3,6)

doSendMagicEffect(positem4,6)

 

doSendAnimatedText(getPlayerPosition(cid), "Falhou!.!.!", TEXTCOLOR_ORANGE)

doPlayerSendTextMessage(cid,22,"Voce falhou!! Deveria ter colocado os itens nos lugares certos.")

 

 

 

end

 

return 1

 

end

Explicação :

 

 

Eh a posição da 1° mesa, ou seja o lugar q o 1° item vai ficar

 

Eh a posição da 2° mesa, ou seja o lugar q o 2° item vai ficar

 

Eh a posição da 3° mesa, ou seja o lugar q o 3° item vai ficar

Eh a posição da 4° mesa, ou seja o lugar q o 4° item vai ficar

 

De vermelho são as ids dos 4 itens q vc escolhe para o player colocar na mesa. Ja esta na ordem de acordo com a posição (ex. se vc quer q o item 2154 fique na posição 2 eh so mudar >> magicitem2.itemid == 2154)

 

 

É a posição q o player deve fica quando acionar a alavanca para ser teleportado (piso que afunda).

 

É a posição q o player vai ser teleportado quando ele estiver na posição correta e os itens tbm.

 

 

É a posição q o player vai ser teleportado quando ele estiver na posição correta e os itens estiverem na posição errada.

 

 

 

 

 

 

Bom tem coisas que tbm podem ser mudadas como ((cid,22,"Voce falhou!! Deveria ter colocado os itens nos lugares certos.") ) voce podera mudar essa frase, tipo : ((cid,22,"Seu tonto!!! Voce não eh cavera !! pedi pra sair !! pedi pra sair !! pedi pra sair !!") ) fica a gosto seu a frase :lol:.

O q tem q ser mudado obrigatoriamente ta esplicado a cima de acordo com as cores .

 

Bom pessoal ta ai mais uma questizinha legal o tutorial fico meio grandinho mas vale apena. São essas coisas q diferenciam o seu ot dos otros xD afinal eh impossivel jogar tibia e nao sentir o gostinho do RPG .

 

Abraço a todos .

Agradeço desde ja .

Qualquer duvida pergutem . E se tiver algo q aparenta estar errado pode flar q eu irei editar tranquilo .

 

 

 

haa feliz natal rsrs(Y)

 

 

Compartilhar este post


Link para o post
Johnnie    2
Johnnie

Obrigado pela contribuição.

Movido para Tutoriais sobre Scripting.

Compartilhar este post


Link para o post
plomentes    0
plomentes

já já vou testar mais cara parabéns ta muito loko hávia um parecido com esse no site mais era de um objeto só e sem alavanca =D

Compartilhar este post


Link para o post
Palmares_    0
Palmares_

Legal pela sua iniciativa, é assim que eu aprendi a fazer scripts, copiando os outros fazendo gambiarra xD,

eu refiz seu script agora, eu não testei acho que nao errei nada, aproveia e da uma olhada como eu refiz e olha o que vocÊ errou.

Tinha alguns bugs no seu script, não bug para nao funcionar, mais aparecia erro no console.

 

local POS_PLAYER = {x =99, y =187, z =10} -- pos que o player tem que estar
local POS_PRIZE = {x=125, y=189, z=10} -- POS CASO O PLAYER BOTAR OS ITEM CERTO ELE IRA
local POS_FAILED = {x=60, y=155, z=7} -- POS CASO BOTAR ITEM ERRADO ELE IRA
local POS_ITEM1 = {x=99, y=184, z=10, stackpos=2} -- POS DO ITEM UM
local POS_ITEM2 = {x=102, y=187, z=10, stackpos=2} -- POS DO ITEM DOIS
local POS_ITEM3 = {x=99, y=190, z=10, stackpos=2} -- POS DO ITEM TRES
local POS_ITEM4 = {x=96, y=187, z=10, stackpos=2} -- POS DO ITEM QUATRO
local ITEM1 = 2153    
local ITEM2 = 2155     ---ITEMS conforme a pos, escolha qual item botar
local ITEM3 = 2156
local ITEM4 = 2154


function onUse(cid, item, frompos, item2, topos)

   if (getCreaturePosition(cid).x ~= POS_PLAYER.x and getCreaturePosition(cid).y ~= POS_PLAYER.y) then
       return false
   end

   local magicitem1 = getThingfromPos(POS_ITEM1)
   local magicitem2 = getThingfromPos(POS_ITEM2)
   local magicitem3 = getThingfromPos(POS_ITEM3)
   local magicitem4 = getThingfromPos(POS_ITEM4)

   if (item.itemid == 1945) then
       doTransformItem(item.uid, 1946)
   else
       doTransformItem(item.uid, 1945)
   end    

   if magicitem1.itemid == ITEM1 and magicitem2.itemid == ITEM2 and magicitem3.itemid == ITEM3 and magicitem4.itemid == ITEM4 then

       doRemoveItem(magicitem1.uid, 1)
       doRemoveItem(magicitem2.uid, 1)
       doRemoveItem(magicitem3.uid, 1)
       doRemoveItem(magicitem4.uid, 1)
       ---
       doSendMagicEffect(POS_ITEM1, 6)
       doSendMagicEffect(POS_ITEM2, 6)
       doSendMagicEffect(POS_ITEM3, 6)
       doSendMagicEffect(POS_ITEM4, 6)
       --
       doSendMagicEffect(getCreaturePosition(cid), 2)
       doTeleportThing(cid, POS_PRIZE)
       doSendMagicEffect(POS_PTIZE, 10)
       doPlayerSendTextMessage(cid, 22, "Parabens!! Pegue todos os itens.")    
   else    
       doSendMagicEffect(getCreaturePosition(cid), 2)
       doTeleportThing(cid, POS_FAILED)
       doSendMagicEffect(POS_FAILED, 10)
       doPlayerSendTextMessage(cid, 22, "Voce falhou!! Deveria ter colocado os itens nos lugares certos.")
       doSendMagicEffect(POS_ITEM1, 6)
       doSendMagicEffect(POS_ITEM2, 6)
       doSendMagicEffect(POS_ITEM3, 6)
       doSendMagicEffect(POS_ITEM4, 6)
       if (magicitem1.uid ~= 0 then)
           doRemoveItem(magicitem1.uid, 1)
       end    
       if (magicitem2.uid ~= 0 then)
           doRemoveItem(magicitem2.uid, 1)
       end    
       if (magicitem3.uid ~= 0 then)
           doRemoveItem(magicitem3.uid, 1)
       end    
       if (magicitem4.uid ~= 0 then)
           doRemoveItem(magicitem4.uid, 1)
       end    
   end
end    



Compartilhar este post


Link para o post
wendelshm    0
wendelshm

Boa !!!!! Bem penssado !!! rsrs declarou as variaveis para as posições. boa !!

Mas pelo q eu observei, o script ai, o player vai teleporta sem esta na posição correta, eu achei mais , digamos, interessante quando o plyer assiona a alavanca e nao tiver na posição correta os itens desaparecessem. Mas isso ai fica pelo gosto de cada um neh.

 

 

Valeu ai manu !!!! Gostei da ideia das variaveis de posição.

 

 

Obrigado a todos, pela aprovação !!!

Comentem pliz quero q o esforça vala a pena xD

 

Se houver maiores aprovações eu irei postar um tutorial esplicando o q eu fiz nas funções ou seja esplicar passo-a-passo os comandos utilizados no script.

 

 

Abraçus a todos (Y)

 

 

Compartilhar este post


Link para o post
Palmares_    0
Palmares_
Boa !!!!! Bem penssado !!! rsrs declarou as variaveis para as posições. boa !!

Mas pelo q eu observei, o script ai, o player vai teleporta sem esta na posição correta, eu achei mais , digamos, interessante quando o plyer assiona a alavanca e nao tiver na posição correta os itens desaparecessem. Mas isso ai fica pelo gosto de cada um neh.

 

 

 

Sim eu notei, mais estava todo bugado o seu eskema, se ele n estiver na posição correta nada acontece entao? e se estiver na posição correta se tiver item certo vai pra pos certa ou item errada pos errada...

 

EDIT:

 

PRonto ta editado do seu gosto.

Compartilhar este post


Link para o post
wendelshm    0
wendelshm

Valeu ai manu ^^. So apenas iniciante :errm: ai c da erro num to ligado rsrs por inquanto faço o trem pra funfa ;) . Particulamente vc usa algum programa para editar os script ? ou eh no bloco de notas mesmu ? rsrs

 

 

 

Num sei se posso pergunta isso ai ,mas ja foi se tiver fora das regras me perdoem:bye:

Compartilhar este post


Link para o post
Palmares_    0
Palmares_
Valeu ai manu ^^. So apenas iniciante :errm: ai c da erro num to ligado rsrs por inquanto faço o trem pra funfa ;) . Particulamente vc usa algum programa para editar os script ? ou eh no bloco de notas mesmu ? rsrs

 

 

 

Num sei se posso pergunta isso ai ,mas ja foi se tiver fora das regras me perdoem:bye:

 

Sim eu uso o Notepad++ ele é muito bom para estruturar os scripts, ver certinho para feixar os end's, parenteses etc...

 

http://downloads.sourceforge.net/notepad-plus/npp.4.6.Installer.exe?modtime=1195690518&big_mirror=0

 

No programa:

Não eskeça quando criar um arquivo novo, passa a linguagem para LUA no menu: linguagem la no topo.

Compartilhar este post


Link para o post
wendelshm    0
wendelshm
Sim eu uso o Notepad++ ele é muito bom para estruturar os scripts, ver certinho para feixar os end's, parenteses etc...

 

http://downloads.sourceforge.net/notepad-plus/npp.4.6.Installer.exe?modtime=1195690518&big_mirror=0

 

No programa:

Não eskeça quando criar um arquivo novo, passa a linguagem para LUA no menu: linguagem la no topo.

 

Kra valeu mesmu !!!!!!!!!!!!!!!!!!!!!! pela a força ai !!

Compartilhar este post


Link para o post
joneco    0
joneco

=] tipo eu so iniciante mesmo soh consigo faze script de teleport =P

to tentando aprende grande tutorial vlw

 

baixei esse notpad ^^

Compartilhar este post


Link para o post
ilow    0
ilow

Nossa que lgal... O meu funciona certinho sem erro.

E to com 3 meses de mapper e seria bom para os mapas ter noçoes de script.

Compartilhar este post


Link para o post
Chaos Montefori    0
Chaos Montefori

Muitos gostam de quests assim que qualquer erro acabou xD

0o >.<

Compartilhar este post


Link para o post
dakmor    0
dakmor

eu tentei botar isso no meu ot (DnWalker) mas com o ariquivo do wendelshm ele fazia tudo certo mas não teleportava o player e com o do plamares não acontecia nada

 

 

Se possivel gostaria tb de uma ajuda em faze isso teleportar 4 player juntos =D

 

obrigado desde ja =D

Compartilhar este post


Link para o post
wendelshm    0
wendelshm

Manu verifique direitinho as posições dos itens e a posição q o player deve ficar, talvez na hora q vc foi testar o player nao estava na posição correta, use a alavanca de id :1946

Compartilhar este post


Link para o post
Big Smoke    0
Big Smoke

Olha cara, estou afim de usar esse script no meu projeto "World of Tibia" mais(...)

 

--EDIT--

Não presciza mais, eu consegui apenas addicionei:

 

doPlayerAddItem(cid,2153,1)

doPlayerAddItem(cid,2155,1)

doPlayerAddItem(cid,2156,1)

doPlayerAddItem(cid,2154,1)

Obrigado/Ótimo script!

 

//Big Smoke

Compartilhar este post


Link para o post
lennoncooper    1
lennoncooper

kra mt bom funfa

mais qnd vc puxa a lavanca uma vez

vc vai ir de novo n da pa puxa a lavanca

fik trancada

so volta se reinicia o ot

plz me explica ae

Compartilhar este post


Link para o post
wendelshm    0
wendelshm

manu sua alavanca eh do id 1946 ?

 

Esse script foi feito para obedecer quando se usa o item 1946 ou 1945 se nao for esses itens nao funfa..

 

Se por acaso vc querer mudar a alavanca (ex. querer coloca uma estatua)eh so vc mudar la no script onde tiver 1946 e 1945 coloca o id q vc quiser do objeto.

 

 

Espero ter resppondido a pergunta ..

Ou sulocionado o problema

Compartilhar este post


Link para o post
Reg    0
Reg

Muito Bom mano.. Aumentei uma quest aqui no meu server com esse Script..

Ótimo.. =D

 

Muito Bem explicado

:D

 

PS: O do palmares n funfo ;x

 

 

Aprovado.

Compartilhar este post


Link para o post
Carlos Pereira    0
Carlos Pereira

Muito boa sua iniciativa cara, parabéns, até!

Compartilhar este post


Link para o post
Darkness    0
Darkness

muito bom cara

obrigado por compartilhar kra :}

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×