Jump to content

Senos

Global Moderators
  • Content Count

    183
  • Joined

  • Last visited

  • Days Won

    8

Reputation Activity

  1. Upvote
    Senos reacted to mkbu95 in Modify initial items.   
    It is no big deal to do this mod.
    @edit
    Just finished it. Waiting for ppl's opinion on this.
    Because these settings are used only by char-server and therefore it would be a waste of resource to have to include battle settings into the char source code piece.
  2. Upvote
    Senos reacted to Hideki in [Material] Cliente Renewall de M45T3R v1.3 +543 paletas universales   
    [Material] Cliente Renewall de M45T3R v1.3
    Realizado por: M45T3R y su gata.
    Edición: M45T3R y Nya Hetfield.
    Publicado y Adaptado: Hideki

    Contiene:
    99 Hairstyles que pronto serán re-alineados y aumentados a 102 u mas.. sugerencias de ellos son aceptadas. Contiene alrededor de 43 customs (alas) con descripciones interesantes xP  Msgstringtable traducido hasta el sistema de Navegación (no 100% correcto) Custom Mob exclusivo "Ryko" (MVP) Sprite por mi, diseño de la carta por Victor(Ryko) 100% compatible con Kagerou/Oboro. Bio Lab F5 (lhz_dun5) Nueva Interfaz de Quests contiene traducciones hechas por mi, después continuare con el sistema de navegación. Skin COMPLETAMENTE EN ESPAÑOL! hecha por mi, tomando idea de un skin que vi en Akay RO. Reparaciones Hexadecimales  Party Chat es azul enves de naranja Paletas universales (543)



    Hace un rato hice un cliente para un server que iba a abrir.. pero es tan estable.. almenos es de los mas estables.. que decidí compartirlo xP esta desencriptado.. lee el data folder y el EXE esta configurado para leer DATA.INI

    Version 2 (reparada)

    pueden modificar el titulo con PSPad o algun otro programa hexadecimal.. buscando la palabra Ragnarok Network es la mas cercana, notaran el titulo.. los customs enves de ir en los archivos de texto basicos van ahora en el folder System/ItemInfo.lub .. todo lo necesario va incluido ahí para que funcione, lo único necesario es extraer el archivo clientinfo.xml y modificar la IP a tu IP Local.. 127.0.0.1

    Teniendo Hercules actualizad0 de su repositorio
    https://github.com/HerculesWS/Hercules
    lo configuramos para el cliente 2012 06 18

    "src/common/mmo.h" configuren así:
     
    #ifndef PACKETVER   #define PACKETVER 20120618 "ocupar este Packet en el caso de que salga algun tipo de error con el predeterminado"
    después editar en "src/map/packets.h" buscamos esta linea //2012-06-18aRagexeRE
    /*2012-06-18aRagexeRE*/#if PACKETVER >= 20120618 packet(0x01FD,15,clif->pRepairitem,2); packet(0x023B,26,clif->pFriendslistadd,2); packet(0x0361,5,clif->pHommenu,2:4); packet(0x0819,36,clif->pStoragepassword,0); packet(0x0288,-1,clif->pCashshopbuy,4:8); packet(0x0802,26,clif->pPartyinvite2,2); packet(0x022D,19,clif->pWanttoconnection,2:6:10:14:18); packet(0x0369,7,clif->pActionrequest,2:6); packet(0x083C,10,clif->pUseskilltoid,2:4:6); packet(0x0439,8,clif->pUseitem,2:4); packet(0x0281,-1,clif->pItemlistwindowselected,2:4:8); packet(0x0815,-1,clif->pReqopenbuyingstore,2:4:8:9:89); packet(0x0817,2,clif->pReqclosebuyingstore,0); packet(0x0360,6,clif->pReqclickbuyingstore,2); packet(0x0940,-1,clif->pReqtradebuyingstore,2:4:8:12); packet(0x0811,-1,clif->pSearchstoreinfo,2:4:5:9:13:14:15); packet(0x0835,2,clif->pSearchstoreinfonextpage,0); packet(0x0838,12,clif->pSearchstoreinfolistitemclick,2:6:10); packet(0x0437,5,clif->pWalktoxy,2); packet(0x035F,6,clif->pTicksend,2); packet(0x0202,5,clif->pChangedir,2:4); packet(0x07E4,6,clif->pTakeitem,2); packet(0x0362,6,clif->pDropitem,2:4); packet(0x07EC,8,clif->pMovetokafra,2:4); packet(0x0364,8,clif->pMovefromkafra,2:4); packet(0x0438,10,clif->pUseskilltopos,2:4:6:8); packet(0x0366,90,clif->pUseskilltoposinfo,2:4:6:8:10); packet(0x096A,6,clif->pGetcharnamerequest,2); packet(0x0368,6,clif->pSolvecharname,2); packet(0x08E5,41,clif->pBookingregreq,2:4);/*Added to prevent disconnections*/ packet(0x08E6,4); packet(0x08E7,10,clif->pBookingsearchreq,2); packet(0x08E8,-1); packet(0x08E9,2,clif->pBookingdelreq,2); packet(0x08EA,4); packet(0x08EB,39,clif->pBookingupdatereq,2); packet(0x08EC,73); packet(0x08ED,43); packet(0x08EE,6); packet(0x08EF,6,clif->pBookingignorereq,2); packet(0x08F0,6); packet(0x08F1,6,clif->pBookingjoinpartyreq,2); packet(0x08F2,36); packet(0x08F3,-1); packet(0x08F4,6); packet(0x08F5,-1,clif->pBookingsummonmember,2:4); packet(0x08F6,22); packet(0x08F7,3); packet(0x08F8,7); packet(0x08F9,6); packet(0x08FA,6); packet(0x08FB,6,clif->pBookingcanceljoinparty,2); packet(0x0907,5,clif->pMoveitem,2:4); packet(0x0908,5); packet(0x08D7,28,clif->pDull,2:4); /*Added to prevent disconnections*/#endif  
    Después mejorare el Post y haré un cliente mas sencillo de utilizar yo tengo el derecho completo sobre ese instalador debido a que yo lo diseñe.
     
    Favor notificar si sale algún error al compilar ya que aun esta en desarrollo este material.

    SI TIENEN WINDOWS 7, Vista u Otro con problemas de permisos administrativos asegurense de unas cosas:
    1;Ejecutar como administrador
    2;No instalar en "Archivos de Programa"

     
    ::: [Mini FAQ] :::

    - ¿Que son las paletas universales?
    Como las paletas de la mayoría de los sprites son idénticas hay una edición hexadecimal en el cliente que permite compartir una sola paleta de color para todas las clases, reduciendo asi drasticamente el peso y tiempo de descompresión ademas de la fragmentacion de la data

    - ¿Como añado customs?
    En el archivo llamado ItemInfo.lub dentro del folder System, aun asi tienes que configurar los ViewID's

    - ¿Porque el cliente y el post es tan feo?
    Mi gato lo programo, díselo a el.

  3. Upvote
    Senos reacted to jaBote in How to kill running sql?   
    from my cellphone:
    supposing you're running debian or similar:
     
    run: top
    look for the processes ID you want to kill. Press Q to exit top.
    run: kill -9 <process_id>
     
    Hope I helped
  4. Upvote
    Senos reacted to jaBote in GPL violation?   
    Well, Inkfish originally worked in Athena projects but this is the same as what happened to eAmod about a year ago.
     
    You can freely modify the emulator and charge whatever you want for it, but you can't re-release the software under more restrictive license the original software has. So as long as the GPL license is intact and he doesn't threat people without a "legal" copy of his software as eAmod owner did (under GPL licenses it's legally impossible to pirate a software) it's completely legal.
     
    But if any customer pays for the modification then decides to redistribute it for free, he's in the absolute right to do so.
  5. Upvote
    Senos reacted to jaBote in Hacer Pull Requests en Hercules   
    ¡Vaya! Parece que hay gente deseosa de colaborar directamente con Hercules pero que no sabe cómo. Me parece estupendo. Además, a petición de los administradores, esta guía también tendrá una versión en inglés porque nuestros compañeros anglosajones así lo necesitan.

    ¿Recuerdan cuando en mi guía de cómo obtener Hercules les comenté que una gran ventaja de usar Git frente a usar Subversion (SVN) es que existe la posibilidad de participar de forma activa en la comunidad enviando pull requests? Pues aquí les traigo una guía detallada para que puedan hacer cuantos pull request quieran sin problema.

    Ante todo, ¿qué es un pull request? Se trata de un envío de un cambio o mejora de un determinado proyecto a los desarrolladores del mismo, junto a la petición (request) de tal forma que ellos mismos puedan determinar y valorar si es conveniente para el proyecto y "tirar" (pull) de dicho cambio para que aparezca en el repositorio, o simplemente declinar la petición.

    Git ofrece sus propias herramientas para hacer pull requests (más información), pero no serán estas herramientas las que usaremos (porque tampoco son compatibles), sino las que nos ofrece GitHub, que sirven para algo parecido pero es más visual y puede hacerse también desde cualquier plataforma.

    ¿Qué pasos hay que realizar para hacer un pull request a Hercules? Pues, a grandes rasgos, son los siguientes:
    [*]Registrar un usuario en GitHub, si aún no tienes. [*]Hacer un fork (una "bifurcación" en la línea de desarrollo: generalmente se hacen para contribuir al proyecto original o decidir tomarlo como base para un futuro proyecto) de Hercules en GitHub, si aún no la hiciste. [*]Clonar el nuevo repositorio en nuestra máquina, si aún no lo tienes (no sirve trabajar en el repositorio original de HerculesWS). [*]Trabajar en el nuevo repositorio local. [*]"Enviar" (Commit) los cambios a nuestro repositorio local en el fork. [*]"Empujar" (Push) los cambios recién enviados a nuestro repositorio remoto en GitHub. [*]Hacer el propio pull request al repositorio original de Hercules, desde la web de GitHub.

    Los pasos 3 y 5 se han visto en mi anterior guía sobre la obtención de Hercules (el paso 5 en la sección Preguntas Frecuentes), y el resto de pasos son suficientemente sencillos aunque se detallará exhaustivamente su realización. Se juntarán algunos apartados de la guía bajo un mismo epígrafe (3, 4, 5 y 6) para trabajar más cómodamente.

    GitHub también provee sus propias guías paso a paso (en inglés) para casos generales sobre cómo hacer un fork y posteriormente hacer un pull request, aunque en la presente guía nos centraremos en hacer todo paso a paso para poder hacer pull requests a Hercules.

    Para esta guía se usará la interfaz de TortoiseGit en inglés. Ya comenté en mi anterior guía lo poco adecuada que era la traducción de la interfaz al español, y además podré reutilizar las imágenes para la traducción de la presente guía al idioma anglosajón.

    Bueno, comencemos ya con la propia guía. He decidido cubrir con spoilers cada paso de la guía, dado que además de su explicación vienen con sus buenas imágenes informativas.

    Paso 1: Registrar un usuario en GitHub



    Paso 2: Hacer un fork de Hercules



    Pasos 3 a 6: Trabajo en la máquina local



    Paso 7: Hacer (por fin) el pull request


     
     
    Y ya está. No es tan complicado todo, ¿verdad? Esta pregunta parece irónica, pero es un proceso realmente simple. Una vez hayas hecho un par de pull requests verás que es un proceso increíblemente simple.
  6. Upvote
    Senos reacted to jaBote in Hacer Pull Requests en Hercules   
    Preguntas frecuentes:

    He colocado la sección en otro post para facilitar su redacción y búsqueda.

    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:
     
    Preguntas y respuestas:

    P: No puedo hacer Pull Request en Github y me sale un mensaje de advertencia. ¿Qué ocurre?
    R: Vaya. Estos mensajes de advertencia siempre salen por algún motivo. No puedes hacer pull request mientras alguna advertencia esté activa. No soy un maestro en estos problemas, aunque generalmente los mensajes dan suficiente información en inglés. Estos son los mensajes de advertencia que me han llegado a salir a mí y las posibles soluciones de que dispongo. Recordad que en cualquier caso deberéis cambiar HerculesUser por vuestro nombre de usuario:
    [*] Oops! HerculesWS:master  is already up-to-date with HerculesUser:master  Try a different branch? [*]Has intentado hacer pull request sin haber hecho algún cambio frente al repositorio original en tu fork. Asegúrate de haber hecho push (con al menos algo de contenido) correctamente a tu repositorio en GitHub.
    [*]Oops! There's already a pull request for HerculesUser:master Try a different branch or view the pull request?
    [*]Ya tienes un pull request activo en el proyecto al que intentas contribuir. Espera a que sea aceptado o rechazado, o si quieres añadir más cosas mientras dicho pull request está activo siempre puedes cancelar la petición, añadir tu nuevo trabajo y volver a hacer pull request.



    P: ¿Cómo actualizo mi fork a la última versión de Hercules?
    R: Es bastante sencillo, aunque menos directo que actualizar una versión de Hercules directamente obtenida del repositorio original. Como siempre, para esto es necesario hacer distinción de cómo se haría en cada sistema operativo:
    Para Windows: (No veo necesaria una imagen a menos que mucha gente se atasque aquí)Haz click derecho en la carpeta de tu fork de Hercules y selecciona la opción Fetch... (Recuperar... en la interfaz española) dentro del menú desplegable que aparece al mantener el puntero del ratón unos instantes sobre la opción TortoiseGit. Se abrirá una nueva ventana. En esa ventana debemos escoger la opción que nos permite indicar una URL arbitraria (Arbitrary URL) y en el campo de texto asociado, colocar la URL del repositorio original de Hercules, o sea, esta: https://github.com/HerculesWS/Hercules.git. Posteriormente hacemos click en OK (a menos que quieras cambiar alguna de las opciones disponibles, que no es frecuente) para que empiece la actualización. Se abrirá una ventana en la que empezará la actualización de tu fork. Ciérrala una vez hayas acabado.
    [*]Para sistemas Unix: Como siempre, se trata simplemente de ejecutar un único comando (aunque esta vez son dos comandos unidos en una misma orden de shell):
    git fetch upstream && git merge upstream/master  


    Simplemente recuerda que para que esta actualización también se refleje en tu repositorio hospedado en GitHub has de hacer push. En caso contrario solo se reflejará en el repositorio local.
     
    P: Al intentar hacer push me sale un error aunque ponga las credenciales correctas. ¿Qué ocurre?
    R: A mí hasta ahora solo me ha ocurrido este error cuando por accidente intenté hacer push en la carpeta que tenía del repositorio original de Hercules, sobre el que no tengo permisos de escritura. Asegúrate de que estás haciendo push al repositorio de tu fork de Hercules y no al original: si no jamás lograrás hacerlo con éxito.
     
    ¡Ah, por cierto! Aunque esto es de sentido común, para hacer push y actualizar tu repositorio hospedado en GitHub es obligatorio disponer de conexión a Internet en el momento en que se intente efectuar.
     
    P: No puedo hacer commit a mi repositorio local. ¿Qué ocurre?
    R: Lo más seguro es que intentes hacer un commit a tu repositorio local sin haber modificado ningún archivo. No es posible hacer commits vacíos, así que el fallo estará por alguna otra parte. ¿Quizá modificaste los archivos a los que fueras a hacer commit pero se te olvidó guardarlos?
     
  7. Upvote
    Senos reacted to jaBote in Making Pull Requests on Hercules   
    Do you remember the many advantages Git has against Subversion (SVN)? One of those many advantages is the fact that in Git, you can send pull requests in order to directly collaborate with the community, without even the need of being an official Hercules dev, and if you contribute enough you can surely become a dev if you want. Well then, this is an – as detailed as possible – guide on how to make them.
     
    First of all: What is a pull request? It's a way of telling the original devs of a (commonly open-sourced) project what changes you've made yourself on their project supposedly for the better, and kindly ask them (request) to merge it (pull). In short, it's a way of collaborating to a project without the need of being related at all to it. Obviously, your pull request may be rejected if it doesn't meet some requirements, but this is another story.
     
    Git does also offer its own tools for pull requests (more info), but they're incompatible with the ones GitHub has. Moreover, GitHub pull request tools are easier to use than Git's.
     
    What steps are required in order to do a pull request? In abstract, you'll have to:
    Sign up for a GitHub account, if you don't have it already. Fork Hercules project in GitHub, if you haven't done this already. Clone your previous fork to a local repository in your computer, if you haven't done this already. Work on your fork. Commit your changes to your local repository. Push the changes you've previously committed to your remote repository on GitHub. Make the aforementioned pull request to the Hercules official repository. Steps 3 and 5 have already been shown on the Obtaining Hercules guide by @Ind (Obtaining Hercules through Git on *insert OS here* and Troubleshooting sections). These two steps will be slightly reviewed, but expect a fully detailed how-to in the others.
     
    By the way, GitHub also has its own (generic) guides on how to fork a repo and then make a pull request, which also explain the toughest parts of this guide (though they're not so tough) and cover steps 2-6 (supposing you have a Git console). You're encouraged to go and read them if you want.
     
    Well, here we go with the guide!
     
    Step 1: Sign up for a GitHub account



    Step 2: Fork Hercules project in GitHub



    Steps 3 to 6: Local computer work



    Step 7: (Finally) submitting the pull request


     
    Congratulations! You have successfully made your first pull request on Hercules! This is a reason to be proud of yourself, isnt it?
  8. Upvote
    Senos reacted to jaBote in Making Pull Requests on Hercules   
    Frequently Asked Questions (FAQs):



    I thought splitting this section from the main post would be beneficial because it's easier to write it and to look in it in case you need an answer and I have it down there.



    I hope there are almost no questions because I think my guide is clear enough, though it's normal there will be some questions out here since my explanations aren't perfect. That's why this dedicated section exists.



    Questions will be marked with a big Q and answers will be marked with a A. Both will be big enough to easily tell them apart.



    Question list:
    Questions & Answers:



    Q: I get a warning message while trying to make a Pull Request on GitHub. What happens?

    A: You can't make a pull request if you get a warning message from GitHub. Those messages usually provide enough information to tell you what to do. Here are all warnings I've received from GitHub to date and its possible solutions – just remember to change HerculesUser to your GitHub username–:
    Oops! HerculesWS:master is already up-to-date with HerculesUser:master Try a different branch?You haven't pushed any changes to your remote repository or the changes you've pushed make it identical to the original Hercules repository. You can only make a pull request if your repository is not exactly the same as the original Hercules'. Oops! There's already a pull request for HerculesUser:master Try a different branch or view the pull request?You already have an active pull request on Hercules and you have to wait until it's approved or rejected. If you want to add changes to your pull request, you can push more changes to your repository if you want: they'll automatically be added to your active pull request. Q: How do I update my fork to Hercules' last version?

    A: This is quite simple but not as easy as updating an official Hercules repository as you can't just pull as you did when updating the original Hercules repository – if you try to pull on your fork you're pulling from your fork's repository, not Hercules' –. Doing this task also depends on your OS:
    On Windows: (I don't deem necessary to add a how-to picture for this)Right-click your Hercules fork folder and select Fetch... option from the TortoiseGit submenu. A new window will pop up. Select Arbitrary URL option and place original Hercules repository URL there (I mean this one: https://github.com/HerculesWS/Hercules.git). Then click OK (unless you want to change any of the available options, which is unfrequent) for making the fetch update to start. Another window will be opened and your fork will be updated to Hercules last revision. Close it once you're done. On Unix: You just have to run this command (it's actually two commands joint on a single shell statement): git fetch upstream && git merge upstream/master Just remember that if you want these changes to also be on your GitHub repository, you'll have to push them. Otherwise they'll just be available on your local repository, as always.



    Q: I always get an error message whenever I try to push my changes even though I make sure I put correct access credentials. What happens?

    A: I've just experienced this error when I tried to push to the wrong repository (i.e. the original Hercules repository, to which I don't have access and you surely don't). Make sure you're trying to push to a repository on which you have permission for this. Ah! Also make sure you have an active Internet connection since you'll be using it!



    Q: I can't commit anything to my local repository. What happens?

    A: Chances are you're trying to make a commit without changing any file, and that's not possible for Git. Maybe you actually changed some files but forgot to save them?
  9. Upvote
    Senos reacted to jaBote in Desactivar Renewal (y otras configuraciones "ocultas")   
    ¡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.
  10. Upvote
    Senos reacted to jaBote in Desactivar Renewal (y otras configuraciones "ocultas")   
    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:
     
    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.
  11. Upvote
    Senos reacted to JulioCF in [Resolvido] Adicionando npcs   
    pastas
     
    npc > personalizado
     
    dentro da personalizado, aconselho criar uma nova pasta, pode ser de qualquer nome
     
    volte na pasta npc e abra com um editor de texto o arquivo;
     
    scripts_personalizado.conf
     
    você vai encontrar várias linhas de script, ex;
     
     
     
      a linha de comando de leitura de script é onde se inicia com npc, ex;    
    //npc: npc/personalizado/classes/mestra_classe.txt  Para ativar este NPC, basta retirar as barras iniciais //
    ficando assim;
     
     
       
    npc: npc/personalizado/classes/mestra_classe.txt  --------------------------------
     
    você aprendeu a ativar um npc, agora vamos organizar as coisas, lembra que pedi pra você ir na pasta personalizado e criar uma nova pasta com qualquer nome? vamos supor que esta pasta seja; cadu
     
     
    esta linha de npc, de ativação de npc, terá que ser feita assim;    
    npc: npc/personalizado/cadu/   
      suponhamos, que dentro da pasta cadu, tenha uma mestra de classes, então a linha do script, será assim;    
     
    npc: npc/personalizado/cadu/mestra_de_classes.txt  Alguns detalhes a se lembrar
     
    espaços devem conter _ (anderline, ou linha em baixo) e todo script, na linha de ativação deste, tem que ter o .txt no final, para o emulador entender que é um script em texto para ser lido

     
    até mais
  12. Upvote
    Senos reacted to malufett in Player's Level next to username   
    here you have it..so sizzling hot..
     
    --- src/map/clif.c Tue Apr 16 22:33:58 2013+++ src/map/clif.c Tue Apr 16 22:54:32 2013@@ -8361,7 +8325,6 @@ struct map_session_data *ssd = (struct map_session_data *)bl; struct party_data *p = NULL; struct guild *g = NULL;+   char name[NAME_LENGTH]; //Requesting your own "shadow" name. [Skotlex] if (ssd->fd == fd && ssd->disguise)@@ -8373,8 +8336,7 @@   WBUFB(buf,30) = WBUFB(buf,54) = WBUFB(buf,78) = 0;   break; }+   sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level, ssd->status.name);+   memcpy(WBUFP(buf,6), name, NAME_LENGTH);-   memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH); if( ssd->status.party_id ) {   p = party_search(ssd->status.party_id);@@ -8488,7 +8450,6 @@  int cmd = 0x195, ps = -1;  struct party_data *p = NULL;  struct guild *g = NULL;+ char name[NAME_LENGTH];  nullpo_retv(ssd);@@ -8498,8 +8459,7 @@  WBUFW(buf,0) = cmd;  WBUFL(buf,2) = ssd->bl.id;+ sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level, ssd->status.name);+ memcpy(WBUFP(buf,6), name, NAME_LENGTH);- memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);  if (!battle_config.display_party_name) { if (ssd->status.party_id > 0 && ssd->status.guild_id > 0 && (g = ssd->guild) != NULL)@@ -11694,8 +11654,6 @@{  struct map_session_data *t_sd;  char *name = (char*)RFIFOP(fd,2);+ char *pname;+  name[NAME_LENGTH-1] = '0';  if(map[sd->bl.m].flag.partylock) { // Party locked.@@ -11703,9 +11661,7 @@ return;  }+ pname=strrchr(name,' ');+ memcpy(pname, &pname[1], strlen(pname));+ t_sd = map_nick2sd(pname);- t_sd = map_nick2sd(name);  if(t_sd && t_sd->state.noask) { // @noask [LuzZza] clif->noask_sub(sd, t_sd, 1);
  13. Upvote
    Senos reacted to JulioCF in Decompilando .Lub para .Lua   
    Tutorial Decompilando .Lub para .Lua   Recentemente comecei a mexer com a janela de infinitas possibilidades que é a adição de custom itens e custom mobs e me deparei com a necessidade de realizar decompilação de arquivos .lub para .lua na atual pasta em uso para hexeds 2012+ que é a luafiles514. Este é um tutorial que ira de uma forma simples explicar como fazer este procedimento.   - Índice Programas Utilizados. Procedimentos. Agradecimentos. Requerimentos   - Luadec 0.6: http://files.luaforge.net/releases/luadec/luadec/0.6 - Wordpad ou qualquer editor de texto (recomendado Wordpad ^^)     Procedimentos   - Crie uma Nova Pasta (Onde quiser) - Baixe o Luadec 0.6 e extraia o Luadec.exe para a pasta criada. - Crie um arquivo de texto com o nome: batch.txt - Edite o batch.txt, selecione a opcao "Salvar como..", selecione "Todos os arquivos" e salve com o nome de batch.bat   Seu ambiente para decompilação dos .lub está agora pronto. Para decompilar um .lub (utilizaremos como exemplo o accessoryid.lub):   - Copie e cole o arquivo accessoryid.lub na pasta onde estao o luadec.exe e o batch.bat - Edite o arquivo batch.bat e escreva:     
    luadec accessoryid.lub > accessoryid.lua   
      - Salve e feche o editor de texto. - Em seguida execute o batch.bat e sera gerado o arquivo accessoryid.lua.    Para decompilar qualquer outro .lub siga os mesmos procedimentos seguidos no exemplo: - Copie o arquivo.lub para o ambiente de decompilação.   - Edite o batch.bat para o nome do arquivo de entrada e saída.    
    luadec entrada.lub > saida.lua   
      - Execute o batch.bat.     Agradecimentos   Ao usuário ivanyan do rathena que foi autor de um post onde eu conheci o luadec para decompilar o que eu precisava. Espero que seja útil. Abraços, Neko.   Dica retirada do brAthena neste post.
  14. Upvote
    Senos reacted to jaBote in ¡Bienvenidos a la sección en español de Hercules!   
    Sí, la verdad es que es una buena idea ir haciendo guías o posteando parte de nuestro conocimiento general y lo tengo en plan, aunque ahora mismo tengo más asuntos en mano de los que puedo manejar. Lo que no podemos hacer es entrar a cualquier comunidad hispana de RO y empezar a robar guías a menos que sean de nuestra autoría, por mucho que las más conocidas no me hagan especial gracia.
     
    No hace falta escribir guías de algo muy específico aún, aunque sería buena idea comenzar a escribir guías de carácter básico o incluso traducir parte de la documentación de Hercules y postearlo como guía. No debo imponer ninguna limitación a esto aún.
     
     
     
    ¡Muchas gracias por el recibimiento! Pero creo que Wolf no hace uso de GTranslate. Más que nada porque ha cometido un error ortográfico muy común que GTranslate no habría hecho.
  15. Upvote
    Senos reacted to Nameless2you in 04/17/2013 kRO Maintenance   
    ** May contain interpretation errors   ■ Inspection Time     - Servers: 01:30 to 05:30 (Spanish time) Common Patch:   - Modified [Jitterbug's Tooth] item description. - Mechanic skill fixed: Damage dealt to monsters from the [Magma Eruption] skill has been modified for being applied ordinarily. - High Priest/Arch Bishop skill fixed: Fixed an [Assumptio] visual effect error.     - WoE TE monster's position has been modified. - Item [Costume: King Strawberry] now slightly increments drop rate of [Fresh Strawberries].   Main Servers:   - Added a list of costume items which can be enchanted. - Skill Start event is ended. (!) - Storm event starts: each time you buy a 10 Gaedarae Fruit box you'll obtain a sealed knight scroll. (!) -> Time: 17/04/2013 until 05/01/2013 maintenance. - Discount event in Neuralizer boxes is now ended. - Hunter/Sniper skill fixed: When you're Ranger Third Job, level 5 of [blitz Beat] skill increased damage based on Job Level. This will be corrected. - Mechanic skill modified: Now skill [Magnetic Field] will only affect enemies in non-PvP maps. - Drop rate changed for some items from monsters in WoE TE Guild Dungeons. (This is done for maintaining Zeny stability on  (Drop rate changed for some items from monsters for maintaining Zeny stability on server commerce).   Sakray Server:   - Bard skill modified: Skill [Dissonance] and Bard played skills are modified for avoiding overlapping.     Translator note (Spa-Eng): There may be some minor incorrections, but a (!) marked line means the possibility of serious incorrections because of a hardly understandable Spanish translation. Big thanks to Ziu, who took the korean updates and translated them to Spanish. Big thanks to jaBote for translating it from Spanish into English.
  16. Upvote
    Senos reacted to Ai4rei in Cutin not 100% functional   
    The reason for that is (at least for the mentioned script) the fact, that it is stored as UTF-8. The C runtime reads 'cutin "°¡À̾ƽºÄ«µå",4;' happily as something like 'cutin "°¡À̾ƽºÄ«µå",4;', basically the raw representation of the UTF-8 data in ASCII. Blame goes to rAthena r15251.
  17. Upvote
    Senos got a reaction from jaBote in ¡Bienvenidos a la sección en español de Hercules!   
    Buena suerte con tu comunidad!
  18. Upvote
    Senos reacted to Megasantos in 2013 Ragexe Area   
    This is a new class like Christmas, the name is Hanbok.
     
    I added in brathena, see.
     
    http://dev.brathena.org/projects/brathena/repository/revisions/1707
     
    http://dev.brathena.org/projects/brathena/repository/revisions/1709
  19. Upvote
    Senos reacted to Enko in ¡Bienvenidos a la sección en español de Hercules!   
    Que buen español tiene señor Wolf
  20. Upvote
    Senos reacted to jaBote in ¡Bienvenidos a la sección en español de Hercules!   
    ¡Hola a todos! Parece que han aceptado la proposición que hice al Staff de Hercules sobre la creación de esta sección para que podamos disfrutar de soporte en español. Sé que no todos somos muy duchos en la lengua de Shakespeare, por lo que en estos foros podréis preguntar cosas sobre Hercules. Eso sí, en español.
     
    Como muchos de nosotros sabemos, Hercules proviene de Athena (el primer emulador jamás creado de RO, con disculpas de AEGIS, que es el emulador oficial), que es también la raíz de donde provienen todos los demás emuladores actuales de Ragnarok Online. Hercules bebe especialmente de rAthena, pero el emulador ya ha sido intensamente modificado en los pocos meses que tiene de vida. Al parecer en Hercules se ha decidido dejar de lado el típico *Athena que muchos hispanos estamos acostumbrados a tratar, pero no ha sido el primero en hacerlo: con anterioridad han existido y existen emuladores que no tienen Athena en su nombre, como pueden ser Freya, Nezumi o Cronus (actualmente de ellos solo Cronus continúa en desarrollo, aunque está en portugués).
     
    En lo que a mí respecta, no soy especialmente bueno dando soporte en emuladores de esto: empecé a jugar al RO hace relativamente muy poco, mucho menos que el jugador medio de este juego, y he tenido menos tiempo aún para saber qué es lo que hace toda la magia que mueve nuestro mundo virtual, y le da consistencia e integridad sin que apenas nos demos cuenta de ello. Muchos (y me incluyo) no sabemos qué hay "bajo el capó" de nuestros servidores.
     
    Trataré de dar la mejor (y más amplia) ayuda que me sea posible, aunque es obvio que esto no es un foro en que solo yo ayudo: hay campos enteros del soporte a este emulador (y cualquier otro *Athena) que por desgracia aún se me escapan. Yo no sé todo sobre el emulador y podéis estar seguros que también acabaré preguntando bien aquí o en las secciones de soporte en inglés, pero se ha creado esta comunidad en español con un propósito, y es que todos nosotros podamos colaborar con un granito de arena, de tal forma que todos podemos salir enriquecidos compartiendo nuestros conocimientos.
     
    Sin mucho más que decir por el momento, os doy mi más cálida bienvenida a nuestra aún pequeña comunidad en español de Hercules.
     
    ¡Nos leemos!
  21. Upvote
    Senos reacted to Ind in Introducing Hercules Channel System   
    Introducing Hercules' Channel System
    Hello~! - What?!
    1st, it is a replacement for the old @main 2nd, it is a super ultra mega improvement compared to the functionality @main provided. 3rd, whops. there is no 3rd. channels.conf format
        /* default channels (available on boot) */     default_channels: {         /* channel_name : channel_messages_color */          main: "Orange" /* available as #main */         support: "Blue" /* available as #support */         trade: "Red" /* available as #trade */         offtopic: "Cyan" /* available as #offtopic */         /* as many channels as you like */     }     /* colors available */     colors: {         Default: "0xffffff" /* custom channels will use the first in the list unless a font is selected thru @channel */         Red: "0xff0000"         Blue: "0x83cfe9"         Orange: "0xe57c00"         Cyan: "0x00b89d"         Yellow: "0xffff90"         Green: "0x28bf00"         Normal: "0x00ff00"         /* as many colors as you like */     }     /* allow users to create their own (private) channels through @channels command? */     /* (must also allow players to use @channels in groups.conf) */     allow_user_channel_creation: true     /* "map_local_channel" is a instanced channel unique to each map */     map_local_channel: true     map_local_channel_name: "map" /* available as #map */     map_local_channel_color: "Yellow"     map_local_channel_autojoin: true /* can disable autojoin in specific maps through mapflag or zone: nomapchannelautojoin */     /* "ally_channel" is a channel shared by all your guild allies */     ally_channel_enabled: true     ally_channel_name: "ally" /* available as #ally */     ally_channel_color: "Green"     ally_channel_autojoin: true Notes on the format/configuration
    default_channels is the list of reboot-persistent channels, you can setup as many as you like and each can have its own color for chat, which you can specify in colors (again, you can setup as many as you like) map_local_channel is a feature that grants each map its own instanced channel (available, by default as #map -- which can be changed as per map_local_channel_name) map_local_channel_autojoin whether users will autojoin the local channel when they load a map with it enabled map_local_channel_autojoin can be disabled on selected maps (e.g. if you dont want it on gvg maps) through a mapflag (with a horribly long name D:) '<map name><tab>mapflag<tab>nomapchannelautojoin' ally_channel_enabled is a feature that grants a instanced channel for each guild's allies (as well as their own members), available by default as #ally -- which can be changed as per map_local_channel_name ally_channel_autojoin whether users will autojoin their respective ally chats upon login. New Commands Explained
    @join Simple: @join <#channel_name>or, for password-protected rooms: @join <#channel_name> <password> @channel Does a number of things. Create a new channel (option available as long as allow_user_channel_creation is enabled) @channel create <#channel_name> <password> List public channels (groups with hchsys_admin can view private channels as well) @channel list Change a channel's color (requires to be owner of said channel or be in a group with hchsys_admin permission) @channel setcolor Samples available colors and displays their keys/names @channel list colors Leaves a specific channel @channel leave <#channel_name> Binds your global chat to a specific channel, making everything you type that'd normally be displayed to nearby characters be redirected to that channel instead @channel bindto <#channel_name> Unbinds your global chat from the current (if any) binded channel @channel unbind Bans a specific character from a channel @channel ban <#channel name> <character name> Lists all banned characters from a channel (groups with channel system admin permission can also see their account id) @channel banlist <#channel name> Unbans a specific character from a channel @channel unban <#channel name> <character name> Changes a channel's options (for now, channel message delay and announce-when-someone-joins) @channel setopt <#channel name> <option name> <option value> How to speak in a #channel
    You can either bind a channel to your global chat (see @channel bindto above) or PM the channel you want to speak to, if you attempt to send a pm to a non-password protected channel that you have not joined, you'll autojoin. Other stuff
    as I coded this feature I also improved overall guild processing/lookup, extremely, extremely faster (did I already say its ridiculously faster? WoE overhead probably more than halved with this). over a hundred lookups were replaced by a cached guild state that takes only 4~8 bytes per player. The commit also fixed a "wearing-garment-removed-costume-garment-look" bug - special thanks to jTynne for letting me know~! Groups with channel admin permission can bypass the channel message delay Special Thanks
    to Streusel for proposing an idea that'd end up as the @channel bindto feature. to Frost for proposing the per-channel message delay limitation to Fatalis for proposing what'd end up as the @channel ban, @channel unban and @channel unbanall to Zopokx for proposing an improvement to how the map/local channels function Links~!
    Commit Commit (update)
  22. Upvote
    Senos reacted to Ind in Download Section is now up~!   
    Hercules Download Section
     
    Where?!!
    [*]Here~

    The rules
    [*]None exclusive to this download section as of yet, all our forum rules extend to our download section -- e.g. no warez. Probably not for long, our moderators surely will think of some as issues show up.

    Why so few categories
    [*]Since we're starting from scratch we thought it'd be best if we didn't have a high number of empty categories, we'll be creating new categories as we see necessary, example: if the sprites & palettes section gets crowded (i.e. with different types of sprites) we'll create a new subcategory section for said type, and so on as more files come in.
    In short, we'll be expanding as necessity comes.

    Upcoming Modifications
    [*]JayPee came up with a very interesting idea we'll be implementing soon, making downloads on certain areas (e.g. control panels) be capable of having their download link be their respective repository's latest zip file ( e.g. from a github project ), as to allow users to always download the latest version as opposed to having to rely on the files' author to update their file on our system.
    [*]We are not yet sure whether we'll be implementing paid file support, however if we do we already have a few modification ideas from our staff whos got frustrated by similar systems' inability to counter frauds (for example introduction of measures on first-time buyers)


  23. Upvote
    Senos reacted to GreenBox in multiple map-server support   
    1. Introduction
    I feel like we need this, as I don't have anything to do this month, I'll dedicate it to Hercules <3
    Our inter server communication is very buggy and exploitable, mainly when we put a second zone server in the game.
    I'll use this topic to manage TODOs and discuss about the implementation design.
     
    2. Implementation Steps
    Create a standard way of defining "classes": COBJ https://github.com/HerculesWS/Hercules/commit/5e018af1749be4b64e0c0bdf77d412eaa82dae57 Rewrite Inter code using COBJ Implement session_data synchronization between zones

    3. Further Work
    Rewrite already existing code to use COBJ Optimize inter server communication

    Branch: https://github.com/HerculesWS/Hercules/tree/zones
    Documentation: https://drive.google.com/#folders/0B1C53TZ4rjH7d3FXakhjeHRpZzQ
     
    ~in progress~
     
    * Moved to public section so we can take user input
  24. Upvote
    Senos reacted to Ind in Introducing Hercules' Stress Test Server   
    Introducing Hercules' Stress Test Server
    Hello~!
     
    The "Stress" Part
    Over 1.000 IndAI units (equivalent to +1k online players) will be in the server playing 24/7, farming, going to pvp, doing woe, playing battlegrounds, doing anything a player does, this will create a perfect scenario for us to debug and test Hercules.
     
    The Development Benefits
    We'll be able to keep track of performance usage 24/7, making us able to detect whenever a update increases a server's usage, allowing us to further optimise said update in order to take the processing down. With the AI characters doing stuff non-stop 24/7 we'll be able to identify and fix any crashes existent. Hercules will gain a super stability boost thanks to this. How to connect / Moving in and out
    This is the fun part.
    No new clients, and no sclient/clientinfo/blablabla edits will be required. get to the test server by typing '@hercules warp', test whatever you like, and go back to your server with '@hercules leave'. This technology *might* also be employed in the future by us to create hercules-hosted inter-server events.
     
    Entirely Secure
    The only data your server will pass to our test server upon warp is the name of the character (and maybe hairstyle vals).
    The test server is unable to modify (or even access) any data on your server, it is entirely secure and damage-free.
     
    Unique to Hercules
    The ability to connect through your ordinary client will be made possible by our custom server hosted over at herc.ws, the code won't be made public.
     
    Coming
    I felt inspired to write about this feature, which is why this announce is out before the feature itself.
    This is one of the features to be powered by our Hercules Plugin Manager and will be made public once the HPM implementation reaches the level capable of sustaining it.

    FAQ
    what if i dont want my players to go to the test server?@hercules is a command like any other, you can restrict access by groups.conf (by default only gms will be able to use it) what if i dont have a test server to use as a gateway to the hercules stress test server?we will also provide clients for those who don't have/want to use a server as the gateway
  25. Upvote
    Senos reacted to Ind in PacketDB Overhaul   
    PacketDB Overhaul
    Hello~! - What?!
    1st, not a overhaul as much as...well we purged the poor thing completely 2nd, adding and maintaining packets is now much easier Changes
    packet_db.txt was dropped packet_ver was dropped in its entirety, the server has never been able to maintain multiple packet versions at once stably packet_ver_flag setting in conf/battle/client.conf was dropped packets are now stored at src/map/packets.h packets.h format
    for outgoing packets: packet(packet_id,length)/* example */packet(0x006a,23); for incoming packets: packet(packet_id,length,function,offset ( specifies the offset of a packet field in bytes from the begin of the packet ),...)/* example */packet(0x0072,19,clif->pWantToConnection,2,6,10,14,18); Improvement
    Users no longer have to touch packet files when changing their client versions, PACKETVER in src/common/mmo.h is now enough. With the map server not having to maintain packets for so many versions at once, its ram usage was reduced by 7MB Credits
    Feature Design by GreenBox Special Thanks
    to mkbu95 for bringing this topic up! (reworking the packetdb) Links~!
    Commit packets.h file
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.