Jump to content

Marcos Pinheiro

Miembro
  • Contador contenido

    112
  • Ingreso

  • Última visita

  • Días ganados

    2

Actividad de reputación

  1. Me Gusta
    Marcos Pinheiro reacted to ChuchoGamer in Sistema de botones en inventario   
    Hola buenas noches a todos aqui les Comparto este sistema para el inventario de botones espero que les gustes 
    dejo foto y link de descarga 
    no se olviden de dar las gracias les traire mas contenido a este foro

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
  2. Me Gusta
    Marcos Pinheiro reacted to Lord Ahriman - 3D Modeler in 3DS Max 2018 + exportador GR2   
    3DS Max 2018 + exportador GR2 + GR2 to FBX 2.11 + Granny viewer 2.11

    Saludos a todos, hace tiempo que no posteo nada y veo que hay gente que aun usa 3ds max 8, 12, 13... les traigo el 3ds max 2018 y su exportador para el Gr2...

    Links: 

    3ds max 2018: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    crack: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    La clave es: libreriacad.com


    Exportador a GR2: Debes iniciar sesión para ver el contenido del enlace en esta publicación.



    GR2 to FBX para granny 2.11 (ultima version creo): Debes iniciar sesión para ver el contenido del enlace en esta publicación.


    Granny viewer 2.11 (cuando no ves algun modelo o te da error, de seguro el por el granny.): Debes iniciar sesión para ver el contenido del enlace en esta publicación.


    Suerte!
  3. Me Gusta
    Marcos Pinheiro reacted to MiGueLiT0 in [PSD]Web y autoparch   
    DESCARGA: 

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  4. Me Gusta
    Marcos Pinheiro reacted to Dilong in Quest cofre items o polimorfas   
    Pues eso, no hay mucho que decir 😆
    quest cofre begin state start begin when 38056.use begin local items = { {19, 1}, {29, 1}, {39, 1}, {49, 1} } local mobid = { {101}, {102}, {103}, {104} } local items2 = math.random(table.getn(items)) local mobid2 = math.random(table.getn(mobid)) local intercambio = math.random(1,2) if intercambio == 1 then pc.give_item2(items[items2][1], items[items2][2]) pc.remove_item(38056,1) elseif intercambio == 2 then pc.give_poly_marble(mobid[mobid2][1]) chat("Has recibido "..mob_name(mobid[mobid2][1]).." bola polimorfa.") pc.remove_item(38056,1) end end end end  
  5. Me Gusta
    Marcos Pinheiro reacted to KeKo in [Sistema] Puntos Metin   
    Buenas zoneros y zoneras,
     
    Hace tiempo que no posteaba ninguna quest, asi que hoy me ha dado por haceros un "mini-sistema" para que lo podais meter en vuestro servidores si os gusta
     
    Lo he llamado sistema de "Puntos Metin" y como el nombre sugiere tiene que ver con los metines. Por cada metin que destruyas en el servidor obtendrás una determinada cantidad de un item que yo bautize como "Esfera Metin" pero que cada uno puede llamar como quiera (yo os dejo el tga del item por si lo quereis).
     
    Las esferas que te da cada metin son diferentes (configurables a voluntad) y ademas os he hecho un npc de canjes para que podais llevar vuestras esferas metin y canjearlas por los items que querais (vosotros configurais el npc) .
     
    Primero unas fotitos del proceso:
     
    1 - Petando un metin, te da esferas:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    * Detalle: La quest reconoce automaticamente que metin destruyes y te da los puntos correspondientes a ese metin, mas abajo os enseñare a editar los puntos.
     
    2 - Esta es una esfera metin:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    3 - Vamos al npc de los canjes:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    4 - Elegimos el item a canjear:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    5 - Si no tenemos las esferas suficientes saldra este mensaje, si las tenemos nos dara el item y nos quitara las esferas correspondientes (podeis poner el coste de cada item al lado del nombre en el local).
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Y bueno ahora que os he explicado un poco como va, aqui os dejo la quest:
     
     
     
     
    (Aqui en pastebin para quien la prefiera tener con las tabs
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.)  
    Y bueno ahora os voi a enseñar como editarla:
     
    Paso 1 - Los metines:
     
    Para añadir nuevos metines ponemos su id en el array y vamos a configurarles el nombre y esferas que daran:
     

    local metin = { [8001] = {1,"Metin de Dolor"}, [8002] = {1,"Metin de Combate"}, [8003] = {2,"Metin de Batalla"}, [8004] = {2,"Metin de Avaricia"}, [8005] = {3,"Metin Negro"}, [8006] = {3,"Metin de Oscuridad"}, [8007] = {3,"Metin de Celos"}, [8008] = {4,"Metin de Alma"}, [8009] = {4,"Metin de Sombra"}, [8010] = {5,"Metin de Dureza"}, [8011] = {5,"Metin de Demonio"}, [8012] = {6,"Metin de Caida"}, [8013] = {6,"Metin de Muerte"}, [8014] = {8,"Metin Asesino"}, [8024] = {10,"Metin Pung-Ma"}, [8025] = {11,"Metin de Ma-An"}, [8026] = {12,"Metin de Tu-Young"}, [8027] = {13,"Metin Jeon-Un"} } Este array contiene 3 elementos
     

    [8027] Entre [ ] la id del metin de nuevo, si quereis añadir uno nuevo la poneis igual
     

    {12,"Metin de Tu-Young"}, Entre { va primero la cantidad de esferas que dara (en este caso 12) una coma y luego entre " " el nombre del metin (es opcional, lo dice por el chat al peta uno).
     
    Si quereis añadir una nueva linea pos haceis asi:
     

    {esferas,"nombre"}, Ojo! El ultimo de los metines NO debe llevar una , al acabar el }
     
    Y lo ultimo es poner la id de las esferas en el give_item
     

    pc.give_item2("27003",metin[npc.get_race()][1]) Donde yo tengo 27003 (si, las potas rojas G, me aburria xd) vosotros pondreis la id que le pongais a la esfera (o el item que useis).
     
    Paso 2: El npc de los canjes
     
    Podeis ponerle tantos canjes como querais, yo en este caso he puesto 7 posibles canjes que podemos editar de la siguiente manera:
     

    local elegir = select("Item1","Item2","Item3","Item4","Item5","Item6","Item7","Cancelar") Ponemos el nombre del item en cada caso. Si quereis añadir mas podeis hacer otra pagina (aunque a la segunda tendreis que hacerle vosotros las condiciones :trollface: ).
     
    Luego debeis configurar este array:
     

    local premios = { {27002,1,27003,1}, -- Premio1 {27002,5,27003,2}, -- Premio2 {27002,10,27003,3}, -- Premio3 {27002,15,27003,4}, --Premio4 {27002,50,27003,5}, --Premio5 {27002,100,27003,6}, --Premio6 {27002,200,27003,7} --Premio7 (sin la , despues del } recordad) } Os explico que hace cada cosa:
     
    - El 27002 es el item que te daran al canjear cada elemento.
    - El numero siguiente es la cantidad del premio que te daran.
    - El tercer elemento es la id de las esferas o el item que useis como necesario para canjear
    - El cuarto elemento es la cantidad de esferas que pedira cada premio.
     
    Si quereis añadir mas recordar que el local anterior esta ligado a este, asi que si haceis otra pagina tendreis que usar otro array (o hacerlo normal).
     
    Y eso seria todo, el resto de la quest ya esta configurada.
     
    Espero que os guste :tiocereales:
     
    P.D: Os dejo adjunto el icono de la esfera metin (solo icono sin item_proto ni na ya lo haceis vosotros :trolldad: )

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  6. Me Gusta
    Marcos Pinheiro reacted to Gojosensai in Map Converter V7   
    NEW MAP TOOLS V7 ENJOY!

     
    VirtualTotal: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Download: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  7. Me Gusta
    Marcos Pinheiro reacted to Gojosensai in Mob drop info helper   
    VirtualTotal: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Download: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  8. Me Gusta
    Marcos Pinheiro reacted to Kenshi Torres in Montura Monte Drayen León   
    Link: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  9. Me Gusta
    Marcos Pinheiro reacted to Mikimous in Shop Offline by Ken (Fixed)   
    Podstawowa funkcjonalność
    - Otwórz nowy sklep (maksymalnie 1), - Zamknij otwarty sklep, - Dodaj przedmiot do wcześniej otwartego sklepu, - Usuń przedmiot z wcześniej otwartego sklepu, - Sklep posiada 120 niezależnych od niczego slotów, - 8 opcji czasowych do indywidualnego dostosowania (łatwa konfiguracja), [CONFIG] - Każda z opcji czasowych posiada możliwość ustawienia indywidualnie wymaganego przedmiotu/yang (lub obu jednocześnie) do otwarcia sklepu - np. otwarcie sklepu na godzinę kosztuje 10k yang, otwarcie sklepu na 2 godziny kosztuje 1 białą perłę, otwarcie sklepu na 3 godziny kosztuje 50k yang i 2 niebieskie perły, a otwarcie sklepu na 4 godziny jest darmowe, [CONFIG] - Możliwość indywidualnego dostosowania czasu ich odświeżania, tak aby nie lagować baz danych i serwerów, [CONFIG] - Możliwość ograniczenia map na których możemy je wystawiać i nimi zarządzać, [CONFIG] - Możliwość ograniczenia maksymalnej ilości jednocześnie otwartych sklepów na całym serwerze, [CONFIG] - Sklepy są kompatybilne z systemem szarf, [CONFIG] - Sklepy są kompatybilne z systemem transmutacji, [CONFIG] - Sklepy są kompatybilne z zwiększonym limitem yang (jeśli Twój limit yang jest osiągalny dla przeciętnego gracza sklepy również z nim współpracują), - Sklepy posiadają specjalny antiflag umożliwiający zablokowanie sprzedaży przedmiotów w sklepie, - Sklepy offline nie kolidują z normalnymi sklepami, użytkownicy mogą otwierać oba (offline buttonem, normalny tobołem), - Sklepy posiadają opcje zapisywania cen przedmiotów, - Sklepy posiadają opcje podświetlenia otwartych wcześniej sklepów. - Opcja personalizacji sklepu przez Szpulę Kaszmiru (Szpula po użyciu daje Ci możliwość otwierania spersonalizowanego sklepu przez 7 dni od daty użycia, wielokrotne użycie szpuli dodaje wielokrotność 7 dni - dni sumują się). [NOWOŚĆ] (Dostępne za darmo w droższej wersji!) * [CONFIG] - Podpunkty oznaczone w taki sposób posiadają możliwość zarządzania nimi z poziomu jednego pliku (configu ala ch) - w zestawie znajduje się również jego generator, aby nie edytować i wrzucać tego ręcznie.
    Zabezpieczenia i Poprawki
    - Administrator nie może kupować, ani sprzedawać przedmiotów w sklepach, - Administrator ma możliwość globalnego zablokowywania i odblokowywania kupowania, sprzedawania, dodawania i usuwania przedmiotów w sklepach przez graczy (tzw. zamrozić) komendą z poziomu gry bez restartu serwera, - Zarządzać (zamykać, usuwać i dodawać przedmioty) swoim sklepem możemy tylko z kanału na którym został otwarty i określonych w configu map, - Podczas tworzenia swojego sklepu nie można handlować, wyrzucać, sprzedawać, zakładać, zdejmować, przekładać do dozorcy żadnych przedmiotów, - Zablokowano możliwość kupowania przedmiotów w swoim sklepie i kupowania przedmiotów na odległość większą niż 1500, - Przedmioty, które nie sprzedały się w momencie zamknięcia sklepu zostają w nim jeśli nie masz wystarczająco dużej ilości wolnego miejsca w ekwipunku, a przed otwarciem kolejnego będziesz musiał je wyciągnąć, - Brak możliwości otwierania/zarządzania sklepem kiedy jesteś martwy, posiadasz otwarte okno handlu, ulepszania, dozorcy lub cube, - Zablokowano wszelkie exploity wywodzące się inputów (pole wprowadzania nazwy sklepu lub ilości yang do wypłacenia), - Sklepy współpracują z "banwords" - jeśli zablokujesz jakieś słowo nie będzie można go wykorzystać również w nazwie sklepu offline, - Nałożono cooldown na niektóre okna lub funkcje (np. wypłatę yang), aby nie floodować nimi serwera, - Poprawiono niektóre funkcje (np. Refresh), zapytania i pakiety, eliminując przy tym te mniej i bardziej znane bugi dotyczące kopiowania itemów czy yang. SS

     

     





    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
     
     
  10. Me Gusta
    Marcos Pinheiro reacted to TTV_RANDARON in [System] BUDOKAN TÁCTICO Y DUELO TACTICO   
    Información del sistema:

    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.
  11. Me Gusta
    Marcos Pinheiro reacted to Kenshi Torres in Armas animadas version   
    Link:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  

  12. Me Gusta
    Marcos Pinheiro reacted to TrafalgarLaw in Revivir con las habilidades activas.   
    Lo saque de wonder, funciona correctamente para mi almenos.
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Pondría un video o algo pero prácticamente es lo que pongo en el titulo, revivir con las habilidades activas.
     
    Aura espada, Hoja encantada, Berserk, Cuerpo Fuerte, Auras del chaman
  13. Me Gusta
    Marcos Pinheiro reacted to Lord Ahriman - 3D Modeler in .GR2 a .FBX (Granny 2.4 / 2.9 / 2.11)   
    Les comparto este archivo que me ha servido de maravilla, solo debes arrastrar el .Gr2 para obtener el .FBX, yo lo uso para trabajar en el 3ds max 2018, (deben actualizar al granny 2.11)
    Esto sirve para cualquier .GR2 independiente del tag que tenga, suerte!
    LINK: Debes iniciar sesión para ver el contenido del enlace en esta publicación.


  14. Me Gusta
    Marcos Pinheiro reacted to Kronixer™ in Archivos Curse Of the Serpent Queen   
    Hola amigos de zone 
    Contenido:

    root-meta, dumped binary, locales whit protos
    New monsters, maps, daungeon, armors 2021 easter costumes and mount
    the package contains the separated folders (m00xxx) and the unpacked files together in one folder
     

  15. Me Gusta
    Marcos Pinheiro reacted to caanmasu in Soy Camilo. Me voy de Metin2 para siempre   
    Hola a todos
     
    Después de mucho tiempo que llevo en este mundo de Metin2, he tomado la decisión de retirarme absolutamente el 1° de noviembre.
    Mientras llega esa fecha, estoy haciendo mis últimos toques de lo que ya venía haciendo, pues para no dejar las cosas tiradas.
    Les aviso ahora para que lo tengan en cuenta. He recibido trabajos para hacer, pero no puedo comprometerme a cosas que lleven bastante tiempo, ya estoy casi por irme.
    En estos días estaré aportando en el foro internacional.
    Haré mi despedida oficial el 31 de octubre, casualmente cae Halloween. Este post es solo para anunciar mi retiro.
     
    Tengo 26 años y es hora de dejar todo esto. Hay miles de oportunidades afuera donde se puede ganar mucho monetariamente hablando.
    Aquí adquirí muchas pero muchas habilidades. Cada reto en el que me metí, lo logré. Ayudé a mucha gente. Conocí personas y algunos quedarán para siempre.
    Cumplí mi más grande reto que me propuse cuando estaba como en 7° semestre que fue cuando empecé a programar quests. Mi reto fue convertirme en el mejor del mundo en quest. Hoy en día estoy muy orgulloso de haberlo logrado, estoy muy tranquilo y quiero hacer lo mismo pero con otro tema de interés.
     
    Para las personas que ven este post y no me conocen, revisen mi perfil y mis aportes, tengo contenido de quest. Aunque algunas cosas son un poco viejas, otras ya no me gustan como están programadas, otras ya no me parecen que sea lo óptimo, bueno, ahí hay de todo y se puede aprender algo.
    Mi mayor aporte son mis dos tutoriales de quest en donde hago el evento de tanakas y la mazmorra infinita. Allí hago paso por paso esas quest y lo que se aprende es muy enriquecedor.
     
    Mi Discord es caanmasu
  16. Me Gusta
    Marcos Pinheiro reacted to caanmasu in El proyecto más avanzado de base limpia que existe   
    ¡Post actualizado!
     
    Ahora voy por la V1.10.
    El enfoque de la V1.10 son las quest, que es mi fuerte, así que va a ser una versión bastante bien trabajada, aunque eso sí, no daré muchos detalles para no saturar con información. Los pequeños detalles se volverán grandes con el tiempo...
     
     
  17. Me Gusta
    Marcos Pinheiro reacted to caanmasu in El proyecto más avanzado de base limpia que existe   
    Proyecto avanzado de base limpia


    Hola
    Este es un proyecto que llevo un mes desarrollando y quiero mostrarles los cambios realizados.
    Mi objetivo ahora es mostrar estos cambios. Aún no he pensado en negociarlos. Quiero que me den su punto de vista por privado para ver qué se le puede seguir mejorando, teniendo en cuenta que estos files son Marty 5.7 y el objetivo es mejorarlo aún más, conservando su esencia de limpio, sin meter sistemas.
    Quiero decir, esta base es para empezar a "meter sistemas", tal como hace Marty. No es una base para abrir en poco tiempo. Por lo tanto, no encontrarás sistemas como tienda offline, ItemShop, cube renewal, won, gaya, wikipedia, switchbot, aura, quest category, inventario especial, buscador de objetos, render target, etc. Tampoco modelos de skins sacados de alguna parte. Esto lo puedo llamar una "versión mejorada" de Marty Sama.
    Quiero que el proyecto tenga muchas comodidades que deberían estar en cualquier base limpia.

    Hasta el momento la versión actual es la 1.8, y tengo pensado sacar más versiones.
    Este proyecto puede ser la base de los servidores de ahora en adelante.

    También se está trabajando en una base derivada de esta, para meter sistemas y dejarla lista al público.

    Escríbeme al Discord, soy caanmasu.


    Notas del parche:
    V1.0:
    - motor de base de datos actualizado a MariaDB
    - eliminado ENABLE_LOCALE_EX. Este define sirve para extender algunos archivos de textos pero había desorden en el cliente. Se han eliminado y se ha puesto su contenido en sus respectivos archivos.
    - eliminado ENABLE_LOAD_ITEM_LIST_FROM_ROOT. item_list.txt ahora se carga en locale/common
    - eliminados los archivos txt del locale (en cada idioma) que no se usan.
    - todos los archivos que son comunes se han puesto en un nuevo .eix llamado locale_common. Se han movido allí archivos idénticos en cada idioma, logrando así optimizar mucho más el cliente. Todos los locales comprimidos pesan ahora 11 MB. Antes pesaban 140 MB.
    - añadida la directiva LTCG en el proyecto UserInterface para optimizar la generación del binario en la fase de compilación.
    - el locale fue dividido en tres archivos: locale, locale_common y locale_proto
    - los parches como special_patch_ex, special_patch_animation, special_patch_common fueron movidos de nuevo a su carpeta padre
    - agregada una carpeta en la raíz de repositorio llamada "locale multilanguage"
    - se ha actualizado el proto a la nueva estructura oficial v.23.1.4
    - añadidos los protos txt del oficial en share/conf/proto multilang
    - extensión de sockets de 3 a 6
    V1.1:
    - removido ENABLE_LIMIT_TIME (código muerto de source server)
    - removido login sim (código muerto de source server)
    - removido FileMonitor (código muerto de source server)
    - removido china intoxication event (código muerto de source server)
    - removido roulette (código muerto de source server)
    - removido __FISHING_MAIN__ (código muerto de source server)
    - removido USE_STACKTRACE (código muerto de source server)
    - fix core crash en questlua_npc.cpp, se valida puntero de npc
    - removido empire_text_convert del source server. Se utilizaba para convertir los textos entre personajes de diferente reino según el nivel de habilidad de las lingüísticas.
    - removido PythonNetworkDatagram (código muerto del source client)
    - removido GAIDEN (código muerto del source client)
    - removido CHECK_LOD (código muerto del source client)
    - removido _TEST (código muerto del source client)
    - removido DYNAMIC_POOL_STRICT (código muerto del source client)
    - removido CHECKSUM_CHECK_MD5 (código muerto del source client)
    - removido __RENDER_SLOT_AREA__ (código muerto del source client)
    - removido __UNITTEST__ (código muerto del source client)
    - removido CHECK_LATEST_DATA_FILES (código muerto del source client)
    - removido ATTACK_TIME_LOG (código muerto del source client)
    - removido ENABLE_DAEMONPROTECTION (código muerto del source client)
    - removido g_create_position_canada (código muerto del source server)
    - fix: ENABLE_MOUNT_COSTUME_EX_SYSTEM, las monturas ya no retroceden
    - fix: en una guerra de gremios ya no se puede eliminar el gremio si hay una guerra en curso
    - FREEZE_WHEN_DRAGGING_SCREEN_FIX: al arrastrar la ventana del juego ya no se congela la pantalla
    - __BL_SAVE_CAMERA_MODE__: el estado de cámara cercana/lejana ya se guarda
    - eliminadas las tablas de la base de datos log: GameTimeLog, dragon_slay_log, hack_crc_log, hackshield_log, invalid_server_log, pcbang_loginlog, vcard_log.
    - eliminadas las tablas de la base de datos account: block_exception, iptocountry, string
    - eliminadas las tablas de la base de datos player: pcbang_ip, sms_pool
    - "Cannot find item by 0" fix. Esto ocurría cuando se eliminaba un ítem de item_proto.txt y existe ese ítem en la tabla player.item
    - fix: cuando se elimina dinámicamente instancias character, no tenía en cuenta los metines.
    - fix leak: en CSpeedTreeForest::GetMainTree. Si no se carga el tree, asigna nulo el puntero
    - fix: el cursor de la rotación de la cámara ya no se queda en la ventaja del juego cuando se cambia de ventana
    - fix: __ENABLE_SHAMAN_ATTACK_FIX__, la chamana no sincronizaba bien los ataques cuando golpea, es decir, de cada dos golpes, solo uno hace daño
    - fix: ahora valida la monta a caballo cuando se va a minar
    - fix: aura de espada y hoja encantada no se ejecutan cuando no hay arma puesta
    - fix: cuando se hace kill en libre, la duración del nombre café pasa de 30 a 60
    - fix: si un personaje transformado de alguna manera utiliza una habilidad, no hará daño
    - fix: cambiada la errada fórmula de críticos
    - eliminada la reducción de daño por invasión de reino
    - fix: cuando muere un personaje con estola equipada se ve la estola en una posición extraña
    - fix: cuando muere un personaje, ahora se le quitan los efectos negativos
    - fix: cuando un personaje mata a otro en la guerra de reinos, no cuenta el punto si tiene la misma IP
    - fix: validaciones con algunos punteros para evitar core crash
    - mejorada la forma como se ordena el ranking de gremios en el Guardián
    - cuando el líder vaya a entrar a guerra, ya no le pide confirmación
    - fix: en cube, si uno de los objetos necesarios lo tiene equipado el personaje, lo omite
    - fix: para prevenir errores, ahora el servidor no encenderá si hay un vnum inexistente en cube.txt
    - fix leak: buf.reset() en SECTREE_MANAGER::SendNPCPosition
    - fix: al desmontar, ahora actualiza los puntos de exp, yang, estamina, etc. y se repara el bug de HP y SP.
    - removido __20040725_CAMERA_WORK__ (código muerto del source client)
    - @fixme1000 (src server): cuando una quest termina de ejecutarse, deselecciona el ítem que haya tenido seleccionado
    - @fixme1001 (src server): agregado la omisión de puertas (ya había metines) en CHARACTER::SetPosition. Los objetos estáticos no tienen position como "quedarse de pie", "montar", "en pelea", "pescando", etc.
    - @fixme1002 (src server): para cambiar de reino ahora automáticamente el personaje se sale del grupo para evitar errores
    - @fixme1003 (src server): no se podrá usar emociones mientras el personaje se mueve o ataca
    - @fixme1004 (src server): agregadas algunas habilidades pasivas que hacía falta en CHARACTER::CanUseSkill
    - @fixme1005 (src server): espíritu de la llama en el caballo ya hace daño
    - @fixme1006 (src server): cuando el ninja se hace invisible, los monstruos agresivos lo ignoran
    - @fixme1007 (src server): cuando no hay bonus en la tabla item_attr_rare, el servidor no iniciaba
    - @fixme1008 (src server): cuando un GM daba rango con set align, se le cambiaba a sí mismo
    - @fixme1009 (src server): cuando se cambia de habilidades no se le quitaban los efectos buenos
    - @fixme1010 (src server): los personajes en modo espectador ya no recibirán daño
    - @fixme1011 (src server): cuando un personaje se monta en una montura o caballo, se activa el AFFECT_MOUNT; si se baja de ella o se desconecta, se elimina el AFFECT_MOUNT. Al eliminarse el AFFECT_MOUNT, solo actualizará el packet y no calculará de nuevo los puntos, esto previene el retroceso de la montura.
    - @fixme1012 (src server): pc.select_vid con validación de puntero en ch para evitar core crash
    - @fixme1013 (src server): no había validación de longitud del nombre del lado del servidor
    - @fixme1014 (src server): cabo de valor aumenta de 50% a 100% probabilidades de atracción y el rango pasa de 50 a 100 de distancia.
    - @fixme1015 (src server): tipo de guerra -1 corregido
    - @fixme1016 (src server): puntero no eliminado (fuga de memoria) en el almacén
    - @fixme1017 (src server): los monstruos no se volverán agresivos cuando tengan veneno o sangrado
    - @fixme1018 (src server): puntero no eliminado (fuga de memoria) en las tiendas de NPC
    - @fixme1019 (src server): al obtener el vid del líder del grupo desde lua, ahora se valida si existe el grupo para evitar core crash
    - @fixme1020 (src server): al usar la función de buscar un personaje por su nombre, ya no distingue entre mayúsculas y minúsculas
    - @fixme1021 (src server): espíritu de la llama agregado dentro de RemoveGoodAffect
    - @fixme1022 (src server): validación de name y arg en clear_server_timer
    - @fixme1023 (src server): un objeto de object_proto si está ubicado en un mapa que no existe lo ignorará
    - ENABLE_CPP_PSM: la carga de modelos y efectos pasa del pack del cliente al binario. Como resultado, la velocidad del cliente es mucho mayor
    - CPP_PSM_LOADING (constInfo): si está activo, utilizará la imagen de carga especial sin fondo. Si está inactivo, utilizará la misma imagen de carga habitual, aquella que ocupa toda la pantalla
    - CPP_PSM_LOADING_GAGE (constInfo): si está activo, utilizará la barra de carga en la pantalla de carga, si no, se eliminará completamente. Esto solo funciona cuando CPP_PSM_LOADING está inactivo, haciendo que la pantalla de carga sea una imagen completa y se aprecie mejor.
    - @fixme1000 (src client): eliminada la bandera de reino en NPCs y pets que se muestra cuando el personaje es GM
    - ENABLE_FIX_MOBS_LAG: disminuye el lag (fps) drásticamente cuando hay muchos monstruos
    - eliminadas las pociones que recibe el personaje cuando sube un step (25% de su nivel)
    - fix: StripColor: cuando se hacía un anuncio en el juego con color, se mostraba el código del color
    - un avance de la herramienta Py Tools. Se agregaron archivos con valores de los protos que no quedan guardados cuando se descompila el proto oficial.
    - fix: la velocidad de la ninja al lanzar flechas era mucho mayor que la del ninja (hombre). Ahora el ninja hombre tiene la misma velocidad que la ninja al lanzar flechas.
    - @fixme1024 (src server): curación y disipar hace mucho lag cuando dos o más personajes lanzan la habilidad al mismo tiempo
    - @fixme1002 (src client): no había sonido luego de teletransportarse
    - @fixme1025 (src server): no había música en mazmorras
    - @fixme1026 (src server): los objetos con tiempo de expiración ahora seguirán corriendo el tiempo cuando se guarden en el almacén
    - @fixme1027 (src server): los monstruos agresivos no podrán quedarse en una zona de paz como las plazas
    - @fixme1028 (src server): al recibir veneno o sangrado y se cambia de personaje, el efecto se quitaba
    - BL_SORT_LASTPLAYTIME: ordena los personajes en modo descendente de tiempo de juego en la ventana de seleccionar personaje
    - agregada la quest function pc.go(x, y)
    - BL_OFFLINE_MESSAGE: cuando un personaje recibe mensajes y está desconectado, se guardarán en caché del servidor hasta que el personaje vuelva a conectarse. Al guardarse el mensaje el caché, si el servidor se reinicia, estos mensajes se eliminarán.
    V1.2:
    - SKILL_COOLTIME_UPDATE: cuando un personaje muere, la carga de habilidades se reinicia
    - LINK_IN_CHAT: se podrá copiar y pegar un link, y a su vez abrir el link desde el juego
    - un personaje cuando escriba por Llamar, aparecerá [MP] donde al hacer clic, se abrirá la ventana de chat con ese personaje
    - removido el código de billing (src server). Es un código que fue usado para el login.
    - removido el código del sistema de monarca (src server)
    - removido el código de threeway_war (guerra de reinos, src server) o también conocido como forked road
    - el tiempo de espera mientras cargan las letras en la ventana de película (quest) pasa de 10 a 0.
    - @fixme1002 (src client): las texturas se difuminaban cuando se abría el cliente en modo administrador (todos los clientes abren con administrador)
    - @fixme1003 (src client): al golpear a un metin no hace motion de daño
    - NORMAL_ROTATION_SPEED 2400.0f: la velocidad de rotación por defecto pasa de 1200 a 2400
    - MOUNT_ROTATION_SPEED 1200.0f: la velocidad de rotación del caballo pasa de 300 a 1200
    - MULTIPLE_DAMAGES: agregados los daños múltiles para jugadores, es decir, si un personaje ataca a otros dos o más al mismo tiempo, se mostrará el daño causado en cada uno. No fue puesto en montruos para evitar lag y es innecesario.
    - BLOCK_AUTO_ATTACK_PLAYER: no se podrá usar ataque automático en jugadores
    - ENABLE_EMOTION_HIDE_WEAPON: cuando se ejecuta una emoción mutua, se esconderá el arma
    - eliminado de la base de datos account las tablas: GameTime, GameTimeIP, GameTimeLog
    - ENABLE_MESSENGER_TEAM: se mostrará la lista de GMs en el panel de amigos
    - CROSS_CHANNEL_FRIEND_REQUEST: se habilita agregar amigos en diferentes canales y cores
    - ENABLE_IGNORE_LOWER_BUFFS: las auras dadas en un personaje que ya tiene auras, se omitirán si sus valores son menores. Resuelto el bug con la habilidad Remolinos, solo tomaba el primer bonus.
    - __IMPROVED_LOGOUT_POINTS__: cuando un personaje se desconecta, se actualiza el tiempo de juego y stats
    - removido el código de candidate (monarca) del cliente
    - @fixme1029 (src server): resuelto el bug "SYSERR: operator(): CFuncShoot: I don't know this type [107] of range attack.". La Llamada del relámpago hace un ataque tipo shoot desde skill_proto pero en server no lo reconoce
    - @fixme1030 (src server): resuelto el error "DragonLair: Dragon killed by nobody". Siempre aparece si el personaje que mató al dragón no tiene gremio. Esto no tiene sentido.
    - @fixme1031 (src server): cuando el daño recibido es menor a 0, ya no lo muestra en el syserr.
    - YANG_CHAT: agregada una ventana de yang recibido que se puede mostrar y ocultar.
    - @fixme1033 (src server): se envían 3 parámetros en el string pero se esperan 4
    - @fixme1034 (src server): marca como error cuando un personaje llega a tener 50 puntos en robo de HP o SP. Hay un límite que es 50 y ese límite se mantiene
    - @fixme1035 (src server): no es un error, avisa exceso de límite de los bonus MALL_ATTBONUS y MALL_DEFBONUS cuando excede los 50 puntos.
    - @fixme1036 (src server): no es un error, avisa exceso del límite de los bonus premium (MALL) o ataque físico mágico % cuando excede de 100 puntos
    - @fixme1037 (src server): no es un error, avisa exceso del límite del bonus POTION cuando supera los 100 puntos
    - __BL_PARTY_POSITION__: en un grupo se podrán ver las posiciones de los integrantes en el mapa grande
    - ENABLE_INVISIBLE_WITHOUT_COLLISIONS: cuando el personaje es invisible (GM) o tiene Stealth activado, podrá atravesar monstruos y jugadores
    - ENABLE_PLUS_ICON_ITEM: los equipamientos de refinamiento (+0, +1, +2, ..., +9) mostrarán el nivel de refinamiento en el ícono
    - TOOLTIP_IMAGE_RACES: en la ventana de los ítems al pasar el cursor, ya no aparecerá en texto las razas que puede ser equipado sino se usarán emojis
    - __BL_CLEAR_CHAT__: un botón en el chat general para vaciar la conversación
    - flag block_hp_potion en dungeon para bloquear recuperación de HP
    - ENABLE_GUILD_LEADER_GRADE_NAME: muestra arriba de la cabeza del personaje si es el líder del gremio o la mano derecha (comandante)
    - ENABLE_DATETIME_UNDER_MINIMAP: muestra la hora del servidor debajo del minimapa
    - __BL_SAFEBOX_MONEY__: sistema que almacena el yang en el almacén
    - ENABLE_REFINE_PCT = True: habilito que se muestre la probabilidad de éxito en el refinamiento
    - SHOW_REFINE_ITEM_DESC: muestra el tooltip con la descripción del objeto que se necesita en el refinamiento
    - ITEM_CHECKINOUT_UPDATE: sistema que permite mover un objeto de un inventario a otro con un solo click, por ejemplo, del inventario al almacén y viceversa. Esta es la alternativa a arrastrar los objetos.
    - ENABLE_AUTO_REFINE: da la opción de cerrar o no, la ventana de refinamiento para evitar arrastrar cada vez el objeto que se quiere mejorar
    V1.3:
    - REMOVE_SAFEZONE_COLLISION: elimina la colisión con npcs y jugadores en zonas seguras como plazas
    - ENABLE_NO_CLEAR_BUFF_WHEN_MONSTER_KILL: cuando un personaje muere, volverá a tener sus efectos positivos. Por ejemplo, aura de espada, bendición, etc.
    - ENABLE_TAB_NEXT_TARGET: característica del servidor oficial que permite seleccionar un siguiente monstruo al presionar la tecla TAB
    - ENABLE_EMPIRE_FLAG: las banderas de reino aparecen en el chat de Llamar
    - removido el código de monarca (src client)
    - ENABLE_FOG_FIX: guarda el estado de la niebla y se puede elegir entre encendido y apagado
    - ENABLE_TEAM_GAMEMASTER: aparecerá en color rojo [Team] en vez del nivel, en los personajes GM
    - "Yang infinito", se ha cambiado el tipo de dato del yang de DWORD a int64_t
    - eliminado de la base de datos player las tablas: monarch, monarch_candidacy, monarch_election
    - ENABLE_SWAP_SYSTEM: al poner un objeto sobre otro, intercambiarán su posición
    - @fixme1039 (src server): game_drop_item y game_drop_item_with_ownership, el objeto cae debajo del personaje y no del monstruo
    - ENABLE_AUTOSTACK_EXCHANGE: al hacer un intercambio, se acumularán los ítems con FLAG_STACK automáticamente
    - @fixme1040 (src server): no permitía comprar un ítem en tienda que cuesta 0 yang
    - ENABLE_QUICK_SELL: al abrir una tienda de NPC, permitirá vender rápido presionando la tecla shift + click en los objetos. No aparecerá diálogo de confirmación de la venta
    - WJ_ENABLE_TRADABLE_ICON: al abrir una ventana de intercambio (almacén, shop, comercio, etc) mostrará un fondo con transparencia blanca en el ícono que no se puede intercambiar, y mostrará en rojo el ítem que ya se está intercambiando
    - ENABLE_ANTIFLAG_TOOLTIP: muestra en tooltip con emojis si el ítem es comerciable, se puede almacenar, se puede tirar, etc.
    - agregada la función say_color en questlib.lua
    - ENABLE_MESSENGER_BLOCK: permite bloquear a un personaje y aparecerá en la lista de messenger. El bloqueo es de susurros, comercio, emociones, etc.
    - __VIEW_TARGET_DECIMAL_HP__: muestra el valor de la vida en el target. Antes aparecía solo la barra de vida.
    V1.4:
    - actualizado gen_settings: PROTO_FROM_DB = false, MIRROR2DB = true
    - @fixme1041 (src server): antihack de cabos de valor
    - @fixme1042 (src server): en el nivel máximo, el personaje podrá llegar al 50% de la exp. Esto es necesario para pasar de Hidra a Conqueror
    - @fixme1043 (src server): se asegura que no se pueda recoger objetos estando muerto
    - @fixme1044 (src server): en la función FN_is_battle_zone había un error en un map index
    - @fixme1045 (src server): cuando se abría el almacén y se arrastraba un objeto equipado, iba al almacén directamente
    - @fixme1046 (src server): en grupo, cuando un compañero recoja ítems de otro, se acumularán en el inventario
    - @fixme1047 (src server): un GM en modo invisible se podrá en modo observador (no test server)
    - @fixme1048 (src server): en la función IS_MONKEY_DUNGEON hacía falta metin2_map_monkey_dungeon
    - @fixme1049 (src server): en la función CHARACTER::SetParty se valida que si el personaje no tiene grupo, elimine el puntero de la mazmorra que tenga
    - @fixme1050 (src server): ahora permite rocíos en el cinturón
    - @fixme1051 (src server): si el personaje se puede mover y está muerto, se valida
    - @fixme1052 (src server): evita el bot de minería no permitiendo picar a cierta distancia en adelante
    - @fixme1053 (src server): al cambiar de reino actualiza el packet y de esta manera se evita que tengan que cambiar de personaje para que surjan los cambios
    - @fixme1054 (src server): no se permitirá stackear objetos que se están intercambiando
    - @fixme1055 (src server): si el personaje está montado y se intenta montar de nuevo, retornará
    - @fixme1056 (src server): no se podrá usar el ramo de flores mientras está montado
    - @fixme1057 (src server): validación de ataque en modo observador
    - @fixme1058 (src server): otra validación de ataque en modo observador
    - @fixme1059 (src server): evita un tipo común de inyecciones SQL
    - @fixme1060 (src server): evita que un boss empuje y bugee en las paredes
    - @fixme1061 (src server): valida del lado del servidor la restricción de nivel al crear un gremio
    - @fixme1062 (src server): cuando se recogen ítems, el trigger (when) pick reconoce los ítems tipo ITEM_QUEST pero no los que tienen el flag ITEM_FLAG_QUEST_USE y ITEM_FLAG_QUEST_USE_MULTIPLE
    - @fixme1063 (src server): fuga de memoria, un objeto se crea pero no se destruye. Cuando se recibe un ítem tipo BLEND (rocío), se crea un ítem en el lado del servidor para validar si el objeto se puede unir con los que tienen sus mismos sockets. En dado caso de que suceda, el stack aumenta en uno y así el personaje recibe el objeto, pero el puntero del ítem no se borra.
    - @fixme1064 (src server): DBManager.Quit(); no es necesario
    - @fixme1065 (src server): float CDungeon::GetUniqueHpPerc retorna bool pero debe retornar float
    - @fixme1066 (src server): si en una receta de cube no hay ítems necesarios, simplemente retornará y evitará un core crash
    - @fixme1067 (src server): cuando se usa el comando /state [nombre] y se quiere ver el estado de otro personaje, muestra si está en tienda NPC o en intercambio el personaje que usa el comando y no el objetivo.
    - @fixme1068 (src server): evita core crash en ITEM_MANAGER::CreateItem
    - @fixme1070 (src server): al construir en tierra de gremio, solo quitaba el yang y materiales cuando es test server o el personaje es GM
    - @fixme1071 (src server): en ALUA(pc_reset_status), hay un número erróneo
    - @fixme1072 (src server): no se podía refinar el pico si tenía la máxima cantidad de puntos
    - eliminada la tabla lotto_list de la base de datos player
    - flag de bloqueo de PvP en mapas. /e pvp_block_%d 1 (%d = map index)
    - SHOW_ITEM_COUNT_REFINE (constInfo): muestra en la ventana de refinamiento la cantidad de ítems disponibles del material, en color rojo si no tienes suficientes, en color amarillo si tiene la misma cantidad, y en color verde si tiene mayor cantidad
    - activados los bonus premium (bonus azules) en todos los personajes
    - reparado el nombre de las columnas de silver_expire (exp_expire) y gold_expire (item_drop_expire)
    - descomentado ENABLE_MAGIC_REDUCTION_SYSTEM
    - @warme1000 (src client): comentado "cannot find accumulation data in file '%s'"
    - agregado en README.md algunos vnum de mob_proto que deben cambiar o remover folder para que no aparezcan syserr en server
    - @fixme1074 (src server): el rango de ataque cuerpo a cuerpo era muy reducido. Por ejemplo, si un guerrero con lanza ataca desde cierta distancia y alcanza a pegarle al objetivo pero éste no recibe daño, es causa de esta distancia máxima. Se cambia de 300 a 420.
    - ENABLE_HWID_BAN: sistema de baneo por hardware, IP, ban a todas las cuentas asociadas y logs del comando.
    V1.5:
    - fix: escudo se intercambia con los objetos unique
    - ENABLE_AGGREGATE_MONSTER_EFFECT: efecto al usar cabo de valor para identificar bots y usos de cabo reales
    - BRAVE_CAPE_OFFICIAL: cabo de valor con la nueva estructura del servidor oficial
    - ENABLE_DISABLE_SOFTWARE_TILING: deshabilita la opción del sistema de modo CPU y GPU
    - ENABLE_IMPROVED_LOGOUT_POINTS: cuando se conecta o desconecta un personaje, los puntos se refrescan y se podrá ver correctamente la barra de stats
    - ENABLE_EFFECT_DAMAGE: muestra el tipo de daño en distintos colores. Verde para veneno, rosado para críticos, etc.
    - PAST_HEALTH_ON_TARGET (constInfo): muestra el daño causado al oponente en la barra de HP, se torna amarillo
    - ENABLE_EXTENDED_ALIGNMENT_SYSTEM: se distingue el rango entre personaje masculino y femenino
    - ENABLE_BADGE_NOTIFICATION_MANAGER: ícono de notificaciones. Cuando recibes un MP en el juego y tienes el cliente minimizado, se tornará anaranjado el ícono y mostrará la cantidad de mensajes sin leer.
    - ENABLE_FOV_OPTION: en opciones del sistema puedes elegir FoV 30 a 60. Campo de vista.
    - ENABLE_SHADOW_RENDER_QUALITY_OPTION: opciones del sistema sobre sombras como el servidor oficial. La calidad de sombras ha variado.
    - STATS_EACH_10: se podrá aumentar o disminuir los stats de 10 puntos en 10 puntos si se mantiene presionada la tecla Ctrl.
    - ENABLE_TELEPORT_TO_A_FRIEND: sistema que permite teletransportarse a un personaje desde la ventana de mensaje privado
    - ENABLE_P2P_WARP: permite teletransportar sin importar el canal y core
    - fix: la Llamada del relámpago del chamán de luz ahora no se corta la animación cuando realiza la habilidad
    V1.6:
    - removido el código basura de DragonLair (src server)
    - removido el código de danceevent (src server)
    - removido el código de HIGHSCORE (src server)
    - removido el código de Lock (src server)
    - removido el código de Castle/Siege (src server)
    - removido el archivo malloc_allocator.h (src server)
    - removido el código de over9refine (src server)
    - removido el código de profiler (src server)
    - removido el código de HEADER_GD_FLUSH_CACHE (src server)
    - agregado un define para elegir entre MySQL y MariaDB (RDBMS)
    - en spawn_mob0 se agrega el parámetro dir (opcional)
    - agregada una función para activar y desactivar el sistema táctico en ciertos mapas o en la mazmorra (solo la función, no el sistema completo)
    - agregada la función de lua pc_set_observer_mode 
    - ENABLE_EXTENDED_ITEMNAME_ON_GROUND: mejora la visibilidad de los objetos dropeados
    - ENABLE_MULTI_TEXTLINE: permite hacer saltos de línea en archivos de locale
    - ENABLE_SET_OUTLINE_COLOR: permite poner bordes resaltados a textos
    - __CHANNEL_STATUS_UPDATE__: muestra la cantidad de jugadores conectados por cada CH en el login
    - ENABLE_WHISPER_IN_CHAT: feature donde se puede enviar un MP por chat general, su uso es: @Nombre Texto
    - @fixme1004 (src client): aparece un error cuando se golpea en el caballo
    - USE_KMB_MONEY_FORMAT: una característica que permite escribir más fácil las cifras grandes de Yang en el input de comercio. Por ejemplo, al escribir "50kk", se ingresarán 50.000.000 de Yang.
    - ENABLE_DELETE_FRIEND_REFRESH_FIX: al eliminar a un jugador de la lista de amigos, se eliminará en ambos personajes al mismo tiempo.
    - @fixme1005 (src client): si no se encuentra el puntero de una textura, retornar
    - @fixme1006 (src client): al cambiar de personaje se actualizará los part (armadura, peinado y estola)
    - agregada la función de LUA pc_is_observer_mode
    - agregadas las funciones GetTextLength y GetTextWidth para usar en ui
    V1.7:
    - ENABLE_AFFECT_BUFF_REMOVE: característica que permite eliminar un affect shower (bonus de la izquierda superior) al hacer clic
    - ENABLE_AFFECT_POLYMORPH_REMOVE: característica que permite eliminar la transformación desde el affect shower
    - LIMIT_WINDOWS_RECT: las ventanas del juego no se saldrán de la pantalla
    - ENABLE_WHISPER_RENEWAL: en la ventana de mensaje privado aparecerá "Escribiendo..." como en las aplicaciones de mensajería instantánea
    - ENABLE_ITEM_COMMAND_STACK_UPDATE: al crear ítems con comando no se limitará al stack sino creará los necesarios hasta cumplir con la cantidad pedida
    - subida la calidad de las screenshot de 85% a 100%
    - @fixme1007: el valor del cooltime en el tooltip de las habilidades ahora se actualiza con la velocidad de hechizo
    - en el conteo de ítems en stack se cambió el tipo de dato de BYTE a uint16_t (WORD estandarizado), permitiendo así almacenar más ítems en un solo stack. Se establece en la configuración en 10 mil.
    - ENABLE_SKILL_FLAG_KNOCKBACK: flag de retroceso para el skill_proto
    - actualizado el skill_proto a la versión GF v26.0.6
    - rework del archivo costumewindow.py
    - ENABLE_ANTI_EXP: permite activar o desactivar modificar la experiencia. Creada una variable en constInfo para mostrar o no el ícono en la barra de tareas.
    - ENABLE_LIMIT_BONUS: limita un bonus a cierto valor definido en la macro. Usado para evitar abusos en PvP, por ejemplo, resistencia mágica, resistencia de media y habilidad, probabilidad de apagón y evasión sobre 100%.
    - ENABLE_PROTECT_TIME: sirve para que el jugador vuelva a realizar una tarea pasado ciertos segundos para evitar inundaciones de comandos al servidor. Utilizado en el anillo anti-exp, se debe esperar 3 segundos para volver a activar/desactivar.
    - warme1000: (desactivado) si un personaje mata a otro en una guerra de gremios y tienen la misma IP, no contará el punto. Esto se hizo para evitar el farmeo de puntos. Llevan varios personajes al gremio enemigo a dejarse matar por sus otros personajes. La razón por la que se ha deshabilitado es porque las direcciones IPv4 son escasas y muchas veces pueden encontrarse personajes con la misma IP que no tienen ninguna relación entre ellos.
    - fix: data truncated setAffectFlag para skill_proto.
    - ENABLE_LIMIT_MAX_HIT_SKILL_COUNT: personaliza la cantidad de objetivos a hacer daño con un golpe normal o habilidad. El valor para cada tipo se asignó 50.
    V1.8:
    - Py Tools: nuevo conjunto de herramientas útiles para automatizar edición de archivos
    - Py Tools: FolderToMobProto: programa que sirve para solucionar el bug de las monturas cuando son rápidas y no alcanza a cargar las entidades del mapa (mobs, npcs, jugadores, etc). La solución es agregar los folder a mob_proto.txt. Con este programa se realiza esta tarea en un segundo.
    - fix: organización y sincronización de item flags. Flags desde ITEM_FLAG_UNIQUE no funcionaban.
    - @fixme313 from Marty 5.9: char.cpp; fix for sync dc
    - fix: al atacar con giro de espada, deseo de vivir o pulso, empuja al enemigo y todos ven el empuje, menos el lanzador; el movimiento del enemigo se sincroniza dos segundos después. Se aplicó el flag KNOCKBACK a estas habilidades. Nota sobre el bug: estas habilidades empujan al enemigo, aunque algunas veces no lo hace. Cuando se realiza la habilidad, el lanzador no ve el empuje pero el enemigo sí. Al poner estas habilidades con knockback siempre empujarán y lo verán todos los personajes, aunque algunas veces (muy pocas) el empuje se dirige a otra dirección. Esta solución del knockback es mejor que dejar como estaba. Esto no es una solución absoluta.
    - compilación de qc. Este qc viene con un fix para que funcione en un when los retornos de textos que vienen de una tabla. Útil para multilenguaje. Ejemplo: when 20095.chat.locale_en[120] begin
    - fix qc: las quest no compilan cuando hay un apóstrofe o tildes y/o caracteres especiales en el último caracter de un texto en bruto (say y derivados) pero el compilador no anuncia sobre el error. Ahora anunciará el error.
    - fix: Disipar se vuelve ataque tipo MAGIC. Esta habilidad en el skill_proto es tipo NORMAL (no ataque). Una habilidad de ataque es uno de tres tipos, MELEE (físico en cuerpo a cuerpo), RANGE (físico a distancia) y MAGIC (mágico, sea a distancia o cuerpo a cuerpo). El bug que ocasiona el disipar en el juego es el abuso de daño al ser inmune a la resistencia mágica. Una vez se convierte en tipo mágico, la resistencia mágica disminuye su daño.
    - fix: el golpe de espada tiene un daño muy bajo respecto a las demás habilidades de su grupo. Esto es debido al tipo de ataque registrado en skill_proto. Se ha cambiado de MELEE a RANGE como debe ser.
    - fix: Syserr: Not a valid .WAV file: sound/pc2/assassin/bow/attack1.wav. Se ha renombrado del archivo de attack.wav a attack1.wav.
    - fix: texturas blancas en NPCs. Se han eliminado las carpetas monster y npc de season. Se ha actualizado el npclist.txt quitando las rutas de season.
    - @fixme1075: error de sincronización con habilidades de personajes con flag CRUSH. La habilidad afectada es Golpe de espada, muchas veces falla.
    - en skill.h se ordenó ESkillIndexes agregando comentarios para tener una referencia de las habilidades. Los nombres de variables son coreanos y no se entiende a qué habilidad pertenecen.
    - ENABLE_STACKABLES_STONES: fix de las piedras, ahora no elimina el stack cuando se pone una piedra (o varias en el mismo stack) para incrustar en un equipamento.
    - fix: no funcionaba bien el ordenamiento por nombre en shop table ex.
    - Py Tools: TransferValueProto: programa que sirve para agregar valores en los protos que no son guardados en el dump del oficial. Por ejemplo, las columnas de las skills en los monstruos no se pueden obtener del mob_proto.txt oficial. Se han extraído de un proto por db y el programa añade de nuevo estos datos en nuestro mob_proto.txt
    - mod1001 (binario): fuente de texto de susurro en GM cambiada de Italic a la fuente por defecto. La fuente itálica dificulta mucho la lectura en este caso.
    - update @fixme196 Item Move Exploit (Marty Sama)
    - update @fixme198 ITEM_QUEST not consumed with karma exploit (Marty Sama)
    - fix: un arma o armadura al utilizar piedras las guarda en socket0, 1 y 2. Si el objeto tiene limit de tiempo, el tiempo restante se guardará en un socket que ya está en uso para piedras. ENABLE_NO_MOUNT_CHECK server atk damage fix (Marty Sama)
    - @fixme1076: al matar monstruos, algunos salen corriendo hasta que desaparecen
    - max_hp y max_sp cambiado el tipo de dato a int64_t. El bug más conocido es el de la barra de HP en monstruos que se pone negra cuando el monstruo tiene más de 28 millones de vida.
    - ENABLE_APPLY_DAM_MAX_PERC: nuevo bonus. x% probabilidad de daño máximo. Funciona en básicos y en habilidad.

    V1.9:
    - DROP_ITEM_DESTROY_QUESTION: nuevo botón al intentar lanzar un objeto al suelo. Ahora se podrá tirar, destruir o cancelar.
    - eliminado el código de ignoreButton y reportViolentWhisperButton del root. Estos scripts no se usaron nunca.
    - __BL_MOUSE_WHEEL_TOP_WINDOW__: permite utilizar la rueda del ratón para poder desplazarse en una ventana que tiene scroll
    - ENABLE_NO_MALUS_JEONGWIHON: deshabilita los daños sufridos del berserk.
    - ENABLE_REVIVE_WITH_HALF_HP_IF_MONSTER_KILLED_YOU: cuando eres matado por un monstruo, revivirás con el 50% de la vida.
    - RENEWAL_DEAD_PACKET: al morir, aparecerá el tiempo restante para poder presionar el botón de revivir aquí o en la ciudad.
    - do_dgetf: comando que muestra los flags de una mazmorra
    - la cantidad de bonus permitida se ha expandido. El tipo de dato BYTE permitía hasta 127 bonus. Ahora se ha cambiado el tipo de dato a uint16_t (WORD), permitiendo así hasta 32768.
    - Py Tools: resurrection_vnum. Nuevo archivo que agregará los datos de la columna resurrection_vnum al mob_proto.txt automáticamente.
    - ENABLE_DETAILS_UI: tabla de bonus del servidor oficial.
    V1.10:
    - todas las quest se han eliminado
    - se ha hecho un rework de questlib. Todas las funciones se han optimizado, se ha eliminado código basura e inutilizable. Se ha extendido los índices de funciones.
    - se ha agregado constants.lua en quest. Este archivo contiene muchas variables útiles provenientes de enumeraciones en el código fuente del servidor
    - se ha agregado data.lua en quest. Este archivo contiene estructuras genéricas.
    - se ha incluido la 6° habilidad en guerrero y ninja para uso en quest.
    - se ha agregado utils.lua. Este archivo contiene funciones útiles genéricas.
    - se ha conservado GFquestlib.lua
    - mob_spawn_map: función en LUA que hace lo mismo que do_mob_map
    - PRIV_EMPIRE_MAX_VALUE: se ha establecido esta macro para limitar el valor de los rates. Había una inconsistencia en el código. Se estableció en 200 y puede aumentar hasta 1000.
    - los tanakas 5001 y 5004 se han comentado de los regen tipo 's' en los mapas.
    - se han separado los rows de las estructuras de las tablas en la carpeta sql.
    - quest basic: block_map.quest: devuelve al personaje a la ciudad si no cumple con cierto nivel al llegar a un mapa
    - quest basic: boss_notice.quest: al matar ciertos jefes se mostrará un anuncio del vencedor
    - quest basic: levelup_notice.quest: al subir ciertos niveles se mostrará un anuncio del personaje
    - quest: guild: alter_of_power.quest: los guardianes del altar permiten aumentar la capacidad del gremio
    - quest: guild: change_guild_master.quest: permite cambiar el líder de gremio
    - quest: guild: guild_building.quest: el agente de tierras que da el permiso de compra de la tierra
    - quest: guild: guild_building_melt.quest: alquimista del gremio
    - quest: guild: guild_building_npc.quest: herrero del gremio
    - quest: guild: guild_make.quest: fundar un gremio
    - quest: guild: guild_manage.quest: disolver y retirarse del gremio
    - quest: guild: guild_war_join.quest: unirse a una guerra de gremios
    - quest: guild: guild_war_observer.quest: unirse a una guerra de gremios en modo espectador
    - quest item: change_empire.quest: cambio de reino
    - quest item: change_name.quest: cambio de nombre
    - quest item: item_change_sex.quest: cambio de sexo
    - quest item: training_grandmaster_skill.quest: piedra alma sin diálogos para subir rápido las habilidades
    - quest npc: oldwoman: fortune_telling.quest: adivinar tu suerte
    - quest npc: oldwoman: marriage_manage.quest: casarse
    - quest npc: oldwoman: skill_reset2.quest: asigna el skill group a 0 (permite elegir de nuevo el grupo de habilidades)
    - quest npc: fisher.quest: tienda del pescador y mejora de la caña
    - quest npc: mining.quest: minería y abrir tienda del pico
    - quest npc: npc_talk.quest: diálogos casuales con NPCs
    - quest npc: shops.quest: NPCs de tienda con on_click = 2 (tipo quest)
    - quest system: acce.quest: combinación y absorción de estolas
    - quest system: cube.quest: crafteo
    - quest system: gameoption.quest: muestra en cada login las opciones bloqueadas de Opciones del juego
    - quest special: mastermind_game_LIB.lua: librería del juego de Mente maestra
    - quest mission: hunting: new_levelup.quest: misión de caza oficial
    - quest event: se ha creado un framework para administrar los eventos. Todos los eventos aparecerán en pergamino. Habrá un pergamino para GMs y otro para usuarios.
    - quest event: events: heroemedal: evento olímpico lanzado en 2012.
    - quest event: events: mapforbiddenempire: bloquea el acceso a los mapas a personajes de otros reinos. Si el personaje ya se encuentra en el mapa, al matar a un jugador se enviará a la ciudad.
    - quest event: events: mastermind: juego de Mente maestra
    - quest event: events: moonbox: evento de cajas Luz de Luna
    - quest event: events: rates: administración de los rates de forma muy amigable
    - quest event: events: specialboss: evento de jefes especial
    - quest event: events: tanaka: evento de tanakas

    Nota: Durante toda la fase de desarrollo se corrigieron todos los warnings en source server
     
    Bugs encontrados:
    - al sacar un libro con /book idx, salen nombres de otros libros pero sí se recibe el libro correcto
    - Camino pluma no funciona correctamente. Al actualizar el skill_proto, necesita un flag nuevo para implementar en el servidor.
    - en la fase de selección del reino no aparecen las descripción del reino seleccionado
    - ENABLE_TELEPORT_TO_A_FRIEND: 1. no se puede teletransportar hacia un jugador que se encuentra en otro core. 2. el botón de Teletransporte necesita volverse ícono, ocupa mucho espacio horizontal.
    - RENEWAL_DEAD_PACKET: los botones de revivir aquí y en la ciudad se les ha eliminado la opción de deshabilitar y habilitar debido a que no funcionaba Enable.
    - ENABLE_DETAILS_UI: 1. al teletransportarse por medio de pergamino teniendo la ventana de carácter abierta y la ventana de los bonus, al hacer login aparecerá la ventana de carácter pero internamente no es funcional. Se puede abrir otra ventana pero la anterior queda flotante e inútil. 2. Los tooltips de las descripciones de los bonus no se muestran. 3. Algunas veces la ventana no se enlaza con el botón vertical
     

    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
  18. Me Gusta
    Marcos Pinheiro reacted to 𝗔𝗿𝗲𝘀 in [Guía]Implementar Mobs y NPC   
    La verdad bro que te la sacastes, aunque te falto solo una cosilla. 

    Para el mob proto si usan txt deberan de buscar la celda Folder y hay deberan de declarar el nombre de la carpeta que se ubica en share/data/monster. Para asi evitar problemas de acummulation motlist o cualquier otro tipo de problemas.

    Y aca un pequeño consejo: Cuando saquen un mob o pet que no viene con la parte del servidor pueden usar el del cliente siempre y cuando quiten el msm, la textura y el gr2. "NUNCA METAN LA CARPETA DEL SERVIDOR CON ESOS ARCHIVOS YA QUE LE PUEDEN OCASIONAR ERRORES"

    Por tu parte Nazox maravillosa guia, mis mas sinceras felicitaciones.
  19. Gracias
    Marcos Pinheiro reacted to caanmasu in [Guía]Implementar Mobs y NPC   
    Las has roto tío!
    Muy buen aporte. Hay que revivir estas guías que han quedado muy atrás y siempre llega gente nueva a aprender esto de los servers.
     
    Algunos detalles que ignoran los nuevos (ha pasado muchas veces, incluso a mí):

    1. Los nombres de los archivos no pueden tener mayúsculas, ni siquiera las extensiones.
    Bien: bear.gr2
    Mal: bear.GR2
    Bien: bear.gr2
    Mal: Bear.gr2

    Adentro de los .msm y .msa no importa las mayúsculas en las rutas.

    2. Debe haber un salto de línea al final de npclist.txt

    3. Si van a manejar varios vnum en un solo folder:
    0 nombre_msm_1 nombre_carpeta 0 nombre_msm_2 nombre_carpeta vnum1 nombre_msm_1 vnum2 nombre_msm_2 Es la respuesta a la pregunta: por qué hay varios ceros en npclist?

    4. No se puede utilizar cualquier vnum para los mobs. Hay unos rangos.
    Los rangos se pueden definir en el binario en GameLib/RaceManager.cpp

    Al principio cuesta entender un poco el código pero al final es sencillo.

    5. Evita este error:
    Cuando pongas los archivos en data/monster y pruebes el monstruo en el juego, asegúrate de que no hayas afectado algunos monstruos. Hay un bug muy extraño que cuando pones archivos en monster, hay algunos monstruos que algunos te atacan y otros no. Para comprobar si tienes el bug, prueba con /ma 2104 5. Si todos los bichos te pegan, entonces no hubo bug. Si algunos se quedan quietos intentando pegarte pero no hacen nada, tienes el bug.
    Nunca he podido saber el origen de ese bug.

    6. Si tienes monturas que al ir rápido no se cargan a tiempo los monstruos, es porque no agregaste su folder en el mob_proto.

     
  20. Gracias
    Marcos Pinheiro reacted to Johan™ in [Release] Tabla de Montura   
    Bueno, después de mucho tiempo sin publicar nada, aquí un pequeño aporte (Como no tengo una montura de tabla en el oficial, desconozco de todas las características), pero me asegure de agregarle:
    Uso de habilidades normales Pegada como si estuvieras  sin la montura PD: Debido a los svfiles que uso no fue necesario actualizar alguna .quest, pero es posible que en su svfiles deba hacerlo.

    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.
  21. Me Gusta
    Marcos Pinheiro reacted to Kenshi Torres in Video tutorial como instalar la tienda offline   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  22. Me Gusta
    Marcos Pinheiro got a reaction from AincradOn in [SOLUCIONADO] PROBLEMA MySQL AL INICIAR SERVER   
    Falta la tabla Elendosv2 o la contraseña es incorrecta
  23. Gracias
    Marcos Pinheiro reacted to omeleteraton in Infinity dungeon (TUTORIAL) by caanmasu   
    Hola a todos
    Mi Discord es: caanmasu
    Les traigo mi segundo tutorial de quest en donde puedes mejorar tus habilidades en quest/lua (un poco de SQL también) hasta convertirte en un verdadero experto.
    Nota: en el archivo adjunto está el primer y segundo tutorial (idioma español e inglés)
    Este tutorial trata sobre una Mazmorra infinita.
    La dinámica de mis tutoriales es hacer una quest donde enseño punto por punto cómo la haría, y lo explico detalladamente.
    Si quieres saltarte el tutorial y solo utilizar la quest, eres libre de hacerlo, dejé una carpeta con los archivos para instalar.
    Debo advertir que solo proporciono código, no modelos. Utilizo modelos ya existentes del juego, en concreto, mapa de la torre de demonios, Reaper como jefe, perros como monstruos que hay que destruir, etc. Puedes utilizar la mazmorra con los modelos que quieras, así mejoras la experiencia del usuario. La mazmorra es personalizada, solo debes cambiar números.
    También debo advertir que la mazmorra no ha sido testeada con varios jugadores, aunque hice buenas pruebas con varios de mis personajes, las mejores pruebas se hacen con jugadores reales. En caso de que se encuentren bugs, reportarlos a mi Discord.
    Otra nota importante, si no lees el tutorial, hay datos adicionales de los que no te puedes perder, realmente son obligatorios. Debes ir al tutorial y al final encontrarás una sección llamada 'Datos adicionales:'. De verdad, no te lo puedes perder.
    El contenido de este tutorial es el siguiente:
    1. Mostrar un botón en el NPC
    2. Mostrar el botón del NPC solo cuando estemos en el mapa de afuera de la mazmorra
    3. Crear el primer salto a la mazmorra
    4. Crear el modo grupo
    5. Agregar algunas restricciones para la entrada
    6. Crear dos mecánicas de salas y hacerlas funcionar para que se elijan aleatoriamente
    7. Sacar al personaje de la mazmorra cuando muera
    8. Crear el registro del ranking
    9. Agregar retorno de mazmorra
    10. Mostrar el ranking
    11. Agregar un anuncio cuando alguien rompa un récord de piso
    12. Crear el modo espectador
    13. Aumentar la dificultad por cada piso
    14. Agregar registros/logs
    15. Crear las recompensas
    16. Crear 5 mecánicas de mazmorras
    17. Dinamizar las coordenadas base
    18. Agregar tiempo restante en cada piso
    19. Facilitar la entrada en personajes GMs
    20. Convertir textos a variables
    Algunos gifs:

    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.
    Cantidad de líneas de código:
    translate.lua: 48
    questlib.lua: 76
    quest_infinity_dungeon.sql: 9
    infinity_dungeon.quest: 167
    infinity_dungeon_lib.lua: 408
    infinity_dungeon_mission_lib.lua: 287
    infinity_dungeon_rewards.lua: 26
    Total: 1021 líneas

    Si te gustó la intención de este post puedes ayudarme con una reacción, así podrás darle más popularidad a éste y que sea más visitado para que más personas puedan acceder al conocimiento de quest/lua gratis y de la más alta calidad que jamás se ha visto.
    Alguna vez un conocido me dijo que no había suficiente documentación de quest para Metin2 y le di la razón. En ese tiempo sabía un poco de quest/lua pero me dije 'el conocimiento debe ser libre pero alguien debe proporcionarlo, sin ánimo de lucro' y no esperaba que iba a hacerlo yo. No me quería quedar solo con lo que sabía, tenía la necesidad de compartirlo para todos.
    Sobre mi conocimiento de quest/lua:
    Cuando conocí quest/lua, ya tenía experiencia base de programación en general. Aprendí quest/lua empíricamente viendo quest de otras personas, el código fuente de LUA en C++ sobre las funciones y el código fuente (binario) relacionado con los tokens de RAW TEXT, en ese orden. Podría decir que he visto y revisado miles de quest escritas por alemanes, españoles, ingleses, rumanos, turcos y otras nacionalidades. También he visto todos los niveles en quests escritas por otros. He creado muchas quest para clientes, de todo tipo de nacionalidades para todo tipo de servidores.
    En total he acumulado más de 10 mil horas de programación en quest/lua. He dedicado bastante tiempo de mi vida en esto. Soy una persona que no se queda con lo que sabe, sino que quiere extenderse más, así que investigué por mucho tiempo cómo mejorar la calidad de mi código y hasta el día de hoy lo pongo en práctica y es el pilar más importante de toda mi programación: calidad del código.
    Aprendí muchas estructuras de código de muchas quest hasta que creé mi propia estructura y también mis propias librerías. Cuando quest/lua se limita a lo que necesito, no tengo ninguna dificultad en modificar o crear funciones de LUA en C++, ya que esto forma parte también de quest.
    Hay mucho más sobre esto pero creo que es suficiente en este post.
    El día que me vaya, quedará por siempre (o hasta que muera Metin2 por completo) este conocimiento que será útil para mejorar la experiencia de los jugadores en servidores privados de Metin2. Si son shit server o no son ingleses me da igual.
    Si necesitas alguna ayuda puedes contactarme. Mi Discord es 'caanmasu'.
    Saludos a todos.

    Descarga:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  24. Me Gusta
    Marcos Pinheiro reacted to Frezi Op in ItemShop v3 Premium sin backdoor   
    Item shop V3 sin backdoors
    solo de favor les pediré que entren a mi web y voten por el servidor ; 

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Link de ItemShopDebes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
  25. Me Gusta
    Marcos Pinheiro reacted to SuperGamix in [FIX] Nivel al lado del personaje en tiempo real   
    Buenas! Estaba buscando fix para mis servefiles cuando encontré este que me pareció muy bueno, no se si esta posteado ya, si lo esta, pido que eliminen este post. 

    Es un fix muy fácil, solo necesitaremos el source del cliente, empecemos:
     
    ---Vamos a InstanceBase.cpp y aquí añadimos la siguiente función:   void CInstanceBase::SetLevel(DWORD lvl) {     m_dwLevel = lvl; }   ---Ahora, vamos a InstanceBase.h y buscamos:   protected:                    DWORD                    m_dwDuelMode;                    DWORD                    m_dwEmoticonTime;   ---Y agregamos esta debajo de esa:   public:                    DWORD GetLevel() const { return m_dwLevel; }                    void SetLevel(DWORD lvl);   --OJO: Cuida las tabs, guíate de las anteriores funciones   ---Ya falta poco, solo falta ir a PythonPlayer.cpp y buscar esta función:   CInstanceBase* pkPlayer = NEW_GetMainActorPtr();   ---Aqui encontraremos 2 lineas parecidas a estas:   if (pkPlayer) pkPlayer->UpdateTextTailLevel(lValue);   ---Cambiamos por estas o editamos hasta que estén así (Agregando el SetLevel):   if (pkPlayer)             {                 pkPlayer->UpdateTextTailLevel(lValue);                 pkPlayer->SetLevel(lValue);             }   _______________-------------------________________
    CREDITOS: Kind regards, Mind Rapist
    GRACIAS: WubService por traerlo, arreglarlo y traducir la guia

    No dejo fotos porque es un fix muy simple y se puede apreciar fácilmente, al menos a mi me funciono
×
×
  • Crear nuevo...