Jump to content

iluvatar

Members
  • Content Count

    22
  • Joined

  • Last visited

  • Days Won

    1
  1. Pues es raro pero como te digo y si revisas mas, los datos bo coinciden, al menos en el caso de la ID (salvo en el nombre chino). Sobre el número 2000 que sale ahi, me fije que tiene que ver con el nivel de drop, tal vez sea una constante de control. Lo que sí es seguro es que: el 1 y el 15 indican que desde nivel 1 a nivel 15 te darán ese objeto. Podrías agregar eso a tu guia para completarla y/o corregirla. Eso.
  2. Busqué en ese archivo y no coinciden. Lo otro que puse en mi respuesta sí es real, no como lo que dice tu guía. Ademas ese que dices la id del item, en chino está bien, pero el número del lado no. Fijate que hay items distintos y el código no corresponde. En resumen tu guía no sirve.
  3. Creo que tu guía está mal en varias cosas. Lo único que es verdad es lo de id del item y lo del porcentaje y tal vez en lo del nombre del grupo. Lo demás no es como dices. Con el ejemplo que diste el 1 y el 15 son los niveles en los que te dropean el item, lo he confirmado, por lo tanto el 1 no es la cantidad. El 2000 no es el código del item puesto ahí, al menos no en los demás casos, no tengo idea de que es, pero no es el código. Ese nombre en chino que dices que es el nombre del grupo, ¿a qué grupo te refieres? ¿el nombre del grupo de drop? Espero que mejores la guia con la info que te entrego o aclares un poco más en que basas tus afirmaciones, puede que el equibocado sea yo. Saludos.
  4. Pues yo la tengo activa y funcionando, tal vez es un problema de librerías. ¿Puedes poner una captura del error?
  5. Lo primero decir que esto es de mi autoría, cualquier similitud con algo existente en cualquier dimencion o universo conocido, es coincidencia. El sistema conciste en que al alcanzar el gremio el nivel 10, el lider podra adjudicarle bonus de experiencia, yang, etc a su gremio, cualquiera de los 4 tipos, pero solo 1 de ellos, osea que no se puede dar de los 2 tipos al mismo tiempo (en relidad si se puede, pero deberian editar la mision uds mismo, por que el sistema lo he creado asi con solo 1 bonus) a todos los integrantes de su gremio. La duración es de 6 horas (eso lo pueden editar) y la espera para volver a cargar bonus es de 20 horas (tambien lo pueden editar). Las pruebas que he realizado han sido positivas, así que al menos no les generará ningun bug. Dejo el código: quest bonus_gremio begin state start begin when login with pc.isguildmaster() begin set_state(seleccion) end end state seleccion begin when login or levelup with pc.isguildmaster() begin local idg = pc.getguild() local lg = guild.level(idg) if lg >= 10 then if get_time() > pc.getqf("tiempo") then send_letter("Bonus para el gremio") end end end when button or info begin local bonuslvl = { [10] = {"Tu gremio es nivel 10.[ENTER]Puedes aplicar un bonus de 5% [ENTER]a tu elección:", 5}, [11] = {"Tu gremio es nivel 11.[ENTER]Puedes aplicar un bonus de 7% [ENTER]a tu elección:", 7}, [12] = {"Tu gremio es nivel 12.[ENTER]Puedes aplicar un bonus de 10% [ENTER]a tu elección:", 10}, [13] = {"Tu gremio es nivel 13.[ENTER]Puedes aplicar un bonus de 12% [ENTER]a tu elección:", 12}, [14] = {"Tu gremio es nivel 14.[ENTER]Puedes aplicar un bonus de 15% [ENTER]a tu elección:", 15}, [15] = {"Tu gremio es nivel 15.[ENTER]Puedes aplicar un bonus de 20% [ENTER]a tu elección:", 20}, [16] = {"Tu gremio es nivel 16.[ENTER]Puedes aplicar un bonus de 25% [ENTER]a tu elección:", 25}, [17] = {"Tu gremio es nivel 17.[ENTER]Puedes aplicar un bonus de 30% [ENTER]a tu elección:", 30}, [18] = {"Tu gremio es nivel 18.[ENTER]Puedes aplicar un bonus de 35% [ENTER]a tu elección:", 35}, [19] = {"Tu gremio es nivel 19.[ENTER]Puedes aplicar un bonus de 40% [ENTER]a tu elección:", 40}, [20] = {"Tu gremio es nivel 20.[ENTER]Puedes aplicar un bonus de 50% [ENTER]a tu elección:", 50}, } local tipobonus = {"Item Drop", "Yang Drop", "Especial Yang Drop", "Experiencia", "Cancelar" } local idg = pc.getguild() local lg = guild.level(idg) say_title("Bonus para el gremio ".. guild.name(idg) ..":") say(bonuslvl[lg][1]) local tb = select("Item Drop", "Yang Drop", "Especial Yang Drop", "Experiencia", "Cancelar") if tb != 5 then say_title("Bonus para el gremio ".. guild.name(idg) ..":") say("".. pc.get_name()..", deseas aplicar un bonus de: ") say("".. tipobonus[tb] .." ("..bonuslvl[lg][2].."% por 6 horas)") say_reward("Esto afecta a todos los integrantes de tu gremio.") say("") say("¿Es correcto?") local sn = select("Sí ", "No") if sn == 1 then say_title("Bonus para el gremio ".. guild.name(idg) ..":") say("El bonus escogido se aplicará.") say("") wait() pc.setqf("tiempo", get_time()+20*60*60) clear_letter() __give_guild_priv(idg, tp, bonuslvl[lg][2], 6*60*60) else return end else return end end end end Cualquier bug postearlo para mejorar el sistema. Son libres de postearlo donde quieran, asignandome los creditos y mencionando a metin2zone.net.
  6. La misión que entrega las habilidades a nivel 5, con el mismo texto que el oficial, integrado en la quest para que trabaje independiente del locale.lua. Le agregue algunos comentarios para que los que entiendan más de quest sepan que le agregue y como se hacen funcionar, así podran practicarlo ellos mismos. quest skill_group begin state start begin when login or levelup with pc.level>=5 and pc.skillgroup == 0 begin set_state(run) end end state run begin when login with pc.get_skill_group()!=0 begin restart_quest() end when letter with pc.get_skill_group()==0 begin send_letter("El entrenamiento") local job=pc.get_job() if job==0 then local v=pc_find_skill_teacher_vid(1) if 0!=v then target.vid("teacher1", v, "corporal") end local v=pc_find_skill_teacher_vid(2) if 0!=v then target.vid("teacher2", v, "mental") end elseif job==1 then local v=pc_find_skill_teacher_vid(1) if 0!=v then target.vid("teacher3", v, "dagas") end local v=pc_find_skill_teacher_vid(2) if 0!=v then target.vid("teacher4", v, "arquero") end elseif job==2 then local v=pc_find_skill_teacher_vid(1) if 0!=v then target.vid("teacher5", v, "armas") end local v=pc_find_skill_teacher_vid(2) if 0!=v then target.vid("teacher6", v, "magia_negra") end elseif job==3 then local v=pc_find_skill_teacher_vid(1) if 0!=v then target.vid("teacher7", v, "dragón") end local v=pc_find_skill_teacher_vid(2) if 0!=v then target.vid("teacher8", v, "curación") end end end when leave begin target.delete("teacher1") target.delete("teacher2") target.delete("teacher3") target.delete("teacher4") target.delete("teacher5") target.delete("teacher6") target.delete("teacher7") target.delete("teacher8") end when button or info begin -- se crea el arreglo intro, que contiene las cadenas de texto segun el tipo de personaje local intro = { "[COLOR r;1|g;1|b;0.6]Instructor del entrenamiento de Guerrero:[/COLOR][ENTER]Si admiras a los guerreros por su velocidad y [ENTER]reiterados ataques, recomiendo el maestro de[ENTER]fuerza corporal. Si quieres derrotar a grupos[ENTER]enteros de monstruos con un Sólo ataque, [ENTER]recomiendo el maestro de lucha mental. Te[ENTER]estamos esperando cerca de la plaza de la aldea.[ENTER]", "[COLOR r;1|g;1|b;0.6]Instructor del entrenamiento de Ninja:[/COLOR][ENTER]Si quieres llamarte a ti mismo un excepcional [ENTER]arquero, entonces aprende sobre el tiro con arco. [ENTER]Si estás preparado para llevar a cabo [ENTER]varias misiones en las sombras como un [ENTER]ninja, entonces la lucha con hoja es lo tuyo. [ENTER]Estamos esperándote cerca de la plaza de la [ENTER]aldea. [ENTER]", "[COLOR r;1|g;1|b;0.6]Instructor del entrenamiento del Sura:[/COLOR][ENTER]¿Quieres convertirte en un verdadero maestro de [ENTER]magia negra y en guerrero demoníaco? Entonces [ENTER]recomiendo el arte de armamento mágico. [ENTER]Sin embargo, si deseas ser temido [ENTER]como un brujo de la oscuridad y de las [ENTER]maldiciones, entonces te recomiendo el arte de[ENTER]magia negra. Te esperamos cerca de la[ENTER] plaza de la aldea.[ENTER]", "[COLOR r;1|g;1|b;0.6]Instructor del entrenamiento de Chamán:[/COLOR][ENTER]Si quieres convertirte en un chamán que controla [ENTER]la magia y las bendiciones, entonces elige el [ENTER]entrenamiento de la Fuerza Dragón. Sin embargo, [ENTER]si quieres mitigar el dolor y sufrimiento de [ENTER]otros, te recomeindo el entrenamiento de Fuerza[ENTER]Curación. Te estamos esperandocerca de la plaza[ENTER]de la aldea.[ENTER]" } -- acá se llama a la cadena que corresponda, ejemplo con un guerrero (tipo 0): intro[0+1] = intro[1] = la primera linea de nuestro arreglo anterior. say(intro[pc.job+1]) --setleftimage("") --setmapcenterposition(-200, 0) select("Confirmar") setskin(NOWINDOW) end function join(job, group, title, text, error_title, error_msg) -- se crea la función para las variables y el texto que se mostrará luego al dar click al npc que da las habilidades. -- le agregué error_title, para poder mostrarla abajo como un "say_title" local pc_job=pc.get_job() if pc_job!=job then say_title(error_title) say(error_msg) if pc_job==0 then say_reward("Un guerrero puede elegir entre un entrenamiento ") say_reward("de lucha corporal o lucha mental.") elseif pc_job==1 then say_reward("Un ninja puede elegir entre un entrenamiento de ") say_reward("lucha con hoja o tiro con arco.") elseif pc_job==2 then say_reward("Un sura puede elegir entre un entrenamiento de ") say_reward("armamento o magia negra.") elseif pc_job==3 then say_reward("Un chamán puede elegir entre un entrenamiento de ") say_reward("fuerza dragón o fuerza curación. ") end say("") else say_title(title) say(text) local s=select("Emepezár", "Más tarde") if 1==s then if pc.get_job()==job and pc.get_skill_group()==0 then set_state("start") pc.set_skill_group(group) pc.clear_skill() char_log(0, "CLEAR_SKILL", "Clear Skill By Skill Teacher") return true else test_chat("npc_is_same_job:"..bool_to_str(npc_is_same_job())) test_chat("pc.get_skill_group:"..pc.get_skill_group()) test_chat("pc_job:"..pc.get_job()) end end end return false end when teacher1.target.click or skill_group1_1.chat."Entrenamiento de la Fuerza Corporal" or skill_group2_1.chat."Entrenamiento de la Fuerza Corporal" or skill_group3_1.chat."Entrenamiento de la Fuerza Corporal" begin target.delete("teacher1") -- a continuación se asignan los valores y las cadenas de texto a la función join creada arriba. -- recordar: join(job, group, title, text, error_title, error_msg) if skill_group.join(0, 1, "Entrenamiento de la Fuerza Corporal", "El entrenamiento de la fuerza corporal es útil [ENTER]para un combate rápido y enseña un método de [ENTER]combate cara a cara con ataques básicos [ENTER]mejorados. [ENTER]", "Entrenamiento equivocado.", "Sólo los guerreros pueden elegir el [ENTER]entrenamiento de fuerza corporal. [ENTER]") then say_title("Has elegido el entrenamiento de la fuerza corporal.") say("¡Bienvenido!") if not pc.is_clear_skill_group() then local point = pc.level -1 say("Debido a tu decisión de tomar clases, consigues"..point.."") say("puntos de habilidad. Puedes usarlos para la ") say("habilidad que quieras. ") say("") say_reward("Has recibido "..point.." puntos de habilidad. ") say("") else return end clear_letter() end end when teacher2.target.click or skill_group1_2.chat."Entrenamiento de la Lucha Mental" or skill_group2_2.chat."Entrenamiento de la Lucha Mental" or skill_group3_2.chat."Entrenamiento de la Lucha Mental" begin target.delete("teacher2") if skill_group.join(0, 2, "Entrenamiento de la Lucha Mental", "El entrenamiento de la lucha mental enseña a [ENTER]atacar al enemigo con fuertes ataques de chi y [ENTER]cómo defenderte de sus ataques.[ENTER]", "Entrenamiento incorrecto.", "Sólo los guerreros pueden elegir el [ENTER]entrenamiento de fuerza mental. [ENTER]") then say_title("Has elegido el entrenamiento de lucha mental.") say("¡Bienvenido!") if not pc.is_clear_skill_group() then local point = pc.level -1 say("Debido a tu decisión de tomar clases, consigues"..point.."") say("puntos de habilidad. Puedes usarlos para la ") say("habilidad que quieras. ") say("") say_reward("Has recibido "..point.." puntos de habilidad. ") say("") else return end clear_letter() end end when teacher3.target.click or skill_group1_3.chat."Entrenamiento de lucha con hoja" or skill_group2_3.chat."Entrenamiento de lucha con hoja" or skill_group3_3.chat."Entrenamiento de lucha con hoja" begin target.delete("teacher3") if skill_group.join(1, 1, "Entrenamiento de lucha con hoja", "En el entrenamiento de la lucha con hoja, un [ENTER]ninja aprende cómo golpear el punto débil de su[ENTER]oponente con golpes rápidos y mortales.[ENTER]", "Entrenamiento equivocado.", "Sólo los ninjas pueden elegir el [ENTER]entrenamiento de lucha con hoja. [ENTER]") then say_title("Has elegido el entrenamiento de lucha con hoja.") say("¡Bienvenido!") if not pc.is_clear_skill_group() then local point = pc.level -1 say("Debido a tu decisión de tomar clases, consigues"..point.."") say("puntos de habilidad. Puedes usarlos para la ") say("habilidad que quieras. ") say("") say_reward("Has recibido "..point.." puntos de habilidad. ") say("") else return end clear_letter() end end when teacher4.target.click or skill_group1_4.chat."Entrenamiento arquero" or skill_group2_4.chat."Entrenamiento arquero" or skill_group3_4.chat."Entrenamiento arquero" begin target.delete("teacher4") if skill_group.join(1, 2, "Entrenamiento arquero", "En el entrenamiento arquero, un ninja aprende a[ENTER]manejar su arco y a luchar contra el enemigo con[ENTER]precisión en la distancia.[ENTER]", "Entrenamiento incorrecto.", "Sólo los ninjas pueden elegir el [ENTER]entrenamiento arquero. [ENTER]") then say_title("Has elegido el entrenamiento arquero.") say("¡Bienvenido!") if not pc.is_clear_skill_group() then local point = pc.level -1 say("Debido a tu decisión de tomar clases, consigues"..point.."") say("puntos de habilidad. Puedes usarlos para la ") say("habilidad que quieras. ") say("") say_reward("Has recibido "..point.." puntos de habilidad. ") say("") else return end clear_letter() end end when teacher5.target.click or skill_group1_5.chat."Entrenamiento de armamento" or skill_group2_5.chat."Entrenamiento de armamento" or skill_group3_5.chat."Entrenamiento de armamento" begin target.delete("teacher5") if skill_group.join(2, 1, "Entrenamiento de armamento", "En el entrenamiento de armas mágicas, practicas[ENTER]en el arte de los golpes poderosos contra enemigos[ENTER]debilitados, usando espadas malditas.[ENTER]", "Entrenamiento equivocado.", "Sólo los suras pueden elegir el [ENTER]entrenamiento de armas mágicas. [ENTER]") then say_title("Has elegido el entrenamiento de armamento.") say("¡Bienvenido!") if not pc.is_clear_skill_group() then local point = pc.level -1 say("Debido a tu decisión de tomar clases, consigues"..point.."") say("puntos de habilidad. Puedes usarlos para la ") say("habilidad que quieras. ") say("") say_reward("Has recibido "..point.." puntos de habilidad. ") say("") else return end clear_letter() end end when teacher6.target.click or skill_group1_6.chat."Entrenamiento de magia negra" or skill_group2_6.chat."Entrenamiento de magia negra" or skill_group3_6.chat."Entrenamiento de magia negra" begin target.delete("teacher6") if skill_group.join(2, 2, "Entrenamiento de magia negra", "En el entrenamiento de magia negra, aprendes el [ENTER]arte de debilitar a tus enemigos con magia negra [ENTER]a distancia.[ENTER]", "Entrenamiento erroneo.", "Sólo los suras pueden elegir el [ENTER]entrenamiento de magia negra. [ENTER]") then say_title("Has elegido el entrenamiento de magia negra.") say("¡Bienvenido!") if not pc.is_clear_skill_group() then local point = pc.level -1 say("Debido a tu decisión de tomar clases, consigues"..point.."") say("puntos de habilidad. Puedes usarlos para la ") say("habilidad que quieras. ") say("") say_reward("Has recibido "..point.." puntos de habilidad. ") say("") else return end clear_letter() end end when teacher7.target.click or skill_group1_7.chat."Entrenamiento de la Fuerza Dragón" or skill_group2_7.chat."Entrenamiento de la Fuerza Dragón" or skill_group3_7.chat."Entrenamiento de la Fuerza Dragón" begin target.delete("teacher7") if skill_group.join(3, 1, "Entrenamiento de la Fuerza Dragón", "El entrenamiento de la fuerza dragón usa los [ENTER]fuertes ataques de fuego del Dios Dragón al igual[ENTER]que magia de apoyo que puede dar al grupo la[ENTER]protección del Dios Dragón.[ENTER]", "Entrenamiento incorrecto.", "Lo siento. Sólo los chamanes pueden escoger el[ENTER]entrenamiento de la Fuerza Dragón.") then say_title("Has seleccionado el entrenamiento de la ") say_title("fuerza dragón.") say("¡Bienvenido!") if not pc.is_clear_skill_group() then local point = pc.level -1 say("Debido a tu decisión de tomar clases, consigues"..point.."") say("puntos de habilidad. Puedes usarlos para la ") say("habilidad que quieras. ") say("") say_reward("Has recibido "..point.." puntos de habilidad. ") say("") else return end clear_letter() end end when teacher8.target.click or skill_group1_8.chat."Entrenamiento de la Fuerza Curación" or skill_group2_8.chat."Entrenamiento de la Fuerza Curación" or skill_group3_8.chat."Entrenamiento de la Fuerza Curación" begin target.delete("teacher8") if skill_group.join(3, 2, "Entrenamiento de la Fuerza Curación", "Con el entrenamiento de la Fuerza Curación, [ENTER]aprendes a aturdir al enemigo con descargas[ENTER]eléctricas. También puedes aprender a curar a [ENTER]miembros del grupo y darles fuerza adicional.[ENTER]", "Entrenamiento incorrecto.", "Lo siento. Sólo los chamanes pueden escoger el[ENTER]entrenamiento de la Fuerza Curación.") then say_title("Has elegido el entrenamiento de curación.") say("¡Bienvenido!") if not pc.is_clear_skill_group() then local point = pc.level -1 say("Debido a tu decisión de tomar clases, consigues"..point.."") say("puntos de habilidad. Puedes usarlos para la ") say("habilidad que quieras. ") say("") say_reward("Has recibido "..point.." puntos de habilidad. ") say("") else return end clear_letter() end end end end Cualquier error comunicarlo.
  7. Esta quest aparece en el servidor, yo la puse en español y le agregué las cadenas de texto que van en el locale.lua para que funcione perfectamente aunque el locale.lua no este traducido ni una sola palabra. Con esta quest los gm pueden dar bonus de exp, yang, doble yang o drop a los reinos cantidad y horas escogidas, hablando con el guardia de la plaza. Dejo el codigo: quest priv_empire begin state start begin when guild_man1.chat."GM: Bonus para reinos" or guild_man2.chat."GM: Bonus para reinos" or guild_man3.chat."GM: Bonus para reinos" with pc.is_gm() begin local imperios = { [0] = "Todos", [1] = "Shinsoo", [2] = "Chunjo", [3] = "Jinno", } say_title("Bonus para reinos") say("Escoge el reino al que deseas aplicar el bonus") local e = select("Shinsoo", "Chunjo", "Jinno", "Todos", "Cancelar") if 5 == e then return end if 4 == e then e = 0 end say_title("Bonus para el reino") say("Has escogido:") say(string.format("Reino %s", imperios[e])) say("Escoge el bonus:") local t = select("Item Drop", "Yang Drop", "Especial Yang Drop", "Experiencia", "Cancelar") if 5 == t then return end say_title("Bonus para el reino") local title_list = {"Item Drop", "Yang Drop", "Especial Yang Drop", "Experiencia" } say(string.format("Reino %s - Bonus: %s ", imperios[e], title_list[t])) say("Escoge el porcentaje") local g = { 10, 20, 50, 100, 150, 200} local p = select(g[1]..'%', g[2]..'%', g[3]..'%', g[4]..'%', g[5]..'%', g[6]..'%', 'Cancelar') if p == 7 then return end say_title("Bonus para el reino") say(string.format("Reino %s - Bonus: %s %d%%", imperios[e], title_list[t], g[p])) say("Duración:") local v = 0 local h = select('6 horas', '12 horas', '24 horas', 'Otro', 'Cancelar') if 5 == h then return elseif 4 == h then say_title("Bonus para el reino") say(string.format("Reino %s - Bonus: %s %d%%", imperios[e], title_list[t], g[p])) say("Ingresa la cantidad de horas:") v=input() if v == "" then v = 0 else v=tonumber(v) end elseif 3 == h then v=24 elseif 2 == h then v=12 elseif 1 == h then v=6 end say_title("Bonus para el reino") say_title("Resumen:") say(string.format("Reino %s [ENTER]Bonus: %s %d%% (%d horas)", imperios[e], title_list[t], g[p], v)) say("") say("¿Es correcto?") say("") local s = select("Sí ", "No") if 1 == s then __give_empire_priv(e, t, g[p], v*60*60) say("La bonificación será aplicada.") else say("Ninguna bonificación aplicada.") end end end end Está testeada y funciona al 100%, cualquier bug que ocurra en sus servidores informen para decirles como arreglarlo.
  8. Pense que tenias las demas, yo tenia hasta la del 70 y la primera parte de la del 80 que todavia no termino con mi pj... Pero perdi todas las cosas cuando se me quemo mi disco externo . Gracias por postearlas PD: Elite, Si necesitas alguna en particular tengo capturas hasta la del 58 así que en un rato te la puedo compilar. Claro que las capturas son del 2010, aunque no han cambiado mucho
  9. Es pregunta o respuesta? los setqf se usan casi siempre para contadores o acumuladores. Aunque sirven como variables normales tambien.
  10. Mas o menos, si creas la local empire = pc.get_empire() sí, o tambien puedes poner if pc.get_empire()==1 . Puedes hacerlo segun el mapa tambien if pc.get_map_index() == 1 o el numero que corresponda al mapa donde tienes al npc....hay varias formas de hacerlo.
  11. Esta quest es compleja (la original), tiene dialogos distintos segun el reino del cual es tu pj, por lo tanto no estaría completa del todo es que quieres tenerla clonada del oficial.. Creo que el local arma quedaria mejor si lo pones en la parte donde se te entrega, osea algo como esto: if r == 1 then pc.give_item2(5003, 1) local arma = 5003 .... Y así sucesivamente.
  12. iluvatar

    Kill info

    Esto lo cree por que queria emular otros juegos donde muestran el la informacion del mob que eliminas. Se le pueden hacer un monton de mejoras y agregados, que seguramente se los hare, pero les dejo la base y ya uds se lanzaran a la aventura. quest kill_info begin state start begin when kill begin local mob_vnum = npc.getrace() if mob_vnum < 8001 then syschat("Has matado ".. mob_name(mob_vnum) ..". ") elseif mob_vnum < 8500 then syschat("Has roto un ".. mob_name(mob_vnum) ..".") elseif mob_vnum > 8500 then syschat("Has matado ".. mob_name(mob_vnum) ..". ") end end end end
  13. No. Los state pueden llevar el nombre que sea, salvo el start.
×
×
  • Create New...