Popular Content

Showing content with the highest reputation since 03/22/19 in all areas

  1. 12 points

    [Collection] Official Full Clients + latest kRO

    Changelog: - Updated all Clients - Updated twRO BGMS (3 new ones) NOTE: to disable the Snow effect in Prontera, open your grf and navigate to data/etcinfo.txt Then add (or edit) the following: weather# //prontera.rsw# //snow# Collection of official Full Clients. Those are vanilla, not modified in any way or whatever. They are patched up to date. Let me know if I've missed something. Server Name With BGM Without BGM BGM only South Korea (kRO) 21. Dec. 2018 2,70 GB Mega OneDrive 2,42 GB Mega OneDrive 294 MB Mega OneDrive South Korea (Ragnarok Zero) 21. Dec. 2018 2,22 GB Mega OneDrive Taiwan and Hongkong (twRO) 21. Dec. 2018 2,24 GB Mega OneDrive 1,95 GB Mega OneDrive 310 MB Mega OneDrive Japan (jRO) 21. Dec. 2018 2,23 GB Mega OneDrive 1,93 GB Mega OneDrive 311 MB Mega OneDrive Thailland (tRO) 21. Dec. 2018 1,67 GB Mega OneDrive 1,41 GB Mega OneDrive 272 MB Mega OneDrive International (iRO) 21. Dec. 2018 2,42 GB Mega OneDrive 2,14 GB Mega OneDrive 294 MB Mega OneDrive Philippines (pRO) 21. Dec. 2018 1,5 GB Mega OneDrive 1,25 GB Mega OneDrive 272 MB Mega OneDrive Indonesia (idRO) 21. Dec. 2018 1,88 GB Mega OneDrive 1,61 GB Mega OneDrive 282 MB Mega OneDrive Brazil (bRO) 21. Dec. 2018 1,95 GB Mega OneDrive 1,69 GB Mega OneDrive 273 MB Mega OneDrive France, Europe (fRO, euRO) 21. Dec. 2018 1,85 GB Mega OneDrive 1,59 GB Mega OneDrive 273 MB Mega OneDrive
  2. 5 points


    Version 1.0.2


    ~ Keep calm and use it on your server ~ ~ Don't claim my work as yours please and etc ~ ~ Any requests/reports - http://herc.ws/board/profile/15835-w0wzukubg/
  3. 4 points

    Graphic Giveaway 。^‿^。

    Hello and welcome to my graphic giveaways topic. ♥ I'll be giving out free graphics to members of our community in the form of a mini-game! WHAT TO GET Graphics for your server worth 20$ (based on my paid topic pre-made prices) HOW TO GET Write at least one decent sentence why Hercules is your favorite Ragnarok emulator! WHEN TO GET All members that answered will be put into a raffle. Wait until the winner is drawn. Winners will be announced at 01.05.2019 and can order the free giveaway after that. WHO CAN GET Must be a Hercules member for at least 6 months. Maximum one (1) Winner.
  4. 4 points

    [Guide] Mapcache Generation 2018

  5. 3 points

    Version 1


    Town of Beginnings from SAO I'm releasing this map that I made a while ago for a SAO-RAG project that has been put on hold, and i felt like it's too good of a map to put it on a shelf ;] Hope you guys enjoy the release. ;] Some files inside include the color changes on some texture files, so keep that in mind, and delete them if you want. Here is a video that I also posted in my showcase topic
  6. 3 points

    Dastgir's Services

    Hello Hercules Community, I am offering my Services to you @ some expense of money. Works for Emulator: Hercules/rAthena/Others(if any) Services: Scripting. (Min Price:5$ ) Source Modification(/Addition).(Min Price: 5$) Converting to/Creating a Plugin[Hercules Specific].(Min Price: 5$) Migrating Your Server. (Min Price: 10$) Adding Custom Items/Maps/Mobs. (Min Price: 5$) Creating/Adding New Skills. (Min Price: 10$) Changing of Emulator (Min Price: 10$) ClientSide Things. (Min Price: 5$) Fixing Errors. (Min Price: 5$) Script Review. Consulting And Anything else, that you want, just drop me a PM Maximum Price: Depends on Complexity of the Work What Else: Free Support for Service bought from me. Contact Info: Post Here Via PM Payment Methods: PayPal OnlyPM me if you want any other payment method, and I might check If I can have it. Status: AVAILABLE
  7. 3 points

    Max Atk

    I created this pr https://github.com/HerculesWS/Hercules/pull/2419 for allow change some limits
  8. 3 points

    [Showcase + DL] Hairstyles

    UPDATED, NOW HAVE 72 HEADS UPDATED, NOW HAVE 84 HEADS !!!!! Here a Compiliation of basic customs Hairs from Ragnarok Online, This include the 29 oficial heads. All of these heads aren't made be me, with exception of #68, #69, #70 and #71 male heads and female #70 and #71 heads, this pack cames from internet and a bit of search, the authors put the credit on Spr files... But who diferent on that pack? - Repeated Heads Removed; - Missaligned Heads Fixed; (like #48 and #61) - 6 Unique Heads. - Now this pack is mixed with smokim pack (from cronus) - No Female Heads in Male pack, with exception of classic #43 I'm Still Working On this Pack to change female heads into male heads (like #43, #55, #56 etc - Male Hairstyles), to make all heads in Oficial Collors (1~7 to work with them), To Increase this into 100 Hairstyles Pack. Preview: DOWNLOAD: 84 Heads.zip Mirror 4Shared Mirror MediaFire
  9. 3 points

    How to keep emulator updated

    I don't offer any paid services (That's how you know it's me. If I suddenly request money, it's an imposter report him!) My parents give me enough money for lunch at my school and for chewing gum. I don't need your money 2 3
  10. 2 points

    Item Options

    // Build the Menu. setarray [email protected], EQI_COSTUME_HEAD_TOP, EQI_COSTUME_HEAD_MID, EQI_COSTUME_HEAD_LOW, EQI_COSTUME_GARMENT; [email protected]$ = ""; for ([email protected] = 0; [email protected] < getarraysize([email protected]); [email protected]) [email protected]$ += ((getequipisequiped([email protected][[email protected]])) ? getequipname([email protected][[email protected]]) : "" + [email protected][[email protected]] + "-[Not equipped]") + ":"; // Select the part. [email protected]_index = [email protected][ select([email protected]$) -1 ];
  11. 2 points

    @market clone

    1.8 - plugin - update to latest revision
  12. 2 points

    evento Tarot

    try changing to specialeffect([email protected], AREA, playerattached());
  13. 2 points

    [Showcase] Moonyxel Art

    Hi, I'm a new spriter. These are some of my works :3 Come anda meet me in Deviantart or Facebook, and order that sprite you've always dreamed on your server but never found anywhere 🙂 I accept sprites orders of any theme.
  14. 2 points

    New damage formula (Dragon Breath)

    no idea, I have tested it works do I seriously have to do like this ? https://github.com/HerculesWS/Hercules/compare/master...AnnieRuru:topic/16676-n. https://github.com/AnnieRuru/Hercules/blob/803f7335803460b8a4f2554240a9b29f4686f556/src/map/battle.c#L4957-L4963
  15. 2 points

    New damage formula (Dragon Breath)

    @@ -4960,6 +4953,14 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl the patch has clearly said, modify the line somewhere at line no.4960 and your compiler said your error is on line 4127
  16. 2 points

    New damage formula (Dragon Breath)

    if you change skill->attack from BF_MISC into BF_WEAPON, then you should also change the damage calculation from battle_calc_misc_attack function into battle_calc_weapon_attack function src/map/battle.c | 15 ++++++++------- src/map/skill.c | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/map/battle.c b/src/map/battle.c index 1b7bf909e..4193c8cd0 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -4130,13 +4130,6 @@ static struct Damage battle_calc_misc_attack(struct block_list *src, struct bloc case NPC_EVILLAND: md.damage = skill->calc_heal(src,target,skill_id,skill_lv,false); break; - case RK_DRAGONBREATH: - case RK_DRAGONBREATH_WATER: - md.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv; - RE_LVL_MDMOD(150); - if (sd) md.damage = md.damage * (95 + 5 * pc->checkskill(sd,RK_DRAGONTRAINING)) / 100; - md.flag |= BF_LONG|BF_WEAPON; - break; /** * Ranger **/ @@ -4960,6 +4953,14 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl break; } break; + + case RK_DRAGONBREATH: + case RK_DRAGONBREATH_WATER: + wd.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv; + wd.damage = wd.damage * status->get_lv(src) / 150; + if (sd) wd.damage = wd.damage * (95 + 5 * pc->checkskill(sd,RK_DRAGONTRAINING)) / 100; + wd.flag |= BF_LONG|BF_WEAPON; + break; default: { i = (flag.cri diff --git a/src/map/skill.c b/src/map/skill.c index 633a73d67..4121d66e7 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4937,7 +4937,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl if( (tsc = status->get_sc(bl)) && (tsc->data[SC_HIDING] )) { clif->skill_nodamage(src,src,skill_id,skill_lv,1); } else - skill->attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); + skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); } break; case NPC_SELFDESTRUCTION: { but how you want to change the damage formula is totally up to you ...
  17. 2 points

    High Definition Damage Font

    View File High Definition Damage Font Hi all, This is a basic damage font alternative which can be used to bring a little more high definition resolution to Ragnarok! I made this purely because I was tired of staring at the hideously stretched and over-pixelated damage numbers while I was doing some testing. Feel free to give it a try! There is a slightly wider spacing between digits that I wasn't able to close off because the client must determine spacing/positionings between, but if you want to reduce some of the spacing I have provided another .act file suffixed "_larger" which reduces the spacing but makes the damage text a bit larger. Thanks Submitter Epoque Submitted 03/30/19 Category Sprites & Palettes  
  18. 2 points

    Max Atk

    @RagnarokOnline2015 must be using RENEWAL in renewal, its base atk + weapon atk simply equip any weapon will do, like I'm using priest, equip a club "@refine 0 10", the refine will increase the value along with bonus bAtk or bonus bAtk2 in renewal, equip fire-brand will increase the value there @Orca must be using pre-renewal yes, equip a fire-brand doesn't increase that value, to increase bAtk2, the only way is through refine "@refine 0 10" on your fire-brand, or using bonus bAtk2 and I repeat again, THIS IS OFFICIAL <-- tested same thing happen in rathena as well(EDIT) this atk/matk stuffs has even confuse some developers EDIT: seems like I misunderstood the question, you want to increase the 65535, not to add to the bAtk2 bonus ...
  19. 2 points

    H> unlock menu with certain requeriments

    why not? prontera,155,185,5 script quest 1_F_MARIA,{ mes "quest giver"; next; for ( [email protected] = 0; [email protected] < 3; [email protected] ) [email protected]$[[email protected]] = sprintf( _$( "%sQuest %d" ), F_MesColor((quest > [email protected] *2)? C_GRAY : C_BLACK), [email protected] +1 ); [email protected] = select( implode( [email protected]$, ":" ) ) -1; [email protected] = [email protected] *2; if ( quest > [email protected] ) { mes "you have completed this quest"; close; } else if ( quest < [email protected] ) { mes "you can't take this quest yet."; close; } mesf "Go talk to npc %d", [email protected] +1; quest = [email protected] +1; close; } function script F_quest_state { [email protected] = getarg(0); [email protected] = ([email protected] -1) *2 +1; if ( quest == [email protected] ) { dispbottom sprintf( _$( "complete %d" ), [email protected] ); quest = [email protected] +1; } end; } prontera,150,180,5 script npc 1 1_F_MARIA,{ F_quest_state(1); } prontera,155,180,5 script npc 2 1_F_MARIA,{ F_quest_state(2); } prontera,160,180,5 script npc 3 1_F_MARIA,{ F_quest_state(3); } prontera,160,185,5 script reset 1_F_MARIA,{ quest = 0; } and this is quest log with achievement system { Id: 49920 Name: "Quest 1" }, { Id: 49921 Name: "Quest 2" }, { Id: 49922 Name: "Quest 3" }, [49920] = { Title = "Quest 1", IconName = "ico_nq.bmp", Description = { "Talk to <NAVI>NPC 1<INFO>prontera,150,180,</INFO></NAVI>" }, Summary = "Talk to NPC 1", NpcSpr = "1_F_MARIA", NpcNavi = "prontera", NpcPosX = 150, NpcPosY = 180, }, [49921] = { Title = "Quest 2", IconName = "ico_nq.bmp", Description = { "Talk to <NAVI>NPC 2<INFO>prontera,155,180,</INFO></NAVI>" }, Summary = "Talk to NPC 2", NpcSpr = "1_F_MARIA", NpcNavi = "prontera", NpcPosX = 155, NpcPosY = 180, }, [49922] = { Title = "Quest 3", IconName = "ico_nq.bmp", Description = { "Talk to <NAVI>NPC 3<INFO>prontera,160,180,</INFO></NAVI>" }, Summary = "Talk to NPC 3", NpcSpr = "1_F_MARIA", NpcNavi = "prontera", NpcPosX = 160, NpcPosY = 180, } { Id: 109993 Name: "Custom Quest" Type: "ACH_QUEST" Objectives: { *1: { Description: "Complete Quest 1" } *2: { Description: "Complete Quest 2" } *3: { Description: "Complete Quest 3" } } Points: 0 }, [109993] = { UI_Type = 0, group = "CHATTING", major = 4, minor = 0, title = "Custom Quest", content = { summary = "Visit the Quest Giver", details = "Visit the Quest Giver." }, resource = { [1] = { text = "Complete Quest 1" }, [2] = { text = "Complete Quest 2" }, [3] = { text = "Complete Quest 3" } }, score = 0 }, prontera,155,185,5 script quest 1_F_MARIA,{ mes "quest giver"; next; for ( [email protected] = 0; [email protected] < 3; [email protected] ) [email protected]$[[email protected]] = sprintf( _$( "%sQuest %d" ), F_MesColor((questprogress( 49920+ [email protected] ) == 2)? C_GRAY : C_BLACK), [email protected] +1 ); [email protected] = select( implode( [email protected]$, ":" ) ) -1; [email protected] = 49920+ [email protected]; if ( questprogress([email protected]) == 2 ) { mes "you have completed this quest"; close; } else if ( [email protected] == 49920 ); // break; else if ( questprogress([email protected] -1) != 2 ) { mes "you can't take this quest yet."; close; } mesf "Go talk to npc %d", [email protected] +1; if ( questprogress([email protected]) == 0 ) setquest [email protected]; close; } function script F_quest_state { [email protected] = getarg(0); [email protected] = [email protected] -1 + 49920; if ( questprogress([email protected]) == 1 ) { completequest [email protected]; dispbottom sprintf( _$( "complete %d" ), [email protected] ); achievement_progress 109993, [email protected], 1, 1; } end; } prontera,150,180,5 script npc 1 1_F_MARIA,{ F_quest_state(1); } prontera,155,180,5 script npc 2 1_F_MARIA,{ F_quest_state(2); } prontera,160,180,5 script npc 3 1_F_MARIA,{ F_quest_state(3); } prontera,160,185,5 script reset 1_F_MARIA,{ for ( [email protected] = 49920; [email protected] <= 49922; [email protected] ) if ( questprogress([email protected]) ) erasequest([email protected]); end; } have fun playing with it actually this is very simple script, just wanna play around a little bit
  20. 2 points

    Guild Skill Notification

  21. 2 points

    Guild Skill Notification

    static void guild_block_skill(struct map_session_data *sd, int time) { uint16 skill_id[] = { GD_BATTLEORDER, GD_REGENERATION, GD_RESTORE, GD_EMERGENCYCALL }; int i; for (i = 0; i < 4; i++) skill->blockpc_start(sd, skill_id[i], time); } hercules uses skill->blockpc_start and skill->blockpc_end to just set sd->blockskill[skill_id] = true:false; so you can just hook to skill->blockpc_end to display the message for the guild master to display the time left in min:sec, when guild master use the skill, run DIFF_TICK function oh wait this is request section ....
  22. 2 points

    Stable packet

    From server side most or all versions should works. Older than 2017 may have some issues and need test for each client) From client side, clients itself works fine, but in some can be issues. And more important not all clients may works patches what you need. Check patches what you need on http://nemo.herc.ws/clients/ On other emulators popular version 2018-06-21, because this emulators not support newer version. But in hercules you can use any new version too.
  23. 2 points

    fixedaspd mapflag

    1.2 - plugin - update to latest revision - add GM level bypass restriction - add *setmapflagfixedaspd *removemapflagfixedaspd *getmapflagfixedaspd script command
  24. 2 points

    movespeed mapflag

    1.2 - plugin - update to latest revision - add GM level bypass restriction - add *setmapflagmovespeed *removemapflagmovespeed *getmapflagmovespeed script command
  25. 2 points

    noinvitation mapflag

    1.1 - plugin - update to latest revision - add gm_level_bypass @evilpuncker
  26. 1 point

    Graphic Giveaway 。^‿^。

    Hercules is so amazing and has so many features such as plugins system and suport for newest clients that it would be a shame using another emulator to run our lovely Ragnarok Online!
  27. 1 point

    [Ranger]: Electric Shock

    I think its official, otherwise there are 2 places to check it doesn't trigger on boss
  28. 1 point

    Continues Sonic Blow.

    even this is old topic, but this member still active unfortunately not all stuffs can be turn into plugin, like adding custom cell_ type (setcell) ... etc.. but, plugin do provide function overload, which is kinda a double-edge-sword you can overload the function with a plugin file, but you still have to update this plugin file periodically to prevent it from not working also having 2 plugins overload the same function, defeats the purpose of using plugin so for your answer, there is no other choice but to copy paste the skill_additional_effect function into the plugin, with the lines you wish to edit https://github.com/HerculesWS/Hercules/wiki/Hercules-Plugin-Manager#hpm-function-overloading
  29. 1 point

    [Showcase] Moonyxel Art

    Your gonna get sued I had this idea where you use hats to add effects to attack animations, maybe you can make the Pikachu add some sparks to your swings
  30. 1 point
    Crown The Empire

    New damage formula (Dragon Breath)

    Old damage formula (before the 175/60 update, implemented December 10, 2014 in iRO): Damage = [(CurrHP ÷ 50) + (MaxSP ÷ 4)] × (SkillLv × BaseLv ÷ 150) × (95 + DragonTraining_Lv × 5)% New damage formula (after the 175/60 update): Damage = [(CurrHP ÷ 50) + (MaxSP ÷ 4)] × (SkillLv × BaseLv ÷ 150) × (95 + DragonTraining_Lv × 5)% × (100 + Ranged Damage Modifiers)% x (Elemental Modifiers)% battle.c (Hercules) case RK_DRAGONBREATH: case RK_DRAGONBREATH_WATER: md.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv; RE_LVL_MDMOD(150); if (sd) md.damage = md.damage * (95 + 5 * pc->checkskill(sd,RK_DRAGONTRAINING)) / 100; md.flag |= BF_LONG|BF_WEAPON; break; battle.ccp (rAthena) case RK_DRAGONBREATH: case RK_DRAGONBREATH_WATER: { int damagevalue = (sstatus->hp / 50 + status_get_max_sp(src) / 4) * skill_lv; if(status_get_lv(src) > 100) damagevalue = damagevalue * status_get_lv(src) / 150; if(sd) damagevalue = damagevalue * (100 + 5 * (pc_checkskill(sd,RK_DRAGONTRAINING) - 1)) / 100; ATK_ADD(wd->damage, wd->damage2, damagevalue); #ifdef RENEWAL ATK_ADD(wd->weaponAtk, wd->weaponAtk2, damagevalue); #endif wd->flag |= BF_LONG; } skill.c (Hercules) case RK_DRAGONBREATH_WATER: case RK_DRAGONBREATH: { struct status_change *tsc = NULL; if( (tsc = status->get_sc(bl)) && (tsc->data[SC_HIDING] )) { clif->skill_nodamage(src,src,skill_id,skill_lv,1); } else skill->attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); } skill.cpp (rAthena) case RK_DRAGONBREATH_WATER: case RK_DRAGONBREATH: if( tsc && tsc->data[SC_HIDING] ) clif_skill_nodamage(src,src,skill_id,skill_lv,1); else skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; So I think the difference is the new formula takes these range, elemental and racial modifiers into account. It seems this formula was recently implemented in rAthena (BF_WEAPON TYPE), while Hercules is still using the old formula (BF_MISC TYPE). I have tried to merge rathena's new formula into Hercules, but encountered several problems.
  31. 1 point


    https://github.com/AnnieRuru/Release/blob/master/Guides/What is dynamic_mob and how it affects scripts.md. https://rathena.org/board/topic/102715-mvp-board/#comment-357487 unfortunately, Hercules/rAthena has dynamic_mob option, which is not available on Aegis, official ragnarok emulator we can't just simply mobcount the MVP because the boss_monster are not loaded until someone warp into the map the TBL_MOB in the topic you link to, using iteration, is equivalent to getunits script command, also doesn't cache the boss_monster there is a tricky way to do this however, which, in my theory, whenever a script command boss_monster pops up, push a source variable, and again this source variable can be read by scripts, and thus provide us to check either that MVP is available or not this question also has been asked to me privately in discord, and currently in 1 of my todo list
  32. 1 point

    Max Atk

    Thats a pretty good question I can get my attack into the 100ks pretty easily... You might appreciate this post i made on rathena by Lllaaazzz (me) https://rathena.org/board/topic/118087-where-can-i-edit-stat-bonuses/#comment-357024
  33. 1 point

    Skill Tree Issue

    Thanks for your replys. Yea, thats "fixed" the problem. And AnnieRuru, that's all was disabled and tested with an normal acc. . But thanks either. ^^
  34. 1 point

    Model/Texture Pack 01

    Version 1.0.0


    My old models will find no place in my new project. . . Future packs will be better organized (yes every model has its own folder maybe I could change it but i didnt) o/
  35. 1 point
    This is good, thanks to this.
  36. 1 point

    Item drop with random refine level/card

    the cards can be done by retrieve the card ID from `item_db` SQL table, its not that hard to do https://github.com/AnnieRuru/Release/blob/master/plugins/addrefinedrop/addrefinedrop_0.2.c btw, this is simple stuffs .... PS: when testing, I turned on autoloot and using custom identifier script
  37. 1 point


    I have been waiting for this soooooo loooonnnnggggg tiimmmmeeee... anyway, just curious, since its just adding a new field "event_label", why not consider alter the existing "skill_db" and add the field there?
  38. 1 point

    Portal Skill

    this is not fixed location, OnPCUseSkillEvent allow to create warp portal anywhere with a target cursor and if you want to change player's warp portal coordinate, just do bindatcmd "@memoportal" something like that "@memoportal 1" will save the location for 1st location on level 1 portal ... "@memoportal 2" will save the location for 2nd location on level 2 portal ... if I still remember correctly, this OnPCUseSkillEvent allows to create up to level 100 let me test .... yup, level 100 warp portal after apply this patch src/map/pc.c | 2 +- src/map/skill.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/map/pc.c b/src/map/pc.c index ea18715bb..9882fe2a8 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4230,7 +4230,7 @@ static int pc_skill(struct map_session_data *sd, int id, int level, int flag) ShowError("pc_skill: Skill with id %d does not exist in the skill database\n", id); return 0; } - if( level > MAX_SKILL_LEVEL ) { + if ( id != 2993 && level > MAX_SKILL_LEVEL ) { ShowError("pc_skill: Skill level %d too high. Max lv supported is %d\n", level, MAX_SKILL_LEVEL); return 0; } diff --git a/src/map/skill.c b/src/map/skill.c index 633a73d67..d2ee741b5 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -14154,7 +14154,7 @@ static int skill_check_condition_castbegin(struct map_session_data *sd, uint16 s } } - if( skill_lv < 1 || skill_lv > MAX_SKILL_LEVEL ) + if ( skill_id != 2993 && ( skill_lv < 1 || skill_lv > MAX_SKILL_LEVEL ) ) return 0; require = skill->get_requirement(sd,skill_id,skill_lv); remember, since OnPCUseSkillEvent is basically an NPC script, you can manipulate it with any kind of script commands available bindatcmd + save a player variable ... or open a menu with select script command .... what ever you like
  39. 1 point

    Portal Skill

    now that I've fixed OnPCUseSkillEvent, its time to show off its awesomeness its usefulness you also need 2nd plugin to do this https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/npc-duplicate.c db/re/skill_db.conf { Id: 2993 Name: "CUSTOM_setpos" Description: "CUSTOM_setpos" MaxLevel: 3 Range: 15 SkillType: { Place: true } CoolDown: 10000 }, data/luafiles514/lua files/skillinfoz/skillinfolist.lub [SKID.CUSTOM_setpos] = { "CUSTOM_setpos"; SkillName = "Get Position", MaxLv = 3, Type = "Quest", SpAmount = { 0 }, bSeperateLv = true, AttackRange = { 15 }, }, data/luafiles514/lua files/skillinfoz/skillid.lub CUSTOM_setpos = 2993, data/luafiles514/lua files/skillinfoz/skilldescript.lub [SKID.CUSTOM_setpos] = { "Warp to various towns", "MAX Lv : 3 ", "Lv 1: warp to prontera.", "Lv 2: warp to payon.", "Lv 3: warp to alberta.", }, conf/import/OnPCUseSkillEvent.conf OnPCUseSkillEvent: ( { SkillName: "CUSTOM_setpos" Event_Label: "qwer::Onpos" }, ) and finally the npc script - script asdf FAKE_NPC,2,2,{ end; OnTouch: switch( [email protected] ) { case 1: warp "prontera", 156,191; break; case 2: warp "payon", 162,233; break; case 3: warp "alberta", 192,147; } end; OnInit: switch( [email protected] ) { case 1: waitingroom "prontera", 0; break; case 2: waitingroom "payon", 0; break; case 3: waitingroom "alberta", 0; } end; } - script qwer FAKE_NPC,{ Onpos: if ( @create_warp_npc_delay + 10 > gettimetick(2) ) { dispbottom "cooldown"; end; } @create_warp_npc_delay = gettimetick(2); [email protected] = .i++; [email protected] = @useskilllv; duplicatenpc "asdf", "asdf", [email protected] +"", strcharinfo(PC_MAP), @useskillx, @useskilly, DIR_SOUTH, 1_SHADOW_NPC, 2,2; [email protected] = 0; sleep 5000; duplicateremove "asdf#"+ [email protected]; end; OnPCStatCalcEvent: skill CUSTOM_setpos, 3; end; } result this screenshot is NOT tampered ... taken in-game without any photoshop or ms-paint edits
  40. 1 point

    Stable packet

    yes you can or any other version Ragexe is stable kro clients, RagexeRE is testing kro clients, Ragexe_zero is zero clients
  41. 1 point

    noitem mapflag

    1.8 - plugin - fix duplicate entry by ShowWarning - add missing IT_AMMO item type deny
  42. 1 point

    @market clone

    1.7 - plugin - fix memory leak for not removing the chatroom
  43. 1 point

    noitem mapflag

    yes look like missing cleanup on server stop and on logout. Because vector is not array but some kind of custom type with pointer, it should be cleaned manually
  44. 1 point

    r883 - Corrected Behavior of ALL_QUEST_LIST3 Packet

    =General *Fixed a issue that can cause clients to crash on map load or cause lua errors. =This was caused by the ALL_QUEST_LIST3 packet. I was unaware of how much its -structure can change depending on the number of objectives detected. -Big thanks to 4144 for explaining to me how it works. - -Note: Players will still experience lua errors when quests like the endless -tower (ID's 60200 and 60201 for example or anything in the 60k range) is -active. This is not a packet issue.
  45. 1 point
    =General *AC_ACCEPT_LOGIN4 -Updated the packet code to pad in the unused parts of the structure. *ZC_ALL_QUEST_LIST3 *ZC_ADD_QUEST_EX *ZC_UPDATE_MISSION_HUNT_EX *HC_NOTIFY_ZONESVR2 -Added support for these packet. *npc_chat_sub -Applied a fix to the function that should resolve issues with npc script -commands like the defpattern function. Credits to 15pieces for the fix. =SQL *Updated 3CeAM_svn876.sql to update the guild position mode value to smallint. -This is required since the value for guild storage permission is higher then 256. *Added 3CeAM_svn882.sql which changes the guild storage mode value to smallint. =Skills *NJ_HUUJIN (Wind Blade) -Corrected the cast time.
  46. 1 point

    Sample Questlog & Achievement script

    the new quest log window is only for 2018-03-07b onward, so if your client is not so up to date, can use version 0.3 ... nope, that is just some information when I brainstorming some quest idea about Dastgir's idea that add custom quest in Any tab, I'm thinking not going for it, because I'm thinking of integrate this with achievement system ... using such old client version also means you can't use more modern features
  47. 1 point


    Version 1.0.0


    New warp code lines and all the information you can find here: The project is still in progress, just sharing what we have at this moment now. Reports about bugs, etc are welcome.
  48. 1 point

    Avatar and Signature Generator FluxCP Addon

    File Name: Avatar and Signature Generator FluxCP Addon File Submitter: Hyvraine File Submitted: 17 Apr 2016 File Category: Web Resources This is based on KeyWorld's [Vincent Thibault] ROChargenPHP. I just made some little tweaks to work some things out. The only difference is that it's made into a FluxCP addon instead of having it on a different folder, so you don't have to write down your server's credentials again. I have only tested this yet on the latest Herc FluxCP so, uhm, you know, try not to ask for installation help on rA Flux just yet. (Although it should work just fine on rA Flux, haven't tried it yet but it should.) I'm going to upload the sprite.grf soon so look out for edit/s on this post for the link.http://www.mediafire.com/download/1nta77tc0obolhf/sprite.grf Installation 1. After extracting the ZIP file inside the addons folder, put your own GRFs inside 'addons\chargen\modules\chargen\client'. And also, edit the DATA.ini to list your GRFs. 2. You're good to go! 3. There are some settings inside the addon.php (addons\chargen\config\addon.php): This line changes the cache time for your avatar's status. 'ChargenCacheTime' => 0.1, ////In minutes These are the default backgrounds/border for your avatar/signature in case you didn't click on any of them in the creation menu. 'default_avaBG' => "background00.jpg", //Default Avatar Background BG'default_avaBD' => "border.png", //Default Avatar Border'default_sigBG' => "background01.jpg", You can have your custom INI, just make sure you edit the name here. 'Data_INI' => "DATA.INI", Like on KeyWorld's thread, setting this to true would have an improvement on speed as it's not looking inside the GRFs again and again. 'AutoExtract' => true, These are the file types that the addon will read inside the backgrounds/borders folder. 'supported_filetypes' => array('gif','jpg','jpeg','png'), //List of supported filetypes for background and border. You can also edit the default values but it's very unlikely that it will ever be needed at some point. Fetching images By default you can only fetch images when the data file has been created by the owner of that character. Sorry, but there's no turn off switch for that. This is how you can fetch an avatar image of a character <fluxcp>/?module=chargen&action=avatar&request=<charnamehere> This is for the signature <fluxcp>/?module=chargen&action=signature&request=<charnamehere> ------------- To add more backgrounds for the avatar creation just simply add them inside the dedicated folder for it: 'addons\chargen\modules\chargen\data\avatar\background' To add more borders for the avatar creation simply add them inside the borders folder: 'addons\chargen\modules\chargen\data\avatar\border' The same is also for the signatures (it's on addons\chargen\modules\chargen\data\signature). I'll add support for borders soon but I think you could just edit the background for the meantime. /no1 And I think that's all you need to know! Everything should be working now, and if it isn't don't hesitate to ask. Please report bugs too, I know it's not written that well. :/ License is the same as the original: http://creativecommons.org/licenses/by-nc-sa/3.0/ Notes: This does not generate head-only, nor monsters, nor character-only images. Click here to download this file
  49. 1 point
  50. 1 point

    Obtaining Hercules

    I dun know why the svn address not working with windows TortoiseSVN client,but it was working fine with linux svn checkout erro msg: Checkout from http://svn.github.com/HerculesWS/Hercules.git, revision HEAD, Fully recursive, Externals includedThe PROPFIND response did not include the requested properties