Ir para conteúdo
Entre para seguir isso  
Pedroddcunha

Como crio quests?

Recommended Posts

Pedroddcunha    3
Pedroddcunha

Dúvida: Como criar quests?

 

 

Bom, nos servidores mais atuais, basta você colocar o ID do item no uniqueID nas propriedades do baú <ver imagens abaixo.

  • Para OTMapEditor:

    9ka5vm.jpg
    1zwkevn.jpg


  • Para Remere's Map Editor:

    x5nv2c.jpg
    autf9h.jpg


 

Bom, esta é uma forma bem simples de fazer.

 

Se quiser uma quest mais elaborada, você terá que criar um script .lua, colocá-lo na pasta data\actions\scripts e adicionar a tag de configuração da quest no arquivo actions.xml.

 

Vamos a um exemplo:

function onUse(cid, item, frompos, item2, topos)
if item.uid == UNIQUE_ID then
	queststatus = getPlayerStorageValue(cid,STORAGE)
	if queststatus == -1 or queststatus == 0 then
		doPlayerSendTextMessage(cid,22,"MENSAGEM.")
		doPlayerAddItem(cid,ID_ITEM,QUANTIDADE)
		setPlayerStorageValue(cid,STORAGE,1)
	else
		doPlayerSendTextMessage(cid,22,"It is empty.")
	end
else
	return 0
end
return 1
end

Bom, explicando:

  • UNIQUE_ID »» Aqui é o uniqueID que será colocado no baú.

    Ps:
    Lembre-se de checar se não existe outro uniqueID igual no servidor.


  • STORAGE »» Aqui é onde irá o storage (o valor referente à quest que será armazenado no player).

    Ps:
    Lembre-se, aqui também, de checar se não existe outro storage sendo usado em algum script.


  • MENSAGEM »» Aqui será configurada a mensagem que aparecerá quando o player ganhar o item.
  • ID_ITEM »» Aqui será o ID do item que o player ganhará.
  • QUANTIDADE »» Aqui será configurada a quantidade do item que será dada (usada apenas para itens contáveis).
  • It is empty »» Mensagem padrão que diz que o usuário já fez a quest, ela pode ser modificada.

 

________________________________

Dúvida: Tá, e se eu quiser adicionar mais de um item para uma mesma quest?

Simples, basta copiar a linha
doPlayerAddItem(cid,ID_ITEM,QUANTIDADE)
colar embaixo e arrumar a gosto

Exemplo:

início do script
	if queststatus == -1 or queststatus == 0 then
		doPlayerSendTextMessage(cid,22,"MENSAGEM.")
		doPlayerAddItem(cid,ID_ITEM,QUANTIDADE)
		doPlayerAddItem(cid,ID_ITEM2,QUANTIDADE2)
		doPlayerAddItem(cid,ID_ITEM3,QUANTIDADE3)
		doPlayerAddItem(cid,ID_ITEM4,QUANTIDADE4)
		setPlayerStorageValue(cid,STORAGE,1)
	else
fim do script

 

________________________________

Dúvida: Tá, e se agora eu quiser colocar como prêmio um container e, dentro dele, outro item?

Nesse caso, você deve adicionar esta linha:

container = doPlayerAddItem(cid, ID_CONTAINER, 1)

E você deve modificar a tag que adicionar a linha, modificando-a para:

doContainerAddItem(container, ID_ITEM, QUANTIDADE)

Exemplo:

início do script
	if queststatus == -1 or queststatus == 0 then
		doPlayerSendTextMessage(cid,22,"MENSAGEM.")
		container = doPlayerAddItem(cid, ID_CONTAINER, 1)
		doContainerAddItem(container, ID_ITEM, QUANTIDADE)
		setPlayerStorageValue(cid,STORAGE,1)
	else
fim do script

Ps:
Aqui vale o mesmo esquema se quiser mais de um item só que, neste caso, dentro de um container.

Ps²:
Você pode mudar a variável
container
, mas lembre-se que ela deve ser a mesma dentro da função
doContainerAddItem
.

 

________________________________

 

Bom, espero que isso ajude.

Se tiver mais dúvidas, procure tutoriais e leia-os na seção Scripting > Tutoriais.

E se tiveres dúvida, não hesite em postar no Suporte - Dúvidas, Bugs, Erros.

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

×