Jump to content

fuuton97

Miembro
  • Contador contenido

    177
  • Ingreso

  • Última visita

  • Días ganados

    10

Actividad de reputación

  1. Me Gusta
    fuuton97 reacted to Shogun in [Quest] Mapa de Eventos   
    Hoy tenía un rato libre y traduje al español la primera quest que hice para el SG que también es el primer trabajo que publico sólo para Zone.
     
    Se trata de un mapa de eventos configurable (yo he usado metin2_map_t1 pero podéis usar otro) en el que se entra desde el Alguacil de Batalla en la ciudad. Podéis escoger que niveles y que reinos pueden entrar así como abrir el mapa o cerrarlo (lo cual mandará a todos los que se encuentren en el a su ciudad). Cuando el mapa está cerrado sólo los GM pueden entrar a él.
     
    Requisitos: metin2_map_t1 con mapindex 103 ( o se lo cambiáis en la quest ) el mapa para quien no lo conozca es este:
     

     
    Para que cada reino renazca en su lado aconsejo añadir esto al Town.txt oficial:
     
    452 579 469 200 208 300 452 579   Y nada más a partir de aquí podéis inventar cualquier cosa nosotros lo usamos para lluvias de metines y para el evento de minería pero se pueden hacer otras cosas como la caza del zorro (soltar 100 zorros del desierto en modo "cobarde" y gana el gremio o reino que los mate antes), etc.   quest sg_eventarena begin state start begin when login with pc.get_map_index() == 103 begin if game.get_event_flag("sg_eventarena") == 0 and pc.is_gm() == false then warp_to_village() end end when 11001.chat."Mapa de eventos" or 11003.chat."Mapa de eventos" or 11005.chat."Mapa de eventos" with game.get_event_flag("sg_eventarena") > 0 begin ----"111111222222333333444444555555666666777777888888999999" say_title("Alguacil de Batalla:") say("") say("El pueblo se está reuniendo en el paso del monte") say("Baekdu. Veamos si estás preparado para resistir la") say("jornada...") say("") wait() if game.get_event_flag("sg_eventarena_open"..pc.get_empire()) == 0 then say_title("Alguacil de Batalla:") say("") ----"111111222222333333444444555555666666777777888888999999" say("Lo siento, tu imperio no puede acceder a la montaña") say("en este momento.") say("") return end if game.get_event_flag("sg_eventarena_minlv") > pc.level then say_title("Alguacil de Batalla:") say("") say("Lo siento, necesitas nivel "..game.get_event_flag("sg_eventarena_minlv").." para entrar.") say("") return end if game.get_event_flag("sg_eventarena_maxlv") < pc.level then say_title("Alguacil de Batalla:") say("") say("Tu nivel es demasiado alto. El máximo permitido") say("en este momento es "..game.get_event_flag("sg_eventarena_maxlv")..".") say("") return end say_title("Archer Guardian:") say("") say("¿Estás preparado?") say("Vamos hacia la montaña...") say("") wait() if pc.get_empire() == 1 then pc.warp(46942, 45372) elseif pc.get_empire() == 2 then pc.warp(20754, 55748) else pc.warp(45253, 83437) end end when 11001.chat."GM: Mapa de Eventos" or 11003.chat."GM: Mapa de Eventos" or 11005.chat."GM: Mapa de Eventos" with pc.is_gm() begin say_title("Opciones del Mapa de Eventos") say("") if game.get_event_flag("sg_eventarena") > 0 then msg = "El mapa está abierto." statuschange = "Cerrar" new = 0 else msg = "El mapa está cerrado." statuschange = "Abrir" new = 1 end say(msg.." Ajustes actuales:") say("Nivel mínimo: "..game.get_event_flag("sg_eventarena_minlv").." Nivel máximo: "..game.get_event_flag("sg_eventarena_maxlv").." ") say("") say("") local s = select("Editar niveles admitidos", "Editar imperios admitidos", statuschange.." mapa de eventos", "Salir del menú") if s == 1 then say("Escribe el nivel mínimo:") say("") local min = input() say("Escribe el nivel máximo:") say("") local max = input() if min > max then say("¡El nivel máximo debe ser mayor o igual que el mínimo!") say("") return end game.set_event_flag("sg_eventarena_minlv",min) game.set_event_flag("sg_eventarena_maxlv",max) say("Nivel admitido ajustado.") elseif s == 2 then if game.get_event_flag("sg_eventarena_open1") > 0 then statuschange1 = "No admiti" new1 = 0 else statuschange1 = "Admiti" new1 = 1 end if game.get_event_flag("sg_eventarena_open2") > 0 then statuschange2 = "No admiti" new2 = 0 else statuschange2 = "Admiti" new2 = 1 end if game.get_event_flag("sg_eventarena_open3") > 0 then statuschange3 = "No admiti" new3 = 0 else statuschange3 = "Admiti" new3 = 1 end s=select(statuschange1.."r reino Shinsoo", statuschange2.."r reino Chunjo", statuschange3.." reino Jinno", "Cancelar") if s == 1 then game.set_event_flag("sg_eventarena_open1",new1) say("Shinsoo "..statuschange1.."do") say("") elseif s ==2 then game.set_event_flag("sg_eventarena_open2",new2) say("Shinsoo "..statuschange2.."do") say("") elseif s== 3 then game.set_event_flag("sg_eventarena_open3",new3) say("Jinno "..statuschange3.."ed") say("") end elseif s == 3 then if new == 0 then notice_all("El mapa de eventos está cerrado.") warp_all_to_village(103, 10) else notice_all("El mapa de eventos ha abierto! El Alguacil de") notice_all("Batalla está reclutando a los más valientes.") end game.set_event_flag("sg_eventarena",new) say("El mapa de eventos está "..statuschange..".") say("") end end endend
  2. Me Gusta
    fuuton97 reacted to Shogun in Vanilla Core 2.3   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. + eliminadas las funciones de licencia, el servidor no comprobará la validez de tu licencia+ eliminada la fecha de caducidad del game+ combinadas todas las tablas de exp en una única+ el nivel máximo es 255+ En todos los niveles el jugador recibirá puntos de estado+ Eliminado el bug de vampirismo para no perder HP cuando haces una matanza (los suras agradecerán esto)+ El bonus de Exp es cumulativo en lugar de dar una posibilidad de obtener doble exp. Es decir si tienes 20% Bonus de EXP recibiras un 20% mas de EXP.+ Reescrito Version Check. Ahora puedes configurar tu versión en CONFIG para que sea comparada con la del cliente - si no coinciden, el jugador será desconectado.+ Límite de Yang aumentado a 999.999.999.999+ Arreglado el buffer de memoria. Ahora el buffer está optimizado para no consumir mucha RAM, sólo la justa para no provocar la desconexión del jugador.+ Ahora puedes dar bonus de imperio hasta 2000%+ Muchas nuevas funciones, triggers y opciones de CONFIG+ Mejor estabilidad y rendimiento ya que está compilado con una versión más reciente de gcc+ El check de IP interna admite IPs que comiencen por 5. y 25.+ Se pueden vender items por 0 Yang+ 6o y 7o bonus funcionales+ Cambio de Nombre funciona en cualquier Locale+ Exceso de Yang: si se supera el límite, se reseteará al valor máximo.+ La tabla del caballo admite hasta nivel 51. Aumentar el level aumenta los stats proporcionados por el caballo.+ Nuevo tratamiento de error para exceso de bonus.+ La velocidad de movimiento del jugador será comprobada por el jugador y reducida al valor máximo si lo supera.+ Las habilidades pueden proporcionar nuevos bonus. Por ejemplo puedes aumentar la INT con una habilidad. Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. MAX_LEVEL_STATUS: unsigned intNivel máximo para recibir puntos de estado.MAX_STATUS: unsigned intSets a maximum of distributed status points. If you e. g. set it to 20, you can only raise your stat's by 20 each status.SERVER_CHECK: 1/0Habilita la comprobación de versión del cliente.SERVER_VERSION: unsigned intEstablece la versión para SERVER_CHECK.MAX_HT: unsigned intIt's the same option than MAX_STATUS but only for the con-attribute.MAX_IQ: unsigned intIt's the same option than MAX_STATUS but only for the int-attribute.MAX_ST: unsigned intIt's the same option than MAX_STATUS but only for the str-attribute.MAX_DX: unsigned intIt's the same option than MAX_STATUS but only for the dex-attribute.ATTR_ALWAYS_ADD: 1/0Si es 1, el Añadir Bonus tendrá un 100% de posibilidadATTR_ALWAYS_5_ADD: 1/0Si es 1, la Bola de Bendición tendrá un 100% de posibilidadATTR_CHANGE_LIMIT: intYou can set a limit time to change your attributes again. It's changed to seconds (set it to 1 to let the users switch only once per second their attributes).GUILD_MAX_LEVEL: intMáximo nivel de gremio (el valor máximo posible es 50)ITEM_OWNERSHIP_TIME: intTiempo durante el cual un item dropeado conserva el nombre del propietario.MIN_ADDON_FKS: intMínimo Daño de HabilidadMAX_ADDON_FKS: intMáximo Daño de HabilidadMIN_ADDON_DSS: intMínimo Daño de MediaMIN_ADDON_DSS: intMáximo Daño de MediaSKILLBOOK_DELAY: intTiempo de espera para leer libros, en segundos.SKILLBOOK_NEED_EXP: intExp necesaria para leer un libro.SKILLBOOK_ALWAYS_BOOK: 1/0Si es 1, todos los libros de habilidad funcionarán con Lectura ConcentradaGOLD_DROP_TIME_INTERVAL: intTiempo de espera al dropear Yang en segundosSEQUENCE_CHECK: 1/0Si es 1, se comprobará la tabla de secuencias del cliente corresponde a la del servidor.SKILLBOOK_STEP_LEVELING: 1/0Si es 0, solo se necesitará un libro para pasar al siguiente M. Si es 1, será como en el oficial.RAISE_EMPIRE_PRICES: 1/0Si es 0, los items costarán lo mismo en los 3 reinos.HORSE_MAX_LEVEL: intMáximo nivel del caballo (ten en cuenta que tendrás que escribir tú mismo las quest que permitan aumentar el nivel)MARRIAGE_MAX_PERCENT: intMáximo porecentaje de Puntos de Amor. Ojo! Si es mayor de 100 provocará bugs al divorciarse.PC_MAX_MOVEMENT_SPEED: intMáxima velocidad de movimiento.PC_MAX_ATTACK_SPEED: intMáxima velocidad de ataque.MOB_MAX_MOVEMENT_SPEED: intMáxima velocidad de movimiento de los mobs.MOB_MAX_ATTACK_SPEED: intMáxima velocidad de ataque.TAXES: intDe 0 a 100. Impuestos que debes pagar al comprar en tienda.DYE_LEVEL: intNúmero de niveles que hay que esperar antes de volver a teñir tu pelo.YANG_MAX: long longMáximo de Yang que puedes llevar. El máximo posible es 999.999.999.999 Yang. Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. item.get_attr_type(int index)item.get_attr_value(int index)item.set_attr(int ApplyType, int ApplyValue[, int index])npc.get_level()game.mysql_real_escape_string(string query)game.mysql_query(string query)game.mysql_update_query(string query)pc.delayed_disconnect(int zeit)pc.get_mount_vnum()pc.set_level(int level)pc.send_effect(int id) Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. OnBuy (al comprar un item)OnDie (al morir) Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. MAX_HPMAX_SPHP_REGENSP_REGENBLOCKHPSPATT_GRADEDEF_GRADEMAGIC_ATT_GRADEMAGIC_DEF_GRADEBOW_DISTANCEMOV_SPEEDATT_SPEEDPOISON_PCTRESIST_RANGECASTING_SPEEDREFLECT_MELEEATT_BONUSDEF_BONUSRESIST_NORMALDODGEKILL_HP_RECOVERKILL_SP_RECOVERHIT_HP_RECOVERHIT_SP_RECOVERCRITICALMANASHIELDSKILL_DAMAGE_BONUSNORMAL_HIT_DAMAGE_BONUSHTIQSTDXSTUN_PCTSLOW_PCTPENETRATE_PCTATTBONUS_HUMANSTEAL_HPSTEAL_SPMANA_BURN_PCTDAMAGE_SP_RECOVERRESIST_SWORDRESIST_TWOHANDRESIST_DAGGERRESIST_BELLRESIST_FANRESIST_BOWRESIST_FIRERESIST_ELECRESIST_MAGICRESIST_WINDREFLECT_CURSEPOISON_REDUCEEXP_DOUBLE_BONUSGOLD_DOUBLE_BONUSITEM_DROP_BONUSPOTION_BONUSIMMUNE_STUNIMMUNE_SLOWIMMUNE_FALLCURSE_PCTSTAATTBONUS_WARRIORATTBONUS_ASSASSINATTBONUS_SURAATTBONUS_SHAMANATTBONUS_MONSTERMAX_HP_PCTMAX_SP_PCTSKILL_DEFEND_BONUSNORMAL_HIT_DEFEND_BONUSRESIST_WARRIORRESIST_ASSASSINRESIST_SURARESIST_SHAMANENERGYRESIST_CRITICALRESIST_PENETRATE Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  3. Me Gusta
    fuuton97 reacted to PACI in [Guia] Crear diffs   
    Hola.
    Como sabéis, ahora que el source es publico, ya nadie, o casi nadie, hará, ni posteará, más diffs para editar vuestros cores.
    Este es uno de los motivos por los cuales hago escribo esta guia, el otro es para dar a la comunidad hispana un poco más de conocimiento, aunque no sea mucho.
     
    Que se necesita para hacer diffs?
    Hay quién diga que necesitas saber ASM (assembly), C, y esas cosas. Aunque, yo no sé ninguno de los 2, y creaba diffs.
    Lo que más necesitamos es un brain.exe, como se suele decir, paciencia, y el
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. y un Debes iniciar sesión para ver el contenido del enlace en esta publicación..  
    Antes de ponernos a toquetear en el IDA, debemos, antes de nada, saber una cosa.
     
    Qué es un diff?
    Un diff (difference file) es un archivo que contiene, de una manera simplificada, una (o varias) linea(s) que altera(n) un (o más) bytes de un archivo.
    La sintaxis es: offset: byte antiguo byte nuevo.
    La creación de un diff no es propriamente un problema, ya que el IDA, dependiendo de lo que hayamos modificado, lo crea solo.
    Y a través de un diff no puedes saber lo que cambia.
     
    Después de saber que és un diff, y para que sirve, tenemos que saber qué es lo que queremos cambiar, y donde se localiza, yo, para eso, usaba el Pseudocode de un game core o db core para buscar lo que queria cambiar, obviamente para esto necesitamos el brain.exe, porque tenemos que entender la sintaxis del codigo que hay por ahí. Os dejaré en adjuntos, todos los pseudocodes de todos los game core y db core que tengo
     
    Vale, ahora qué hago?
    Yo, para empezar, cogeré el pseudocode del game r40250 y cambiaré... por ejemplo, el nível de diferencia que se necesita para invitar a alguién en un grupo.
     
    Como empezamos?
    Hay que saber un poquito de inglés, porque las variables no están escritas en español. Lo que sabemos es que grupo se puede decir party en inglés. Una vez sepamos eso, empezaremos buscando party en nuestro editor de texto (yo uso Notepad++ para esto, vosotros podéis usar algun otro), lo segundo es saber, cuando sucede la acción, o sea, cuando sale el mensajito ese en el chat diciendo que la diferencia de nível es X. Sabemos también que eso pasa cuando invitamos a alguién, invitar en inglés es invite. Entonces ya sabemos que tenemos que buscar algo como PartyInvite.
     
    Cuando encontremos algo de este tipo:
    extern char CHARACTER__PartyInvite_CHARACTER______FUNCTION__[12]; // weak Entonces lo que hacemos es buscar esa función. Ojo, apenas buscamos por CHARACTER__PartyInvite.
     
    Y por fin, encontraremos la función CHARACTER__PartyInvite:
    int __fastcall CHARACTER__PartyInvite(int a1, int a2, int a3, int a4){  int v4; // eax@4  int v5; // edx@4  int v6; // ecx@4  int v7; // ebx@6  int v8; // eax@6  int v9; // eax@7  int result; // eax@8  int v11; // eax@10  int v12; // eax@15  int v13; // eax@22  int v14; // eax@23  int v15; // edx@23  int v16; // ecx@23  int v17; // edi@23  int v18; // eax@23  int v19; // edx@25  int v20; // ecx@25  int v21; // [sp+0h] [bp-48h]@3  int v22; // [sp+0h] [bp-48h]@6  int v23; // [sp+20h] [bp-28h]@23  int v24; // [sp+24h] [bp-24h]@23  _BYTE v25[5]; // [sp+2Bh] [bp-1Dh]@29  int v26; // [sp+30h] [bp-18h]@23  int v27; // [sp+34h] [bp-14h]@22  int v28; // [sp+38h] [bp-10h]@1  v28 = *(_DWORD *)_stack_chk_guard__FBSD_1_0;  if ( *(_DWORD *)(a3 + 9328) && CParty__GetLeaderPID(a1, a2, *(_DWORD *)(a3 + 9328)) != *(_DWORD *)(a3 + 256) )  {   v21 = (int)&unk_848D8B8;LABEL_4:   v4 = locale_find(v21);   CHARACTER__ChatPacket(a3, 1, (const char *)v4);  }  else  {   if ( *(_BYTE *)(a4 + 9104) & 2 )   {   v8 = CHARACTER__GetName(a4);   v22 = (int)&unk_848D8E8;   v7 = v8;LABEL_7:   v9 = locale_find(v22);   CHARACTER__ChatPacket(a3, 1, (const char *)v9, v7);   }   else   {   v11 = CHARACTER__IsPartyJoinableCondition(a3, a4);   if ( (unsigned int)v11 <= 0xA )   {   switch ( v11 )   {   default:   goto LABEL_11;   case 10:   v21 = (int)&unk_848D868;   goto LABEL_4;   case 8:   v21 = (int)&unk_848D4C0;   goto LABEL_4;   case 7:   v12 = CHARACTER__GetName(a4);   v22 = (int)"<ÆÄƼ> ÀÌ¹Ì %s´ÔÀº ÆÄƼ¿¡ ¼ÓÇØ ÀÖ½À´Ï´Ù.";   v7 = v12;   goto LABEL_7;   case 6:   v21 = (int)&unk_848D480;   goto LABEL_4;   case 5:   v21 = (int)&unk_848D440;   goto LABEL_4;   case 4:   v21 = (int)&unk_848D404;   goto LABEL_4;   case 3:   v21 = (int)&unk_848D3D0;   goto LABEL_4;   case 2:   v21 = (int)&unk_848D39C;   goto LABEL_4;   case 1:   v21 = (int)&unk_848D368;   goto LABEL_4;   case 0:   v27 = *(_DWORD *)(a4 + 256);   v13 = std___Rb_tree_unsigned_int_std__pair_unsigned_int__const_boost__intrusive_ptr_event___std___Select1st_std__pair_unsigned_int__const_boost__intrusive_ptr_event____std__less_unsigned_int__std__allocator_std__pair_unsigned_int__const_boost__intrusive_ptr_event______find(   a3 + 9340,   (int)&v27);   v5 = a3 + 9344;   if ( a3 + 9344 == v13 )   {   v14 = AllocEventInfo_TPartyJoinEventInfo_();   *(_DWORD *)(v14 + 4) = *(_DWORD *)(a4 + 256);   *(_DWORD *)(v14 + 8) = *(_DWORD *)(a3 + 256);   event_create_ex(&v26, (int)party_invite_event, v14, 10 * passes_per_sec);   v17 = v26;   v18 = *(_DWORD *)(a4 + 256);   v24 = v26;   v23 = v18;   if ( v26 )   intrusive_ptr_add_ref(v16, v15, v26);   std___Rb_tree_unsigned_int_std__pair_unsigned_int__const_boost__intrusive_ptr_event___std___Select1st_std__pair_unsigned_int__const_boost__intrusive_ptr_event____std__less_unsigned_int__std__allocator_std__pair_unsigned_int__const_boost__intrusive_ptr_event_______M_insert_unique(   a3 + 9340,   (int)&v23);   if ( v24 )   intrusive_ptr_release(v20, v19, v24);   if ( v17 )   intrusive_ptr_release(v20, v19, v17);   v25[0] = 77;   *(_DWORD *)&v25[1] = *(_DWORD *)(a3 + 260);   DESC__Packet(*(_DWORD *)(a4 + 44), (int)v25, 5);   }   break;   }   }   else   {LABEL_11:   sys_err((int)"PartyInvite", 4558, "Do not process party join error(%d)", v11);   }   }  }  result = *(_DWORD *)_stack_chk_guard__FBSD_1_0 ^ v28;  if ( *(_DWORD *)_stack_chk_guard__FBSD_1_0 != v28 )   __stack_chk_fail(v6, v5);  return result;} Ahora a partir de aquí, hay que saber leer. Vayamos por partes:
    LABEL_4:   v4 = locale_find(v21);   CHARACTER__ChatPacket(a3, 1, (const char *)v4); LABEL_7:   v9 = locale_find(v22);   CHARACTER__ChatPacket(a3, 1, (const char *)v9, v7); LABEL_4 y LABEL_7 tienen un locale_find y un ChatPacket, lo que significa que buscará en el locale_string.txt un texto que estará dentro del locale_find y luego lo mostrará en el Chat.
     
    Pasemos directamente al switch:
      v11 = CHARACTER__IsPartyJoinableCondition(a3, a4);   if ( (unsigned int)v11 <= 0xA )   {   switch ( v11 )   {   default:   goto LABEL_11;   case 10:   v21 = (int)&unk_848D868;   goto LABEL_4;   case 8:   v21 = (int)&unk_848D4C0;   goto LABEL_4;   case 7:   v12 = CHARACTER__GetName(a4);   v22 = (int)"<ÆÄƼ> ÀÌ¹Ì %s´ÔÀº ÆÄƼ¿¡ ¼ÓÇØ ÀÖ½À´Ï´Ù.";   v7 = v12;   goto LABEL_7;   case 6:   v21 = (int)&unk_848D480;   goto LABEL_4;   case 5:   v21 = (int)&unk_848D440;   goto LABEL_4;   case 4:   v21 = (int)&unk_848D404;   goto LABEL_4;   case 3:   v21 = (int)&unk_848D3D0;   goto LABEL_4;   case 2:   v21 = (int)&unk_848D39C;   goto LABEL_4;   case 1:   v21 = (int)&unk_848D368;   goto LABEL_4;   case 0:   v27 = *(_DWORD *)(a4 + 256);   v13 = std___Rb_tree_unsigned_int_std__pair_unsigned_int__const_boost__intrusive_ptr_event___std___Select1st_std__pair_unsigned_int__const_boost__intrusive_ptr_event____std__less_unsigned_int__std__allocator_std__pair_unsigned_int__const_boost__intrusive_ptr_event______find(   a3 + 9340,   (int)&v27);   v5 = a3 + 9344;   if ( a3 + 9344 == v13 )   {   v14 = AllocEventInfo_TPartyJoinEventInfo_();   *(_DWORD *)(v14 + 4) = *(_DWORD *)(a4 + 256);   *(_DWORD *)(v14 + 8) = *(_DWORD *)(a3 + 256);   event_create_ex(&v26, (int)party_invite_event, v14, 10 * passes_per_sec);   v17 = v26;   v18 = *(_DWORD *)(a4 + 256);   v24 = v26;   v23 = v18;   if ( v26 )   intrusive_ptr_add_ref(v16, v15, v26);   std___Rb_tree_unsigned_int_std__pair_unsigned_int__const_boost__intrusive_ptr_event___std___Select1st_std__pair_unsigned_int__const_boost__intrusive_ptr_event____std__less_unsigned_int__std__allocator_std__pair_unsigned_int__const_boost__intrusive_ptr_event_______M_insert_unique(   a3 + 9340,   (int)&v23);   if ( v24 )   intrusive_ptr_release(v20, v19, v24);   if ( v17 )   intrusive_ptr_release(v20, v19, v17);   v25[0] = 77;   *(_DWORD *)&v25[1] = *(_DWORD *)(a3 + 260);   DESC__Packet(*(_DWORD *)(a4 + 44), (int)v25, 5);   }   break;   }   }   else   {LABEL_11:   sys_err((int)"PartyInvite", 4558, "Do not process party join error(%d)", v11);   } Como veremos, la variable v11 está obteniendo el valor de una otra función, llamada CHARACTER__IsPartyJoinableCondition.
    Entonces, lo que el servidor hará es testear ese valor desde la función switch.
      switch ( v11 )   {   default:   goto LABEL_11; Si esa variable es false dependiendo de los valores encontrados en los case, entonces irá hasta el LABEL_11, que es un error en syserr:
    LABEL_11:   sys_err((int)"PartyInvite", 4558, "Do not process party join error(%d)", v11); Si esa condición es verdadera, hará una serie de cosas.
     
    Entonces ya sabemos que, lo que sale en el chat dependerá:
    - Del valor de la variable v11, o sea, el valor que la función CHARACTER__IsPartyJoinableCondition obtiene. Ahora que sabemos esto, vayamos directos a esa función.
    int __cdecl CHARACTER__IsPartyJoinableCondition(int a1, int a2){  int v2; // edx@1  int result; // eax@2  v2 = a2;  if ( *(_BYTE *)(a1 + 9797) == *(_BYTE *)(a2 + 9797) )  {   if ( *(_DWORD *)_stack_chk_guard__FBSD_1_0 == *(_DWORD *)_stack_chk_guard__FBSD_1_0 )   return CHARACTER__IsPartyJoinableMutableCondition(a1, a2, a1, a2);LABEL_6:   __stack_chk_fail(a1, v2);  }  v2 = *(_DWORD *)_stack_chk_guard__FBSD_1_0 ^ *(_DWORD *)_stack_chk_guard__FBSD_1_0;  result = 10;  if ( *(_DWORD *)_stack_chk_guard__FBSD_1_0 != *(_DWORD *)_stack_chk_guard__FBSD_1_0 )   goto LABEL_6;  return result;} De aqui no podemos sacar grandes conclusiones, pero, sabemos una cosa:
      if ( *(_DWORD *)_stack_chk_guard__FBSD_1_0 == *(_DWORD *)_stack_chk_guard__FBSD_1_0 )   return CHARACTER__IsPartyJoinableMutableCondition(a1, a2, a1, a2); Esta funcion hará return al valor de una otra función. Debemos entonces, movermos hasta esa función, CHARACTER__IsPartyJoinableMutableCondition.
    int __fastcall CHARACTER__IsPartyJoinableMutableCondition(int a1, int a2, int a3, int a4){  int v4; // edx@1  char v5; // al@4  __int64 v6; // qax@5  int result; // eax@7  int v8; // eax@10  int v9; // [sp+1Ch] [bp-Ch]@1  v4 = 1;  v9 = *(_DWORD *)_stack_chk_guard__FBSD_1_0;  if ( *(_BYTE *)(singleton_CPartyManager___ms_singleton + 76) )  {   LOBYTE(v4) = 2;   if ( !*(_DWORD *)(a3 + 9364) )   {   LOBYTE(v4) = 3;   if ( !*(_BYTE *)(a4 + 4) )   {   v5 = LC_IsCanada(a1);   a1 = 15;   if ( !v5 )   a1 = (unsigned __int8)LC_IsBrazil(15) < 1u ? 30 : 10;   v6 = *(_BYTE *)(a3 + 1298) - *(_BYTE *)(a4 + 1298);   LODWORD(v6) = (HIDWORD(v6) ^ v6) - HIDWORD(v6);   v4 = 4;   if ( a1 >= (_DWORD)v6 )   {   LOBYTE(v4) = 7;   if ( !*(_DWORD *)(a4 + 9328) )   {   if ( !*(_DWORD *)(a3 + 9328)   || (v8 = CParty__GetMemberCount(a1, v4, *(_DWORD *)(a3 + 9328)), v4 = 8, v8 != 8) )   v4 = 0;   }   }   }   }  }  result = v4;  if ( *(_DWORD *)_stack_chk_guard__FBSD_1_0 != v9 )   __stack_chk_fail(a1, *(_DWORD *)_stack_chk_guard__FBSD_1_0 ^ v9);  return result;} La primera cosa en lo que nos fijaremos es en esto:
      v5 = LC_IsCanada(a1);   a1 = 15;   if ( !v5 )   a1 = (unsigned __int8)LC_IsBrazil(15) < 1u ? 30 : 10; La variable v5 será igual a un boolean (true o false), a1 es un integer (un valor entre 0 a 2 millones). Lo que la función hace, es verificar si la variable v5 es false, si así es, el valor de la variable a1 cambia, dependiendo del locale, ya que si este es un locale/brazil el a1 será 10.
    a1 = (unsigned __int8)LC_IsBrazil(15) < 1u ? 30 : 10; Esto es lo que se llama, un short if-statement:
    a1 = boolean ? valor si es true : valor si es false;
     
    Como el nivel de diferencia en los servidores de europa es 15, podemos concluir que la variable a1 define el nivel de diferencia y es el valor que queremos cambiar.
     
     
    Toqueteando en el IDA
     
    Después de saber que valor tenemos que cambiar, y donde está, abrimos el IDA:

     
    Y le damos al primer botón (New - Disassemble a new file), seleccionamos nuestro archivo, en mi caso el game r40250, y nos aparecerá algo de este tipo:

     
    Nosotros, sin tocar en nada, le damos al OK. Y esperamos hasta que cargue las funciones.
     
    Cuando nos salga algo así:

     
    Significa que las funciones ya están cargadas.
    Ahora le hacemos click en la ventana Function name y escribimos: CHARACTER::IsPartyJoinableMutableCondition y le damos un doble click.
     

     
     
    Nosotros simplemente bajamos hasta aqui:

     
    Si le damos al botón de tabulación, nos llevará al pseudocode de esa función y, además, nos dejará en la localización actual, por ejemplo:
    call   _Z11LC_IsCanadav ; LC_IsCanada(void)mov ecx, 0Fhtest   al, aljz   short loc_806E8B0 Si hacemos click en el mov y hacemos un jump to pseudocode nos llevará hasta:
    a1 = 15; Yo, como no sé cambiar los valores de los short if-statements, haré NOP (No Operation, que simplemente hace que en esa parte no haga nada).
     
    Entonces, nos moveremos al Hex View y podremos ver que la parte que está seleccionada, es la parte que hemos seleccionado en el IDA View.
    Nos vamos a la ventana donde está el LC_IsCanada:
    .text:0806E83A jnz short loc_806E878.text:0806E83C call   _Z11LC_IsCanadav ; LC_IsCanada(void).text:0806E841 mov ecx, 0Fh.text:0806E846 test   al, al.text:0806E848 jz   short loc_806E8B0 El short jump if not zero (jnz) si le damos click y vamos al pseudo, veremos que está demasiado arriba del if-statement.
    El call al LC sabemos que es una variable
    El mov es la variable que queremos cambiar.
    El test es el if-statement.
    El jump if zero (jz) basicamente es lo que va después de la condición.
     
    Entonces lo que tenemos que hacer, es NOP al jz y al test.
     
    Como?
    Facil, seleccionamos lo que queremos cambiar:

     
    Nos vamos al Hex View le damos al F2, y cambiamos los 2 valores que salen seleccionados por 90. Ya que el No Operation (NOP) equivale a 90. Volvemos a darle al F2 para guardar los cambios.
    Y luego, hacemos lo mismo con el jz.
     
    Que hemos echo entonces?
    Basicamente, lo que hicimos hasta ahora, es dejar el nivel de diferencia entre jugadores para que se inviten sea de 15, ya que el if define todo lo demás, dependiendo del locale.
    Si queremos cambiar el 15 por otro, facil. Vamos hasta:
    mov ecx, 0Fh
     
    Luego al Hex View, entonces abrimos el
    Debes iniciar sesión para ver el contenido del enlace en esta publicación., ponemos 15 donde el 1, y le damos click a to hexadecimal, que nos saldra un f, o sea 15 en hexadecimal equivale a 0F. Buscaremos eso en el Hex View, le damos al F2. Volvemos al conversor, y convertimos el valor que queremos poner a cambio de 15. Yo por ejemplo, pondré 5 que es 05. Le daré al F2 otra vez para guardar los cambios.
     
    Entonces si vuelvo al pseudo me saldrá:
      v5 = LC_IsCanada(a1, v4);   a1 = 5; En vez de:
      v5 = LC_IsCanada(a1, v4);   a1 = 15; Eso es porque hemos cambiado el 15 por 5 en el Hex View.
     
     
    Por fin, como creamos la diff después de cambiar lo que queramos?

     
     
    Y mi diff me saldrá así:
    This difference file has been created by IDA Progame_r4025000026842: 0F 05 // Esto es el cambio de la variable a1, de 15 a 5// Estos NOP es de la condición que hemos "eliminado"00026846: 84 9000026847: C0 9000026848: 74 9000026849: 66 90 Y por último os dejo aqui los pseudocode que tengo:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  4. Me Gusta
    fuuton97 reacted to Shogun in Como instalar el firewall pf   
    Hola a todos,
     
    Hoy os voy a explicar cómo instalar y configurar el firewall pf que viene integrado desde hace mucho tiempo en FreeBSD. Por tanto este tutorial debería servir en cualquier versión de FreeBSD que utilicéis.
     
    Además de bloquear los puertos que no queramos que estén abiertos al público, configuraremos un limitador de frecuencia que bloqueará las IP que hagan demasiadas conexiones o demasiado rápidas, lo cual es muy útil para protegerse de ciertos ataques DDoS.
     
    En primer lugar crearemos un fichero llamado /etc/pf.conf con el Easy Editor:
     
    ee /etc/pf.conf
     
    Nota: Esta configuración asume que tenemos página web, base de datos y juego, en la misma máquina. Si tenéis la web en otro sitio, cerrad los puertos 80 y 443 borrándolos de service_ports y añadir la IP de vuestro servidor web en /var/db/trusted_hosts. Para otras configuraciones preguntad en el hilo.
     
    Copiamos y pegamos lo que viene a continuación en el putty:
    ext_if="igb1" service_ports="{ 22, 80, 443 }" game_ports="{ 11000, 13000, 13001, 13002, 13010, 13011, 13012, 13020, 13021, 13022, 13099 }" table <abusive_hosts> persist table <trusted_hosts> persist file "/var/db/trusted_hosts" set block-policy return set loginterface $ext_if set skip on lo scrub on $ext_if reassemble tcp no-df set-tos lowdelay random-id antispoof quick for { lo0 $ext_if } block in pass out all keep state pass out on $ext_if all modulate state pass in quick from <trusted_hosts> block in quick from <abusive_hosts> pass in on $ext_if inet proto icmp all icmp-type echoreq keep state pass in on $ext_if proto tcp to any port $game_ports flags S/SA synproxy state / (max-src-conn 30, max-src-conn-rate 20/5, overload <abusive_hosts> flush) pass in on $ext_if proto tcp to any port $service_ports flags S/SA keep state / (max-src-conn 30, max-src-conn-rate 20/5, overload <abusive_hosts> flush) Las tres primeras líneas debéis cambiarlas de esta forma:
     
    ext_if: nombre del interface público, lo podemos averiguar con el comando ifconfig:
     
    En este caso mi interface público, el que tiene asignado mi IP pública de internet, es igb1.
     
    service_ports: puertos usados para ssh, web, etc. En el ejemplo he puesto 22 (SSH), 80 (HTTP), 443 (HTTPS)
     
    game_ports: todos los puertos del metin, separados por coma: auth y los game cores (no pongáis el de db que suele ser 15000 por defecto ya que db no debe estar accesible a internet sólo a los game cores)
     
    Si tienes tu página web en otro servidor o quieres por cualquier otro motivo que una o más direcciones IP tengan acceso libre a tu servidor sin pasar por el firewall debes ponerlas, una por línea, en este fichero que crearemos con:
     
    ee /var/db/trusted_hosts
     
    Terminada la configuración haremos lo siguiente:
     
    kldload pf
    pfctl -e
     
    A partir de este momento estará activado nuestro firewall, aunque para que sea plenamente funcional debemos añadir una línea a /etc/rc.conf que ponga:
     
    pf_enable="YES"
     
    Y reiniciar FreeBSD. Ya estamos protegidos contra algunos tipos de ataque DDoS bastante comunes.
     
    Manejo del firewall
     
    Para ver las IP baneadas:
     
    pfctl -t abusive_hosts -T show
     
    Para borrar la tabla de bans entera:
     
    pfctl -t abusive_hosts -T flush
     
    Para añadir una IP a la tabla de bans:
     
    pfctl -t abusive_hosts -T add 8.8.8.8
     
    Para borrar una IP de la tabla de bans
     
    pfctl -t abusive_hosts -T del 8.8.8.8
     
    Para deshabilitar temporalmente el firewall:
     
    pfctl -d
     
    Si por cualquier motivo queremos desinstalar el firewall será necesario borrar la línea que escribimos en /etc/rc.conf y reiniciar la máquina. Tened cuidado también ya que os podéis bloquear a vosotros mismos sin querer, en ese caso la única solución es cambiar vuestra IP o pedirle a otro administrador que nos desbloquee con el comando correspondiente.
     
    Cualquier duda os responderé en este hilo cuando pueda
  5. Me Gusta
    fuuton97 got a reaction from Metin2Regal in [QUEST + REGEN'S]Catacumbas funcionales.   
    Hola zoneros, hoy les vengo a traer la quest de las catacumbas del diablo, 100% probada por mi, esta es la quest de BlackYuko. Cuenta con los portales como el oficial, en un máximo de 99% del oficial.
     
    Quest:

    --** --** Script Catacumbas del Diablo. --** by BlackYuko Skype: manu___88 --** quest catacombe begin state start begin --** --** Funciones --** function GetScriptData(data) local map_data = {['map_index'] = 15, -- index del mapa de catacumbas ['x'] = 3072, ['y'] = 12032, -- coordenadas X y Y, las del mapa catacumbas ['drop_frequency'] = 1000, -- frecuencia en los mob para que dropeen la llave cristal del alma ['min_lev'] = 100, -- nivel minimo para entrar a catacumbas, ['close_time'] = 60, -- tiempo (minutos) para estar en catacumbas ['testa_ristretta'] = 30320, -- vnum item de entrada que pide ['chiave_anime_cristallo'] = 30311, -- vnum item llave cistal del alma ['totem_smorfia'] = 30312, -- vnum totem ['forziere_azrael'] = 219, -- vnum drop al matar al azrael ['min_drop_lev'] = 100, -- nivel minimo para dropeo de la llave cristal ['max_drop_lev'] = 210} -- nivel maximo para dropeo de la lalve cristal return rawget(map_data, data) end function IsInDungeon(pc_index) local map_index = catacombe.GetScriptData('map_index') return (pc.in_dungeon() and pc_index >= map_index*10000 and pc_index < (map_index+1)*10000) end function CanDrop(pc_level) return (pc_level >= catacombe.GetScriptData('min_drop_lev') and pc_level <= catacombe.GetScriptData('max_drop_lev')) end --** --** NPC - Guardian entrada a catacumbas --** when 20351.chat."GM: Catacumbas Abrir" with pc.is_gm() begin say_title("GM: Catacumbas Abrir") say("¿Quieres abrir las Catacumbas?[ENTER]") local s = select("Si","No") if s == 2 then return end say_title("GM: Abrir Catacumbas") say("Operación Completada.[ENTER]") game.set_event_flag("catacomb_next_open", 1) end when 20351.chat."Entrada a Catacumbas" begin local mob_race = npc.get_race() local min_lev = catacombe.GetScriptData('min_lev') say_title(mob_name(mob_race)) if pc.get_level() < min_lev then say("Debes tener el mínimo Nivel "..min_lev) say("Para entrar.[ENTER]") return end if pc.count_item(catacombe.GetScriptData('testa_ristretta')) == 0 then say("Tienes que tener este Item para") say("Entrar:[ENTER]") say_item_vnum(catacombe.GetScriptData('testa_ristretta')) return end if get_time() < game.get_event_flag("catacomb_next_open") then say("Las Catacumbas están cerradas.[ENTER]") return end say("Hola aventurero. Las catacumbas del diablo") say("son un lugar muy peligroso.[ENTER]") local s = select("Entrar","No Entrar") if s == 2 then return end say_title(mob_name(mob_race)) say("Ok Viajero, ahora será telestrasportado.") say("Preste mucha atención.[ENTER]") wait() pc.warp((catacombe.GetScriptData('x')+80)*100, (catacombe.GetScriptData('y')+60)*100) end --** --** Primer Piso --** when login with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.set_warp_location(15, 3152, 12092) end when logout with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.delqf("mob_killed") end when 2501.kill or 2502.kill or 2503.kill or 2504.kill with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.setqf("mob_killed", pc.getqf("mob_killed")+1) if math.mod(pc.getqf("mob_killed"), catacombe.GetScriptData('drop_frequency')) == 0 then game.drop_item_with_ownership(catacombe.GetScriptData('chiave_anime_cristallo'), 1) end end when 30101.take with item.get_vnum() == catacombe.GetScriptData('chiave_anime_cristallo') and pc.get_map_index() == catacombe.GetScriptData('map_index') begin say_title(mob_name(30101)) if get_time() < game.get_event_flag("catacomb_next_open") then say("Las Catacumbas están cerradas.[ENTER]") return end if party.is_party() and not party.is_leader() then say("Sólo arrastra el objeto sobre") say("El NPC.[ENTER]") return end pc.remove_item(item.get_vnum(), 1) say("Abrieron el seloo hacia.") say("El paso a la segunda planta.[ENTER]") if party.is_party() then say("Serán llevados, suerte viejeros.[ENTER]") end wait() game.set_event_flag("catacomb_next_open", get_time()+60*catacombe.GetScriptData('close_time')) pc.setqf("is_master", 1) timer("enter_floor_2", 2) end --** --** Entrada dungeon y timer --** when login with catacombe.IsInDungeon(pc.get_map_index()) begin pc.set_warp_location(15, 3152, 12092) if pc.getqf("is_master") == 1 then timer("start_timer", 2) end end when logout with catacombe.IsInDungeon(pc.get_map_index()) begin pc.remove_item(catacombe.GetScriptData('totem_smorfia'), pc.count_item(catacombe.GetScriptData('totem_smorfia'))) pc.remove_item(catacombe.GetScriptData('chiave_anime_cristallo'), pc.count_item(catacombe.GetScriptData('chiave_anime_cristallo'))) pc.delqf("is_master") end when start_timer.timer begin d.notice("Les que da "..catacombe.GetScriptData('close_time').." minutos de su tiempo.") d.notice("para complezar Catacumbas!") notice_all("Las Catacumbas se cerrarán en "..catacombe.GetScriptData('close_time').." minutos a partir de ahora.") server_timer("catacomb_open", 60*catacombe.GetScriptData('close_time'), pc.get_map_index()) end when catacomb_open.server_timer begin notice_all("Las Catacumbas están abiertas de nuevo.!") if d.select(get_server_timer_arg()) then clear_server_timer("catacomb_open", get_server_timer_arg()) d.notice("Tiempo Acabado, serán sacados de Catacumbas.") d.exit_all() end end --** --** Segundo piso --** when enter_floor_2.timer begin d.new_jump_all(15, 3617, 12075) d.regen_file("data/dungeon/catacumbas/dc_regen_ebene2.txt") d.setf("catacomb_floor", 2) end when 30103.take with item.get_vnum() == catacombe.GetScriptData('testa_ristretta') and catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 2 begin if pc.getqf("is_master") == 1 then pc.remove_item(item.get_vnum(), 1) d.notice("Serán llevados a la siguente planta") timer("enter_floor_3", 3) else d.notice("Solo el guerrero fuerte podrá poner el item.") end end --** --** Tercer piso --** when enter_floor_3.timer begin d.jump_all(3572, 12760) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene3.txt") d.setf("catacomb_floor", 3) d.notice("Buscar el metin correcto para avanzar!") local coord_metin = {{1340,348},{1243,357},{1334,151},{1252,148},{1149,148},{1139,244},{1148,355}} local right_metin = math.mod(os.time(),table.getn(coord_metin))+1 for i = 1,table.getn(coord_metin) do if i == right_metin then local v = d.spawn_mob(8025, coord_metin[i][1], coord_metin[i][2]) d.set_unique("real", v) --chat(coord_metin[i][1].." "..coord_metin[i][2]) else d.spawn_mob(8025, coord_metin[i][1], coord_metin[i][2]) end end end when 8025.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 3 begin if d.is_unique_dead("real") then d.notice("El metin destruido es el correcto!") d.notice("Serán llevados a la siguiente planta.") timer("enter_floor_4", 3) else d.notice("El metin destruido es falso.") end end --** --** Cuarto Piso --** when enter_floor_4.timer begin d.jump_all(3369, 12354) d.clear_regen() d.kill_all() local map_n = math.mod(os.time(),4)+1 d.regen_file("data/dungeon/catacumbas/piano_4_"..map_n.."_catacombe.txt") d.setf("catacomb_floor", 4) d.notice("Encontrar el camino correcto para avanzar!") end when 20352.chat."Avanzar a la Sig. Planta" with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 4 begin if pc.getqf("is_master") == 1 then say("Muy bien, has conseguido llegar hasta aquí.") say("En la siguiente planta te enfrentarás con el") say("jefe de las catacumbas.[ENTER]") wait() setskin(0) d.notice("Serán llevados a la siguiente planta.") timer("enter_floor_5", 3) else say("Sólo el guerrero del grupo o subida podrá recompensar.[ENTER]") end end --** --** Quinto Piso --** when enter_floor_5.timer begin d.jump_all(3917, 12431) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene5.txt") d.setf("catacomb_floor", 5) d.setf("correct_killed", 0) d.notice("Encontrar y matar al Tártaro correcto para avanzar!") local coord_boss = {{848,570},{678,832},{685,632},{1031,637},{1003,856}} local right_boss = math.mod(os.time(),table.getn(coord_boss))+1 for i = 1,table.getn(coord_boss) do if i == right_boss then local v = d.spawn_mob(2591, coord_boss[i][1], coord_boss[i][2]) d.set_unique("real", v) --chat(coord_boss[i][1].." "..coord_boss[i][2]) else d.spawn_mob(2591, coord_boss[i][1], coord_boss[i][2]) end end end when 2591.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 5 begin if d.is_unique_dead("real") and d.getf("correct_killed") == 0 then d.setf("correct_killed", 1) d.notice("El Tártaro correcto fue destruido!") d.notice("Arrastra el Totém al pilar o NPC!") game.drop_item_with_ownership(catacombe.GetScriptData('totem_smorfia'), 1) else d.notice("El Tártaro es falso, no es el correcto.") end end when 30102.take with item.get_vnum() == catacombe.GetScriptData('totem_smorfia') begin pc.remove_item(item.get_vnum(), 1) d.notice("Serán llevados a la siguiente planta!") timer("enter_floor_6", 3) end --** --** Sexto Piso --** when enter_floor_6.timer begin d.jump_all(4372, 12732) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene6.txt") d.setf("catacomb_floor", 6) d.notice("Mata al Caronte para avanzar!") end when 2597.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 6 begin notice_all(" ".. pc.get_name() .." Ha destruido la Muerte!") notice_all("Felicitaciones Guerrero.") d.notice("El Caronte fue destruido!") d.notice("Serán llevados a la última planta, Suerte!") timer("enter_floor_7", 3) end --** --** Septimo Piso --** when enter_floor_7.timer begin d.jump_all(3146, 13142) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene7.txt") d.setf("catacomb_floor", 7) d.notice("Acaba con Azrael!") end when 2598.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 7 begin if catacombe.CanDrop(pc.get_level()) then game.drop_item_with_ownership(catacombe.GetScriptData('forziere_azrael'), 1) end notice_all("El Personaje o el Grupo de ".. pc.get_name() .." ha destruido al Azrael!") d.clear_regen() d.notice("Han acabado con el Mal del Azrael, FELICITACIONES!") d.notice("Tienen 20 segundos, y serán sacados de la mazmorra.") timer("exit_catacomb", 20) end when exit_catacomb.timer begin d.exit_all() end end end Por general cambian el index del mapa que es 15 (en mi caso), ustedes lo cambian por su número de index, es totalmente editable, cuenta con activación de las catacumbas por un gm.
     
    Poner en quest_functions:

    DragonLair.startRaid GetScriptData(data) IsInDungeon(pc_index) CanDrop(pc_level) catacombe.CanDrop catacombe.GetScriptData game.drop_item_with_ownership os.time rawget Introducir en player-->query-->new query: Estos son los portales.

    INSERT INTO mob_proto VALUES ('10201', '. 70 580', 0x2E20373020353830, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10202', '. 70 668', 0x2E20373020363638, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10203', '. 131 665', 0x2E2031333120363635, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10204', '. 183 566', 0x2E2031383320353636, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10205', '. 292 567', 0x2E203239322020353637, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10206', '. 281 636', 0x2E2032383120363336, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10207', '. 186 667', 0x2E2031383620363637, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10208', '. 345 558', 0x2E2033343520353538, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10209', '. 402 561', 0x2E2034303220353631, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10210', '. 68 811', 0x2E20363820383131, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10211', '. 140 818', 0x2E2031343020383138, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10212', '. 189 716', 0x2E2031383920373136, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10213', '. 274 716', 0x2E2032373420373136, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10214', '. 232 780', 0x2E2032333220373830, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10215', '. 325 779', 0x2E2033323520373739, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10216', '. 274 838', 0x2E2032373420383338, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10217', '. 359 717', 0x2E2033353920373137, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10218', '. 415 711', 0x2E2034313520373131, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10219', '. 368 776', 0x2E2033363820373736, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10220', '. 366 815', 0x2E2033363620383135, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10221', '. 350 840', 0x2E2033353020383430, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10222', '. 424 842', 0x2E2034323420383432, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10223', '. 94 843', 0x2E20393420383433, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10224', '. 59 864', 0x2E20353920383634, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10225', '. 138 864', 0x2E2031333820383634, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10226', '. 54 920', 0x2E20353420393230, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10227', '. 140 919', 0x2E2031343020393139, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10228', '. 90 945', 0x2E20393020393435, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10229', '. 194 865', 0x2E2031393420383635, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10230', '. 243 857', 0x2E2032343320383537, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10231', '. 312 856', 0x2E2033313220383536, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10232', '. 368 894', 0x2E2033363820383934, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10233', '. 406 875', 0x2E2034303620383735, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10235', '. 500 790', 0x2E2035303020373930, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); INSERT INTO mob_proto VALUES ('10234', '. 427 934', 0x2E2034323720393334, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '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'); Descargar regen's + la parte del servidor + regen portales (PARTE DEL SERVIDOR OBLIGATORIA PONER, PORQUE ES DIFERENTE SU SERVER_ATTR):
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Solamente deberán cambiar las coordenadas de cada planta, y listo.
     
    Créditos quest: BlackYuko
     
    Saludos.
  6. Me Gusta
    fuuton97 got a reaction from iMixxx in [DUNGEON]Capítulo II - Cómo hacer una Dungeon (PRINCIPIANTES).   
    Hola, estoy de nuevo aquí trayéndoles el segundo capítulo de DUNGEON, y hoy comenzaremos haciendo paso a paso una dungeon sencilla para principiantes, nos profundizaremos en una dungeon muy eficaz, con funciones generales y de su derivado.
    Si te pasaste el Primer Capítulo te lo dejo aquí:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Bien, primero que nada, debemos saber que dungeon es lenguaje LUA, y por lo tanto vamos a usar sus funciones ya sean de dungeon o no.
     
    1. Comenzamos haciendo lo inicial, que es lo que toda quest debe llevar:
    quest dungeon_principiante begin state start begin 2. En este paso comenzamos haciendo el cuerpo de la dungeon. Haremos el NPC que nos va a hacer llevar a X mapa para comenzar la dungeon:
    when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end Bueno, como ven es un simple NPC que te va a llevar a ese X mapa, para comenzar la dungeon.
     
    3. Ahora iremos con el paso dentro del mapa, para darle el comienzo en sí, en este caso pondré que inicie mediante un mob, osea matando a ese mob.
    when 101.kill begin Una vez aniquilado el mob 101, será comenzado la dungeon.
     
    4. Paso seguido ponemos el timer, para que los lleve a comenzar en 5 segundos:
    timer("inicio_dungeon", 5) end   Se preguntarán, ¿Qué es un timer?, pues bien timer quiere decir en su significado literal, tiempo, pero este da inicio en tiempo, ejemplo, si queremos ir a otro lugar ponemos timer, más un nombre para darselo y el tiempo, puede ser en segundos, minutos, etc; también el timer se usa para acabar en un evento o algo.  Esta fue la manera que trate de explicarles, no se si me entiendan bien xD.
     
    5. En este paso ya comenzaremos con el inicio dentro de la dungeon, comenzaremos con el timer que pusimos anteriormente:
    when inicio_dungeon.timer begin 6. Aquí en este paso vamos a usar la primera función "d." de dungeon, y será para que nos lleve a X planta:
    d.new_jump_all(23, 2312, 2122) Explicaré: La función mostrada nos da a ir a todos que se encuentren en ese mapa a esas coordenadas (X y Y), el número 23 que está de primero nos indica el INDEX de ese mapa donde los va a llevar o donde están.
     
    7. El paso séptimo, usaremos nuestra segunda función dungeon, para eso miremos:
    d.setf("fuuton97", 1) Cómo ven pusimos la función "d.setf", donde nos indica un nombre inicial secuencial denominado "fuuton97", cabe decir que se puede colocar cualquier nombre, pero siempre en todos los d.setf se debe colocar el mismo nombre; el número "1", indica que es el primer d.setf, en otras palabras primera planta en la que comenzamos la dungeon.
     
    En este mismo paso colocamos un anunció, para darle ambiente a la dungeon, pero ojo, aquí comenzamos a jugar nuestra imaginación de como haremos divertido esta dungeon. Invocamos al mob con la función "d.spawn_mob".
    Quedaría así:
    d.setf("fuuton97", 1) d.spawn_mob(101, 12312, 123123) d.notice("Están en la Primera Planta!!!!") 8. Seguidamente ponemos a disposición el "juego", llamaremos a un mob que nos permitirá ir a la segunda planta. Le hacemos ambiente de diálogo a la dungeon:
    when 101.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") Cómo ven vemos otra función nueva para ustedes, y es la "d.getf" que es el complemento de "d.setf", en esa hay que colocar el nombre que dimos para todas las plantas, osea fuuton97, en mi caso, pero ustedes pueden colocarle otro nombre; el "1" no hace referencia también como en "d.setf", en otras palabras quiere decir que vamos por la primera planta.
     
    9. Cerramos con un timer que nos va a dirigir a la segunda planta y un end:
    timer("seguda_dungeon", 5) end Hasta ahora toda la dungeon debe ir así:
    quest dungeon_principiante begin state start begin when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end when 101.kill begin timer("inicio_dungeon", 5) end when inicio_dungeon.timer begin d.new_jump_all(23, 2312, 2122) d.setf("fuuton97", 1) d.spawn_mob(102, 12312, 123123) d.notice("Están en la Primera Planta!!!!") d.notice("Encontrar el Perro Salvaje.") end when 102.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") timer("segunda_dungeon", 5) end 10. Iniciamos llamando al timer, y hacemos lo mismo en los pasos anteriores, ambientando con diálogo, haciendo jugadas de kill mob o metines, etc, que vuele su imaginación:
    when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end 11. Ahora llamamos al metin que pusimos y hacemos lo mismo con los pasos anteriores:
    when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end when 8025.kill with d.getf("fuuton97") == 2 begin d.notice("Haveís acabado con un Metin") d.notice("Avanzarán a la tercera planta....") timer("tercera_dungeon", 5) end 12. Acá iniciamos con el timer que dejamos, osea lo llamamos, y en esta tercera planta haremos este jueguito: Pondremos un drop en mob, soltará una llave, al coger la llave damos click derecho y nos llevará a la cuarta y última planta de dungeon.
     
    En este paso conoceremos otras funciones que combinaremos con la dungeon, veamos:
    when tercera_dungeon.timer begin d.jump_all(3123, 123123) d.setf("fuuton97", 3) d.setf("drop_dungeon", 0) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.notice("Encontrar la llave!!!!!!!!!!") end when 103.kill or 104.kill or 105.kill with d.getf("fuuton97") == 3 begin d.setf("drop_dungeon", d.getf("drop_dungeon")+1) if d.getf("drop_dungeon") == 2 game.drop_item(43003, 1) d.setf("drop_dungeon", 0) end end when 43003.use begin item.remove() timer("cuarta_dungeon", 5) end Cómo ven es algo fantástico, el código de esta tercera planta es fácil, igual al de todos, solo invocamos más mob para el drop, utilizamos el game.drop_item para que suelte la llave.
     
    13. Llamamos al timer, y haremos la última planta, que en este caso solo se hizo para 4.
     
    Haremos los mismos pasos cómo los demás, solo veremos una función que agregaremos:
     
    when cuarta_dungeon.timer begin d.jump_all(12312, 13212) d.setf("fuuton97", 4) d.spawn_mob(108, 12312, 12312) d.notice("Acaba con el Jefe y ganarás la Dungeon") end when 108.kill with d.getf("fuuton97") == 4 begin game.drop_item(289, 1) notice_all("El Jugador ".. pc.get_name() .." ha derrotado al Jefe...") d.notice("Acabaron con el Jefe, felicitaciones...") d.notice("Tienen 10 segundos para recoger su premio..") timer("salir_dungeon", 10) end  
    Bueno como ven pusimos el Jefe, al matarlo suelta un item, que es la recompensa, ponemos un anuncio General para que lo vean todos de quien fue el que mató al Jefe, cerramos con un timer de 10 segundos para recoger el premio, y nos llevará para afuera de la dungeon.
     
    14. Último paso, solo añadiremos el timer que nos llevará fuera de la dungeon, o si quieres llevar a todos a sus citys:
    when salir_dungeon.timer begin d.exit_all() end end end También podemos usar la otra función: warp_to_all_village():
    when salir_dungeon.timer begin warp_to_all_village() end end end Por último cerramos con end del when, otro end del begin de inicio y el segundo begin de inicio, con total de 3 end's.
     
     
    Y para ver como quedó toda la dungeon, pequeña pero atendible para este curso:
    quest dungeon_principiante begin state start begin when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end when 101.kill begin timer("inicio_dungeon", 5) end when inicio_dungeon.timer begin d.new_jump_all(23, 2312, 2122) d.setf("fuuton97", 1) d.spawn_mob(102, 12312, 123123) d.notice("Están en la Primera Planta!!!!") d.notice("Encontrar el Perro Salvaje.") end when 102.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") timer("segunda_dungeon", 5) end when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end when 8025.kill with d.getf("fuuton97") == 2 begin d.notice("Haveís acabado con un Metin") d.notice("Avanzarán a la tercera planta....") timer("tercera_dungeon", 5) end when tercera_dungeon.timer begin d.jump_all(3123, 123123) d.setf("fuuton97", 3) d.setf("drop_dungeon", 0) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.notice("Encontrar la llave!!!!!!!!!!") end when 103.kill or 104.kill or 105.kill with d.getf("fuuton97") == 3 begin d.setf("drop_dungeon", d.getf("drop_dungeon")+1) if d.getf("drop_dungeon") == 2 game.drop_item(43003, 1) d.setf("drop_dungeon", 0) end end when 43003.use begin item.remove() timer("cuarta_dungeon", 5) end when cuarta_dungeon.timer begin d.jump_all(12312, 13212) d.setf("fuuton97", 4) d.spawn_mob(108, 12312, 12312) d.notice("Acaba con el Jefe y ganarás la Dungeon") end when 108.kill with d.getf("fuuton97") == 4 begin game.drop_item(289, 1) notice_all("El Jugador ".. pc.get_name() .." ha derrotado al Jefe...") d.notice("Acabaron con el Jefe, felicitaciones...") d.notice("Tienen 10 segundos para recoger su premio..") timer("salir_dungeon", 10) end when salir_dungeon.timer begin warp_to_all_village() end end end Espero que valoren mi tiempo, esto solo es una dungeon explicativa para principiantes, solo digo y hago lo básico, luego iremos añadiendo más funciones, condiciones, etc. 
     
    Aprovecho para decir que se hacen Dungeon's profesionales, con las plantas que quieran, y como quieren que sea, claro no se vallan de la imaginación xD, a tan solo 15 Euros; pueden contáctarme por skype: fuuton97 o enviarme un mensaje por mp al foro.
     
     
    Próximo capítulo: [DUNGEON] Capítulo III - Condiciones y Funciones en Dungeon.
     
    Espero que valoren este POST, me tome mi tiempo para ustedes, no desaprovechen esta oportunidad.
     
    Saludos.
  7. Me Gusta
    fuuton97 got a reaction from D0n D0vy in [RECOPILACIÓN]Diffs para game r40250.   
    Hola a todos, viendo que esta el nuevo game a la luz, decidí postear los diffs que hasta ahora hay para la versión 40250, es una recopilación hecha por mi del foro epvp.
     
    Para descargar game r40250 & db r40146: 
     
    Game: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!4M4gGJqJ!I3C7ADURLGzKsK9U-ptSFiBVDs5ZzQV9wtkQx4EUwPI DB: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!xEQBBAJY!Uf77RitqVqBRqnyfn5qmCQqB-l4EU96kEIB4rL4cjRc  
    Recopilación de diffs para game versión 304083: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    1- Tabla de experiencia (Es necesario meter este diff) :
    004524C0 2- Internal IP fix (Obligatorio introducir este diff), sirve para que no se caiga el login:
    This difference file is created by The Interactive Disassemblergame_r40250000A0C34: 80 90000A0C4D: 80 90000A0CD9: 80 90002169F3: 80 9000216A18: 80 90 3- Fix TimeBomb:
    00215F63: E8 EB00215F64: C8 1100215F65: 69 0000215F66: FA 0000215F67: FF 0000215F68: 3D 0000215F69: AC 0000215F6A: 61 0000215F6B: 11 0000215F6C: 54 0000215F6D: 8D 0000215F6E: 76 0000215F70: 0F 0000215F71: 87 0000215F72: E7 0000215F73: 01 000021615D: C6 000021615E: 05 000021615F: E8 0000216160: D8 0000216161: 7E 0000216162: 08 0000216163: 01 0000216164: E9 0000216165: 0D 0000216166: FE 0000216167: FF 0000216168: FF 00 4- Debe tener este diff: MUST HAVE.
    This difference file has been created by IDA Progame_r40250000F2833: E8 EB000F2834: 38 07000F2835: 2E 00000F2836: 12 00000F2838: 84 00000F2839: C0 00000F283A: 75 00000F283B: 14 00000F2850: 8B 00000F2851: 45 00000F2852: FC 00000F2853: 33 00000F2854: 05 00000F2855: 38 00000F2856: 9F 00000F2857: 6D 00000F2858: 08 00000F2859: C6 00000F285A: 05 00000F285B: E8 00000F285C: D8 00000F285D: 7E 00000F285E: 08 00000F285F: 01 00000F2860: 75 00000F2861: 06 00000F2862: C9 00000F2863: E9 00000F2864: 48 00000F2865: FE 00000F2866: FF 00000F2867: FF 00000F6A9B: E8 EB000F6A9C: D0 0B000F6A9D: EB 00000F6A9E: 11 00000F6AA0: 84 00000F6AA1: C0 00000F6AA2: 0F 00000F6AA3: 85 00000F6AA4: 4E 00000F6AA5: 04 00000F6EF6: E8 00000F6EF7: B5 00000F6EF8: B7 00000F6EF9: FF 00000F6EFA: FF 00000F6EFB: C7 00000F6EFC: 04 00000F6EFD: 24 00000F6EFE: 01 00000F6F02: E8 00000F6F03: 41 00000F6F04: FE 00000F6F05: F0 00000F6F06: FF 00000F712C: E8 EB000F712D: 3F 0B000F712E: E5 00000F712F: 11 00000F7131: 84 00000F7132: C0 00000F7133: 0F 00000F7134: 85 00000F7135: C9 00000F7136: 03 00000F7502: E8 00000F7503: A9 00000F7504: B1 00000F7505: FF 00000F7506: FF 00000F7507: C7 00000F7508: 04 00000F7509: 24 00000F750A: 01 00000F750E: 89 00000F750F: F6 00000F7510: E8 00000F7511: 33 00000F7512: F8 00000F7513: F0 00000F7514: FF 0000215670: 55 C300215671: 89 0000215672: E5 0000215673: 83 0000215674: EC 0000215675: 18 0000215676: A1 0000215677: 38 0000215678: 9F 0000215679: 6D 000021567A: 08 000021567B: 89 000021567C: 45 000021567D: FC 000021567E: 31 000021567F: C0 0000215680: 8B 0000215681: 55 0000215682: FC 0000215683: 33 0000215684: 15 0000215685: 38 0000215686: 9F 0000215687: 6D 0000215688: 08 0000215689: 75 000021568A: 02 000021568B: C9 000021568C: C3 000021568D: E8 000021568E: 76 000021568F: 18 0000215690: DF 0000215691: FF 0000215C20: 55 C300215C21: 89 0000215C22: E5 0000215C23: 83 0000215C24: EC 0000215C25: 18 0000215C26: A1 0000215C27: 38 0000215C28: 9F 0000215C29: 6D 0000215C2A: 08 0000215C2B: 89 0000215C2C: 45 0000215C2D: FC 0000215C2E: 31 0000215C2F: C0 0000215C30: 8B 0000215C31: 45 0000215C32: FC 0000215C33: 33 0000215C34: 05 0000215C35: 38 0000215C36: 9F 0000215C37: 6D 0000215C38: 08 0000215C39: 75 0000215C3A: 06 0000215C3B: C9 0000215C3C: E9 0000215C3D: 1F 0000215C3E: AB 0000215C3F: F0 0000215C40: FF 0000215C41: E8 0000215C42: C2 0000215C43: 12 0000215C44: DF 0000215C45: FF 0000217945: E8 EB00217946: D6 0300217947: E2 0000217948: FF 0000217949: FF 00 5- Máximo Nivel 150:
    This difference file has been created by IDA Progame_r4025000098B3E: 78 96000A5C44: 78 96 Máximo Nivel 255:
    This difference file is created by The Interactive Disassemblergame_r40250_3200098B3E: 78 FF000A5C44: 78 FF 6- Puntos de estatus 95:
    This difference file is created by The Interactive Disassemblergame_r40250_3200030E8E: 5A 5F00035202: 5A 5F00035216: 5A 5F0008B950: 59 5E00096F5F: 5A 5F00096F78: 5A 5F00096FA9: 5A 5F00097111: 5A 5F0009712E: 5A 5F00097155: 5A 5F00097172: 5A 5F000971A3: 5A 5F 7- all_item_can_belt_inventory2:
    This difference file is created by The Interactive Disassembler game_r40250 00052378: 77 72 00052387: 03 50 00052388: 74 7C 000523A5: E8 90 000523A6: A6 90 000523A7: 52 90 000523A8: FD 90 000523A9: FF 90 8- Activar el 6/7 bonus:
    This difference file is created by The Interactive Disassembler game_r40250 0005BD07: 55 65 0005BD08: 4A 49 0005C7A3: B9 C9 0005C7A4: 3F 3E 9- Teletranpostadores fix:
    This difference file is created by The Interactive Disassembler game_r40250 001049F2: E8 90 001049F3: B9 90 001049F4: 29 90 001049F5: F2 90 001049F6: FF 90 001049FA: E8 90 001049FB: 11 90 001049FC: 3E 90 001049FD: F2 90 001049FE: FF 90 10- Cristal de visión:
    This difference file is created by The Interactive Disassembler game_r40250 001060C9: 01 00 001060F1: 02 00 00106108: E8 90 00106109: B3 90 0010610A: 8C 90 0010610B: F4 90 0010610C: FF 90 11- Chat Global:
    This difference file is created by The Interactive Disassembler game_r40250 0010D85D: E8 90 0010D85E: FE 90 0010D85F: 6B 90 0010D860: F1 90 0010D861: FF 90 0010D864: 74 90 0010D865: CA 90 12- Apagar el comando shutdown:
    This difference file is created by The Interactive Disassembler game_r40250 00216163: 01 00 13- Hacer compras a 0 Yang:
    This difference file is created by The Interactive Disassemblergame_40250_32001AAA21: 8F 8D 14- 255 Mapas máximo:
    game_r40250 MAX_MAPS_PER_CORE 255000BF64A: 20 FF 15- Monturas Máximas:
    game_r40250 MAX Mounts00042D19: 0F FA 16- Poder juntar 255 ítems:
    game_r40250 255 Stackable items000506C5: C8 FF00050A6D: C7 FE0005283C: C8 FF00053369: C8 FF0009A340: C8 FF00110384: C8 FF00113E9E: C8 FF00118449: C8 FF 17- Botar ítems y desaparecer en:
    3 segundos:
    game_r40250 3 seconds item disappearing0005212A: 2C 030005212B: 01 00 5 segundos:
    game_r40250 5 seconds item disappearing0005212A: 2C 050005212B: 01 00 18- Bonos cambiado a 0 segundos:
    game_r40250 0 Sec Boni change time0005E4E1: 0A 00 19- No se admiten animales de nivel superior:
    This difference file is created by The Interactive Disassembler game_r40250 00030E97: 0A 00 00030EC1: E8 90 00030EC2: EA 90 00030EC3: F6 90 00030EC4: 01 90 00030EC5: 00 90 20- Skills a 17:
    This difference file is created by The Interactive Disassembler game_r40250 0006FBF9: 14 11 21- Check Client Version fix:
    This difference file has been created by IDA Progame_r4025000100819: 8E 84 22- Hacer bonificación visible en tienda:
    This difference file is created by The Interactive Disassemblergame_r40250_32001B2941: 88 0F001B2942: 11 21001B2CDD: 88 0F001B2CDE: 11 21 23- Fix Bug /war:
    game402500008DF69: 8E 8 Estos son los diffs hasta ahora, cabe decir que estos diffs solo sirven para esta versión (40250), y no para la 40424.
     
    Se actualizará cada ves que lo requiera.
     
     
    Saludos.
     
    Última actualización:
    10/02/14 Change Log:* Agregado Diff: Fix bug /war
  8. Me Gusta
    fuuton97 got a reaction from elbloqueconcreto23 in [RECOPILACIÓN]Diffs para game r40250.   
    Hola a todos, viendo que esta el nuevo game a la luz, decidí postear los diffs que hasta ahora hay para la versión 40250, es una recopilación hecha por mi del foro epvp.
     
    Para descargar game r40250 & db r40146: 
     
    Game: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!4M4gGJqJ!I3C7ADURLGzKsK9U-ptSFiBVDs5ZzQV9wtkQx4EUwPI DB: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!xEQBBAJY!Uf77RitqVqBRqnyfn5qmCQqB-l4EU96kEIB4rL4cjRc  
    Recopilación de diffs para game versión 304083: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    1- Tabla de experiencia (Es necesario meter este diff) :
    004524C0 2- Internal IP fix (Obligatorio introducir este diff), sirve para que no se caiga el login:
    This difference file is created by The Interactive Disassemblergame_r40250000A0C34: 80 90000A0C4D: 80 90000A0CD9: 80 90002169F3: 80 9000216A18: 80 90 3- Fix TimeBomb:
    00215F63: E8 EB00215F64: C8 1100215F65: 69 0000215F66: FA 0000215F67: FF 0000215F68: 3D 0000215F69: AC 0000215F6A: 61 0000215F6B: 11 0000215F6C: 54 0000215F6D: 8D 0000215F6E: 76 0000215F70: 0F 0000215F71: 87 0000215F72: E7 0000215F73: 01 000021615D: C6 000021615E: 05 000021615F: E8 0000216160: D8 0000216161: 7E 0000216162: 08 0000216163: 01 0000216164: E9 0000216165: 0D 0000216166: FE 0000216167: FF 0000216168: FF 00 4- Debe tener este diff: MUST HAVE.
    This difference file has been created by IDA Progame_r40250000F2833: E8 EB000F2834: 38 07000F2835: 2E 00000F2836: 12 00000F2838: 84 00000F2839: C0 00000F283A: 75 00000F283B: 14 00000F2850: 8B 00000F2851: 45 00000F2852: FC 00000F2853: 33 00000F2854: 05 00000F2855: 38 00000F2856: 9F 00000F2857: 6D 00000F2858: 08 00000F2859: C6 00000F285A: 05 00000F285B: E8 00000F285C: D8 00000F285D: 7E 00000F285E: 08 00000F285F: 01 00000F2860: 75 00000F2861: 06 00000F2862: C9 00000F2863: E9 00000F2864: 48 00000F2865: FE 00000F2866: FF 00000F2867: FF 00000F6A9B: E8 EB000F6A9C: D0 0B000F6A9D: EB 00000F6A9E: 11 00000F6AA0: 84 00000F6AA1: C0 00000F6AA2: 0F 00000F6AA3: 85 00000F6AA4: 4E 00000F6AA5: 04 00000F6EF6: E8 00000F6EF7: B5 00000F6EF8: B7 00000F6EF9: FF 00000F6EFA: FF 00000F6EFB: C7 00000F6EFC: 04 00000F6EFD: 24 00000F6EFE: 01 00000F6F02: E8 00000F6F03: 41 00000F6F04: FE 00000F6F05: F0 00000F6F06: FF 00000F712C: E8 EB000F712D: 3F 0B000F712E: E5 00000F712F: 11 00000F7131: 84 00000F7132: C0 00000F7133: 0F 00000F7134: 85 00000F7135: C9 00000F7136: 03 00000F7502: E8 00000F7503: A9 00000F7504: B1 00000F7505: FF 00000F7506: FF 00000F7507: C7 00000F7508: 04 00000F7509: 24 00000F750A: 01 00000F750E: 89 00000F750F: F6 00000F7510: E8 00000F7511: 33 00000F7512: F8 00000F7513: F0 00000F7514: FF 0000215670: 55 C300215671: 89 0000215672: E5 0000215673: 83 0000215674: EC 0000215675: 18 0000215676: A1 0000215677: 38 0000215678: 9F 0000215679: 6D 000021567A: 08 000021567B: 89 000021567C: 45 000021567D: FC 000021567E: 31 000021567F: C0 0000215680: 8B 0000215681: 55 0000215682: FC 0000215683: 33 0000215684: 15 0000215685: 38 0000215686: 9F 0000215687: 6D 0000215688: 08 0000215689: 75 000021568A: 02 000021568B: C9 000021568C: C3 000021568D: E8 000021568E: 76 000021568F: 18 0000215690: DF 0000215691: FF 0000215C20: 55 C300215C21: 89 0000215C22: E5 0000215C23: 83 0000215C24: EC 0000215C25: 18 0000215C26: A1 0000215C27: 38 0000215C28: 9F 0000215C29: 6D 0000215C2A: 08 0000215C2B: 89 0000215C2C: 45 0000215C2D: FC 0000215C2E: 31 0000215C2F: C0 0000215C30: 8B 0000215C31: 45 0000215C32: FC 0000215C33: 33 0000215C34: 05 0000215C35: 38 0000215C36: 9F 0000215C37: 6D 0000215C38: 08 0000215C39: 75 0000215C3A: 06 0000215C3B: C9 0000215C3C: E9 0000215C3D: 1F 0000215C3E: AB 0000215C3F: F0 0000215C40: FF 0000215C41: E8 0000215C42: C2 0000215C43: 12 0000215C44: DF 0000215C45: FF 0000217945: E8 EB00217946: D6 0300217947: E2 0000217948: FF 0000217949: FF 00 5- Máximo Nivel 150:
    This difference file has been created by IDA Progame_r4025000098B3E: 78 96000A5C44: 78 96 Máximo Nivel 255:
    This difference file is created by The Interactive Disassemblergame_r40250_3200098B3E: 78 FF000A5C44: 78 FF 6- Puntos de estatus 95:
    This difference file is created by The Interactive Disassemblergame_r40250_3200030E8E: 5A 5F00035202: 5A 5F00035216: 5A 5F0008B950: 59 5E00096F5F: 5A 5F00096F78: 5A 5F00096FA9: 5A 5F00097111: 5A 5F0009712E: 5A 5F00097155: 5A 5F00097172: 5A 5F000971A3: 5A 5F 7- all_item_can_belt_inventory2:
    This difference file is created by The Interactive Disassembler game_r40250 00052378: 77 72 00052387: 03 50 00052388: 74 7C 000523A5: E8 90 000523A6: A6 90 000523A7: 52 90 000523A8: FD 90 000523A9: FF 90 8- Activar el 6/7 bonus:
    This difference file is created by The Interactive Disassembler game_r40250 0005BD07: 55 65 0005BD08: 4A 49 0005C7A3: B9 C9 0005C7A4: 3F 3E 9- Teletranpostadores fix:
    This difference file is created by The Interactive Disassembler game_r40250 001049F2: E8 90 001049F3: B9 90 001049F4: 29 90 001049F5: F2 90 001049F6: FF 90 001049FA: E8 90 001049FB: 11 90 001049FC: 3E 90 001049FD: F2 90 001049FE: FF 90 10- Cristal de visión:
    This difference file is created by The Interactive Disassembler game_r40250 001060C9: 01 00 001060F1: 02 00 00106108: E8 90 00106109: B3 90 0010610A: 8C 90 0010610B: F4 90 0010610C: FF 90 11- Chat Global:
    This difference file is created by The Interactive Disassembler game_r40250 0010D85D: E8 90 0010D85E: FE 90 0010D85F: 6B 90 0010D860: F1 90 0010D861: FF 90 0010D864: 74 90 0010D865: CA 90 12- Apagar el comando shutdown:
    This difference file is created by The Interactive Disassembler game_r40250 00216163: 01 00 13- Hacer compras a 0 Yang:
    This difference file is created by The Interactive Disassemblergame_40250_32001AAA21: 8F 8D 14- 255 Mapas máximo:
    game_r40250 MAX_MAPS_PER_CORE 255000BF64A: 20 FF 15- Monturas Máximas:
    game_r40250 MAX Mounts00042D19: 0F FA 16- Poder juntar 255 ítems:
    game_r40250 255 Stackable items000506C5: C8 FF00050A6D: C7 FE0005283C: C8 FF00053369: C8 FF0009A340: C8 FF00110384: C8 FF00113E9E: C8 FF00118449: C8 FF 17- Botar ítems y desaparecer en:
    3 segundos:
    game_r40250 3 seconds item disappearing0005212A: 2C 030005212B: 01 00 5 segundos:
    game_r40250 5 seconds item disappearing0005212A: 2C 050005212B: 01 00 18- Bonos cambiado a 0 segundos:
    game_r40250 0 Sec Boni change time0005E4E1: 0A 00 19- No se admiten animales de nivel superior:
    This difference file is created by The Interactive Disassembler game_r40250 00030E97: 0A 00 00030EC1: E8 90 00030EC2: EA 90 00030EC3: F6 90 00030EC4: 01 90 00030EC5: 00 90 20- Skills a 17:
    This difference file is created by The Interactive Disassembler game_r40250 0006FBF9: 14 11 21- Check Client Version fix:
    This difference file has been created by IDA Progame_r4025000100819: 8E 84 22- Hacer bonificación visible en tienda:
    This difference file is created by The Interactive Disassemblergame_r40250_32001B2941: 88 0F001B2942: 11 21001B2CDD: 88 0F001B2CDE: 11 21 23- Fix Bug /war:
    game402500008DF69: 8E 8 Estos son los diffs hasta ahora, cabe decir que estos diffs solo sirven para esta versión (40250), y no para la 40424.
     
    Se actualizará cada ves que lo requiera.
     
     
    Saludos.
     
    Última actualización:
    10/02/14 Change Log:* Agregado Diff: Fix bug /war
  9. Me Gusta
    fuuton97 got a reaction from Susana Santos in [RECOPILACIÓN]Diffs para game r40250.   
    Hola a todos, viendo que esta el nuevo game a la luz, decidí postear los diffs que hasta ahora hay para la versión 40250, es una recopilación hecha por mi del foro epvp.
     
    Para descargar game r40250 & db r40146: 
     
    Game: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!4M4gGJqJ!I3C7ADURLGzKsK9U-ptSFiBVDs5ZzQV9wtkQx4EUwPI DB: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!xEQBBAJY!Uf77RitqVqBRqnyfn5qmCQqB-l4EU96kEIB4rL4cjRc  
    Recopilación de diffs para game versión 304083: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    1- Tabla de experiencia (Es necesario meter este diff) :
    004524C0 2- Internal IP fix (Obligatorio introducir este diff), sirve para que no se caiga el login:
    This difference file is created by The Interactive Disassemblergame_r40250000A0C34: 80 90000A0C4D: 80 90000A0CD9: 80 90002169F3: 80 9000216A18: 80 90 3- Fix TimeBomb:
    00215F63: E8 EB00215F64: C8 1100215F65: 69 0000215F66: FA 0000215F67: FF 0000215F68: 3D 0000215F69: AC 0000215F6A: 61 0000215F6B: 11 0000215F6C: 54 0000215F6D: 8D 0000215F6E: 76 0000215F70: 0F 0000215F71: 87 0000215F72: E7 0000215F73: 01 000021615D: C6 000021615E: 05 000021615F: E8 0000216160: D8 0000216161: 7E 0000216162: 08 0000216163: 01 0000216164: E9 0000216165: 0D 0000216166: FE 0000216167: FF 0000216168: FF 00 4- Debe tener este diff: MUST HAVE.
    This difference file has been created by IDA Progame_r40250000F2833: E8 EB000F2834: 38 07000F2835: 2E 00000F2836: 12 00000F2838: 84 00000F2839: C0 00000F283A: 75 00000F283B: 14 00000F2850: 8B 00000F2851: 45 00000F2852: FC 00000F2853: 33 00000F2854: 05 00000F2855: 38 00000F2856: 9F 00000F2857: 6D 00000F2858: 08 00000F2859: C6 00000F285A: 05 00000F285B: E8 00000F285C: D8 00000F285D: 7E 00000F285E: 08 00000F285F: 01 00000F2860: 75 00000F2861: 06 00000F2862: C9 00000F2863: E9 00000F2864: 48 00000F2865: FE 00000F2866: FF 00000F2867: FF 00000F6A9B: E8 EB000F6A9C: D0 0B000F6A9D: EB 00000F6A9E: 11 00000F6AA0: 84 00000F6AA1: C0 00000F6AA2: 0F 00000F6AA3: 85 00000F6AA4: 4E 00000F6AA5: 04 00000F6EF6: E8 00000F6EF7: B5 00000F6EF8: B7 00000F6EF9: FF 00000F6EFA: FF 00000F6EFB: C7 00000F6EFC: 04 00000F6EFD: 24 00000F6EFE: 01 00000F6F02: E8 00000F6F03: 41 00000F6F04: FE 00000F6F05: F0 00000F6F06: FF 00000F712C: E8 EB000F712D: 3F 0B000F712E: E5 00000F712F: 11 00000F7131: 84 00000F7132: C0 00000F7133: 0F 00000F7134: 85 00000F7135: C9 00000F7136: 03 00000F7502: E8 00000F7503: A9 00000F7504: B1 00000F7505: FF 00000F7506: FF 00000F7507: C7 00000F7508: 04 00000F7509: 24 00000F750A: 01 00000F750E: 89 00000F750F: F6 00000F7510: E8 00000F7511: 33 00000F7512: F8 00000F7513: F0 00000F7514: FF 0000215670: 55 C300215671: 89 0000215672: E5 0000215673: 83 0000215674: EC 0000215675: 18 0000215676: A1 0000215677: 38 0000215678: 9F 0000215679: 6D 000021567A: 08 000021567B: 89 000021567C: 45 000021567D: FC 000021567E: 31 000021567F: C0 0000215680: 8B 0000215681: 55 0000215682: FC 0000215683: 33 0000215684: 15 0000215685: 38 0000215686: 9F 0000215687: 6D 0000215688: 08 0000215689: 75 000021568A: 02 000021568B: C9 000021568C: C3 000021568D: E8 000021568E: 76 000021568F: 18 0000215690: DF 0000215691: FF 0000215C20: 55 C300215C21: 89 0000215C22: E5 0000215C23: 83 0000215C24: EC 0000215C25: 18 0000215C26: A1 0000215C27: 38 0000215C28: 9F 0000215C29: 6D 0000215C2A: 08 0000215C2B: 89 0000215C2C: 45 0000215C2D: FC 0000215C2E: 31 0000215C2F: C0 0000215C30: 8B 0000215C31: 45 0000215C32: FC 0000215C33: 33 0000215C34: 05 0000215C35: 38 0000215C36: 9F 0000215C37: 6D 0000215C38: 08 0000215C39: 75 0000215C3A: 06 0000215C3B: C9 0000215C3C: E9 0000215C3D: 1F 0000215C3E: AB 0000215C3F: F0 0000215C40: FF 0000215C41: E8 0000215C42: C2 0000215C43: 12 0000215C44: DF 0000215C45: FF 0000217945: E8 EB00217946: D6 0300217947: E2 0000217948: FF 0000217949: FF 00 5- Máximo Nivel 150:
    This difference file has been created by IDA Progame_r4025000098B3E: 78 96000A5C44: 78 96 Máximo Nivel 255:
    This difference file is created by The Interactive Disassemblergame_r40250_3200098B3E: 78 FF000A5C44: 78 FF 6- Puntos de estatus 95:
    This difference file is created by The Interactive Disassemblergame_r40250_3200030E8E: 5A 5F00035202: 5A 5F00035216: 5A 5F0008B950: 59 5E00096F5F: 5A 5F00096F78: 5A 5F00096FA9: 5A 5F00097111: 5A 5F0009712E: 5A 5F00097155: 5A 5F00097172: 5A 5F000971A3: 5A 5F 7- all_item_can_belt_inventory2:
    This difference file is created by The Interactive Disassembler game_r40250 00052378: 77 72 00052387: 03 50 00052388: 74 7C 000523A5: E8 90 000523A6: A6 90 000523A7: 52 90 000523A8: FD 90 000523A9: FF 90 8- Activar el 6/7 bonus:
    This difference file is created by The Interactive Disassembler game_r40250 0005BD07: 55 65 0005BD08: 4A 49 0005C7A3: B9 C9 0005C7A4: 3F 3E 9- Teletranpostadores fix:
    This difference file is created by The Interactive Disassembler game_r40250 001049F2: E8 90 001049F3: B9 90 001049F4: 29 90 001049F5: F2 90 001049F6: FF 90 001049FA: E8 90 001049FB: 11 90 001049FC: 3E 90 001049FD: F2 90 001049FE: FF 90 10- Cristal de visión:
    This difference file is created by The Interactive Disassembler game_r40250 001060C9: 01 00 001060F1: 02 00 00106108: E8 90 00106109: B3 90 0010610A: 8C 90 0010610B: F4 90 0010610C: FF 90 11- Chat Global:
    This difference file is created by The Interactive Disassembler game_r40250 0010D85D: E8 90 0010D85E: FE 90 0010D85F: 6B 90 0010D860: F1 90 0010D861: FF 90 0010D864: 74 90 0010D865: CA 90 12- Apagar el comando shutdown:
    This difference file is created by The Interactive Disassembler game_r40250 00216163: 01 00 13- Hacer compras a 0 Yang:
    This difference file is created by The Interactive Disassemblergame_40250_32001AAA21: 8F 8D 14- 255 Mapas máximo:
    game_r40250 MAX_MAPS_PER_CORE 255000BF64A: 20 FF 15- Monturas Máximas:
    game_r40250 MAX Mounts00042D19: 0F FA 16- Poder juntar 255 ítems:
    game_r40250 255 Stackable items000506C5: C8 FF00050A6D: C7 FE0005283C: C8 FF00053369: C8 FF0009A340: C8 FF00110384: C8 FF00113E9E: C8 FF00118449: C8 FF 17- Botar ítems y desaparecer en:
    3 segundos:
    game_r40250 3 seconds item disappearing0005212A: 2C 030005212B: 01 00 5 segundos:
    game_r40250 5 seconds item disappearing0005212A: 2C 050005212B: 01 00 18- Bonos cambiado a 0 segundos:
    game_r40250 0 Sec Boni change time0005E4E1: 0A 00 19- No se admiten animales de nivel superior:
    This difference file is created by The Interactive Disassembler game_r40250 00030E97: 0A 00 00030EC1: E8 90 00030EC2: EA 90 00030EC3: F6 90 00030EC4: 01 90 00030EC5: 00 90 20- Skills a 17:
    This difference file is created by The Interactive Disassembler game_r40250 0006FBF9: 14 11 21- Check Client Version fix:
    This difference file has been created by IDA Progame_r4025000100819: 8E 84 22- Hacer bonificación visible en tienda:
    This difference file is created by The Interactive Disassemblergame_r40250_32001B2941: 88 0F001B2942: 11 21001B2CDD: 88 0F001B2CDE: 11 21 23- Fix Bug /war:
    game402500008DF69: 8E 8 Estos son los diffs hasta ahora, cabe decir que estos diffs solo sirven para esta versión (40250), y no para la 40424.
     
    Se actualizará cada ves que lo requiera.
     
     
    Saludos.
     
    Última actualización:
    10/02/14 Change Log:* Agregado Diff: Fix bug /war
  10. Me Gusta
    fuuton97 got a reaction from JazZ* in Si caes bien a todos algo estas haciendo mal   
    Siempre habrá gente que te querrá destruir, si te decaes es mostrar debilidad a esa persona.
  11. Me Gusta
    fuuton97 reacted to Bisous in Nuevo diseño sobre Publicidad.   
    Nuevo diseño sobre Información de Metines,espero que les guste.
     

     
     
    Nuevo diseño sobre Información de Atuendos,Sistema de Energía y Peinados,espero que les guste.
     

     
    Nuevo diseño sobre Información de Mascotas,espero que les guste.
     

  12. Me Gusta
    fuuton97 got a reaction from Jeo in [RECOPILACIÓN]Diffs para game rev. 34083.   
    Hola, les traigo una recopilación que llevaba hace tiempo, y quiero postearla.
     
    Con esta recopilación doy el propósito de dejar estos diffs para el game de versión 34083, ha sido una recopilación de búsqueda en diversos foros como Epvp e Inforge. Están los más recientes diffs publicados en dichos foros. En esta recopilación será actualizada cada vez que lo requiera.
     
    Diffs:
     
    1- BACKDOOR-FIX:
    00000007: 09 000001447C: B0 E80001447D: 01 DF0001447E: 90 ED0001447F: 90 FF00014480: 90 FF000307AC: 90 83000307AD: 90 F8000307AE: 90 5A000307AF: E9 0F000307B0: 8A 8E000307B1: 0B 89000307B2: 00 0B000319CA: D1 C1000319CC: 90 02000855EE: B0 E8000855EF: 01 1D000855F0: 90 FE000855F1: 90 FF000855F2: 90 FF00086EBF: B0 E800086EC0: 01 DC00086EC1: 90 5400086EC2: 90 0900086EC3: 90 00000871D7: B0 E8000871D8: 00 F4000871D9: 90 D3000871DA: 90 F8000871DB: 90 FF000CF4E4: B0 E8000CF4E5: 01 B7000CF4E6: 0F CE000CF4E7: 1F 04000F49E6: B0 E8000F49E7: 00 E5000F49E8: 90 FB000F49E9: 90 F1000F49EA: 90 FF000F9EAE: B0 E8000F9EAF: 01 DD000F9EB0: 90 22000F9EB1: 90 02000F9EB2: 90 000010135D: B0 E80010135E: 01 AE0010135F: 0F 2800101360: 1F F200101361: 00 FF0011F4D8: 90 C70011F4D9: 90 050011F4DA: 90 D80011F4DB: 90 3C0011F4DC: 90 6A0011F4DD: 90 080011F4DE: 90 200011F4DF: 90 A70011F4E0: 90 460011F4E1: 90 08001EAC19: F3 3C001EAC1A: D0 6B001EAC1B: 64 63001EB316: F3 3C001EB317: D0 6B001EB318: 64 63004230C8: 30 0C004230CC: 48 12004230D0: 68 1A004230D4: A0 28004230D8: D4 35004230DC: 18 46004230DD: 01 00004230E0: 90 64004230E1: 01 00006BE292: 41 45006BE293: 39 31006BE294: 36 41006BE295: 44 37006BE296: 45 37006BE297: 30 34006BE298: 32 43006BE299: 31 43006C5636: 37 35006C5637: 38 44006C5638: 37 41006C5639: 36 45006C563A: 32 33006C563B: 44 45006C563C: 36 45006C5773: 37 35006C5774: 38 44006C5775: 37 41006C5776: 36 45006C5777: 32 33006C5778: 44 45006C5779: 36 45 2- Añadir Bonus a - 100%:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_3200422E04: 50 6400422E08: 3C 6400422E0C: 32 6400422E10: 1E 64 3- Habilidades siempre a 17 puntos:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_320006D172: 5A 7A 4- Aumentar las probabilidad en 50/75/100% de introducir las piedras:
    En 50%:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_320005531F: 1E 32 En 75%:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_320005531F: 1E 4B En 100%:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_320005531F: 1E 64 5- Retirar el aumento de yang en otros mapas x3:
    This difference file is created by The Interactive Disassemblergame_r34083_32001A8D48: 04 00001A8D49: 40 90001A94AD: 04 00001A94AE: 40 90 6- GM por ip:
    This difference file is created by The Interactive Disassemblergame_r34083_32000CF4EB: 75 EB000CF4EC: 73 7C 7- Niveles:
    150:
    This difference file is created by The Interactive Disassemblergame_r34083_320009595E: 78 96 170:
    This difference file is created by The Interactive Disassemblergame_r34083_320009595E: 78 AA 200:
    This difference file is created by The Interactive Disassemblergame_r34083_320009595E: 78 C8 245:
    This difference file is created by The Interactive Disassembler & Mariusgame_server340830009595E: 78 F5 250:
    This difference file has been created by IDA Progame_r34083000A238E: 78 FA 8- 30.000 Puntos de Rank:
    This difference file has been created by TheGamegame_r340830003FBC6: 40 E00003FBC7: 0D 930003FBC8: 03 040003FBD1: C0 200003FBD2: F2 6C0003FBD3: FC FB0003FBFF: 40 E00003FC00: 0D 930003FC01: 03 940003FC0A: C0 200003FC0B: F2 6C0003FC0C: FC FB00042FF4: BF DF00042FF5: D4 9300042FF6: 01 04 9- 255 Mapas pro Core:
    This difference file has been created by TheGamegame000B5D64: 20 FF 10- Inventario Horizontal:
    This difference file was created by IDA Progame_r340830004CD65: 05 090004CDDC: 05 090004CE22: 05 090004CEA1: 05 090004F8D5: 05 090004F938: 05 090004F93B: 05 09 11- Los items desaparecen en:
    3 Segundos:
    This difference file is created by aNNdiigame_r34083_32000505E5: 2C 03000505E6: 01 00 5 Segundos:
    This difference file was created by IDA Progame r34083000505E5: 2C 05000505E6: 01 00  30 Segundos:
    This difference file is created by aNNdiigame_r34083_32000505E5: 2C 1E000505E6: 01 00 12- 16 Miembros de grupo:
    This difference file is created by aNNdiigame_r34083_3200026153: 08 1000026159: 08 10 13- Status a:
    120:
    This difference file has been created by IDA Progame_r34083_32000307AE: 5A FA0003493F: 5A FA00088A70: 59 7700093D7F: 5A 7800093D98: 5A 7800093DC9: 5A 7800093F31: 5A 7800093F4E: 5A 7800093F75: 5A 7800093F92: 5A 7800093FC3: 5A 78 125:
    This difference file has been created by IDA Progame_r34083_32000307AE: 5A 7A0003493F: 5A FA00088A70: 59 7C00093D7F: 5A 7F00093D98: 5A 7F00093DC9: 5A 7F00093F31: 5A 7F00093F4E: 5A 7F00093F75: 5A 7F00093F92: 5A 7F00093fc3: 5A 7F 127:
    This difference file has been created by IDA Progame000307AE: 5A FA0003493F: 5A FA00088A70: 59 7E00093D7F: 5A 7F00093D98: 5A 7F00093DC9: 5A 7F00093F31: 5A 7F00093F4E: 5A 7F00093F75: 5A 7F00093F92: 5A 7F00093FC3: 5A 7F 132:
    This difference file has been created by IDA Progame000307AE: 5A FA0003493F: 5A FA00088A70: 59 8300093D7F: 5A 8400093D98: 5A 8400093DC9: 5A 8400093F31: 5A 8400093F4E: 5A 8400093F75: 5A 8400093F92: 5A 8400093FC3: 5A 84 140:
    This difference file has been created by IDA Progame000307AE: 5A FA0003493F: 5A FA00088A70: 59 8B00093D7F: 5A 8C00093D98: 5A 8C00093DC9: 5A 8C00093F31: 5A 8C00093F4E: 5A 8C00093F75: 5A 8C00093F92: 5A 8C00093FC3: 5A 8C 185:
    This difference file has been created by IDA Progame000307AE: 5A FA0003493F: 5A FA00088A70: 59 B800093D7F: 5A B900093D98: 5A B900093DC9: 5A B900093F31: 5A B900093F4E: 5A B900093F75: 5A B900093F92: 5A B900093FC3: 5A B9 14- Desactivar Yang Drop:
    This difference file is created by aNNdiigame_r34083_320004FE61: 7E EB0004FE62: 08 0A0004FE69: 7E EB0004FE6A: 25 02 15- Inmune a los desmayos:
    This difference file is created by aNNdiigame_r34083_32000692DE: 5A 64 16- DIF para editar la tabla EXP:
    DIF para editar la tabla de CAD: 0x422580 17- Chat Global:
    This difference file has been created by TheGamegame000FBE8D: 0F E9000FBE8E: 84 01000FBE8F: 05 00000FBE90: 01 00000FBFB2: 97 00000FBFB3: 7D 00000FBFB4: 0E 00000FD92C: 74 EB0010133B: 74 EB002E24CC: 74 90002E24CD: CF 90 18- No perder ítems al tener rank negativo:
    This difference file has been created by TheGamegame0004310F: A1 75000431C0: A1 75000431F4: A1 75 19- No hay impuestos en un 3% más en NPC:
    This difference file has been created by TheGamegame001A8849: 1F 01001A884A: 85 00001A884B: EB 00001A884C: 51 00001A88C8: E8 B8001A895B: E8 B8 20- La visión de cristal:
    This difference file has been created by IDA Proby Cryfactgame_r34083000F8F69: 74 EB000F8F6A: 0C 4D000F8FB9: 01 00000F8FBF: 7C EB 21- Puede vender artículos en el NPC de 0 Yang:
    This difference file is created by The Interactive Disassemblergame_r34083_32001A9353: 8F 8D 22- Pet Bonos funciona en todas partes:
    This difference file is created by The Interactive Disassemblergame_r34083_32000822B3: 8B 90000822B4: 42 90000822B5: 04 90000822BB: 74 90000822BC: 43 90 23- Funcionar 6 y 7 bonos:
    000598A0: 0F 90000598A1: 85 90000598A2: 2E 90000598A3: BA 90000598A4: FF 90000598A5: FF 900005F3C4: 0F 900005F3C5: 85 900005F3C6: 0A 900005F3C7: 5F 900005F3C8: FF 900005F3C9: FF 90 24- Tiempo de Bonos a 0:
    0005ECA3: 0A 00 25- Se monta hace daño de 20110 a 20206 :
    This difference file is created by The Interactive Disassemblergame_r3408300145D5D: 0F FA 26- Sin límite de poder sacar mobs, ejemplo: /m 101 10000:
    00096477: 8B 9000096478: 1D 9000096479: E0 900009647A: 39 900009647B: 6A 900009647C: 08 900009647D: 85 900009647E: DB 900009647F: 0F 9000096480: 85 9000096481: A0 9000096482: 01 9000096483: 00 9000096484: 00 9000096485: 89 9000096486: 44 9000096487: 24 9000096488: 04 9000096489: C7 900009648A: 04 900009648B: 24 900009648C: 14 900009648D: 00 900009648E: 00 900009648F: 00 9000096490: E8 9000096491: 3B 9000096492: AF 9000096493: 35 9000096494: 00 900009649B: 8B 900009649C: 8D 900009649D: E0 900009649E: FD 900009649F: FF 90000964A0: FF 90000964AC: C9 C000096625: 89 9000096626: 44 9000096627: 24 9000096628: 04 9000096629: C7 900009662A: 04 900009662B: 24 900009662C: 28 900009662D: 00 900009662E: 00 900009662F: 00 9000096630: E8 9000096631: 9B 9000096632: AD 9000096633: 35 9000096634: 00 9000096635: 89 9000096636: 85 9000096637: E0 9000096638: FD 9000096639: FF 900009663A: FF 900009663B: E9 900009663C: 5B 900009663D: FE 900009663E: FF 900009663F: FF 90 27- Yang a límite de 2.053.000.000:
    This difference file is created by The Interactive Disassembler & _BubbleGumgame_r3408300031281: FF 0000031282: 93 CF00031283: 35 8D00031284: 77 7F000340E0: FF 00000340E1: 93 CF000340E2: 35 8D000340E3: 77 7F000F55FB: FF 00000F55FC: 93 CF000F55FD: 35 7D000F55FE: 77 7F000F7F2E: FF 00000F7F2F: 93 CF000F7F30: 35 8D000F7F31: 77 7F000F7F97: FF 00000F7F98: 93 CF000F7F99: 35 8D000F7F9A: 77 7F001A88E3: FF 00001A88E4: 93 CF001A88E5: 35 8D001A88E6: 77 7F 28- Ver equipo:
    This difference file is created by The Interactive Disassemblergame_r34083_32_internal_ipBinary function fix0002A68D: 15 0B0002A6BE: 15 0B0002A6DB: 23 A70002A6DC: 03 01Disable just gm0008A345: E8 E90008A346: C6 1C0008A347: 98 000008A348: F9 000008A349: FF 000008A34A: 84 900008A34B: C0 900008A34C: 75 900008A34D: 18 90 29- Full rates reinos:
    This difference file has been created by IDA Proby Cryfactgame_r34083RequestGiveCharacterPriv001440DA: 64 E8001440DB: 00 03RequestGiveEmpirePriv001441A8: C8 E8001441A9: 00 03RequestGiveGuildPriv00144298: 32 E800144299: 00 03GiveEmpirePriv001443E7: C8 E8001443E8: 00 03GiveCharacterPriv001447C8: 64 E8001447C9: 00 03GiveGuildPriv00144C15: 32 E800144C16: 00 03 30- Juntar items a 250:
    This difference file is created by The Interactive Disassemblergame_r34083_32_internal_ipCHARACTER__AutoGiveItem0004E2F8: C8 FA0004E598: C7 F9CHARACTER__MoveItem000509B3: C8 FACHARACTER__PickupItem0005107F: C8 FAdo_item00096ECC: C8 FACItem__GetCount00103F44: C8 FACItem__SetCount00107BEE: C8 FAITEM_MANAGER__CreateItem0010B318: C8 FA 31- Activa la DMG de Panda Bear & Monturas:
    This difference file is created by The Interactive Disassemblergame_r34083_32_internal_ip00145E57: F9 FC 32- 5 Bono es visible en las Tiendas:
    This difference file has been created by IDA Progame001A8E51: 88 0F001A8E52: 11 21001A9403: 88 0F001A9404: 11 21 33- Tener más de 1 mount_bonus en montura:
    This difference file has been created by IDA Progame0016D3EB: E8 900016D3EC: 70 900016D3ED: 0E 900016D3EE: ED 900016D3EF: FF 90 34- Ver equipo en juego:
    This difference file has been created by IDA Progame_r340830002A68D: 15 0B0002A6BE: 15 0B0002A6DB: 23 A70002A6DC: 03 01 Para el usuario:
    This difference file has been created by IDA Progame_r340830008A34C: 75 EB  35-  Emociones sin una máscara:
    This difference file has been created by IDA Progame000855E5: 8B EB000855E6: 85 26000855E7: BC 00000855E8: FD 00000855E9: FF 00000855EA: FF 00000855EB: 89 00000855EC: 04 00000855ED: 24 00000855EE: E8 00000855EF: 1D 00000855F0: FE 00000855F1: FF 00000855F2: FF 00000855F3: 84 00000855F4: C0 00000855F5: 0F 00000855F6: 84 00000855F7: 62 00000855F8: 03 00000855FB: 89 00000855FC: F0 00000855FD: C1 00000855FE: E0 00000855FF: 04 0000085600: F6 0000085601: 80 0000085602: 08 0000085603: C0 0000085604: 5E 0000085605: 08 0000085606: 04 0000085607: 0F 0000085608: 85 0000085609: C7 000008560A: 02 000008560C: 00 90000858D4: 8B 00000858D5: 8D 00000858D6: BC 00000858D7: FD 00000858D8: FF 00000858D9: FF 00000858DA: 89 00000858DB: 0C 00000858DC: 24 00000858DD: E8 00000858DE: DE 00000858DF: E6 00000858E0: F9 00000858E1: FF 00000858E2: 85 00000858E3: C0 00000858E4: 0F 00000858E5: 85 00000858E6: 23 00000858E7: FD 00000858E8: FF 00000858E9: FF 90 36- Subir el nivel del caballo hasta 50:
    0009450A: 1E 320009450A: 1E 32 37- Desactivar syslog:
    This difference file has been created by IDA Progame003F0A90: 55 C3003F0A91: 89 00003F0A92: E5 00003F0A93: 56 00003F0A94: 53 00003F0A95: 83 00003F0A96: EC 00003F0A97: 20 00003F0A98: 8B 00003F0A99: 45 00003F0A9A: 08 00003F0A9B: 8B 00003F0A9C: 75 00003F0A9D: 0C 00003F0A9E: 85 00003F0A9F: C0 00003F0AA0: 74 00003F0AA1: 0C 00003F0AA2: 85 00003F0AA3: 05 00003F0AA5: CB 00003F0AA6: 7B 00003F0AA7: 08 00003F0AA8: 0F 00003F0AA9: 84 00003F0AAA: 17 00003F0AAB: 01 00003F0AAE: 8B 00003F0AAF: 15 00003F0AB0: C0 00003F0AB1: CA 00003F0AB2: 7B 00003F0AB3: 08 00003F0AB4: 85 00003F0AB5: D2 00003F0AB6: 0F 00003F0AB7: 84 00003F0AB8: AE 00003F0ABC: C7 00003F0ABD: 04 00003F0ABE: 24 00003F0AC3: E8 00003F0AC4: 18 00003F0AC5: 4E 00003F0AC6: C1 00003F0AC7: FF 00003F0AC8: 89 00003F0AC9: 45 00003F0ACA: F0 00003F0ACB: 8D 00003F0ACC: 45 00003F0ACD: F0 00003F0ACE: 89 00003F0ACF: 04 00003F0AD0: 24 00003F0AD1: E8 00003F0AD2: 2A 00003F0AD3: 55 00003F0AD4: C1 00003F0AD5: FF 00003F0AD6: 89 00003F0AD7: 04 00003F0AD8: 24 00003F0AD9: E8 00003F0ADA: 92 00003F0ADB: 4E 00003F0ADC: C1 00003F0ADD: FF 00003F0ADE: C7 00003F0ADF: 44 00003F0AE0: 24 00003F0AE1: 04 00003F0AE2: 20 00003F0AE3: CB 00003F0AE4: 7B 00003F0AE5: 08 00003F0AE6: 89 00003F0AE7: C3 00003F0AE8: A1 00003F0AE9: C0 00003F0AEA: CA 00003F0AEB: 7B 00003F0AEC: 08 00003F0AED: 8B 00003F0AEE: 40 00003F0AEF: 04 00003F0AF0: 89 00003F0AF1: 04 00003F0AF2: 24 00003F0AF3: E8 00003F0AF4: A8 00003F0AF5: 4D 00003F0AF6: C1 00003F0AF7: FF 00003F0AF8: 89 00003F0AF9: 1C 00003F0AFA: 24 00003F0AFB: E8 00003F0AFC: B0 00003F0AFD: 61 00003F0AFE: C1 00003F0AFF: FF 00003F0B00: C6 00003F0B01: 44 00003F0B02: 03 00003F0B03: FF 00003F0B05: 8D 00003F0B06: 43 00003F0B07: 04 00003F0B08: 89 00003F0B09: 44 00003F0B0A: 24 00003F0B0B: 08 00003F0B0C: A1 00003F0B0D: C0 00003F0B0E: CA 00003F0B0F: 7B 00003F0B10: 08 00003F0B11: C7 00003F0B12: 44 00003F0B13: 24 00003F0B14: 04 00003F0B15: 08 00003F0B16: 8D 00003F0B17: 5D 00003F0B18: 08 00003F0B19: 8B 00003F0B1A: 40 00003F0B1B: 04 00003F0B1C: 89 00003F0B1D: 04 00003F0B1E: 24 00003F0B1F: E8 00003F0B20: 7C 00003F0B21: 4D 00003F0B22: C1 00003F0B23: FF 00003F0B24: 8D 00003F0B25: 45 00003F0B26: 10 00003F0B27: 89 00003F0B28: 44 00003F0B29: 24 00003F0B2A: 08 00003F0B2B: 89 00003F0B2C: 45 00003F0B2D: F4 00003F0B2E: A1 00003F0B2F: C0 00003F0B30: CA 00003F0B31: 7B 00003F0B32: 08 00003F0B33: 89 00003F0B34: 74 00003F0B35: 24 00003F0B36: 04 00003F0B37: 8B 00003F0B38: 40 00003F0B39: 04 00003F0B3A: 89 00003F0B3B: 04 00003F0B3C: 24 00003F0B3D: E8 00003F0B3E: EE 00003F0B3F: 52 00003F0B40: C1 00003F0B41: FF 00003F0B42: A1 00003F0B43: C0 00003F0B44: CA 00003F0B45: 7B 00003F0B46: 08 00003F0B47: 8B 00003F0B48: 40 00003F0B49: 04 00003F0B4A: C7 00003F0B4B: 04 00003F0B4C: 24 00003F0B4D: 0A 00003F0B51: 89 00003F0B52: 44 00003F0B53: 24 00003F0B54: 04 00003F0B55: E8 00003F0B56: 36 00003F0B57: 4E 00003F0B58: C1 00003F0B59: FF 00003F0B5A: A1 00003F0B5B: C0 00003F0B5C: CA 00003F0B5D: 7B 00003F0B5E: 08 00003F0B5F: 8B 00003F0B60: 40 00003F0B61: 04 00003F0B62: 89 00003F0B63: 04 00003F0B64: 24 00003F0B65: E8 00003F0B66: 66 00003F0B67: 56 00003F0B68: C1 00003F0B69: FF 00003F0B6A: 83 00003F0B6B: 3D 00003F0B6D: CB 00003F0B6E: 7B 00003F0B6F: 08 00003F0B70: 01 00003F0B71: 76 00003F0B72: 52 00003F0B73: A1 00003F0B74: E0 00003F0B75: 22 00003F0B76: 6A 00003F0B77: 08 00003F0B78: C7 00003F0B79: 44 00003F0B7A: 24 00003F0B7B: 04 00003F0B7C: 20 00003F0B7D: CB 00003F0B7E: 7B 00003F0B7F: 08 00003F0B80: 89 00003F0B81: 04 00003F0B82: 24 00003F0B83: E8 00003F0B84: 18 00003F0B85: 4D 00003F0B86: C1 00003F0B87: FF 00003F0B88: 8D 00003F0B89: 45 00003F0B8A: 10 00003F0B8B: 89 00003F0B8C: 45 00003F0B8D: F4 00003F0B8E: 89 00003F0B8F: 44 00003F0B90: 24 00003F0B91: 08 00003F0B92: A1 00003F0B93: E0 00003F0B94: 22 00003F0B95: 6A 00003F0B96: 08 00003F0B97: 89 00003F0B98: 74 00003F0B99: 24 00003F0B9A: 04 00003F0B9B: 89 00003F0B9C: 04 00003F0B9D: 24 00003F0B9E: E8 00003F0B9F: 8D 00003F0BA0: 52 00003F0BA1: C1 00003F0BA2: FF 00003F0BA3: A1 00003F0BA4: E0 00003F0BA5: 22 00003F0BA6: 6A 00003F0BA7: 08 00003F0BA8: C7 00003F0BA9: 04 00003F0BAA: 24 00003F0BAB: 0A 00003F0BAF: 89 00003F0BB0: 44 00003F0BB1: 24 00003F0BB2: 04 00003F0BB3: E8 00003F0BB4: D8 00003F0BB5: 4D 00003F0BB6: C1 00003F0BB7: FF 00003F0BB8: A1 00003F0BB9: E0 00003F0BBA: 22 00003F0BBB: 6A 00003F0BBC: 08 00003F0BBD: 89 00003F0BBE: 04 00003F0BBF: 24 00003F0BC0: E8 00003F0BC1: 0B 00003F0BC2: 56 00003F0BC3: C1 00003F0BC4: FF 00003F0BC5: 83 00003F0BC6: C4 00003F0BC7: 20 00003F0BC8: 5B 00003F0BC9: 5E 00003F0BCA: 5D 00003F0BCB: C3 00 38- Comando Shutdown  fix:
    This difference file has been created by Avenuer340830041DCD5: 73 900041DCD6: 68 900041DCD7: 75 900041DCD8: 74 900041DCD9: 64 900041DCDA: 6F 900041DCDB: 77 900041DCDD: 73 900041DCDE: 68 900041DCDF: 75 900041DCE0: 74 900041DCE1: 64 900041DCE2: 6F 900041DCE3: 77 900041DCE4: 6E 90 39 - Fix a un 2° Dice:
    By PACIFICADOR.
      PACIFICADOR, on 08 Dec 2013 - 5:57 PM, said:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    40- CheckClientVersion:
    By PACIFICADOR: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Key: 1215955205
    This difference file has been created by IDA Progame_r34083_32_internal_ip000F4904: 8E 84 Estos son los Diffs hasta el momento, cada ves que salgan más diff será actualizada y se pondrá el día actualizado.
     
    Saludos.
     
    LOG:
    Actualización: 08/12/2013Agregados:- Diff CheckClientVersion.- Diff Fix a un 2° Dice.
  13. Me Gusta
    fuuton97 got a reaction from Soren in [RECOPILACIÓN]Diffs para game rev. 34083.   
    Hola, les traigo una recopilación que llevaba hace tiempo, y quiero postearla.
     
    Con esta recopilación doy el propósito de dejar estos diffs para el game de versión 34083, ha sido una recopilación de búsqueda en diversos foros como Epvp e Inforge. Están los más recientes diffs publicados en dichos foros. En esta recopilación será actualizada cada vez que lo requiera.
     
    Diffs:
     
    1- BACKDOOR-FIX:
    00000007: 09 000001447C: B0 E80001447D: 01 DF0001447E: 90 ED0001447F: 90 FF00014480: 90 FF000307AC: 90 83000307AD: 90 F8000307AE: 90 5A000307AF: E9 0F000307B0: 8A 8E000307B1: 0B 89000307B2: 00 0B000319CA: D1 C1000319CC: 90 02000855EE: B0 E8000855EF: 01 1D000855F0: 90 FE000855F1: 90 FF000855F2: 90 FF00086EBF: B0 E800086EC0: 01 DC00086EC1: 90 5400086EC2: 90 0900086EC3: 90 00000871D7: B0 E8000871D8: 00 F4000871D9: 90 D3000871DA: 90 F8000871DB: 90 FF000CF4E4: B0 E8000CF4E5: 01 B7000CF4E6: 0F CE000CF4E7: 1F 04000F49E6: B0 E8000F49E7: 00 E5000F49E8: 90 FB000F49E9: 90 F1000F49EA: 90 FF000F9EAE: B0 E8000F9EAF: 01 DD000F9EB0: 90 22000F9EB1: 90 02000F9EB2: 90 000010135D: B0 E80010135E: 01 AE0010135F: 0F 2800101360: 1F F200101361: 00 FF0011F4D8: 90 C70011F4D9: 90 050011F4DA: 90 D80011F4DB: 90 3C0011F4DC: 90 6A0011F4DD: 90 080011F4DE: 90 200011F4DF: 90 A70011F4E0: 90 460011F4E1: 90 08001EAC19: F3 3C001EAC1A: D0 6B001EAC1B: 64 63001EB316: F3 3C001EB317: D0 6B001EB318: 64 63004230C8: 30 0C004230CC: 48 12004230D0: 68 1A004230D4: A0 28004230D8: D4 35004230DC: 18 46004230DD: 01 00004230E0: 90 64004230E1: 01 00006BE292: 41 45006BE293: 39 31006BE294: 36 41006BE295: 44 37006BE296: 45 37006BE297: 30 34006BE298: 32 43006BE299: 31 43006C5636: 37 35006C5637: 38 44006C5638: 37 41006C5639: 36 45006C563A: 32 33006C563B: 44 45006C563C: 36 45006C5773: 37 35006C5774: 38 44006C5775: 37 41006C5776: 36 45006C5777: 32 33006C5778: 44 45006C5779: 36 45 2- Añadir Bonus a - 100%:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_3200422E04: 50 6400422E08: 3C 6400422E0C: 32 6400422E10: 1E 64 3- Habilidades siempre a 17 puntos:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_320006D172: 5A 7A 4- Aumentar las probabilidad en 50/75/100% de introducir las piedras:
    En 50%:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_320005531F: 1E 32 En 75%:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_320005531F: 1E 4B En 100%:
    This difference file is created by The Interactive Disassembler / .Crysisgame_r34083_320005531F: 1E 64 5- Retirar el aumento de yang en otros mapas x3:
    This difference file is created by The Interactive Disassemblergame_r34083_32001A8D48: 04 00001A8D49: 40 90001A94AD: 04 00001A94AE: 40 90 6- GM por ip:
    This difference file is created by The Interactive Disassemblergame_r34083_32000CF4EB: 75 EB000CF4EC: 73 7C 7- Niveles:
    150:
    This difference file is created by The Interactive Disassemblergame_r34083_320009595E: 78 96 170:
    This difference file is created by The Interactive Disassemblergame_r34083_320009595E: 78 AA 200:
    This difference file is created by The Interactive Disassemblergame_r34083_320009595E: 78 C8 245:
    This difference file is created by The Interactive Disassembler & Mariusgame_server340830009595E: 78 F5 250:
    This difference file has been created by IDA Progame_r34083000A238E: 78 FA 8- 30.000 Puntos de Rank:
    This difference file has been created by TheGamegame_r340830003FBC6: 40 E00003FBC7: 0D 930003FBC8: 03 040003FBD1: C0 200003FBD2: F2 6C0003FBD3: FC FB0003FBFF: 40 E00003FC00: 0D 930003FC01: 03 940003FC0A: C0 200003FC0B: F2 6C0003FC0C: FC FB00042FF4: BF DF00042FF5: D4 9300042FF6: 01 04 9- 255 Mapas pro Core:
    This difference file has been created by TheGamegame000B5D64: 20 FF 10- Inventario Horizontal:
    This difference file was created by IDA Progame_r340830004CD65: 05 090004CDDC: 05 090004CE22: 05 090004CEA1: 05 090004F8D5: 05 090004F938: 05 090004F93B: 05 09 11- Los items desaparecen en:
    3 Segundos:
    This difference file is created by aNNdiigame_r34083_32000505E5: 2C 03000505E6: 01 00 5 Segundos:
    This difference file was created by IDA Progame r34083000505E5: 2C 05000505E6: 01 00  30 Segundos:
    This difference file is created by aNNdiigame_r34083_32000505E5: 2C 1E000505E6: 01 00 12- 16 Miembros de grupo:
    This difference file is created by aNNdiigame_r34083_3200026153: 08 1000026159: 08 10 13- Status a:
    120:
    This difference file has been created by IDA Progame_r34083_32000307AE: 5A FA0003493F: 5A FA00088A70: 59 7700093D7F: 5A 7800093D98: 5A 7800093DC9: 5A 7800093F31: 5A 7800093F4E: 5A 7800093F75: 5A 7800093F92: 5A 7800093FC3: 5A 78 125:
    This difference file has been created by IDA Progame_r34083_32000307AE: 5A 7A0003493F: 5A FA00088A70: 59 7C00093D7F: 5A 7F00093D98: 5A 7F00093DC9: 5A 7F00093F31: 5A 7F00093F4E: 5A 7F00093F75: 5A 7F00093F92: 5A 7F00093fc3: 5A 7F 127:
    This difference file has been created by IDA Progame000307AE: 5A FA0003493F: 5A FA00088A70: 59 7E00093D7F: 5A 7F00093D98: 5A 7F00093DC9: 5A 7F00093F31: 5A 7F00093F4E: 5A 7F00093F75: 5A 7F00093F92: 5A 7F00093FC3: 5A 7F 132:
    This difference file has been created by IDA Progame000307AE: 5A FA0003493F: 5A FA00088A70: 59 8300093D7F: 5A 8400093D98: 5A 8400093DC9: 5A 8400093F31: 5A 8400093F4E: 5A 8400093F75: 5A 8400093F92: 5A 8400093FC3: 5A 84 140:
    This difference file has been created by IDA Progame000307AE: 5A FA0003493F: 5A FA00088A70: 59 8B00093D7F: 5A 8C00093D98: 5A 8C00093DC9: 5A 8C00093F31: 5A 8C00093F4E: 5A 8C00093F75: 5A 8C00093F92: 5A 8C00093FC3: 5A 8C 185:
    This difference file has been created by IDA Progame000307AE: 5A FA0003493F: 5A FA00088A70: 59 B800093D7F: 5A B900093D98: 5A B900093DC9: 5A B900093F31: 5A B900093F4E: 5A B900093F75: 5A B900093F92: 5A B900093FC3: 5A B9 14- Desactivar Yang Drop:
    This difference file is created by aNNdiigame_r34083_320004FE61: 7E EB0004FE62: 08 0A0004FE69: 7E EB0004FE6A: 25 02 15- Inmune a los desmayos:
    This difference file is created by aNNdiigame_r34083_32000692DE: 5A 64 16- DIF para editar la tabla EXP:
    DIF para editar la tabla de CAD: 0x422580 17- Chat Global:
    This difference file has been created by TheGamegame000FBE8D: 0F E9000FBE8E: 84 01000FBE8F: 05 00000FBE90: 01 00000FBFB2: 97 00000FBFB3: 7D 00000FBFB4: 0E 00000FD92C: 74 EB0010133B: 74 EB002E24CC: 74 90002E24CD: CF 90 18- No perder ítems al tener rank negativo:
    This difference file has been created by TheGamegame0004310F: A1 75000431C0: A1 75000431F4: A1 75 19- No hay impuestos en un 3% más en NPC:
    This difference file has been created by TheGamegame001A8849: 1F 01001A884A: 85 00001A884B: EB 00001A884C: 51 00001A88C8: E8 B8001A895B: E8 B8 20- La visión de cristal:
    This difference file has been created by IDA Proby Cryfactgame_r34083000F8F69: 74 EB000F8F6A: 0C 4D000F8FB9: 01 00000F8FBF: 7C EB 21- Puede vender artículos en el NPC de 0 Yang:
    This difference file is created by The Interactive Disassemblergame_r34083_32001A9353: 8F 8D 22- Pet Bonos funciona en todas partes:
    This difference file is created by The Interactive Disassemblergame_r34083_32000822B3: 8B 90000822B4: 42 90000822B5: 04 90000822BB: 74 90000822BC: 43 90 23- Funcionar 6 y 7 bonos:
    000598A0: 0F 90000598A1: 85 90000598A2: 2E 90000598A3: BA 90000598A4: FF 90000598A5: FF 900005F3C4: 0F 900005F3C5: 85 900005F3C6: 0A 900005F3C7: 5F 900005F3C8: FF 900005F3C9: FF 90 24- Tiempo de Bonos a 0:
    0005ECA3: 0A 00 25- Se monta hace daño de 20110 a 20206 :
    This difference file is created by The Interactive Disassemblergame_r3408300145D5D: 0F FA 26- Sin límite de poder sacar mobs, ejemplo: /m 101 10000:
    00096477: 8B 9000096478: 1D 9000096479: E0 900009647A: 39 900009647B: 6A 900009647C: 08 900009647D: 85 900009647E: DB 900009647F: 0F 9000096480: 85 9000096481: A0 9000096482: 01 9000096483: 00 9000096484: 00 9000096485: 89 9000096486: 44 9000096487: 24 9000096488: 04 9000096489: C7 900009648A: 04 900009648B: 24 900009648C: 14 900009648D: 00 900009648E: 00 900009648F: 00 9000096490: E8 9000096491: 3B 9000096492: AF 9000096493: 35 9000096494: 00 900009649B: 8B 900009649C: 8D 900009649D: E0 900009649E: FD 900009649F: FF 90000964A0: FF 90000964AC: C9 C000096625: 89 9000096626: 44 9000096627: 24 9000096628: 04 9000096629: C7 900009662A: 04 900009662B: 24 900009662C: 28 900009662D: 00 900009662E: 00 900009662F: 00 9000096630: E8 9000096631: 9B 9000096632: AD 9000096633: 35 9000096634: 00 9000096635: 89 9000096636: 85 9000096637: E0 9000096638: FD 9000096639: FF 900009663A: FF 900009663B: E9 900009663C: 5B 900009663D: FE 900009663E: FF 900009663F: FF 90 27- Yang a límite de 2.053.000.000:
    This difference file is created by The Interactive Disassembler & _BubbleGumgame_r3408300031281: FF 0000031282: 93 CF00031283: 35 8D00031284: 77 7F000340E0: FF 00000340E1: 93 CF000340E2: 35 8D000340E3: 77 7F000F55FB: FF 00000F55FC: 93 CF000F55FD: 35 7D000F55FE: 77 7F000F7F2E: FF 00000F7F2F: 93 CF000F7F30: 35 8D000F7F31: 77 7F000F7F97: FF 00000F7F98: 93 CF000F7F99: 35 8D000F7F9A: 77 7F001A88E3: FF 00001A88E4: 93 CF001A88E5: 35 8D001A88E6: 77 7F 28- Ver equipo:
    This difference file is created by The Interactive Disassemblergame_r34083_32_internal_ipBinary function fix0002A68D: 15 0B0002A6BE: 15 0B0002A6DB: 23 A70002A6DC: 03 01Disable just gm0008A345: E8 E90008A346: C6 1C0008A347: 98 000008A348: F9 000008A349: FF 000008A34A: 84 900008A34B: C0 900008A34C: 75 900008A34D: 18 90 29- Full rates reinos:
    This difference file has been created by IDA Proby Cryfactgame_r34083RequestGiveCharacterPriv001440DA: 64 E8001440DB: 00 03RequestGiveEmpirePriv001441A8: C8 E8001441A9: 00 03RequestGiveGuildPriv00144298: 32 E800144299: 00 03GiveEmpirePriv001443E7: C8 E8001443E8: 00 03GiveCharacterPriv001447C8: 64 E8001447C9: 00 03GiveGuildPriv00144C15: 32 E800144C16: 00 03 30- Juntar items a 250:
    This difference file is created by The Interactive Disassemblergame_r34083_32_internal_ipCHARACTER__AutoGiveItem0004E2F8: C8 FA0004E598: C7 F9CHARACTER__MoveItem000509B3: C8 FACHARACTER__PickupItem0005107F: C8 FAdo_item00096ECC: C8 FACItem__GetCount00103F44: C8 FACItem__SetCount00107BEE: C8 FAITEM_MANAGER__CreateItem0010B318: C8 FA 31- Activa la DMG de Panda Bear & Monturas:
    This difference file is created by The Interactive Disassemblergame_r34083_32_internal_ip00145E57: F9 FC 32- 5 Bono es visible en las Tiendas:
    This difference file has been created by IDA Progame001A8E51: 88 0F001A8E52: 11 21001A9403: 88 0F001A9404: 11 21 33- Tener más de 1 mount_bonus en montura:
    This difference file has been created by IDA Progame0016D3EB: E8 900016D3EC: 70 900016D3ED: 0E 900016D3EE: ED 900016D3EF: FF 90 34- Ver equipo en juego:
    This difference file has been created by IDA Progame_r340830002A68D: 15 0B0002A6BE: 15 0B0002A6DB: 23 A70002A6DC: 03 01 Para el usuario:
    This difference file has been created by IDA Progame_r340830008A34C: 75 EB  35-  Emociones sin una máscara:
    This difference file has been created by IDA Progame000855E5: 8B EB000855E6: 85 26000855E7: BC 00000855E8: FD 00000855E9: FF 00000855EA: FF 00000855EB: 89 00000855EC: 04 00000855ED: 24 00000855EE: E8 00000855EF: 1D 00000855F0: FE 00000855F1: FF 00000855F2: FF 00000855F3: 84 00000855F4: C0 00000855F5: 0F 00000855F6: 84 00000855F7: 62 00000855F8: 03 00000855FB: 89 00000855FC: F0 00000855FD: C1 00000855FE: E0 00000855FF: 04 0000085600: F6 0000085601: 80 0000085602: 08 0000085603: C0 0000085604: 5E 0000085605: 08 0000085606: 04 0000085607: 0F 0000085608: 85 0000085609: C7 000008560A: 02 000008560C: 00 90000858D4: 8B 00000858D5: 8D 00000858D6: BC 00000858D7: FD 00000858D8: FF 00000858D9: FF 00000858DA: 89 00000858DB: 0C 00000858DC: 24 00000858DD: E8 00000858DE: DE 00000858DF: E6 00000858E0: F9 00000858E1: FF 00000858E2: 85 00000858E3: C0 00000858E4: 0F 00000858E5: 85 00000858E6: 23 00000858E7: FD 00000858E8: FF 00000858E9: FF 90 36- Subir el nivel del caballo hasta 50:
    0009450A: 1E 320009450A: 1E 32 37- Desactivar syslog:
    This difference file has been created by IDA Progame003F0A90: 55 C3003F0A91: 89 00003F0A92: E5 00003F0A93: 56 00003F0A94: 53 00003F0A95: 83 00003F0A96: EC 00003F0A97: 20 00003F0A98: 8B 00003F0A99: 45 00003F0A9A: 08 00003F0A9B: 8B 00003F0A9C: 75 00003F0A9D: 0C 00003F0A9E: 85 00003F0A9F: C0 00003F0AA0: 74 00003F0AA1: 0C 00003F0AA2: 85 00003F0AA3: 05 00003F0AA5: CB 00003F0AA6: 7B 00003F0AA7: 08 00003F0AA8: 0F 00003F0AA9: 84 00003F0AAA: 17 00003F0AAB: 01 00003F0AAE: 8B 00003F0AAF: 15 00003F0AB0: C0 00003F0AB1: CA 00003F0AB2: 7B 00003F0AB3: 08 00003F0AB4: 85 00003F0AB5: D2 00003F0AB6: 0F 00003F0AB7: 84 00003F0AB8: AE 00003F0ABC: C7 00003F0ABD: 04 00003F0ABE: 24 00003F0AC3: E8 00003F0AC4: 18 00003F0AC5: 4E 00003F0AC6: C1 00003F0AC7: FF 00003F0AC8: 89 00003F0AC9: 45 00003F0ACA: F0 00003F0ACB: 8D 00003F0ACC: 45 00003F0ACD: F0 00003F0ACE: 89 00003F0ACF: 04 00003F0AD0: 24 00003F0AD1: E8 00003F0AD2: 2A 00003F0AD3: 55 00003F0AD4: C1 00003F0AD5: FF 00003F0AD6: 89 00003F0AD7: 04 00003F0AD8: 24 00003F0AD9: E8 00003F0ADA: 92 00003F0ADB: 4E 00003F0ADC: C1 00003F0ADD: FF 00003F0ADE: C7 00003F0ADF: 44 00003F0AE0: 24 00003F0AE1: 04 00003F0AE2: 20 00003F0AE3: CB 00003F0AE4: 7B 00003F0AE5: 08 00003F0AE6: 89 00003F0AE7: C3 00003F0AE8: A1 00003F0AE9: C0 00003F0AEA: CA 00003F0AEB: 7B 00003F0AEC: 08 00003F0AED: 8B 00003F0AEE: 40 00003F0AEF: 04 00003F0AF0: 89 00003F0AF1: 04 00003F0AF2: 24 00003F0AF3: E8 00003F0AF4: A8 00003F0AF5: 4D 00003F0AF6: C1 00003F0AF7: FF 00003F0AF8: 89 00003F0AF9: 1C 00003F0AFA: 24 00003F0AFB: E8 00003F0AFC: B0 00003F0AFD: 61 00003F0AFE: C1 00003F0AFF: FF 00003F0B00: C6 00003F0B01: 44 00003F0B02: 03 00003F0B03: FF 00003F0B05: 8D 00003F0B06: 43 00003F0B07: 04 00003F0B08: 89 00003F0B09: 44 00003F0B0A: 24 00003F0B0B: 08 00003F0B0C: A1 00003F0B0D: C0 00003F0B0E: CA 00003F0B0F: 7B 00003F0B10: 08 00003F0B11: C7 00003F0B12: 44 00003F0B13: 24 00003F0B14: 04 00003F0B15: 08 00003F0B16: 8D 00003F0B17: 5D 00003F0B18: 08 00003F0B19: 8B 00003F0B1A: 40 00003F0B1B: 04 00003F0B1C: 89 00003F0B1D: 04 00003F0B1E: 24 00003F0B1F: E8 00003F0B20: 7C 00003F0B21: 4D 00003F0B22: C1 00003F0B23: FF 00003F0B24: 8D 00003F0B25: 45 00003F0B26: 10 00003F0B27: 89 00003F0B28: 44 00003F0B29: 24 00003F0B2A: 08 00003F0B2B: 89 00003F0B2C: 45 00003F0B2D: F4 00003F0B2E: A1 00003F0B2F: C0 00003F0B30: CA 00003F0B31: 7B 00003F0B32: 08 00003F0B33: 89 00003F0B34: 74 00003F0B35: 24 00003F0B36: 04 00003F0B37: 8B 00003F0B38: 40 00003F0B39: 04 00003F0B3A: 89 00003F0B3B: 04 00003F0B3C: 24 00003F0B3D: E8 00003F0B3E: EE 00003F0B3F: 52 00003F0B40: C1 00003F0B41: FF 00003F0B42: A1 00003F0B43: C0 00003F0B44: CA 00003F0B45: 7B 00003F0B46: 08 00003F0B47: 8B 00003F0B48: 40 00003F0B49: 04 00003F0B4A: C7 00003F0B4B: 04 00003F0B4C: 24 00003F0B4D: 0A 00003F0B51: 89 00003F0B52: 44 00003F0B53: 24 00003F0B54: 04 00003F0B55: E8 00003F0B56: 36 00003F0B57: 4E 00003F0B58: C1 00003F0B59: FF 00003F0B5A: A1 00003F0B5B: C0 00003F0B5C: CA 00003F0B5D: 7B 00003F0B5E: 08 00003F0B5F: 8B 00003F0B60: 40 00003F0B61: 04 00003F0B62: 89 00003F0B63: 04 00003F0B64: 24 00003F0B65: E8 00003F0B66: 66 00003F0B67: 56 00003F0B68: C1 00003F0B69: FF 00003F0B6A: 83 00003F0B6B: 3D 00003F0B6D: CB 00003F0B6E: 7B 00003F0B6F: 08 00003F0B70: 01 00003F0B71: 76 00003F0B72: 52 00003F0B73: A1 00003F0B74: E0 00003F0B75: 22 00003F0B76: 6A 00003F0B77: 08 00003F0B78: C7 00003F0B79: 44 00003F0B7A: 24 00003F0B7B: 04 00003F0B7C: 20 00003F0B7D: CB 00003F0B7E: 7B 00003F0B7F: 08 00003F0B80: 89 00003F0B81: 04 00003F0B82: 24 00003F0B83: E8 00003F0B84: 18 00003F0B85: 4D 00003F0B86: C1 00003F0B87: FF 00003F0B88: 8D 00003F0B89: 45 00003F0B8A: 10 00003F0B8B: 89 00003F0B8C: 45 00003F0B8D: F4 00003F0B8E: 89 00003F0B8F: 44 00003F0B90: 24 00003F0B91: 08 00003F0B92: A1 00003F0B93: E0 00003F0B94: 22 00003F0B95: 6A 00003F0B96: 08 00003F0B97: 89 00003F0B98: 74 00003F0B99: 24 00003F0B9A: 04 00003F0B9B: 89 00003F0B9C: 04 00003F0B9D: 24 00003F0B9E: E8 00003F0B9F: 8D 00003F0BA0: 52 00003F0BA1: C1 00003F0BA2: FF 00003F0BA3: A1 00003F0BA4: E0 00003F0BA5: 22 00003F0BA6: 6A 00003F0BA7: 08 00003F0BA8: C7 00003F0BA9: 04 00003F0BAA: 24 00003F0BAB: 0A 00003F0BAF: 89 00003F0BB0: 44 00003F0BB1: 24 00003F0BB2: 04 00003F0BB3: E8 00003F0BB4: D8 00003F0BB5: 4D 00003F0BB6: C1 00003F0BB7: FF 00003F0BB8: A1 00003F0BB9: E0 00003F0BBA: 22 00003F0BBB: 6A 00003F0BBC: 08 00003F0BBD: 89 00003F0BBE: 04 00003F0BBF: 24 00003F0BC0: E8 00003F0BC1: 0B 00003F0BC2: 56 00003F0BC3: C1 00003F0BC4: FF 00003F0BC5: 83 00003F0BC6: C4 00003F0BC7: 20 00003F0BC8: 5B 00003F0BC9: 5E 00003F0BCA: 5D 00003F0BCB: C3 00 38- Comando Shutdown  fix:
    This difference file has been created by Avenuer340830041DCD5: 73 900041DCD6: 68 900041DCD7: 75 900041DCD8: 74 900041DCD9: 64 900041DCDA: 6F 900041DCDB: 77 900041DCDD: 73 900041DCDE: 68 900041DCDF: 75 900041DCE0: 74 900041DCE1: 64 900041DCE2: 6F 900041DCE3: 77 900041DCE4: 6E 90 39 - Fix a un 2° Dice:
    By PACIFICADOR.
      PACIFICADOR, on 08 Dec 2013 - 5:57 PM, said:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    40- CheckClientVersion:
    By PACIFICADOR: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Key: 1215955205
    This difference file has been created by IDA Progame_r34083_32_internal_ip000F4904: 8E 84 Estos son los Diffs hasta el momento, cada ves que salgan más diff será actualizada y se pondrá el día actualizado.
     
    Saludos.
     
    LOG:
    Actualización: 08/12/2013Agregados:- Diff CheckClientVersion.- Diff Fix a un 2° Dice.
  14. Me Gusta
    fuuton97 got a reaction from Rinnegan in [DUNGEON]Capítulo I - ¿Qué es una Dungeon? (INTRO).   
    Hola, hoy les vengo a dar este Capítulo 1, relacionado con las dungeon's. Comenzaremos explicando su literal hasta las funciones existentes, sin embargo esto solo es un pre ambulo para dar a inicio con la formación de una dungeon sencilla, pero eficaz.
    En Cada capítulo que va saliendo vamos añadiendo la dificultad en código y funciones para llevar a cabo una dungeon eficaz y buena.
     
    ¿Qué es una dungeon (Literal)? 
     
    Una "dungeon", que en su significado original es una cueva o calabozo (también denominada mazmorra), en donde emplea varias plantas, donde debes pasar por diferentes lugares donde encontraras bestias infinitas.
     
    En Metin2 lo relacionamos con una sucesión de recorridos por plantas y/o mapas, en donde cada vez se encuentra una dificultad mayor en bestias encontradas en el camino, por defecto al llegar, al último recorrido se encuentra con un Boss (Jefe), donde debes destruirlo , obteniendo así una recompensa. El ejemplo más claro que tenemos es la Torre de demonios, que es la más popular y entretenida, pero también contamos con la de los Monos, la Mazmorra de los Monos.
     
    Funciones de una dungeon:
     
    Cómo se denomina y se sabe que es una función de dungeon?, pues simplemente lleva a su inicio una "d.", que es de Dungeon.
     
    Las funciones son:
    d.check_eliminatedd.clear_regend.count_monsterd.exitd.exit_alld.exit_all_to_start_positiond.get_kill_mob_countd.get_kill_stone_countd.get_map_indexd.getfd.is_unique_deadd.is_use_potiond.joind.jump_alld.jump_all_locald.kill_uniqued.new_jumpd.new_jump_alld.purged.purge_uniqued.regen_filed.revivedd.selectd.set_destd.set_exit_all_at_eliminated.set_regen_filed.set_uniqued.set_warp_at_eliminated.setfd.spawnd.spawn_goto_mobd.spawn_groupd.spawn_mobd.spawn_move_groupd.spawn_move_uniqued.spawn_name_mobd.spawn_stone_doord.spawn_uniqued.spawn_wooden_doord.unique_get_hp_percd.unique_set_def_graded.unique_set_hpd.unique_set_maxhpd.noticed.kill_alld.setqf ¿Qué es lo más esencial que debe llevar una Dungeon?
     
    Lo que una Dungeon debe llevar en general son timer, los timer's son esenciales, sin ellos no se pudiera hacer ninguna acción que determine seguir adelante. Existe otras funciones secundarias esenciales en las dungeon's, como siempre un JUMP ALL, D.SETF y D.GETF.
     
    Esto solo es una introducción al nombre de DUNGEON, sabiendo su origen literal, funciones, lo más importante de ella.
     
    Próximo Capítulo: [DUNGEON]Capítulo II - ¿Cómo hacer una Dungeon?
     
    Saludos.
  15. Me Gusta
    fuuton97 got a reaction from izaviona in [DUNGEON]Capítulo I - ¿Qué es una Dungeon? (INTRO).   
    Hola, hoy les vengo a dar este Capítulo 1, relacionado con las dungeon's. Comenzaremos explicando su literal hasta las funciones existentes, sin embargo esto solo es un pre ambulo para dar a inicio con la formación de una dungeon sencilla, pero eficaz.
    En Cada capítulo que va saliendo vamos añadiendo la dificultad en código y funciones para llevar a cabo una dungeon eficaz y buena.
     
    ¿Qué es una dungeon (Literal)? 
     
    Una "dungeon", que en su significado original es una cueva o calabozo (también denominada mazmorra), en donde emplea varias plantas, donde debes pasar por diferentes lugares donde encontraras bestias infinitas.
     
    En Metin2 lo relacionamos con una sucesión de recorridos por plantas y/o mapas, en donde cada vez se encuentra una dificultad mayor en bestias encontradas en el camino, por defecto al llegar, al último recorrido se encuentra con un Boss (Jefe), donde debes destruirlo , obteniendo así una recompensa. El ejemplo más claro que tenemos es la Torre de demonios, que es la más popular y entretenida, pero también contamos con la de los Monos, la Mazmorra de los Monos.
     
    Funciones de una dungeon:
     
    Cómo se denomina y se sabe que es una función de dungeon?, pues simplemente lleva a su inicio una "d.", que es de Dungeon.
     
    Las funciones son:
    d.check_eliminatedd.clear_regend.count_monsterd.exitd.exit_alld.exit_all_to_start_positiond.get_kill_mob_countd.get_kill_stone_countd.get_map_indexd.getfd.is_unique_deadd.is_use_potiond.joind.jump_alld.jump_all_locald.kill_uniqued.new_jumpd.new_jump_alld.purged.purge_uniqued.regen_filed.revivedd.selectd.set_destd.set_exit_all_at_eliminated.set_regen_filed.set_uniqued.set_warp_at_eliminated.setfd.spawnd.spawn_goto_mobd.spawn_groupd.spawn_mobd.spawn_move_groupd.spawn_move_uniqued.spawn_name_mobd.spawn_stone_doord.spawn_uniqued.spawn_wooden_doord.unique_get_hp_percd.unique_set_def_graded.unique_set_hpd.unique_set_maxhpd.noticed.kill_alld.setqf ¿Qué es lo más esencial que debe llevar una Dungeon?
     
    Lo que una Dungeon debe llevar en general son timer, los timer's son esenciales, sin ellos no se pudiera hacer ninguna acción que determine seguir adelante. Existe otras funciones secundarias esenciales en las dungeon's, como siempre un JUMP ALL, D.SETF y D.GETF.
     
    Esto solo es una introducción al nombre de DUNGEON, sabiendo su origen literal, funciones, lo más importante de ella.
     
    Próximo Capítulo: [DUNGEON]Capítulo II - ¿Cómo hacer una Dungeon?
     
    Saludos.
  16. Me Gusta
    fuuton97 got a reaction from divnos77 in [DUNGEON]Capítulo I - ¿Qué es una Dungeon? (INTRO).   
    Hola, hoy les vengo a dar este Capítulo 1, relacionado con las dungeon's. Comenzaremos explicando su literal hasta las funciones existentes, sin embargo esto solo es un pre ambulo para dar a inicio con la formación de una dungeon sencilla, pero eficaz.
    En Cada capítulo que va saliendo vamos añadiendo la dificultad en código y funciones para llevar a cabo una dungeon eficaz y buena.
     
    ¿Qué es una dungeon (Literal)? 
     
    Una "dungeon", que en su significado original es una cueva o calabozo (también denominada mazmorra), en donde emplea varias plantas, donde debes pasar por diferentes lugares donde encontraras bestias infinitas.
     
    En Metin2 lo relacionamos con una sucesión de recorridos por plantas y/o mapas, en donde cada vez se encuentra una dificultad mayor en bestias encontradas en el camino, por defecto al llegar, al último recorrido se encuentra con un Boss (Jefe), donde debes destruirlo , obteniendo así una recompensa. El ejemplo más claro que tenemos es la Torre de demonios, que es la más popular y entretenida, pero también contamos con la de los Monos, la Mazmorra de los Monos.
     
    Funciones de una dungeon:
     
    Cómo se denomina y se sabe que es una función de dungeon?, pues simplemente lleva a su inicio una "d.", que es de Dungeon.
     
    Las funciones son:
    d.check_eliminatedd.clear_regend.count_monsterd.exitd.exit_alld.exit_all_to_start_positiond.get_kill_mob_countd.get_kill_stone_countd.get_map_indexd.getfd.is_unique_deadd.is_use_potiond.joind.jump_alld.jump_all_locald.kill_uniqued.new_jumpd.new_jump_alld.purged.purge_uniqued.regen_filed.revivedd.selectd.set_destd.set_exit_all_at_eliminated.set_regen_filed.set_uniqued.set_warp_at_eliminated.setfd.spawnd.spawn_goto_mobd.spawn_groupd.spawn_mobd.spawn_move_groupd.spawn_move_uniqued.spawn_name_mobd.spawn_stone_doord.spawn_uniqued.spawn_wooden_doord.unique_get_hp_percd.unique_set_def_graded.unique_set_hpd.unique_set_maxhpd.noticed.kill_alld.setqf ¿Qué es lo más esencial que debe llevar una Dungeon?
     
    Lo que una Dungeon debe llevar en general son timer, los timer's son esenciales, sin ellos no se pudiera hacer ninguna acción que determine seguir adelante. Existe otras funciones secundarias esenciales en las dungeon's, como siempre un JUMP ALL, D.SETF y D.GETF.
     
    Esto solo es una introducción al nombre de DUNGEON, sabiendo su origen literal, funciones, lo más importante de ella.
     
    Próximo Capítulo: [DUNGEON]Capítulo II - ¿Cómo hacer una Dungeon?
     
    Saludos.
  17. Me Gusta
    fuuton97 got a reaction from JazZ* in [DUNGEON]Capítulo I - ¿Qué es una Dungeon? (INTRO).   
    Hola, hoy les vengo a dar este Capítulo 1, relacionado con las dungeon's. Comenzaremos explicando su literal hasta las funciones existentes, sin embargo esto solo es un pre ambulo para dar a inicio con la formación de una dungeon sencilla, pero eficaz.
    En Cada capítulo que va saliendo vamos añadiendo la dificultad en código y funciones para llevar a cabo una dungeon eficaz y buena.
     
    ¿Qué es una dungeon (Literal)? 
     
    Una "dungeon", que en su significado original es una cueva o calabozo (también denominada mazmorra), en donde emplea varias plantas, donde debes pasar por diferentes lugares donde encontraras bestias infinitas.
     
    En Metin2 lo relacionamos con una sucesión de recorridos por plantas y/o mapas, en donde cada vez se encuentra una dificultad mayor en bestias encontradas en el camino, por defecto al llegar, al último recorrido se encuentra con un Boss (Jefe), donde debes destruirlo , obteniendo así una recompensa. El ejemplo más claro que tenemos es la Torre de demonios, que es la más popular y entretenida, pero también contamos con la de los Monos, la Mazmorra de los Monos.
     
    Funciones de una dungeon:
     
    Cómo se denomina y se sabe que es una función de dungeon?, pues simplemente lleva a su inicio una "d.", que es de Dungeon.
     
    Las funciones son:
    d.check_eliminatedd.clear_regend.count_monsterd.exitd.exit_alld.exit_all_to_start_positiond.get_kill_mob_countd.get_kill_stone_countd.get_map_indexd.getfd.is_unique_deadd.is_use_potiond.joind.jump_alld.jump_all_locald.kill_uniqued.new_jumpd.new_jump_alld.purged.purge_uniqued.regen_filed.revivedd.selectd.set_destd.set_exit_all_at_eliminated.set_regen_filed.set_uniqued.set_warp_at_eliminated.setfd.spawnd.spawn_goto_mobd.spawn_groupd.spawn_mobd.spawn_move_groupd.spawn_move_uniqued.spawn_name_mobd.spawn_stone_doord.spawn_uniqued.spawn_wooden_doord.unique_get_hp_percd.unique_set_def_graded.unique_set_hpd.unique_set_maxhpd.noticed.kill_alld.setqf ¿Qué es lo más esencial que debe llevar una Dungeon?
     
    Lo que una Dungeon debe llevar en general son timer, los timer's son esenciales, sin ellos no se pudiera hacer ninguna acción que determine seguir adelante. Existe otras funciones secundarias esenciales en las dungeon's, como siempre un JUMP ALL, D.SETF y D.GETF.
     
    Esto solo es una introducción al nombre de DUNGEON, sabiendo su origen literal, funciones, lo más importante de ella.
     
    Próximo Capítulo: [DUNGEON]Capítulo II - ¿Cómo hacer una Dungeon?
     
    Saludos.
  18. Me Gusta
    fuuton97 got a reaction from ™.Ninjaman28xD ツ in [DUNGEON]Capítulo I - ¿Qué es una Dungeon? (INTRO).   
    Hola, hoy les vengo a dar este Capítulo 1, relacionado con las dungeon's. Comenzaremos explicando su literal hasta las funciones existentes, sin embargo esto solo es un pre ambulo para dar a inicio con la formación de una dungeon sencilla, pero eficaz.
    En Cada capítulo que va saliendo vamos añadiendo la dificultad en código y funciones para llevar a cabo una dungeon eficaz y buena.
     
    ¿Qué es una dungeon (Literal)? 
     
    Una "dungeon", que en su significado original es una cueva o calabozo (también denominada mazmorra), en donde emplea varias plantas, donde debes pasar por diferentes lugares donde encontraras bestias infinitas.
     
    En Metin2 lo relacionamos con una sucesión de recorridos por plantas y/o mapas, en donde cada vez se encuentra una dificultad mayor en bestias encontradas en el camino, por defecto al llegar, al último recorrido se encuentra con un Boss (Jefe), donde debes destruirlo , obteniendo así una recompensa. El ejemplo más claro que tenemos es la Torre de demonios, que es la más popular y entretenida, pero también contamos con la de los Monos, la Mazmorra de los Monos.
     
    Funciones de una dungeon:
     
    Cómo se denomina y se sabe que es una función de dungeon?, pues simplemente lleva a su inicio una "d.", que es de Dungeon.
     
    Las funciones son:
    d.check_eliminatedd.clear_regend.count_monsterd.exitd.exit_alld.exit_all_to_start_positiond.get_kill_mob_countd.get_kill_stone_countd.get_map_indexd.getfd.is_unique_deadd.is_use_potiond.joind.jump_alld.jump_all_locald.kill_uniqued.new_jumpd.new_jump_alld.purged.purge_uniqued.regen_filed.revivedd.selectd.set_destd.set_exit_all_at_eliminated.set_regen_filed.set_uniqued.set_warp_at_eliminated.setfd.spawnd.spawn_goto_mobd.spawn_groupd.spawn_mobd.spawn_move_groupd.spawn_move_uniqued.spawn_name_mobd.spawn_stone_doord.spawn_uniqued.spawn_wooden_doord.unique_get_hp_percd.unique_set_def_graded.unique_set_hpd.unique_set_maxhpd.noticed.kill_alld.setqf ¿Qué es lo más esencial que debe llevar una Dungeon?
     
    Lo que una Dungeon debe llevar en general son timer, los timer's son esenciales, sin ellos no se pudiera hacer ninguna acción que determine seguir adelante. Existe otras funciones secundarias esenciales en las dungeon's, como siempre un JUMP ALL, D.SETF y D.GETF.
     
    Esto solo es una introducción al nombre de DUNGEON, sabiendo su origen literal, funciones, lo más importante de ella.
     
    Próximo Capítulo: [DUNGEON]Capítulo II - ¿Cómo hacer una Dungeon?
     
    Saludos.
  19. Me Gusta
    fuuton97 got a reaction from kuvanno in [BSD]Cambiar Password desde la máquina.   
    Hola, a continuación les daré un pequeño tip de como cambiar la password en la máquina virtual, o por el putty, será un paso muy sencillo.
     
    Primero que nada necesitamos un servidor y tal máquina, claro FreeBSD.
     
    Abrimos Putty, o máquina, y ponemos:
    mysql -u root - Luego introducirán su password de MYSQL (VIEJA).
     
    - Ahora ya entrado en mysql, ponemos este comando:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('aquí nueva pasasword'); Y listo, ya tenemos nuestra password cambiada. 
     
    Para salirnos de mysql solo tenemos que dar el comando:
    quit Por último damos reboot e iniciamos.
     
    Sacado de: Manual FreeBSD.
     
    Saludos.
  20. Me Gusta
    fuuton97 got a reaction from Tiico™ in [QUEST]Bloquear Chat In-game.   
    Hola, hoy les traigo esta pequeña quest que hice, estuve 1 semana off por motivos personales, y en ese tiempo poco que tuve hice esta quest para gm para bloquear y/o desbloquear el chat.
     
    Es algo simple, pero espero que les sirve:
    -------------------------------------- // Script LUA Hecha por Fuuton97-- // @2013 - Metin2 Zone-- // Bloquear Chat - GM------------------------------------quest bloquear_chat begin state start begin when 20094.chat."Bloquear Chat" with pc.is_gm() begin say_title(mob_name(20094)) say("¿Está molesto por el SPAM en el servidor?,") say("que esperas a usar el bloqueo del chat.") say("Conmigo podrás bloquear el chat de ") say("cualquier usuario que usted desee,") say("podrá bloquear y desbloquear con el tiempo") say("que usted decida") say_reward("Elimina esos SPAMERS") local bloquear = select("Bloquear Chat" , "Desbloquear Chat" , "Salir") if bloquear == 1 then say_title(mob_name(20094)) say("Por favor introduzca el nombre del usuario a") say("bloquear su chat:") local bloquear_chat = input() say("Ahora introduzca por cuanto tiempo") say("quiere el bloqueo del chat.") say("A continuación le daré algunos parámetros de tiempo:") say("Tiempos:") say("5 Minutos = 300") say("10 Minutos = 600") say("1 Hora = 3600") say_reward("Por favor diga los segundos a bloquear el chat:") local bloquear_tiempo = input() command("block_chat ".. bloquear_chat .." ".. bloquear_tiempo .."") say("Listo, bloqueado el chat del usuario ".. bloquear_chat .." ") notice_all("El Chat del Jugador ".. bloquear_chat .." ha sido bloqueado por ".. bloquear_tiempo .." tiempos/segundos") elseif bloquear == 2 then say_title(mob_name(20094)) say("Por favor introduzca el nombre del personaje a") say("desbloquear su chat:") local desbloquear_chat = input() command("block_chat ".. desbloquear_chat .." 0") notice_all("El Chat del Jugador ".. desbloquear_chat .." ha sido desbloqueado!!") say("Listo, Chat desbloqueado.") elseif bloquear == 3 then return end end endend Saludos.
  21. Me Gusta
    fuuton97 got a reaction from LORDCarlo™ in [BSD]Cambiar Password desde la máquina.   
    Hola, a continuación les daré un pequeño tip de como cambiar la password en la máquina virtual, o por el putty, será un paso muy sencillo.
     
    Primero que nada necesitamos un servidor y tal máquina, claro FreeBSD.
     
    Abrimos Putty, o máquina, y ponemos:
    mysql -u root - Luego introducirán su password de MYSQL (VIEJA).
     
    - Ahora ya entrado en mysql, ponemos este comando:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('aquí nueva pasasword'); Y listo, ya tenemos nuestra password cambiada. 
     
    Para salirnos de mysql solo tenemos que dar el comando:
    quit Por último damos reboot e iniciamos.
     
    Sacado de: Manual FreeBSD.
     
    Saludos.
  22. Me Gusta
    fuuton97 reacted to MesterLum in [Guia]Instalar autopach oficial   
    Ola k ase (yawn) , pues aki yo de nuevo pero esta vez con la guia de instalar autopach por .lz bueno empezamos.. primero que nada quiero aclarar que el compilador del autopach no es mio pero lo dejare , pero todo lo demas me toco investigarme por mi mismo repito me toco investigar por mi mismo.. bueno primero que nada aca estan los links:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Debes iniciar sesión para ver el contenido del enlace en esta publicación. Bueno una ves teniendo eso empesaremos por la parte de la web subiremos la carpeta autopach a tu web , localhost o lo que tengamos..
    Una ves subido editaremos el metin2torrent.config.xml y lo configuraremos algo asi:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Bien una ves hecho eso quedara algo haci en la web:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Cuidado aqui el 0.0.0.1 es donde se subiran los parches.. en fin seguimos con la parte del cliente
     
     
    Bien vamos a autopach creator (por zetsu) que por cierto tambien traduci la parte del torrent y blabla . bien entonces haremos lo siguiente
    abriremos..

    TorrentPatch.url.xml TorrentPatch.locale.xmleditaremos los URL de los autopach.. en mi caso seria algo asi:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Bueno aora seguimos con el TorrentPatch.url.xml
    bueno este es muy delicado teneis que poner exactamente donde esta tu URL con el metin2torrent.config.xml
    Bien en mi caso seria algo asi:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Bueno una ves hecho guardamos eso crearemos el patch.. que seria con el que creò zetsu.. (Metin2_Autopatcher_Creator.exe) con ese lo crearemos y quedara Metin2Patch.exe ese meteremos al cliente
    despues de eso abriremos la carpeta client cojemos eso y lo pegamos en el cliente y bien aremos lo siguiente (cuando ya copies y peges en el cliente) , Pondremos el URL del autopach que en mi caso seria algo asi:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    Bueno una ves hecho eso abrimos y todo estara terminado lo que les faltara que acontinuacion explicare como hacer patch's, que se compilan con .lz y se pega el codigo en el crclist.. y se crean directorios en 0.0.0.1 que por ejemplo es algo asi
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Cada actualisacion que vallas haciendo metela dependiendo en donde quieres que llegue del cliente..
     
    y bueno es todo al final se mirara algo asi:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    bueno eso es todo saludos y gracias a rafa por motivarme (aunque lo aiga hecho en contra de mi voluntad xd)
     
    bueno si me falto algo decirme :')
  23. Me Gusta
    fuuton97 reacted to KeKo in Capítulo VIII - Las tablas, amigas o enemigas?   
    Buenas zoneros, hoy que me encuentro especialmente trabajador (es decir, que no me apetece estudiar) voy a publicar una nueva entrega del curso de creación de quests de metin2zone.
    Esta nueva guía se la dedico a mi amigo raul, que siempre me habia dicho que debería aprender esto :trollface: y que era una de las guias que teniamos planeadas cuando configuramos el curso por primera vez pero que no se llego a llevar a cabo.
     
    Como veis la he titulado: amigas o enemigas? es para que os deis cuenta de que como programadores que somos los que nos especializamos en lua es importante reducir el código lo máximo posible por diferentes razones: ocupa menos, es menos texto para la vista, queda mas guay, etc y tu quest seguirá haciendo lo mismo que antes pero con menos código.
     
    1 - Tablas:
     
    Bueno, antes de nada vamos a crear nuestra tabla o array sencillo:
     

    local keko = {10,20,34,43,57} Como veis, a diferencia de los selects a los que estáis acostumbrados los elementos de la tabla estan dentro de { }
     
    ---------------------------------------------------------------------------------------------------------------------------
    Ojo:Los elementos deben estar separados por comas, y el último de ellos NO debe llevar la coma.
    ---------------------------------------------------------------------------------------------------------------------------
     
    Bueno, ahora que tenemos una mini tabla vamos a llamar a los diferentes elementos de la misma. La sintaxis es la siguiente:
     

    nombre[posicion]
    keko[1] -- 10 keko[2] -- 20 keko[3] -- 34 keko[4] -- 43 keko[5] -- 57 Como veis escribimos el nombre del local y luego entre [ ] ponemos la posicion del elemento que queramos seleccionar dentro del array.
     
    Asi que ahora ya podeis meter vuestras tablas en la quest del siguiente modo:
     

    local items = {160,161,162,163} pc.give_item2(items[1]) -- te dara el 160 pc.give_item2(items[2]) -- te dara el 161 pc.give_item2(items[3]) -- etc pc.give_item2(items[4]) -- etc De todos modos en ese ejemplo un for lo haría mucho mas sencillo, aunque ya os explicare mas a fondo como se usa
     

    local items = {160,161,162,163} for i=1, table.getn(items) do -- en la i ponemos igual a 1 y luego la cantidad de veces que se repita pc.give_item2(items[i]) -- te dara cada uno de los items que haya en la tabla end -- cada for le corresponde un end 2 - Arrays con subcategorías:
     
    Bueno, hemos visto una tabla sencillita, vamos a complicar un poco la cosa:
     

    local cordes = { {12500,13400}, {12400,18900}, {19800,12300} } Ahora tenemos una tabla con diferentes apartados dentro della. Vamos a ver como sería la sintaxis en este caso:
     

    nombre[subcategoria][posicion]
    cordes[1][1] -- 12500 cordes[1][2] -- 13400 cordes[2][1] -- 12400 cordes[2][2] -- 18900 cordes[3][1] -- 19800 cordes[3][2] -- 12300 -----------------------------------------------------------------------------------------------------
    Ojo:Las subcategorias deben estar separadas por comas, y la ultima NO la lleva
    -----------------------------------------------------------------------------------------------------
     
    Como veis, de nuevo escribimos el nombre, luego pondremos un primer [ ] con la subcategoría, que es el número de arrays simples dentro del array compuesto:
     

    local nombre = { -- abres la tabla {} -- subcategoria 1 {} -- subcategoria 2 {} -- subcategoria 3 } -- cierras la tabla En el segundo [ ] va la posicion del elemento como habiamos hecho con el array simple
     

    local cordes = { {12500,13400,17500,14000}, {12400,18900,13200} }
    cordes[1][4] -- 14000 cordes[2][2] -- 18900 Veamoslo en una quest:
     

    local cordes = { {12500,13400}, {12400,18900}, {19800,12300} } pc.warp(cordes[1][1],cordes[1][2]) -- 12500, 13400 3. Arrays + funciones + selects = locura?
     
    Bien, hasta ahora solo hemos visto ejemplos sin llegar a hacer una quest en condiciones. Lo más habitual usando arrays es combinarlos con un local = select del siguiente modo
     

    say("Que arma quieres") say("") local items = {160,161,162} local arma = select ("Ninfa +0" , "Ninfa +1" , "Ninfa +2" , "Cerrar") if arma == table.getn(items)+1 then return end pc.give_item2(items[arma],1) De este modo, segun lo que eligamos en el select, nos asignara uno de los elementos del array, si pinchamos en Ninfa +0 el juego enviara al array la orden de mostrar el elemento de posicion 1, si pinchas en Ninfa +1 te enviará la de posicion 2 y así sucesivamente.
     
    Por lo tanto, al meter el resultado del select en el array
     

    pc.give_item2(items[arma],1) Te dara la que hayas seleccionado, y así te evitarás tener que poner tres if y solo pondras 1
     
    Ahora con un array doble:
     

    say("Que arma quieres") say("") local items = { {160,2}, {161,1}, {162,3} } local arma = select ("Ninfa +0" , "Ninfa +1" , "Ninfa +2" , "Cerrar") if arma == table.getn(items)+1 then return end pc.give_item2(items[arma][1],items[arma][2]) Tal y como está ahora, cogera la subcategoría del select, y una vez la tenga te dara lo que tengas en la posicion 1 y en la cantidad pondra lo que tengas en la posicion 2. De este modo, aunque las cantidades del item sean diferentes podrás hacerlo con un solo if.
     
    Y por último vamos a meterle mas complicacion, una funcion dentro del array!
     

    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 end pc.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)
     
    4 - KeKo, no lo hemos entendido!!!!
     
    Bueno vale, os pondré otro ejemplo:
     

    say("A donde quieres ir?") sa("") local sitio = select ("Mapa1" , "Mapa2", "Mapa3" , "Cerrar") local cordes = { {cordx,cordy}, {cordx,cordy}, {cordx,cordy} } if sitio == table.getn(cordes)+1 then return end pc.warp(cordes[sitio][1],cordes[sitio][2]) 5 - Subcategorías numeradas
     
    Vamos a probar otra cosa: y si metemos un numero determinado para cada subcategoría en vez de 1,2,3,etc?
     

    local prueba = { [100] = {10,11}, [1001] = {12,13}, [134] = {14,15} } Veamos la sintaxis de esto:
     

    chat(prueba[100][1]) -- 10 chat(prueba[1001][2] -- 13 De nuevo debemos hacer referencia primero a la subcategoria y luego a la posicion detro de la misma.
     
    Y para que nos sirve esto? Tiene un monton de aplicaciones pero una muy típica es igualar la numeración de la subcategoría a una funcion:
     

    when 45000.use or 45001.use or 45002.use begin local premios = { [45000] = {30,31}, [45001] = {32,33}, [45002] = {34,35} } chat(premios[item.get_vnum()][1]) -- si tu item es 45000 esto es 30 chat(premios[item.get_vnum()][2]) -- si tu item es 45002 esto es 34 end De este modo la subcategoría la reconoce el juego segun el item que hayas usado.
     
    Y bueno chicos, eso sería todo. Todavía me quedaría muchísimo de explicar sobre el uso de las tablas, pero el hecho de que no tengo demasiado tiempo y de que mis conocimientos de las mismas no son tan amplios como los de Noa (y muchos otros xd) lo dejaré aqui en esta entrega del curso de quests. Espero que os sea útil.
  24. Me Gusta
    fuuton97 reacted to Anthony's in [Guía]Como editar drop #FTP + Navicat#   
    Buenas aquí os enseñaré como editar el drop de un monstruo, como hacer que un metin tiré "x" bichos. Y como hacer que un baúl se pueda abrir.

    Como editar el drop de un monstruo

    Bien tendremos que ir a la ruta siguiente:
    /usr/home/game/share/locale/germany Al estar hay tendremos que editar el siguiente archivo:
    mob_drop_item.txt Cogemos ahora el Notepad++ abrimos el archivo en el Notepad++ y tendremos que editar de la siguiente manera el archivo:



    Os preguntaréis que significa cada cosa.

    Bien ahora os lo explicaré.

    GROUP -> Tiene que ir puesto.

    Metin_de_Combate -> Es el nombre del monstruo o metin. Esto es necesario poner un nombre, pero para que no te líes pon el nombre original del monstruo o metin.

    { -> Sirve para iniciar el dropeo. *Es obligado de poner*

    } -> Sirve para finalizar el dropeo. *Es obligado de poner*

    Type -> Tenéis que poner drop.

    Mob -> Aquí debéis de poner el comando de vuestro monstruo que queráis que drope tal item.

    a) 1 Significa que es el primer item.

    b) 30 es el valor del item ejemplo /i 10 sería la espada. En este caso sería otro arma o armadura o lo que queráis.

    c) 1 significa cuantos item's quieres que tiré de ese objeto.

    d) 10 significa el porcentaje del drope podemos también poner 0.05 o 0.01 o también directamente 100. Que significaría la probabilidad que tengas de que te caiga ese objeto determinado.

    Como hacer que un Metin//Monstruo tiré "x" bicho

    Bien tendremos que ir a la ruta siguiente:
    /usr/home/game/share/locale/germany Al estar hay tendremos que editar el siguiente archivo:
    group.txt Cogemos ahora el Notepad++ abrimos el archivo en el Notepad++ y tendremos que editar de la siguiente manera el archivo:



    Os preguntaréis que significa cada cosa.

    Bien ahora os lo explicaré.

    GROUP -> Tiene que ir puesto.

    Metin_de_Furia -> Nombre del Monstruo//Metin.

    { -> Sirve para iniciar el comando de drop de bichos. *Es obligado de poner*

    } -> Sirve para finalizar el comando de drop de bichos. *Es obligado de poner*

    Vnum -> Aquí debe de ir el comando que necesitaremos más adelante.*Aparte sirve para el mob_proto y hacer que el "x" mob o "x" metin invoque tal bicho.

    Leader -> Es el lider del Metin o Monstruo. Tendremos que poner quien queremos que sea el lider del Metin o del Monstruo. También tenemos que ponerle el codigo de invocación /m 8055 "Es el ejemplo."

    a) 1 Es el primer bicho que saldrá cuando el Monstruo Jefe lo invoque. O cuando el Metin lo invoque para que lo defienda. *Saldrá después del lider*.

    b) 2 Es el segundo monstruo que saldrá y el nombre sirve para saber que bicho sale "Que tu te des cuenta que mob hicistes que salga". Y también tienes que poner el codigo de invocación /m 3101

    c) Cuando acabemos todo ponemos } Al final y lo guardamos. Cuando este guardado en el FTP hacemos reboot o /reload.

    Antes de hacer el reboot vamos al mob_proto y vamos al monstruo que quisimos que salgan bichos que le ayuden y tenemos que ir a attack_speed y move_speed y poner el código que pusimos al principio *Aviso el código no tiene que estar repetido o si no saldrán monstruos bugeados que te atacaran*

    Miren como quedaría



    Hacéis el reboot y testeais si algo no funciona bien es que te equivocastes al poner el comando en attack_speed o move_speed.

    Como hacer que un baúl se pueda abrir.

    Bien tendremos que ir a la ruta siguiente:
    /usr/home/game/share/locale/germany Al estar hay tendremos que editar el siguiente archivo:
    special_item_group.txt Cogemos ahora el Notepad++ abrimos el archivo en el Notepad++ y tendremos que editar de la siguiente manera el archivo:



    Os preguntaréis que significa cada cosa.

    Bien ahora os lo explicaré.

    GROUP -> Tiene que ir puesto.

    Baúl_Secreto_de_Citrina -> Nombre del item.

    { -> Sirve para iniciar el drop del baúl// item. *Es obligado de poner*

    } -> Sirve para finalizar el drop del baúl// item. *Es obligado de poner*

    Vnum -> Aquí tenéis que poner el comando del item que queráis que se abra. "Ejemplo /i 50121"

    a) 1 Es el primer item de drope.

    b) 71001 es el comando del item que queremos que saque.

    c) 2 Cuantos item's quiero que tiré de ese mismo objeto.

    d) 50 Es el procentaje de ese dropeo de item.

    Cuando acabemos vamos al archivo ponemos el nuevo comando y ya.



    Aviso para todas las guías de este post:

    ¡Si ponemos un comando erroneo no se nos conectará el cliente! Por ejemplo: Yo pongo 10035388 y ese codigo no existe. El cliente no se iniciará y te tocará saber que comando no tenemos bien.


    Agradezco a:

    Thanato y Serex por explicarme algunas cosas que yo no sabía.
  25. Me Gusta
    fuuton97 reacted to  Pantsu  in [Hiper-Release] Tera Online - Blade & Soul Unpacked.   
    Tera Online Unpacked:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Videotutorial: www.youtube.com/watch?v=E1X-Rd0eCMA
    Créditos: .RazerX (Tera Online) - Strach (Blade & Soul).
    Pagina WEB:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Código para .bat - Unpack B&S: @for /f "tokens=*" %%a in ('dir /b *.upk') do ( umodel -game=bns -all -export %%a )
     
    Es sencillo para el Tera descargad donde pone Tera Online Unpacked. Para el Blade & Soul hacéis un notepad y ponéis el código de arriba, lo guardáis en .bat y lo ponéis en la carpeta donde están todos los .upk del Blade & Soul. Tengo unos descompiladores que encontré y unos que hice pero tengo que buscarlos en el PC.
     
     
    Saludos! Strach~
×
×
  • Crear nuevo...