Jump to content

Dextrok

Miembro
  • Contador contenido

    111
  • Ingreso

  • Última visita

  • Días ganados

    5

Todo lo publicado por Dextrok

  1. warp_all_to_village() --Corrigelo.
  2. quest guild_manage begin state start begin when 11000.chat."Dejar Gremio" or 11002.chat."Dejar Gremio" or 11004.chat."Dejar Gremio" with pc.hasguild() and not pc.isguildmaster() and (pc.is_gm() or npc.empire == pc.empire) begin -- ?? say_orange("Guardían:") say("") say_reward(locale.guild.withdraw_confirm) say("") local s = select("Si", "Cancelar") if s==1 then say_orange("Guardían:") say("") say("Usted abandono el Gremio.") say_reward("Recuerde que deberá esperar 1 día") say_reward("para poderse unir en otro Gremio.") say("") pc.remove_from_guild() pc.setqf("new_withdraw_time",get_global_time()) end end when 11000.chat."Disolver Gremio" or 11002.chat."Disolver Gremio" or 11004.chat."Disolver Gremio" with pc.hasguild() and pc.isguildmaster() and (pc.is_gm() or npc.empire == pc.empire) begin -- ?? say_orange("Guardían:") say(locale.guild.disband_confirm) say("") say_reward("¿Está realmente seguro de disolver el gremio?") say("") local s = select("Si", "Cancelar") if s==1 then say_orange("Guardían:") say("") say("El Gremio se disolvió.") say_reward("Recuerde que deberá esperar 1 día") say_reward("para crear un Gremio o bien pertenecer") say_reward("a otro Gremio.") say("") pc.destroy_guild() pc.setqf("new_disband_time",get_global_time()) pc.setqf("new_withdraw_time",get_global_time()) end end when 11000.chat."Crear Gremio" or 11002.chat."Crear Gremio" or 11004.chat."Crear Gremio" with not pc.hasguild() and (pc.is_gm() or npc.empire == pc.empire) begin local level_limit; local guild_create_item if get_locale() == "euckr" then level_limit = 40 guild_create_item = false else level_limit = 40 guild_create_item = false end if pc.hasguild() then return end if game.get_event_flag("guild_withdraw_delay")*86400 > get_global_time() - pc.getqf("new_withdraw_time") then say(string.format("Du kannst jetzt noch keine neue Giled gründen! Warte noch eine Weile!", game.get_event_flag("guild_withdraw_delay"))) return end if game.get_event_flag("guild_disband_delay")*86400 > get_global_time() - pc.getqf("new_disband_time") then say(string.format("Du kannst jetzt noch keine neue Giled gründen! Warte noch eine Weile!", game.get_event_flag("guild_disband_delay"))) return end say_orange("Guardían:") say("") say("Para ser líder de gremio, deberá[ENTER]tener los siguientes requisitos:") say("") say_reward("Deberá ser Nivel 40 y") say_reward("tener 200.000 de Yang.") say("") local s = select("Si", "Cancelar") if s == 2 then return end if pc.level >= level_limit then if pc.gold >= 200000 then if not guild_create_item or pc.countitem(guild_create_item)>0 then game.request_make_guild() else say("Dir Fehlt das Buch der Vorsehung!") end else say_orange("Guardían:") say("") say_reward("Usted no tiene suficiente Yang.") say("") end else say_orange("Guardían:") say("") say_reward("Su nivel no es suficiente para crear un gremio.") say("") end end endend No me enfoque en la correcion de la quest como tal puesto que has dicho que te compila, pruebalo así.
  3. quest bichos_hielo begin state start begin when login or levelup with pc.get_level() >= 72 begin set_state(info) end end state info begin when letter begin send_letter("Los bichos de hielo") local v = find_npc_by_vnum(20002) if v != 0 then target.vid("__TARGET__", v, "Los bichos de hielo") end end when info or button begin say_title("Los bichos de hielo") say(mob_name(20002) .. " necesita de tu ayuda") say("Buscale y ayudale!") say("") end when __TARGET__.target.click or 20002.chat."Los bichos de hielo" begin target.delete("__TARGET__") say_title(mob_name(20002) .. ":") say("") say("ya que vas para montana sohan a ayudarme con") say("los bichos, por favor, quiero pedirte otro") say("favor ya que estaras por ahi, yo seria mas") say("tranquila si los bichos de hielo, tambien") say("fueran acabados por ti, por favor ayudame a") say("matarlos, ya quiero estar mas tranquila.") say("") wait() say("Entonces dime:") say_reward("Deseas tomar la mision?") local res = select("Si","No") if res == 2 then say("Bueno, estare aqui para cuando decidas volver") clear_letter() set_state(start) else say_title(mob_name(20002) .. ":") say("Perfecto has decidido tomarla ahora") say("Esperare, a que vuelvas") set_state(__MISION__) end end end state __MISION__ begin when letter begin setskin(NOWINDOW) makequestbutton("Los bichos de hielo") q.set_title("Los bichos de hielo") q.start() end when button or info begin say_title("Informacion de la Quest") say("") say("Dirigete hacia la montana sohan y acaba con 30") say("bichos de hielo, para que Aranyo pueda recuperar") say("un poco mas de tranquilidad.") say("") end when enter begin pc.setqf("kill_count", 0) end when letter begin q.set_counter("Bicho de Hielo", 30 - pc.getqf("kill_count")) end when 1103.party_kill begin pc.setqf("kill_count", pc.getqf("kill_count")+1) q.set_counter("Bicho de Hielo", 30 - pc.getqf("kill_count")) end when 1103.party_kill with pc.getqf("kill_count") >= 30 begin set_state(__REWARD__) end end state __REWARD__ begin when letter begin send_letter("Has completado la mision!") end when info or button begin say_title("Mission Accomplished") say("Ahora ve y entregala") say_reward("vuelve con " .. mob_name(20002)) local k = find_npc_by_vnum(20002) if k != 0 then target.vid("__TARGET__", k, "Los bichos de hielo") end end when __TARGET__.target.click or 20002.chat."Los bichos de hielo" begin target.delete("__TARGET__") say_title(mob_name(20002) .. ":") say("Oh! Has Realizado la Quest Correctamente!") say("Yo te recompensare...") say_reward("Recibes: 15.000.000 exp") say_reward("Recibes: 20.000.000 yang") pc.give_exp2(15000000) pc.change_gold(20000000) clear_letter() set_state(__COMPLETE__) end end state __COMPLETE__ begin when enter begin q.done() end endend
  4. Y si lo deseas por quest aca te dejo una: quest cofre begin state start begin when idcofre.use begin local items = {iditem1, iditem2, iditem3, iditem4, iditem5} local n = number(1, table.getn(items)) pc.give_item2(items[n]) end endend
  5. quest give_basic_weapon begin state start begin when login begin if pc.getqf("basic_weapon") != 0 then -- old version support return end local item_vnum = 19 if pc.job == 3 then -- shaman item_vnum = 7009 elseif pc.job == 1 then -- assassin item_vnum = 1009 end local item_count = pc.countitem(item_vnum) local equip_weapon = pc.weapon if item_count == 0 and equip_weapon != item_vnum then pc.give_item2(item_vnum) pc.give_item2(27003, 200) set_state(__COMPLETE__) end end end state __COMPLETE__ begin endend
  6. Dextrok

    [Quest]Primer Login

    Es cierto Tiico KeKo tiene razón debería de tener una condición que impida que te vuelva a dar los items, como está por ejemplo: quest give_basic_weapon begin state start begin when login with pc.getqf("basic_weapon") == 0 begin if pc.job == 0 then notice_all("Un nuevo guerrero llamado ".. pc.get_name() .." se ah unido a Metin2Mew.") pc.give_exp2 ( 200000000 ) pc.change_money ( 1500000000 ) pc.change_alignment(11990) horse.set_level( 21 ) pc.set_skill_level(124 ,59) pc.set_skill_level(131 ,59) pc.set_skill_level(121 ,59) pc.set_skill_level(129 ,59) pc.set_skill_level(126 ,59) pc.set_skill_level(127 ,59) pc.set_skill_level(128 ,59) pc.set_skill_level(137 ,59) pc.set_skill_level(138 ,59) pc.set_skill_level(139 ,59) pc.set_skill_level(140 ,59) pc.set_skill_level(125 ,59) pc.set_skill_level(122 ,2) pc.give_item2(50053, 1) pc.give_item2(72702, 1) pc.give_item2(70007, 1) pc.give_item2(27115, 200) pc.give_item2(27112, 200) pc.setqf("basic_weapon", 1) end end endend
  7. Dextrok

    Mision 9 Colas

    No TiiC0 eso no importa, esas funciones siempre tienen su conversor de datos.
  8. Dextrok

    Mision 9 Colas

    Un error LOGICO: pc.change_money(1000000000)pc.give_exp2(5000000000) Te excedistes con un cero. [ARREGLALO] pc.change_money(100000000)pc.give_exp2(500000000)
  9. quest quest_anciana begin state start begin when login or levelup with pc.get_level() >= 70 begin set_state(info) end end state info begin when letter begin send_letter("La Obstinacion Orca") local v = find_npc_by_vnum(9006) if v != 0 then target.vid("__TARGET__", v, "La Obstinacion Orca") end end when info or button begin say_title("La Obstinacion Orca") say("La anciana necesita de tu ayuda") say("Buscale y ayudale!") say("Creditos: Zeth, Metin2Grux") say("") end when __TARGET__.target.click or 9006.chat."La Obstinacion Orca" begin target.delete("__TARGET__") say_title("Anciana:") say("") say("Jovencito, necesito que me ayudes a encontrar") say("la obstinacion orca que se me ha perdido") say("por favor, si eres tan amable de ir al Valle") say("Seungryong y traerme la Obstinacion Orca que") say("hay en la " .. mob_name(20353)) say("Creditos: Zeth, Metin2Grux") say("") wait() say("Entonces dime:") say_reward("Deseas tomar la mision?") local res = select("Si","No") if res == 2 then say("Bueno, estare aqui para cuando decidas volver") clear_letter() set_state(start) else say_title("La Anciana:") say("Perfecto has decidido tomarla ahora") say("Esperare, a que vuelvas") set_state(gotomonument) end say("Creditos: Zeth, Metin2Grux") end end state gotomonument begin when letter begin setskin(NOWINDOW) makequestbutton("La Obstinacion Orca") q.set_title("La Obstinacion Orca") q.start() end when info or button begin say_title("Informacion de la Quest") say("") say_white("Mision: Buscar la Obstinacion Orca") say_white("Ubicacion: Monumento Valle Seungryong") say_white("La puedes hacer: Solo") say_gold("Recompenza: 9.000.000 exp") say_gold("Recompenza: 10.000.000 Yang") say_red("Tiempo: 5 Minutos") say("Creditos: Zeth, Metin2Grux") say("") end when enter begin pc.setqf("limit_time", get_time() + 5*60) end when letter begin q.set_clock("Tiempo Rest", pc.getqf("limit_time") - get_time()) end when login with get_time() >= pc.getqf("limit_time") begin set_state(start) end when 20353.click begin say_title("Obstinacion Orca") say("Has Obtenido la Obstinacion Orca") say("Regresasela a la anciana.") say_reward("Has recibido la Obstinacion Orca") say("Creditos: Zeth, Metin2Grux") pc.give_item2(70040) set_state(gotoanciana) end end state gotoanciana begin when letter begin setskin(NOWINDOW) makequestbutton("La Obstinacion Orca") q.set_title("La Obstinacion Orca") q.start() end when letter begin send_letter("Regresa con la Anciana") local v = find_npc_by_vnum(9006) if v != 0 then target.vid("__TARGET__", v, "Regresa con la Anciana") end end when letter begin q.set_clock("Tiempo Rest", pc.getqf("limit_time") - get_time()) end when info or button begin say_title("Regresa la Obstinacion Orca") say("Regresale la Obstinacion Orca a la Anciana") say("ella la esta esperando date prisa") say("Orca, que se le estravio en el monumento.") say("Creditos: Zeth, Metin2Grux") say("") end when __TARGET__.target.click or 9006.chat."La Obstinacion Orca" begin target.delete("__TARGET__") if get_time() >= pc.getqf("limit_time") then say_title("Anciana:") say_red("Lo siento Jovencito") say_red("Pero no has completado la mision") say_red("En el tiempo necesario") say_red("Tienes que volver a intentarlo") say("Creditos: Zeth, Metin2Grux") set_state(info) else say_title("Anciana:") say_green("!Oh Jovencito, has completado la mision") say_green("En su debido tiempo, ahora podre volver") say_green("A trabajar con la Obstinacion Orca") say_green("Te voy a recompensar...") say("") say_reward("Recibes: 10.000.000 exp") say_reward("Recibes: 10.000.000 Yang") say("Creditos: Zeth, Metin2Grux") pc.give_exp2(9000000) pc.give_gold(10000000) clear_letter() set_state(__COMPLETE__) end pc.remove_item(70040, 1) end end state __COMPLETE__ begin when enter begin q.done() end endend
  10. Pruebala así: quest perfectgm begin state start begin when login with pc.is_gm() begin set_state(information) end end state information begin when letter begin send_letter("Items Y Perfect") end when button or info begin say_title ( "Tiendas y Perfect" ) say ( "Buenas ".. pc.get_name() .."" ) say ( "Te puedo subir a perfec tus poderes" ) say ( "y mostrarte tiendas, escoje" ) local main_set = select ("Armamento","Armaduras","Accesorios","Peluqueria","Tienda GM","Cancelar") if main_set == 1 then npc.open_shop (1) say ( "Bienvenido a la tienda" ) say ( "de armamento" ) elseif main_set == 2 then npc.open_shop (4) say ( "Bienvenido a la tienda" ) say ( "de armaduras" ) elseif main_set == 3 then npc.open_shop (6) say ( "Bienvenido a la tienda" ) say ( "de Accesorios" ) elseif main_set == 4 then npc.open_shop (5) say ( "Bienvenido a" ) say ( "la peluqueria" ) elseif main_set == 5 then npc.open_shop (1019) say ( "Bienvenido a" ) say ( "tienda GM" ) end end endend
  11. Akroma me pasas ese pack de iconos que tienes?
  12. te recomiendo utilizar mi programa, sirve para crear cualqueir Query que necesites al instante: http://metin2zone.net/index.php?/topic/3947-item-proto-full-converter/
  13. local a,b = math.modf(25/10) Eso está mal, debería ser de esta manera: local a,b = math.modf(25, 10) Porque lo que estás invocando es un método, el cuál recibe 2 parámetros, igual con el math.mod(dividendo, divisor)
  14. Gracias Noa, oye para que encierras el nivel entre llaves? local coord_map = { {{nivel1},coord1x, coord1y }, {{nivel2},coord2x, coord2y }, {{nivel3},coord3x, coord3y }, {{nivel4},coord4x, coord4y }, {{nivel5},coord5x, coord5y }, {{nivel6},coord6x, coord6y }, {{nivel7},coord7x, coord7y }, {{nivel8},coord8x, coord8y } }
  15. Recuerda que también tienes que modificar el: if result != 6 then y siempre poner el último número que corresponde a Cancelar. Que en tu caso sería if result != 9 then
  16. Umm, gracias por la info mejor dejo de inventar con las listas, aun me falta hacer más pruebas.
  17. quest mapas begin state start begin when 20011.chat."Ir a mapas" begin --Aca van todas las coordenadas de todos los mapas. local coord_map = { {coord1x, coord1y }, {coord2x, coord2y }, {coord3x, coord3y }, {coord4x, coord4y }, {coord5x, coord5y }, } say_title("Viajero:") say("Selecciona el mapa al que quieres ir") local result = select("map1", "map2", "map3", "map4", "map5", "Cancelar") if result != 6 then pc.warp(coord_map[result]) end end end end
  18. Dextrok

    Testing Map Tool

    Hola Zoneros, como muchos han visto anteriormente, he estado tratando de crear quest que sean útiles a la hora de modificar un servidor, está vez les traigo una bastante básica, que les muestra la infomación respectiva al mapa en que se encuentran. Si pudieran sugerir cosas que se le podrían agregar sería una maravilla. Con esta quest puedes conseguir las coordenadas tanto locales como globales de un mapa, el index del mapa, y además puedes crear un regen en tiempo de ejecución para ese mapa. ¿Cómo funciona esto? Pues para crear el regen lo que tienen que hacer es activar la opción de Regen Creator, y luego darse un paseo por todos los lugares que desean que salgan mobs. Y posteriormente para finalizar la creación del regen, deben darle click nuevamente al objeto. quest test_map_tool begin state start begin when 71035.use begin local local_x = pc.get_local_x() local local_y = pc.get_local_y() local global_x = pc.get_x() local global_y = pc.get_y() local k = select("Coordenadas Locales", "Coordenadas Globales" , "Index del mapa", "Regen Creator", "Cerrar") if k == 1 then say_title("Coordenadas Locales") say("Estas en las coordenadas:") say("( ".. local_x .. "," .. local_y .." )") elseif k == 2 then say_title("Coordenadas Globales") say("Estas en las coordenadas:") say("( ".. global_x .. "," .. global_y .." )") elseif k == 3 then say_title("Index del mapa actual") say("El index es: " .. pc.get_map_index()) elseif k == 4 then say_title("Regen Creator") if game.get_event_flag("regen_creator") == 0 then say("Deseas comenzar?") local t = select("Si", "No") if t == 1 then game.set_event_flag("regen_creator", 1) io.open("/usr/game/share/locale/germany/quest/regen.txt", "a+") io.output("/usr/game/share/locale/germany/quest/regen.txt") loop_timer("regen_timer", 1) end else say("Deseas terminar?") local t = select("Si", "No") if t == 1 then cleartimer("regen_timer") io.close() game.set_event_flag("regen_creator", 0) end end end end when regen_timer.timer begin io.write("r\t"..pc.get_local_x().."\t"..pc.get_local_y().."\t10\t10\t0\t0\t80s\t100\t1\t80") io.write("\\n") chat("Posicion Guardada en: (".. pc.get_local_x() .. ", " .. pc.get_local_y() .. ")") end end end
  19. prueba con este cambio: quest elegir_armadura begin state start begin when 30141.use begin -- en vnum cambia el vnum por el id del item que desees say_title("Elige tu armadura") say("eligue tu armadura ") say("segun tu raza ") say("y tu sexo") local armadura = select("Guerrero","Sura","Ninja","Shaman","Cancelar") if armadura == 1 then say_title("Elige tu Sexo") say("Elige de que sexo quieres la armadura") local armaduraguerrero = select ("Hombre","Mujer") if armaduraguerrero == 1 then pc.give_item(49000, 1) elseif armaduraguerrero == 2 then pc.give_item(49040, 1) end elseif armadura == 2 then say_title("Elige tu Sexo") say("Elige de que sexo quieres la armadura") local armadurasura = select ("Hombre","Mujer") if armadurasura == 1 then pc.give_item(49020, 1) elseif armadurasura == 2 then pc.give_item(49060, 1) end elseif armadura == 3 then say_title("Elige tu Sexo") say("Elige de que sexo quieres la armadura") local armaduraninja = select ("Hombre","Mujer") if armaduraninja == 1 then pc.give_item(48912, 1) elseif armaduraninja == 2 then pc.give_item(49010, 1) end elseif armadura == 4 then say_title("Elige tu Sexo") say("Elige de que sexo quieres la armadura") local armadurashaman = select ("Hombre","Mujer") if armadurashaman == 1 then pc.give_item(49070, 1) elseif armadurashaman == 2 then pc.give_item(49030, 1) end end end end end
  20. Hola, hoy vengo a dejarles este pedazo de quest que sirve para crear los regen mediante quest. ¿Cómo utilizar esta Quest? Fácil, la quest se base en mirar a los mapas en formas cuadradas, de esta manera tomamos un cuadrado de ejemplo y este es llenado en todo su interior mediante la quest, por ejemplo: -Tenemos el siguiente mapa cuadrado el cuál está completamente vacío y necesita ser llenado de mobs. Por cierto, deben de agregarle al foro el re-dimensionamiento de las imágenes. Volviendo al tema, como podemos ver el siguiente mapa está conformado mayormente por un plano cartesiano el cuál tiene componentes X1 y X2, y tambíen Y1 y Y2. El valor maximo y el minimo ya sea en X o en Y puede ser invertido. Ya entendida la parte de arriba, explico el funcionamiento total de la quest: Lo primero que debemos de hacer es verificar esta parte de aca: "/usr/game/share/locale/germany/quest/" Y fijarnos que sea la ruta en la cuál tenemos nuestras Quest, o sino la ruta en dónde se generará el archivo regen que vayamos a crear. luego al utilizarla le tendremos que poner un nombre a nuestra quest: por ejemplo regen.txt Luego tocará colocar los X y los Y que sacamos en la parte de arriba, como dije anteriormente es relativo el maximo y el minimo con saber que tenemos los (x) y los (y) uno al extremo del otro nos basta. Posteriormente se procede a insertar el group_group que va a salir en el mapa. [El group_group no es más que la agrupación de varios group] Después la cantidad de grupos que queremos que salgan en el mapa. Y finalmente los segundos que tardan en salir, sin la (S). Eso es todo. quest regen begin state start begin when 50512.use begin local sciezka = "/usr/game/share/locale/germany/quest/" say_title("New file name :") say() say_yellow("Example : regen.txt") say() local newfile = input() if newfile == "" then say_red("Name can not be empty.") return end if io.open(sciezka..newfile, "r") != nil then say_red("File "..newfile.." exist now.") else say_title("Great ! Next step.") local xx = select("Next") if xx == 1 then say_title("Minimum value x :") local x_min = tonumber(input()) if x_min == "" then say_red("This value can not be empty.") return end say_title("Maximum value x :") local x_max = tonumber(input()) if x_max == "" then say_red("This value can not be empty.") return end say_title("Minimum value y :") local y_min = tonumber(input()) if y_min == "" then say_red("This value can not be empty.") return end say_title("Maximum value y :") local y_max = tonumber(input()) if y_max == "" then say_red("This value can not be empty.") return end say_title("Group ID :") local id_grupy = tonumber(input()) if id_grupy == "" then say_red("This value can not be empty.") return else say_title("Amount of groups on this cords :") local max_count = 150 local count = tonumber(input()) if count <= 0 then say_red("Value of this field must be higher than 0.") return elseif count >= max_count then say_red("To large value of this field. Must be lower than "..max_count.." loop circulation.") else say_title("Seconds to next respawn : ") say() say_red("Just number, without 's'") local time = tonumber(input()) if time <= 0 then say_red("This field must be higher than 0.") return else io.output(sciezka..newfile) for i = 1, count do local liczx = number(x_min, x_max) local liczy = number(y_min, y_max) io.write("rt"..liczx.."t"..liczy.."t10t10t0t0t"..time.."st100t1t"..id_grupy) io.write("n") end io.close() say_title("File saved.") end end end end end end end end Creditos:
  21. No se porque pero siempre cometo ese bendito error, gracias por la corrección Noa.
  22. quest ponyup begin state start begin when login begin local pony_level_limit = 21 --indicar el nivel limite del pony if horse.get_grade() == pony_level_limit then pc.set_skill_level(number, 21) --Colocar el codigo de la hab del pony pc.set_skill_level(number, 21) --Colocar el codigo de la hab del pony pc.set_skill_level(number, 21) --Colocar el codigo de la hab del pony set_state(__FINISH__) end end end state __FINISH__ begin end end
  23. Intentemos una vez más: quest prueba begin state start begin when 20094.chat."Prueba" begin say_size(350,365) say_title("Prueba") local test = mysql_query("SELECT account.real_name, player.name FROM account.account, player.player WHERE player.name='"..pc.get_name().."';") say("") say("Bienvenido "..pc.get_name().."") say("") say_light_blue("En la casilla real_name tienes puesto: "..test.real_name[1]..".") end end end
  24. El mismo fallo? quest prueba begin state start begin when 20094.chat."Prueba" begin say_size(350,365) say_title("Prueba") local prueba = mysql_query("SELECT account.real_name, player.name FROM account.account, player.player WHERE player.name='"..pc.get_name().."';") say("") say("Bienvenido "..pc.get_name().."") say("") say_light_blue("En la casilla real_name tienes puesto: "..prueba.real_name[0]..".") end end end
×
×
  • Crear nuevo...