Jump to content

Elite™

Miembro
  • Contador contenido

    45
  • Ingreso

  • Última visita

  • Días ganados

    8

Todo lo publicado por Elite™

  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. Elite™

    [Quest] Summer

    Hecho, he actualizado el post.
  8. 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
  9. 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
  10. 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 http://wiki.metin2.es/index.php/Summer ¿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
  11. 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
  12. 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)
  13. 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
  14. 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
  15. Original: Soo, noch ein kleines Progrämmchen für euch:Ein Editor für die mob_drop_item.txtBeta, da bestimmt noch ein paar Bugs beinhaltet sind, auch werde ich noch special_drop, group & group_group hinzufügen.[b]Features[/b]- Suchen (Nach Item, Mobvnum und Name)- Hinzufügen neuer Gruppen- Löschen von Gruppen- Editieren von Gruppen- Man kann so viele Add / Delete / Edit Fenster öffnen, wie man will, diese Arbeiten vollkommen unabhängig (Jedes Fenster wird beim Klick neu erstellt; lokale Variablen)Seht's euch an, testet das Programm und schreibt mir, wenn ihr Bugs findet[b]How2Use[/b]Entpacken, Start.bat ausführen, freuen![b]Wichtig[/b]- Verteilt keine Namen Doppelt.lg Mijago Traducion: Un pequeño programa para ustedes se trata de un editor de mob_drop_item.txtEs beta aún contiene unos errores.[b]Características[/b]- Búsqueda (por artículo, Mobvnum y nombre)- Añadir un nuevo grupo- Eliminación de grupos- Editar Grupos- Puede hasta Agregar / eliminar / editar ventana abierta como desee, este trabajo de forma totalmente independiente (cada ventana se vuelve a crear cuando se hace clic, las variables locales)Prueba el programa y si encuentras errores escríbeme.[b]Como Usarlo[/b]Descomprimes los archivos y pulsas en start.bat[b]Importante[/b]- Distribuye ningún nombre doble.lg Mijago Imagen Todos los Derechos para Mijago -------------------------------------------------------------------------------------------------------------------------------------------------------------- Actualizaciones por mi -Añadido Idioma Español -Añadido Ejecutable de Multi Idiomas(Español,Aleman,Ingles) VTotal: Descargar: Click Aqui Post Oficial:http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1648835-release-mob_drop_item-editor-beta.html
  16. Nose como explicarme pero te voy a poner un ejemplo en el post que creo Keko sobre los arrays puso uno que es el siguiente. say("Te voi a dar un arma aleatoria")say("")local items = {{160,2},{161,1},{162,3}}local arma = select ("OK" , "Cerrar")if arma == 2 then return endpc.give_item2(items[math.random(1,table.getn(items))][1],items[math.random(1,table.getn(items))][2])Bien, ahora en este caaso el juego nos va a dar un arma aleatoria, porque hemos incluido la funcion math.random dentro del array. Tal y como la hemos puesto:[math.random(1,table.getn(items))]Nos dara un resultado que puede estar entre 1 y el numero de subcategorias que tiene la tabla items.-----------------------------------------------------------------------------------------------------------------------------------------------------------------(table.getn(nombretabla)) es una función muy útil que devuelve el número maximo de elementos que tiene una tabla simple o de subcategorias de una compuesta)-----------------------------------------------------------------------------------------------------------------------------------------------------------------Por lo tanto tal y como esta configurada la quest buscara primero la subcategoría, que sera el número aleatorio, y después irá a la posicion dentro de ella que le hemos dicho (1 para la id y 2 para la cantidad) Lo que quiero es hacer lo mismo para los puntos de experiencia y yang. Y que sean aleatorios con la funcion math.random
  17. Buenas me gustaria haria hacer 2 dos arrays uno para la experencia y otro para el yang. Y que den un valor del array al azar. Queria hacerlo con estos valores: Exp: 300 800 1500 2500 4300 Yang: 1000 2000 3000 4000 5000 ¿alguien que me eche una mano?
  18. Buenas a todos llevo bastante tiempo sin aportar nada y hace bastante yo hice la quest de la medalla de heroe apartir de las capturas del oficial y hoy os quiero dejar la misión original con su texto indentico al metin2.es ---------------------------------------------------- 2012 Medalla del Héroe-- Traducida por Elite™----------------------------------------------------quest olympic_badge begin state start begin function has_it() local a = pc.count_item(30265) local b = pc.count_item(30266) local c = pc.count_item(30267) local d = pc.count_item(30268) local e = pc.count_item(30269) local perfect = a > 0 and b > 0 and c > 0 and d > 0 and e > 0 local notyet = a >0 or b > 0 or c > 0 or d > 0 or e > 0 if perfect then return 1 elseif notyet then return 0 end end when login with game.get_event_flag("medal_part_drop") >= 1 begin set_state(information) end end state information begin when letter begin local v = find_npc_by_vnum(20017) if 0 != v then target.vid("__TARGET__", v, "") end send_letter("Medalla del Héroe") end when info or button begin say("Yu-Hwan necesita tu ayuda. ¡Ve a verlo!") say("Lo encontrarás en el segundo poblado.") end when __TARGET__.target.click or 20017.chat."Medalla del Héroe" with game.get_event_flag("medal_part_drop") >= 1 and pc.get_level() >= 30 begin target.delete("__TARGET__") say_title(mob_name(20017)) say("¡Ayuda!") say("Miserable hatajo de ladrones...") say("¡Ayer por la noche me entrarron en casa!") say("Se llevaron la Medalla del Héroe. Un antepasado") say("mío la recibió en su momento tras correr") say("42195 quilómetros desde el campo de batalla") say("hasta donde estaba su monarca para comunicarle") say("la victoria.") say("¡Y ahora ha desaparecido!") wait() say_title(mob_name(20017)) say("Diantres... para mi familia es de un") say("valor incalculable. ¿Qué hago ahora?") say("¿Me ayudarás?") local s = select("Si","No") if 2 == s then say("¿De verdad quieres rechazar este encargo?") say("Si ahora escoges ´Sí´ no podrás volver a") say("tomarlo.") local a = select("Si", "No") if 2 == a then say_title("Yu-Hwan") say("Entiendo que ahora no tengas tiempo.") say("Vuelve cuando tengas bien. ¡Pero") say("no me hagas esperar mucho!") return end say_title(mob_name(20017)) say_title("Yu-Hwan") say("Me temo que has venido demasiado tarde") say("y ya no puedes ayudarme. ¡Te deseo") say("todo lo mejor para tu camino!") set_state(__GIVEUP__) return end say_title(mob_name(20017)) say("¡De caza a los monstruos que me robaron! Pero") say("ten cuidado: eram muy fuerte, como mínimo de") say("nivel 30. ¡Si me traes de vuelta la Medalla del") say("Héroe te recompensaré como es debido!") set_state(step1) end end state step1 begin when letter begin send_letter("Medalla del Héroe") end when info or button begin say("Encuentra la Medalla del Héroe y llévasela a") say("Yu-Hwan.") end when 20017.chat."Medalla del Héroe" with game.get_event_flag("medal_part_drop") >= 1 and pc.get_level() >= 30 begin say_title(mob_name(20017)) say("¡Por fin! ¡Has vuelto!") say("¿Has encontrado la Medalla del Héroe?") wait() if count_item_range(30265,30269)== 0 then say("¡Has encontrado mi Medalla!") say("Pero espera... esto es solo un pedazo. ¡Qué") say("infamia, la han partido en cinco!") say("¡Por favor, tráeme todos los fragmentos! Quizás") say("pueda recomponerla!") return elseif olympic_badge.has_it() ==0 then say("¡Has encontrado mi Medalla!") say("Pero espera... esto es solo un pedazo. ¡Qué") say("infamia, la han partido en cinco!") say("¡Por favor, tráeme todos los fragmentos! Quizás") say("pueda recomponerla!") return else say_title(mob_name(20017)) say("¡Estos malditos ladrones han destrozado mi") say("valiosa herencia!") say("Muchas gracias por haber encontrado todos") say("los fragmentos. Ahora puedo volver") say("a unirlos todos.") wait() say(mob_name(20017)) say("¡Mil gracias! Has restablecido el") say("honor de mi familia.") say("Tu esfuerzos no habrán sido en") say("vano. ¡Aquí tienes tu merecida") say("recompensa!") pc.remove_item(30265) pc.remove_item(30266) pc.remove_item(30267) pc.remove_item(30268) pc.remove_item(30269) if pc.getqf ("medal_done") == 0 then say_item_vnum(71158) pc.give_item2(71158) if 0== pc.get_sex() then pc.give_item2(71159) else pc.give_item2(71160) end pc.setqf("medal_done", 1) return end --if pc.give_item2(50249) end --if end --when end --state state __GIVEUP__ begin endend --quest
  19. Gracias por el aporte muy sencilla de hacer la quest como el .es pero bueno te as dignado a postearla
  20. ImportError: unknown magic number in .... ¿Alguna solución?
  21. Usage: m2ft <.dat file> unpack: unpack|pack_name|out_folder|out_dat_name pack: pack|pack_name file_name|file_path|file_type comment: start line whit "--" Press a key to continue... Ese ejecutable tienes que dejarlo en el escritorio. Te recomiendo que crees una carpeta en la que crearas un archivo .dat por ejemplo para "root" root.dat con esta información unpack|root|D:\Descompilar|root_pack.dat Información: unpack|nombre del archivo epk,eix|Ruta|Nombre del archivo que va a generar.dat Al Descompilarlo nos debera salir todos los archivos descompilados y el .dat pack|root 20110915_ymir_item_proto|D:\Descompilar\20110915_ymir_item_proto|1 936mob_proto|D:\Descompilar\936mob_proto|1 936skilldesc.txt|D:\Descompilar\936skilldesc.txt|1 936skilltable.txt|D:\Descompilar\936skilltable.txt|1 assassin_m.msm|D:\Descompilar\assassin_m.msm|1 assassin_w.msm|D:\Descompilar\assassin_w.msm|1 atlasinfo.txt|D:\Descompilar\atlasinfo.txt|1 colorinfo.py|D:\Descompilar\colorinfo.py|1 consolemodule.py|D:\Descompilar\consolemodule.py|1 constinfo.py|D:\Descompilar\constinfo.py|1 debuginfo.py|D:\Descompilar\debuginfo.py|1 emotion.py|D:\Descompilar\emotion.py|1 exception.py|D:\Descompilar\exception.py|1 game.py|D:\Descompilar\game.py|1 grpblk.txt|D:\Descompilar\grpblk.txt|1 interfacemodule.py|D:\Descompilar\interfacemodule.py|1 introcreate.py|D:\Descompilar\introcreate.py|1 introempire.py|D:\Descompilar\introempire.py|1 introloading.py|D:\Descompilar\introloading.py|1 intrologin.py|D:\Descompilar\intrologin.py|1 introselect.py|D:\Descompilar\introselect.py|1 locale.py|D:\Descompilar\locale.py|1 mousemodule.py|D:\Descompilar\mousemodule.py|1 musicinfo.py|D:\Descompilar\musicinfo.py|1 networkmodule.py|D:\Descompilar\networkmodule.py|1 npclist.txt|D:\Descompilar\npclist.txt|1 playersettingmodule.py|D:\Descompilar\playersettingmodule.py|1 prototype.py|D:\Descompilar\prototype.py|1 servercommandparser.py|D:\Descompilar\servercommandparser.py|1 serverinfo.py|D:\Descompilar\serverinfo.py|1 shaman_m.msm|D:\Descompilar\shaman_m.msm|1 shaman_w.msm|D:\Descompilar\shaman_w.msm|1 stringcommander.py|D:\Descompilar\stringcommander.py|1 sura_m.msm|D:\Descompilar\sura_m.msm|1 sura_w.msm|D:\Descompilar\sura_w.msm|1 system.py|D:\Descompilar\system.py|1 test_affect.py|D:\Descompilar\test_affect.py|1 ui.py|D:\Descompilar\ui.py|1 uiaffectshower.py|D:\Descompilar\uiaffectshower.py|1 uiattachmetin.py|D:\Descompilar\uiattachmetin.py|1 uiauction.py|D:\Descompilar\uiauction.py|1 uiautoban.py|D:\Descompilar\uiautoban.py|1 uicandidate.py|D:\Descompilar\uicandidate.py|1 uicharacter.py|D:\Descompilar\uicharacter.py|1 uichat.py|D:\Descompilar\uichat.py|1 uicommon.py|D:\Descompilar\uicommon.py|1 uicube.py|D:\Descompilar\uicube.py|1 uiequipmentdialog.py|D:\Descompilar\uiequipmentdialog.py|1 uiex.py|D:\Descompilar\uiex.py|1 uiexchange.py|D:\Descompilar\uiexchange.py|1 uigamebutton.py|D:\Descompilar\uigamebutton.py|1 uigameoption.py|D:\Descompilar\uigameoption.py|1 uiguild.py|D:\Descompilar\uiguild.py|1 uihelp.py|D:\Descompilar\uihelp.py|1 uiinventory.py|D:\Descompilar\uiinventory.py|1 uimapnameshower.py|D:\Descompilar\uimapnameshower.py|1 uimessenger.py|D:\Descompilar\uimessenger.py|1 uiminimap.py|D:\Descompilar\uiminimap.py|1 uioption.py|D:\Descompilar\uioption.py|1 uiparty.py|D:\Descompilar\uiparty.py|1 uiphasecurtain.py|D:\Descompilar\uiphasecurtain.py|1 uipickmoney.py|D:\Descompilar\uipickmoney.py|1 uiplayergauge.py|D:\Descompilar\uiplayergauge.py|1 uipointreset.py|D:\Descompilar\uipointreset.py|1 uiprivateshopbuilder.py|D:\Descompilar\uiprivateshopbuilder.py|1 uiquest.py|D:\Descompilar\uiquest.py|1 uirefine.py|D:\Descompilar\uirefine.py|1 uirestart.py|D:\Descompilar\uirestart.py|1 uisafebox.py|D:\Descompilar\uisafebox.py|1 uiscriptlocale.py|D:\Descompilar\uiscriptlocale.py|1 uiselectitem.py|D:\Descompilar\uiselectitem.py|1 uiselectmusic.py|D:\Descompilar\uiselectmusic.py|1 uishop.py|D:\Descompilar\uishop.py|1 uisystem.py|D:\Descompilar\uisystem.py|1 uisystemoption.py|D:\Descompilar\uisystemoption.py|1 uitarget.py|D:\Descompilar\uitarget.py|1 uitaskbar.py|D:\Descompilar\uitaskbar.py|1 uitip.py|D:\Descompilar\uitip.py|1 uitooltip.py|D:\Descompilar\uitooltip.py|1 uiuploadmark.py|D:\Descompilar\uiuploadmark.py|1 uiweb.py|D:\Descompilar\uiweb.py|1 uiwhisper.py|D:\Descompilar\uiwhisper.py|1 warrior_m.msm|D:\Descompilar\warrior_m.msm|1 warrior_w.msm|D:\Descompilar\warrior_w.msm|1 Como Descompilar el archivo Para descompilar el archivo es tan facil como arrastrar el *.dat sobre el ejecutable que esta en el escritorio y directamente te lo creara en la ruta que le hayas especificado en el *.dat pero antes de eso tienes que estar el .eix y el .epk dentro de esa carpeta. Como Compilar el archivo Para descompilarl el archivo seria coger el archivo .dat que nos genero al descompilarlo y arrrastrarlo hasta el ejecutable del escritorio. Descargar Click aqui
  22. Contiene: Todos los peinados normales Peinados Afro Peinados Fez Peinados Bandana Peinados Calabaza Peinados de Boxeo Peinados de Esgrima Peinados de Fútbol Peinados especiales Peinados de vestuario Peinados mosquetero Peinados camarera Peinados Salsa Peinados de Navidad de cada color Peinados reno Peinados Elfo. (Sólo mujeres, normal.) Peinados Pascua Negro Peinados Pascua Azul Peinados Pascua Verde Peinados Pascua Rosa Etc.. Descargar: http://adf.ly/MBD1V Creditos: GodKnows AkA NabbHackeR
  23. Pruebalo asi deberia funcionar Fallos te a faltado algun end y habia un state mal colocado quest elegir_mascota begin state start begin when login begin set_state(information) end end state information begin when letter begin local v = find_npc_by_vnum(20355) if v != 0 then target.vid("__TARGET__", v, "Habla con el Npc 20355") end send_letter("Regalo de Bienvenida") end when button or info begin say_title("Regalo de Bienvenida") say("El Capitan te quiere dar la bienvenida,") say("ve a hablar con el.") end when 20355.chat."Bienvenido a Metin2Neocon" begin say_title("Bienvenido a Metin2Neocon") say("Como regalo de bienvenida te queremos") say("dar una mascota que te seguira") say("allá donde vayas, ayudandote en todo") say("Las mascotas son estas:") say_title("Mini Azrael") say_title("León") say_title("Tigre") say_title("Cerdito") say_title("Perro") say_reward("Ven a hablar conmigo cuando tengas") say_reward("la mascota que deseas.") set_state(eleccion) end end state eleccion begin when 20355.chat."Ya lo tengo decidido!" begin local regalo = select("Azrael","León","Tigre","Cerdito","Perro") if regalo == 1 then pc.give_item(50621, 1) set_state(terminado) elseif regalo == 2 then pc.give_item(50621, 1) set_state(terminado) elseif regalo == 3 then pc.give_item(50621, 1) set_state(terminado) elseif regalo == 4 then pc.give_item(50621, 1) set_state(terminado) elseif regalo == 5 then pc.give_item(50621, 1) set_state(terminado) end end end state terminado begin end end
  24. Información: Ve al Guardián de la Ciudad y luego ve al Guardián que está en e l centro de la plaza, él le Pide que Valla a la Tienda General Para comprarle unas . Luego de regresar al Guardián para entregar las Pociones Rojas(P). quest find_squareguard begin state start begin end state run begin when login with pc.level<=5 begin set_state(find) end end state find begin when letter begin local find_npc_vnum = 0 if pc.get_empire()==1 then find_npc_vnum = 11000 elseif pc.get_empire()==2 then find_npc_vnum = 11002 elseif pc.get_empire()==3 then find_npc_vnum = 11004 end local v=find_npc_by_vnum(find_npc_vnum) if 0==v then else target.vid("__TARGET__1", v, "El Guardián") end end when letter begin send_letter("El guardián") end when button or info begin say_title("Información:") say("Ve a la aldea y habla con el Guardián. él te") say("asignará tu primera misión. él se encuentra en el") say("centro de la aldea.") end when __TARGET__1.target.click begin target.delete("__TARGET__1") say_title("Guardián:") say("¡Bievenido a nuestra aldea aventurero! Espero") say("que pueda llevar a cabo una tarea para mí. Si te") say("doy 200 yang. ¿Puedes ir al almacén general y") say("comprar una pocion roja para mí?") say("Desafortunadamente, debo permanecer aquí, Usa tu") say("mini mapa para localizar el almacén general,") say("usando el punto rojo que parpadea.") local b=select("Bien") if 1==b then say_title("Información:") say_reward("Has recibido 200 yang del guardián. Ve al almacén") say_reward("general y compra una pocion roja. Puedes usar el") say_reward("yang para comprar objetos y servicios de varios") say_reward("aldeanos.") pc.changemoney(200) set_state(buy) elseif 2==b then else say("UNBEKANNTE TASTE ["..b.."]") end end end state buy begin when letter begin send_letter("Compra una poción roja") local v=find_npc_by_vnum(9003) if 0==v then else target.vid("__TARGET__", v, "") end end when button or info begin say_title("Información:") say("Compra una poción roja en el almacén general y") say("vuelve con el guardián.") end when 11000.chat."¿Dónde puedo comprar una poción roja?" or 11002.chat."¿Dónde puedo comprar una poción roja?" or 11004.chat."¿Dónde puedo comprar una poción roja?" begin say_title("El guardián:") say("Puedes adquirir la Poción Roja de la Vendedora de") say("la Tienda General. Ella está allí. Si no la") say("puedes ver, dirígete hacia el círculo") say("intermitente en el mapa grande o hacia el punto") say("rojo intermitente en el mini mapa.") end when __TARGET__.target.click begin target.delete("__TARGET__") say_title("Vendedora del almacén general:") say("¡Bievenido, aventurero!") say("Oh, ¿así que te envía el guardián? ¿Necesita una") say("Poción Roja? Te daré cinco.") say("Toma, aquí la tienes. Sirven para regenerar la") say("vitalidad y además saben bien.") wait() say_title("Vendedora del almacén general:") say("Puede que seas nuevo, pero estoy segura que") say("pronto serás un cliente habitual. Por eso te doy") say("gratis estas pociones. Por favor, vuelve otra") say("vez.") wait() say_title("Información:") say_reward("Has recibido 5 pociones rojas del almacén") say_reward("general.") say_reward("Las pociones rojas sirven para regenerar los") say_reward("puntos de salud (HP).") pc.give_item2(27001,5) setstate(deliver) end end state deliver begin when letter begin local find_npc_vnum = 0 if pc.get_empire()==1 then find_npc_vnum = 11000 elseif pc.get_empire()==2 then find_npc_vnum = 11002 elseif pc.get_empire()==3 then find_npc_vnum = 11004 end local v=find_npc_by_vnum(find_npc_vnum) if 0==v then else target.vid("__TARGET__", v, "") end end when letter begin send_letter("Vuelve con el guardián") end when button or info begin say_title("Información:") say("Vuelve con el guardián y dale su poción.") end when __TARGET__.target.click with pc.countitem("27001")<1 begin target.delete("__TARGET__") say_title("Guardián:") ----"12345678901234567890123456789012345678901234567890"| say("¡Gracias por traer la poción! Bien, ahora estoy") say("mejor preparado para realizar mi función en la") say("aldea.") say("¿Quieres saber cuál es mi función? No soy solo el") say("guardián de la aldea, también una valiosa fuente") say("de información. Anuncio información útil que todo") say("el mundo tiene que leer. También ofrezco mi ayuda") say("y protección a aquellos que la necesitan. Y soy") say("el responsable de los asuntos del gremio. Si,") say("algún día, estás interesado en fundar tu propio") say("gremio, ven conmigo.") clear_letter() set_state(__COMPLETE__) end when __TARGET__.target.click with pc.countitem("27001")>=1 begin target.delete("__TARGET__") say_title("Guardian:") say("Por cierto, los intructores han preguntado por!") say("tí. Les gustaría conocerte.") say("Oh, ¡casi lo olvido! Como muestra de mi aprecio,") say("puedes quedarte el cambio de la poción. Nos vemos.") if pc.countitem("27001")>=1 then pc.removeitem("27001", 1) local r=number(1, 3) if r==1 then pc.give_item2("14000", 1) elseif r==2 then pc.give_item2("16000", 1) elseif r==3 then pc.give_item2("17000", 1) end end clear_letter() set_state(__COMPLETE__) end end state __COMPLETE__ begin end end
×
×
  • Crear nuevo...