Comments

Log in with itch.io to leave a comment.

Hi again. I'm having an issue with one of my states and after some testing found it was incompatible with this Parry plug-in. Honestly not sure what could be causing the issue.

Below is the state's notebox; basically it blocks a physical skill of a pre-defined skill type. Any idea what could be causing it/how to fix it?

<custom select="" effect=""> // Check if this action is a skill and targets an opponent. if (this.item() && DataManager.isSkill(this.item()) && this.isForOpponent()) {   // Create a pool of blocked Skill TYPES.   var blockedtypes = [];   // Add the skill type ID's to that pool.   blockedtypes.push(2, 3, 5, 7, 8, 10, 11, 13, 14);   // Create a pool of blocked individual skills.   var blockedskills = [];   // Add the individual skill ID's to that pool.   blockedskills.push(1, 3, 4, 5, 8, 9, 200, 201, 202, 203, 204, 205, 206, 208, 209);   blockedskills.push(56, 125, 300, 407);   // Check if the skill type or skill ID matches.   if (blockedtypes.contains(this.item().stypeId) || blockedskills.contains(this.item().id)) {     // If it does, then store the skill's original success rate.     this._formerItemSuccessRate = this.item().successRate;     // Now drop the skill's success rate to 0.     this.item().successRate = 0;     // Start an animation to show the spell shield occurred.     target.startAnimation(53);   } } </custom>  <custom deselect="" effect=""> // Check if there is a success rate stored. if (this._formerItemSuccessRate !== undefined) {   // Restore the skill's success rate.   this.item().successRate = this._formerItemSuccessRate;   // Remove this spell shield state.   target.removeState(stateId); } </custom>

What specifically is happening when this skill triggers?

The plugin makes some changes to how an action is applied to a target (namely, it checks for a parry after it checks for a block, which it does after the miss chance is checked), so it's possible that your effect is triggering when a parry (or block) has happened. You could add some extra checks like if (this.result.isBlocked() || this.result.isParried()) and then do the rest of it.


Nothing in those note tags should be affected by my plugin though, select effects and deselect effects have been thoroughly tested, as the block chance plugin uses them to cause the block effect.

~Ramza

Thanks for the response. The skill is based on one by Yanfly which basically sets the success rate to 0 if the incoming skill is on the list.

I tried adding an if/else at the beginning of the <Custom Select Effect> checking for a parry/block like you suggested and then activating the skill if false, but my JS skills are pretty basic and not 100% I did it correct.

I don't think the block/parry is the issue though. If I turn the Parry plug-in OFF, the skill still activates with the Block plug-in ON. Also when Parry is ON, even though none of my characters are capable of Parrying the skill doesn't trigger.

Where is the Parry plugin loaded in your plugin order?

Both of the plugins overwrote functions that other plugins might use, knowing this I did state to load block chance immediately after BattleCore, and it's possible that you may also need to load Parry Chance right after that as well to prevent any compatibility problems because of the way I did this.

~Ramza

(1 edit)

Hey it's loaded under Yanfly's BuffStates Core; I read somewhere that it needed to be under that one whereas your Block plug-in is right under the BattleCore. If I move Parry right under Block, it doesn't work anymore.

If it's just not compatible with the skill it's too bad and I won't be able to use it, but at least the Block plug-in works with no problems.

Hello, I'm trying to add an increase to Parry chance to armor based on this comment:

Using the additional parry chance, you could modify parry rate based on any of the following:
  • Equipped armors/weapons, or combinations of each

I'm not exactly sure how to get this to work though. As a previous user mentioned 2 years ago there aren't any Notetags for +Parry for armor, so I assume this was a workaround added later?

That comment was referring to the Additional Parry Chance plugin parameter.

That parameter is just a big notebox which is parsed into the game as a function. The default value in that box is just a flat parry rate increase based on the battler's atk parameter, but you can change it to be just about anything.

The snippet of text there is referring to something you could do with it, knowing that it can access anything on the battler. That effect isn't very easy to implement via the notebox, though because it is checked on every battler (who can parry) every time a parriable attack is used on them. While you could use that notebox to set up a series of checks (if a.isActor() && a.equips()[3] === ... etc), it would be pretty inefficient, especially if you have multiple equips that can do that.

The much easier way to do it is to add parry rate to states, and then put the states on the armor passively using the YEP_AutoPassiveStates plugin. Perhaps using a different state for each equipment slot so you don't run into weird stacking issues.

~Ramza

(+1)

Cool, the Passive States idea works perfectly. Thanks!

Greetings! I've been having a great time with your plugins, in my opinion many of them are practically essential. Thank you for existing. I have a suggestion, if you'd have it.  

Parry Chance notetags seems like they can't be placed on armors which, of course, makes sense in practicality. But I think it could add some depth for players if you could boost that stat with armor types. For example, something like a "Fencer's Ring" that could add a flat amount of parry chance. I suppose it could be done by giving the equipment a passive state that boosts parry chance, but then I don't think it would be stackable if you have 2 of the rings on, or similar armors without bloating up the state database.

