Popular Content

Showing content with the highest reputation since 05/20/18 in all areas

  1. 20 points

    kRO unpacked clients releases

    Hello Hercules users, In this topic we're sharing the latest kRO unpacked clients, please notice that those clients are for development purposes, the clients listed in here are tested by the dev team and they're working, however we do not offer support in this topic for any problem. If you want to use these clients use them at your own risk. Ragexe Ragexe_zero 2013-06-18#1aRagexeRE 2013-06-26_3bRagexeRE 2014-09-17cRagexeRE 2015-10-28bRagexeRE_2 2015-12-30aRagexeRE 2016-01-13bRagexeRE_2 2016-01-27aRagexeRE_2 2016-02-17bRagexeRE_2 2016-08-24aRagexeRE 2017-02-01aRagexeRE 2017-02-08bRagexeRE 2017-04-12aRagexeRE 2017-04-19bRagexeRE 2017-04-26dRagexeRE 2017-06-07cRagexeRE 2017-07-26cRagexeRE 2017-08-23aRagexeRE 2017-08-30bRagexeRE 2017-09-13bRagexeRE 2017-09-20bRagexeRE 2017-09-27bRagexeRE 2017-09-27dRagexeRE 2017-10-02cRagexeRE 2017-10-11aRagexeRE 2017-10-11bRagexeRE 2017-10-18aRagexeRE 2017-10-25bRagexeRE 2017-10-25cRagexeRE 2017-10-25dRagexeRE 2017-10-25eRagexeRE 2017-11-01bRagexeRE 2017-11-08bRagexeRE 2017-11-15aRagexeRE 2017-11-22bRagexeRE 2017-11-29aRagexeRE 2017-12-06aRagexeRE 2017-12-13bRagexeRE 2017-12-20aRagexeRE 2017-12-27aRagexeRE 2018-01-03aRagexeRE 2018-01-03bRagexeRE 2018-01-17aRagexeRE 2018-01-24bRagexeRE 2018-02-07bRagexeRE 2018-02-13aRagexeRE 2018-02-21aRagexeRE 2018-02-21bRagexeRE 2018-03-07bRagexeRE 2018-03-21aRagexeRE 2018-03-28bRagexeRE 2018-04-04cRagexeRE 2018-04-18bRagexeRE 2018-04-25cRagexeRE 2018-05-02bRagexeRE 2018-05-02dRagexeRE 2018-05-16cRagexeRE 2018-05-23aRagexeRE 2018-05-30bRagexeRE 2018-06-05bRagexeRE 2018-06-12aRagexeRE 2018-06-12bRagexeRE 2018-06-20dRagexeRE 2018-06-20eRagexeRE (More clients to be added as they're released.) Red: client has something broken by default - not recommended for production if you're having trouble with download make sure to disable any download managers or try with a different browser Legal disclaimer: All rights reserved for Gravity CO. Ltd - these clients could be removed at anytime we receive a notice from them.
  2. 14 points

    Alayne's Scripts Collection

    < Alayne's Script Collection > After several asks, here's a link to my github Feel free to comment or add anything that might be usefull and that I won't think of I've decided to release my scripts here, it'll be easier to me so I can duplicate it on hercules and rathena rather than uploading twice. So sorry for multiple upload between there and download section Don't mind the name Nyliar in the git, that's me too ^^ < Instances > < Quests > < Event > < PvP Content > < Utilities > < Full Systems > < Dungeons > < Raid > < Battleground >
  3. 13 points

    [Guide] Mapcache Generation 2018

    As of Release v2018.03.13, the method to generate mapcache for Hercules has changed. A lot of people. myself included, were confused as to how it works. In this thread, I will do my best to explain the new way to generate your cache. This guide is intended to help people using the old system, not to aid new people (i.e. never generated mapcache before), so if you are new, some of it may seem like alien talk. Old (your source predates [is older than] Feb 18, 2018) In the old system, there were two ways to generate mapcache You could run the mapcache executable in Hercules root folder. Or use a program such as WeeMapCache to edit in your required mapcache. These two methods would generate or alter your required mapcache located in db/[pre-re or re]/map_cache.dat. However, they are no longer supported. New (your source is using Release v2018.03.13 or newer) The new system involves the use of the new 'mapcache' plugin to generate files. Some quick points: db/[pre-re or re]/map_cache.dat has been dropped (no longer supported). In its place are individual .mcache files for every map located in maps/[pre-re or re]/ Mapcache executable has been removed. Replaced with the mapcache plugin (src/plugins/mapcache.c). How to generate the mapcache? Same as before, check conf/map/maps.conf and db/map_index.txt have all the maps you want to cache. Your maps need to exist somewhere in your repository! There are two ways for the plugin to find them: a. Place all your maps, including resnametable.txt, inside the data folder of your Hercules repo. I.e. Hercules/data/prontera.gat/gnd/gnd/rsw (note: I forget if all three files are needed). b. OR Configure your conf/grf-files.txt to tell it where to find your GRF(s) which contains your maps. Build the mapcache plugin. On linux, this can be done by running the following command: make plugin.mapcache If using MSVC, compile as you would any other plugin. Execute plugin. This can be done using the following command: ./map-server --load-plugin mapcache [param] In windows, just remove the './' and run the commands in your command prompt. The params: The first thing you should do is run ./map-server --load-plugin mapcache --help A list of usable parameters will appear. Here are the ones you need to know for mapcache: [Info]: --convert-old-mapcache Converts an old db/pre-re/map_cache.dat file to the new format. [Mapcache] [Info]: --rebuild-mapcache Rebuilds the entire mapcache folder (maps/pre-re/), using db/map_index.txt as index. [Mapcache] [Info]: --map <name> Rebuilds an individual map's cache into maps/pre-re/ (usage: --map <map_name_without_extension>). [Mapcache] [Info]: --fix-md5 Updates the checksum for the files in maps/pre-re/, using db/map_index.txt as index (see PR #1981). [Mapcache] ./map-server --load-plugin mapcache --convert-old-mapcache Rebuild all the .mcache files using your old db/[pre-re or re]map_cache.dat file. ./map-server --load-plugin mapcache --rebuild-mapcache Rebuild all the .mcache files using your map files specified in step 2 of generation. ./map-server --load-plugin mapcache --map <name> Rebuild the .mcache file for the map name you specify. E.g. if you replace <name> with prontera, the maps/[pre-re or re]/prontera.mcache file will be rebuilt. ./map-server --load-plugin mapcache --fix-md5 I don't know what checksum is for. The End Feel free to ask for help here. I'll try to answer questions re: mapcache if possible. And if you think anything needs correcting or added, let me know. Hope this helps!
  4. 7 points

    Custom Unit HP Bar System

    Hello guys, i'm making a custom hp bar system for mob units. The command show the HP of the mob for all players in the map. I am using the cutin command, the problem is that I do not think so many files are necessary. In the case 1 image for each percentage of hp I would like your opnion and help to improve this system and make it lighter. Test yourselves :). HP Bar System: payon,147,229,4 script Test#HPbar 1_F_MARIA,{ if (.HP_Bar == 0) { .HP_Bar = 1; .mobGID = monster ("payon",148,226,"[T] HP Test",POPORING,1,strnpcinfo(0)+"::OnDie"); setunitdata .mobGID,UDT_MAXHP,4000; setunitdata .mobGID,UDT_HP,4000; [email protected] = getunits(BL_PC, [email protected], false, "payon"); for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) addtimer(0,strnpcinfo(0)+"::OnHPBar", [email protected][[email protected]]); } end; OnDie: .HP_Bar = 0; end; OnHPBar: .U_MAXHP = getunitdata (.mobGID,UDT_MAXHP); while (.HP_Bar != 0) { .U_HP = getunitdata (.mobGID,UDT_HP); .P_HP = (.U_HP*100)/.U_MAXHP; cutin("hpbar/"+.P_HP+"", 1); sleep2 100; } cutin("hpbar/0", 1); sleep2 5000; //Delay to hide HP Bar cutin("", 255); end; } Donwload of the data Images: HP Bar System.rar
  5. 6 points

    [Event] Wheel of fortune

    I've recently got a brilliant idea. Why not make my own version of a paid script, sold on rAthena and release it to Hercules for free!? (Not because I'm banned on rAthena ) I need a peer review before releasing the whole package. @Myriad Did a nice Peer review of my terribel kode... If anyone else would like to contribute, feel free. Otherwise, it is soon to be released UPD : I reDrew the cutins, they don't look like stolen from rAthena 1) configuration there are 2 arrays setarray .prize_id[1],-1,31024,31026,31008,31020,31017,31010,31016,0,31009; setarray .prize_qty[1],2,1,1,1,3,3,1,3,0,3; in prize_id if id is > 0, the prize is an item if id = 0 , the prize is NOTHING! if id = -1, the prizer is free spin (number of free spins set in qty array) in array .prize_qty you setup the quantity won //===== Hercules Script ====================================== //= Wheel of Fortune //===== By =================================================== //= Habilis //= Edited by Myriad //===== Description ========================================== //= Wheel of fortune something. //============================================================ - script Wheel_of_Fortune FAKE_NPC ,{ OnInit: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); .EventName$ = "[Wheel Of Fortune]"; end; OnMinute39: OnStart: query_sql("DELETE FROM `acc_reg_num_db` WHERE `key`='#freewheelfortunespin';"); announce(sprintf("%s : The event will begin in 1 minute, near the center of Prontera.", .EventName$), bc_blue | bc_all); initnpctimer(); end; OnTimer60000: // 1 min enablenpc("Wheel of Fortune#Main"); enablenpc("Hussein#WOF"); announce(sprintf("%s : Come to Prontera and test your luck, everyone got some free spins!", .EventName$), bc_blue | bc_all); end; OnTimer1800000: // 30 mins announce(sprintf("%s : One more minute, do your last spin!", .EventName$), bc_blue | bc_all); end; OnTimer1860000: // 31 mins OnStop: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); end; } prontera,159,178,3 script Hussein#WOF 1_M_MERCHANT,{ doevent("Wheel of Fortune#Main::OnTalk"); end; } prontera,155,176,3 script Wheel of Fortune#Main 2_SLOT_MACHINE,{ OnTalk: if (#freewheelfortunespin == 0) #freewheelfortunespin = .Free_Spins; if (getd(.Event_Points_Variable$) < .Points_Cost && #freewheelfortunespin < 0) { mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("You are out of points"); mes("and have no more free"); mes("spins! Come back next"); mes("time for more."); close(); } [email protected]$ = (#freewheelfortunespin > 0) ? sprintf(", but you, my friend, have %d free spin%s!", #freewheelfortunespin, (#freewheelfortunespin == 1) ? "" : "s") : "."; cutin("aca_salim02", 2); addtimer(1, sprintf("%s::OnEnd", strnpcinfo(NPC_NAME))); mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("Do you want to spin the wheel?"); mesf("It costs ^FF0000%d Event points^000000 to play%s", .Points_Cost, [email protected]$); next(); callsub(S_Loop); S_Loop: [email protected] = getd(.Event_Points_Variable$); if ([email protected] < .Points_Cost && #freewheelfortunespin < 0) callsub(S_End); switch (select( (#freewheelfortunespin > 0) ? sprintf("Yes! Use free spin! (%d left)", #freewheelfortunespin) : "", ([email protected] > 0) ? sprintf("Yes! Use Event Points. (%d remaining)", [email protected]) : "", "No (Leave)" )) { case 1: callsub(S_Pay, 0); case 2: callsub(S_Pay, 1); default: callsub(S_End); } S_Pay: switch (getarg(0)) { // pay with free spin case 0: if (#freewheelfortunespin > 0) { if ((#freewheelfortunespin -= 1) < 1) #freewheelfortunespin = -1; callsub(S_Gamble); } else callsub(S_End); // Pay with points case 1: default: if (([email protected] = getd(.Event_Points_Variable$)) >= .Points_Cost) { setd(.Event_Points_Variable$, ([email protected] -= .Points_Cost)); dispbottom(sprintf("%s : You now have %d event points.", .ServerName$, [email protected])); callsub(S_Gamble); } else { cutin("aca_salim02", 2); mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("Awww, you don't have enough to gamble..."); mes(" "); mes("Have you ever heard?"); mes("'Money isn't all that matters' Got it?"); mes("Byeeeeeeeeeeeeee ;)"); callsub(S_End); } } S_Gamble: // Actual Gambling [email protected] = rand(.Sector[0], .Sector[1]); [email protected] = ([email protected] * 2) - 1; [email protected] = .Spin_Speed; for ([email protected] = 0; [email protected] < .nbTurns; [email protected]++) { [email protected] = .Cutin[0]; while ([email protected] <= .Cutin[1]) { cutin(sprintf("%s%d", .cutin$, [email protected]), 4); sleep2([email protected]); [email protected]++; [email protected]++; } } [email protected] = .Cutin[0]; while ([email protected] < [email protected]) { cutin(sprintf("%s%d", .cutin$, [email protected]), 4); sleep2([email protected]); [email protected]++; } cutin(sprintf("%s%d", .cutin$, [email protected]), 4); if (.prize_id[[email protected]] == -1) { // Free spin if (.Sound_Effects) soundeffect("wheel_jackpot.wav", 0); announce(sprintf("[%s] : Wow, %d more Free spins!!!", .EventName$, .prize_qty[[email protected]]), bc_blue | bc_self); #freewheelfortunespin = #freewheelfortunespin == -1 ? .prize_qty[[email protected]] : #freewheelfortunespin + .prize_qty[[email protected]]; } else if (.prize_id[[email protected]] == 0) { // nothing if (.Sound_Effects) soundeffect("wheel_lost.wav", 0); announce(sprintf("[%s] : Awwww, No luck in gamble, more luck in love...", .EventName$), bc_blue | bc_self); } else { // item if (.Sound_Effects) soundeffect("wheel_won.wav", 0); announce(sprintf("[%s] : Enjoy your prize!!!", .EventName$), bc_blue | bc_self); getitem(.prize_id[[email protected]], .prize_qty[[email protected]]); } sleep2(1000); callsub(S_Loop); end; S_End: close2(); OnEnd: cutin("", 255); end; OnInit: .ServerName$ = "[Your boring server]"; .EventName$ = "Wheel Of Fortune"; .cutin$ = "WheelOfFortune_"; .Event_Points_Variable$ = "#LROEVENTPOINTS"; // The name of your event points variable setarray(.Sector, 1, 10); // Sector range setarray(.Cutin, 0, 19); // Cutin range .Spin_Speed = 50; // What is the base spin speed? (ms) .nbTurns = 2; .Points_Cost = 100; // How many 'points' does it cost for a spin? .Free_Spins = 1; // How many free spins does a player get? .Sound_Effects = true; // Enable sound effects? (true/false) setarray(.prize_id[1], -1, 31024, 31026, 31008, 31020, 31017, 31010, 31016, 0, 31009); setarray(.prize_qty[1], 2, 1, 1, 1, 3, 3, 1, 3, 0, 3); end; }
  6. 6 points

    Advance SQL commands

    As usual, I only write advance guides This guide is a compilation of SQL commands that I have used, or Questions answered on the forum every single subject here are related to Hercules/Ragnarok Online in some ways, so you won't feel bored reading them XD Table of Content 1. When to use *escape_sql script command 2. How to build a case-sensitive table 3. Choose a table type, MyISAM or InnoDB ? 3a. How to index a table properly 3b. Why you shouldn't use `char_reg_num_db` table 4. AUTO_INCREMENT 5. How to do IF-ELSE in SQL query ? 5a. How to update multiple rows on different conditions in a single query 6. How to show the current rank of the player 7. INSERT INTO ... SELECT ... 8. Table JOIN vs AS 9. What is the maximum string limit for *query_sql 9a. UNION This topic is now open to Suggestions, Ideas, Improvements, and Questions ~ I'm sure many of you have some questions since the creation of this topic You may also post up your tricks if you want to share with us
  7. 5 points

    King of Emperium Hill

    got a PM from rAthena member ask me to fix this yeah both rathena patch and hercules plugin ... all broken so .... update to 1.2 Script Plugin for Hercules Patch for rAthena
  8. 4 points
    Tio Akima

    [Showcase] Summoner's Rift

    Summoner's Rift in Ragnarok Online (map created by Tio Akima) Hi Guys, I'm passing to expose my new map (recently completed) to RO! This is a map inspired by summoner's rift (map of the game of League of Legends). The design follows the same pattern, but with the poetic freedom (or poetic limitation ?!) available within RO! I will post some pictures here of the map and a video to be able to see better. It is! Att, Tio Akima. ScreenShots: more: Green Base: Red Base: Video:
  9. 4 points

    Russian Roulette

    Download: 1.1 script just join the event and then AFK there and wait for the luck ... the last one who has enough patience ... or you are just god damn lucky ... might win this event
  10. 3 points

    Campfire to regenerate HP/SP

    Yesterday, after rambles on Discord with Dastgir and Asheraf, I've got another Brilliant Idea for a Release from Habilis! The Idea: Camp Fire to restore / regenerate HP & SP. When you sit by the Camp fire, you start feeling the warmth and the comfort, so your HP & SP begin to regenerate. There is a nice contribution from Meko on that subject Menhir (Big rock that possesses magical powers and able to restore Health and Energy of Seekers) Thanks Meko! So, I thought to myself, well, that is wonderful, but why not make it portable? Because, conveniently, there is this NPC sprite : 4_BONFIREID: 10252 (0x280C) Even more conveniently, there is this item: Matchstick Item ID# 7035 (Matchstick) A phosphorus tipped stick that can be used to start a fire. http://ratemyserver.net/index.php?page=item_db&item_id=7035 Dastgir, suggested using this plugin to make this possible: https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/npc-duplicate.c Mechanics : When you use the item Matchstick in your inventory, it will spawn a duplicate of the NPC called Camp Fire. So that when you are in the field, farming, grinding you could rest. - You need to sit close to the Camp Fire (3 cells ) to feel the warmth. - Anyone can sit by your Camp Fire and rest. - Camp Fire lasts 2-3 minutes. - Need to sit for at least 3 seconds to begin feeling the warmth and comfort. - you cannot start a fire within 5 cells of another Camp Fire. - If you use a match one more time, old Camp Fire disappears and a new one appears. I think it will add an element of roleplay and romanticism to the gameplay. (Habilis is a soft, sensitive and romantic type ). Expect the Release sometime soon...
  11. 3 points

    [w0w] Xpalace

    xpalace File Name: xpalaceFile Submitter: w0wZukuBgFile Submitted: 19 June 2018File Category: Maps & TexturesDownload Link: Click here to download
  12. 3 points

    [Event] Wheel of fortune

    View File [Event] Wheel of fortune Wheel of fortune Fun event, this particular version is set to accept Zeny as a payment for gambling. Would like to thank a lot @Myriad for Improving my code! Package contains: data.zip data folder to put into your GRF file or straight into data folder. wheel_of_fortune.txt the script itself. WheelOfFortune.psd the Photoshop source file, you can edit the prizes pictures if you like. This event can be configured to run automatically OnClock0800: OnClock1200: OnClock1600: OnClock2000: OnClock2200: just change this part of the script, at what time you want the script to run. Or, a GM can start this event by running this command : @wheel_of_fortune start As a reference, This is a version of the script using event points as a payment (in case you would like to take a look) https://pastebin.com/wN6ZjxM0 Submitter Habilis Submitted 06/14/18 Category Events & Games  
  13. 3 points

    How to apply a diff file

    getting tired of people keep sending me personal message -> how do I apply your koe patch after about 6 PMs or so I getting really fed up, then I realize there is no guide to properly teach members how to apply a diff file, so I have to make one First step A lot of people download hercules in .zip format. This is WRONG. instead, follow the proper guide and use tortoisegit (if you are using windows) to download your server This is the proper guide on how to install hercules Question: but I am using rathena, not hercules Answer: just change the link into rathena ones https://github.com/rathena/rathena/wiki/Install-on-Windows Second step after you get your proper server, the first thing you have to do is get rid of your current one this is the painful process, because you did not follow the guide but on the up side, you can always update your server every week just by Git pull which already mentioned in that installation topic guide Question: but every time I Git pull, it always ask to resolve conflicts Answer: that's the reason hercules community stop providing patch file and transition towards plugin system you should always keep your server up to date with the latest revision as we always add new features and bug fix nobody on the board like to give support on old emulator Question: but rathena doesn't have plugin system Answer: yes rathena doesn't support right now, but will be soon in the near future. rathena already slowly transition towards C++ format Third Step now you have a .diff file, download the file somewhere, right click on it then point the link towards your hercules installation folder Apply Patch Serial... Review/apply single patch... if either option doesn't work, try the other Disclaimer: as I am windows user I never use Linux or Centos whatever, so this guide is purely meant for noobs that keep bombard my PM box over and over
  14. 3 points

    Auto-Falcon Assault when linked

    if( pc_isfalcon(sd) && sd->weapontype == W_BOW && sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HUNTER && pc->checkskill(sd,SN_FALCONASSAULT) > 0 && rand()%100 <= 15 ) skill->castend_damage_id(src,bl,SN_FALCONASSAULT,1,tick,SD_LEVEL); This will give you 15% chance. Edit the <= 15 ) to chance you want.
  15. 3 points
    =General *Added ranges of styles/dyes for Doram's. -This is a range seprate from the regular ones since Doram's officially have a -different set number of hair styles and cloth dyes. As of 2018-06-05 they have -6 hair styles, 8 hair dyes, and no cloth dyes (tho kRO says their will be a few -added soon). *min_doram_hair_style *max_doram_hair_style *min_doram_hair_color *max_doram_hair_color *min_doram_cloth_color *max_doram_cloth_color +Added these configs to the client config file. -These are a seprate set of style/dye ranges for Doram characters. -This is needed since they have different maxes from humans. *Updated a few commands to pickup on the style/dye ranges for Doram characters. *Updated default setting for "max_hair_style" to 29. *Corrected default setting for "max_hair_color" to 8. *clif_spiritball_single *clif_soulball_single +Changed the packet these functions use to 0x1d0 (ZC_SPIRITS). -This change fixes a issue where Rebellion's Coin sphere's and Soul Reaper's -Soul Energy sphere's would look like regular spirit sphere's when the player -warps to another map, refreshes, and also appear as spirit sphere's to other -players who walk into view range of the one with the spheres. -It also fixes a issue where the sphere's may not vanish properly from view -when the player dies. *Added job restriction system. +This allows setting restrictions to different jobs that prevent's them from -entering certain maps. Attempts of entering a map as a banned job will just -result in no warpping. Basicly, something as simple as walking into a regular -map warp won't do anything if the player's job is banned from entering the map. -This works for teleporting, warping, any warp commands, walking into NPC warp, -put something else here and it will likely fail as well. -Should a player playing a job banned from that map somehow login on that map, -the player will be warped out into Prontera's graveyard behind the church. -These restrictions can be set in the "job_notallowed" database file. *Added a missing timer function list entry for the soul energy system. =Database *Updated const file to support detection of new style/dye ranges for Doram -characters in NPC scripts. *Added the "job_notallowed" file. -This file is used to set jobs that are banned from entering certain maps. -It basicly works just like item_noequip and skill_nocast_db. *Rebuilt the map cache. -This is due to prontera being reverted back to the original version. =NPC *Updated the 3CeAM super stylist to detect the ranges of styles/dyes for Doram -character's. =Skills *RL_MASS_SPIRAL +Fixed a issue where the skill would deal extremely high damage on targets with -negeative DEF.
  16. 3 points
    =General *Added all the latest tags and ID's for jobs, skills, status, and NPC's. =Database *Added place holders for many new skills. =Jobs *Star Emperor *Soul Reaper *Baby Star Emperor *Baby Soul Reaper +Added support for these jobs. +Note: These jobs are fully playable. However, none of the new skills that comes -with them are in the skill trees. This will be added in a future update. -Everything else for them works. +Note 2: Client support for these jobs will come at a later time once stable.
  17. 3 points

    Custom Unit HP Bar System

    Move to Script Release nice idea !! if combine this with World Boss system I can see a lot of potential in this
  18. 3 points

    Plugin Collections

    Hello Community, I am feeling like, there's many plugin on forum, but not been actively used, due to out-of-date plugin I have updated Shikazu's Plugin first(as it was requested on the thread from 25th April), maybe Shikazu busy on his rl. Also I have included My Plugins there. I would like to add more plugins there(which are not updated on hercules forum <- please suggest if you find some outdated plugin and want me to update it ) List of Plugins and Owners: https://github.com/dastgir/HPM-Plugins/blob/master/README.md Repository: https://github.com/dastgir/HPM-Plugins Thanks.
  19. 3 points

    Adel's Sprite Showcase

    Hello people~ I am Adel and this is my updated sprite showcase. ❤ ❤ ❤ Hope you enjoy ❤ ❤ ❤ Note: Please do not steal the display images. Some of the references for my sprites were taken from other game sources. Mob Sprites Other Sprites
  20. 3 points

    [Showcase] Arena R4

    Check out my first release - a map with trains for routes between Einbroch and Lighthalzen here:
  21. 3 points

    Endless Cellar

    Version 1.0.0


    Hello peoples, I've been asked recently to create instances that aren't release on rathena yet. So I decided to merge them to hercules too. So here's my version of Endless Cellar instance, based over infos took here and there, videos and divine-pride database. In the rar, you'll find all you need, including Instance file, mob, item and quest db. You'll still need up to date client (I personnaly use 20160201) to ensure the mobs are created client side. Have fun. Please, leave the credits and do not claim my work as yours.
  22. 2 points

    Soul Link Star Gladiator [Parrying & Damage]

    Enable to use Parrying and Lord of Vermillion Skill Go to your trunk/src/map/pc.c and look for: Go to your trunk/src/map/pc.c and look for: /* permanent skills that must be re-checked */ if( sd->status.skill[i].flag == SKILL_FLAG_PERMANENT ) { switch( skill->dbs->db[i].nameid ) { case NV_TRICKDEAD: if ((sd->job & MAPID_UPPERMASK) != MAPID_NOVICE) { sd->status.skill[i].id = 0; sd->status.skill[i].lv = 0; sd->status.skill[i].flag = 0; } break; } } } //Add this line below //Star Glad Parrying Soul Link Buffs if( sd->sc.count && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_STAR) { sd->status.skill[85].id = 85; sd->status.skill[85].lv = 10; sd->status.skill[85].flag = SKILL_FLAG_PERMANENT; sd->status.skill[356].id = 356; sd->status.skill[356].lv = 10; sd->status.skill[356].flag = SKILL_FLAG_PERMANENT; } Go to Skill_db add this Books: true below weapontypes { Id: 356 Name: "LK_PARRYING" Description: "Parrying" MaxLevel: 10 Hit: "BDT_SKILL" SkillType: { Self: true } AttackType: "Weapon" DamageType: { NoDamage: true } SkillData1: { Lv1: 15000 Lv2: 20000 Lv3: 25000 Lv4: 30000 Lv5: 35000 Lv6: 40000 Lv7: 45000 Lv8: 50000 Lv9: 55000 Lv10: 60000 } CoolDown: 0 Requirements: { SPCost: 50 WeaponTypes: { 2HSwords: true } } }, Works for me Increase damage on Boss monster and Holy monster by 100% Open status.c if ((skill_lv = pc->checkskill(sd, AB_EUCHARISTICA)) > 0) { sd->right_weapon.addrace[RC_DEMON] += skill_lv; sd->right_weapon.addele[ELE_DARK] += skill_lv; sd->left_weapon.addrace[RC_DEMON] += skill_lv; sd->left_weapon.addele[ELE_DARK] += skill_lv; sd->magic_addrace[RC_DEMON] += skill_lv; sd->magic_addele[ELE_DARK] += skill_lv; #ifdef RENEWAL sd->race_tolerance[RC_DEMON] += skill_lv; #else sd->subrace[RC_DEMON] += skill_lv; #endif sd->subele[ELE_DARK] += skill_lv; } //Add this below // Soul Link Star Gladiator Damage if(sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_STAR) { sd->right_weapon.addrace[RC_BOSS] += 100; sd->left_weapon.addrace[RC_BOSS] += 100; sd->right_weapon.addele[ELE_HOLY] += 100; sd->left_weapon.addele[ELE_HOLY] += 100; } Perfect Dodge if(sc->data[SC_PLUSAVOIDVALUE]) flee2 += sc->data[SC_PLUSAVOIDVALUE]->val2; if(sc->data[SC_WHISTLE]) flee2 += sc->data[SC_WHISTLE]->val3*10; //Add this below if(sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_STAR) flee2 += 10;
  23. 2 points

    [w0w] Prtbar

    prtbar File Name: prtbarFile Submitter: w0wZukuBgFile Submitted: 17 June 2018File Category: Maps & TexturesDownload Link: Click here to download
  24. 2 points

    [AutoEvent] Trivia

    Hello, as promised here is a Trivia auto event. This script is originally way back from eA, it was adjusted on rA. (All credits in the header) And now, I decided to Enhance it. - An enhanced version of facts auto event. The Event is announced. The NPC asks 10 random - questions from a question bank. Players have to write the answer to the main chat. - Players don't need to worry about CAPITAL letters. - 1) Question is asked by the NPC. - 2) If there is no answer after 15 seconds NPC will give a hint. - 3) IF there is still no answer after a hint, the question is skipped. - 4) If the right answer is given, the player is announced and the reward is given Side notes: 1) Control If you have some kind of AutoEbent Controller, I've included the event control methods OnEventStart: OnStop: OnEventTimeOut: If you don't have a controller and just want to test this event, just setup the timers, when this event will run ex: OnMinute33: 2) Rewards I have special Event points, that I'm giving to the winners. If you like to give Items or Zeny, I Included the examples in the code // Winner gets reward in Zeny //Zeny += 1000000; // Alotta bax ;) 3) Questions definition To define more questions you need to follow this pattern DefineQuestion("<question>", "<answer>", "<hint>"); 4) Cheating I'm aware that this event can be cheated/Automated by players. Therefore only a modest reward is given //===== Hercules Script ==================================================================== // Automatic Trivia Event //===== Originally initiated By: =========================================================== // Capuche http://rathena.org/board/user/5984-capuche/ //===== Changed By: ======================================================================== // Habilis //===== Current Version: =================================================================== // 1.5 //===== Compatible With: =================================================================== // Hercules //===== Description: ======================================================================= //- Enhanced version of facts auto event. The Event is announced. The NPC asks 10 random //- questions from a question bank. Players have to write the answer to the main chat. //- Players don't need to worry about CAPITAL letters. //- 1) Question is asked by the NPC. //- 2) If there is no answer after 15 seconds NPC will give a hint. //- 3) IF there is still no answer after a hint, the question is skipped. //- 4) If the right answer is given, player is announced and reward is given //========================================================================================== //=====From eAthena to rAthena to Hercules================================================== //==========Without this original author, this script will never exist====================== //========Original author Credits=========================================================== //=====================================================DONT================================= // ToastOfDoom ================================================REMOVE======================= // RxChris =========================================================THIS================ // Hellflaem ================================================================CREDIT======= //========================================================================================== //========================================================================================== - script Trivia_Auto_Event FAKE_NPC ,{ OnMinute18: //OnEventStart: // Make the NPC appear so that players can begin to gather around // and perhaps read the rules enablenpc "Trivia#main"; [email protected] = 3; // How many times announce event with minute intervals while( [email protected] > 0 ) { announce "The Trivia Event will begin south of Prontera in " + [email protected] + " minute(s).",bc_all | bc_blue; [email protected]; sleep 60000; } announce "The Trivia Event has begun!",bc_all | bc_blue; donpcevent "Trivia#main::OnEventBegin"; end; OnStop: OnEventTimeOut: disablenpc "Trivia#main"; end; OnInit: disablenpc "Trivia#main"; end; } prt_fild08,137,365,6 script Trivia#main 4_F_JOB_ASSASSIN,{ OnTalk: mes "[^0055FF ::: Trivia ::: ^000000]"; mes " "; mes "Very simple event!"; mes " "; mes "I will be asking random questions."; mes " "; mes "All you have to do is shout the answer in the main chat!"; mes " "; mes "Do not worry about the capital letters, I can recognize the right answer, when I see one ;)"; mes "Worry about the spelling though."; close2; end; function DefineQuestion; function GetQuestion; function GetAnswer; function GetHint; OnEventBegin: L_loop: do { [email protected] = rand(.numQuestions); // Randomly picks a fact. } while(.already_asked[[email protected]]); .already_asked[[email protected]] = true; if( !.count ) { npctalk "Please answer all my questions:"; sleep 2000; npctalk "If your answer is correct, you will obtain prizes!"; } .count++; sleep 4000; npctalk "[" + .count + "/" + .max_questions + "] " + GetQuestion([email protected]); defpattern 1, "([^:]+):.*\\s" + GetAnswer( [email protected] ) + "(.*)", "Right"; .Ans$ = GetAnswer( [email protected] ); .Hint$ = GetHint( [email protected] );; activatepset 1; initnpctimer; end; OnTimer15000: npctalk "[Hint] : " + .Hint$; end; OnTimer30000: npctalk "Sorry, You took too long to answer."; callsub L_continue; end; Right: npctalk "Correct, " + strcharinfo(0) + "! The answer is " + .Ans$ + "."; // Winner gets reward in Zeny //Zeny += 1000000; // Alotta bax ;) // Winner gets reward in Item //getitem 607, rand( 1,10 ); // Randomly picks from 1 to 10 607 --Ygg berry~ . // Winner gets reward in Points [email protected] = rand(.minPoints,.maxPoints); #LROEVENTPOINTS = #LROEVENTPOINTS + [email protected]; dispbottom .ServerName$ + " : You won " + [email protected] + " event points."; L_continue: deletepset 1; stopnpctimer; if( .count < .max_questions ) { callsub L_loop; // loop 10 questions } .count = 0; // end of event .Q_session = 0; npctalk "That's all for now. Thanks for participating in this event ^^"; deletearray .already_asked, getarraysize(.already_asked); emotion e_thx; sleep 2000; disablenpc "Trivia#main"; end; function DefineQuestion { [email protected] = .numQuestions % 128; [email protected] = .numQuestions / 128; setd(".question_" + [email protected] + "$[" + [email protected]b + "]", getarg(0)); setd(".answer_" + [email protected] + "$[" + [email protected] + "]", getarg(1)); setd(".hint_" + [email protected] + "$[" + [email protected] + "]", getarg(2)); .numQuestions = .numQuestions + 1; return; } function GetQuestion { return getd(".question_" + (getarg(0) % 128) + "$[" + (getarg(0) / 128) + "]"); } function GetAnswer { return getd(".answer_" + (getarg(0) % 128) + "$[" + (getarg(0) / 128) + "]"); } function GetHint { return getd(".hint_" + (getarg(0) % 128) + "$[" + (getarg(0) / 128) + "]"); } OnInit: .ServerName$ = "[Your boring server]"; .minPoints = 10; .maxPoints = 25; .max_questions = 10; // 10 questions if more than 10 questions are defined DefineQuestion("When you create a character in this game, how many primary stats are there?","6", "STR, AGI, VIT, INT, DEX, LUK"); DefineQuestion("Wizard skill Water Ball can only be cast over deluge or ____?", "water", "It is liquid."); DefineQuestion("Which item is required to create a guild?", "emperium", "An Emperial item"); DefineQuestion("which skill is beneficial to the living and damaging to the undead?", "heal", "It restores health."); DefineQuestion("In which town Thieves guild is located?", "morocc", "A town in the sorgat desert."); DefineQuestion("In which town Merchants guild is located?", "alberta", "It's a portuary town."); DefineQuestion("In which town Archers guild is located?", "payon", ""); DefineQuestion("What property do Izlude dungeon monsters possess?", "water", "It is liquid."); DefineQuestion("What status can be inflicted with the Hammer Fall skill?", "stun", "Did I see the stars around your head?"); DefineQuestion("How much Zeny one Jellopy is worth?", "3", "Just get it from a Poring."); DefineQuestion("Which town has the most Dancers?", "comodo", "An island in the warm waters."); DefineQuestion("How many different poring-like monsters you can meet near prontera, including mini bosses?", "9", "poring, drops, poporing, marin, santa poring, mastering, angeling, arcangeling, ghostring"); DefineQuestion("What property counters best the water property?", "wind", "It's Blowing"); DefineQuestion("What property counters best the undead property?", "holy", "Perhaps an acolyte or a priest can tell you?"); DefineQuestion("What kind of food both Vanilmirth and Christmas Goblin like?", "scel", "Yellow jeloppy"); DefineQuestion("How many cities are in Rune-Midgrad kingdom?", "11", "Prontera, Izlude, Jawaii, Geffen, Payon, Morocc, Alberta, Comodo, Umbala, Al De Baran, Lutie"); DefineQuestion("What city is the capital of Rune-Midgrad kingdom?", "prontera", "The most central town of all."); DefineQuestion("Which food is able to fully restore health and mana? _________ _____", "yggdrasil berry", "A berry growing on the most majestic tree!"); DefineQuestion("Which one of those is the fastest weapon type? Sword, Dagger, Staff, Mace", "dagger", "Something that has to do with the length of the blade."); DefineQuestion("Which one of those id the cheapest? Jellopy Large Jellopy Royal Jelly Honey", "jellopy", "Dropped by Porings."); DefineQuestion("Which monster drops a pet taming item to tame Deviruchi?", "joker", "Why so serious?"); if( .numQuestions < .max_questions ) .max_questions = .numQuestions; end; } Enjoy!
  25. 2 points

    @pk command by Dastgir

    Hello Ms. Annie, I am using @pk commands for years since rAthena. It is being used in a High Rate server which is a PK Enabled on all maps because players want a different view of PK Place other than PvP Room. Sometimes, @pk is being used when a player wants to only farm and doesn't want to be killed. Sometimes, being used by newbies or if you have a Gold Room, they're also using it to avoid being killed.
  26. 2 points

    [AutoEvent] Trivia

    function GetQuestion { return getd(".question_" + (getarg(0) % 128) + "$[" + (getarg(0) / 128) + "]"); } function GetAnswer { return getd(".answer_" + (getarg(0) % 128) + "$[" + (getarg(0) / 128) + "]"); } function GetHint { return getd(".hint_" + (getarg(0) % 128) + "$[" + (getarg(0) / 128) + "]"); } I believe you made it opposite ? assuming that you are still using eathena, when script engine was still 128 elements it should be return getd(".question_" + (getarg(0) / 128) + "$[" + (getarg(0) % 128) + "]"); although there is no need to do like this anymore because our script engine no longer has such limitation 2nd thing is ... L_loop: do set [email protected], rand( .numQuestions ); // Randomly picks a fact. while( .Q_session & 1 << [email protected] && .Q_session && .count < .numQuestions ); set .Q_session, .Q_session | 1 << [email protected];// max 32 questions rather than using a loop, can use shuffle algorithm EDIT: for below
  27. 2 points

    Custom Enchant System

    @Rebel prontera,146,185,6 script Costume Enchanter 4_M_SCIENCE,{ disable_items; [email protected]$ = "[^0000FF Costume Enchanter ^000000]"; mes [email protected]$; if (Zeny < 500000) { mes "I am in charge of Enchanting Costume Headgears. Simply put, I've been studying ways to power-up headgears."; next; mes [email protected]$; mes "If by any chance, you would want to enchant your headgears, bring me 500,000 zeny and the armor you want to enchant and you are all set to go."; close; } mes "I'm an engineer that specializes in Enchanting Armors."; next; mes [email protected]$; mes "Enchanting may seem simple, but it's far more complicated than it looks.\n"; mes "If you're interested in my service, let me know."; next; switch( select( "~ ^0000FFEnchant Headgear ^000000", "~ Information", "~ Maybe next time." ) ) { case 1: break; case 2: mes [email protected]$; mes "To be update"; close; case 3: mes [email protected]$; mes "Please come back when you have any interest in enchanting your headgear."; close; } setarray [email protected][0],19504,19505,19506; // Red_Tailed_Ribbon; [email protected] = 1; // 1% fail rate (for testing) [email protected]$ = ""; [email protected] = getarraysize([email protected]); for ( [email protected] = 0; [email protected] < [email protected]; [email protected] ) [email protected]$ += getitemname([email protected][[email protected]]) +":"; [email protected] = [email protected][select([email protected]$)-1]; if (getequipid(EQI_COSTUME_HEAD_TOP) == [email protected]) [email protected] = EQI_COSTUME_HEAD_TOP; else if (getequipid(EQI_COSTUME_HEAD_MID) == [email protected]) [email protected] = EQI_COSTUME_HEAD_MID; else if (getequipid(EQI_COSTUME_HEAD_LOW) == [email protected]) [email protected] = EQI_COSTUME_HEAD_LOW; // else if (getequipid(EQI_HEAD_TOP) == [email protected]) // [email protected] = EQI_HEAD_TOP; mes [email protected]$; if ( !getequipisequiped([email protected]) ) { mes "Hmm? There's nothing to be enchanted!"; mes "Make sure you are wearing the headgear you want be enchant."; close; } if ( getequipcardid([email protected],1) && getequipcardid([email protected],2) && getequipcardid([email protected],3) ) { mes "There's nothing more I can do with this headgear."; close; } [email protected] = getequiprefinerycnt([email protected]); for ( [email protected] = 3; [email protected] >= 1; [email protected] ) if ( !getequipcardid( [email protected], [email protected] ) ) [email protected]_num = [email protected]; for ( [email protected] = 0; [email protected] < 4; [email protected] ) [email protected][[email protected]] = getequipcardid( [email protected],[email protected] ); mes "Socket enchant will cost you 500,000z. And there will be a random option enchanted."; mes "Of course, there is a chance of breaking your armor."; next; mes [email protected]$; mes "Do you still want to try an Enchant?"; next; if ( select( "~ Hmm... Let me think it over.", "~ Go ahead.") == 1 ) { mes [email protected]$; mes "Well, I can't blame you. Safety first, eh?"; mes "Now you have a nice day."; close; } mes [email protected]$; if (Zeny < 500000) { mes [email protected]$; mes "Sorry, but you don't have enough zeny."; close; } mes "Quite of an adventurer huh? Well, shall we?"; Zeny -= 500000; delitem2 [email protected], 1,1, [email protected],0, [email protected][0],[email protected][1],[email protected][2],[email protected][3]; close2; specialeffect EF_MAPPILLAR, AREA, playerattached(); progressbar "ffff00",1; // is this really needed ? what happen if the player logout/disconnect during this short period ? The item is gone forever !! switch (rand(1,[email protected])) { // yeah you said its testing, maybe its 1,36 ... or maybe something higher case 1: [email protected] = 4702;break; case 2: [email protected] = 4712;break; case 3: [email protected] = 4722;break; case 4: [email protected] = 4732;break; case 5: [email protected] = 4742;break; case 6: [email protected] = 4752;break; case 7: case 8: [email protected] = 4701;break; case 9: case 10: [email protected] = 4711;break; case 11: case 12: [email protected] = 4721;break; case 13: case 14: [email protected] = 4731;break; case 15: case 16: [email protected] = 4741;break; case 17: case 18: [email protected] = 4751;break; case 19: case 20: case 21: [email protected] = 4700;break; case 22: case 23: case 24: [email protected] = 4710;break; case 25: case 26: case 27: [email protected] = 4720;break; case 28: case 29: case 30: [email protected] = 4730;break; case 31: case 32: case 33: [email protected] = 4740;break; case 34: case 35: case 36: [email protected] = 4750;break; default: specialeffect(EF_PHARMACY_FAIL, AREA, playerattached()); mes [email protected]$; mes "Well that's too bad."; mes "The requested equipment has failed to enchant."; close; } mes [email protected]$; mes "Ha! There you go, your brand new enchanted equipment!"; if ( [email protected]_num == 1 ) { getitem2 [email protected], 1, 1, [email protected], 0, [email protected][0], [email protected], [email protected][2], [email protected][3]; equip2 [email protected], [email protected], 0, [email protected][0], [email protected], [email protected][2], [email protected][3]; } else if ( [email protected]_num == 2 ) { getitem2 [email protected], 1, 1, [email protected], 0, [email protected][0], [email protected][1], [email protected], [email protected][3]; equip2 [email protected], [email protected], 0, [email protected][0], [email protected][1], [email protected], [email protected][3]; } else if ( [email protected]_num == 3 ) { getitem2 [email protected], 1, 1, [email protected], 0, [email protected][0], [email protected][1], [email protected][2], [email protected]; equip2 [email protected], [email protected], 0, [email protected][0], [email protected][1], [email protected][2], [email protected]; } close; }
  28. 2 points

    @partybuff / @spb

    in ACMD(showbuff) in line 275 you show error message and p is NULL, and after call clif->party_info(p), this call your overloaded function clif_party_info_overload, and here it validate parameter for NULL and show error message.
  29. 2 points

    [w0w] Ein & Lhz Trains

    ein_tra01 & lhz_tra01 .•°'°•. File Name: ein_tra01 & lhz_tra01File Submitter: w0wZukuBgFile Submitted: 04 June 2018File Category: Maps & TexturesDownload Link: Click here to download
  30. 2 points

    [Showcase] Arena R4

    Hello and Hi!) I'm new here!) And I just want to show you my first map made in BrowEdit <3 This map was created for my server, but it was closed, because nobody played it :С P.S. Feel free to comment/ask or let me know what you need to correct. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. arena_r4
  31. 2 points

    Ajuda - mcache Files

    Resolvido pessoal, podem fechar! Solução: Fora a falta do final do tutorial bem explicado que o @luizragna deu, o prompt não aceita o comando sendo feito se a pasta estiver em outro HD. É necessário utilizar primeiro o comando D: (ou qualquer letra da unidade que estiver o servidor) para que ele mude de diretório. As vezes depois eu faço um Guia em pt explicando melhor caso o povo tenha dificuldade Obrigado Luiz!
  32. 2 points

    Card Shredder Edit

    i wrote this NPC for my server Sanctuary RO, with the intention of sharing since it took a lot of work to write i wanted to let other people use the same NPC or be able to edit it or take snippets from it to use in their own creations i'm designing the server economy to depend on cards so i wrote an NPC that will dispense coins every time a card is traded baised on how often that card is traded in by the whole server note that item 9204 is a custom item on my server and it will probably need to be changed there may have been easier or cleaner ways to write this NPC but it absolutely works, the only issue is if you have too many cards in your inventory the menu wont display them all but it requires a lot to hit that point cardshredder.txt
  33. 2 points

    [Showcase] Arena R4

    Hello, I found this object at 1 @ rev when I looked through the list of of kRO locations. I liked it, it's more like an effect. This barrier on my map is marked by cells through which you can only shoot. And you can enter the zone only from the north side. Hi, I decided to support the section a little
  34. 2 points


    IP addresses and mac addresses do not uniquely identify people. Most home internet users have dynamic IP addresses assigned by their ISP, so it changes over time, and some ISPs even assign a different one every single time the router is rebooted (ie: Orange). Even with a static IP, nothing prevents anyone from using a VPN, tor, or any other anonymity tool. IP addresses may also be shared: some schools, dormitories, and organizations have a single address for every single computer on its network, so you could end up mistaking hundreds of people as the same person. Some computers themselves are also shared (ie: with coworkers, family members, friends, …). As for mac addresses, they can very easily be spoofed, and one could even make a script to change their mac address every minute if they wanted to... so yeah, that's a bad idea too. If this still does not discourage you from using mac addresses, feel free to add this "feature" to Hercules: https://github.com/HerculesWS/Hercules/issues/1734 There's really no silver bullet to really be sure of the identity of someone, but one of the approaches that kinda works is to make abuse costly on abusers, while not imposing a huge burden on non-abusers. What works best is doing a physical verification instead of a digital one when someone creates an account. For example, most social media platforms now ask you to provide and validate a phone number. This means if someone were to bypass this verification they would have to have more than one phone. Some sites, such as Paypal, go even further ask you for your credit card number (or bank account number) and then do a transaction on it (usually $1), to see if the card is valid. This means you would have to have more than one credit card if you want to bypass this verification, which implies physically going to your bank, making an appointment, and opening a new account. Some (such as Google) prefer to snail mail you an envelope containing a code, which you then have to enter on their website. To abuse this you would need more than one street address. Keep in mind that this only makes it harder on would-be abusers and that nothing can 100% fingerprint someone. Even DNA profiling isn't perfect.
  35. 2 points

    noitem mapflag

    1.4 plugin -- fix a rare bug if the user put multiple noitem on the same map, it spam non-sensible error ---- although this will overwrite the previous one without warning this time
  36. 2 points

    Hercules Ultimate Localization Design

    Hercules Ultimate Localization Design Hello~! - What?! Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind Translating NPCs without editing them By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in useScript Command Macro Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set [email protected]$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime)Special Thanks to Raizen and Roberto from Cronus, we would not have worked on this if it weren't for themLinks~! CommitEditing Example
  37. 2 points

    Fire Area

    Version 1.0.0


    Hello guys! This is my first script in the Hercules. Basically, do you receive damage while stay stepping. Main configurations: (I'm using the last version of hercules) //Damage Options: .DMG_Type = 1; // Type of damage - [0 - Normal] | [1 - Percentage of maximum health] .DMG_Attack = 5; // Damage per attack (1 to 100 if percentage damage) .DMG_Speed = 250; // Damage speed. The smaller faster (milisseconds) .CAN_Die = 0; // The character can die burned? - [0 - No] | [1 - Yes] // Effects: .DMG_Effect = 49; //When receive damage (Alternatives: 50 , 255 ) Default: 49 .FIRE_Effect = 25; //Flow Effect (Alternatives: 634 , 728, 920, 962) Default: 25 .EFFECT_Speed = 300; //The speed of loop effect (Advanced option. Not recommended change): //Time Options .TIME_DURATION_ON = 3000; // The time that the fire stay enable (milisseconds) .TIME_DURATION_OFF = 2000;// The time that the fire stay disable (milisseconds) .TIME_Quit = 500; // Burning time after leave of the danger area, (milisseconds) Cells configurations: //Bellow, do you configure the cells (Do you can add more, if want) pay_dun00,161,46,0 duplicate(FireArea) #FireArea11 HIDDEN_WARP_NPC,0,0 pay_dun00,161,45,0 duplicate(FireArea) #FireArea12 HIDDEN_WARP_NPC,0,0 pay_dun00,161,44,0 duplicate(FireArea) #FireArea13 HIDDEN_WARP_NPC,0,0 pay_dun00,160,46,0 duplicate(FireArea) #FireArea21 HIDDEN_WARP_NPC,0,0 pay_dun00,160,45,0 duplicate(FireArea) #FireArea22 HIDDEN_WARP_NPC,0,0 pay_dun00,160,44,0 duplicate(FireArea) #FireArea23 HIDDEN_WARP_NPC,0,0 pay_dun00,159,46,0 duplicate(FireArea) #FireArea31 HIDDEN_WARP_NPC,0,0 pay_dun00,159,45,0 duplicate(FireArea) #FireArea32 HIDDEN_WARP_NPC,0,0 pay_dun00,159,44,0 duplicate(FireArea) #FireArea33 HIDDEN_WARP_NPC,0,0 pay_dun00,158,46,0 duplicate(FireArea) #FireArea41 HIDDEN_WARP_NPC,0,0 pay_dun00,158,45,0 duplicate(FireArea) #FireArea42 HIDDEN_WARP_NPC,0,0 pay_dun00,158,44,0 duplicate(FireArea) #FireArea43 HIDDEN_WARP_NPC,0,0 Sorry for my bad english... Enjoy it OBS: If do you use @reloadscript in this script, reload your character.
  38. 2 points

    Batch packets / client info extractor.

    This tool allow extract packets from old clients before 2013 version. For newer versions can be extracted not all packets. Another feature dump some packet related function addresses and create ida pro script file for name this functions. Usage information can found in readme. https://gitlab.com/4144/bpe/ For run bpe need linux or wsl in windows 10. Also need python2 installed.
  39. 2 points

    Mapcache guides?

    linux: 4. login to your linux machine 5. change directory to Hercules or your custom folder and make tools then use mapcache to compile it. $ cd Hercules Hercules]$ make tools Hercules]$ ./mapcache
  40. 2 points

    Slot Machine

    Version v0.7


    This script will allow users to spend zeny &/or an item for a chance to win a prize from the slot machine. Currently there are 2 versions. First is a Single Slot Machine, where only 1 slot is rolled. Second is the Triple Slot machine, where 3 slots are rolled. For either version, SUCCESS must be the only thing displayed in order to win. To add the cutins, just place them in: data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/illust /* ============================================================= /* NOTE - If using soundeffects you must add the ".wav" files /* provided in the ".rar" file to your: data/wav folder located /* in either your: ( Ragnarok folder ) OR ( .grf file ) /* ============================================================= I've included the PSD file, so you can edit it as you like.
  41. 2 points

    Artz Green Prontera

    Version 1.0


    [Free Release] Artz Green Prontera Support vending area, NPC area. Contact: Skype: ariev.zackie.12 YM : artsoulinc FB : www.facebook.com/artsoulinc
  42. 1 point

    [Parrying Skill] Star Gladiator Soul Link

    What you have there are instructions. Basically, you just need to follow them and it should slot straight into Hercules. It should work, cause skill ID 85 = WZ_VERMILION and 356 = LK_PARRYING. If I'm correct, it is telling you to edit the pc_calc_skilltree_clear function. I'll let you try to work it out from here.
  43. 1 point

    @pk command by Dastgir

    Lemme check it again in my test server. Will update you. ---- I now get your point. The @pk is not working. Players can still attack each other even you are on PK OFF state.
  44. 1 point

    [AutoEvent] Trivia

    Thanks Annie, 1 is not me, it is from way back ... eA days 2 will be redone, I will follow Dastgir`s advice and use an array instead of bit manipulation (will make the script easier to understand for beginners) I Already coded it, need to test it
  45. 1 point

    Main chat area

    if you want player A to type something that player B can hear from any place in the map its #map channel https://drive.google.com/file/d/14DhRqCfxY4assgenwnoZ4dIBud8zQlfj/view?usp=sharing I think its better to leave the normal chat to chat_area_size, it have its own purpose
  46. 1 point

    @partybuff / @spb

    0.4 http://upaste.me/75d049918e2088402 wow ~ thanks ... having an extra eye is different ... about turning the [BASF+] into player configured buff ... that will be done in another day ...
  47. 1 point

    kRO unpacked clients releases

    some files in grf probably need rename from name_kr.lub to name_LANG.lub where LANG is language name related to langtype 6
  48. 1 point

    Card Shredder Edit

    I admit its cool idea, reminds me the card trader event I made long time ago http://herc.ws/board/topic/11367-card-collector/ the problem is your script, and you should be glad you have posted on the board let me simplify it ... prontera,155,185,4 script Card Shredder 2_VENDING_MACHINE1,{ mes "[ Card Shredder ]"; mes "You can shred cards to earn premium currency"; mes "would you like to shred any cards? "; next; if ( select ( "Yes.", "No" ) == 2 ) close; mes "[ Card Shredder ]"; mes "Please select the card you wish to shred."; getinventorylist; for ( [email protected] = 0; [email protected] < @inventorylist_count; [email protected] ) { if ( getiteminfo( @inventorylist_id[[email protected]], ITEMINFO_TYPE ) == 6 ) { [email protected]$ += getitemname( @inventorylist_id[[email protected]] ) +" "+ callsub( L_Coins, @inventorylist_id[[email protected]] ) +" Coins:"; [email protected][[email protected]++] = @inventorylist_id[[email protected]]; } } [email protected]$ += "No Card - Close"; next; [email protected] = select( [email protected]$ ) -1; if ( [email protected] == [email protected] ) close; mes "[ Card Shredder ]"; mes "are you sure you want to shred a "+ getitemname( [email protected][[email protected]] ) +" for "+ callsub( L_Coins, [email protected][[email protected]] ) +" coins ?"; next; if ( select ( "Yes.", "No" ) == 2 ) close; delitem [email protected][[email protected]], 1; getitem Poring_Coin, callsub( L_Coins, [email protected][[email protected]] ); ++$cardid_shredded[ [email protected][[email protected]] ]; close; L_Coins: if ( $cardid_shredded[ getarg(0) ] < 5 ) return 5; else if ( $cardid_shredded[ getarg(0) ] < 10 ) return 4; else if ( $cardid_shredded[ getarg(0) ] < 15 ) return 3; else if ( $cardid_shredded[ getarg(0) ] < 20 ) return 2; else return 1; } I made it in a way without using 2 permanent variables also found a bug though ... line 713 if ([email protected]ardval < 1) set cardval,10; if ([email protected] == 454) close; why do you set a permanent player variable ... there ? and about the issue about having too many cards in the menu, can be done with page system https://rathena.org/board/topic/74630-help-array/
  49. 1 point

    Annieruru emp BG

    http://upaste.me/c7b7498104f6c72df you know ... this script do exactly the same thing as the previous one ... now you can see the script just look totally different EDIT: although I don't know you are also obsess with instanced battleground or not ... since both hercules and rathena also can do it
  50. 1 point


    Version 1.0.0


    Hello everyone, i show you the monster ''Tantalus'' it's a Haunted Tree from Trickster Online, u can use at instances, quests, etc. IMPORTANT: it has sound effects for walking, attacking and dying. please put the data folder in your ragnarok. -Don't steal credits, give credits to me, that I cost my effort to do them. -Do Not edit my work without my permission, It includes recolors.