Epoque

Bonus Expansion Pack (73/75)

Recommended Posts

506791419_flask(1).png.3ce14c85adf077c20d8f458ac00a9e78.png

Bonus Expansion Pack

Introduction

As some of you may know, a long time ago I made a patch for eAthena which included an expanded collection of bonus script commands which could be used on items. I'm guessing this was somewhere in the region of 10 years ago now, so I think it's probably fitting that a newer version be developed. So, development hasn't started yet as I need to dig up the old list and identify which ones haven't already been implemented/which ones can actually be implemented against the new code base.

Requests

This topic will serve as the base for any and all requests. The purpose of this project is to develop new bonus script commands, or augment existing ones by adding more specific or extra versions. I'm open to the community for any suggestions and requests for the bonuses which will be introduced. Please don't request things like new at-commands or new script commands as I'd like to keep this project specific to bonuses, however I might end up developing some script commands if I find that they're necessary to accomplish a bonus.

Pending

Spoiler
  • autotargetbonus <script>,<rate>,<duration>{,<flag>{,<other script>}};
    When attacking, adds a chance of the bonus script becoming active on the target player for a period of time.
  • autotargetbonus2 <script>,<rate>,<duration>{,<flag>{,<other script>}};
    When being attacked, adds a chance of the bonus script becoming active on the attacking player for a period of time.

Implemented

