Jump to content

caanmasu

Members
  • Content Count

    308
  • Joined

  • Last visited

  • Days Won

    15

caanmasu last won the day on May 21

caanmasu had the most liked content!

About caanmasu

  • Rank
    Aficionado

Recent Profile Visitors

2,156 profile views
  1. ¡Hola a todos! Hoy he llegado a los 700 likes. Gracias a todos los que han apoyado mis posts. Saludos a @Kronixer™, @Pegasus mis socios con los que trabajo También a Askira, Nazox, el crack Break, a mi amigo Deiklo, Dur, Viksant, Mau, al admin Peluche, Enju, Delaro, Mix (Legion), Master (Yelson) y todos los que no recuerdo en este momento xD El regalo de hoy es una quest que consiste en agregar un set de armas (skins) en un cofre. En esta quest podrás: - Agregar de la manera más sencilla los sets de armas (skins) que quieras, sin preocuparte por la programación. - Elegir un arma de uno o varios sets de armas (skins), según como lo hayas configurado. - Ver el nombre del set junto con el tipo de arma (espada, daga, dos manos, etc. los que quieras agregar. Se puede poner garras también) - Al elegir el tipo de arma, te mostrará el ícono y te pedirá confirmar. Una vez confirmado, te entrega el objeto y se borra el cofre. - Agregar uno o varios sets en un solo baúl. En ese caso te pedirá elegir según el nombre del set. No tengo fotos pero sé que funciona porque yo lo hice xD weapon_skin.quest quest weapon_skin begin state start begin function bug_control() return pc.count_item(item.vnum) < 1 end function data() return { [1] = { title = "Prueba", --Nombre del set {40159, "Espada"}, --vnum y tipo de arma {40160, "Daga"}, {40161, "Arco"}, {40162, "Dos manos"}, {40163, "Campana"}, {40164, "Fan"}, {40165, "Garras"} }, [2] = { title = "Nemere", {40400, "Espada"}, {40403, "Daga"}, {40404, "Arco"}, {40402, "Dos manos"}, {40405, "Campana"}, {40406, "Fan"}, {40407, "Garras"} }, [3] = { title = "Arrador", {40666, "Espada"}, {40668, "Daga"}, {40669, "Arco"}, {40667, "Dos manos"}, {40670, "Campana"}, {40671, "Fan"}, {40672, "Garras"} }, [4] = { title = "Hongos", {40300, "Espada"}, {40303, "Daga"}, {40304, "Arco"}, {40302, "Dos manos"}, {40305, "Campana"}, {40306, "Fan"}, {40307, "Garras"} }, [5] = { title = "Submarinas", {19960, "Espada"}, {19963, "Daga"}, {19964, "Arco"}, {19962, "Dos manos"}, {19965, "Campana"}, {19966, "Fan"}, {19967, "Garras"} }, [6] = { title = "Cristal", {40408, "Espada"}, {40411, "Daga"}, {40412, "Arco"}, {40410, "Dos manos"}, {40413, "Campana"}, {40414, "Fan"}, {40415, "Garras"} }, [7] = { title = "Jotun", {61110, "Espada"}, {61113, "Daga"}, {61114, "Arco"}, {61112, "Dos manos"}, {61115, "Campana"}, {61116, "Fan"}, {61117, "Garras"} }, [8] = { title = "Hidra", {40590, "Espada"}, {40592, "Daga"}, {40593, "Arco"}, {40591, "Dos manos"}, {40594, "Campana"}, {40595, "Fan"}, {40596, "Garras"} }, [9] = { title = "Zodíaco", {40316, "Espada"}, {40319, "Daga"}, {40320, "Arco"}, {40318, "Dos manos"}, {40321, "Campana"}, {40322, "Fan"}, {40323, "Garras"} } } end when 30335.use or --vnum del cofre 30339.use or 8011.use or 8012.use or 8013.use or 8014.use or 8015.use or 8016.use or 8017.use or 8018.use begin if weapon_skin.bug_control() then return end local list = { [30335] = {1}, --vnum del cofre y seguido el id del set. En este caso muestra el set 1. [30339] = {2, 3, 4, 5, 6, 7, 8, 9}, --vnum del cofre y seguido el id del set. En este caso muestra varios sets. El personaje solo podrá elegir uno. [8011] = {2}, [8012] = {3}, [8013] = {8}, [8014] = {9}, [8015] = {7}, [8016] = {6}, [8017] = {5}, [8018] = {4} } if list[item.vnum] != nil then weapon_skin.giveSkinSet(list[item.vnum]) end end function giveSkinSet(set_elements) local data = weapon_skin.data() local id_set_selected = 1 if table.getn(set_elements) > 1 then local table_names_set = {} for i = 1, table.getn(set_elements) do if data[set_elements[i]] != nil then if data[set_elements[i]].title != nil then table.insert(table_names_set, data[set_elements[i]].title) end end end table.insert(table_names_set, "Cerrar") say_title(item_name(item.vnum)) say() id_set_selected = select_table(table_names_set) if id_set_selected == table.getn(table_names_set) then return end end say_title(item_name(item.vnum)) say() if data[set_elements[id_set_selected]].title != nil then say_title_center(data[set_elements[id_set_selected]].title) end local table_names_weapon = {} for i = 2, table.getn(data[set_elements[id_set_selected]]) do table_names_weapon[i-1] = data[set_elements[id_set_selected]][i-1][2] end table.insert(table_names_weapon, "Cerrar") local weapon_selected = select_table(table_names_weapon) if weapon_selected == table.getn(table_names_weapon) then return end say_title(item_name(item.vnum)) say("Recibirás: ") say_item_vnum(item.vnum) if select("Confirmar", "Cancelar") == 1 then pc.give_item2(data[set_elements[s1]][weapon_selected][1]) pc.remove_item(item.vnum) end end end end ¿Cómo agregar un skin de set de arma? 1. Ten listado el vnum del cofre y los vnum de las armas que pertenecen a ese set. 2. Agrega un nuevo elemento a la tabla data. function data() return { [1] = { title = "Prueba", --Nombre del set {40159, "Espada"}, --vnum y tipo de arma {40160, "Daga"}, {40161, "Arco"}, {40162, "Dos manos"}, {40163, "Campana"}, {40164, "Fan"}, {40165, "Garras"} }, --agrego la coma al final --Aquí voy a agregar este nuevo set [10] = { title = "Set Zone", {11111, "Espada"}, --Si tienes una espada de sura, solo agrega una línea abajo así: {tu_vnum, "Espada Sura"} {11112, "Daga"}, {11113, "Arco"}, {11114, "Dos manos"}, {11115, "Campana"}, {11116, "Fan"}, {11117, "Garras"} }, -- Ten en cuenta el número que agregaste, en este caso yo agregué el 10. No puedes repetir números en la tabla y no necesariamente deben ser en orden. 3. Agrega el cofre when 30335.use or --vnum del cofre 30339.use or 8011.use or 8012.use or 8013.use or 8014.use or 8015.use or 8016.use or 8017.use or 8018.use or --añado el or al final -- Agregando mi cofre de Zone 22222.use -- begin 4. Poner el set o los sets en el cofre local list = { [30335] = {1}, --vnum del cofre y seguido el id del set. En este caso muestra el set 1. [30339] = {2, 3, 4, 5, 6, 7, 8, 9}, --vnum del cofre y seguido el id del set. En este caso muestra varios sets. El personaje solo podrá elegir uno. [8011] = {2}, [8012] = {3}, [8013] = {8}, [8014] = {9}, [8015] = {7}, [8016] = {6}, [8017] = {5}, [8018] = {4}, --pongo la coma --Agregando mi set de Zone [22222] = {10} --el 10 es el id de la tabla del set que agregué } 5. Compilar Hay que compilar necesariamente porque el when item_vnum.use es estático y no le echo mano para que sea dinámico xD Repasemos cómo se vería (sin fotos xD) Cofre con un solo set: Al darle clic al cofre, va a mostrar un say donde muestra el nombre del set y los botones "Espada", "Daga", "Arco", "Dos manos", etc. El personaje elije el arma que desea y le aparece una nueva ventana donde sale el ícono del objeto y un botón que dice confirmar. Al confirmar, el cofre será borrado y el skin será dado. Cofre con varios sets: Al darle clic al cofre, mostrará varios botones con el nombre de los sets. Al elegir alguno de ellos, pasará lo mismo que he mencionado arriba. Espero que sea de alguna utilidad y saludos a todos! weapon_skin.quest
  2. Pocas personas usan Yohara en sus servidores. Si realmente hay alguien interesado en obtener esta modificación, yo libero el sistema. Es un filtro que se realiza incluso en los sistemas de embudo. También estoy desarrollando un server y por el camino he encontrado gente interesante que me ha contactado al privado porque le interesa lo que hago y estamos trabajando de la mano. Un saludo!
  3. Hola! He hecho mi primera edición de C++/Python. Consiste en lo mismo que el nivel requerido al equiparse un arma (objeto equipable), con la diferencia de que ahora el nivel requerido es campeón. Se requiere el sistema de Yohara. Fotos para evidencia [Hidden Content] [Hidden Content] Solo pasaré el sistema al privado al que lo necesite. Mi Discord es Camilo#0869. Saludos!
  4. Hola a todos! He creado un evento llamado Super Metines, que consiste en invocar metines en un mapa, con la diferencia de que cada metin tiene en las mismas coordenadas 5 veces del mismo. Así como se ve en la imagen: [Hidden Content] [Hidden Content] - Un pergamino aparece en el GM y tiene la opción de elegir con botones la cantidad de metines que va a lanzar. - El mapa seleccionado es el desierto. - Puedes agregar los vnums de los metines que quieras, todos caerán aleatorios. - Puedes modificar la cantidad de metines superpuestos, por defecto está en 5. - Una vez lanzada una oleada, aparecerá un anuncio a todos los personajes. - Una vez lanzada una oleada, le aparecerá al GM las coordenadas de los metines invocados. Cualquier personalización te la puedo hacer a pedido. Precio de la quest al privado o mensaje a mi Discord: Camilo#0869 Saludos!
  5. No sé si esto se pueda hacer pero ahí va Pones los bonus normal en el proto, en las columnas attrtypex, attrvaluex Luego quitas la absorción poniendo un 0 en el value0 o value1, alguno de esos dos Quitas la opción del NPC que permite la absorción. (aún no tiene la opción de que se le pueda agregar bonus aleatorios) En jugabilidad esto es demasiado inviable, ya los objetos equipables tienen bonus demasiado altos, y poner un objeto más es recargarlo aún más. Por eso no volvieron a sacar objetos así. Por ejemplo, cuando sacaron cinturones no pusieron demasiados bonus fijos y los 5 aleatorios sino uno o dos bonus fijos suaves. Luego cuando sacaron las skins para armas y armaduras pusieron hasta 3 bonus aleatorios ligeros. Lo mismo en peinados, ese tipo de accesorios no deben tener los bonus como si fueran armas, armaduras, zapatos, escudos, etc. En temas de jugabilidad, si cambiaras lo de la estola, ponle bonus ligeros fijos, incluso ponerle 3 ya es mucho. Y sin bonus aleatorios (objetos encantados). Yo de ti la dejaría tal cual está, con su absorción, que ese es el objetivo de la estola, un saludo.
  6. Esos errores le pueden ocurrir a cualquier base. A lo que yo me refiero es que posteen eso así. En stackoverflow lo hubieran sancionado :V
  7. Tengo un programa que traduce en un segundo el item_names.txt y mob_names.txt.
  8. Debes agregar la función say_yellow en el questlib.lua. function say_blue ( name ) say ( color256 ( 0 , 0 , 255 ).. name .. color256 ( 0 , 0 , 255 )) end function say_red ( name ) say ( color256 ( 255 , 0 , 0 ).. name .. color256 ( 255 , 0 , 0 )) end function say_green ( name ) say ( color256 ( 0 , 238 , 0 ).. name .. color256 ( 0 , 238 , 0 )) end function say_gold ( name ) say ( color256 ( 255 , 215 , 0 ).. name .. color256 ( 255 , 215 , 0 )) end function say_black ( name ) say ( color256 ( 0 , 0 , 0 ).. name .. color256 ( 0 , 0 , 0 )) end function say_white ( name ) say ( color256 ( 255 , 255 , 255 ).. name .. color256 ( 255 , 255 , 255 )) end function say_yellow ( name ) say ( color256 ( 255 , 255 , 0 ).. name .. color256 ( 255 , 255 , 0 )) end function say_blue2 ( name ) say ( color256 ( 0 , 206 , 209 ).. name .. color256 ( 0 , 206 , 209 )) end Te dejé varias, las acabo de sacar de un foro xD
  9. caanmasu

    money_log

    La estructura de la tabla la tienes mal. Pon esta query en log: SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `money_log`; CREATE TABLE `money_log` ( `time` datetime(0) NULL DEFAULT NULL, `type` int(11) NULL DEFAULT NULL, `vnum` int(11) NULL DEFAULT NULL, `gold` int(11) NULL DEFAULT NULL ) ENGINE = MyISAM CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Fixed; SET FOREIGN_KEY_CHECKS = 1;
  10. Te faltan comillas para cerrar el texto traducido: "SHOP_REASON"; "<?el D?kan> Correcto; Acá te faltó el ; "%s ¢¥A ¡¾¨¬AO¡¤I AO¢¬iCO¨ùo ¨ú©ª¨öA¢¥I¢¥U ."; "No puedes ir como monarca %s" Todos los textos que estaban por debajo de "SHOP_REASON" daban error por esas comillas que faltaron. Por supuesto que encontrar ese error es buscar una aguja en un pajar, tuve que usar un programa.
  11. El servidor es la fuente de la verdad. Aunque hay guías para hacer las cosas; hay muchas otras cosas que no se aprenden de guías. Tienes que conocer la estructura del servidor. Revisa cada carpeta de los files, abre cada archivo, revisa para qué sirve cada uno, etc. Todo está en inglés, así que vas a tener que familiarizarte con el idioma. El nombre de los archivos indican todo, por ejemplo, el mob_drop_item.txt (donde se modifica el drop). Ítems en NPC: nadie me enseñó. Revisé cada tabla de la base de datos y me di cuenta cómo se relaciona el npc con las tiendas, y luego en el mob_proto.txt me di cuenta cómo el servidor dice si un npc es tienda u otra cosa. Duración permanente en las habilidades: aunque nunca he hecho esto, hay un proto para las habilidades, el skill_proto, que está en player en db. Editar las mazmorras: están en quest en la ruta del locale. Hay muchas cosas en las quest que hay allí pero hay que aprender qué cosas son, porque no le encuentro una lógica relacionada allí. Quest significa misión, pero terminó siendo un lenguaje de no solo misiones y pergaminos, sino que uso uso fue un poco más allá, aunque sigue siendo limitado. Lo que me hizo aprender bastante sobre el servidor fue revisarlo cada día. Aunque sé que al otro día se me olvidaba qué cosas revisaba, si lo hacía con constancia se me iba quedando las cosas. Si definitivamente no pudiste con algo luego de haber hecho muchas cosas, es tiempo de pedir ayuda. Espero que esta información te haya servido.
×
×
  • Create New...