Jump to content

iMixxx

Miembro
  • Contador contenido

    31
  • Ingreso

  • Última visita

Actividad de reputación

  1. Me Gusta
    iMixxx reacted to AlphaDesign in [Gratis] Calendario de Eventos (Solo PSD)   
    Hola, hoy y con permiso del dueño de Realm2 os traigo el calendario de eventos diseñado en su día.
    Espero que os guste y el que quiera aprovecharlo, ¡adelante! 🙂

    Descarga:


  2. Me Gusta
    iMixxx reacted to SzC in [Aporte] Unbugged Max Yang   
    Max yang desbug.
     
    Descarga:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Creditos: board legend
  3. Me Gusta
    iMixxx reacted to DaksaM in Armas animadas version   
    ##.-Implementar armas con movimiento
    Source Client :
    (DEBES BUSCAR)
    Abre>>>>> Locale_inc.cpp
    Agrega esto en algún lugar
    #define ENABLE_ARME_EFFECT_FULGER

    Después de abrir  >>>>>>instancebase.cpp
    Buscar:
    >>>> UINT CInstanceBase::__GetRefinedEffect(CItemData* pItem)
    Una vez que encuentre esta función, hasta esto:

            if (m_swordRefineEffectRight)
                m_swordRefineEffectRight = __AttachEffect(m_swordRefineEffectRight);
            if (m_swordRefineEffectLeft)
                m_swordRefineEffectLeft = __AttachEffect(m_swordRefineEffectLeft);
            break;
    ####.---------Pones esta función:        

    #ifdef ENABLE_ARME_EFFECT_FULGER
            if (pItem->GetSubType() == CItemData::WEAPON_SWORD) //// ESPADA ////
            {
                DWORD vnum = pItem->GetIndex();
                if (vnum >= ID && vnum <= ID) // Schimba  "ID" pe  ID (vnum) de tu arma
                {
                    __ClearWeaponRefineEffect(); // Clear the previous effect
    ////Aici schimbi numele la setu-l  care il pui/////
                    m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW1; //  NEW EFFECT ////Aici schimbi numele la setu-l  care il pui/////
                }
            }
            if (pItem->GetSubType() == CItemData::WEAPON_SWORD)
            {
                DWORD vnum = pItem->GetIndex();
                if (vnum >= ID && vnum <= ID) // Schimba  "ID" pe  ID (vnum) al armei tale
                {
                    __ClearWeaponRefineEffect(); // Clear the previous effect
    ////Aici schimbi numele la setu-l  care il pui/////
                    m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW2; //  NEW EFFECT ////Aici schimbi numele la setu-l  care il pui/////
                }
            }
            if (pItem->GetSubType() == CItemData::WEAPON_TWO_HANDED) // DOS MANOS //
            {
                DWORD vnum = pItem->GetIndex();
                if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma
                {
                    __ClearWeaponRefineEffect(); // Clear the previous effect
    ////Aici schimbi numele la setu-l  care il pui/////
                    m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW3; //  NEW EFFECT ////Aici schimbi numele la setu-l  care il pui/////
                }
            }
            if (pItem->GetSubType() == CItemData::WEAPON_BOW) // ARC //
            {
                DWORD vnum = pItem->GetIndex();
                if (vnum >= ID && vnum <= ID) // Schimba  "ID" pe  ID (vnum) al armei tale
                {
                    __ClearWeaponRefineEffect();
    ////Aici schimbi numele la setu-l  care il pui/////
                    m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW4; //  NEW EFFECT ////Aici schimbi numele la setu-l  care il pui/////
                }
            }
            if (pItem->GetSubType() == CItemData::WEAPON_FAN) // CEPTRU //
            {
                DWORD vnum = pItem->GetIndex();
                if (vnum >= ID && vnum <= ID) // Schimba  "ID" pe  ID (vnum) al armei tale
                {
                    __ClearWeaponRefineEffect(); // Clear the previous effect
    ////Aici schimbi numele la setu-l  care il pui/////
                    m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW5; //  NEW EFFECT ////Aici schimbi numele la setu-l  care il pui/////
                }
            }
            if (pItem->GetSubType() == CItemData::WEAPON_BELL) // FAN// 
            {
                DWORD vnum = pItem->GetIndex();
                if (vnum >= ID && vnum <= ID) //  Schimba  "ID" pe  ID (vnum) al armei tale
                {
                    __ClearWeaponRefineEffect(); // Clear the previous effect
    ////Aici schimbi numele la setu-l  care il pui/////
                    m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW6; //  NEW EFFECT ////Aici schimbi numele la setu-l  care il pui/////
                }
            }
            if (pItem->GetSubType() == CItemData::WEAPON_DAGGER) // DAGA //
            {
                DWORD vnum = pItem->GetIndex();
                if (vnum >= ID && vnum <= ID) // Schimba  "ID" pe  ID (vnum) al armei tale
                {
                    __ClearWeaponRefineEffect(); // Clear the previous effect
                    m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW7; //  NEW EFFECT ////Aici schimbi numele la setu-l  care il pui/////
                    m_swordRefineEffectLeft = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW_LEFT7; // NEW EFFECT 
    ////Aici schimbi numele la setu-l  care il pui/////
                }
            }
    #endif
    Después de las aperturas >>>>>>>> InstanceBase.h >>>>>>>>>
    EFFECT_REFINED_NUM,

    y cuando lo encuentres encima de él pones esto:

    #ifdef ENABLE_ARME_EFFECT_FULGER
                EFFECT_SWORD_REFINED_NEW1,
                EFFECT_SWORD_REFINED_NEW2,
                EFFECT_SWORD_REFINED_NEW3,
                EFFECT_SWORD_REFINED_NEW4,
                EFFECT_SWORD_REFINED_NEW5,
                EFFECT_SWORD_REFINED_NEW6,
                EFFECT_SWORD_REFINED_NEW7,
                EFFECT_SWORD_REFINED_NEW_LEFT7,
    #endif
    Ahora abrimos  playersettingmodule.py EN TU CLIENTE METIN2

        chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse")
    Debajo de eso, lo codificamos a punta de pistola, aquí hay un ejemplo:
        chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "PART_WEAPON", "D:/ymir work/item/weapon/fms.mse")
    Para todas las armas excepto el arco y la daga, use PART_WEAPON, en el caso del arco use esta función
    PART_WEAPON_LEFT
    Y para la daga se usa esto:
        chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+52, "PART_WEAPON", "D:/ymir work/item/weapon/ela.mse")
        chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+53, "PART_WEAPON_LEFT", "D:/ymir work/item/weapon/ela.mse")
        
        
        
    Tenga cuidado con las pestañas, espero que les resulten útiles.
     
    si alguien lo puede corregir en caso de tener algún error lo modifica pero ahí esta el como poner las armas mde (o armas con movimiento ) y es lo mismo para poner alas en formato mde con movimiento  saludos
     
     
    arco y alas mde ( con movimiento) 

    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
    iMixxx reacted to Kenshi Torres in Armas animadas version   
    Link:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  

  5. Me Gusta
    iMixxx reacted to Cris in SET DE ARMAS...   
    ENCONTRÉ ESTE SET DE ARMAS CON TODOS SU ARCHIVOS HE ICONOS EN UN FORO RUMANO Y LA VERDAD ME GUSTO BASTANTE Y SE LOS VENÍA A COMPARTIR SI ES QUE ALGUIEN NO LO TIENE...
     
    LA VERDAD NO SE QUIEN SEA EL CREADOR PERO SI ANDA POR ESTOS LADOS LE PIDO POR FAVOR QUE ME DIGA PARA PONER LOS CRÉDITOS!
     
    IMÁGENES IN GAME:
     

     
    Links: 

    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.  
     
    Quizá ya estén posteadas pero vi todas las armas del foro y no las vi, solo vi algunas pero estaban solas... No el set completo y sin los iconos.
     
    Creditos: Baso
     
    ❤️ Agradecer no cuesta nada señores. ❤️ 
     
     
     
  6. Me Gusta
    iMixxx reacted to [D]ELARO ✓ in SF MartySama 4.9.89 r88   
    Estos files ya estaban en el foro pero esta caído el link así mismo como en el foro turco, los files son de Legendy con base MartySama en su versión 4.9.89 r88
    #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #
    CONTENIDO:
    Solo traduje a español en cliente y servidor item_proto, mob_proto, locale_game y locale_interface.
    Falta traducir quest, locale_string y algunas cosas mas en locale_interface que son "sistemas" añadidos, pero eso ya será cosa de ustedes.
    Si hay bugs y sus fixes podrían añadirlo en comentarios y yo podría añadirlo despues al post.
    #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #
    VDI: se recomienda asignar al vdi mínimo 4gb de ram, no probé con menor cantidad.
    Mysql 5.6
    GCC6
    Visual Studio 2019
    VDI:
    Usuario: root Contraseña: delaro
    Mysql:
    Usuario: root Contraseña: 12345
    Esta montado directamente en un VDI funcionando sin ningún problema y ya listo para compilar source game.
    Una vez hayan configurado su ip con el comando bsdconfig, para iniciar pueden hacerlo como yo normalmente lo hago, cd /admin ENTER sh admin.sh ENTER y tendrán el menú a la vista, ya solo seria escribir 1 ENTER e iniciaran los 2 channels sin ningún tipo de complicaciones.
    #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #     #
    CUENTA GM:
    Usuario: marty Contraseña: 1
     
    IMAGENES DENTRO DEL JUEGO:
     
    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. 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. Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    LINK DE DESCARGA:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
     
  7. Me Gusta
    iMixxx reacted to Serex in [Teoria]Curso C++   
    Sección de Teoría
     
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 
    Objetivos:
    - Introducir los conceptos básicos de programación, para poder construir los primeros programas. - Introducir los principales tipos de datos disponibles en C++ para representar información del mundo real. - Enfatizar, desde un principio, la necesidad de seguir buenos hábitos de programación.   Debes iniciar sesión para ver el contenido del enlace en esta publicación. Objetivos: - Introducir las estructuras condicionales que nos permitirán realizar saltos hacia adelante durante la ejecución del código. - Introducir las estructuras repetitivas que nos permitirán realizar saltos hacia atrás durante la ejecución del código. - Introducir pautas de programación en la construcción de las estructuras condicionales y repetitivas.  
  8. Me Gusta
    iMixxx got a reaction from abbj in Bug Items   
    Eso me dá, espero puedas ayudarme con esto.
     
    Gracias!

    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    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. Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  9. Me Gusta
    iMixxx got a reaction from Frezi Op in Help give_basic_weapon   
    Buenas
    Les dejo la quest.
    (Ojo, que el usuario Kenshi Torres no es el mismo que yo)

    Gracias!

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  10. Me Gusta
    iMixxx got a reaction from Erich Ducke in Help give_basic_weapon   
    Hola denuevo!
    Tengo este problema con la quest de inicio, todo bien pero al cerrar el cuadro
    se quedan las letras. Saben qué podrá ser?
    Adjunto quest.

    Gracias!

    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  11. Me Gusta
    iMixxx 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:
  12. Me Gusta
    iMixxx got a reaction from Frezi Op in Help give_basic_weapon   
    Hola denuevo!
    Tengo este problema con la quest de inicio, todo bien pero al cerrar el cuadro
    se quedan las letras. Saben qué podrá ser?
    Adjunto quest.

    Gracias!

    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  13. Me Gusta
    iMixxx reacted to Shogun in World Editor (edición mejorada)   
    Hoy os traigo una versión actualizada del editor de mapas de Ymir creada por Xunil (lolor2 en metin2dev)
     

     
    Las características nuevas son:
     
    Rendimiento mejorado
    Idioma inglés
    Granny 2.9
    DirectX 9
    Rotación de la cámara con el botón derecho del ratón
    Posibilidad de cambiar campo de visión (FOV) en el fichero CONFIG
    Límite de 8 texturas por área eliminado
    Filtrado anisotrópico 16x habilitado
     
    Descarga aqui:
     
    World_Editor_Enhanced.zip 4.0 MB Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Si alguien tiene ideas para nuevas funcionalidades que las ponga aquí e intentaré que el autor las añada en una versión futura.
  14. Me Gusta
    iMixxx reacted to Ray M2 in Bug de bonus   
    Hola, el servidor no se que le pasa que osea, es un bug que nunca he visto y no se como atacar, me dicen algo de fixear, pero no se, entonces el bug es el siguiente
     
    Agrego los 5 bonus a un arma, y cuando la coloco en swichtbot a dopar va desapareciendo 1x1 de los bonus hasta quedar limpia el arma, y solo me pasa en arma
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Ayuda pls.
  15. Me Gusta
    iMixxx reacted to fuuton97 in [DUNGEON]Capítulo II - Cómo hacer una Dungeon (PRINCIPIANTES).   
    Hola, estoy de nuevo aquí trayéndoles el segundo capítulo de DUNGEON, y hoy comenzaremos haciendo paso a paso una dungeon sencilla para principiantes, nos profundizaremos en una dungeon muy eficaz, con funciones generales y de su derivado.
    Si te pasaste el Primer Capítulo te lo dejo aquí:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Bien, primero que nada, debemos saber que dungeon es lenguaje LUA, y por lo tanto vamos a usar sus funciones ya sean de dungeon o no.
     
    1. Comenzamos haciendo lo inicial, que es lo que toda quest debe llevar:
    quest dungeon_principiante begin state start begin 2. En este paso comenzamos haciendo el cuerpo de la dungeon. Haremos el NPC que nos va a hacer llevar a X mapa para comenzar la dungeon:
    when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end Bueno, como ven es un simple NPC que te va a llevar a ese X mapa, para comenzar la dungeon.
     
    3. Ahora iremos con el paso dentro del mapa, para darle el comienzo en sí, en este caso pondré que inicie mediante un mob, osea matando a ese mob.
    when 101.kill begin Una vez aniquilado el mob 101, será comenzado la dungeon.
     
    4. Paso seguido ponemos el timer, para que los lleve a comenzar en 5 segundos:
    timer("inicio_dungeon", 5) end   Se preguntarán, ¿Qué es un timer?, pues bien timer quiere decir en su significado literal, tiempo, pero este da inicio en tiempo, ejemplo, si queremos ir a otro lugar ponemos timer, más un nombre para darselo y el tiempo, puede ser en segundos, minutos, etc; también el timer se usa para acabar en un evento o algo.  Esta fue la manera que trate de explicarles, no se si me entiendan bien xD.
     
    5. En este paso ya comenzaremos con el inicio dentro de la dungeon, comenzaremos con el timer que pusimos anteriormente:
    when inicio_dungeon.timer begin 6. Aquí en este paso vamos a usar la primera función "d." de dungeon, y será para que nos lleve a X planta:
    d.new_jump_all(23, 2312, 2122) Explicaré: La función mostrada nos da a ir a todos que se encuentren en ese mapa a esas coordenadas (X y Y), el número 23 que está de primero nos indica el INDEX de ese mapa donde los va a llevar o donde están.
     
    7. El paso séptimo, usaremos nuestra segunda función dungeon, para eso miremos:
    d.setf("fuuton97", 1) Cómo ven pusimos la función "d.setf", donde nos indica un nombre inicial secuencial denominado "fuuton97", cabe decir que se puede colocar cualquier nombre, pero siempre en todos los d.setf se debe colocar el mismo nombre; el número "1", indica que es el primer d.setf, en otras palabras primera planta en la que comenzamos la dungeon.
     
    En este mismo paso colocamos un anunció, para darle ambiente a la dungeon, pero ojo, aquí comenzamos a jugar nuestra imaginación de como haremos divertido esta dungeon. Invocamos al mob con la función "d.spawn_mob".
    Quedaría así:
    d.setf("fuuton97", 1) d.spawn_mob(101, 12312, 123123) d.notice("Están en la Primera Planta!!!!") 8. Seguidamente ponemos a disposición el "juego", llamaremos a un mob que nos permitirá ir a la segunda planta. Le hacemos ambiente de diálogo a la dungeon:
    when 101.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") Cómo ven vemos otra función nueva para ustedes, y es la "d.getf" que es el complemento de "d.setf", en esa hay que colocar el nombre que dimos para todas las plantas, osea fuuton97, en mi caso, pero ustedes pueden colocarle otro nombre; el "1" no hace referencia también como en "d.setf", en otras palabras quiere decir que vamos por la primera planta.
     
    9. Cerramos con un timer que nos va a dirigir a la segunda planta y un end:
    timer("seguda_dungeon", 5) end Hasta ahora toda la dungeon debe ir así:
    quest dungeon_principiante begin state start begin when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end when 101.kill begin timer("inicio_dungeon", 5) end when inicio_dungeon.timer begin d.new_jump_all(23, 2312, 2122) d.setf("fuuton97", 1) d.spawn_mob(102, 12312, 123123) d.notice("Están en la Primera Planta!!!!") d.notice("Encontrar el Perro Salvaje.") end when 102.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") timer("segunda_dungeon", 5) end 10. Iniciamos llamando al timer, y hacemos lo mismo en los pasos anteriores, ambientando con diálogo, haciendo jugadas de kill mob o metines, etc, que vuele su imaginación:
    when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end 11. Ahora llamamos al metin que pusimos y hacemos lo mismo con los pasos anteriores:
    when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end when 8025.kill with d.getf("fuuton97") == 2 begin d.notice("Haveís acabado con un Metin") d.notice("Avanzarán a la tercera planta....") timer("tercera_dungeon", 5) end 12. Acá iniciamos con el timer que dejamos, osea lo llamamos, y en esta tercera planta haremos este jueguito: Pondremos un drop en mob, soltará una llave, al coger la llave damos click derecho y nos llevará a la cuarta y última planta de dungeon.
     
    En este paso conoceremos otras funciones que combinaremos con la dungeon, veamos:
    when tercera_dungeon.timer begin d.jump_all(3123, 123123) d.setf("fuuton97", 3) d.setf("drop_dungeon", 0) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.notice("Encontrar la llave!!!!!!!!!!") end when 103.kill or 104.kill or 105.kill with d.getf("fuuton97") == 3 begin d.setf("drop_dungeon", d.getf("drop_dungeon")+1) if d.getf("drop_dungeon") == 2 game.drop_item(43003, 1) d.setf("drop_dungeon", 0) end end when 43003.use begin item.remove() timer("cuarta_dungeon", 5) end Cómo ven es algo fantástico, el código de esta tercera planta es fácil, igual al de todos, solo invocamos más mob para el drop, utilizamos el game.drop_item para que suelte la llave.
     
    13. Llamamos al timer, y haremos la última planta, que en este caso solo se hizo para 4.
     
    Haremos los mismos pasos cómo los demás, solo veremos una función que agregaremos:
     
    when cuarta_dungeon.timer begin d.jump_all(12312, 13212) d.setf("fuuton97", 4) d.spawn_mob(108, 12312, 12312) d.notice("Acaba con el Jefe y ganarás la Dungeon") end when 108.kill with d.getf("fuuton97") == 4 begin game.drop_item(289, 1) notice_all("El Jugador ".. pc.get_name() .." ha derrotado al Jefe...") d.notice("Acabaron con el Jefe, felicitaciones...") d.notice("Tienen 10 segundos para recoger su premio..") timer("salir_dungeon", 10) end  
    Bueno como ven pusimos el Jefe, al matarlo suelta un item, que es la recompensa, ponemos un anuncio General para que lo vean todos de quien fue el que mató al Jefe, cerramos con un timer de 10 segundos para recoger el premio, y nos llevará para afuera de la dungeon.
     
    14. Último paso, solo añadiremos el timer que nos llevará fuera de la dungeon, o si quieres llevar a todos a sus citys:
    when salir_dungeon.timer begin d.exit_all() end end end También podemos usar la otra función: warp_to_all_village():
    when salir_dungeon.timer begin warp_to_all_village() end end end Por último cerramos con end del when, otro end del begin de inicio y el segundo begin de inicio, con total de 3 end's.
     
     
    Y para ver como quedó toda la dungeon, pequeña pero atendible para este curso:
    quest dungeon_principiante begin state start begin when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end when 101.kill begin timer("inicio_dungeon", 5) end when inicio_dungeon.timer begin d.new_jump_all(23, 2312, 2122) d.setf("fuuton97", 1) d.spawn_mob(102, 12312, 123123) d.notice("Están en la Primera Planta!!!!") d.notice("Encontrar el Perro Salvaje.") end when 102.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") timer("segunda_dungeon", 5) end when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end when 8025.kill with d.getf("fuuton97") == 2 begin d.notice("Haveís acabado con un Metin") d.notice("Avanzarán a la tercera planta....") timer("tercera_dungeon", 5) end when tercera_dungeon.timer begin d.jump_all(3123, 123123) d.setf("fuuton97", 3) d.setf("drop_dungeon", 0) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.notice("Encontrar la llave!!!!!!!!!!") end when 103.kill or 104.kill or 105.kill with d.getf("fuuton97") == 3 begin d.setf("drop_dungeon", d.getf("drop_dungeon")+1) if d.getf("drop_dungeon") == 2 game.drop_item(43003, 1) d.setf("drop_dungeon", 0) end end when 43003.use begin item.remove() timer("cuarta_dungeon", 5) end when cuarta_dungeon.timer begin d.jump_all(12312, 13212) d.setf("fuuton97", 4) d.spawn_mob(108, 12312, 12312) d.notice("Acaba con el Jefe y ganarás la Dungeon") end when 108.kill with d.getf("fuuton97") == 4 begin game.drop_item(289, 1) notice_all("El Jugador ".. pc.get_name() .." ha derrotado al Jefe...") d.notice("Acabaron con el Jefe, felicitaciones...") d.notice("Tienen 10 segundos para recoger su premio..") timer("salir_dungeon", 10) end when salir_dungeon.timer begin warp_to_all_village() end end end Espero que valoren mi tiempo, esto solo es una dungeon explicativa para principiantes, solo digo y hago lo básico, luego iremos añadiendo más funciones, condiciones, etc. 
     
    Aprovecho para decir que se hacen Dungeon's profesionales, con las plantas que quieran, y como quieren que sea, claro no se vallan de la imaginación xD, a tan solo 15 Euros; pueden contáctarme por skype: fuuton97 o enviarme un mensaje por mp al foro.
     
     
    Próximo capítulo: [DUNGEON] Capítulo III - Condiciones y Funciones en Dungeon.
     
    Espero que valoren este POST, me tome mi tiempo para ustedes, no desaprovechen esta oportunidad.
     
    Saludos.
  16. Me Gusta
    iMixxx reacted to jeymapio in Files by Bvural41 - Multi-Language   
    Files by Bvural41 - Multi-Language 
     
    usuario navicat: id: root  pw:123456
    test account (GM) - id: Bvural41 pw: 123456
     






     
     

     
    Solo comparto 
    Creditos: Just4Metin2
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  17. Me Gusta
    iMixxx reacted to PENTAGRAMA in Web FULL, Admin,Coins,Baneo,Comandos,Etc..   
    Hola, amigos De metin2zone...
     
    En Este post Les Traigo una pagina web Completamente FULL, no le hace falta nada. mas que Traducción
    Esta creada por  CMS, algunos ya la Conocen Otros no, Etc. Etc.
     
    Para mi en general me callo como anillo al Dedo Es una delas mejores que e visto.. 
     
     
    Que Trae la web.
    Instalacion
    Registro
    Rankig
    Chat
    Perfiles de usuarios como de GM
    STAFF
    Sistema de noticas(todo Full Para que pongas las noticias bien bonits!
    Editor de noticas
    Sistema De Baneos
    Sitema de Coins Multiplayer
    Sistema de comandos 
    Sistema para Agregar  GMS
    Sistema de Cupones
    Rankig De  gremios y de players y de yang
    Sistema de hacks (para ver quien es hack)
     
    Cuando instales la web Te creara algunas Tablas  n.n
     
     
    Trae una itemshop por defecto pero hace un Pequeño Conflicto que hace que no se vea las Mds en el Panel
     
    Ahora unas Pequeñas imagenes.
     
     



     
     
     
     
     
     
     
     
    La web Es completamente GRATIS, te la puedes Bajar Ahora mismo en la ultima Vercion.
     
     
    DESCARGA:
     
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
     
    Sin duda una delas mejores... n.n
  18. Me Gusta
    iMixxx reacted to ChuchoGamer in C ++ sistema [ITEMSHOP] en el cliente   
    hola buenas les comparto este sistema les dejare foto y link de desarga espero que los disfruten
    link de la foto del sistema 
    https://subefotos.com/ver/?2e1ad87add03c5bece1b95ad66491feao.png link de descarga

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  19. Me Gusta
    iMixxx reacted to Tibelian in Web Avantador + Web simple con panel admin + Web HOW + Itemshop + Pago paypal   
    Pues si has leído el post: 
    Con razón publico todo esto gratis
     
    Web avantador: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Mi primera web metin: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Web Heart Of War: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Itemshop: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Pago por paypal: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
  20. Me Gusta
    iMixxx got a reaction from Meet in Help give_basic_weapon   
    Buenas
    Les dejo la quest.
    (Ojo, que el usuario Kenshi Torres no es el mismo que yo)

    Gracias!

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  21. Me Gusta
    iMixxx reacted to Kenshi Torres in Mazmorra de tiburones COMPLETA   
    Link:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  

  22. Me Gusta
    iMixxx reacted to Kenshi Torres in El mapa de la mina mágica de Metin2   
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  23. Me Gusta
    iMixxx reacted to Kenshi Torres in Mapas pirámides de egipto   
    Link : Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
  24. Me Gusta
    iMixxx reacted to Kenshi Torres in Mapa de Mazmorra Dorada + Misión   
    Link : Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    link de video 
     
     
  25. Me Gusta
    iMixxx reacted to xEdin in cMon i just started x)   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
×
×
  • Crear nuevo...