fuuton97 Posted May 26, 2013 Report Share Posted May 26, 2013 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. Link to comment Share on other sites More sharing options...
Recommended Posts