Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    42

Reputation Activity

  1. Upvote
    jaBote got a reaction from fourxhackd in Dastgir's Services   
    Topic approved. Best of luck!
     
    P.S.: I can assure you he's one of the best guaranteed paid services to date: you just have to check his previous career, and the reputation, dedication and past contributions he's had here at Hercules.
  2. Upvote
    jaBote got a reaction from Echoes in Is there another way to reload scripts?   
    you could make a script for that
     
    - script reloadnpcfile -1,{OnInit: bindatcmd "reloadnpcfile",strnpcinfo(3)+"::OnAtcommand"; end;OnAtcommand: if (getgmlevel() < 99) end; atcommand "@unloadnpcfile " + [email protected]_parameters$[0]; atcommand "@loadnpc " + [email protected]_parameters$[0]; message strcharinfo(0), "NPC file " + [email protected]_parameters$[0] + " reloaded if you didn't get any problem with the other commands. AVOID RELOADING ANY MOBS OR MAPFLAGS WITH THIS COMMAND."; end;}
  3. Upvote
    jaBote got a reaction from grimmm in npc_event: player's event queue is full   
    1st answer: combine these events in just an NPC since you've got too many OnNPCKilEvent events.
     
    Or either:
     
    2nd answer: go to src/map/map.h, line 34
    #define MAX_EVENTQUEUE 2  
    Change to any number not to big (you need at least 5 ATM, I'd set it to like 10) and recompile.
  4. Upvote
    jaBote got a reaction from NiklPar 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?
  5. Upvote
    jaBote got a reaction from Like it~* in Oktoberfest ACT and SPR files   
    File Name: Oktoberfest ACT and SPR files
    File Submitter: jaBote
    File Submitted: 31 Dec 2013
    File Category: Sprites & Palettes
     
    These are the Oktoberfest ACT and SPR files available at fRO server GRF, just for these who don't have them, along with their correct location inside the GRF.
     
    I will provide no support for these since I didn't make them and the fact that I'm not quite good on client-side.
     
    You only have to download one of two files offered here:
     
    File 1 (data.zip) provides the content extracted from the GRF, while file 2 (oktoberfest.zip) contains an oktoberfest.grf file with the same contents, for easy management and merging with existing GRFs. It's not necessary to download both of them.
     
    Click here to download this file
  6. Upvote
    jaBote got a reaction from monkey77 in Custom Enchantment System   
    Here you go: http://upaste.me/8bfd59863044c49a
     
    This leaves me with a feeling of having broken something but I can't find nothing, so please tell me if I really did. I have no console for testing right now. Tell me if it works properly
     
    Please, edit yourself all references to the rest of armors this NPC supposedly enchanted. I've left it up to you since I have other things to do and time is tight on me.
     
    Edit: if this is correct, which post do I mark as solved? This one or the other NPC modification?
  7. Upvote
    jaBote reacted to Haru in Three suggestions to Huld   
    This is something I started working on a while ago (but I had to suspend it in order to take care of some other urgent issues). 
    The reason why I wanted to split it is another: the current .po file is very large, and it crashes (or is rejected by) various .po editors (both online and offline). My idea was to generate, instead, one .po for each .txt file in the scripts folder (and load them when loading each .txt). This would also have a positive side-effect of only loading the strings that are actually needed (and potentially warn you if a .po is missing).
    Preliminary work to support this was started in the split-huld branch in my fork of the repository (commit 908d531f. So far only the generation is handled, the loading part is not yet implemented.
    If there's interest for that, I'll resume working on it.
  8. Upvote
    jaBote reacted to Ragno in hercules   
    El archivo que estás abriendo es un archivo para importar configuraciones custom, es decir, un archivo en donde puedes poner cosas custom sin la necesidad de tener que editar el archivo base.
     
    Para efectos prácticos, creo que saldría mejor editar el archivo base y para ello ve a la carpeta "conf\common\" y ahí busca el archivo "inter-server.conf", donde se muestran todas las configuraciones disponibles:
     
     
     
     
    Por cierto, te recomiendo poner un título más preciso al tema, ya que un título tan general como este generará mucha confusión en la comunidad.
  9. Upvote
    jaBote reacted to Ragno in Mapa de Granja   
    Los únicos mapas que recuerdo tienen un aspecto similar a una granja, podrían ser los de las carreras de hugel:
     

     
    Esos mapas son p_track01 y p_track02. Con tan pocos datos no sé si sea el que hayas visto.
  10. Upvote
    jaBote reacted to Edgar in iz_ac02 no puedo moverme de hay   
    No soy experto, pero en casos similares he actualizado el mapcache con ayuda del WeeMapCache.

    No puedo proporcionarte una guía, por que la verdad lo realice empíricamente.

    Espero al menos te sirva para darte un norte, saludos.
  11. Upvote
    jaBote reacted to DarkGuerra in comando matar un Mob ?   
    @killmonster
    @killmonster2
  12. Upvote
    jaBote got a reaction from Darkzide in can some one make this compatible to herc   
    I've codeboxed your code. Please codebox it prior to posting since it easens our work.
     
    I've changed 4 'Case' to 'case since that's the only script error found there (in addition to missing tabs to separate appropriate parts of the NPC declarations. I won't fix again this kind of errors for you since you've already been explained how to solve them (and console tells you how to fix them yourself anyways).
     
    Here's your script:
     
    // Settings :// - Only required to edit the ShopSetting() Function// Notes : You may also add / remove Menu ( If any ) // - Shop Currency can be either ItemID or Variable Name, but must write within Quotation Marks ( "" )// Ex. of Variable. -> Zeny , #CASHPOINTS , #KAFRAPOINTS , CustomVariable , #CustomVariable// - ERROR Message are used to show Invalid Settings in your NPC. // Leave this alone...- shop Emistry_Shop -1,512:100 quiz_02,300,237,5 script Sample 757,{function ShopSettings;function ValidateCost;function CurrencyInfo;function ClearData;function ValueConvert;function ErrorNotice; mes "Each Shop from the Menu may purchase using ^FF0000Different Currency^000000.";mes "^00FF00____________________________^000000";mes "So,Which shop you would like to look at it";next;// Menu Selectionselect("Shop 1","Shop 2","Shop 3"); ClearData();ShopSettings( @menu );npcshopitem "Emistry_Shop",512,100;npcshopdelitem "Emistry_Shop",512;for(set [email protected],0; [email protected] < getarraysize( @ItemLists ); set [email protected],[email protected]+1) npcshopadditem "Emistry_Shop",@ItemLists[[email protected]],@ItemCost[[email protected]];mes "Okay...wait awhile";mes "^00FF00____________________________^000000";CurrencyInfo( @Currency$ );mes "^00FF00____________________________^000000";callshop "Emistry_Shop",1;npcshopattach "Emistry_Shop";end; function ShopSettings { switch( getarg(0) ){ case 1: // Currency [ Item ID / Variable Name ] set @Currency$,"7179"; // Item ID Lists setarray @ItemLists[0],6153,7227; // Item Price setarray @ItemCost[0],100,1; break; case 2: // Currency [ Item ID / Variable Name ] set @Currency$,"7227"; // Item ID Lists setarray @ItemLists[0],2306,2302,2303,2304,2305,2301; // Item Price setarray @ItemCost[0],2,2,3,4,5,6; break; case 3: // Currency [ Item ID / Variable Name ] set @Currency$,"#CASHPOINTS"; // Item ID Lists setarray @ItemLists[0],2306,2302,2303,2304,2305,2301; // Item Price setarray @ItemCost[0],20,22,34,445,52,641; break; // case 4,5,6.....etc... default: ErrorNotice( "Invalid Menu Selection for Menu "[email protected]+"." ); close; } if( @Currency$ == "" ) ErrorNotice( "Invalid Currency Setting in Menu "[email protected]+" ." );if( getarraysize( @ItemCost ) != getarraysize( @ItemLists ) || getarraysize( @ItemLists ) != getarraysize( @ItemCost ) ) ErrorNotice( "Missing or Extra Value of Item or Cost Settings in Menu "[email protected]+" ." );return;} function ErrorNotice { mes "^FF0000ERROR^000000 - "+getarg(0); mes "^00FF00____________________________^000000"; mes "Inform this Message to ^0000FFGame Staffs^000000 immediately !"; close;} function CurrencyInfo { if( getitemname( atoi( getarg(0) ) ) != "null" ){ mes "Item Currency : ^FF0000"+getitemname( atoi( getarg(0) ) )+"^000000"; mes "Available Amount : ^0000FF"+ValueConvert( countitem( atoi( getarg(0) ) ) )+"^000000"; }else if( getitemname( atoi( getarg(0) ) ) == "null" ){ mes "Variable Currency : ^FF0000"+getarg(0)+"^000000"; mes "Available Amount : ^0000FF"+ValueConvert( getd( getarg(0) ) )+"^000000"; }return;} function ValidateCost { if( getitemname( atoi( getarg(0) ) ) != "null" ){ if( countitem( atoi( getarg(0) ) ) < getarg(1) ) return 1; }else{ if( getd( getarg(0) ) < getarg(1) ) return 1; }return 0;} function ClearData { set @Currency$,""; set @TotalCost,0; deletearray @bought_nameid[0],getarraysize( @bought_nameid ); deletearray @bought_quantity[0],getarraysize( @bought_quantity ); deletearray @ItemLists[0],getarraysize( @ItemLists ); deletearray @ItemCost[0],getarraysize( @ItemCost );return;} function ValueConvert { set [email protected], atoi(""+getarg(0)); if ( [email protected] == 0 || [email protected] >= 2147483647 ) return getarg(0); set [email protected], getstrlen(""[email protected]); for ( set [email protected],0; [email protected] < [email protected]; set [email protected], [email protected] + 1 ) { set [email protected]$, [email protected] % pow(10,[email protected]+1) / pow(10,[email protected]) + [email protected]$; if ( ([email protected]+1) % 3 == 0 && [email protected]+1 != [email protected] ) set [email protected]$, ","+ [email protected]$; } return [email protected]$;} OnBuyItem: ShopSettings( @menu ); for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1) for(set @j,0; @j < getarraysize( @ItemLists ); set @j,@j+1) if( @ItemLists[@j] == @bought_nameid[@i] ) set @TotalCost,@TotalCost + ( @ItemCost[@j] * @bought_quantity[@i] ); mes "^FF0000 BILLING LIST^000000"; mes "^00FF00____________________________^000000"; for( set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1 ) mes "^FF0000"[email protected]_quantity[@i]+" x ^0000FF"+getitemname( @bought_nameid[@i] )+"^000000"; mes "^00FF00____________________________^000000"; if( getitemname( atoi( @Currency$ ) ) != "null" ) mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" x "+getitemname( atoi( @Currency$ ) )+"^000000"; else if( getitemname( atoi( @Currency$ ) ) == "null" ){ mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" "[email protected]$+"^000000"; } mes "^00FF00____________________________^000000"; if( ValidateCost( @Currency$,@TotalCost ) ){ if( getitemname( atoi( @Currency$ ) ) != "null" ) mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+getitemname( atoi( @Currency$ ) )+"^000000"; else{ mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"[email protected]$+"^000000"; } }else{ if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){ if( getitemname( atoi( @Currency$ ) ) != "null" ) delitem atoi( @Currency$ ),@TotalCost; else{ set getd( @Currency$ ),getd( @Currency$ ) - @TotalCost; } for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1) getitem @bought_nameid[@i],@bought_quantity[@i]; message strcharinfo(0),"Purchased "+getarraysize( @bought_nameid )+" Items."; mes "Thank you for shopping."; } }ClearData();close; }
  13. Upvote
    jaBote got a reaction from nakatto in [RESOLVIDO]Vip Grátis   
    Tente usã-lo nesta estrutura:
    - script VipGratis -1,{OnPCLoginEvent: if (#vipUsado) end; $nivelVip = 1; $diasVip = 7; query_sql("UPDATE `login` SET `group_id` = "+$nivelVip+", `data_vip` = DATE_ADD(CURDATE(),INTERVAL "+$diasVip+" DAY) WHERE `account_id` = "+getcharid(3)); #vipUsado = 1; end;}
  14. Upvote
    jaBote reacted to Waken in [Ayuda] Ideas para Quest   
    Puedes hacer multitud de cosas ...
     
    - Quest de historia : Hablar con múltiples npcs eligiendo tal vez las opciones correctas hasta llegar a resolver la trama.
    - Quest de busqueda : Encontrar a alguien escondido o localizaciones.

    No estoy muy inspirado ahora mismo, pero tienes multitud de comandos, te recomiendo que te fijes en los comandos en script_commands seguramente se te ocurran quest e ideas cuando veas las posibilidades que tienes.
  15. Upvote
    jaBote reacted to Darknessfmy in Problema con Prontera.   
    Mi aporte corregido:
    https://github.com/rathena/rathena/issues/1222#issuecomment-217650154
     
    Abre el data.grf extrae nueva prontera, abre weemapcache con tu mapcache.dat busca prontera y eliminala, luego agrega la nueva prontera y guarda, compilas el emulador y ya funcionaran los gats.
    luego usa mi corrección en el link y te andaran bien los warps en prt.
  16. Upvote
    jaBote reacted to M45T3R in [Ayuda] Custom peinados   
    En la ruta /ro/conf/battle/player.conf
    // Valid range of dyes and styles on the client. min_hair_style: 0 max_hair_style: 43 min_hair_color: 0 max_hair_color: 251 min_cloth_color: 0 max_cloth_color: 553 min_body_style: 0 max_body_style: 1 Encuentras esos valores, en mi caso ya los tenia customizados.. solo es que pongas tus minimos y maximos.
     
    Suerte !
  17. Upvote
    jaBote got a reaction from tupe1387 in Reset NPC   
    Maybe this untested NPC edit could help you do that? I took a different approach than Happy's because I think it's a bit cleaner this way:
     
    //===== Hercules Script ======================================//= Reset NPC//===== By: ==================================================//= Hercules Dev Team//===== Current Version: =====================================//= 1.3//===== Description: =========================================//= Resets skills, stats, or both.//===== Additional Comments: =================================//= 1.0 First Version//= 1.1 Optimized for the greater good. [Kisuka]//= 1.2 Cleaning [Euphy]//= 1.3 All statuses removed upon skill reset. [Euphy]//===== Custom Additions: ====================================//= 1.3a Custom reset limits. Modernized syntax [jaBote]//============================================================prontera,150,193,4 script Reset Girl 4_F_TELEPORTER,{ [email protected] = 5000; // Zeny for stat reset [email protected] = 5000; // Zeny for skill reset [email protected] = 9000; // Zeny for resetting both together [email protected] = 3; // Max amount of resets. Must be positive. mes "[Reset Girl]"; mes "I am the Reset Girl."; if ([email protected]) { mes "You can reset your character up to " + [email protected] + " times."; if (ResetCount >= [email protected]) { mes "Sorry, you've already used all of your available resets."; close; } mes "You've already used this service for " + ResetCount + " time(s)."; } mes "Reset Stats: "+ [email protected] +"z"; mes "Reset Skills: "+ [email protected] +"z"; mes "Reset Both: "+ [email protected] +"z"; mes "Please select the service you want:"; next; switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) { case 1: mes "[Reset Girl]"; if (Zeny < [email protected]) { mes "Sorry, you don't have enough Zeny."; close; } if ([email protected]) ResetCount++; Zeny -= [email protected]; sc_end SC_ALL; resetskill; mes "There you go!"; close; case 2: mes "[Reset Girl]"; if (Zeny < [email protected]) { mes "Sorry, you don't have enough Zeny."; close; } if ([email protected]) ResetCount++; Zeny -= [email protected]; resetstatus; mes "There you go!"; close; case 3: mes "[Reset Girl]"; if (Zeny < [email protected]) { mes "Sorry, you don't have enough Zeny."; close; } if ([email protected]) ResetCount++; Zeny -= [email protected]; sc_end SC_ALL; resetskill; resetstatus; mes "There you go!"; close; case 4: close; }}
  18. Upvote
    jaBote got a reaction from MrDracula in Hercules vs rAthena   
    It depends on what you want. Keep in mind that if you ask this here and in rAthena, you'll get here replies that say "Hercules is better" and in rAthena forums you'll be told that "rAthena is better". Correct reply is "Hercules is better in some ways, rAthena is better in some other ways".
     
    We don't get any commission or whatever based on users, (unlike rAthena we don't even place adverts on our pages), but it's an administrator preference.
     
    Here in Hercules we have the fastest and most optimized Ragnarok Online emulator to the moment and there's no possible argument to this: you can run the map server on 70 MB RAM, while rAthena consumes around 200 MB on an idle state. Anyways, this varies on the amount of maps and NPCs you load on your server, and in the amount of users you have. It's also a fact that Hercules consumes much less processing time than rAthena, but I'm not aware of how much. This also means Hercules boots faster than rAthena and has some caching system for even faster boot at the cost of some disk space. Note that these measures also vary depending on the OS you're using
     
    Hercules has some features that rAthena doesn't, and vice versa. For example we have an anti WPE security system (depends on client version) and some unique features (some of them were also merged in rAthena). The same happens on rAthena side, but I'm not well informed on that.
     
    Emulator stability is comparable, but since in Hercules we introduce and make more features it's quite obvious we are a bit riskier on that and may crash a bit more. Anyways, our bug fixing is way faster than rAthena. We're also comparable in emulator support, too, but I believe we've more answered topics in relation to our total amount that rAthena.
     
    The biggest flaw I can see out there is on the scripting and db development side, since rAthena is more active than us on that side (in fact, we seriously lack on them). Anyways, you can generally import all of them here with very little to no effort, most cases it's just a copy and paste issue and they'll work. We're also lifting some IMPORTANT scripting limitations at the moment and have no information of rAthena doing that at the moment.
     
    We've also support for the last 3rd job skills while rAthena doesn't (with good formulas but still not perfect), but neither of us have Rebellion yet.
     
    And we've also have a plugin system that allow you to make new features without the need of creating conflicts in the source code when updating. Anyways I still don't know why third party devs like eAmod still don't want to support us because it's pretty damn easy to do that with the plugin system which was specifically designed for them. I prefer to think they're lazy bums and only want to sell, because in eAmod case they tell you they support Hercules but then when you buy it they tell you it's still in merging process (it's been like 3 months merging, seriously?). Anyways, it's not that I personally like that much people getting rich at the cost of our free emulator.
     
    In short, if you want my opinion:
     
    Performance: Hercules
    Stability: If you mind it over all other things, use rAthena because it's slightly more stable but not much. Else it doesn't quite matter.
    Support: Hercules for bug fixing, doesn't matter for forum support.
    Development of new features: Hercules
    Development of scripts: rAthena (but you can just copy them over here most of the cases).
    Third party support: Still rAthena.
  19. Upvote
    jaBote reacted to evilpuncker in Problema con Prontera.   
    usted tiene que hacer de nuevo el MapCache
  20. Upvote
    jaBote got a reaction from Easycore 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.
  21. Upvote
    jaBote got a reaction from KaL EL ™ in Hercules vs rAthena   
    It depends on what you want. Keep in mind that if you ask this here and in rAthena, you'll get here replies that say "Hercules is better" and in rAthena forums you'll be told that "rAthena is better". Correct reply is "Hercules is better in some ways, rAthena is better in some other ways".
     
    We don't get any commission or whatever based on users, (unlike rAthena we don't even place adverts on our pages), but it's an administrator preference.
     
    Here in Hercules we have the fastest and most optimized Ragnarok Online emulator to the moment and there's no possible argument to this: you can run the map server on 70 MB RAM, while rAthena consumes around 200 MB on an idle state. Anyways, this varies on the amount of maps and NPCs you load on your server, and in the amount of users you have. It's also a fact that Hercules consumes much less processing time than rAthena, but I'm not aware of how much. This also means Hercules boots faster than rAthena and has some caching system for even faster boot at the cost of some disk space. Note that these measures also vary depending on the OS you're using
     
    Hercules has some features that rAthena doesn't, and vice versa. For example we have an anti WPE security system (depends on client version) and some unique features (some of them were also merged in rAthena). The same happens on rAthena side, but I'm not well informed on that.
     
    Emulator stability is comparable, but since in Hercules we introduce and make more features it's quite obvious we are a bit riskier on that and may crash a bit more. Anyways, our bug fixing is way faster than rAthena. We're also comparable in emulator support, too, but I believe we've more answered topics in relation to our total amount that rAthena.
     
    The biggest flaw I can see out there is on the scripting and db development side, since rAthena is more active than us on that side (in fact, we seriously lack on them). Anyways, you can generally import all of them here with very little to no effort, most cases it's just a copy and paste issue and they'll work. We're also lifting some IMPORTANT scripting limitations at the moment and have no information of rAthena doing that at the moment.
     
    We've also support for the last 3rd job skills while rAthena doesn't (with good formulas but still not perfect), but neither of us have Rebellion yet.
     
    And we've also have a plugin system that allow you to make new features without the need of creating conflicts in the source code when updating. Anyways I still don't know why third party devs like eAmod still don't want to support us because it's pretty damn easy to do that with the plugin system which was specifically designed for them. I prefer to think they're lazy bums and only want to sell, because in eAmod case they tell you they support Hercules but then when you buy it they tell you it's still in merging process (it's been like 3 months merging, seriously?). Anyways, it's not that I personally like that much people getting rich at the cost of our free emulator.
     
    In short, if you want my opinion:
     
    Performance: Hercules
    Stability: If you mind it over all other things, use rAthena because it's slightly more stable but not much. Else it doesn't quite matter.
    Support: Hercules for bug fixing, doesn't matter for forum support.
    Development of new features: Hercules
    Development of scripts: rAthena (but you can just copy them over here most of the cases).
    Third party support: Still rAthena.
  22. Upvote
    jaBote got a reaction from Hadou Kaen in @whodrops full list?   
    No configs can change that AFAIK. @whodrops is limited by MAX_SEARCH constant in source, which is set in src/map/itemdb.h if I recall correctly. Either change that value from that file (which could also change any other feature in which it's used) or go to src/map/atcommand.c and go change MAX_SEARCH parameter to whatever number you want.
  23. Upvote
    jaBote reacted to Haru in [2015-12-31] FAKE_NPC and the NPC View ID -1   
    @@Oxxy 49 66 20 79 6F 75 20 70 72 65 66 65 72 20 72 65 61 64 69 6E 67 20 6E 75 6D 62 65 72 73 20 74 68 61 6E 20 77 6F 72 64 73 2C 20 6E 6F 74 68 69 6E 67 20 70 72 65 76 65 6E 74 73 20 79 6F 75 20 66 72 6F 6D 20 64 65 66 69 6E 69 6E 67 20 74 68 6F 73 65 20 6E 75 6D 62 65 72 73 20 61 73 20 63 6F 6E 73 74 61 6E 74 73 2C 20 62 79 20 65 64 69 74 69 6E 67 20 63 6F 6E 73 74 61 6E 74 73 2E 63 6F 6E 66 2E. Sarcasm aside, it's just ASCII codes. If you decode it, it contains a solution that should work for you.
     
    @@vykimo If you're not pleased, you can use any other emulator. We provide both content updates and architecture modernization, and we will keep doing so as long as the project lives. If you want to stick to the early 2000's coding practices *and* use Hercules at the same time, then feel free to make your own fork, and undo the changes you don't like. As you can see in my post, I specified the related commits, so they're easy to revert.
  24. Upvote
    jaBote reacted to Haru in [2015-12-31] FAKE_NPC and the NPC View ID -1   
    Rationale:
    This is part of the NPC scripts standardization project. In the past, NPCs were defined with numeric View IDs, while now we've replaced most of them with more human-readable (and as such easier to maintain) constants - the same constants that AEGIS scripts use, making the numeric IDs obsolete (and deprecated).
     
    Contents:
    When the NPC View IDs were converted to constants, the only leftover was the special ID '-1' we use for invisible / floating NPCs, that didn't have an equivalent constant defined at the time.
    This changeset defines a constant 'FAKE_NPC' for it, and replaces all the '-1' view IDs with the new constant.
    The exception for the -1 case is removed from the code (making it effectively deprecated, just like the other numeric IDs).
     
    Impact:
    The impact of this changeset on custom scripts is low. All old code will still work (but it'll throw a deprecation warning).
    It's recommended to update all the affected code as soon as possible - the support for the old style IDs may be removed from the code at any time in the future (after at least a month from the commit).
     
    Details:
    The use of the sprite ID '-1' in NPC headers to specify an invisible NPC is now deprecated. 'FAKE_NPC' should be used instead. This affects all NPC types (script, shop, trader, duplicate, etc)
    /* Before: */ - script TurboTrap#tt_main -1,{ // ... } in_moc_16,65,162,0 duplicate(SinTrap) 02_2 -1,0,0 /* Now: */ - script TurboTrap#tt_main FAKE_NPC,{ // ... } in_moc_16,65,162,0 duplicate(SinTrap) 02_2 FAKE_NPC,0,0 Merge Date:Thu, 31 Dec 2015 23:40:48 +0100
     
    Related Pull Requests:
    - #1000 - https://github.com/HerculesWS/Hercules/pull/1000 - define FAKE_NPC as -1 in const.txt [AnnieRuru]
     
    Related Commits:
    - ef171a8 - https://github.com/HerculesWS/Hercules/commit/ef171a8 - Mon, 21 Dec 2015 19:59:38 +0800 define FAKE_NPC as -1 in const.txt [AnnieRuru]
    - efaaf84 - https://github.com/HerculesWS/Hercules/commit/efaaf84 - Mon, 21 Dec 2015 20:12:45 +0800 Replace -1,{ with FAKE_NPC,{ replace using Notepad++ [AnnieRuru]
    - b4c99db - https://github.com/HerculesWS/Hercules/commit/b4c99db - Tue, 29 Dec 2015 02:16:49 +0100 Replaced leftover -1 view IDs with FAKE_NPC [Haru]
    - 32a42ee - https://github.com/HerculesWS/Hercules/commit/32a42ee - Tue, 29 Dec 2015 02:17:26 +0100 Extended the numeric view ID deprecation to '-1' (FAKE_NPC) [Haru]
    - 0e99004 - https://github.com/HerculesWS/Hercules/commit/0e99004 - Thu, 31 Dec 2015 23:40:48 +0100 Merge branch 'AnnieRuru-request_29' into hercules [Haru]
     
    Trivia:
    Commit efaaf84 was done with a find and replace in Notepad++, to globally replace '-1' view IDs with 'FAKE_NPC' (as described in the commit notes).
    Commit b4c99db caught the leftovers (less common cases where the -1 is not followed by ',{'), and was powered by vim macros and grep (and vimgrep). It also features manual clean up of trailing whitespace or extra tabs in a small subset of the affected lines.
  25. Upvote
    jaBote got a reaction from Legend in Hercules vs rAthena   
    It depends on what you want. Keep in mind that if you ask this here and in rAthena, you'll get here replies that say "Hercules is better" and in rAthena forums you'll be told that "rAthena is better". Correct reply is "Hercules is better in some ways, rAthena is better in some other ways".
     
    We don't get any commission or whatever based on users, (unlike rAthena we don't even place adverts on our pages), but it's an administrator preference.
     
    Here in Hercules we have the fastest and most optimized Ragnarok Online emulator to the moment and there's no possible argument to this: you can run the map server on 70 MB RAM, while rAthena consumes around 200 MB on an idle state. Anyways, this varies on the amount of maps and NPCs you load on your server, and in the amount of users you have. It's also a fact that Hercules consumes much less processing time than rAthena, but I'm not aware of how much. This also means Hercules boots faster than rAthena and has some caching system for even faster boot at the cost of some disk space. Note that these measures also vary depending on the OS you're using
     
    Hercules has some features that rAthena doesn't, and vice versa. For example we have an anti WPE security system (depends on client version) and some unique features (some of them were also merged in rAthena). The same happens on rAthena side, but I'm not well informed on that.
     
    Emulator stability is comparable, but since in Hercules we introduce and make more features it's quite obvious we are a bit riskier on that and may crash a bit more. Anyways, our bug fixing is way faster than rAthena. We're also comparable in emulator support, too, but I believe we've more answered topics in relation to our total amount that rAthena.
     
    The biggest flaw I can see out there is on the scripting and db development side, since rAthena is more active than us on that side (in fact, we seriously lack on them). Anyways, you can generally import all of them here with very little to no effort, most cases it's just a copy and paste issue and they'll work. We're also lifting some IMPORTANT scripting limitations at the moment and have no information of rAthena doing that at the moment.
     
    We've also support for the last 3rd job skills while rAthena doesn't (with good formulas but still not perfect), but neither of us have Rebellion yet.
     
    And we've also have a plugin system that allow you to make new features without the need of creating conflicts in the source code when updating. Anyways I still don't know why third party devs like eAmod still don't want to support us because it's pretty damn easy to do that with the plugin system which was specifically designed for them. I prefer to think they're lazy bums and only want to sell, because in eAmod case they tell you they support Hercules but then when you buy it they tell you it's still in merging process (it's been like 3 months merging, seriously?). Anyways, it's not that I personally like that much people getting rich at the cost of our free emulator.
     
    In short, if you want my opinion:
     
    Performance: Hercules
    Stability: If you mind it over all other things, use rAthena because it's slightly more stable but not much. Else it doesn't quite matter.
    Support: Hercules for bug fixing, doesn't matter for forum support.
    Development of new features: Hercules
    Development of scripts: rAthena (but you can just copy them over here most of the cases).
    Third party support: Still rAthena.
×
×
  • Create New...

Important Information

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