Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. Hi. For the element, this is rather a /db/{re or pre-re}/skill_db.txt issue (just change the one your server uses). Check the heading of the file: //id,range,hit,inf,element,nk,splash,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count,name,description// 01 ID// 02 range (combo skills do not check for range when used,// if range is < 5, the skill is considered melee-range)// 03 hit (8- repeated hitting, 6- single-hit)// 04 inf (0- passive, 1- enemy, 2- place, 4- self, 16- friend, 32- trap)// 05 element (0 - neutral, 1 - water, 2 - earth, 3 - fire, 4 - wind, 5 - poison,// 6 - holy, 7 - dark, 8 - ghost, 9 - undead, -1 - use weapon element// -2 - use endowed element, -3 - use random element.)// 06 nk (skill damage properties):// [...] As you can see, you can just use -3 for the Holy Light skill element. Go to line 202 and change this: 156,9,6,1,6,0,0,1,1,yes,0,0x1,0,magic,0, AL_HOLYLIGHT,Holy Light for this: 156,9,6,1,-3,0,0,1,1,yes,0,0x1,0,magic,0, AL_HOLYLIGHT,Holy Light For the MATK change it's a bit trickier for me since I'm not good at source, but I've taken the time to investigate and I'm almost sure you'll have to go to /src/map/battle.c and find line 3779 (some tabulation spaces removed to improve readability): case AL_HOLYLIGHT: skillratio += 25; if (sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_PRIEST) skillratio *= 5; //Does 5x damage include bonuses from other skills? break; That skillratio += 25 makes the damage to be 125% MATK (default 100% + 25%), so you'll have to change that line. You can either choose to substract 75% (so 25% remains) or to divide it by 4 (100 / 4 = 25). I've decided to divide it by 4. That line should remain like this: skillratio /= 4; // LINE MODIFIED, Holy Light does now 25% MATK damage And there you go. Hope I helped though I'm not sure on the source code part.
  2. It's there indeed. At least on the ones I checked (Flavius CTF and Team Deathmatch scripts). Here's a piece of the CTF script: if( .@Guillaume < 10 || .@Croix < 10 ) { if( .@Guillaume >=5 && .@Croix >=5 && !agitcheck() && $@FLCTF_Flood < gettimetick(2) ) { announce "Battleground -- Flavius CTF [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",bc_all,0x610B5E; set $@FLCTF_Flood, gettimetick(2) + 15; end; } if( .@Guillaume < 10 || .@Croix < 10 ) { mapannounce "bat_room","Battleground -- Flavius CTF [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x610B5E; end; } }
  3. Seems you're missing a little detail: item_rate_card: 1000000 the card drop rate is x10,000.00 times the official drop rate chance (and 0.01*10,000.00 means 100%). Maybe you're missing other rates like these ones: item_drop_card_min: 1item_drop_card_max: 10000 If you set item_drop_card_max to 5000, the maximum card drop chance will be 50%. Please make sure you have it to 10000 at least since it's 100% maximum card drop chance.
  4. As a general rule, almost no Hercules source modifications work in any other RO emulator. This particular one isn't compatible with rAthena.
  5. Just add another getitem <item id>,<quantity>; to the script and you're good to go.
  6. jaBote

    Hello Guys

    You can check out this guide @Ind made with care for that purpose .
  7. That's a bit harder, but on a registration script you don't need to protect against brute force. In case you want to protect a login form to brute force attacks you can use sessions in PHP: // Preceding code here// Let's figure out a failed loggin attempt has just happenedsession_start();$_SESSION['failedlogins']++;if ($_SESSION['failedlogins'] >=3) // We're gonna ban this user for 1 hour$_SESSION['banneduntil'] = time() + 3600;//Some code hereif($_SESSION['banneduntil'] > time()) {$remainder = $_SESSION['banneduntil'] - time();echo "You're banned for attempting a brute force attack. You'll be unbanned in $remainder seconds.";}else { // Not banned// Display login form}//Some more code here... If my memory isn't failing me, it's like that.
  8. You don't need big protection for a RO server: there's no gain for potential hackers so you can just expect to be attacked only from unhappy users, which 99,9% won't know how to bypass basic security measures: You only need to be concerned about SQL injections (any level) and basic XSS attacks. What's the best thing you can do out there? Sanitize any user input and you're good to go: ensure you got what you expected when the form is sent and you needn't to worry about anything else. Just be paranoid about any user input you get. PHP already provides the tools you need: use strlen() to ensure all string lengths (user name, password, mail) are in bounds (also check sex length for the account is 1), then use a whitelist of the chars you'd want to insert in your SQL database and check all strings meet that requirements. Here is an example of the character whitelist of Ceres CP (returns TRUE if there's any unallowed character on a string): function inject($string) { $permitido = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.@$&-_/§*°ºª"; // allowed characters for ($i=0; $i<strlen($string); $i++) { if (strpos($permitido, substr($string, $i, 1)) === FALSE) return TRUE; } return FALSE;} You could also sanitize the vars for inserting them into the DB by using functions like mysql_real_escape_string. You should be good to go with the above function, though. Hope I helped.
  9. jaBote

    Job Names

    Yes it changes the job name displayed and even the entire skill tree. Tried with a Wizard changebasing to Genetic. Test script: - script changebaser -1,{OnWhisperGlobal:changebase 4071;dispbottom "OK";end;} I sadly don't know any alternative to that. P.S.: It seems this doesn't either work when changebasing to Wedding sprite. Extending this I can hypothesize Xmas, Summer and Gangsi bases also don't work with this.
  10. ¡Hola de nuevo! Tras tras las pocas guías que llevo hechas (3 estos instantes, 4 si contamos la traducción al inglés de mi guía sobre pull requests) es hora de fijar la mirada en el público que leerá mis guías (vosotros) y preguntaros qué os parecen. Me gustaría obtener algo de realimentación para esto. No voy a publicar una encuesta para esto, porque realmente me parece una forma muy poco personal, parca en razones y en ocasiones poco fiel a la realidad: prefiero que se comente qué es lo que se ve bien o no en mis guías. No es necesario que escribáis una biblia, sino que comentéis lo que veáis apropiado. Por ejemplo, ahora mismo se me ocurren: ¿qué os parecen en general? ¿Están bien documentadas (imágenes, texto, ...)? ¿Las explicaciones son claras o difíciles de seguir? ¿Debo centrarme más en su concisión, en la abundancia de información o así está bien? ¿Qué detalles veis que faltan o sobran? Etcétera. Muchas gracias por vuestra opinión: mi intención es ser lo más útil posible en cuanto a mi papel en este proyecto respecta. Un saludo.
  11. En verdad no son alternativas, sino que los clientes a partir de una fecha utilizan cskroption.lub en la carpeta data (que es simplemente /system/iteminfo.lua renombrado) para tener todos los objetos clasificados en una única tabla de múltiple entrada y todos los clientes anteriores a esa fecha utilizan únicamente tablas en texto. Desconozco a partir de cuándo se hizo el cambio pero tal fecha es cercana a la del cliente que me has comentado, así que si nadie intenta resolverlo trataré de ayudarte, pero en esto antes tengo que preguntar a Judas o a Yommy. Si el inglés no es tu problema (que parece que no dado que puedes participar sin problemas en el resto del foro) y sabes que tu cliente utiliza bases de datos en texto, intenta utilizar esta guía en la wiki de Hercules. Si tu cliente utiliza cskroption.lub y me lo comentas intentaré ayudarte como pueda. Si no sabes lo que usa, intenta ambas maneras: una de las dos funciona 100% seguro (de hecho, creo que tu cliente aún usa bases de datos en texto pero no estoy seguro). Traigo nueva información: Ha sido exactamente en el cliente del 2012-04-10 cuando se cambió la forma de añadir items. En clientes anteriores sí funciona la guía que te comenté anteriormente. Para clientes del 2012-04-18 en adelante la forma de añadir items es distinta (y nunca he intentado añadir uno en un cliente nuevo). Siento mi relativa ineptitud en casos del cliente. ¡Un saludo! Edit 21-May: Me equivoqué un poco con una fecha de cliente. Era 2012-04-18, no 2012-04-2012, aunque era obvio que ahí había algún fallo.
  12. A good suggestion for this would be implementing a way of making OP or owners accounts to run @commands from IRC, even if you can still use @commands through the console (maybe for cellphone users without the need of installing a SSH client to connect the server?).
  13. 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?
  14. Well, I'd go for it since it's more efficient and supposedly Hercules is more efficience-based than rAthena. More efficiency means less server resource cost to be run and/or more server capacity for the same resources.
  15. ¡Hola! Desgraciadamente no soy bueno en temas de cliente (ni de source, aunque es otro problema), pero creo que para precisamente eso sí puedo defenderme y si bien mi conocimiento no es suficiente como para hacer una guía completa, con algo de suerte puedo orientarte lo suficiente como para que puedas hacerlo. Solamente dime: ¿es un cliente que usa cskroption.lub (o algún otro lua o lub) para los items o tiene las tablas de items en texto? El método de adición de items custom en cada uno de ellos es distinto. ¡Un saludo!
  16. 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?
  17. 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?
  18. ¡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.
  19. jaBote

    Script Suggestion

    Well, it may be easier for newbies, but I'd still go for the loop. Reason is simple: there's lot of documentation already and almost any scripting guide (not script_commands.txt which is a reference but an actual guide) also shows how to loop through the result set. And well, I may not be used to Java structure, but your example makes me think classic loop can be easier too - no need of invoking any artificial method of advancing through the resultset.
  20. jaBote

    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.
  21. Well, I haven't tested it myself, but it's supposed this changes your aura whenever you use this command and type an aura ID. These auras also seem not to be customizable at all by seeing this topic.
  22. 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.
  23. I'd prefer you to use my second version, which is more resource cost-effective, which I made on the other reply to this post. About the related source mods: it's quite complicated to make them as far as I know, so I doubt you can get those mods so easily. In rAthena forums there's a full faction ststem made by an user named Lilith, but it's sold for $20, but it's incompatible with Hercules.
  24. LoL Capuche you're right about the init, but I made this in a hurry and didn't have time to revise it. Talking of the freeloop(1) I've also put it because I misunderstood the command, so it's removed now. Thanks. A more efficient and easier to understand (there are no getd's), but a bit harder to configure version (I mean, using arrays) could be like this: // [jaBote] Simple faction script.// Done with arrays to save lots of variables and improve efficiency (especially when using 3+ factions).- script Factions Manager -1,{ OnInit: // Factions configurations. set .forever, 1; // Are factions forever (value: 1) or can you decide them whenever you log in (value: 0)? // To add more factions, you need to increase ALL arrays with proper information. // You can add up to 127 factions. Number of factions is calculated based on the size of the arrays // eg: setarray .faction_names$[1],"Red","Blue"; ------> setarray .faction_names$[1],"Red","Blue","Yellow"; setarray .faction_names$[1],"Red","Blue"; // Faction names setarray .faction_items[1],7575,7576; // Items to give to faction players, CHANGE them to any item IDs you want. They should be character-bound and not obtainable anywhere else. setarray .faction_effects[1],22,33; // Effects for faking an aura, CHANGE them to any existent effects from effects_list.txt setarray .faction_effectdelays[1],10000,10000; // Delay, in milliseconds, for reapplying the faction effects so they seem consistents auras // More info on effects: https://github.com/HerculesWS/Hercules/blob/master/doc/effect_list.txt set .init, 1; end; OnPCLoginEvent: if (!.init) donpcevent strnpcinfo(3)+"::OnInit"; // Faction data from OnInit MUST be loaded if (!(.forever && faction)) { // Need to set faction as you don't have one mes "Hey " + strcharinfo(0) + "! Pick a faction!"; for (set .@i, 1; .@i < getarraysize(.faction_items); set .@i, .@i + 1){ // Dynamic menu set. Condiction is strict because of the array offsets set .@menu$, .@menu$ + .faction_names$[.@i]; // Dynamically getting the name of the faction if (.@i < (getarraysize(.faction_items) - 1)) set .@menu$, .@menu$ + ":"; } set faction, select(.@menu$); next; mes "You're now in the " + .faction_names$[faction] + " faction."; getitem .faction_items[faction]; close2; } doevent strnpcinfo(3)+"::OnMakeAura"; // Do Aura Loop end; OnMakeAura: enable_items; // May be a possible exploit but it's necessary misceffect .faction_effects[faction]; addtimer .faction_effectdelays[faction],strnpcinfo(3)+"::OnAuraRefresh"; end; OnAuraRefresh: deltimer strnpcinfo(3)+"::OnAuraRefresh"; doevent strnpcinfo(3)+"::OnMakeAura"; // Start again end; OnPCLogoutEvent: if (!.forever && countitem(.faction_items[faction])) delitem .faction_items[faction],1; end;} This one is much faster and does the same. This script is just a BASIC faction system, and you can only make some other scripts react to the faction the players are in. Any advanced actions (Faction guardians, PvP between factions, etc), require source edits.
  25. 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
×
×
  • Create New...

Important Information

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