Also Block Chance/Percent/Value notetags for weapons for similar reasons. Being able to boost blocking potential through weapon equips could have some pretty great synergy. Perhaps something like "Gladiator's Sword".

Thanks for your time and these awesome plugins :)

Those are good suggestions. I'll see about adding them in future updates.

That would be fantastic :D

(+1)

If using Yanfly Item Durability, The Parry plugin will crash if player attacks with a weapon with 0 durability.

(1 edit)

What normally happens when a player attacks with a weapon with no durability without the parry chance plugin? Does it show a barehanded attack? I feel like a weapon with no durability is replaced with nothing during the attack sequence, causing this error, as it can't get the Parry ignore chance of an item that doesn't exist.

I'll see if I can correct this problem when I get home later.

It shows a barehanded attack which works fine, then it shows a sword on the second dual attack and black screens.

Greetings.

I have uploaded version 1.07 of this plugin which corrects this issue you have reported. 

You can see the update devlog here.

Thanks for the report.

Awesome Ramza. Thanks!

Hmmm, I dig the parry, but is there any way to factor in parameters from the opposing side to balance down parry chances?  As it stands, as far as I can tell with the default formula + base parry, by a.atk 435 you're at a 100% chance to Parry, basically.  

Can work around this by not having a scaling bonus formula, but I'd ideally like to have a little bit of give / take with scaling, especially if enemy battlers are going to have a chance to parry player attacks too.

Cheers!

I had not included comparisons to the params of the incoming attacker when I made this.

This is a good suggestion, so I will include it in a future update. 

I will also add a new offensive parameter, similar to shield piercing that will reduce the targets effective parry chance, as that seems like a wise addition as well.

I'm pretty excited about the possibilities--I was stoked when I saw this plugin available, as one of the core party members for my current project is framed as a duelist and intended to be a very 'mechanical' sort of character, juggling various stances and the like.  

Having the ability to wrangle parrying and triggering actions into ripostes and the like has great potential for fun and interesting mechanics--and I similarly like the idea of being able to have enemy battlers or even bosses who utilize parrying in compelling ways too.

As it stands I just worry for managing scaling without ending up in a situation where the player is left frustrated because enemies are frequently parrying with no recourse on their part--but I don't want to write off enemies being able to parry altogether.  Thanks again for the consideration!

(1 edit)

I have just posted an update to this plugin that adds in a couple of ways to mitigate balance problems resulting from scaling.

Expertise is an xparam-like trait that subtracts from a targets parry rate during an attack. It can be added to classes, states, weapons, armor, and enemies via note tags. Multiple sources of this trait stack additively. Every 1% of expertise reduces the chance for your attack to be parried by 1%. This xparam can also be shown on the YEP_StatusMenuCore screen using the short code 'xpt' via the exparamfix plugin, or the dual wield's menu extension.

I also added Pierce Parry, which is an effect that can be put onto weapons, states, or enemies, and reduces the targets parry rate by a % of their total. This effect is calculated after expertise has been applied. If there are multiple sources of this trait, only the one with the highest magnitude is used.  This trait can also be negative, causing the targets effective parry chance to increase by a %. Actors who are dual wielding weapons with this trait will only get the value from the weapon currently being swung, allowing specific weapons to break parries more easily.

I was unable to implement the ability to use the attackers parameters in the additional parry chance formula. This is because the additional parry chance formula is used to calculate parry chance at all times, not just during battle, so an attacker cannot be part of the formula, as one is not always present when the calculation is being done. However, the above two additions should more than make up for this.

(1 edit)

Remarkably swift!  Expertise and Pierce Parry are both great--I was actually just experimenting with setting up flails and Pierce Shield so that they're harder to block, so having a source of parry piercing as well is fantastic!

My only remaining wishlist element then is not having an avenue for a scaling expertise formula, simply for concern over how to balance expertise against scaling enemy parry chance.  I'm going to need to do some brainstorming over how to best present expertise equipment / skills / actor perks to players in a fashion they can appreciate defeating enemies with high parry (or really, a way to visually ID parry-happy enemies in general.)   Maybe a state icon, or a 'parry aura' effect as visual shorthand.  Hmm.

I realize this is ultimately a sliding scale issue to begin with though, since it will be difficult for a player in an RPG Maker game to really get a transparent understanding of their odds / the 'why' of how these calculations occur in a given battle.  That stems from the broader boundary of RPG Maker MV's UI limitations in general though--my kingdom for the ability to mouseover a UI element and get a tooltip with information for the player!

Though writing that, I'm prompted with the notion of potentially having an optional animation for expertise making the difference for an otherwise parried hit (I imagine that is not actually viable, with expertise reducing parry rate instead of being its own calculation--but it's a fun mental image for one battler to do a parry 'clash' animation, only for the attacker to do their own expertise 'clash' animation to 'overrule' it.)

Much oblige for your efforts, stellar materials!