Jump to content

Hanakimachi

Miembro
  • Contador contenido

    22
  • Ingreso

  • Última visita

Actividad de reputación

  1. Me Gusta
    Hanakimachi reacted to KeKo in [Sistema] Puntos Metin   
    Buenas zoneros y zoneras,
     
    Hace tiempo que no posteaba ninguna quest, asi que hoy me ha dado por haceros un "mini-sistema" para que lo podais meter en vuestro servidores si os gusta
     
    Lo he llamado sistema de "Puntos Metin" y como el nombre sugiere tiene que ver con los metines. Por cada metin que destruyas en el servidor obtendrás una determinada cantidad de un item que yo bautize como "Esfera Metin" pero que cada uno puede llamar como quiera (yo os dejo el tga del item por si lo quereis).
     
    Las esferas que te da cada metin son diferentes (configurables a voluntad) y ademas os he hecho un npc de canjes para que podais llevar vuestras esferas metin y canjearlas por los items que querais (vosotros configurais el npc) .
     
    Primero unas fotitos del proceso:
     
    1 - Petando un metin, te da esferas:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    * Detalle: La quest reconoce automaticamente que metin destruyes y te da los puntos correspondientes a ese metin, mas abajo os enseñare a editar los puntos.
     
    2 - Esta es una esfera metin:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    3 - Vamos al npc de los canjes:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    4 - Elegimos el item a canjear:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    5 - Si no tenemos las esferas suficientes saldra este mensaje, si las tenemos nos dara el item y nos quitara las esferas correspondientes (podeis poner el coste de cada item al lado del nombre en el local).
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Y bueno ahora que os he explicado un poco como va, aqui os dejo la quest:
     
     
     
     
    (Aqui en pastebin para quien la prefiera tener con las tabs
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.)  
    Y bueno ahora os voi a enseñar como editarla:
     
    Paso 1 - Los metines:
     
    Para añadir nuevos metines ponemos su id en el array y vamos a configurarles el nombre y esferas que daran:
     

    local metin = { [8001] = {1,"Metin de Dolor"}, [8002] = {1,"Metin de Combate"}, [8003] = {2,"Metin de Batalla"}, [8004] = {2,"Metin de Avaricia"}, [8005] = {3,"Metin Negro"}, [8006] = {3,"Metin de Oscuridad"}, [8007] = {3,"Metin de Celos"}, [8008] = {4,"Metin de Alma"}, [8009] = {4,"Metin de Sombra"}, [8010] = {5,"Metin de Dureza"}, [8011] = {5,"Metin de Demonio"}, [8012] = {6,"Metin de Caida"}, [8013] = {6,"Metin de Muerte"}, [8014] = {8,"Metin Asesino"}, [8024] = {10,"Metin Pung-Ma"}, [8025] = {11,"Metin de Ma-An"}, [8026] = {12,"Metin de Tu-Young"}, [8027] = {13,"Metin Jeon-Un"} } Este array contiene 3 elementos
     

    [8027] Entre [ ] la id del metin de nuevo, si quereis añadir uno nuevo la poneis igual
     

    {12,"Metin de Tu-Young"}, Entre { va primero la cantidad de esferas que dara (en este caso 12) una coma y luego entre " " el nombre del metin (es opcional, lo dice por el chat al peta uno).
     
    Si quereis añadir una nueva linea pos haceis asi:
     

    {esferas,"nombre"}, Ojo! El ultimo de los metines NO debe llevar una , al acabar el }
     
    Y lo ultimo es poner la id de las esferas en el give_item
     

    pc.give_item2("27003",metin[npc.get_race()][1]) Donde yo tengo 27003 (si, las potas rojas G, me aburria xd) vosotros pondreis la id que le pongais a la esfera (o el item que useis).
     
    Paso 2: El npc de los canjes
     
    Podeis ponerle tantos canjes como querais, yo en este caso he puesto 7 posibles canjes que podemos editar de la siguiente manera:
     

    local elegir = select("Item1","Item2","Item3","Item4","Item5","Item6","Item7","Cancelar") Ponemos el nombre del item en cada caso. Si quereis añadir mas podeis hacer otra pagina (aunque a la segunda tendreis que hacerle vosotros las condiciones :trollface: ).
     
    Luego debeis configurar este array:
     

    local premios = { {27002,1,27003,1}, -- Premio1 {27002,5,27003,2}, -- Premio2 {27002,10,27003,3}, -- Premio3 {27002,15,27003,4}, --Premio4 {27002,50,27003,5}, --Premio5 {27002,100,27003,6}, --Premio6 {27002,200,27003,7} --Premio7 (sin la , despues del } recordad) } Os explico que hace cada cosa:
     
    - El 27002 es el item que te daran al canjear cada elemento.
    - El numero siguiente es la cantidad del premio que te daran.
    - El tercer elemento es la id de las esferas o el item que useis como necesario para canjear
    - El cuarto elemento es la cantidad de esferas que pedira cada premio.
     
    Si quereis añadir mas recordar que el local anterior esta ligado a este, asi que si haceis otra pagina tendreis que usar otro array (o hacerlo normal).
     
    Y eso seria todo, el resto de la quest ya esta configurada.
     
    Espero que os guste :tiocereales:
     
    P.D: Os dejo adjunto el icono de la esfera metin (solo icono sin item_proto ni na ya lo haceis vosotros :trolldad: )

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  2. Me Gusta
    Hanakimachi reacted to KeKo in [1er Examen - Curso de Quest] Capítulos I - V   
    Tiene un par de detalles, pero en general esta bien:
     

    if pc.count_item("27001") == 1 then say_title("Examen del Curso Quest") say("Este es el primer ejercicio que hago.") say("Algo debe queda claro:") say_reward("¡Keko y Raul son los mejores!) say("") say("xD") end if pc.count_item("27001") == 0 then Seria:
     

    if pc.count_item("27001") == 1 then say_title("Examen del Curso Quest") say("Este es el primer ejercicio que hago.") say("Algo debe queda claro:") say_reward("¡Keko y Raul son los mejores!) say("") say("xD") elseif pc.count_item("27001") == 0 then Y luego que como he dicho miles de veces un select sin funcion (es decir uno que usas para cerrar el dialogo) no hay que asignarle if ni ponerle un return ni nada, asi que esto quedaria asi:
     

    if s == 1 then return elseif s == 2 then return end elseif s == 2 then return Todo eso fuera xd
  3. Me Gusta
    Hanakimachi reacted to fuuton97 in [MiniCurso] - ¿Cómo Empezar a Crear tu Propia Misión?   
    Buenas, y Hola a todos los zoneros y/o visitantes, presentes en el día de hoy, la presente de este Mini-Curso es para enseñarles como crear su propia misión de Metin2, primero que nada comenzaremos con lo principal de una misión de metin2, como es un Mini-Curso no lo alargaré mucho, después de cierto tiempo prudente veré y crearé un CURSO con todo los "juguetes".
     
    Bien, primero que nada necesitaremos la disponibilidad de GANAS y TIEMPO, esos son las partes más fundamentales, y no solo eso, tener mentalidad de creación y difusión. Hay que tener en cuenta que esto conlleva a un proceso de paciencia, puede que les de error si es su primera vez, sino les irá super bien; no obstante con este Mini-Curso que les voy a entregar aprenderán a crear quest de misión de Metin2, espero que aprecien mi tiempo y trabajo, que es 100% para ustedes.
     
    Materiales a Utilizar:
     
    - Un servidor de Metin2, sea hamachi, sin hamachi o Dedicado.
    - Saber compilar las quest o cargar.
     
    Bien, comencemos:
     
    1- Abrimos un archivo .txt en el escritorio, ponemos de nombre: "misión_test", y cambiamos la extensión .txt a .quest, y guardamos.
     
    2- Abrimos el archivo: mision_test.quest con un editor de texto, recomiendo Notepad++. La primera función: Cómo todos saben existe desde se inicia y ejecute la quest, para ellos escribirán esto:

    quest mision_test begin state start begin 3- Toda misión requiere sobre su Nivel para efectuarla, por defecto pondremos nivel 100, y lo colocamos:

    when login or levelup or enter with pc.get_level() == 100 begin La función: "login" dice que al loguearse en el juego saldrá la misión, y "levelup" que al llegar al nivel puesto, en este caso 100 saldrá la misión al instante.
     
    4- Ahora debemos comenzar con un set_state, lo hacemos de esta manera, y lo colocamos:
     

    set_state( mision_test ) Agregamos dos end, para cerrar de el begin de pc.get_level() y el primero de la ejecución:

    end end Hasta ahora les deberá quedar así:

    quest mison_test begin state start begin when login or levelup or enter with pc.get_level() == 100 begin set_state( mision_test ) end end 5- Ahora debemos llamar el state, seguimos y colocamos:

    state mision_test begin 6- Escribimos y ponemos el llamado de when letter:

    when letter begin 7- Ahora ponemos la función de send_letter, osea a mostrar el nombre de la misión que aparecerá, escribimos:

    send_letter("Misión Test By Fuuton97") 8- Cerramos con un "END" por el begin, y escribimos:

    end Hasta el momento la misión debe quedarnos así:

    quest mision_test begin state start begin when login or levelup or enter with pc.get_level() >= 100 begin set_state( mision_test ) end end state mision_test begin when letter begin send_letter("Misión Test By Fuuton97") end 9- Bien, ahora pondremos la función de "button or info", para que al darle click a la misión o el pergamino les salga el escrito o la misión a realizar, y escribimos:

    when button or info begin 10- Seguidamente colocamos la información con las funciones: say, say_title y/o say_reward, y escribimos:

    say_title("Bienvenido a la Misión Test By Fuuton97") say("Hola ".. pc.get_name() .." ,esto es una misión tester") say("en donde tendrás una misión épica.") say("Recuerda que esto es un tester de una misión") say("que está creando Fuuton97 para Metin2 Zone.") say("Destruye un Metin de Nivel 80.")  
    Ese es el texto, ustedes podrán añadirle más texto, con solo seguir los parámetros de "say("")"
     
    11- Agregamos dos "END" y un set_state, y escribimos:

    set_state(test) end end Hasta ahora debería quedarnos así:
     

    quest mision_test begin state start begin when login or levelup or enter with pc.get_level() >= 100 begin set_state( mision_test ) end end state mision_test begin when letter begin send_letter("Misión Test By Fuuton97") end when button or info begin say_title("Bienvenido a la Misión Test By Fuuton97") say("Hola ".. pc.get_name() .." ,esto es una misión tester") say("en donde tendrás una misión épica.") say("Recuerda que esto es un tester de una misión") say("que está creando Fuuton97 para Metin2 Zone.") say("Destruye un Metin de Nivel 80.") set_state(test) end end 12- Ahora agregamos e iniciamos con el state "test" y un letter; y escribimos:

    state test begin when letter begin 13- Escribimos un send_letter y un end al final, y escribimos:

    send_letter("Destruye el Metin - Misión Test By Fuuton97") end 14- Luego escribimos un button or info y su respectivo texto, más 1 end al final, y ponemos:

    when button or info begin say_title("TEST MISIóN:") say_reward( " Vete a las zonas donde esté el Metin de Nivel 80, Mapa Bosque") say("") end Hasta ahora toda la misión debería estar así:
     

    quest mision_test begin state start begin when login or levelup or enter with pc.get_level() >= 100 begin set_state( mision_test ) end end state mision_test begin when letter begin send_letter("Misión Test By Fuuton97") end when button or info begin say_title("Bienvenido a la Misión Test By Fuuton97") say("Hola ".. pc.get_name() .." ,esto es una misión tester") say("en donde tendrás una misión épica.") say("Recuerda que esto es un tester de una misión") say("que está creando Fuuton97 para Metin2 Zone.") say("Destruye un Metin de Nivel 80.") set_state(test) end end state test begin when letter begin send_letter("Destruye el Metin - Misión Test By Fuuton97") end when button or info begin say_title("TEST MISIóN:") say_reward( " Vete a las zonas donde esté el Metin de Nivel 80, Mapa Bosque") say("") end 15- Bien, ahora procederemos a poner la función .kill al metin, para que al destruirlo complete la misión el personaje y di su premio, y escribimos:
     

    when 8025.kill begin 16- Ahora solo nos tocará poner el texto final, y escribimos:

    say_title("Misión TEST ACABADA:!") say("Has acabado con el Metin 80!") say("Misión Test By Fuuton97") say("Recibirás tu recompensa:") say_reward("500.000.000 Exp") say_reward("100.000.000 Yang") 17- Ahora solo nos falta colocar la función de dar yang: pc.change_money(xxxxxxx) y la de experiencia: pc.give_expe2(xxxxxxx), y escribimos:

    pc.change_money(1000000000) pc.give_exp2(5000000000) 18- Añadimos una función de chat(), para texto final, un clear_letter() y cerramos el set de la misión COMPLETADA, y escribimos:

    chat("Has completado la Misión Test.") chat("By Fuuton97.") clear_letter() set_state(__COMPLETE__) 19- Por último añadimos los END'S, más el state de la misión COMPLETADA, y escribimos:

    end end end state __COMPLETE__ begin end end Ahora les deberá que dar la misión TODA COMPLETA y TERMINADA ASí:

    quest mision_test begin state start begin when login or levelup or enter with pc.get_level() >= 100 begin set_state( mision_test ) end end state mision_test begin when letter begin send_letter("Misión Test By Fuuton97") end when button or info begin say_title("Bienvenido a la Misión Test By Fuuton97") say("Hola ".. pc.get_name() .." ,esto es una misión tester") say("en donde tendrás una misión épica.") say("Recuerda que esto es un tester de una misión") say("que está creando Fuuton97 para Metin2 Zone.") say("Destruye un Metin de Nivel 80.") set_state(test) end end state test begin when letter begin send_letter("Destruye el Metin - Misión Test By Fuuton97") end when button or info begin say_title("TEST MISIóN:") say_reward( " Vete a las zonas donde esté el Metin de Nivel 80, Mapa Bosque") say("") end when 8025.kill begin say_title("Misión TEST ACABADA:!") say("Has acabado con el Metin 80!") say("Misión Test By Fuuton97") say("Recibirás tu recompensa:") say_reward("500.000.000 Exp") say_reward("100.000.000 Yang") pc.change_money(1000000000) pc.give_exp2(5000000000) chat("Has completado la Misión Test.") chat("By Fuuton97.") clear_letter() set_state(__COMPLETE__) end end end state __COMPLETE__ begin end end 20- último paso, compilar la quest, solo subimos el archivo cuyo nombre le pusimos que fue: mision_test.quest al directorio vía Winscp a: /home/game/share/locale/germay/quest la suben y dan permisos 777, seguidamente abren le english_list, o hongkong_list y ponen abajo el nombre de la quest: mision_test.quest
     
    Por último compilamos la quest, vamos a nuestro Putty, si es dedicado o en la máquina virtual de Virtual BOX, y ejecutamos este comando:

    ./qc mision_test.quest Y Listo.
     
    Bueno, hemos llegado al final de este MiniCurso sobre cómo crear una misión desde 0, espero que valoren mi tiempo y trabajo, solo exclusivamente para METIN2 ZONE, y si piensan postear en otra parte dejen créditos.
     
    Próximo MiniCurso: Creación de Misión con pc.getqf + asignar un valor de cuantos mob o metines destruir.
     
    Saludos.
×
×
  • Crear nuevo...