Ir para conteúdo
Entre para seguir isso  
[ B a l i l l o ]

Easy Quest System [como usar]

Recommended Posts

[ B a l i l l o ]    0
[ B a l i l l o ]

Atenção: antes de tudo, vc precisa ir a este topic [http://forums.otserv.com.br/showthread.php?t=27836] para adicionar a nova função.

 

 

Introdução

 

Aqui vou ensinar passo a passo de como utilizar a minha nova função para quests.

 

Iniciando

 

Se vc deseja criar uma quest que faça parte de outro script, siga o tutorial abaixo:

1º Crie um arquivo que tenha extensão .lua em data/actions/scripts (mais facil: copie um arquivo qualquer .lua e delete tudo que tem dentro e adicione o que está abaixo).

 

function onUse(cid, item, frompos, item2, topos)
if item.uid == [color=red][b]1974[/b][/color] then
setPlayerQuest([color=blue][b]cid[/b][/color], [b][color=darkorchid]1974[/color][/b], [color=darkorange][b]2400[/b][/color], [color=magenta][b]1[/b][/color])
end
[color=seagreen][b]return TRUE[/b][/color]
end

 

Em vermelho é a uniqueID do bau ou item da quest. Para adicionar uniqueID ao item, basta abrir seu map em qualquer MapEditor e clicar com botão direito no item e ir em Propriedades, no campo uniqueid vc adiciona o valor do uniqueid, lembrando que tem que ser acima de 1000 e esse valor não é sera mais utilizado em nenhum outro item, logo isso explica o nome 'unique'id.

 

Em azul é quem vai ganhar a quest (porque ganha o storagevalue e o item), vc pode tbm citar uma posição e colocar uma alavanca com a tag e ao invés de cid (que seria o proprio player) vai ser qm estava na posição citada, exemplo:

 

 
function onUse(cid, item, frompos, item2, topos)
playerQuest = {x=100, y=100, z=100, stackpos=253} -- aqui é a position que o player deve estar para ganhar o item da quest.
player = getThingfromPos(playerQuest)
if item.uid == 1974 then
setPlayerQuest(player.uid, 1974, 2400, 1)
end
return TRUE
end

 

Em roxo é o storagevalue que o player vai receber ao clicar no bau, isso serve para que o player não faça a quest novamente. Aproveitando o comentario sobre storagevalue, vou dar um exemplo de como fazer uma quest do tipo 'Anihilator' (que so pode catar um item) utilizando essas tags. Exemplo:

 

 
function onUse(cid, item, frompos, item2, topos)
if item.uid == 1974 then
setPlayerQuest(cid, 1974, 2400, 1)
elseif item.uid == 1975
setPlayerQuest(cid, 1974, 2326, 1)
elseif item.uid == 1976
setPlayerQuest(cid, 1974, 2431, 1)
elseif item.uid == 1977
setPlayerQuest(cid, 1974, 2494, 1)
end
return TRUE
end

 

Como vcs podem ver, a unica coisa que muda ai é o item.uid dos baus e o valor que está em laranja na nossa explicação, que no caso é o ID do item que o player vai ganhar.

Para quem não intendeu, a anihilator consta 4 baus que tem diferentes uniqueID's, mas quando cata o item, o player recebe o mesmo storagevalue que ta nos demais baus, no caso, todas as tags tem o storagevalue 1974, impedindo que o player cate os outros itens. Simples não? Um codigo normal de anihilator daria umas 60 linhas ou mais, neste tem 11 isso que eu contei com o function/end e etc... sem contar tbm que é de facil entendimento.

 

Em rosa a é a quantidade do item que esta em laranja que o player vai ganhar, no caso a tag fala [2400, 1] logicamente é uma magic sword.

 

No verde escuro é apenas para não deixar que o bau seja aberto, como se fosse apenas para quest.

 

Bom, isso foi explicado para quests que vc queira fazer em outro script, mas vamos supor que seu OTServer tem aquele script padrão que chama quests.lua ou chest.lua, bem, dps que vc adicionar a nova função, basta adicionar o seguinde código dentro do seu script padrão:

 

 
if item.uid == [uNIQUE ID] then
setPlayerQuest(quemganha, storagevalue, itemid, quantidade)

 

Mas atenção! Se o seu script padrão ja tem todas as quests configuradas e etc, vc tem que por "elseif item.uid == [uNIQUE ID] then" abaixo da ultima quest, para seguir a lógica.

 

 

 

Nota: tudo que foi posto entre conchetes ([]) é para dar exemplo do que é para ser posto, mas sem os conchetes.

Nota: se seu server possui aquele sistema que a quest é configurada pelo MapEdito, dentro do topic que está no começo do forum fala de um bom motivo de não usar o que esta no MapEditor e sim usar este sistema.

 

 

 

Bom é isso galera, espero ter ajudado.

Qualquer dúvida é so postar!

 

Grato,

[ B a l i l l o ]

:bye:

Compartilhar este post


Link para o post
ElfKiller    36
ElfKiller

Se eu aprovei o outro, preciso aprovar este, nao é? ^^

 

Aprovado.

Compartilhar este post


Link para o post
NooS    0
NooS

Super rox :D

vlws

Compartilhar este post


Link para o post
Nickws    0
Nickws

Bem explicado,usou exemplos bacanas como da Anihilator

Muito bom ^^

Compartilhar este post


Link para o post
Macô̲oii    0
Macô̲oii

Lekke legalsão .. no mapa zorzin existem umas quests desses estilos :D

Compartilhar este post


Link para o post
grandeyang    0
grandeyang

Aprovado, vou usar o sistema, espero um dia a versão 2.0 podendo fazer o player ganhar bp com alguma coisa dentro por exemplo ^^ tá de parabéns.

Compartilhar este post


Link para o post
[ B a l i l l o ]    0
[ B a l i l l o ]
Aprovado, vou usar o sistema, espero um dia a versão 2.0 podendo fazer o player ganhar bp com alguma coisa dentro por exemplo ^^ tá de parabéns.

 

 

Vou ver se faço nesse mês ainda, ultimamente estou com uns problemas na minha atual equip, mas se caso eu sair dela, vou me dedicar um tempo a scripts :)

 

 

Se algum scripter bom olhar este post, poderia me dizer se tem alguma função para inserir numeros dentro de uma tabela? Grato.

Compartilhar este post


Link para o post
B. Noah    0
B. Noah

Uma pequena duvida me ocorreu: Por exemplo se eu uso mapa pronto que ja vieo com quests eu precios por no script, kd um das quests?

E por exemplo, se eu tenho 2 baus: um esta em area facil e só tem 1 crystal coin e outro eu ponho em area dificl e tem 100, nao tme perigo de dar 100 onde era pra dar osmente 1 er vice-versa?

parece um pouco confuso isso, pelo que eu entendi, a ordem dos itens no script deve ser ocmpativel com a ordem de criação dos baus para nao por item d um bau em outro, não tem como eu especificar no script o x y z do bau para que ao haja este risco?

 

fiquei confuso... e outra pergunta, o mapa q eu uso ja possui quests, se eu utilizar esse sistema buga as outras quests?

 

ty pelo help =)

e parabén spelo topic, mt claro, só fiquie ocm essa duvida mesmo =)

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.

×