Spoiler
  • bonus bChangeRace,n;
    Change the player's race to n
  • bonus bHomunculusIntimacy,n;
    Increases intimacy by feeding Homunculus by n%
  • bonus bSkillMovement,n;
    Allows movement while casting any skill at n% walking speed
  • bonus bAvoidTrap,n;
    Increases the chance to completely avoid a trap when within range by n%
  • bonus bNoAreaMagic,n;
    Increases damage resistance to AoE magic skills by n% (100 is immune)
  • bonus bNoSingleMagic,n;
    Increases damage resistance to single-target magic skills by n% (100 is immune)
  • bonus bCriticalEvade,n;
    Increases chance to avoid a critical hit by n%
  • bonus bRetainBuffs;
    Allows the wearer to retain positive buffs upon death
  • bonus2 bIgnoreGTB,n,x;
    Increases the chance of ignoring the effect of GTB and dealing n% damage by x%
  • bonus2 bCriticalDodge,n,x;
    Increases the chance of completely avoiding damage when health is below n% by x%
  • bonus3 bAreaSkill,n,x,y;
    Increases the chance of skill 'n' to be cast in an AoE of x * x cells by y%
  • bonus3 bSkillGainSP,n,x,y;
    Increases the chance of gaining x SP when using skill n by y/10%
  • bonus2 bStatusDamage,n,x;
    Increases all damage on enemies inflicted with status n by x%
  • bonus2 bStatusResist,n,x;
    Increases resistance to status n by x%
  • bonus3 bStatusSwitch,n,x,y;
    Increases the chance of status n becoming status x when inflicted upon the wearer by y%
  • bonus bHealAttack,n;
    Causes the Heal skill to become an attack regardless of the race or element of the target (n: 1 = enemies, 2 = party / guild, 4 = self, combinable)
  • bonus bMdefAtkRatioEle,n;
    The same effect as bDefRatioAtkEle but with the damage affected by MDEF and increasing MATK (n: an element)
  • bonus bMdefAtkRatioRace,n;
    The same effect as bDefRatioAtkRace but with the damage affected by MDEF and increasing MATK (n: a race)
  • bonus2 bHPAttackRatio,n,x;
    Increases damage on an enemy of race 'n' based on their remaining HP up to a maximum boost of 'x'% (when 'x' is 50, 100% HP deals +50% damage, 50% HP deals +25% damage)
  • bonus2 bSPAttackRatio,n,x;
    Increases damage on an enemy of race 'n' based on their remaining SP up to a maximum boost of 'x'% (same example as above but with SP)
  • bonus3 bHPDrainRatio,n,x,y;
    Increases the chance of draining 'y'% current HP of an enemy of race 'x' and absorbing it as health by 'n'%
  • bonus3 bSPDrainRatio,n,x,y;
    Increases the chance of draining 'y'% current SP of an enemy of race 'x' and absorbing it as SP by 'n'%
  • bonus3 bAtkEmotion,n,x,y;
    Increases the chance of using 'x' emotion by 'n'% (y: 1 = attacking, 2 = being attacked, 3 = both)
  • bonus bStatusInflictRate,n;
    Increases chances of inflicting any statuses (poison, freeze, curse, etc.) by 'n'% (applied to status rate, so a value of '50' would increase a '20%' rate to '30%')
  • bonus2 bStatusInflictRate,n,x;
    Increases chances of inflicting status 'n' by 'x'% (applied to status rate)
  • bonus3 bIgnoreSkillDefEle,n,x,y;
    Ignores 'y'% of DEF/MDEF of the enemy when using skill 'x' against an enemy of element 'n'
  • bonus3 bIgnoreSkillDefRace,n,x,y;
    Ignores 'y'% of DEF/MDEF of the enemy when using skill 'x' against an enemy of race 'n'
  • bonus bSwitchPlace,n;
    Adds n% chance of swapping place with an enemy when attacking.
  • bonus3 bWideStatus,n,x,y;
    Adds y% chance of inflicting status n in an area of x*x when attacking.
  • bonus3 bWideStatusOnHit,n,x,y;
    Adds y% chance of inflicting status n in an area of x*x when being attacked.
  • bonus bSkillChain,n;
    Adds n% chance of any skill being automatically cast again to a nearby target when the original target dies.
  • bonus2 bSkillChain,n,x;
    Adds x% chance of skill n being automatically cast again to a nearby target when the original target dies.
  • bonus bSkillBounce,n;
    Adds n% chance of any skill being automatically cast on yourself after being cast on a target.
  • bonus2 bSkillBounce,n,x;
    Adds x% chance of skill n being automatically cast on yourself after being cast on a target.
  • bonus2 bSubJob,n,x;
    Adds x% damage resistance to players in job n (n: same mask as item database job column).
  • bonus2 bAddJob,n,x;
    Adds x% damage inflicted on players in job n (n: same mask as item database job column).
  • bonus2 bAddMonsterDropItemAtk,n,x;
    Adds x% chance of any monster dropping item n when being attacked.
  • bonus2 bAddMonsterDropItemGroupAtk,n,x;
    Adds x% chance of any monster dropping an item of group n when being attacked.
  • bonus3 bAddRaceDropItemAtk,n,x,y;
    Adds y% chance of a monster of race x dropping an item n when being attacked.
  • bonus3 bAddClassDropItemAtk,n,x,y;
    Adds y% chance of monster of class x dropping an item n when being attacked.
  • bonus2 bAddSelfDropItemAtk,n,x;
    Adds x% chance of dropping item n when being hit (n must be in your inventory)
  • bonus2 bAddSelfDropItemGroupAtk,n,x;
    Adds x% chance of dropping an item of group n when being hit (item must be in your inventory)
  • bonus2 bAddStatus,n,x;
    Adds x/10% chance of inflicting status n when attacking.
  • bonus bPetIntimacy,n;
    Increases intimacy by feeding Pet by n%
  • bonus bInterrupt,n;
    Adds an n/100% chance of interrupting a player's auto-attack when attacking
  • bonus bInvert,n;
    Adds an n/100% chance to invert the current HP and SP of the player (HP becomes SP and SP becomes HP)
  • bonus2 bBreakEquip,e,n;
    Adds an n/100% chance of breaking one of your own pieces of equipment at position e (does not work with chemical protection)
  • bonus bChangeSize,n;
    Changes the player's size to n
  • bonus2 bMultiDrop,x,n;
    Adds an n/100% chance that a monster will drop an item in a multiple of x (x = 2 would mean drop 2 items in place of 1)
  • bonus bDoubleCast,n;
    Adds an n/10% chance that a skill will be cast again on the same target at no extra cost
  • bonus2 bDoubleCast,sk,n;
    Adds an n/10% chance that skill sk will be cast again on the same target at no extra cost
  • bonus bIgnoreFlee,n;
    Ignore n% of the FLEE of the target
  • bonus bDeath,n;
    Adds an n/100% chance of immediately killing a target (ignores GTB effect)
  • bonus bWaterAtkRate,n;
    Increases attack power by n% when stood on a water cell
  • bonus bWaterMatkRate,n;
    Increases magic attack power by n% when stood on a water cell
  • bonus2 bGravity,x,n;
    Adds an n% chance of drawing all enemies with an x * x area around the player one cell closer
  • bonus bNoChat;
    Prevents the player from using chat
  • bonus bNoConsume,n;
    Adds an n% chance to use a skill without consuming SP or required items
  • bonus bNoAmmo,n;
    Adds an n% chance to use a weapon within consuming ammunition
  • bonus bSnapMove;
    Causes the player to immediately snap to the desired location
  • bonus bZenyAttack,n;
    Consume n zeny when attacking an enemy (prevents attacking when no zeny available)
  • bonus bItemAttack,n;
    Consume item n when attacking an enemy (prevents attacking when no item available)
  • bonus bAutoLife,n;
    Adds an n/100% chance of automatically being resurrected upon death.
  • bonus bDamageLimit,n;
    Limits attack damage up to n
  • bonus bHPLimit,n;
    Limits maximum HP up to n
  • bonus bSPLimit,n;
    Limits maximum SP up to n
  • bonus2 bAtkRateChance,d,n;
    Adds an n/10% chance of dealing d% damage on attack
  • bonus2 bMatkRateChance,d,n;
    Adds an n/10% chance of dealing d% damage on magic attack
  • bonus bNoEquip,e;
    Prevents equipping an item at location e (e: EQI_HAND_L, EQI_HAND_R etc.)
  • bonus2 bWeaponDef,w,n;
    Reduces damage received from melee attacks of weapon type w by n%
  • bonus bElementLevel,n;
    Changes the defense element level of the player to n (n: 1-4)
  • bonus bSkillHPCost;
    All skills consume HP instead of SP when casting
  • bonus bSkillHPCost,sk;
    Skill sk consumes HP instead of SP when casting
  • bonus bSkillItemCost,i;
    All skills require item i to cast
  • bonus2 bSkillItemCost,sk,i;
    Skill sk requires item i to cast

