Jump to content

Rensr Animations

Miembro
  • Contador contenido

    0
  • Ingreso

  • Última visita

Actividad de reputación

  1. Me Gusta
    Rensr Animations reacted to Pai in [Mini-Release] 4 inventarios.   
    Bueno, aquí un aporte mas o menos nada...
     
    Game y db vanilla y las libs y todo lo demás del cliente.
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Disfrútenlo.
     
    ¡¡Saludos!!
     
     
    Créditos: Vanilla por el game y la db y todo eso.
     
  2. Me Gusta
    Rensr Animations reacted to Hawk Server's in [EVENTO]Caza de conejos   
    El evento consiste en ir a un mapa especial que solo los GM pueden abrir, luego de abrir el mapa en el npc cazador se les da a los usuarios cierto tiempo para que lleguen, luego se cierra la entrada al mapa y se da a la opcion de aparecer a los conejos (cada ronda tirara 10 conejos), luego deberan ir los users a matarlos y obtener sus pieles que uds configuran los premios que daran x las pieles, al darle a la opcion terminar evento pasados 15 seugndos les llvara a todos a city
     
    contiene:
    Quest (codigo muy simple hecho por mi)
    mapa (hecho por mi)
    texturas y textureset(especiales para el mapa)
    serverside
     

     
    CREDITOS UNICAMENTE MIOS [ARES ] SOLO PARA METIN2GANJAH Y PARA METIN2ZONE NO SE PERMITEN EN OTROS FOROS SIN PERMISO
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  3. Me Gusta
    Rensr Animations reacted to TTV_RANDARON in Sistema oficial de información de monstruos (nivel y agresivo)   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  4. Me Gusta
    Rensr Animations reacted to izaviona in [GUIA]Como usar el "in game map editor"   
    NOTA: Con la publicación del source de Metin2 y su respectivo editor de mapas, esto ya queda practicamente en desuso.
     
     
    IN GAME MAP EDITOR



    Imagenes de muestra:



    Para usarlo necesitais el Python Module Loader(
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.), lo extraeis en la raiz del cliente que quereis editar, luego descargais el in game map editor 1.1(Debes iniciar sesión para ver el contenido del enlace en esta publicación.), esto lo descomprimiis tambien en la carpeta raiz del cliente junto al Python Module Loader.

    Haora ejecutais el Python Module Loader(m2PythonLoader.exe),

    Os aparecera esto:


    Una vez ejecutado, ejecutais el cliente y os logueais hasta estar dentro del juego, cuando estais dentro, pulsais F9 y os aparecera una ventana para elegir el archivo .py,

    Aparecera esto:


    Le damos a select y buscamos el py, cuando lo selecciones, le damos a run y nos aparecera el editor.


    El menu de los objetos es este:



    En el podeis navegar y elegir lo que querais, Aqui os dejo un carpeta con todos los objetos del cliente:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.(el de arriba son edificios xD)

    Para acceder a la carpeta es muy facil:
    Vamos a la ruta del cliente Aqui:
    y elegimos la carpeta necesiaria, en este caso "map_object_editor" para los edificios y "Objekte sortiert Property DE 2012" para los objetos.

    - Para seleccionar una estructura 3d dentro del juego solo es hacer clic sobre ella, para borrarla le damos clic y luego en la tecla suprimir.

    - Si tu seleccionas un objeto dentro del juego y le das a , directamente te pones a construir esa estructura sin tener que buscarla.

    - , esto hace que construyas y la estructura no se valla del puntero, si quieres seleccionar otra
    estructura le das a y seleccionas la que quieras.

    - ,esto exporta el mapa que has editado.
    Cuando le das a exportar aparecera esto:



    elegis la ruta que querais y os guardara en la ruta que habeis elegido el mapa con sus respectivos areadatas.txt

    Las demas cosas ya les dejo que toqueteen jeje

    Saludos y espero haber ayudado a quellas personas que no saben usarlo aun!

    Fuente: Nerule y musicinstructor.
    Creditos a mi por la guia, creada desde cero.
  5. Me Gusta
    Rensr Animations reacted to sebastianL2 in Carpeta Object en español 85%   
    Les traje esta carpeta Object como 85% español, ¿porque 85%? porque algunos npc, no tienen todas las quest, y también algunos, me falto traducirlos
     
    Link: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Me faltaron algunas cosas x Traducir, y algunos NPC no estan listos D:
    Y también algunos NPC los traducir con ayuda de files Caos jejeje
  6. Me Gusta
    Rensr Animations reacted to ElRaulxX in [1er Examen - Curso de Quest] Capítulos I - V   
    Espero que hayáis estudiado mucho, pues este es nuestro primer examen del curso. Sino lo hacéis bien habrá mano dura, eh!
     
    La única utilidad de este examen es que veáis lo que habéis aprendido. Hablaré con estos administradores feos haber si podríamos poner algún tipo de plaquita o algo. Estaría bien ¿no?
    Bueno, pues al lío. El examen estará formado por 5 preguntas con valor de 2 puntos cada una con una nota máxima de 10 (me siento profesor ). Los ejercicios, más que nada, consistirán en crear una quest con los parámetros que estableceremos.
     
    Se irá añadiendo un ejercicio nuevo cada x días. Debéis mandarnos la quest del ejercicio por privado. En el post escribiremos la nota individual de cada participante del examen dividido por ejercicios.
     
    IMPORTANTE: Las quests que enviéis deben estar tal cual dice el ejercicio, incluido textos y acciones de la quest. Añadir texto o inventar algo que no diga el ejercicio hará que la quest no sea tomada como válida.
     
    Ejercicio I :
    Ejercicio II :
     
    Y eso es todo. ¡Suerte a los aspirantes a quest-makers!
  7. Me Gusta
    Rensr Animations reacted to Randaron in Serverfiles VZ 34k (Buenos)   
    Hola buenas para tod@s aquellas cuya persona están empezando a crear servidores de metin sea 2089M o 34k pues aquí os dejo unos files 34k probados por mi (Sea en errores y en rapidez de conexión del servidor.
    ~#~#~#~#~#~#~#~#~#~#~#~#~#~#NO OLVIDES DEJAR LAS GRACIAS - Y DAR LIKE !~#~#~#~#~#~#~#~#~#~#~#~#~#~#
    ~#~#~#~#~#~#~#~#~#~#~#~#~#~#NO OLVIDES DEJAR LAS GRACIAS - Y DAR LIKE !~#~#~#~#~#~#~#~#~#~#~#~#~#~#
     
     
  8. Me Gusta
    Rensr Animations reacted to RafaVK in Resumen de Quest para Metin2   
    Les traigo este resumen de quest        lo hice mientras estudiaba este lenguaje. Tiene lo básico no está completo (Me ha dado pereza completarlo hace casi 1 año que lo hice...  pero les servirá a los que deseen aprender.
     
    ---Resumen de las Quest [*]Estructura de una quest quest capidos begin -----> Encabezado de la quesy seguido del nombre de la quest se recomienda que sea el mismo del archivo que se crea. state start begin -----> Indica que la quest empieza aquí when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. chat("Bienvenido al servidor, pasalo bien") -----> La acción que se realiza en al quest. end -----> Finaliza la acción end -----> Finaliza el estado end -----> Finaliza la quest [*] Comentarios Se hacen con un -- [*] Variables local nombre = variable -----> Nos sirve para almacenar datos. Ejemplo local nivel = pc.get_level() local texto = input() local numero = math.random(1,100) local s = select ("opcion1" , "opcion2" , "opcion3") -----> Sirve para colocar botones en los mensajes if s == 1 then -----> Sirve para preguntar por cual de las opciones se le dió clic es decir a la opcion1 corresponde el 1 a la opcion2 corresponde el 2 y asi sucesivamente con la cantidad de opciones que se coloquen. [*] Estados de las quest start -----> Estado de inicio de una quest. setstate("nombre estado") -----> Cambiar de estado. Tambien se usa la funcion set_state("nombre estado") set_quest_state(,) -----> Cambiar el estado de una quest distinta. Recordando que el nombre y el estado van dentro de comillas "" asi: set_quest_state("nombre", "estado") Ejemplo de estados: quest capidos begin -----> Encabezado de la quesy seguido del nombre de la quest se recomienda que sea el mismo del archivo que se crea. state start begin -----> Indica que la quest empieza aquí when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. setstate("run") -----> Ejecuta el cambio de STATE end -----> Finaliza la acción end -----> Finaliza el estado state run begin -----> Indica que la quest empieza aquí when enter begin -----> Se usa para que las acciones se hagan cuando se entra al estado. chat("Has entrado al state.") end when leave begin -----> Se usa para que las acciones se hagan cuando se finaliza o sale del estado. chat("Has salido del state.") end when login begin -----> Pregunta por algo que esta pasando en este caso pregunta por un login es decir si un personaje se conecto. return -----> Finaliza la quest end -----> Finaliza la acción end -----> Finaliza el estado end -----> Finaliza la quest [*] Operadores lógicos when -----> sirve para comenzar acciones. while -----> sirve para comenzar acciones. with -----> poner condiciones. and -----> poner condiciones. or -----> poner condiciones. if -----> poner condiciones. elseif -----> poner condiciones. else -----> poner condiciones. > -----> Comparación < -----> Comparación >= -----> Comparación <= -----> Comparación == -----> Comparación ~= -----> Comparación [*] Estructura de un IF if [X] then accion1 else if [X2] then accion2 end [*] Estructura de un when when condiciones begin accion end [*] Ciclos o Bucles Un BUCLE se puede romper con la palabra break [*] Bucle 1 repeat bloque de sentencias until (condición) [*] Bucle 2 while (condición) do bloque de sentencias end -- BUCLE INFINITO while true do bloque end -- FIN DE BUCLE INFINITO [*] Bucle 3 for var = start, stop , aumento do bloque de sentencias end [*] Bucle 4 -- FOR PARA ARRAY local tab = {"valor1", "valor2", "valor3"} for k, v in ipairs(tab) do say(k.." = "..v) end --for -- FIN FOR PARA ARRAY [*] Arrays local nombrearray = {10,20,34,43,57} -----> Array simple nombrearray[1] -----> Trae el contenido del array en la posición 1 en esta caso 10. EJEMPLO: local items = {160,161,162,163} for i=1, table.getn(items) do -- en la i ponemos igual a 1 y luego la cantidad de veces que se repita pc.give_item2(items[i]) -- te dara cada uno de los items que haya en la tabla end -- cada for le corresponde un end local nombre = { -- abres la tabla {} -- subcategoria 1 {} -- subcategoria 2 {} -- subcategoria 3 } -- cierras la tabla Una subcategoría sirve para agrupar una cantidad de elementos en si y para obtener los elementos se hace: nombre[subcategoria][posicion] Ejemplo: local cordes = { {12500,13400,17500,14000}, {12400,18900,13200} } cordes[1][4] -- 14000 cordes[2][2] -- 18900 EJEMPLO PRACTICO 1: local cordes = { {12500,13400}, {12400,18900}, {19800,12300} } pc.warp(cordes[1][1],cordes[1][2]) -- 12500, 13400 EJEMPLO PRACTICO 2: say("Que arma quieres") say("") local items = { {160,2}, {161,1}, {162,3} } local arma = select ("Ninfa +0" , "Ninfa +1" , "Ninfa +2" , "Cerrar") if arma == table.getn(items)+1 then return end pc.give_item2(items[arma][1],items[arma][2]) [*]Mostrar Texto En El Cliente chat("mensaje") -----> Mostrar chat de infromación en el chat general. Solo lo ve el personaje que se conecta. notice_all("mensaje") -----> Mostrar a todos los personajes Conectados. say_title("mensaje") -----> Mensaje en forma de título say("mensaje") -----> Mensaje que muestra el texto que se desea. Est mensaje es mostrado en un recuadro en medio de la pantalla. say_reward("mensaje") -----> Mensaje en forma de recompensa con color distinto. [*] Datos Curiosos. math.random(numero incial,numero final) -----> Funcion que devuelve un número aleatorio entre el numero inicial y el numero final que se establezca. pc -----> Es el usuario o personaje que esta conectado. pc.get_level() -----> Obteiene el nivel de un personaje. login -----> Acción que se da al conectarse un personaje. logout -----> Acción que se da al desconectarse un personaje. when vnum.chat."texto de opcion" begin -----> Se utiliza para activar la quest cuando le da en una opcion de un lista de opciones. Es decir, cuando se le da clic en la opcion "texto de opcion" del npv o item del vnum. pc.count_item("vnum") -----> Sirve para comprobar si el personaje tiene el item correspondiente al venum en su inventario. vnum.chat."texto" -----> Al darle clic en la npc con el vnum se abre un dialogo con opciones. Al dar click en la opción que contiene el texto empieza el contenido del when. vnum.click -----> Al hacer click en el npc del vnum, empieza el contenido del when. vnum.click -----> Al hacer click en el npc, empieza el contenido del when. kill -----> Cuando el jugador mata un enemigo, comienza el contenido del when. when vnum.kill begin -----> Indica si el monstruo que le corresponde el vnum esta muerto party_kill -----> Cuando un miembro del grupo mata a un enemigo inicia el contenido del when. vnum.party_kill -----> Cuando un miembro del grupo mata a aun enemigo con vnum, empieza el contenido del when. X.target.click -----> Cuando haces click al tarjet de nombre X empieza el contenido del when. X.target.arrive -----> Cuando llegas al punto con el tarje de nombre X empieza el contenido del when. pc.get_map_index == codigomapa -----> Indica si el personaje esta en el mapa de codigomapa pc.get_max_hp -----> Se puede preguntar por el nivel de hp que tienes. pc.is_mount -----> Se puede preguntar si estas montado en una montura o no. when condicion1 with condicion2 and condicion3 begin ----> Estrctura para 2 o mas condiciones pc.get_empire() -----> Se puede preguntar en que reino estas. vnum.use -----> Cuando se una un el item del vnum se activa esta quest pc.give_item2("vnum", cantidad) -----> Se utiliza para dar un item al inventario del personaje. return -----> Accion que se utiliza en la accion de un boton de cancelar o cerrar. Y sirve para cerrar la ventana de la quest. pc.change_money(-cantidad) -----> Acción que sirve para disminuir o aumentar la cantidad de yang de un personaje. pc.remove_item(vnum, cantidad) -----> Accion que sirve para remover un item del inventario del personaje. pc.gold -----> Pregunta por la cantidad de yang que tiene el personaje. pc.get_sex() -----> Obtiene el sexo de un personaje. Se compara 1 hombre 2 mujer. say_item_vnum(vnum) -----> Muestra 1 item con su imagen. pc.count_item(vnum) -----> Cuenta cuantos items hay. mob_name(vnum) -----> Nombre de un monstruo pc.getname() -----> Obtener el nombre del personaje. --------------------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡IMPORTANTE !!!! EL JUEGO ALMACENA PARA SIEMPRE LOS VALORES DE LOS SIGUIENTES COMANDOS pc.setqf -----> nos permite asignar un determinado valor a un personaje de modo que podamos usar el comando pc.getqf para crear condiciones que impliquen que el personaje tenga ese valor concreto para activarse. pc.setqf("nombredelqf", valor) otra forma pc.setqf("kekomola", pc.getqf("kekomola") + 1) ejemplo: pc.setqf("kekomola", 2) --> valor fijo pc.setqf("kekomola", pc.getqf("kekomola") + 1) ---> Cada que se use aumenta 1 pc.getqf -----> Chekea que valor tiene el comando anterior ejemplo: if pc.getqf("kekomola") == 5 then ----> se comprueba el valor de kemola que es el valor que se acumulo en el comando anterior. Ejemplo combinado: quest item begin state start begin when 70045.use begin pc.setqf("buenas", pc.getqf("buenas") + 1) if pc.getqf("buenas") == 1 then chat("buenas") elseif pc.getqf("buenas") == 2 then chat("que tal") elseif pc.getqf("buenas") >= 3 then chat("me aburro") end end end end Ejemplo Practico: quest muertes begin state start begin when kill with not npc.is_pc() begin pc.setqf("mobs", pc.getqf("mobs") + 1) chat("LLevas "..pc.getqf("mobs").." matados en tu juego") end end end --------------------------------------------------------------------------------------------------------------------------------------------- horse.unsummon() -----> Nos permite guardar el Caballo horse.summon() -----> Nos permite sacar el caballo horse.set_level(nivel) -----> Asigna un nivel al caballo letter : Relacionado con las letters (explicación en otro capitulo). button : Relacionado con las letters (explicación en otro capitulo). info : Relacionado con las letters (explicación en otro capitulo). nombre.timer : Cuando el timer llamado con nombre llega a 0, empieza el contenido del when. nombre.server_timer : Cuando el server_timer llamado con nombre llega a 0, empieza el contenido del when. ---------------------- Como hago yo para saber que valor tiene en el qf cierto personaje? es decir puedo poner una ques con el mismo nombre del qf para todos los personajes? y si es así como hago yo para saber con otra quest distinta que valor del qf tiene un personaje X ? pc.getf('nombrequest','nombreqf') pc.getqf = get playing character quest flag pc.getf = get playing character flag -----------------------
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  9. Me Gusta
    Rensr Animations reacted to KeKo in [Capitulo Especial] Funciones de uso habitual   
    Buenas zoneros! Despues de unas pequeñas ( :menti: ) vacaciones sin hacer ningún capítulo vuelvo a la carga cn el curso de creación de quests.
     
    El capítulo de hoy es especial, ya que no sigue el recorrido que estamos haciendo raul y yo a la hora de enseñaros a hacer quests de metin2. Os hemos estado enseñando qué es una quest, como se estructura, cuales son los elementos que la forman, etc pero nos faltaba contaros un poco sobre las acciones que realiza una quest.
     
    Por lo tanto esta vez os explicaré como se utilizan unas cuantas funciones que usareis con mucha frecuencia mientras hagais quests básicas de metin2.
     
     
    Antes de nada: Qué es una función en una quest?
     
    Como tengo dicho en este curso:
     
    Por lo tanto: Una funcion es una accion que se desarrolla en una quest. Si lo pensais de esta manera, los otros elementos de una quest son como preposiciones, adverbios, etc que ayudan a enlazar o condicionar las funciones: que son como los verbos dentro del lenguaje de las quests (si os fijais la funcion say es como pensar en el verbo decir).
     
     
    En la lengua hay muchos verbos, hay muchas funciones de las quests tambien??
     
    Por supuesto! La cantidad de funciones que nos permite utilizar un game de metin2 es enorme, y es como la tabla periódica de los elementos: os puede acojonar diciendo que hay que saberselos todos, pero no es necesario saberselos todos, sino entender como funcionan (saberse unos cuantos claros) y mediante la práctica y la revision de otras quests aprender a utilizarlos.
     
     
    Y cuando estoi haciendo una quest que funcion debo usar??
     
    Eso depende de la quest, si tu quieres hacer una quest en la que un npc te habla pues usarás la funcion say, si quieres dar un item a un personaje utilizarás la funcion pc.give_item2, etc Cada quest es un mundo, pero vereis que hay una serie de funciones que se suelen utilizar con mas frecuencia.
     
    Por lo tanto, me dejo de explicaciones y vamos al rollo
     
     
    Funciones habituales y como utlizarlas:
     
    Funciones numero 1 - Say , chat y notice_all:
     
    La que para mi es la funcion más utilizada de todas es la funcion:
     

    say Esta funcion nos permite que el personaje que está jugando a nuestro servidor vea un diálogo en su pantalla, ya sea un diálogo empezado por un item, por un npc, en un momento concreto (logeandote, siendo cierto nivel, entrado a cierto mapa...).
     
    El funcionamiento básico de la funcion say es el siguiente:
     

    say("Texto") Como veis ponemos la funcion say, luego abrimos un partentesis y entre " " ponemos el texto que queremos que se vea en el juego. Ojo! Si se os cuela alguno de los " " al principio o al final del texto, la quest no irá correctamente.
     
    Cada vez que que pongais otro say os pondra la nueva linea debajo de la anterior, es decir:
     

    say("Hola keko") say("estas enseñando a usar el say") Este texto tendra 2 lineas, la primera dirá: hola keko, y la segunda estará justo debajo de la primera y dirá: estas enseñando a usar el say.
     
    Un pequeño detalle: cuando usamos un say es como cuando escribimos en una libreta, no podemos escribir infinitamente, sino que cada linea tiene una cantidad de letras en las que pasa a la siguiente linea aunque no pongamos otro say.
     
    Lo bueno es que el zonero Elite ha compartido un archivo para el root de vuestro cliente que os permite alagar ese número de palabras, y aqui lo teneis en el spoiler por si quereis ponerlo en vuestro cliente, si no tened en cuenta que muchas palabras en un say harán que se escriban en varias lineas.
     
     
     
     
    Ahora otro detalle: si queremos dejar una linea en blanco (seria como darle a enter si escribieramos normal) simplemente tendreis que poner un say sin nada dentro, de esta manera:
     

    say("") Es algo que yo os aconsejo como creador de quests, ya que quedan mucho mas ordenado un diálogo con espacios entre párrafos, y aunque puedes ponerlo todo seguido siempre queda más bonito esteticamente.
     
    Otra cosa a tener en cuenta es que hay varios tipos de says, que son los siguientes:
     

    say_title("Curso de quests: Capitulo especial") - El say_title nos permite escribir (como dice su nombre) el título de un diálogo, que se distingue porque sale de color blanco en la quest.
     

    say_reward("Enseña a metin2zone como usar el say") - El say_reward significa literalmente que es un say para una recompensa, y si lo ponemos en nuestra quests se verá de un color mas oscuro que el resto del diálogo.
     

    say_red("Metin2Zone curso de quests") say_blue("Metin2Zone curso de quests") say_yellow("Metin2Zone curso de quests") - El say_color se utiliza si antes habías añadido al questlib de vuestro servidor la libreria de BlackYuko que hace que las funciones say_red/blue/green/etc enlacen con la funcion que permite cambiar el color de un say y así poder ver en nuestros diálogos lineas de diferentes colores.
     
    En el spoiler teneis el post de BlackYuko por si quereis usar says en colores.
     
     
     
     
    Por último, puede haber casos en los que querais mostrar una variable en un say (el siguiente capi habla sobre las variables no os preocupeis si no os enterais mucho) lo hareis de la siguiente manera:
     

    say("Hola, me llamo "..pc.get_name().."") Como veis, para mostrar la variable del nombre teneis que ponerlo entre ".. .." con la funcion que quieres mostrar como texto entre ellos.
     
    La funcion chat funciona igual que la funcion say, pero simplemente os saldrá el dialogo escrito en la barra de chat en vez de una ventana.
     

    chat("Hola") Por ultimo otra funcion muy comun es la de notice_all("Texto"), que escribira el dialogo como si un gm hablara poniendo /n
     

    notice_all("Tonto el que lo lea") Esta funcion tiene una variante que es notice_in_map, que no se utiliza mucho pero que hace lo mismo que un notice_all pero solo en el mapa en el se activa el dialogo.
     

    quest ejemplo begin state start begin when 70045.use with pc.get_map_index() == 103 begin notice_in_map("los que esteis en este mapa me leereis") end end end Os habreis quedado pensando: tanto rollo para aprender a usar el say??? Pues sí, por mucho que parezca la funcion más básica tiene sus detalles que es bueno saber para utlizarla lo mejor posible. 
    Funciones numero 2 : Los pc.algo
     
    En la ultima parte de la explicacion del say os habreis fijado (espero) que he usado la funcion pc.get_name() para explicaros como mostrar eso en una quest. Pues hay una serie de funciones que afectan al personaje al que va encaminada la quest: ya sea para cojer información del jugador al que afectan, para poner una condicion al personaje, o para añadir algo informacion al personaje.
     
    Esta serie de funciones son las que llamaremos pc.algo y son muy variadas (asi que solo os contaré como funcionan algunas que usareis habitualmente)
     
    - pc.get_name() , pc.get_level() , pc.get_empire() , pc.get_map_index() , pc.get_hp() , pc.get_sp() , pc.get_exp() , pc.get_job() , pc.get_sex() , pc.get_local_x , pc.get_local_y , etc : Cada una de estas funciones nos proporciona informacion del personaje al que afectan y en el orden en el que están: nos dan su nombre, nivel, reino, mapa en que esta, cantidad de hp, cantidad de sp, de exp, profesion (cuerpo/magia negra, etc) , sexo , cordes x en la que se encuentra y cordes y en las que se encuentra.
     
    Para usarlas simplemente debereis escribirlas asi como las puse. Ojo! No os olvideis nunca del parentesis en funciones que lo necesitan, o no funcionaŕan (pc.get_map_index == 240 esta mal escrito, tiene que ser pc.get_map_index() == 240).
     
    Se utiliza para 2 cosas: comparar el nivel del pj con el nivel que queramos a la hora de hacer una condicion, o para mostrarlo en un diálogo (recordad que es entre ".. .." en el segundo caso). Veamos ejemplos de algunas de ellas.
     

    quest nombre begin state start begin when login with pc.get_hp() <= 0 begin chat("jajajajaja estas muerto") end end end
    quest nombre2 begin state start begin when login begin chat("Bienvenido al servidor "..pc.get_name()..", que lo pases bien") end end end  

    quest item begin state start begin when item.use begin if pc.get_empire() == 1 then notice_all("Soi del reino shinsoo") elseif pc.get_empire() == 2 then notice_all("Soi del reino chunjoo") elseif pc.get_empire() == 3 then notice_all("Soi del reino jinno") end end end end
    quest exp begin state start begin when login with pc.get_exp() < 0 begin local exppj = pc.get_exp() chat("Anda tienes exp negativa") chat("te la pondre en 0 otra vez") pc.give_exp2(-exppj) end end end  
     
     
     

    quest nivel begin state start begin when levelup begin chat("Has subido a nivel "..pc.get_level()..", enorabuena") end end end Bien creo que ya os haceis una idea de como va la cosa, pasemos a otras funciones del tipo pc.algo muy utilizadas:
     
    - pc.give_item2("iditem" , cantidad) , pc.remove_item("iditem", cantidad) , pc.count_item("iditem", cantidad) : Otras de las funciones mas utlizadas de todas. Estas funcione nos permite dar un objeto, quitar un objeto o comprobar si tiene un objeto el jugador al que afecte la quest.
     
    La forma de escribir esta funcion es la que pongo ahi: especificando en el parentesis la id del item y la cantidad del mismo. Veamos algunos ejemplos:
     

    quest toma begin state start begin when 20095.chat."Regalitooo" begin say("Hola feo, quieres un item?") say("") local regalo = select ("Si" , "No") if regalo == 1 then pc.give_item2("27003", 200) -- aqui esta el que nos interesa chat("toma potas!") elseif regalo == 2 then return end end end end
    quest curso begin state start begin when 70044.use begin pc.give_item2("71042", 1) pc.remove_item("70044", 1) end end end
    quest hola begin state start begin when 20095.chat."Condiciones" begin if pc.count_item("27003") < 200 then say("Vaya no tienes lo que quiero") say("vente otro dia") return end say("Yupi tienes mis potas!") say("me las quedo y te doi unas peores muajaja") pc.remove_item("27003", 200) pc.give_item2("27002", 200) end end end Vamos con otras funcion muy habituales:
     
    - pc.warp(cordesx , cordesy) : Esta funcion nos permite llevar a un personaje a unas cordes concretas, que debemos especificar en el parentesis, poniendo al final de las cordes los dos ceros tipicos de un atlasinfo.
     

    quest porterdemano begin state start begin when 70045.use begin say_title("Porter") say("") say("Nos vamos a otro mapa?") local port = select ("Vale" , "Paso") if port == 1 then pc.warp(510400 , 408800) elseif port == 2 then return end end end end - pc.mount(idmontura, tiempo) : Esta funcion os servira para montar al personaje en un mob (que se suele ser uno que se pueda montar xd). Debemos poner en el parentesis la id de la montura y el tiempo que queremos que esté montado.
     
    Nota: el tiempo se puede escribir en segundos o multiplicando. Si lo hacemos en segundos pues ponemos por ejemplo 60 y durará un minuto, y si lo hacemos multiplicando 60*5 son 5 minutos, 60*60*5 son cinco horas y así.
     

    quest montura begin state start begin when 70044.use begin pc.mount(20110, 60*30) pc.remove_item("70044" , 1) end end end - pc.change_money(cantidad) y pc.give_exp2(cantidad): Estas dos funciones os sirven para dar yang (change_money) o exp a un personaje (give_exp2).
     
    Para usarlas simplemente debeis poner entre el parentesis la cantidad de yang o exp que quereis dar al personaje
     

    quest famoso begin state start begin when 20094.chat."Soi famoso" begin say_title("La fama") say("") say("Si quieres hablarme") say("tendras que darme 500k") local fama = select ("Lo hare" , "Paso") if fama == 1 then pc.change_money(-500000) say("Ala, ya hablaste conmigo") elseif fama == 2 then return end end end end
    quest expmas begin state start begin when 70042.use begin pc.give_exp2(100000) pc.remove_item("70042", 1) chat("Toma exp!") end end end - pc.is_gm() , pc.is_dead() , pc.is_guild_master() , pc.is_polimorphed() : Este tipo de funciones os permiten que tenga lugar la accion si el personaje cumple lo que dice la funcion, como puede ser ser gm, estar muerto, ser jefe de gremio, estar polimorfado, etc
     

    quest gm begin state start begin when login with pc.is_gm() begin chat("Bienvenido a tu servidor gm") end end end
    quest caballo begin state start begin when 70045.use begin if pc.is_polymorphed() then chat("No puedes montarte a una montura polimorfado") return end pc.mount("20111", 60*60*60*60*5) end end end Y por supuesto hay muchas mas funciones que afectan a un personaje, pero tendreis que ir descubriendolas y probandolas :yaoming: , yo solo os dire algunas.
     
    3 - Funciones varias:
     
    Veamos ahora algunas funciones que no son diálogos ni pc.algo:
     
    - mob.spawn(mob, cordesx, cordesy, cantidad) : Con esta funcion podreis invocar un mob en el mapa en el que os encontreis en unas cordes concretas.
     
    Para usarla ponemos la id del mob, las cordes x, las cordes y y la cantidad de ese mob.
     

    quest itemmaldito begin state start begin when 70042.use begin chat("Ha aparecido un monstruo en el mapa") mob.spawn(1903, 340, 250, 1) pc.remove_item("70042" , 1) end end end - affect.add_collect(apply.bonus,cantidad,tiempo) y affect.remove_collect(apply.bonus,cantidad,tiempo): Estas dos funciones os permiten dar un bonus a un personaje, durante un tiempo determinado y quitarselo.
     
    Para usarlas pondremos en el parentesis el nombre que el bonus tiene en la tabla item_attr o item_attr_rare del navicat, la cantidad, y el tiempo (como explique antes) que durará. Si quereis que deje de tener efecto el bonus antes del tiempo estipulado pondreis la funcion igual pero con affect.remove en vez de affect.add.
     

    quest fuerza begin state start begin when 70072.use begin affect.add_collect(apply, ATT_SPEED, 15, 60*15) chat("Has ganado 15% de velocidad de ataque") chat("durante media hora, aprovechala") end end end - horse.summon() , horse.unsummon(), horse.set_level("nivel") , horse.advance() , horse.ride(), etc: Las funciones tipicas de un caballo, como son las de invocarlo, mandarlo al establo, subirlo a un nivel concreto , subirlo un nivel o montar el caballo.
     
    La funcion de ponerle un nivel debe llevarlo en el parentesis:
     

    quest librocaballo begin state start begin when 50053.use begin horse.summon() horse.ride() end end end - pc.setqf y pc.getqf, game.set_event_flag y game.get_event_flag : Estas 4 funciones son muy comunes pero tendrán sus capítulos aparte explicando su funcionamiento.
     
    Como veis hay muchisimas funciones y aqui solo os he explicado unas pocas, si quereis saber todas las que hay yo suelo mirarlo en este post:
     
     
     
     
    Y bueno eso es todo amigos!! El mundo de las quest se os va desvelando cada vez más, espero que ahora ya podais hacer mejor vuestras quests y preparaos porque va a haber un examen!! :trolldad:
     
    Y por terminar, recordad!!
     
    :pokerface:
  10. Me Gusta
    Rensr Animations reacted to KeKo in [TIP] Meter nuevas Quests.   
    Hola a todos, para los que querais meter nuevas quests en vuestros servidores, hoy os dejare esta guia de como hacerlo.
     
    *Si durante alguno de estos dos metodos os da un error de librerías, aquí os dejo las librerias para files de 32 bits, y para files de 64 bits.
     
    Link resubido de las de 32bits:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Link resubido de las de 64 bits:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    *Lo siento no me fijé que no iban los links
     
     
    Hay 2 metodos:
     
    1- Mediante el make.sh que viene por defecto en los files de metin2 y que para usarlo para cargar una nueva quest tendreis que hacer lo siguiente:
     
    - Encendeis vuestro servidor hasta despues de logearos.
    - Poneis el siguiente comando (o el mismo pero con la ruta en la que este la carpeta quest en vuestros files)
     

    cd /home/game/quest - Meteis vuestra nueva quest (por ejemplo logeo.quest)
    - Ahora abris el archivo locale_list , que puede tener un nombre diferente dependiendo de los files, pero sera algo acabado en (_list).
    - Al final del archivo, poneis el nombre de vuestra nueva quest, con el .quest incluido (logeo.quest por ejemplo), LE DAIS UN ENTER AL FINAL DEL ARCHIVO, guardais y cerrais.
    - Ahora solo teneis que volver al bsd, y poner:
     

    chmod 777 make.sh && sh make.sh - Una vez hecho eso ya estara cargada vuestra nueva quest.
     
    - Inconvenientes de este metodo: Cargais la lista entera de quests.
     
    *Si haceis esto con el servidor encendido, poned reload q con vuestro gm y ya estara funcionando la nueva quest.
     
     
    2- Podéis hacer el método que a mi más me gusta, que es simplemente ir a la carpeta quest (cd /home/game/quest) y una vez allí poner el siguiente comando:
     

    ./qc nombredetuquest.quest Y una vez hecho eso ya os cargará la nueva quest.
     
    - Ventajas de este metodo: Solo recargas la quest que quieras y no todas como en el make.sh
  11. Me Gusta
    Rensr Animations reacted to KeKo in [TIP] Hacer un item comerciable   
    Hola a todos, hoy he hecho una guía para hacer un item comerciable, en la guía uso las emperadores pero vosotros podeis hacer comerciable cualquiera.
     
    Paso1:Ponemos el server on , abrimos el Navicat y entramos a los datos de nuestro server.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    Paso2:Vamos a la tabla player.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    Paso3:Abrimos la tabla Item_proto.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    Paso4:Vamos hasta el objeto que queremos hacer comerciable, en este caso las imperiales.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    Paso5:En la columna antiflag, que es la que determina que tipo de pj puede poner una armadura o usar un arma, y ponemos:
    Caso1:0; para que una imperial sirva para los cuatro tipos de pj .
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    Caso2:56, 52, 44, 28; para que cada una sirva para un pj.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    56-Guerrero.
    52-Ninja.
    44-Sura.
    28-Chamán
     
    Aparte si queremos:
     
    1-Solo la pueden poner pjs hombre.
    2-Solo la pueden poner pjs mujer.
    284=28=Chamanes.
    288=44=Suras.
    312=52=Guerreros.
    308=52=Ninjas.
    32=300=Guerrero, ninja y sura (como en las armas).
     
    Una vez hecho todo, reboteamos el server y al volver a ponerlo on, lo que hayais hecho comerciable será comerciable y se podrá vender .
  12. Me Gusta
    Rensr Animations reacted to ♥ zTesTz ♥ in [SERVERFILES]Metin2Rage VDI!   
    prueba esos bro

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  13. Me Gusta
    Rensr Animations reacted to EzekielitohMercury in [SERVERFILES]Metin2Rage VDI!   
    Bueno amigos como vi que mucho no pudieron montar los .tar.gz asi que los monte & los subi espero que les sirva & no olviden dejar El "Me Gusta" & Decir Gracias :33 XD
    DESCARGA
    SERVERFILES

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. CLIENTE
    MEGA: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    MEDIAFIRE: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    PARCHE DE TORRE NEMERE CLIENTE

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. CREDITOS
    asusta99
    EzekielitohMercury (Ezekielitoh) por subirlos & montarlos en VDI
    DATOS DE LA MAQUINA
    Usuario:root
    Contraseña:dar enter no poner nada
    COMANDOS PARA ENCENDER EL SERVIDOR
    DATOS DE NAVICAT
    ID: ragemt2 pass: susta CUENTA DEL JUEGO
    ID:ragemt2 CONTRASEÑA:123
  14. Me Gusta
    Rensr Animations reacted to Zaymax in EterNexus Compilador / Descompilador - ( EIX/EPK NO XML)   
    Bueno chicos os traigo este compilador / descompilador, tiene una sensilla interfaz y ala vez no hace falta hacer xml ( ya que el programa mismo no los hace) basta con poner vuestros archivos en las carpetas de los eix/epk.
    Descarga por MEGA(Link actualizado por @Dilong): Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Recomiendo actualizar las librerias c++ por si os da el error de mscore100.dll.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Creditos:
    Luscha, Inforge.
  15. Me Gusta
    Rensr Animations reacted to harvoures in [GUIA] Traducir Cliente Metin2   
    Hola chic@s hoy les traigo un pequeño video sobre como traducir cualquier cliente 40k + de metin2 al español.
     
    Aqui esta el video, sigan los pasos.
     

     
     
    Descargas:
     

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

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     - No usen el mob_proto, pues esta enscriptado y da errores. Usen los que les dejare a continuacion.
     
     

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

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Cualquier duda, comenten
  16. Me Gusta
    Rensr Animations reacted to Shang in [RLS]Item_proto y mob_proto en español (16/04/2014)   
    En el adjunto os dejo el descompilador que he usado para el item_proto y el mob_proto del cliente.
     
    Y en el otro adjunto el item_names.txt, item_proto.txt, mob_names.txt, mob_proto.txt, totalmente en español y actualizados a fecha de hoy. También están el item_proto, y mob_proto, compilados y descompilados del cliente.
     
     
    Saludos!

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  17. Me Gusta
    Rensr Animations reacted to Johan™ in [Release] ItemProto & MobProto 18.5 en español   
    item_names.txt / item_proto.txt
    mob_names.txt / mob_proto.txt

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
×
×
  • Crear nuevo...