Jump to content

Elite™

Members
  • Content Count

    45
  • Joined

  • Last visited

  • Days Won

    8

Elite™ last won the day on November 11 2016

Elite™ had the most liked content!

3 Followers

About Elite™

  • Rank
    Novato

Profile Information

  • Gender
    Array

Recent Profile Visitors

1,799 profile views
  1. quest anillo_vetas begin state start begin when login or enter with pc.get_map_index() == 105 begin if pc.getqf("usado") == 1 and pc.getqf("primero") == 0 then pc.setqf("primero",1) pc.setqf("duracion_en_mapa",get_time()+60*10) elseif pc.getqf("usado") == 1 and pc.getqf("primero") > 0 then if get_time() > pc.getqf("duracion_en_mapa") then warp_to_village() else local tiempo = pc.getqf("duracion_en_mapa")-get_time() local minutos = math.floor(tiempo/60) if minutos > 0 then syschat(string.format("Te quedan: %s minutos(s)", minutos)) else syschat(string.format("Te quedan: %s segundos(s)", tiempo)) end timer("salir",tiempo) end else syschat("") end end when 30201.use begin say_title("Anillo vetas:") say("Este anillo te lleva al mapa") say("de minas por 10 minutos") say("Seras teleportado al Mapa.") say_reward("¿El Anillo desaparecera, quieres continuar?") local continua = select("Si", "No") if continua == 1 then say("Vas al Mapa.") say("Por un tiempo limite") say("") say_reward("Tienes 10 Minutos .") pc.warp(6400, 100) pc.remove_item(30201, 1) pc.setqf("usado",1) pc.setqf("primero",0) end end when salir.timer begin warp_to_village() end end end PD: El objeto tiene que tener el tipo 18 para que pueda ser usado desde la quest
  2. Buen apunte, podria haberlo simplificado de esa forma pero creo que es mas visible a la hora de ver para una persona que no entienda apenas de lua. Gracias por la recomendacion de esos metodos. Un Saludo
  3. Te dejo esta versión que he realizado asi rapido ---------------------------------- -- Pedido Metin2Zone -- Creado por Elite™ ---------------------------------- quest miquest begin state start begin -- En idnpc pon el id when idnpc.chat."Transformarme" begin say_title(npc.get_race()) --Yang a pagar local yang = 10000 --Nivel minimo local nivel = 100 if pc.level < nivel and pc.gold < yang then say("Para transformate necesitas ser almenos nivel 100") say("ademas de tener "..yang.." Yang.") else local monstruos = { -- Tabla con los Mobs {101,"Perro Salvaje"}, {102,"Lobo"}, {103,"Lobo Alfa"}, {104,"Lobo Azul"}, {105,"Lobo Alfa Azul"}, {106,"Lobo Gris"}, {107,"Lobo Alfa Gris"}, {108,"Jabali"}, {109,"Jabali Rojo"}, {110,"Oso"}, {111,"Oso Pardo"}, {112,"Oso Negro"}, {113,"Oso Marron"}, {114,"Tigre"}, } local menu = {} say("En que mostruo quieres transformate") for id,valor in ipairs(monstruos) do table.insert(menu, valor[2]) end table.insert(menu, "Cancelar") local escoge = select_table(menu) if escoge != table.getn(menu) then --En tiempo ponerlo en segundos pc.polymorph(monstruos[escoge][1],tiempo) pc.changegold(-yang) end end end end end En la tabla debes añadir todos los mobs que quieras, asi el usuario elegira por el nombre y asi no debe saberse el id del monstruo
  4. Esta no es la sección correcta pero voy a intentar resolver tu petición quest level_up begin state start begin when login or kill begin local nivel = pc.get_level() local experiencia_actual = pc.get_exp() local tabla_experiencia = { [1] = {300}, [2] = {800}, [3] = {1500}, [4] = {2500}, [5] = {4300}, [6] = {7200}, [7] = {11000}, [8] = {17000}, [9] = {24000}, [10] = {33000}, [11] = {43000}, [12] = {58000}, [13] = {76000}, [14] = {100000}, [15] = {130000}, [16] = {169000}, [17] = {219000}, [18] = {283000}, [19] = {365000}, [20] = {472000}, [21] = {610000}, [22] = {705000}, [23] = {813000}, [24] = {937000}, [25] = {1077000}, [26] = {1237000}, [27] = {1418000}, [28] = {1624000}, [29] = {1857000}, [30] = {2122000}, [31] = {2421000}, [32] = {2761000}, [33] = {3145000}, [34] = {3580000}, [35] = {4073000}, [36] = {4632000}, [37] = {5194000}, [38] = {5717000}, [39] = {6264000}, [40] = {6837000}, [41] = {7600000}, [42] = {8274000}, [43] = {8990000}, [44] = {9753000}, [45] = {10560000}, [46] = {11410000}, [47] = {12320000}, [48] = {13270000}, [49] = {14280000}, [50] = {15340000}, [51] = {16870000}, [52] = {18960000}, [53] = {19980000}, [54] = {21420000}, [55] = {22930000}, [56] = {24530000}, [57] = {26200000}, [58] = {27960000}, [59] = {29800000}, [60] = {32780000}, [61] = {36060000}, [62] = {39670000}, [63] = {43640000}, [64] = {48000000}, [65] = {52800000}, [66] = {58080000}, [67] = {63890000}, [68] = {70280000}, [69] = {77310000}, [70] = {85040000}, [71] = {93540000}, [72] = {102900000}, [73] = {113200000}, [74] = {124500000}, [75] = {137000000}, [76] = {150700000}, [77] = {165700000}, [78] = {236990000}, [79] = {260650000}, [80] = {286780000}, [81] = {315380000}, [82] = {346970000}, [83] = {381680000}, [84] = {419770000}, [85] = {461760000}, [86] = {508040000}, [87] = {558740000}, [88] = {614640000}, [89] = {676130000}, [90] = {743730000}, [91] = {1041222000}, [92] = {1145344200}, [93] = {1259878620}, [94] = {1385866482}, [95] = {1524453130}, [96] = {1676898443}, [97] = {1844588288}, [98] = {2029047116}, [99] = {2050000000}, [100] = {2150000000}, [101] = {2210000000}, [102] = {2250000000}, [103] = {2280000000}, [104] = {2310000000}, [105] = {2330000000}, [106] = {2350000000}, [107] = {2370000000}, [108] = {2390000000}, [109] = {2400000000}, [110] = {2410000000}, [111] = {2420000000}, [112] = {2430000000}, [113] = {2440000000}, [114] = {2450000000}, [115] = {2460000000}, [116] = {2470000000}, [117] = {2480000000}, [118] = {2490000000}, [119] = {2490000000}, [120] = {2500000000} } if experiencia_actual == tabla_experiencia[nivel][1] then notice("Has subido al nivel "..nivel) end end end end La he hecho rápido y no he tenido tiempo a probarla pero deberia funcionarte.
  5. En java hay dos tipos de datos primitivos(se encriben en minusculas) y objetos (La primera letra se escribe en mayuscula) Tipos Primitivos: byte short int long float double char boolean Tipos Objetos: String (cadenas) ArrayList TreeSet Scaner Arrays Objetos creados por el usuario ... Public,Private,Protected son modificadores de acceso que determina quién puede acceder a las clases o propiedades y métodos de una clase. public static void main(String[] args) define una función, o método, pública y estática denominada main(). La palabra reservada static se utiliza para definir las propiedades o los métodos que pertenecen a una clase. El tipo de dato void se usa para indicar a la función, o método, que no devuelva parámetros. Todo programa en Java necesita una función, o método, denominada main() para establecer el inicio del programa. El contenido de dicha función, String[] args, define un vector de cadenas de caracteres donde recogerá los argumentos pasados en la ejecución de tu programa. Si a un método,clase o constructor no le añades nigun modificador de acceso lo contara como public System.out.println es tal cual dices en la postdata te muestra la salida por la consola Pd: Si quieres aprenderte bien toda la teoria te recomiendo que te bajes el siguiente libro en pdf: Programación orientada a objetos con Java usando BlueJ
  6. Con esto te deberia valer quest bienvenida begin state start begin when login with pc.get_level() == 1 begin --Solo se hara cuando entres al servidor y seas nivel 1 while pc.get_level() < 75 do -- Mientras no seas nivel 75 te seguira dando experiencia local exp = pc.get_next_exp() pc.give_exp2(exp) end horse.set_level(30) -- Caballo al Nivel 30 horse.ride() -- Te monta en el Caballo pc.give_item2(50053) -- Te da el libro militar end end end
  7. --Español-- Muy interesante la función. ¿Podrias añadirle tambien una función para contar los golpes que ha costado matar a ese mob? --English-- Function very interesting. Could you also add a function to count the hits that it cost to kill that mob?
  8. Elite™

    [Quest] Summer

    Hecho, he actualizado el post.
  9. quest matar begin state start begin when kill begin local mobs = {101, 102, 103, 104} -- Rellenas Aqui los Vnums de los jefes for i=1, table.getn(mobs) do if mobs == npc.get_race() then notice_all("El Jugador "..pc.get_name().." ha matado un "..mob_name(mobs)..".") end end end end end
  10. Elite™

    [Quest] Summer

    Parte Servidor Añado el item_proto.txt 50278 ¾ÆÀ̽ºÅ©¸² ITEM_USE USE_SPECIAL 1 ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_MYSHOP ITEM_STACKABLE NONE NONE 0 0 0 0 0 REAL_TIME 2592000 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 1800 10 5 10 0 0 0 0 0 50279 ½ºÄò ITEM_QUEST 0 1 NONE ITEM_STACKABLE NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0 50280 ¾óÀ½Á¢½Ã ITEM_QUEST 0 1 NONE ITEM_STACKABLE NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0 50281 ¾ÆÀ̽ºÅ©¸² ÄÉÀÌÅ© ITEM_QUEST 0 1 NONE ITEM_STACKABLE NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0 50282 ¿©¸§»óÀÚ ITEM_GIFTBOX 0 1 ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_MYSHOP ITEM_STACKABLE NONE NONE 0 0 0 0 0 REAL_TIME 2592000 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0 71131 ɦضݒȯ҇ ITEM_UNIQUE UNIQUE_SPECIAL_RIDE 1 ANTI_MYSHOP | ANTI_STACK | ANTI_GIVE | ANTI_SELL | ANTI_DROP LOG | QUEST_USE_MULTIPLE WEAR_SHIELD NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 10800 0 0 0 0 0 0 0 0 71132 ɦضݒȯ҇ ITEM_UNIQUE UNIQUE_SPECIAL_RIDE 1 ANTI_MYSHOP | ANTI_STACK | ANTI_GIVE | ANTI_SELL | ANTI_DROP LOG | QUEST_USE_MULTIPLE WEAR_SHIELD NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 21600 0 0 0 0 0 0 0 0 71133 ɦضݒȯ҇ ITEM_UNIQUE UNIQUE_SPECIAL_RIDE 1 ANTI_MYSHOP | ANTI_STACK | ANTI_GIVE | ANTI_SELL | ANTI_DROP LOG | QUEST_USE_MULTIPLE WEAR_SHIELD NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 43200 0 0 0 0 0 0 0 0 71134 ɦضݒȯ҇ ITEM_UNIQUE UNIQUE_SPECIAL_RIDE 1 ANTI_MYSHOP | ANTI_STACK | ANTI_GIVE | ANTI_SELL | ANTI_DROP LOG | QUEST_USE_MULTIPLE WEAR_SHIELD NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 86400 0 0 0 0 0 0 0 0 Añado item_names.txt 50278 Bolsa de hielo 50279 Bolas de hielo 50280 Cuenco de cristal 50281 Pastel de hielo 50282 Arcón helado 71131 Sello del Caballo Negro 71132 Sello del Caballo Negro 71133 Sello del Caballo Negro 71134 Sello del Caballo Negro Añado mob_proto.txt 30307 ¿©¸§ NPC KING NPC MELEE 1 100 NOMOVE 0 STUN,SLOW,TERROR 2 0 0 0 0 0 0 0 0 120 3 1 0 0 10 4 100 100 0 2000 150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Añado mob_names.txt 30307 Summer Parte Cliente Añado Item_proto.xml <ItemDef Vnum="50278" Name="¾ÆÀ̽ºÅ©¸²" LocalizedName="Bolsa de hielo" Type="3" SubType="10" Weight="0" Size="1" AntiFlags="98688" Flags="4" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="7" LimitValue0="2592000" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="1800" Value1="10" Value2="5" Value3="10" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> <ItemDef Vnum="50279" Name="½ºÄò" LocalizedName="Bolas de hielo" Type="18" SubType="0" Weight="0" Size="1" AntiFlags="0" Flags="4" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> <ItemDef Vnum="50280" Name="¾óÀ½Á¢½Ã" LocalizedName="Cuenco de cristal" Type="18" SubType="0" Weight="0" Size="1" AntiFlags="0" Flags="4" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> <ItemDef Vnum="50281" Name="¾ÆÀ̽ºÅ©¸² ÄÉÀÌÅ©" LocalizedName="Pastel de hielo" Type="18" SubType="0" Weight="0" Size="1" AntiFlags="0" Flags="4" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> <ItemDef Vnum="50282" Name="¿©¸§»óÀÚ" LocalizedName="Arcón helado" Type="23" SubType="0" Weight="0" Size="1" AntiFlags="98688" Flags="4" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="7" LimitValue0="2592000" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> <ItemDef Vnum="71131" Name="È渶¼Òȯ±Ç" LocalizedName="Sello del caballo negro" Type="28" SubType="2" Weight="0" Size="1" AntiFlags="106880" Flags="9216" WearFlags="128" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="10080" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> <ItemDef Vnum="71132" Name="È渶¼Òȯ±Ç" LocalizedName="Sello del caballo negro" Type="28" SubType="2" Weight="0" Size="1" AntiFlags="106880" Flags="9216" WearFlags="128" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="21600" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> <ItemDef Vnum="71133" Name="È渶¼Òȯ±Ç" LocalizedName="Sello del caballo negro" Type="28" SubType="2" Weight="0" Size="1" AntiFlags="106880" Flags="9216" WearFlags="128" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="43200" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> <ItemDef Vnum="71134" Name="È渶¼Òȯ±Ç" LocalizedName="Sello del caballo negro" Type="28" SubType="2" Weight="0" Size="1" AntiFlags="106880" Flags="9216" WearFlags="128" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="86400" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" /> Añado mob_proto.xml <MobDef Vnum="30307" Name="¿©¸§ NPC" LocalizedName="Summer" Type="1" Rank="5" BattleType="0" Level="1" ScalePct="100" Size="0" DropGoldMin="0" DropGoldMax="0" Experience="10" MaxHP="120" RegenCycle="3" RegenPercent="1" Defense="4" AIFlags="2" RaceFlag="0" ImmuneFlag="35" Str="0" Dex="0" Con="0" Int="0" DamageMin="0" DamageMax="0" AttackSpeed="100" MovingSpeed="100" AggressiveHPPct="0" AggressiveSight="2000" AttackRange="150" EnchantCurse="0" EnchantSlow="0" EnchantPoison="0" EnchantStun="0" EnchantCritical="0" EnchantPenetrate="0" ResistSword="0" ResistTwohand="0" ResistDagger="0" ResistBell="0" FesistFan="0" ResistBow="0" ResistFire="0" ResistElect="0" ResistMagic="0" ResistWind="0" ResistPoison="0" ResistBleeding="0" ResistClaw="0" ResurrectionVnum="0" DropItemVnum="0" MountCapacity="0" OnClickType="2" Empire="0" Folder="" DamMultiply="0.000000" SummonVnum="0" DrainSP="0" MonsterColor="0" PolymorphItemVnum="0" SkillVnum0="0" SkillLevel0="0" SkillVnum1="0" SkillLevel1="0" SkillVnum2="0" SkillLevel2="0" SkillVnum3="0" SkillLevel3="0" SkillVnum4="0" SkillLevel4="0" BerserkPoint="0" StoneSkinPoint="0" GodSpeedPoint="0" DeathBlowPoint="0" RevivePoint="0" Unknown1="0" Unknown2="0" Unknown3="0" Unknown4="0" /> Añado itemdesc.txt 50278 Bolsa de hielo Esta Bolsa de hielo tiene un efecto especial: velocidad de movimiento +10%, daño +5%, experiencia +10%. Tiene una duración de 30 minutos. Consúmela o canjea una vez al día 3 Bolsas de hielo por un Cuenco de cristal. 50279 Bolas de hielo Reúne Bolas de hielo para Summer. Necesita 10 Bolas de hielo para una Bolsa de hielo. 50280 Cuenco de cristal Este exclusivo Cuenco de hielo te ofrece muchas posibilidades para presentar tus creaciones de hielo de manera creativa. Ve a la ciudad a ver a Summer para canjear 3 Cuencos de cristal por un Pastel de hielo. 50281 Pastel de hielo Ve a pedirle a Summer una bolsa de frío para tu Pastel de hielo. 50282 Arcón helado ¡Este Arcón helado no es cualquier cosa! Ábrelo y extrae uno de los codiciados objetos. 71131 Sello del caballo negro Un sello para un caballo de pura raza. 71132 Sello del caballo negro Un sello para un caballo de pura raza. 71133 Sello del caballo negro Un sello para un caballo de pura raza. 71134 Sello del caballo negro Un sello para un caballo de pura raza. Añado item_list.txt 50278 ETC icon/item/50278.tga 50279 ETC icon/item/50279.tga 50280 ETC icon/item/50280.tga 50281 ETC icon/item/50281.tga 50282 ETC icon/item/50282.tga 71131 ETC icon/item/71131.tga 71132 ETC icon/item/71131.tga 71133 ETC icon/item/71131.tga 71134 ETC icon/item/71131.tga ... icon.rar npc.rar
  11. Elite™

    [Quest] Summer

    Hola buenas de nuevo a la gente de metin2zone, hoy vengo a aportar mi versión del evento de verano de este año. Os dejo el enlace del npc Summer [Hidden Content] ¿En que consiste el evento? - Consiste en conseguir distinos objetos que se deben ir entregando al npc Summer. Estos són los objetos que hay que entregar: Cambia 10 Bolas de hielo por una Bolsa de hielo. Cambia 3 Bolsa de hielo por un Cuenco de cristal. Cambia 3 Cuenco de cristal por un Pastel de hielo. Cambia 1 Pastel de hielo por un Arcón helado. Cambia 100 Bolas de hielo por un Sello del Caballo Negro de 7 dias. Cambia 200 Bolas de hielo por un Sello del Caballo Negro de 15 dias. Cambia 300 Bolas de hielo por un Sello del Caballo Negro de 30 dias. Cambia 500 Bolas de hielo por un Sello del Caballo Negro de 60 dias Aquí os dejo la Quest totalmente funcional con código legible y simplificado ---------------------------------- -- Evento Verano (Summer) -- Creado por Elite™ ---------------------------------- quest summer begin state start begin function getObjeto() return ( { --Nombre,Vnum,Cantidad,Recompensa {"Bolas de hielo", 50279,10,50278}, {"Bolsa de hielo", 50278,3,50280}, {"Cuenco de cristal",50280,3,50281}, {"Pastel de hielo", 50281,1,50282}, {"Bolas de hielo", 50279,100,71131}, {"Bolas de hielo", 50279,200,71132}, {"Bolas de hielo", 50279,300,71133}, {"Bolas de hielo", 50279,500,71134} } ) end when 30307.chat."¿Algo para refrescarse?" begin say_title(mob_name(30307)) say("¡Hola, mi sol! Me encanta este árbol, pero ni") say("siquiera a su sombra refresca. ¡Daría lo que") say("fuera por un helado! ¿Y tú cómo lo llevas?") wait() say_title(pc.getname()..":") say("Genial... ¡y refrescante!") wait() say_title(mob_name(30307)) say("Ahora sí: voy a necesitar tu ayuda, porque el") say("mejor helado lo tienen los monstruos. ¡Que no, no") say("me ha dado ninguna insolación! ¿Podrías ir y") say("arrancarles unas cuantas Bolas de hielo?") say_item_vnum(50279) wait() say_title(pc.getname()..":") say("Ir a buscar Bolas de hielo y traértelas... ¡Dalo") say("por hecho!") set_state(refrescante) end end state refrescante begin when 30307.chat."¿Algo para refrescarse?" begin say_title(mob_name(30307)) say("¡Vaya calor hace hoy! ¿Qué se te ofrece?") local opcion=select("Bolsa de hielo","Cuenco de cristal","Pastel de hielo","Arcón helado","Cancelar") if opcion > 4 then return end local objeto = summer.getObjeto() local nombre = objeto[opcion][1] local vnum = objeto[opcion][2] local cantidad_objeto = objeto[opcion][3] local recompensa = objeto[opcion][4] local cantidad = cantidad_objeto - pc.count_item(vnum) if pc.count_item(vnum) >= cantidad_objeto then say("¡Lo has conseguido! Toma, te has ganado tu parte") say("con todas las de la ley. Pero no toques el helado") say("de chocolate: eso es todo para mí. Disfruta el") say("verano... y vuelve cuando quieras una segunda porción.") pc.remove_item(vnum,cantidad_objeto) pc.give_item2(recompensa,1) else say("Falta "..nombre.." Te hacen falta "..cantidad..".") end end when 30307.chat."El caballo negro noble" begin say_title(mob_name(30307)) say("Quiero hacer el Pastel de hielo más grande del") say("mundo. Para ello voy a necesitar infinidad de") say("Bolas de hielo. ¿Te queda alguna? Sabré ") say("recompensarte. Cuantas más Bolas de hielo me des,") say("más tiempo podrás usar el Caballo negro.") local pregunta=select("Sí ","No") if pregunta == 2 then return end local opcion=select("Caballo negro 7 días - 100 Bolas de Hielo","Caballo negro 15 días - 200 Bolas de Hielo","Caballo negro 30 días - 300 Bolas de Hielo","Caballo negro 60 días - 500 Bolas de Hielo","Cancelar") if opcion > 8 then return end local objeto = summer.getObjeto() local nombre = objeto[opcion+4][1] local vnum = objeto[opcion+4][2] local cantidad_objeto = objeto[opcion+4][3] local recompensa = objeto[opcion+4][4] local cantidad = cantidad_objeto - pc.count_item(vnum) if pc.count_item(vnum) >= cantidad_objeto then say("¡Lo has conseguido! Toma, te has ganado tu parte") say("con todas las de la ley. Pero no toques el helado") say("de chocolate: eso es todo para mí. Disfruta el") say("verano... y vuelve cuando quieras una segunda porción.") pc.remove_item(vnum,cantidad_objeto) pc.give_item2(recompensa,1) else say("Falta "..nombre.." Te hacen falta "..cantidad..".") end end end end
  12. Buenas a todos de metin2zone llevo un monton de tiempo fuera del mundillo del metin2 y el otro dio me dio la venada de hacer algo relacionado con el y se me ocurrio hacer un editor de quest desde JAVA, no es gran cosa de momento con el tiempo espero poder ir perfercionandolo bien,lo unico que hace es colorear en tiempo real las palabras clave, tipo notepad ++ con el lenguage quest. Aqui os dejo una imagen del editor y el .jar para si alguien quiere probarlo jeje Para ejecutarlo se puede hacer con la consola de java desde la interfaz grafica o desde la consola de comandos de windows con el comando java -jar EditorQuest.jar Saludos a Todos!!! Editor.rar
  13. Buenas gente de Metin2Zone hace bastante tiempo quise hacer la quest para teletransportarte al nuevo mapa y este es el resultado quest capedragon begin state start begin when 9012.chat."Peñasco del Dragón Oscuro" with pc.get_level() >= 90 begin say_title("Telentrasportador:") say("Hace poco se descubrió una isla misteriosa a la que") say("llaman el Peñasco del Dragón Oscuro.") say("Quien quiera sobrevivir en ese lugar necesita tener") say("la experiencia suficiente. Por eso solamente") say("llevo allí a luchadores a partir de nivel 90.") say("¿Te atreves a emprender este viaje?") local a= select("Sí ","No") if 1==a then local level = pc.get_level() local cost = math.floor(level / 5) * 1000 say_title("Telentrasportador:") say("Solamente se puedé acceder a la isla en barco y") say("la travesía es larga y agotadora. Cuanto mayor sea") say("tu nivel, más riguroso resultará el viaje.") say("Por eso tengo que ofrecerte una tarifa más alta.") say_reward(string.format("El viaje te costará %d Yang.", cost)) local b= select("Sí ","No") if 1==b then if pc.gold < cost then say_title("Teletransportador:") say("No te puedo teletransportar.") say("Tengo una gran familia y necesito dinero") say("para alimentarles.") else pc.warp(1104300,1788500) pc.changegold(-cost) end end end end endend Aunque ya han sido publicado los archivos de gameforge dejo este pequeño aporte funcional y simple jeje Creditos: Elite™(Crear la quest) Noa en el foro Croqueta (Por su pequeña ayuda)
  14. Buenas gente de metin2zone me ha apetecido hacer la subquest de nivel 47 tal y como la del oficial y os la dejo aqui publicada para que la podais probar ya que yo no he tengo tiempo para probarla espero que os funcione si veis algun error que algun corrector especialista la repare La dejo adjunta por si la quereis descargar. ---------------------------------------------------- SUB QUEST-- LV 50-- Decifrando el cryptograma----------------------------------------------------quest subquest_47 begin state start begin when login or levelup with pc.level >= 50 and pc.level <= 52 begin set_state( information ) end end state information begin when letter begin local v=find_npc_by_vnum(20355) if 0==v then else target.vid("__TARGET__", v, "Capitán") end end when __TARGET__.target.click or 20355.chat."Sobre el código secreto..." with pc.level >= 50 begin target.delete("__TARGET__") say_title("Capitán:") say("¡FIRMES! Ah, eres tú. Tengo información de") say("Yu-Hwan. Están, como siempre, codificadas. No es") say("fácil descifrarlo, pero quizá debamos actuar") say("rápido. La última vez fuistes más bien rápido") say("descrifrando el código. ¿Podrías ayudarme de") say("nuevo? Por favor, sería estupendo.") local r=select("Aceptar", "No, es un trabajo sin importancia.") if 2==r then say("¿Quieres abandonar la misión?") local a=select("Sí " ,"No") if 2==a then say_title("Capitán:") say("Pero... la última vez, lo hiciste.") say("¿Por qué estás dudando? Por favor, replantéatelo.") return end say_title("Capitán:") say("Yo sé lo que quieres decir.") say("Por lo que veo no quieres ayudarnos,") say("Pues una verdadera vergüenza.") set_state(__GIVEUP__) return end say_title("Capitán:") say("¡Oh! ¡Eres mi salvador! Mira, este es el código") say("¡Míralo bien!") wait() say_title("Capitán:") say("GMEIENSO") say("STIVOS") say("NE") say("OHZENORIT") say("¿Puedes descifrarlo?") wait() say_title("Capitán:") say("Así pues, ¿cómo va? ¿Alguna pista?") local s=select("¡Ah! Ya está.","No lo sé.","Enséñamelo otra vez.") if 2==s then say("¿Quieres abandonar la misión?") local a=select("Sí ","No") if 2==a then say_title("Capitán:") say("Piénsalo de nuevo y vuelve más tarde. ¡Pero no se") say("lo cuentes a nadie!") return end say_title("Capitán:") say("¡Dios mío! ¿Que difícil?") say("¿Quién sabe descifrar eso?") say("Tú eras mi última esperanza.") set_state(__GIVEUP__) return end if 3==s then say_title("Capitán:") say("Bien, pero rápido. De otro modo alquien") say("sospechará...") say("GMEIENSO") say("STIVOS") say("NE") say("OHZENORIT") wait() end say_title("Capitán:") say("¿Y? ¿Qué significa este código?") local answer=select("Amigos vistos en horizonte","La verdad hace enemigos","Enemigos vistos en horizonte","Enemigo visto en horizonte","No lo sé") if answer=="Amigos vistos en horizonte" or "La verdad hace enemigos" or "Enemigo visto en horizonte" then say_title("Capitán:") say("Hmm, eso no significa nada para mí. Qué quiso") say("decir con eso. No creo que esté bien. Piénsalo") say("otra vez.") local a=select("Probaré de nuevo","Abandonar") if 2==a then say_title("Capitán:") say("¡Oh, cielo! ¿Tan difícil es? Eras mi última") say("esperanza... ¿Quién va a descifrarlo ahora?") set_state(__GIVEUP__) return end say("Entonces, ¿qué significa?") local answer=select("Amigos vistos en horizonte","La verdad hace enemigos","Enemigos vistos en horizonte","Enemigo visto en horizonte","No lo sé") if answer=="Amigos vistos en horizonte" or "La verdad hace enemigos" or "Enemigo visto en horizonte" then say_title("Capitán:") say("Lo averiguarás. ¡Vuelve cuando estés listo!") elseif answer=="No lo sé" then say_title("Capitán:") say("¿Por qué estás tan callado? ¿No lo entiendes?") local a=select("Tengo que pensar","Abandono.") if 2==a then say_title("Capitán:") say("¡Oh, cielo! ¿Tan difícil es? Eras mi última") say("esperanza... ¿Quién va a descifrarlo ahora?") return end say("Entonces, ¿qué significa el mensaje?") local answer=select("Amigos vistos en horizonte","La verdad hace enemigos","Enemigos vistos en horizonte","Enemigo visto en horizonte","No lo sé") if answer=="Amigos vistos en horizonte" or "La verdad hace enemigos" or "Enemigo visto en horizonte" or "No lo sé" then say_title("Capitán:") say("Lo averiguarás. ¡Vuelve cuando estés listo!") end say_title("Capitán:") say("Sí ¡tienes razón! Ahora también lo entiendo.") say("Estoy orgulloso de ti. ¡Eres uno de nuestros") say("mejores soldados! Esta frase es una contraseña") say("concertada. Significa que Yu-Hwan ha descubierto") say("a los espías enemigos y hemos tomado acciones") say("contra ellos. Daré las órdenes necesarias") say("inmediatamente.") say_reward("Recibes 1.300.000 puntos de experiencia.") pc.give_exp2(1300000) clear_letter() set_state(__COMPLETE__) end elseif answer=="No lo sé" then say_title("Capitán:") say("¿Por qué estás tan callado? ¿No lo entiendes?") local a=select("Tengo que pensar","Abandono.") if 2==a then say_title("Capitán:") say("¡Oh, cielo! ¿Tan difícil es? Eras mi última") say("esperanza... ¿Quién va a descifrarlo ahora?") return end say("Entonces, ¿qué significa el mensaje?") local answer=select("Amigos vistos en horizonte","La verdad hace enemigos","Enemigos vistos en horizonte","Enemigo visto en horizonte","No lo sé") if answer=="Amigos vistos en horizonte" or "La verdad hace enemigos" or "Enemigo visto en horizonte" or "No lo sé" then say_title("Capitán:") say("Lo averiguarás. ¡Vuelve cuando estés listo!") end say_title("Capitán:") say("Sí ¡tienes razón! Ahora también lo entiendo.") say("Estoy orgulloso de ti. ¡Eres uno de nuestros") say("mejores soldados! Esta frase es una contraseña") say("concertada. Significa que Yu-Hwan ha descubierto") say("a los espías enemigos y hemos tomado acciones") say("contra ellos. Daré las órdenes necesarias") say("inmediatamente.") say_reward("Recibes 1.300.000 puntos de experiencia.") pc.give_exp2(1300000) clear_letter() set_state(__COMPLETE__) elseif answer=="Enemigos vistos en horizonte" then say_title("Capitán:") say("Sí ¡tienes razón! Ahora también lo entiendo.") say("Estoy orgulloso de ti. ¡Eres uno de nuestros") say("mejores soldados! Esta frase es una contraseña") say("concertada. Significa que Yu-Hwan ha descubierto") say("a los espías enemigos y hemos tomado acciones") say("contra ellos. Daré las órdenes necesarias") say("inmediatamente.") say_reward("Recibes 1.300.000 puntos de experiencia.") pc.give_exp2(1300000) clear_letter() set_state(__COMPLETE__) end end end state __COMPLETE__ begin when enter begin q.done() end end state __GIVEUP__ begin endend Quest.rar
  15. quest buy_fishrod begin state start begin when 9009.chat."Descuento en la caña de pescar" with pc.level>=7 and pc.level<=17 begin say_title("Pescador:") say("¡Un precio increíble!¡Una caña de pescar con una") say("empuñadura fantástica!¡Y con esta caña vienen") say("100 gomas y 20 gusanos gratis! Nosotros, 'los") say("vendedores de las mejores cañas de pesca',") say("ofrecemos a nuestros clientes un Paquete de Caña") say("de Pesca 3 en 1 por 3980 Yangs") say("¿Quieres comprar el Paquete de Pesca?") say("") local b=select("Comprarlo", "No,gracias") if 1==b then if pc.money>=3980 then pc.changemoney(-3980) say_title("Pescador:") say("Has comprado el Paquete de Pesca 3 en 1. ¡Que te") say("diviertas! Y no olvides poner atención a la nota") say("sobre el concurso de pesca. ¡Hasta pronto!") pc.give_item2(27400) pc.give_item2(27800, 100) pc.give_item2(27801, 20) setstate(notify_event) else say_title("Pescador:") say("Lo siento, no tienes suficiente Yang por favor,") say("espera a la siguiente ganga especial.") end elseif 2==b then else say("UNKNOWN BUTTON ["..b.."]") end end end state notify_event begin when letter begin setskin(NOWINDOW) makequestbutton("Nota de la Competición de Pesca") q.set_title("Nota de la Competición de Pesca") q.start() end when button or info begin say_title("Nota:") say("Gracias por comprar el paquete de la caña de") say("pescar. Mi tienda no sólo ofrece ofertas") say("especiales, sino también concursos de pesca para") say("principiantes. El primer premio es deseados por") say("todos los aventureros... ¡un arma") say("de principiante +3! Si llevas 5 Luciopercas") say("muertos al pescador, obtendrás tu premio") say("inmediatamente.") say("¡Este es una oportunidad poco usual! ¡Así que,") say("acepta este reto!") local b=select("Participar", "Ignorar") if 1==b then setstate(play_event) elseif 2==b then setstate(__COMPLETE__) q.done() else say("UNKNOWN BUTTON ["..b.."]") end end end state play_event begin when letter begin setskin(NOWINDOW) makequestbutton("Competición de Pesca") q.set_title("Competición de Pesca") q.start() end when button or info begin say_title("Pescador") say("Pesca una Carpa Cruciana y mátala haciendo click") say("sobre ella. Llévale 5 Carpas Crucianas Muertas al") say("Pescador y serás recompensado.") end when 9009.chat."Retirar premio" with pc.countitem(27833)>=5 begin say_title("Pescador:") say("¿Has traído los 5 Luciopercas Muertos?") say("¡Maravilloso! Como prometido, aquí tienes el arma") say("de principiante +3. ¡Te deseo mucha diversión y") say("vuelve pronto!") pc.removeitem(27833,5) setstate(reward) end when 9009.chat."Retirar premio" with pc.countitem(27833)<5 begin say_title("Pescador:") say("Lo siento, pero sólo puedo darte el premio si me") say("traes 5 Luciopercas Muertos. ¡Inténtalo de nuevo!") end end state reward begin when letter begin setskin(NOWINDOW) makequestbutton("Premio de la Competición") q.set_title("Premio de la Competición") q.start() end when button begin say_title("Información:") say("Has participado en el concurso de pesca y") say("le has entregado 5 Luciopercas Muertos al") say("pescador. ¡Como premio obtienes una caja") say("maravillosa!") say("En la caja está el arma de principiante +3.") if pc.job==0 then pc.give_item2(3210, 1) elseif pc.job==1 then pc.give_item2(2150, 1) elseif pc.job==2 then pc.give_item2(290, 1) elseif pc.job==3 then pc.give_item2(5110, 1) end setstate(__COMPLETE__) q.done() end end state __COMPLETE__ begin when enter begin q.done() end endend
×
×
  • Create New...