Usage

The development will take place on a fork of rAthena under a separate branch. Once the initial version is complete I will generate a patch file which can be applied against the master branch of an rAthena repository. Please be advised that I won't be providing support for previous revisions (for example, if you're running a version of rAthena which was available 4 months prior to my patch.) My intention is to keep the forked branch up-to-date with periodic merges of the master branch, and produce new patch files whenever this takes place (and keep historical patches)

Thanks

Edited by Epoque
  • Upvote 4
  • Love 1
  • Like 1

Share this post


Link to post
Share on other sites

1.  ok so first request @kick command into script command? 

2.  or just make the player go to char select screen???

 

Share this post


Link to post
Share on other sites

is the expansion pack request are from server side only or the like client side mod will be granted too? like configured colored item, when one sloted weapon or armor sloted more than one card it will change it s color name, apparently until now is not being achieved (for public use), 

Share this post


Link to post
Share on other sites
2 hours ago, utofaery said:

1.  ok so first request @kick command into script command? 

2.  or just make the player go to char select screen???

 

This project would be for item bonuses only, so I wouldn't be adding new script commands. I do remember developing some basic script commands (itemselect, addslot, removeslot) back in the original pack, but then I'm not sure if there's a need for a kick command when you can run the at-command from an NPC?

1 hour ago, Litro Endemic said:

is the expansion pack request are from server side only or the like client side mod will be granted too? like configured colored item, when one sloted weapon or armor sloted more than one card it will change it s color name, apparently until now is not being achieved (for public use), 

It would be server side only. I can't remember exactly what my previous bonuses were (still looking up the old patch/topic) but it would be specialist/bespoke features you can apply to equipment which otherwise don't currently exist in rAthena. For example, a bonus which increases the chances of inflicting a status by an overall percentage (ie. improve chance of inflicting Freeze by 50% which would cause all bAddEff,Eff_Freeze,x; bonuses to increase by 50%)

Share this post


Link to post
Share on other sites

It's nice to see you here in rAthena, I know you don't know me but I've seen your work before. /gawi

