Ir para conteúdo

[ Reprovado ]


XJhoow

Posts Recomendados

Olá XTibianos,



Como criar quest simples!

Só uma quest que clica no baú e ele te dá um item, e diz uma mensagem. A história e o local tudo depende da sua criatividade!

O que tem de gente no msn pedindo pra mim como faz quest é uma loucura, então resolvi criar um tutorial, já pra minha lista de tutoriais!

 

1. Crie uma pasta chamada quests em: data/actions/scripts

2. Crie um arquivo.lua com o nome da quest dentro da pasta quests

3. Bote o seguinte dentro do arquivo:

 

Exemplo:

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

 

if item.uid == 2415 then

queststatus = getPlayerStorageValue(cid,2415)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found a One Rare Axe Dark Axe.")

doPlayerAddItem(cid,7434,1)

setPlayerStorageValue(cid,7434,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

else

return 0

end

 

return 1

end

 

Explicando:

2415= Esse é o Unique id, mas além vou explicar como vamos usa-los.

2415= Esse é por exemplo, em uma quest que tem 3 itens, só pode escolher um dai você bota isto pra se escolheu o 2415, não pode escolher o 2416.

You have found a One Rare Axe Dark Axe = Essa é a mensagem que você dará ao player quando receber o item.

7434 = Esse é o Id do item que o player receberá

1 = Essa é a quantidade do item que o player receberá

It is empty = Essa é a mensagem caso o player já tenha feito a quest

 

Pronto, agora você vai no map editor:

 

1. Bote um baú onde você quiser

2. Clique botão direito e proprieties

3. No Unique id bote o Unique id que você botou na quest (Nosso exemplo 2415)

4. De um OK, e salve o mapa. Pronto sua quest foi criada!

5. Vá em : data/actions/actions.xml e adicione o seguinte:

 

<action uniqueid="2415" script="quests/nome_da_sua_quest.lua" />

 

6. Onde está 2415 bote o unique id que você botou na sua quest.

 

Espero ter ajudado, se ajudei agradeça por favor, se faltou algo avise que eu edito!

Obrigado, XJhoow

Editado por XJhoow
Link para o comentário
Compartilhar em outros sites

Amigo, seu tópico tem uns erros de português,e aqui ó:

. Crie uma pasta chamada quests em: data/actions/scripts

2. Crie um arquivo.lua com o nome da quest dentro da pasta quest

Você diz para criar uma pasta chamada Quests, e dai depois você fala para criar um arquivo.lua com o nome da quest dentro da pasta quest.

Link para o comentário
Compartilhar em outros sites

Cara segui seu tutorial perfeitamente para ver se havia bugs e tem 1:

Voce usa o chest e abre um normal que nao pega item nenhum.

Como resolver:

Voce bota para add item id dentro da chest e o unique id

edite seu tutorial para nao haver duvidas e erros

Link para o comentário
Compartilhar em outros sites

Como vc quer um tuto seu aprovado?

conteudos faltando, pro português eu nem ligo

mas deiche tudo funcionando

e além de que o conteudo de todos os seus posts ja tem no forum

Editado por Castiello
Link para o comentário
Compartilhar em outros sites

{A}chei algumas coisas desnecessárias...

 

1º -

if item.uid == 2415 then

 

{S}e vc vai por o action ou uniqueid no item, não precisa verificar né... o próprio actions.xml ja faz a verificação direta...

 

 

 

2º - {V}ocê repetiu muito o uniqueid(2415) e o id do item(7434), poderia por uma variável para receber estes valores para não pracisar mudar todos 9595 quando mudar a uid... assim só precisaria mudar na variável

 

 

 

3º - {E}ssa parte de roxo pode ser substituída... imagine que ao pegar a id vc tem de olhar toda hora o nome do item para colocar no nome... fica chato apra alguns...

 

 

 

4º - {O} que você pos para colocar no actions.xml está errado, o correto seria:

 

<action actionid="2415" event="script" value="quest.lua"/>

 

 

 

 

{C}omo eu faria o script:

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

a = 2415

id = 7434

 

if getPlayerStorageValue(cid, a) < 1 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a "..getItemNameById(id)..".")

doPlayerAddItem(cid, id, 1)

doPlayerSetStorageValue(cid, a, 1)

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.")

end

 

return TRUE

end

 

 

 

AZUL = id do item

VERMELHO = storage usada

 

 

 

Acho desse meu jeito mais simples pois não teria que ir mudando todos 9595 nem olhar nome do item que ganha na quest.

Link para o comentário
Compartilhar em outros sites

{A}chei algumas coisas desnecessárias...

 

1º -

 

{S}e vc vai por o action ou uniqueid no item, não precisa verificar né... o próprio actions.xml ja faz a verificação direta...

 

 

 

2º - {V}ocê repetiu muito o uniqueid(2415) e o id do item(7434), poderia por uma variável para receber estes valores para não pracisar mudar todos 9595 quando mudar a uid... assim só precisaria mudar na variável

 

 

 

3º - {E}ssa parte de roxo pode ser substituída... imagine que ao pegar a id vc tem de olhar toda hora o nome do item para colocar no nome... fica chato apra alguns...

 

 

 

4º - {O} que você pos para colocar no actions.xml está errado, o correto seria:

 

 

 

 

 

 

{C}omo eu faria o script:

 

 

 

 

 

 

AZUL = id do item

VERMELHO = storage usada

 

 

 

Acho desse meu jeito mais simples pois não teria que ir mudando todos 9595 nem olhar nome do item que ganha na quest.

 

if item.uid == 2415 then

o que você acha desnecessario pode sim ser muito util pra em apenas um script criar varias quests consecultivas.

 

{V}ocê repetiu muito o uniqueid(2415) e o id do item(7434), poderia por uma variável para receber estes valores para não pracisar mudar todos 9595 quando mudar a uid... assim só precisaria mudar na variável

isso não é uid são meros numeros e como você pode ver no script existe varias funções especificas que pode ou não requerir o uso de tal numero.

 

<action actionid="2415" event="script" value="quest.lua"/>

a tag.xml está correta já que isso depende da versão utilizada pelo servidor.

 

ja no seu script seria muito mais util usar variáveis locais do que globais dentro do escopo.

Link para o comentário
Compartilhar em outros sites

if item.uid == 2415 then

o que você acha desnecessario pode sim ser muito util pra em apenas um script criar varias quests consecultivas.

 

{V}ocê repetiu muito o uniqueid(2415) e o id do item(7434), poderia por uma variável para receber estes valores para não pracisar mudar todos 9595 quando mudar a uid... assim só precisaria mudar na variável

isso não é uid são meros numeros e como você pode ver no script existe varias funções especificas que pode ou não requerir o uso de tal numero.

 

<action actionid="2415" event="script" value="quest.lua"/>

a tag.xml está correta já que isso depende da versão utilizada pelo servidor.

 

ja no seu script seria muito mais util usar variáveis locais do que globais dentro do escopo.

 

o que você acha desnecessario pode sim ser muito util pra em apenas um script criar varias quests consecultivas.

Mas é inútil se botar a uid do .xml pois ali já é feita a verificação... agora se fosse um actionid seria diferente.

 

 

isso não é uid são meros numeros e como você pode ver no script existe varias funções especificas que pode ou não requerir o uso de tal numero.

Quando eu falei uniqueid me referi ao número dela. Como ele atribuiu o mesmo número em várias partes do script achei melhor colocar em uma variável só...

 

 

ja no seu script seria muito mais util usar variáveis locais do que globais dentro do escopo.

Sim, verdade... é que eu fiz na pressa aquilo xD

 

 

a tag.xml está correta já que isso depende da versão utilizada pelo servidor.

Sim... é que como ele não colocou a versão imaginei que fosse a mais recente(8.54).

Link para o comentário
Compartilhar em outros sites

o que você acha desnecessario pode sim ser muito util pra em apenas um script criar varias quests consecultivas.

Mas é inútil se botar a uid do .xml pois ali já é feita a verificação... agora se fosse um actionid seria diferente.

 

 

isso não é uid são meros numeros e como você pode ver no script existe varias funções especificas que pode ou não requerir o uso de tal numero.

Quando eu falei uniqueid me referi ao número dela. Como ele atribuiu o mesmo número em várias partes do script achei melhor colocar em uma variável só...

 

 

ja no seu script seria muito mais util usar variáveis locais do que globais dentro do escopo.

Sim, verdade... é que eu fiz na pressa aquilo xD

 

 

a tag.xml está correta já que isso depende da versão utilizada pelo servidor.

Sim... é que como ele não colocou a versão imaginei que fosse a mais recente(8.54).

 

Mas é inútil se botar a uid do .xml pois ali já é feita a verificação... agora se fosse um actionid seria diferente.

legal que você não sabe a diferença entre AID e UID.

segundo que tanto aid quando uid podem sim ser declaradas no script cada uma executando uma ação diferente.

e não porque adicionou no xml que não seja adicionado no script.

isso é tolice ja que serve muito bem pra diminuir a quantidade de script juntando todos em um só.

Link para o comentário
Compartilhar em outros sites

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