Jump to content

[MINICURSO]Crear misiones usando pc.setqf (Asignar contador + valores).


fuuton97

Mensajes recomendados

Hola, como ya había hecho un mini curso, sobre como crear tu propia misión de Metin2 usando el lenguaje lua (quest), pues bien ahora vamos con el segundo mini curso, que es usando la condición pc.setqf más un contador y valor asignado a un setqf.

 

Para los que no saben crear una misión básica y desde cero, acá les dejo el link:

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

 

La condición pc.setqf, en este caso la acomodaremos poniendo un valor con un counter, osea un contador que nos haga un límite de valor (numérico) de matar un mob o metin, o lo que sea, con tal que sea numérico. Para eso comenzaremos la estructura inicial y normal de una misión, si no saben, véanse el capítulo anterior de como crear una misión de metin2, el link está arriba.

 

1- Haremos rápido lo inicial, ya que se supone que debemos saberlo, vamos a concentrarnos en lo que vinimos, los pc.setqf.

 

En mi punto de vista es necesario colocar un nivel requerido a las misiones (ES UNA SUGERENCIA, SINO OMITAN EL PASO DE PC.GET_LEVEL())

 

quest mision_test_2 begin
state start begin
when login or enter or levelup with pc.get_level() >= 100 begin
set_state(test_2)
end
end
state test_2 begin
when letter begin
send_letter("Test_2 usando pc.setqf") -- Cambiamos TEXTO
end
when button or info begin
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("")

Esto sería lo inicial, ahora vamos con el segundo paso:

 

2- Hay mismo debajo del ("say") ponemos lo siguiente:

pc.setqf("state", 100)

En este caso la condición setqf quiere decir que al iniciar el state se active, con un total de matar, o traer algo sea 100, en el valor 100 pueden cambiarlo a cuanto quieren que sea.

 

3- Justamente hay seguimos y ponemos:

q.set_counter("test_metin", 100)

La condición counter, para llevar el conteo de cuantos metines o mob a destruir, en este caso 100, pueden cambiarlo a su gusto.

 

4- Añadiremos un state + dos end, para abrir la condición y dar la misión a ejecutar:

set_state (kill_metin)
end
end

Hasta el momento la quest de misión debe ir así:

quest mision_test_2 begin
state start begin
when login or enter or levelup with pc.get_level() >= 100 begin
set_state(test_2)
end
end
state test_2 begin
when letter begin
send_letter("Test_2 usando pc.setqf") -- Cambiamos TEXTO
end
when button or info begin
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("")
pc.setqf("state", 100)
q.set_counter("test_metin", 100)
set_state (kill_metin)
end
end

5- Abrimos el state:

state metin_kill begin
when letter begin
send_letter("Misión TEST 2")
end

6- Seguimos añadiendo un button y un info para que te diga cuantos tienes que destruir o traer:

when button or info begin
say_title("TEXTO")
say_reward("Ve a conseguir  ".. pc.getqf .." y luego recibirás tu recompensa, suerte")

Cómo ven tenemos una nueva función, pc.getqf, esta condición nos muestra a ejecutar nuestra tarea o misión asignada, sin embargo es la que nos ayuda contar y descontar cada ves que vallas destruyendo lo asignado.

 

7- Pondremos la misión a que metin (en este caso) destruir:

when 8025.kill begin
local count = pc.getqf("state") -1
if count <= 100 then -- Número asignado a la misión
pc.setqf("state", count)
q.set_counter("test_metin", -count)
end

8- Debajo seguimos para añadir una vez realizado la misión el say y la recompensa:

if count == 0 then
say_title("TEXTO!")
say("TEXT!")
say("TEXT")
say_reward("TEXTO")
say_reward("500.000.000 Exp")
say_reward("100.000.000 Yang")
pc.change_money(1000000000)
pc.give_exp2(5000000000)

9- Por último añadimos la condición clear y cerrar el state completado:

clear_letter()
set_state(__COMPLETE__)
end
end
end
end
state __COMPLETE__ begin
end
end

10- Al final la misión les deberá quedar así:

quest mision_test_2 begin
state start begin
when login or enter or levelup with pc.get_level() >= 100 begin
set_state(test_2)
end
end
state test_2 begin
when letter begin
send_letter("Test_2 usando pc.setqf") -- Cambiamos TEXTO
end
when button or info begin
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("TEXTO")
say("")
pc.setqf("state", 100)
q.set_counter("test_metin", 100)
set_state (kill_metin)
end
end

state kill_metin begin
when letter begin
send_letter("Misión TEST 2")
end
when button or info begin
say_title("TEXTO")
say_reward("Ve a conseguir  ".. pc.getqf .." y luego recibirás tu recompensa, suerte")

when 8025.kill begin
local count = pc.getqf("state") -1
if count <= 100 then -- Número asignado a la misión
pc.setqf("state", count)
q.set_counter("test_metin", -count)
end
if count == 0 then
say_title("TEXTO!")
say("TEXT!")
say("TEXT")
say_reward("TEXTO")
say_reward("500.000.000 Exp")
say_reward("100.000.000 Yang")
pc.change_money(1000000000)
pc.give_exp2(5000000000)
clear_letter()
set_state(__COMPLETE__)
end
end
end
end
state __COMPLETE__ begin
end
end

Pueden modificar la parte de recompensa a dar.

 

11- Vamos a compilar la quest, vamos a nuestra ruta y subimos nuestra quest y damos .qc:

ejemplo:
cd /usr/game/share/locale/germany/quest
./qc nombre_de_quest.quest

Recuerden que la la misión si la guardan en un archivo .txt deben cambiarle la extensión a .quest.

 

Bueno, espero que les halla servido un poco este mini curso, si les quedo alguna duda no olviden en comentar.

 

Esta es una guía de mi autoría, si se copia a otro dejar créditos por lo menos, esta guía es básica en el sentido de usar el pc.setqf y getqf, es más para principiantes.

Enlace para comentar
Compartir en otros sitios

  • Dilong locked this tema
Guest
Este tema está cerrado a otras respuestas.
  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...