jaBote 438 Posted April 26, 2013 ¡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. 3 Senos, JulioCF and Hideki reacted to this Quote Share this post Link to post Share on other sites
jaBote 438 Posted April 26, 2013 Preguntas frecuentes:He colocado la sección en otro post para facilitar su búsqueda y escritura.Aunque espero que no haya prácticamente ninguna pregunta en esta sección porque me gustaría creer que he sido suficientemente claro, es obvio que las cosas no son así y es normal "atascarse" en alguna parte de la guía, inauguro esta sección. Como es usual en estas secciones de Preguntas y Respuestas, las preguntas las marcaré con una P y las respuestas las marcaré con una R, ambas bien grandes para que se vean en condiciones.Lista de preguntas: [*]¿Puedo desactivar todas las mecánicas Renewal pero usar NPCs y bases de datos Renewal y viceversa? [*]¿Por qué al desactivar Renewal sigue habiendo 3rd Jobs? [*]¿Por qué tras cambiar una de estas configuraciones no noto ningún cambio? Preguntas y respuestas:P: ¿Puedo desactivar todas las mecánicas Renewal pero usar NPCs y bases de datos Renewal y viceversa?R: Hay un pequeño truco para ello. Siempre se leen las carpetas /db y /npc, y además si Renewal está activo (#define RENEWAL) se leen las carpetas /db/re y /npc/re, en lugar de /db/pre-re y /npc/pre-re; mientras que si no lo está se leen las carpetas con nombre de pre-re en lugar de las re. Si quieres que se lean las otras carpetas que originalmente no correspondería, simplemente puedes intercambiarles el nombre, o intercambiar los valores de la definición #define DBPATH de const.h. Cuidado con la anterior definición porque es algo distinta a las vistas en el post principal de la guía, aunque no deberá daros mucho problema. Eso sí, mucho ojo: el juego no está preparado para trabajar con unas bases de datos y unos NPCs que no les corresponde y puede haber enormes fallos de equilibrio en el servidor.P: ¿Por qué al desactivar Renewal sigue habiendo 3rd Jobs?R: Al desactivar Renewal solo se desactivan las mecánicas, las bases de datos y los NPCs de Renewal (lo cual incluye las quests de Renewal, a menos que cambies los NPCs como se indica en la pregunta de arriba). De esta forma se hace imposible cambiar a Third Job a menos que se ejecute @job o haya algún NPC custom que cambie el job a uno de los 3rd Jobs. Ten cuidado al usar el NPC jobmaster que viene con Hercules, pues por defecto admite el cambio a 3rd Job: npc/custom/jobmaster.txt, línea 184 (observad mi comentario) OnInit:setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third classsetarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd classset .ThirdClass,1; // Enable third classes? (1: yes / 0: no) ¡Cambiad esto a 0 si pensáis usarlo y no queréis 3rd Jobs!set .SNovice,45; // Minimum base level to turn into Super Noviceset .LastJob,1; // Enforce linear class changes? (1: yes / 0: no)set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no)set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no)end; P: ¿Por qué tras cambiar una de estas configuraciones no noto ningún cambio?R: Ya se ha comentado por lo menos tres veces en la presente guía: para que estos cambios surtan efecto, es obligatorio y necesario recompilar el emulador. De no hacerlo, no habrá ningún cambio en él hasta que se recompile. 4 Tragedy, Hideki, txandy and 1 other reacted to this Quote Share this post Link to post Share on other sites
Ten 0 Posted January 14, 2016 Una consulta, quizas estoy reviviendo un tema muy viejo pero, en mi server no tengo los npc de quest repetibles comop de sharp leaf etc, y creo que esto se debe a que desactive l renewal, existe la posivilidad de activar estos npc sin tener renewal? Lo otro, cuando ocupo el warper e intento ir a un dun o field de tipo manuk o discastes me dice algo asi como "tu server es pre-renewal esta ciudad no esta habilitada" Favor ayuda :c Quote Share this post Link to post Share on other sites
Xgear 44 Posted January 21, 2016 @@Ten El contenido de Renewal y de Pre-Renewal es diferente. Para poder tener el contenido de Renewal tienes dos opciones: 1.- Mover los contenidos de las carpetas npc/re y db/re a npc/pre-re y db/pre-re (No es tan sencillo, deberas asegurarte que las rutas esten bien y que las funciones y las quests sean compatibles con pre-re. Tambien deberas fijarte en los items, pues hay cosas como el Variable Cast que no aplica en pre-re por lo que algunos items podrian no funcionar. 2.- Activar Renewal Quote Share this post Link to post Share on other sites