If possible, I can request a config that will set how many characters can a GM account can create.

    id: 3
    name: "Script Manager"
    inherit: ( "Support" )
    level: 1
    chars: 1 // <= can only make 1 character if account was set on every account who got group 3 id's
    commands: {

 

Edited by Radian

Share this post


Link to post
Share on other sites

if anyone interested looking for Epoque's past bonuses project, members has mirror it
http://herc.ws/board/topic/933-epoque-expansion-pack/

 

but actually, everyone now has learned how to use GIT, so commit to a side branch in rAthena repo is unnecessary
most of us use fork from rathena, and we develop our own stuffs on the fork

 

oh and, hercules supports plugin, if you actually code it, I could transfer it into plugin format
should look something like this
https://github.com/AnnieRuru/Release/blob/master/plugins/bonus sample/bAddMaxWeight_0.3.c

Edited by AnnieRuru

Share this post


Link to post
Share on other sites
1 hour ago, Radian said:

It's nice to see you here in rAthena, I know you don't know me but I've seen your work before. /gawi

If possible, I can request a config that will set how many characters can a GM account can create.

    id: 3
    name: "Script Manager"
    inherit: ( "Support" )
    level: 1
    chars: 1 // <= can only make 1 character if account was set on every account who got group 3 id's
    commands: {

 

Interesting idea, but again I think this falls out of scope of the project. The intention is for these to be item bonuses, not additions or changes to configuration files. Please see the examples under the Pending section of the original post 🙂 

38 minutes ago, AnnieRuru said:

if anyone interested looking for Epoque's past bonuses project, members has mirror it
http://herc.ws/board/topic/933-epoque-expansion-pack/

 

but actually, everyone now has learned how to use GIT, so commit to a side branch in rAthena repo is unnecessary
most of us use fork from rathena, and we develop our own stuffs on the fork

 

oh and, hercules supports plugin, if you actually code it, I could transfer it into plugin format
should look something like this
https://drive.google.com/file/d/0B2BM920mmHQgdFNHZjBWM2cySjg/view

That's the same place I managed to dig up the original, obviously it needs bringing up-to-date (the last past on that topic was 2013, ouch) and I'm sure there's room for more bonuses now. I have a few new ideas I'd like to throw in the mix. As for the plugin, that's an interesting suggestion. I think I might get the initial development done using the usual method, and then perhaps look at the plugin mechanism. The only problem there is I'll need to learn the new system just to support the new bonuses, so it'll probably come last.

The reason I was thinking about creating a separate branch in a separate fork is just to make merging easier. Granted I'm fairly new to properly leveraging GIT to it's fullest extent, I'll have a poke around and see if I can dig up a good reason to have it all on the master branch.

PS: Long time no see!

Edited by Epoque
  • Love 1

Share this post


Link to post
Share on other sites
On 2/1/2019 at 2:08 PM, Epoque said:

Interesting idea, but again I think this falls out of scope of the project. The intention is for these to be item bonuses, not additions or changes to configuration files. Please see the examples under the Pending section of the original post 🙂

I understand, i'll think of a good bonus 🙂 can't wait for this one

Share this post


Link to post
Share on other sites

Three powerful tools:
- Temporal Bonus, Status or usable Skills with a timer like bTemporal Str,10,10000;  or bSKTemp AB_RENOVATIO,5,10000;
- % to call a label event/function when cast a skill/hit/being damaged 
   -- maybe add a check for a specific target/enemy id (monster id/class, only players, etc)
- Gain X bonus when Y conditions met (map, job, level, variable, etc) (Annie did something like this with status while being on map X)

Other cool bonus:
- Swap position with target
- % to inflict a status in an area when being hit/damage enemy
- % of cast the same skill to a nearby target at X cells if original target are killed (chain lightning effect)
- % of cast the same skill to you at attack (like hurting yourself instaed your enemy with your own skill)
- % of resist to a bitmask class (for example for whole mage class)
- % to drop X item/groupitems when being hit (for example, drop honey when enemies hit you; bAddClassDropItemGroup inverted)
- % to reduce target cast/aspd or speed x seconds for y% amount at damage/being hit
- % to inflict status x at target when you hit it by melee/skills
- Expand bIntimacy with pets

Edit1: Some crazy ideas, hope you like it
- Panic: % to make the target or attackers run away from you with slow speed
- Transmutation: % to disguise target/attacker to x monster for y time making them unable to attack/do skills (a nice emote would be good)
- TemporalShield: % to summon a shield with x hp for y time (works exactly like millenium shield but with this we can set the hp)
- TowerDefense: %x to summon a wall with Z x Y size around the caster (ice/fire wall maybe?) [wall of thorns like]
---- maybe set R hp of the wall? Would be awesome
- Vacuum: % to suck targets to your position on y area
- Taunt: %x to force everyone on Z x Y square around you to attack you when being hit/do damage
- FinalStand: % to heal allies on an Z x Y square around you equal to damage inflicted to you
- Panacea: % to heal z% percentage/remove status y when use skill/item/itemgroup x
- DoubleDmg: % to inflict x% additional damage when being hit with same skill y again on z time [first skill deals you 500 damage and the same second one deals you 500+x% aditional damage]
-DoubleEdge: % to increase damage/speed/aspd to whole party when attack/being hit (negative and positive value support)
Expansion for compare method with level/class/monture/inventory weight/x item qty/hp/skill_id/skill_lvl
------ The original patch support this already?

Edit2: Small one

-SkillX: % to ignore special requirements of skill like mado, wolf, weapon, etc.
-SkillBounce: Exactly like the one when the target dies but maybe another one without need to a target dead?
 

My brain is dry for now, I will edit this if more ideas come to me.
Thanks in advance, your job is awesome.

Edited by Igniz

Share this post


Link to post
Share on other sites
15 hours ago, Igniz said:

Three powerful tools:
- Temporal Bonus, Status or usable Skills with a timer like bTemporal Str,10,10000;  or bSKTemp AB_RENOVATIO,5,10000;
- % to call a label event/function when cast a skill/hit/being damaged 
   -- maybe add a check for a specific target/enemy id (monster id/class, only players, etc)
- Gain X bonus when Y conditions met (map, job, level, variable, etc) (Annie did something like this with status while being on map X)

Other cool bonus:
- Swap position with target
- % to inflict a status in an area when being hit/damage enemy
- % of cast the same skill to a nearby target at X cells if original target are killed (chain lightning effect)
- % of cast the same skill to you at attack (like hurting yourself instaed your enemy with your own skill)
- % of resist to a bitmask class (for example for whole mage class)
- % to drop X item/groupitems when being hit (for example, drop honey when enemies hit you; bAddClassDropItemGroup inverted)
- % to reduce target cast/aspd or speed x seconds for y% amount at damage/being hit
- % to inflict status x at target when you hit it by melee/skills
- Expand bIntimacy with pets

My brain is dry for now, I will edit this if more ideas come to me.
Thanks in advance, your job is awesome.

Some great ideas there! I'll come up with some bonus names and pop them on the list. I'd say that the temporary stats/status effects/skills can probably already be achieved through the use of autobonus, and the X bonus when Y conditions met is already possible by looking at the player variables when the item bonus executes. If you mean these happening passively, it would require more work than just implementing a new bonus command (something I may be working on separately)

Thanks!

Share this post


Link to post
Share on other sites

I would like to see bAutoSpell having critical strike as a trigger if possible, both when hit or when you attack.

Share this post


Link to post
Share on other sites
1 hour ago, Roundness said:

I would like to see bAutoSpell having critical strike as a trigger if possible, both when hit or when you attack.

That should be relatively simple to do, the auto-spell bonuses have a 'bf' option, I could add a new option for BF_CRITICAL which would signal that only critical hits will affect the chance.

Share this post


Link to post
Share on other sites

Some real progress has been made on this now! We're not far off hitting 70 new bonuses. I'm open to more suggestions if anyone has any as I'm starting to run out of ideas myself!

Share this post


Link to post
Share on other sites
On 2/18/2019 at 11:11 PM, Epoque said:

That should be relatively simple to do, the auto-spell bonuses have a 'bf' option, I could add a new option for BF_CRITICAL which would signal that only critical hits will affect the chance.

Good idea and great work.

Share this post


Link to post
Share on other sites
Posted (edited)
On 2/21/2019 at 7:57 PM, Epoque said:

Some real progress has been made on this now! We're not far off hitting 70 new bonuses. I'm open to more suggestions if anyone has any as I'm starting to run out of ideas myself!

bonus2 bSkillCastRange, k, n; //Increases the cast range of skill k by n cells. (can be negative, works only on targetted skils)

bonus bStealRandomBuff,n; ////Chance of stealing a random buff from target when attacking with n/100 chance. (@Edit: bonus bRetainBuffs prevents buffs from being stolen).

bonus2 bStealBuff,n, k; //Chance of stealing specific buff 'k' from target when attacking with n/100 chance.

bonus2 bSkillHits,n,k; // Increases/decreases the total number of hits given by skill 'k'. 

 

ps.: Great work, Epoque. 😃

Edited by Hunter206

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...