Jump to content
Sign in to follow this  
Lord Ahriman - 3D Modeler

quest Quest: Baul o cofre que pida item + level (Editable)

Recommended Posts

Saludos a todos, le dejo esta quest que modifique (no se mucho de quest)

La quest trata de un libro que estaba oculto en una cueva de las tierra del fuego, y que al abrirlo les pedira ser lvl 125, tener una esfera de cristal y listo, como premio por comprender el libro te da un atuendo de lvl 125...
En mi caso el ítem: 9030 era Libro Coraza Dragón
Al abrirlo me indicaría lo que necesito para leer ese libro, todo es totalmente editable y por lo que veo fácil de entender...
9015 era Esfera Cristal Solar, que es lo que necesito para leer el libro en question... 

Ustedes lo adaptan como quieran, le cambian el "vnum-de-item.use" a "vnum-de-NPC.chat" para usarlo en NPC (ojo que no se mucho de quest, si alguien sabe mas agradezco que me corrija!! ) Le cambian el lvl si quieren  o simplemente le borran el " if pc.get_level() < 125 then " Puede ser un Baul, Cofre, Libro, Pelota, ETC... Lo que se les venga a la mente mientras tengan un linea valida. mas un icono para ver el item y que sea type 18....

Espero que alguien le sirva y de verdad si hay algo mal en la quest agradezco que me corrijan y si la dejan mejorada, genial, asi tambien la arreglo yo jajaj SUERTE!!! 
 

 

Quote

quest nombredequest begin
    state start begin
    when vnum-de-item.use begin
if pc.get_level() < 125 then
say_title("Tu nivel es insuficiente")
say(""..pc.get_name().." Para poder entender este libro")
say("Necesitas 2 cosas")
say("Ser nivel: 125")
say("Y este item:")
say_item_vnum(vnum-del-item-a-pedir)
return
end
    say_title("Libro Dragon Acorazado")
    say("")
    say("Estimado/a "..pc.get_name().."")
    say("")
    say("Has obtenido el Libro del Dragon Acorazado")
    say("En el podras adquirir uno de sus atuendos")
    say("Pero necesitaras leerlo con este objeto:")
    say_item_vnum(vnum-del-item-a-pedir)
    wait()
    say_title("¿Aceptas usar el cristal?")
    say("Al usar este cristal, revelas los secretos")
    say("Que se escondia en la cueva de Tierra del Fuego")
    say_reward("Si aceptas, no hay vuelta atras.")
            local    s=select("Acepto.","No acepto.")
            if    s==2    then
                return
                else
                if    pc.count_item(vnum-del-item-a-pedir)>0    then
                    say_title("Libro Dragon Acorazado:")
                    say("Has leido el libro")
                    say("En esta seccion encontraras")
                    say("Los atuendos que escondia el libro ")
                    say("")
                    say_reward(""..pc.get_name().." Dice: Debo elegir sabiamente.")
                    pc.remove_item(vnum-del-item-a-pedir)
                    else
                    say_title("Libro Dragon Acorazado:")
                    say("")
                    say_reward(""..pc.get_name().." Dice: Es complicado leer esto")
                    say_reward(""..pc.get_name().." Dice: Necesito el cristal")
                    say("")
                        say_item_vnum(vnum-del-item-a-pedir)
                    return
    end
    end
      local premiu = select ("Guerrero","Sura","Ninja","Chaman")
      if premiu == 1 then
         pc.give_item2(item-a-dar-,cantidad)
         say("Has recibido un atuendo para Guerrero")
      elseif premiu == 2 then
         pc.give_item2(item-a-dar-,cantidad)
         say("Has recibido un atuendo para Sura")
      elseif premiu == 3 then
         pc.give_item2(item-a-dar-,cantidad)
         say("Has recibido un atuendo para Ninja")
      elseif premiu == 4 then
         pc.give_item2(item-a-dar-,cantidad)
         say("Has recibido un atuendo para Chaman")
end
    pc.remove_item(vnum-de-item)
    end
    end
end

 

Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.

Share this post


Link to post
Share on other sites

Hola amigo 

Me alegra que estés haciendo quests. No mucha gente se le mide a eso xD

Luego de hacer varias quest creo que puedo recomendarte algunas cosas que fui aprendiendo 

 

1.

say("Los atuendos que escondia el libro ")
say("")

es lo mismo que

say("Los atuendos que escondia el libro [ENTER]")

y del mismo modo en sentido contrario :v

 

2. Cuando quieras que el título tenga el mismo nombre que el nombre del objeto:

say_title(item.name)

y para que el siguiente texto esté separado

say_title(item.name.."[ENTER]")

 

3.

say("Estimado/a "..pc.get_name().."")

es lo mismo que

say("Estimado/a "..pc.get_name())

 

4. Para eliminar el objeto:

item.remove()

debes probar primero si se eliminan todos los objetos que tienes en el mismo slot o solo elimina uno.

 

5. Para crear una quest sencilla de personalizar se recomienda usar una función aparte donde retorne una estructura de datos. Suena complejo pero no lo es.

		function info()
			return {
				["level_req"] = 120,
				["item_req"] = 19,
				["cant_item_req"] = 1,
				["item_reward_x_raza"] = {11209, 11409, 11609, 11809} 
			}
		end

se entiende que va en la misma jerarquía que los when. Incluso puedes llamarla desde otros states. Así:

local s = nombredelaquest.info()

Esa línea va dentro del when.

Luego para llamar a una de las variables de allí pones, por ejemplo, para el nivel requerido:

say("Debes ser nivel "..s.level_req)

 

6.  Para entregar cierto objeto a un personaje sin necesidad de que él escoja su raza, se hace así:

Primero se saca el id de la raza así:

pc.job

esa sentencia bota números entre el 0 y el 3, donde:

0: guerrero

1: ninja

2: sura

3: chamán

Luego para darle un objeto diferente por raza debes tener una pequeña lista de los 4 objetos que vas a dar, así:

["item_reward_x_raza"] = {11209, 11409, 11609, 11809} 

que es la misma lista que está arriba en la función. (se debe poner en el orden correcto, g, n, s, c)

Después le das el ítem con give_item2(OBJETO_EN_EL_ARREGLO)

Donde OBJETO_EN_EL_ARREGLO es alguno de los elementos que están en la lista.

Por ejemplo, si es guerrero, entonces quedará give_item2(s.item_reward_x_raza[0])

Y va a tirar error. Por qué? porque las posiciones de las listas empiezan desde 1 y no de 0. Entonces solución:

pc.job+1

Ahora sí. Solo pones:

pc.give_item2(s.item_reward_x_raza[pc.job+1])

 

Ese sería mi aporte. 

Ánimossss!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...