jaBote

Global Moderators
  • Content count

    2037
  • Joined

  • Last visited

  • Days Won

    42

Everything posted by jaBote

  1. * jaBote switches on @Ind mode * rAthena to Hercules database converters Hello~! What?! I've observed a big rise of rAthena to Hercules database conversion requests this week, so I've just revised again the converters I made before and will be releasing on the repository so that people can find them more easily.What does that do? We have two new .SQL files on our repository that make the conversion easy. One is for applying on the main ragnarok table (sql-files/rathena-main-upgrade.sql) and the other is for the logs one (sql-files/rathena-logs-upgrade.sql).Please remember to make a backup prior to converting the database, just in case something goes wrong. This is meant to convert a fully upgraded rAthena to a fully upgraded Hercules. If you have some uninstalled rAthena upgrades please install them first. Avoid using it if there has been an upgrade posted in rAthena newer than the date of the converter or, at least, you didn't apply it or know how to undo the changes (remember that main.sql is usually fully upgraded both in Hercules and in rAthena). Some data (especially the data we don't use here on Hercules may be lost on the conversion). We'll not be resposible for this. How does it work? Plain and simple: just load them on the respective databases you have in rAthena, as if they were the original main.sql or logs.sql. Obviously enough, they won't work if you don't have CREATE, ALTER, INDEX and DROP permissions (and maybe others too) for the user(s) you'll be running this. These converters will NOT work if you changed the table names. Special thanks rAthena staff for their database structure and upgrades. Hercules staff for the database structure and upgrades. All the users that requested the converters in their respective topics. for suggesting this to be committed to the repository. @Haru for last minute corrections. Disclaimer As I warned before, there may be some intended or unintended data loss. Please make a backup before applying. This may get outdated quite quicly without me noticing about that. If that's so, please make a pull request or ping me to update the converter when I have time. I've avoided to name the files as "upgrades" here on the topic, but I've named them like that to make them have the name structure as the eAthena upgrade. This is NOT an offense to rAthena staff by any means. People are requesting this, so I made the conversion process easy for them, much like rAthena made a converter from eAthena and nobody got offended. Just that. Links~u! Main database converter commit. Logs database converter commit. * jaBote switches off @Ind mode *
  2. Uf, las cosas de cliente no son lo mío, aunque creo recordar hace años que había problemas para meter mobs custom. Si te sigue saliendo el mismo error que el primer post, ¿estás seguro de que tienes en tu data el sprite del nuevo mob? Si no siempre dará error. En caso de que quieras utilizar el sprite de otro mob ya hecho te recomiendo "engañar" al cliente con el fichero db/mob_avail.txt de tu emulador. Muevo este tema a la sección de cliente, a ver si tienes más suerte.
  3. Elegir episodios no es posible en Hercules (ni en ningún otro emulador que conozca salvo Cronus, que está en Portugués y presenta otros problemas). No obstante, poner el emulador en modo pre-renewal (últimas novedades antes de instaurar Renewal) es posible, y más bien sencillo: Entra a tu copia local en src/config/renewal.h y observa que hay una serie de líneas que rezan así: /** * Renewal full toggle switch. * * Uncomment this line to disable all of the below settings at once. * Note: in UNIX builds, this can be easily done without touching this * line, by passing --disable-renewal to the configure script: * ./configure --disable-renewal */ //#define DISABLE_RENEWAL Lo que tienes que hacer (que entenderás si lees el inglés del texto anterior) es quitar las dos barras (//) en el #define DISABLE_RENEWAL, dejando el texto así: #define DISABLE_RENEWAL Una vez hecho esto, guarda el archivo y recompila el emulador. Debería ejecutarse en modo pre-renewal a partir de ese instante. Te recomiendo que en todo caso empieces una comunidad desde cero en modo pre-renewal y que no vayas cambiando de renewal a pre-renewal a las buenas con una base de datos en funcionamiento. La compatibilidad con modos pre-renewal es limitada, pero hasta donde pude comprobar funciona de forma apropiada. Un saludo.
  4. Hola. Me alegro de que hayas podido arreglar el problema por tu cuenta y siento no haber podido ayudar. ¿Podrías confirmar si se trata de un bug de nuestro emulador? En caso afirmativo, serías tan amable de escribir un reporte de error en GitHub (preferiblemente en inglés)? ¿Podrías comentar la solución para que otros miembros puedan tener acceso a la información? La comunidad depende mucho de ayuda de la propia comunidad, y mi conocimiento actual debido a los avances del emulador que no he podido seguir está volviéndose cada vez más limitado. Muchas gracias por tu atención.
  5. No estoy muy puesto en clientes actuales, aunque la verdad es que nunca se me dieron bien los temas de cliente . Que sepa cuando me tuve que comenzar a ausentar en estos temas del RO, por desgracia un accesorio no podía tener visibilidad física en un sprite del juego. Por favor, que alguien me corrija en caso de que ahora sí sea posible.
  6. ¿Has probado a ejecutarlo con derechos de administrador?
  7. I do support each and every of the points Jman posted. I do also support this All hail our new Development Manager!
  8. Aunque en el momento de la publicación original de este tema solo tengamos 3 guías disponibles, considero necesario ser diligente y empezar a organizarlas antes de que la sección crezca y se haga más complicado. Pondré en la lista todas las guías que se publiquen en el presente foro, salvo que sean demasiado específicas o no la considere adecuada. ¿Estás pensando en redactar o ya estás creando una guía en español y quieres que se sepa? No hay problema, simplemente comenta en este tema y añadiré tu guía al índice. De esta forma incluso será más fácil una organización general, para que no trabajen dos personas en guías con un mismo propósito, o bien para unir esfuerzos en la misma guía. Solamente pido honestidad: las guías que se diga están en proyecto o redacción deberían terminarse para evitar problemas. En caso de desconocer el estado de una guía en proyecto o desarrollo durante un tiempo razonable, será eliminada del índice. La categorización de las guías es totalmente manual, por tanto puede no ser óptima o incluso puede tener equivocaciones. Si crees que hay una equivocación o que puedes mejorar la distribución actual de guías, házmelo saber. Para evitar hacer de este tema un desorden, toda respuesta a este tema será eliminada tras la realización por mi parte de la petición de inclusión o haber leído y acatado (o desestimado) por mi parte la petición de reorganización de las guías. Sin más (ya me he extendido suficiente) podemos dar comienzo al índice de guías. Categorías actuales de guías: Manejo del sistema de control de versiones (SVN o Git). Instalación y compilación de Hercules. Configuración básica del servidor. Índice de guías: Manejo del sistema de control de versiones (SVN o Git): Obtener Hercules, por @jaBote. Hacer Pull Requests en Hercules, por @jaBote. Instalación y compilación de Hercules: Instalar y compilar Hercules en Ubuntu, por @txandy Compilar Hercules en Windows, por @jaBote. Puesta en funcionamiento y configuraciones básicas de Hercules (en proyecto), por @jaBote. Configuración básica del servidor: Desactivar Renewal (y otras configuraciones "ocultas"), por @jaBote. Scripting: [scripting Basico] Video-Guias de M45T3R, por @M45T3R. Esperamos que este índice ayude a mejorar la organización de este foro. Por el momento disponemos de un solo foro para todas las guías, pero una categorización eficiente de las mismas puede hacer mucho para que la información se extienda lo máximo posible. Mi intención con las guías es que sean temáticas y estén dirigidas a un propósito particular para que, de manera similar a como funciona una wiki (salvo que no es posible editar las guías a menos que lo haga un moderador), para las guías más generales (por ejemplo, para la creación de un servidor de RO al completo) se pueda enlazar a las guías específicas debido a los múltiples beneficios que ello reporta: las propias guías serán más pequeñas, lo que hará que sean más fácilmente legibles y facilita el posicionamiento en las mismas donde interese al lector. El mayor inconveniente que esto proporciona es que el lector tenga que cargar varias guías.
  9. El plugin se encuentra desactualizado y no funciona con el gestor de plugins actual de Hercules. Esto ocurre porque el motor de plugins fue actualizado y ha habido una serie de cambios estructurales en el mismo que hacen que ese plugin no funcione actualmente. Esperemos a ver si @@Mhalicot se entera de que su plugin se encuentra desactualizado y puede actualizarlo. O puedes intentar actualizarlo tú, yo lo haría si encuentro un rato largo que echarle. Un saludo.
  10. ¡Hola! En esta guía vamos a tratar de forma rápida una pregunta muy frecuente: cómo activar y desactivar Renewal, y ligeramente se tratarán otras configuraciones más o menos igual de "ocultas" que funcionan de forma similar. No se entrará en el detalle de para qué sirve cada configuración: solo se indicará el camino y deberá ser el lector quien se enfrente a ellas, en inglés. Su lectura es recomendada a quien ignore la existencia de estas configuraciones, aunque no pretenda desactivar Renewal. Una vez se ha obtenido Hercules y antes de su compilación y puesta en marcha (guía aún en proyecto y redacción), es posible tocar unas configuraciones que no están tan a la vista que las de la carpeta /conf (donde están todas las configuraciones normales) pero que sí afectan al resultado de la compilación (es decir, para alterarlas efectivamente es necesario recompilar el emulador): se trata de la carpeta /src/config. ¿Qué hay en la carpeta /src/config que la hace tan importante? Pues, a fecha de publicación de la presente guía, esto: Todos los ficheros de esta carpeta contienen configuraciones importantes, salvo por el momento const.h. Todos siguen una estructura parecida: al abrirlo se ven mucho texto y algunas sentencias que empiezan por #, que de forma sencilla podría decirse que son órdenes para el compilador, que no forman parte del programa final. Nos interesan especialmente los #define (definiciones), pero no debemos tocar nada en las primeras (por el momento 5) líneas, ni el #endif del final al ser definiciones de control imprescindibles. Centrémonos en el fichero renewal.h, que es el principal de la guía. Este fichero contiene las siguientes definiciones, y cada una de ellas maneja algún tipo de mecánica Renewal (todas juntas para ahorrar espacio): #define RENEWAL#define RENEWAL_CAST#define RENEWAL_DROP#define RENEWAL_EXP#define RENEWAL_LVDMG#define RENEWAL_EDP#define RENEWAL_ASPD ¿Cómo desactivarlas? Muy sencillo: se desactivan una a una anteponiendo una doble barra (//) delante de cada definición. A la doble barra, en el lenguaje del código fuente de Hércules © se le llama comentario de línea, y lo que hace el compilador es ignorar todo lo que esté en la misma línea a su derecha. O sea, si queremos eliminar todo rastro de Renewal de nuestro servidor tenemos que comentar (hacer comentario) todos esos #define, de tal forma que queden tal que así: //#define RENEWAL//#define RENEWAL_CAST//#define RENEWAL_DROP//#define RENEWAL_EXP//#define RENEWAL_LVDMG//#define RENEWAL_EDP//#define RENEWAL_ASPD Así pues, al (re)compilar nuestro servidor Hercules, éste será totalmente pre-renewal pero dispondrá de todas las características únicas de Hercules. ¿Hay más que hacer? Pues no con renewal.h, pero sí se recomienda revisar cualquier configuración contenida en esta carpeta. Además del tipo de #define arriba descrito hay otros dos tipos: Unos que vienen comentados pero puedes descomentar si quieres: siguen el mismo procedimiento que el ya descrito, pero a la inversa. Unos que van acompañados de un espacio y posteriormente un número (o una constante, que en este caso también actúa como un número): Si te interesa, puedes cambiarle el número con el que vienen acompañados (¡Importante: estos #define no debes comentarlos!). Es posible que te indiquen los valores posibles, como la única configuración actualmente disponible en /classes/general.h o te permitan elegir un valor numérico a tu gusto. Se recomienda no usar 0 salvo que se indique expresamente como valor posible (como el ejemplo anterior en /classes/general.h), porque no significará "ilimitado" como alguien puede estar acostumbrado a que así sea en otras configuraciones, sino que es literalmente 0(*). Ejemplo de este tipo de #define es el ya mencionado en /classes/general.h o este, situado en core.h:/// Max number of items on @autolootid list#define AUTOLOOTITEM_SIZE 10(*) No estoy seguro, pero todo indica a ello. Igualmente no deberíais ni probar a hacerlo, ya que es potencialmente peligroso para el servidor que dicho ajuste no funcione bien. Si queréis profundizar más en qué son y para qué sirven estas órdenes que se dan al compilador, estas que empiezan por #, podéis visitar este enlace en la Wikipedia que os proveerá de información completa sobre ello (se recomienda leer como mucho hasta el apartado 3, sin comenzar el 3.1) Por último, no te olvides de que después de modificar cualquiera estas configuraciones, es necesario (re)compilar el servidor para que los cambios surtan efecto. Eso es todo.
  11. Los mapas estarán siempre a menos que los elimines de tu cliente y el mapcache, pero el juego, con los scripts por defecto, evitará que puedas acceder a cualquier ciudad de Renewal de cualquier forma normalmente accesible para un usuario normal.
  12. Eso significa que el error está ya reportado y que es problema del código de Hercules (en rAthena no está) aunque nadie se ha puesto aún a trabajar en él.
  13. No entiendo muy bien a lo que te refieres. Aún así la primera ocurrencia de los mensajes podría no ser a la media hora, pero para el resto de ocurrencias sí tienes que calibrar que sea más o menos media hora (será un poco más aunque no voy a entrar en el detalle ya que no se trata, ni mucho menos, de un sistema de tiempo real critico). De todas formas, lo que más tergiversa la base de tiempos es la espera de 3 s entre mensaje y mensaje, que se hace aún antes de lanzar de nuevo el contador. Puedes probar a hacer esto (a sabiendas de que no termino de entenderte) a ver si mejora: OnTimer5000: if (.inUse) { set .inUse, 0; } else { getmapxy .map$,.x,.y,1; set .curX, callfunc("NPCWalk",.minX, .maxX,.minD,.maxD,.x); set .curY, callfunc("NPCWalk",.minY, .maxY,.minD,.maxD,.y); npcwalkto .curX, .curY; } .current_count++; stopnpctimer; initnpctimer; if(.current_count >= 360) { // Número de veces que camina antes de anunciar .current_count = 0; npctalk "Hola Forastero!"; sleep 3000; npctalk "Si Me Das 10.000 Zeny Te Doy Agility y Blessing"; sleep 3000; npctalk "En nivel 15 Por 5 Minutos , Te Sera De Gran Ayuda.!"; } end;
  14. Buf, del emulador llevo desactualizado desde que las cosas del día a día me pillaron, que viene a ser principios de año (desde entonces doy soporte casi únicamente en la sección hispana por falta de tiempo). Si antes iban y ahora no van, la forma "científica" de comprobarlo es descargando una versión antigua y comprobar que sobre el mismo cliente con el emulador de antes vaya y con el nuevo no (y después ir a reportar el bug en GitHub), aunque me sigue pareciendo muy extraño que el cliente simplemente se cierre sin más. Siento no poder ser mucho más de ayuda al respecto: a mi desactualización se une que siempre me llevé mal con el cliente. ¡Un saludo!
  15. 1.- Creo que no sin liarla con el cliente y meter el sprite del mob entre los sprites de NPC (cosa que no sé, nunca me llevé muy bien con el cliente), o a menos que haya habido una actualización reciente de scripting que permita hacerlo y de la que no esté informado. 2.- Como tu NPC camina cada 5 segundos, podemos hacer algo interesante. Si quieres hacerlo hablar cada 30 minutos puedes hacer la cuenta y "abusar" de la rutina de temporización haciendo una simple cuenta. Si media hora es 1800000 milisegundos, y se pasa cada 5000 milisegundos, por lo que la cuenta de veces que ha de pasar antes de anunciar nada es de 1800000/5000 = 360. El NPC quedaría más o menos así: prontera,162,193,4 script Sakura MAGALETA,3,3,{ set .inUse, .inUse + 1; [email protected] = 10000; [email protected] = 1; [email protected] = 3; if (@HD > gettimetick(2)) end; if ([email protected]) { if (Zeny < [email protected]) end; Zeny -= [email protected]; } specialeffect2 EF_HEAL2; percentheal 100,100; emotion e_thx; if ([email protected]) { specialeffect2 EF_INCAGILITY; sc_start SC_INC_AGI,300000,15; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,300000,15; } if ([email protected]) @HD = gettimetick(2)[email protected]; end; set .inUse, .inUse - 1; end; OnInit: set .minX,148; set .maxX,163; set .minY,176; set .maxY,195; set .minD,0; set .maxD,10; npcspeed 200; initnpctimer; end; OnTimer5000: if (.inUse) { set .inUse, 0; } else { getmapxy .map$,.x,.y,1; set .curX, callfunc("NPCWalk",.minX, .maxX,.minD,.maxD,.x); set .curY, callfunc("NPCWalk",.minY, .maxY,.minD,.maxD,.y); npcwalkto .curX, .curY; } .current_count++; if(.current_count >= 360) { // Número de veces antes de anunciar npctalk "Hola Forastero!"; npctalk "Si Me Das 10.000 Zeny Te Doy Agility y Blessing"; npctalk "En nivel 15 Por 5 Minutos , Te Sera De Gran Ayuda.!"; .current_count = 0; } stopnpctimer; initnpctimer; end;OnTouch: specialeffect2 EF_HEAL2; percentheal 10,10; }//////////////////////////////////////////////////////////////////////////////////////function script NPCWalk { set .CP, getarg(4); set .DST, rand(getarg(2),getarg(3)); if (rand(2)) set .CP, .CP + .DST; else set .CP, .CP - .DST; if (.CP < getarg(0)) set .CP, .CP + .DST; if (.CP > getarg(1)) set .CP, .CP - .DST; return .CP;}
  16. Según veo, el problema puede ser que uses un cliente viejo que no soporte las tumbas de MvP o que tu cliente sea lo suficientemente reciente pero no dispongas del sprite de la tumba en tu GRF (el cliente deja de funcionar y, si no tienes los errores desactivados te salta un Gravity Error en ambos casos, para poder disponer de más detalles deberías tener activada la opción de mostrar errores al diffear el cliente). No tengo un conocimiento mucho más profundo del cliente, aunque puedes decidir usar el servidor sin tumbas de MvP para evitar estos problemas (en conf/battle/monster.conf, la opción mvp_tomb_enabled). Un saludo.
  17. Hola, Parece que no has adjuntado ninguna imagen, por lo que no podemos servir mucho de ayuda. La única pregunta que me surge al respecto que podría ser útil al no saber en absoluto lo que has hecho hasta ahora es: ¿Seguro que has diffeado el exe? Un saludo.
  18. No sé porque no he mirado los items que da el NPC, pero si getitem te crea los items en el suelo (cuando normalmente los crea en el inventario del usuario), es posible que el usuario no tenga suficiente capacidad de peso para tener todo en el inventario.
  19. Nunca he usado este tipo de herramientas por lo que puede que esté errado, pero deberías haber guardado una copia de seguridad antes de haberlo encriptado porque este tipo de encriptaciones, aunque reversibles, suelen ser complicadas de decodificar sin la clave.
  20. Posiblemente tengas un Izlude muy viejo. Prueba a utilizar el Izlude de un GRF nuevo, pues el Criatura Academy (así se llama) sustituye a las muy antiguas training grounds de los novices en otros mapas.
  21. Al fin llega un servidor oficial en español, con doce años de retraso. Aún no he podido probarlo por falta de tiempo, aunque tiene pinta de que utilizan la infraestructura y ofrecen los mismos contenidos que el servidor que está ahora mismo instalado en Europa, fRO, por lo que parece que todo hablará en español (NPCs, objetos, etcétera) menos el resto de usuarios. Parece que tenemos lag asegurado como todos los servidores oficiales pero al fin disponemos de una interfaz en español que poder usar. No obstante, esto puede resultar un peligro para el panorama de los servidores privados de Ragnarök por motivos obvios. No lo digo por la competencia sino porque puede que los busquen para cerrarlos. Os dejo link a la noticia: http://www.vidaextra.com/rpg/ragnarok-online-llega-a-espana-12-anos-despues-gracias-a-idc-games Y a un vídeo que no tiene desperdicio porque está equivocado en casi todo, a mí me resultó graciosísimo: Gracias a IDC Games por ofrecernos un servidor oficial en español, ahora esperemos que hagan las cosas bien hechas. Creo que algunos podréis al fin rapiñar cosas del cliente para tenerlo en español como los oficiales. Un saludo.
  22. Por lo pronto no ha llegado a mis oídos ninguna noticia más de esta gente, aunque desde inicios de año estoy más fuera que dentro del panorama del RO, por lo que me es imposible saber si la aparente calma es debida a una política más permisiva de lo que parecía en un inicio o si siguen haciendo cosas por ahí. Quizá haya ido un poco de sensacionalista cuando tiraron el top en ragnarokonline.es (lo cual no quita que sea un gesto horriblemente feo en su afán de proteger su negocio), pero la página del top (en el subdominio top.ragnarokonline.es) por ejemplo sigue ahí. Lo que no sabemos es cuáles son sus intenciones al respecto, porque siguen saliendo servidores privados en la lista ahí. De momento, ya que parecen más permisivos yo seguiría en el ajo; luego no sé. Total, si con el Tree of Savior todo lo relacionado con el RO se encuentra en mínimos históricos... Ya si envían un Cese y Desista pues a apagar el servidor y adeu. ¿Sabéis si han mejorado la traducción? Yo no puedo entrar por otros asuntos más importantes que un triste juego.
  23. Seems more than enough, but it's not possible to guarantee that unless you take your device and try to install it.
  24. Oh, my... Maybe I guessed the problem while moving this topic back to international sections. On char-server.conf: login_ip: 127.0.0.1 char_ip: 151.80.37.7 On map-server.conf: char_ip: 127.0.0.1 map_ip: 151.80.37.7 On your data/clientinfo.xml: Point the server address and port to your login server (151.80.37.7 as it's your IP and 6900 if you're using the default port). It's a fairly common issue on newbies making online servers. Try it and tell me. P.S.: Moving!