A downloadable add-on

Get this add-on and 1 more for $19.99 USD
View bundle
Buy Now$14.99 USD or more

Overview:

The default implementation of dual wielding in RPG Maker MV is pretty lackluster, an actor who is wielding two weapons strikes once, with both animations from his weapons showing simultaneously, and damage of that one hit being calculated with all of the traits of both weapons. This can make for some weird synergies, like equipping a weapon with a high hit % to offset the low hit % of a much heavier hitting weapon, or taking advantage of double elemental weaknesses with one powerful hit causing all kinds of balancing problems. Not to mention the fact that a dual wield actor can ever only wield weapons in his hands.


This plugin changes all of that. Dual wield actors will now strike twice with normal attacks, each individual hit will show its own weaponsprite and animation, and will do damage and added effects solely based on the weapon being swung. Additionally, being a dual wield actor doesn't limit you to using only weapons in your offhand anymore, shields are available to everyone!



More info:

The above features are 100% plug and play. The plugin does all of the heavy lifting for you. But there are a lot more granular changes that more advanced users can take advantage of as well.

  • Weapons can be locked to <Mainhand> or <Offhand> only.
  • Weapons can also be <Twohanded> which will prevent even using a shield in their offhand. This tag doesn't only apply to dual wielding actors, either.
  • Shields can be marked <Offhand> which denotes them as being light enough to use together with a two handed weapon.
  • Configurable penalties/bonuses for dual wielding, wielding an offhand weapon, or two-handing a weapon.
  • Additional configurable attack bonuses/penalties can be set on a weapon for two-handing it or wielding it in the offhand, if the % modifiers aren't to your liking.
  • Skills can be tagged as <Mainhand> or <Offhand> as well, which will cause them to only use the images, animations, and parameters of the item in the hand chosen.
  • If an actor is dual wielding two different weapontypes, and uses a skill that requires a specific weapontype for which he is only wielding one of, the skill will automatically lock to the correct weapon, only showing the required weapon for all hits.
  • Weapons can be tagged in a way to prevent them from being wielded along side other specified wtypes, including barehands.

Paid Extensions:

There are currently two paid extensions to this plugin available:

Switchable Two-handed Weapons (link):

  • Allows the dev to tag specific weapons to be able to be switched between one and two handed mode by the player during run time, by pressing a specified hotkey on the equip menu on a 'switchable weapon'.
  • Adds an escape character in the help description box that will display configurable different text depending on if the weapon is currently in one or two-handed mode. Use this to change an icon, or show info about what mode the weapon is in.
  • Can use a different animation based on whether the weapon is in one or two-handed mode.
  • Can sub in a different Weapon Attack Formula depending on whether or not the weapon is in one or two-handed mode.

Monkeygrip (link):

  • Allows two handed weapons to be held in one hand, on actors specified via notetags on equipment, states, actors or classes.
  • Optionally allows two handed weapons to also be wielded in the offhand slot.

Free Extensions:

Menu Extension:

Modifies several default menus, as well as several menu scenes added and upgraded by the Yanfly plugin suite, to show updated information. 

The menu extension add-on included with this plugin can also display features from my shield block plugin as well. For actors who are using a shield in their offhand, their block chance will be shown in menus in the place where their offhand attack value would've been shown if they'd been wielding a weapon.

This plugin requires the use of Yanfly's Battle Engine Core plugin.

For more advanced information see the documentation.

Terms of Use:

  • You may use this plugin in free or commercial games
  • You may use this plugin in as many projects a you like.
  • You may not share this plugin, or the demo project with anyone else.
  • You may modify this original script in any way you see fit, but you may not claim full ownership of the resulting edited file.
  • You may share edits you made to this script publicly, but only as standalone extensions to this plugin, meaning that your modifications cannot be used without also owning this plugin.

Extensions

Updated 1 day ago
StatusReleased
CategoryTool
Rating
(4)
AuthorRamza
Tagsjavascript-plugin, RPG Maker

Purchase

Get this add-on and 1 more for $19.99 USD
View bundle
Buy Now$14.99 USD or more

In order to download this add-on you must purchase it at or above the minimum price of $14.99 USD. You will get access to the following files:

Dual Wield Plugin 66 kB
Olivia WeaponSwap Compatibility Fix 6 kB
Menu Extension Plugin 134 kB
Demo Project 33 MB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

Hey Ramza.

I've been having troubles with the status page and trying to display crit values with YEP_ExtraParamFormula. Tried on a fresh project and minimal plugins.


When first equipping gear with 5% Crit Rate and checking the status page it appears to calculate normally:


But if you navigate away from the Attributes page and back, it will no longer show the bonuses:


Hey there.

That is a weird thing going on there. Does it also happen to the hit % stat if you do the same thing to it?

I'll try to confirm if this is just a visual problem or if the stats are actually reverting too. I'm thinking its just a weird window refresh problem, but not 100% sure just now.

~Ramza

Heya.

Sorry for the late reply. Yes it appears it does happen to hit% as well. The other exparams seem to be fine, including the ones from your block suite, from my brief testing.

(1 edit)

Hey there.

I looked into this, and after finding some weirdness with plugin order, and my shield block plugin, which I started to fix only to realize it was a plugin load order issue (whoops), I was unable to duplicate this exact problem.

If I leave the crit formula in YEP_ExtraParamFormulas as the default, the MHCrit and OHCrit values are calculated normally. If I change it to a flat value (0.1) then both of them show a 10% crit chance regardless of what's on either weapon, which I think is what should happen in that situation.

I'd need to know what you're using as your crit formula in that plugin to confirm that at least that is working.

I was unable to duplicate the menu display issue at all, though. The numbers changed to be what they should have been every time, and switching away from params, and back again did not cause them to revert to something else, even after changing equipment. I'd recommend disabling the exparam menu fix plugin, as what it does is covered in the DW_MenuExtension, and it's possible the two are interfering with each other somehow. That fix was only to be used if you wanted to show exparams like Mh Hit/crit on the parameters screen without using the menu extension plugin, which changes a lot of other stuff too.

~Ramza

Hey Ramza.

I am using the default crit formula:

(base + plus) * rate + flat


The issue still happens with exparamfix disabled. Additionally, even if I disable ExtraParamFormula, If I equip a weapon with crit chance in mainhand and navigate to the status page it appears to be fine at first:


But if I equip another crit weapon in the offhand and navigate to the status page it causes the split params to default again:


That is all with this load order:


This next part is an entirely separate issue, but it is a bit more of a concern on my part for my project in regards to exparamfix DW edition. Parry, Expertise, and the split crit/hit appear to crash the game when navigating to the attribute page even with the requisite plugins:


Removing the extra params appears to fix the crashing issue. The block/pierce params seem to be fine:


Sorry to dump all of this on you. I really appreciate you.

(1 edit)

Heya.

I'll look into the second thing in a bit, I suspect maybe the exparamfix plugin doesn't support those exparam names, or rather the DW version of it doesn't.

As for the crit % thing, I think I'm getting somewhere on this now. I was about to make a big post with screenshots of my test project, with my plugins in all the same order and whatnot, and show you that I still couldn't reproduce the problem, but midway through typing that out, I realized one thing that might be making my test case different from yours, and that's that my test actor is wielding two different weapons. When I modified my offhand item to be wieldable in the main hand, and gave him two of those instead, I immediately reproduced your problem. 

So the issue seems to be related to using two of the same weapon only. I'm not sure where in the process that would be causing an issue, because I don't think I ever remove weapon stats based on the item Id, but now that I know this much, I can continue in troubleshooting it further.

I will note that if you use item core, each weapon is unique, and this problem doesn't happen with two of the same weapon in that case, so it would appear to be some check I'm making that compares the main and offhand weapons to see if they are the same exact item, it seems.

~Ramza

edit:

Looking into it a bit more, this seems to be an issue caused by not having independent items in your project. Since you're not using item core, and weapons are not unique, the function I used to calculate MH and OH crit and hit ends up removing traits from all weapons of that ID when it does it's check. If your actor is wielding two of the same weapons, that means his crit % on each weapon is take out for each hand, resulting in it only showing his base crit %. This only happens if he's wielding the same weapon in each hand, though.

Additionally, it would be more than just a visual issue, as in combat, I use the same sort of function to temporarily remove traits from the hand not currently being swung, meaning if you have two of the same weapon equipped, it will take the crit % off both of them again, and your actual crit chance will be lower than expected.

I should be able to make a fix for this, but it'll be a bit more involved, since the trait removal thing is important to how the battle calculations work. In the meantime, if possible, using yanfly's Item Core plugin, and using independent weapons will solve this problem entirely (and allow you to use switchable 2h weapons if you want :)

Greetings.

I have uploaded new versions of the menu extension and the dual wield plugin that corrects this issue. 

In the case where the actor is using two exactly identical weapons, and the dev is not using independent weapons from ItemCore, there is now a special case where a temporary object is created in $dataWeapons, which is used as a placeholder for one of the weapons when these checks are being made. After the calculations are done, the fake weapon is replaced with the original, and then it is removed from the database. This corrects the display issue on the menu scene, as well as the same issue in battle during split attacks, which you didn't report, but was caused by the same root cause as the display problem.

Check them out and let me know that everything is working for you.

Sorry, I must be doing something terribly wrong. The attributes still reset with or without item core and independent items. Also without the paramfix I can't get parry and expertise to show up:

Greetings. I cannot duplicate this problem after the update, with or without YEP_ItemCore. Although while troubleshooting it again, I found a display problem with the menu extension + extraparamformula that would've made the offhand crit and hit displays wrong.

I also have no issue with using only the menu extension to display pry and xpt.

Here's a poorly done image with mspaint to show various use-cases

The plugins are the exact same (except itemcore) as yours, in the same order, with the exception of BuffsStatesCore. In your load order, shield block should be immediately after BattleEngineCore, to prevent other plugins from interfering with the stuff it adds to the battle result, but I don't think that's causing this problem for you. Note that I don't think I ever really specified where in the load order to put ParryChance, but it should probably be above BuffsStatesCore as in my order above.

ExtraParamFormula is only using the default formulas for everything in it. 

StatusCore has pry and xpt alone in the fourth column, and, as you can see, I don't have the exparamfix plugin at all. 

The various snippets of the equip and parameters windows show that all four permutations of having two identical weapons equipped in various ways all correctly show the crit % for each hand as they are swapped around. The flail has +70% crit rate, and the actor has 4% base.

With ItemCore and independent weapons enabled, I was unable to duplicate this in the first place using the previous versions of the menu extension plugin. I checked again just now with itemcore turned on and got the same result as above.

I imagine, since your YEP plugin versions are about the same as mine are, that this project is quite old, it's possible there might be a problem with your core plugin files being out of date, messing with compatibility somehow.

I would suggest trying to reproduce this problem in a blank new project, with those plugins alone, and see if the problem still happens there. The last time someone reported weird problems like this with dual wield, it turned out their core files were woefully out of date, and updating them fixed the problem.

It's also possible that changes were made to some of your core plugin files, or some of the yanfly plugins you're using that are breaking compatibility with mine. Like I said, I'd start by making a fresh project, making Harold a dual wielder, and testing from there.

Hey Ramza! Dipped my toe into this plugin and it works well so far. But there are two little things I want to do with it.

I have a character who can eqip 3 different weapon types, these are swords, claws and chakrams. The sword is a one handed weapon and can be equipped with a shield. everything fine.

The other two should be weapons for dual wield like 2 metalclaws etc.

Now to the problem. If I equip just one claw, I´m able to equip a shield, but I just want to give the option to just equip another claws. Is this possible? Maybe I´m overlooking something^^

You know, I don't think you can actually do that.

I'd never considered the possibility that someone would want to prevent equipping a shield with certain offhand weapons, and even the tags that prevent a weapon from being equipped with specific other wtypes doesn't include locking out shields for that wtype. 

I thought just now that maybe you could workaround this by disallowing the shield armor via the traits box on the claw weapons, but it turns out you can only allow equipment from that box, not disallow it.

I'll have to add this function in the next update.

~Ramza

Awesome that you wanna add this function, thank you!

I took a look at the <Forbidden Wtypes: x y z> function and it turns out when you have a claw in you your offhand equipped, you can only select claws for the mainhand. This works fine as the description of the function says, but wouldn´t it be nicer if you could select also all the other weapons the character could equip?

Lets say you have a claw in your offhand, it still let´s you equip all the other possoble weapons in the mainhand, but if it´s not a claw ether, it should clear out the offhand. With this version the player could always see all the weapons he can use on the character.

Maybe this is an interesting mechanic you wanna add? But it is not really an important one xD

Greetings.

I have uploaded a new version of the dual wield plugin which fixed a bug, and also added the two features we talked about here.

<Forbidden wtypes: x, y, z> can now be placed on shields, allowing you to specify weapons that cannot be used together with specific shields.

I also added a plugin parameter to show forbidden weapons in the mainhand slot, if they're being forbidden by the item in the offhand. Equipping a forbidden weapon into the main hand when the offhand forbids it will unequip the offhand item, which is functionally the same thing it does when you equip a two-handed weapon in the offhand.

Hello Ramza,

Unfortunately the <Forbidden wtypes: x, y, z> do not work anymore for weapons. I tested it on the previous version and it worked, on the new update don´t.

The new features work fine, thank you for that!^^

Overall, this is working great for me. However, it doesn't seem to work with characters that have +1 attack.  They still only have two attacks when using two weapons.

Hello there.

Turns out, that is a quirk with how I added the extra attack. It might actually even be a bug, now that I think about it. The extra dual wielding attack is just given to the actor as if he had Attacks+1 on him, but is not calculated in the same way, so giving him another attacks+1 trait does not give him a third hit. 

I think this is just a logic problem on my part. I accomplished this by changing the function where it returns the number of attacks+ the actor has, to return either 1 or their attacks+ number, instead of 0 or their attacks+ number. Meaning if the two numbers are both one, it will still only do one extra attack.


Line 891 in the latest version of the dual wield plugin is where this happens:

return Math.max(this.traitsSumAll(Game_BattlerBase.TRAIT_ATTACK_TIMES), 1)

if you change that line to read the following, it will fix the problem:

return Math.max(this.traitsSumAll(Game_BattlerBase.TRAIT_ATTACK_TIMES)+ 1, 1);

-Ramza

Very cool, thanks!

Hello, I am considering making a purchase of this for a project me and my sister Alice are working on, and in the project we plan to have characters with multiple sets of limbs. How well does this plugin handle actors with like, 4, 6, 8…etc weapon/shield slots?

Hey there.

While I haven't personally tried it for such a purpose I can say that it is very unlikely to work for this purpose. The only way it functions is if the actor is set as dual wielding, which only gives you two weapon slots by default, meaning you'd need to have used a plugin like EquipCore to get extra weapon slots on top of those two, or you'd need to have had another plugin modify the dual wield equip type to give extra weapon slots.

In either case, this plugin expects only a maximum of two weapons, so it would only ever strike twice, and each hit would ignore the stats of only one of the multiple weapons being wielded, the others would be treated as armor, most likely. 

Even if you had someone modify it so that it attacked once for each weapon, instead of hardcoding to twice if dual wielding, there'd still be many other functions and effects that would need to be tweaked to make it work. 

I'm not saying it isn't possible to modify it to make it work like that, but it's not something it will do out of the box.

~Ramza

Okay, thank you for the reply! I think finding a workaround would be something we’ll try.

Hi Ramza, I purchased your plugin today and am enjoying working with it, however, I am running into an issue where my characters attack and the damage dealt is equal to just the weapon's attack power minus the enemy's defense without any regard for my attack formula. For example, I have a longsword item that adds a +5 bonus to attack and when using it for a dual wield attack it only deals the 5 damage to enemy rather than the amount that should be dealt as determined by my attack formula.

I am using Yanfly's BaseParamControl plugin and my formula for attacking is - (base + plus + user.mat) * paramRate * buffRate + flat - as I am using the magic attack stat (represented by user.mat) as a flat addition to my character's attack stat. Attacks are working normally when the actor performing the attack doesn't have dual attack slots enabled but do not work correctly when the character is dual wielding or is equipped with an item with the <twohanded> note tag included with your plugin. The dualwield, twohanded and offhand damage modifier parameters in the plugin are also having no effect on the damage dealt. I think there is some sort of issue preventing these modifiers from working correctly with my attack formula.

In my plugin list I have your plugin beneath the YEP_baseparamcontrol and YEP_BattleEnginecore. I am still very new to RPGMaker MV so if there's any more information you need, or if I'm being too confusing with my explanation just let me know.

Thanks for any help you can offer.

Greetings.

I haven't tested this plugin with baseparamcontrol, but I don't think that's the issue here, or not exactly, anyway.

What is the actual damage formula of the skill being used? This plugin automatically replaces a.atk (or user.atk) with a special calculation depending on which hand is being used. I suspect that calculation isn't taking the baseparamcontrol into consideration, because like I said, I haven't exactly tested with it. If your damage calculation is something like (a.atk - b.def) -a.mat it could end up returning a weird value that ends up being zero somehow, and results in only your mat being used.

Hi, thank you for the fast reply!

The exact formula of the skill being used as a normal attack (in the skill screen) is just ( a.atk - b.def).

I don't know if this is helpful but the formula in the parameters of baseparamcontrol is read as (base + plus + user.mat) * paramRate * buffRate + flat). On my class screen in the database menu I have the standard atk of each class set to 1 for every level with a -1 modifier notetag from the Yanfly plugin so that in theory the attack stat is determined entirely by the Mat + weapon modifier + any skills/buffs.

Are you thinking that your plugin is only factoring in the actual atk stat (in this case 0 + the weapon atk bonus) and completely ignoring the formula in the baseparamcontrol plugin?

Thanks again

That sounds like a pretty good idea of what the problem is, yeah.


Are you also using the menu extension plugin? The equip scene will show the calculated atk values for each hand if you are, which would help show off the problem without actually having to hit something to test.

I'll look into the compatibility with the baseparam plugin, I expect it's a simple fix, I just need to add a check to see if the plugin is installed and then look at that atk value instead of the default actor one.

Hi again Ramza, I installed the menu plugin as you suggested and it confirmed that the attack formula is not being properly factored into the totals.  

I also tried recreating my setup in your demo file and it seems to run into the same problem. Only the base attack stat and weapon strength are being factored in and not the value from the baseparam formula and the offhand duelwielding damage modifiers are not having any effect. The only plugin I added to the demo was baseparamcontrol underneath the coreengine plugin and I was using the same formula of adding the Mat stat into the atk.

As an aside, your menu plugin looks great and has some functionality I was actually looking for earlier in other plugins so thanks for suggesting I try it!

Quick amendment. As a test I raised the base attack of the character above 1. The damage modifier parameters are working, but only on the base attack and not on the bonus from the weapon itself (ie with an offhand penalty of %50 my base attack of 4 becomes 2 while the +5 from the sword stays as a +5).

(2 edits)

Greetings.

As I expected, my formula for calculating main and offhand attack values were ignoring any formulas you'd set in BaseParamControl, instead using the default formula (base + plus)  * paramRate * buffRate + flat. I corrected this issue by using the real base value in my plugin, and then removing the attack values of the opposite weapon, rather than calculate an entirely new value based on the default formula.

I am not 100% sure that this will completely work in your specific case, though, as the mat of equipped weapons doesn't play into the mainhand/offhand calculation, so it may end up giving the mat bonus from both weapons on both the main and offhand hit. I did use your example formula, though I didn't reduce atk to 0, and it did appear to split correctly though, so let me know how that goes.

You can download the updated version of the plugin from the main store page, or from this devlog.

-Ramza

Greetings Ramza, recently, I created a new project which uses your Dual-Wield and Block+Parry Chance plugins. However, it crashes if I have YEP Extra Parameter Formula plugin on, and after I turn that off, for some reason, Parry and Expertise are not showing up (also, the earlier issue I reported a month ago, somehow disappeared in the new project).

I am still trying to play around with the plugins to try and figure out if something else is conflicting, but not sure if you have any idea what might be the cause of the params not showing up (the area where they should be is simply left blank)?

Hey there.

The menu extension is needed for Parry and expertise to be shown on the menu, if it's not there (or it's crashed before the project loads, causing it to not load at all) the YEP menu will not know how to interpret the requested parameters and draw a blank line instead.

Check the console for any errors, sometimes a crash on load just causes the plugin to abort loading instead of straight crashing the project.

Also, please share the crash message (and console stuff) from when it crashes with YEP_ExtraParamFormula as well. I've a couple of crashes from that thing over a long time, and I suspect I know what it is, but I need the errors to troubleshoot.

Hi Ramza, thanks for the response. Here is the crash report from the console for the Extra Param.

I checked the console without the extra paramters, and there is no errors. Block Chance shows up perfectly fine. It's only Parry Chance that is the issue.




Not sure if plugin order is to be blamed.


(3 edits)

Hello again.

I've gotten a chance to start to look into this for you and I need a couple of questions answered before I can continue to troubleshoot. 

I don't see the dual wield plugin in your list. Are you using that?  You must be since the crash error is coming from the dual wield extension, which throws an error if you try to use it without the dual wield plugin.

I can't duplicate the issue with mhpry and ohpry and xpt not showing up on that screen myself, but since I can't see where you're loading the menu extension in the order, I suspect it's being overwritten by the YEP_StatusMenuCore plugin, since I can't see that one either. Load StatusMenuCore before the menu extension and that should sort that problem out.

Looks like the crash that is happening is somehow related to splitting the hit and crit params for dual wielding. I am familiar with this particular error from porting the block plugin to RMMZ, as the extraparamformulas plugin features are included in one of the default VS plugins for MZ. I fixed a similar crash in MV related to block rate already, so I suspect the issue is caused by something similar. I'll get back to you on this shortly.

edit:

Okay, I can't duplicate the crash at all, but looking at the line the crash is coming from, I can see what the problem is, though not how it is caused.

In a fix I posted in v1.39 or v1.40, I fixed an issue where people using the extraparamformulas plugin would see incorrect values for hit and crit when showing the main and offhands. This fix expressly assumed that the scene would always have an actor in it, because if it didn't, how would it be displaying any information at all? Well apparently in some (unknown to me) case, this very thing was happening, so it was causing that crash error when it tried to draw the mhhit value for you. 

I have posted a fix that should resolve this. 

-Ramza

Hi Ramza, thanks for the response. I tried the latest plugin, and there is still an error. The crash happens when I move to a dual wield character's Attributes only.

I also tried turning off the Extra Param plugin. When that happens, Hit% displays fine, but Parry Chance and Expertise does not. With this, I tried turning off SRD Super Tools and ICF-Soft Menu, but no help. Not sure if it is the plugin order, but I moved the Menu Extension to above ICF-Soft Menu's plugin and it still does not work.

Below is a list of plugins I have in excel for reference.


Hello again.

I can't duplicate the crash on my own test project with the following plugins in the following order:


That means that the problem is either load order, or an issue with a third plugin interfering with one or both of the other two. I know this is a huge pain in the butt, but could it be possible for you to try to duplicate this problem in a fresh project? I've tried myself in the test project I use to roll out updates and haven't had any luck myself.

Hi Ramza, sorry, another question. If I am using a custom menu plugin (e.g. ICF-Soft's YEPShow Params), what is the short name to call the main or off hand's attack, respectively, to show as a param? The reason I am asking is because ICF-Soft's plugin conflicts with yours, and I tried mhcalc and ohcalc, but it's not working. Looking forward to your response. Thanks in advance.

MHCalc() and OHCalc() should work for this. Make sure to include the brackets, as it is a function that returns the value, not the value itself.


I'm not sure how that plugin gets its values, but those functions are on all Game_Actor objects, so that should be what you need.

(1 edit)

Hi Ramza, thanks for the reply. The plugin calls the shortname of the param as it appears in the damage formula (e.g. agi, luk, etc). It, unfortunately, looks like it will remain incompatible (although I can still show main and offhand attack in the "General" section of YEP's Status Menu by keeping the default; in fact the other plugin can't seem to override this section). I have written to the plugin author on this, as their plugin seems largely compatible with a lot of plugins, just not functions like yours.

Hey Ramza, I purchased your plugin last year and works great. But I have one issue. My duel wield attacks, even after the enemy is gone. Is there a way to stop attacking once the enemy is dead? sorry for the nube question

Hi there.

Someone asked this question before, and my experimenting with a workaround to make it work for them actually led to me incorrectly thinking I had a weird bug in a newer version.

There is no way to prevent the second attack in the case that an enemy dies after the first one, not within this plugin, anyway. The way the attack times + trait is programmed is that it just repeats the target action section multiple times, as if it were all part of the same sequence. It doesn't do a check in between. My plugin simply hooks into this, and swaps weapon stats around (and images) when the second attack is made. 

What you can do is make your attack sequence check to see if the target is dead first, and not do anything in the target section at all. This will cause the second attack to not happen if the first killed the target, but it has another issue in that action sequences that already contain and if check will not work, as they can't be nested. You could get around this with a different plugin (like this one by SergeofBIBEK).

If you're not using Yanfly's action sequences plugins at all, you'll need those in order to make this change first.

If you're already using an action sequence, simply wrap the target action in a check to see if the target is dead, and if it is, do nothing:

before:

<target action>
motion attack: user
wait: 12
attack animation: target
wait: 3
action effect: target
wait for animation
</target action>

after:

<target action>
if (target.hp > 0)
    motion attack: user
    wait: 12
    attack animation: target
    wait: 3
    action effect: target
    wait for animation
end
</target action>

Like I said above, if your sequence already has an if check in it, nesting them doesn't work, but you can fix that with the plugin I linked.

-Ramza

(+1)

Thank you so much! I use Yanfly of course.  I've used the link you sent and it seems to do the trick! Love your shield plugin btw! 

Hi Ramza, wanted to check, is this or your other plugins compatible with YEP's Stat Allocation? I was reading through the tutorial and it does not make any mention of this plugin anywhere. Appreciate your advise. Thanks in advance! 

Hi there.

I haven't tested that plugin specifically, but here's what I can gleam by looking at it:

  • It should be mechanically compatible. Stat points spent in ATK will apply correctly to both main and offhand attack values.
    • It might be possible that ATK added from this might not be multiplied by the offhand or two-handed multipliers, I think it should work, but, like I said, I haven't tested it. The multiplier is added after other effects that modify the base param, so it should apply after this plugin.
  • The scene showing the stat purchasing should only show base params, and by looking at the video for this plugin, it doesn't appear to be reusing one of the scenes I directly modified, so it should continue to do this, and will not show the split params in this window. 
  • As above, because this window doesn't show the split params at all, there should be no issue with a blank slot, or Block Chance showing up on this scene either, if you're using that plugin as well.

In conclusion, it should work, but it hasn't been tested. There's no reason why it shouldn't work, and any incompatibilities would be minor, and pretty easy for me to fix if someone were to report any.

-Ramza

Hi Ramza, many thanks! Will try it out.

Hi Ramza, I did some testing, including with the Block Chance, Parry, and Switchable plugins and everything worked fine. However, as soon as I start using the Menu Extension (both with and without the exparamfix), I got the below message. I think I can live without the Menu Extension, but just highlighting the bug I received.

I just tested myself and I am unable to duplicate this issue. 

It looks like, from the error message, something on screen is attempting to draw block chance. Knowing that, I imported it into my test project, and set the default parameters to include both 'blk' and 'cri' to see if xparams were what was causing the issue for you. Block Chance doesn't show up on the scene at all, which it shouldn't as the YEP plugin has no idea what 'blk' stands for, and critical hit chance shows up fine with no crash and no issue.

Load order may be the problem. This worked for me with the Yanfly plugins in the proper load order (from the website). Block Chance loads right after Battle Engine Core, Dual Wield loads at the end of the other battle plugins. The Menu extension should be in the load order near the bottom, after any other menu plugins you have. In my case it was also below stat allocation in the load order.

That expram fix plugin you're using is meant only for people who aren't using the menu extension. It adds some short codes to show on the YEP Status Menu Core scene, but the menu extension already does this, so using both might also be causing a problem.

If you're still having problems, a few more screenshots, what you are doing exactly to cause the crash, and the text from the console when it crashes (press f12 when the above crash screen happens and click 'console') will make tracking it down much easier.

Hi Ramza, thanks for the response. I am following Yanfly's order, but the rest are a bit harder to figure out. I followed your instructions, but there is still an error (though somewhat different).


I managed to remove the Galv_WeaponProf error by moving it just below YEP Battle Engine the order but I could not figure out the rest. Below are the location where I slotted in your plugins.




(+1)

Greetings.

I still can't reproduce this on my test project, and it looks like the version of the stat allocation plugin I'm using is not the same as the one you have, as the functions throwing the error are on different lines on my version.

With that being said, I suspect the problem is the below function:

Yanfly.StatAlc.Game_BattlerBase_xparam = Game_BattlerBase.prototype.xparam;
Game_BattlerBase.prototype.xparam = function(xparamId) {
  var value = Yanfly.StatAlc.Game_BattlerBase_xparam.call(this, xparamId);
  value += this.xparamAllocationBonus(xparamId);
  return value;
};

I'm not sure at what point it is called, but it would appear that it isn't playing nice with the fact that I've defined block chance as xparamId 10. So it's looping through the normal xparams and then getting to block chance and breaking. I think if we edit the function to abort if it detects that it's on Id 10, it should be fine, but since I can't duplicate the problem myself, I can't verify if the fix actually works either.

Copy the below text into a blank .js file, and import it into your plugin manager at the bottom of the list.

Yanfly.StatAlc.Game_BattlerBase_xparam = Game_BattlerBase.prototype.xparam;
Game_BattlerBase.prototype.xparam = function(xparamId) {
  var value = Yanfly.StatAlc.Game_BattlerBase_xparam.call(this, xparamId);
  if (xparamId != 10) value += this.xparamAllocationBonus(xparamId);
  return value;
};

This will overwrite the function that I suspect is causing the issue, and should(hopefully?) fix it for you. Let me know if it doesn't work, and any new errors you get.

-Ramza

(+1)

Hey Ramza would you consider putting on a summer/end of corona restrictions bundle together with some other creators? 

Idk if I'm alone on this but I haven't gotten Irina's or Olivia's  bundles bc they're both ~45 USD/60 CAD on their own. If the 3 of you had a deal going until Jun 30th/July 1st to co-op a 60 USD bundle.. I'd be willing to bet there'd be an increase in sales for each of you since more people are coming here due to the political bundles pulling in larger-than-usual sales, and catching media attention. 

Granted, I'm being opportunistic and asking bc I want to support the 3 of you, but I also don't want to drop a third of a month's living expenses  when 70% of my offline work was shut down á la covid/closed borders. 

P.S. - I looked for a way to ask privately, but I can't DM on twitter & I haven't found an email haha. Apologies if this is a misplaced message.

(+1)

Hello there.

I admit that I hadn't really considered such a bundle, or even a sale for the end of the pandemic. Technically, the sale I ran from April to the beginning of May was the biggest discount I had ever done, and the description definitely included some "Stay inside, make games instead" sort of language, and I don't want to have multiple sales really close together, particularly for similar reasons, because that can lead to consumer confusion, and sometimes people refunding bundles or individual plugins to buy the newest bundle as it's a slightly better deal, maybe.

Speaking of confusion, one main reason why I can't see myself doing a collaborative bundle with Irina or Olivia is that many of their plugins aren't strictly compatible with my own, and the majority of the others haven't been tested. If we somehow came together and made a giant collaborative bundle, it'd come with the caveat that several of the plugins included in it may  (nay, most likely will) not be compatible with each other, and I feel like that is going to lead to large influx of people who didn't read, or didn't know, making support posts in all of our channels asking for support that we will not be able to give. And since it's particularly difficult to held hold of Irina and Olivia, and I don't think either of them do much in the way of plugin support, a lot of those posts are going to fall to me, and I simply won't be able to help. 

In the end, that's probably going to lead to some refunds, realistically, and that isn't helping anyone involved. Customers get a bad taste in their mouth, the three of us get harassed, and everyone pays for it. Not to mention the possible fall-out, if word gets around that someone got a refund on the whole bundle because it wasn't compatible and they felt ripped off, maybe more people who bought the bundle get refunds too? It's a slam dunk, and then a bunch of people have some plugins they didn't even pay money for.

The other reason for not doing something like this is a bit more simple. I don't have any way to communicate with Irina or Olivia. Both of them make it very difficult to talk to them, especially about plugins. DMs on discord are blocked, and I don't share any servers in common with them that allow me to talk to either of them. If there is some sort of secret discord server that the disciples of Yanfly communicate on, I am not privy to it, unfortunately. Both of them have comments on their individual plugins turned off, and no community forum here. And both of them seem to ignore DMs and posts on the RPGMakerWeb website in their plugin support topics. With no special way for me, as a creator, to get in contact with either of them, there's no way for me to approach them and set up a deal like this in the first place. I might be open to such a deal if one of them approached me about it, but we'd have to iron out how the obvious incompatibilities of our plugins will be handled.

That being said, I appreciate the thought you put into your request, and I don't mind that it's asked publicly. For reference though, I can be reached on Discord via DM (Ramza#3215), I have a support topic linked on my profile here on the RPGMakerWeb forums as well, although that topic is kind of dead, necroposting it is alright., and I also respond to DMs on that site as well, which you don't need a certain number of posts or like to send.

(+1)

Firstly, thank you for even considering the idea. :D And fair points all-around. I kind of ADD'd into the "What if?" and some of your points (possibility of contact, refunds, compatibility, customer confusion) I hadn't considered even tho they seem obvious on 2nd read.

Secondly, my apologies. I missed your sale and just jumped into "Maybe it hasn't happened before?" Thank you for pointing out you've already -- and recently -- had a larger sale. More due diligence on my part for next time an idea bubbles up.

Finally, idk how often you're told this as a creator or just human-to-human, you're an awesome person. The values you appear to rep, the way you handled a weird question, reply time etc. I didn't expect to feel good after asking a question, yet I feel amazing. That's something I'm going to work on passing on when I create the useful/fun things. :P Ehm, thank you for being you haha

(+1)

Hey, thanks!

I don't personally feel like I'm doing anything special here, just acting as I think everyone should, but it's good to hear that people appreciate it! Sorry you missed the sale, but itch.io usually does a summer sale too, and I'm sure I'll have something on there to your liking ;)

Keep doing what you do! I'm looking forward to testing out the waves of projects coming out that use my plugins. It helps me cope with the fact that I never seem to release anything of my own!

-Ramza

Ramza, while under most circumstances I wouldn't want to change this - the plugin has worked great for its clearly intended cases! - is it possible to disable or evade the functionality where, while attacking with one weapon, the stats from the other weapon are ignored (I think the code treats it like you've unequipped the other weapon)? 

I'm considering a specific use case like West of Loathing, where the player has equipped both a melee weapon and a gun, gets what what is effectively a FIGHT command for each weapon (using only the damage formula for each), may have skills that key off of the damage formulas specific to either weapon, but still always gets to retain the stat boosts from each weapon.  It seems I could do all of that with Dual Wield and Weapon Formulas, except that at the very moment of attack one would un-equip one of the weapons.

Hmm.

I think the disable state might be what you want to use here. When it's on a battler the split attack (and the extra hit) don't function at all, so the weapon unequipping shouldn't happen either. Since you're using specific attack skills to attack with the main and offhand weapon, using a.MHCalc() and a.OHCalc() in place of a.atk in the formula for those skills should split damage correctly as well. You might need to do some weird workaround in your action sequence to get the offhand weapon to show up correctly during the action sequence for that skill though.

Hey Ramza, I'm having an issue where with the newest version of dual wield installed, certain weapons will only deal 0 damage. In previous versions I had the issue when the dual wield/two hand modifiers weren't 1, but now even when it's 1 it returns 0. Is there any fix for this?

Hey there.

This is the first I'm hearing of an issue like this, so I suspect the problem has to do with plugin configuration. The way the damage formula works, if it causes an error, or would otherwise return a value that isn't a number, the game engine forces it to deal zero damage instead.

To narrow down what is causing the problem, you'd need to determine what is causing these specific weapons to deal zero damage.

  • Are they all one-handed? Two-handed? A mix of both?
    • The plugin parameter for the two-handed weapon modifier is expecting a float value, If you provide something that isn't a float value, it would cause an error and return zero during the damage calculation.
    • Ensure that the numbers in those boxes are only numbers. eg: 1 1.5 0.75 Do not use a % sign, or quotation marks.
    • If changing this has no effect, you can also delete the plugin from your plugin manager and re-import it, which will set the modifiers back to their default values. This part of the plugin should work fine without being modified by the end-user, so removing and re-adding it should also make it work fine.
  • Are you making use of the new(ish) note tags <TwoHanded Attack Modifier> or <Offhand Attack Modifier> to modify the attack value on weapons directly?
    • If yes, are all weapons exhibiting this problem tagged with one of those tags?
    • Try removing these tags and see if the problem is resolved. If it is, there may be an issue with the way you're using the tags on your items. If the issue persists this is probably not the culprit.
  • Do you use the switchable weapons extension?
    • Are weapons with this problem switchable?
    • Are all weapons with this problem switchable?
    • Are they in one or two-handed mode? Both?

The issue could also be that your damage formula itself is simply being reduced by enemy defense with some weapons so low that it deals zero damage. Try setting an affected weapon to a ridiculously high attack value and see if the problem still persists as well, just to be sure.

-Ramza

Ramza, any idea if this works properly with Octopack's battle system?  Other dual wield scripts do funky things like making you have to select attack twice, I'm assuming because of the timing of the system (actions are taken immediately after choosing them).

Hey there.

The only plugin from that system that I know it works with is the weapon swap plugin, and only if you download the included patch. Even then, it doesn't work very well at all, especially in the menus.

Olivia disabled dual wielding in that plugin (probably in the other octopack plugins as well), either because in a true octopath-based battle system, there would be no dual wielding, or because there was some kind of issue with dual wielding she couldn't fix.

In either case, as I only own a copy of the weapon swapping plugin, it is the only one I have made a patch for. Since it appears from that plugin alone that Olivia didn't want dual wielding in the octopack, it's likely it's been disabled in one or all of the other plugins as well, and probably causes even more issues with them if you were to use my patch.

Ah, okay.  I'm only using the turn system from it if you think that would make any difference (none of the other optional things), but the turn system is probably what is the most likely culprit for screwing things up.

Sadface.

Is there a way to always make the second attack of dual wield miss if the first attack kills the enemy or if it has 0 hp?

(1 edit)

I toyed with this earlier, and it's possible via a conditional branch in your action sequence for the attack skill.


Because the target action part of the sequence is repeated for each attack, if you wrap the whole thing in an if check that checks the targets HP, you can effectively not do the second (or any subsequent) swings if the target has 0 HP.

When I was investigating a bug report a few weeks ago, I'd forgotten I'd set this up on my action sequence in my test project, and thought my update had broken the offhand attack, but it turned out my first hit was strong enough to kill the target.

if (target.hp > 0)
motion attack: user
wait: 12
action animation: target
action effect: target
wait for animation
else
death break
end

Thanks. this is perfect!

This plugin is awesome and exactly what I was looking for dual wielding!

I do have a request though.  I was hoping to use a different battle system: Lecode's Tactical Battle System, which doesn't seem to be compatible as it changes a lot!

I was hoping you could look at the code and see how easy it would be to make a patch so I could use both plugins at the same time as I'd love to use them together.

Thanks so much!

Hello there.

I can see that the plugin you linked is supposed to be compatible with Yanfly's Battle Engine plugin, but I am unsure just how far that compatibility goes. I don't have a leTBS project set up to test from at the present, and it will not be a quick task for me to do so, as I don't personally use that plugin myself.

Since I'm not sure how much of BattleEngineCore actually makes it into use in leTBS, I'm not real sure where the incompatibility actually is. It could be as simple as the Attack Times+ trait not functioning in leTBS, or it could be as complex as action sequences not being implemented at all. Or both. 

To start, could you describe what does or doesn't happen when testing in your own project? Does a second attack occur for dual wielding actors at all, just with the wrong damage/animation/weapon, or does only one attack happen? If only one attack happens, does it show both the battle animations for each weapon on top of each other, or just one animation? Does it simply crash and not work at all?

I expect the menu stuff should probably still be working fine, except unless leTBS has some sort of in battle status menu, in which case it would need to be patched to work with the offhand weapon slot properly.

I can't guarantee I'll be able to patch it to make it compatible, but I can give it a shot.

-Ramza

Thanks for the quick response! 

Yes, everything menu-wise works, but when a dual wielder attacks it simply attacks once with only one animation.

The traits are combined into that one attack just like the normal dual wield trait.

Also, I do understand that any patch takes time and effort and with LeTBS changing the battle system it may be even more difficult, I'd be more than happy to pay some sort of commission.

Hmm. 

I just tried to download the TBS plugin from his github page and it seems to only be a 'Hello World' page, with a 404 given when I try to click a direct link from the RPGMakerWeb forums. Maybe he's in the middle of a website update or something. I'll try again later.

This one may work better for you, and thanks! https://www.dropbox.com/s/v3lken92crff4sf/LeTBS_0772B.zip?dl=0

I'm also using Lecode's TBS w/ Dual Wielding and having the same issue. It looks like AttackTimes+ isn't referenced at all in the LTBS plugin. Even w/o your plugin, simply giving an actor a +1 attackTimes+ trait does nothing in LTBS. I'd very much appreciate if you got this working, thx!

I haven't had an opportunity to look into this the last couple of weeks because of my whacky work schedule, but I am still planning to work on a fix for it.

Hello again.

I apologize for how long it took me to get back to you on this one. Unfortunately, after digging into the LeTBS plugin a bit, I can only conclude that I don't know enough about how this plugin works to get it working together with dual wield. 

I tried to find the part of the plugin where it processes the attack action specifically, as a starting point for how to make this compatible, but the plugin is massive, and has little documentation. Blindly poking around inside did not prove to be very effective. If support for Attack Times + as a trait were to be built into leTBS, I feel like dual wield would probably work almost 100% with just that change, but since I can't personally figure out where the attack sequence is even processed, let alone what to change to make it duplicate certain parts of it, I will be unable to do this myself.

There are also some unforeseen compatibility issues to do with the lack of working action sequences in leTBS. My plugin relies on secretly adding commands to the action sequences to reset some attack data between skill uses, which is why YEP_BattleEngineCore is a hard requirement. While leTBS supports BattleEngineCore, it does not seem to make use of action sequences at all, which means any compatibility patch between my plugin and leTBS will need to find a new way to reset this attack data.

As it is right now, you can use dual wield and the extensions with this plugin, but they do not split damage, or effects, or hit multiple times. You can still use this to make dual wield actors capable of wielding shields in their offhands, make weapons that can only be wielded in the main or off hands, or two-handed, and make shields that can be wielded with two-handed weapons. As is, the only thing I could suggest to try to get the core features of this plugin to work are to contact someone who has a lot more experience working on the leTBS plugin.

Sorry.

Thanks so much for looking into it for me! I really appreciate it! I knew it was going to be a long shot because of how much it changes the game. Just being able to have my characters properly equip their weapons and shields is already amazing. Thanks for the awesome work you do!

In the menu extension:

Is it possible to detect if an actor has money grips for a display change:

1) If they do then no change

2) but if they don't: the eqiupment slot for off-hand text that normally reads "empty" (using YEP_Equipcore empty text) could be changed to a term listed  in the plugin settings like "used", "2-handed" or "locked" when player has a <Twohanded> Weapon equipped in the main hand.

It currently it allows player to click the off hand equip slot and open a window that is always blank because no weapons fit the equip requirements without monkey grip. Can we remove this potential confusion to the player by locking this screen and adding the new text?

That's a decent suggestion, but it doesn't account for shields tagged <Offhand>. These shields can be equipped even when an actor has a two-handed weapon equipped, so there is always the possibility of equipping something in that slot, even when a two-handed weapon is being used.

Of course, one could say that for a project where shields aren't a thing, or where light shields don't exist this is a good suggestion. I'd like to keep this plugin as cookie-cutter as possible, though, so I don't think I can roll this into the main plugin.

However, for your own personal use, I'd look into the below function from YEP_EquipCore. The function is used to draw the 'empty' slots on the equip scene, and you can add in whatever functionality you need from here.

Window_EquipSlot.prototype.drawEmptySlot = function(wx, wy, ww) {
    this.changePaintOpacity(false);
    var ibw = Window_Base._iconWidth + 4;
    this.resetTextColor();
    this.drawIcon(Yanfly.Icon.EmptyEquip, wx + 2, wy + 2);
    var text = Yanfly.Param.EquipEmptyText;
    this.drawText(text, wx + ibw, wy, ww - ibw);
};

Add in an if condition, and check this._actor.icanMonkeyGrip() or alternatively a (this._actor.equips()[0] && !this._actor.equips()[0]._isTwoHanded) and that should handle what you're looking for.

Might come out a little something like this:

Window_EquipSlot.prototype.drawEmptySlot = function(wx, wy, ww) {
    this.changePaintOpacity(false);
    var ibw = Window_Base._iconWidth + 4;
    this.resetTextColor();
    if (!this._actor.canMonkeyGrip()){
        this.drawIcon(Yanfly.Icon.EmptyEquip, wx + 2, wy + 2);
        var text = "Locked";
        this.drawText(text, wx + ibw, wy, ww - ibw);
    } else {
        this.drawIcon(Yanfly.Icon.EmptyEquip, wx + 2, wy + 2);
        var text = Yanfly.Param.EquipEmptyText;
        this.drawText(text, wx + ibw, wy, ww - ibw);
    }
};

Just paste that code into a blank js file and import it into your plugin manager anywhere below YEP_EquipCore and that should do it.

-Ramza

Thank you!

Should an actor be able to equip a shield and a twohanded weapon at the same time? Shouldn't twohanded "block" <offhand>

That code writes Locked for all equip slots but I think I can take it from here. 

Thanks again.

The intent was that an offhand shield is like a buckler, a tiny shield bolted to the forearm that allows basically full use of the hand for holding other things.

Oh yes this does make sense

Hey Ramza,

Do you plan to implement the possibility to change weapon during a battle ?Thanks a lot !

Greg

Greetings.

That request is a bit outside the scope of this plugin. I'd recommend Yanfly's change battle equip plugin, or possibly this free plugin by Jeneeus Guruman on the rpg maker forums for changing equipment mid-battle.

As far as I'm aware, this plugin should be compatible with either of those. If that isn't the case, let me know and I'll see what I can do to fix it.

-Ramza

Hey Ramza, I'm getting a minor visual bug when using the Split Attack parameter in the Menu Extension. The weapons' attack appear to be drawn really close together vertically and the text squashed in horizontally. I am using Yanfly's Core Engine to adjust the Line Height to 50 and using a much larger font size to accommodate a native 1080p display. It's also very possible its on my end, as I am using a rather large plugin suite. The display does go back to normal if i toggle the Split Attack to false.

(1 edit) (+1)

Greetings.

Thanks for the report. This issue is caused because I had hardcoded the value to draw the offhand attack text/dark rectangle to offset from the first one by 30 pixels. The standard padding is 32, if I'm not mistaken, and to make room on the default resolution screen, I shrunk it by 2 pixels, and injected the offhand line using the extra space that afforded.

I can push an update that un-hardcodes this value, allowing you to specify it in cases like yours, where you've changed the default line spacing to make up for a resolution change and/or larger font choice.

Alternatively, you can manually make this change. Between lines 1205-1257 there are several calls which reference a 'y+30'. If you change that 30 to something slightly larger, it will shift the line down a bit. Fiddle with that number until you get equal spacing between the Off Strength line and the Toughness line below it and you should be good to go.

Edit:

Turns out, I had a few minutes, and since I'd already went to the trouble of finding out which lines to change, I went ahead and fixed it in v1.34. I have just uploaded the updated menu extension plugin, you can download it here.

Thank you so much, your support is world class <3

Hey again, it seems a similar occurrence happens in Yanfly's Party System. The second hand draws in overlapping. I was able to edit the dark rectangle's and parameter's Y locations and get everything working out more or less:

But if I added to the Y value of the line height to get it even with the equipment's side and the rest of the game, I wasn't able to figure out a way to get the gaps right after the first two slots, it seems the other 5 move as one entity, so they forever overlap. I'm also not very proficient in JS, so I'm sure I'm looking right at it. I'm not too concerned, since how I have it currently is quite legible already, just thought I'd drop this by you for future folks having the issue :)

Also, another suggestion: As seen above, I edited the syntax of the Parameter Name and the Slots' Priority Name variables with an adorable little colon thrown in. I find it more "readable" to have the parameters all lined up neatly on the left with the rest, just a preference, because I can certainly see why somebody would want the slot's name first. Maybe you can accommodate a variety of devs by adding a Plugin Parameter similar to one in ItemCore how it handles name formatting with affixes, utilizing escape codes? ie: "%dmg : %mhs"

One last question, any plans to add compatibility with YEP_X_InBattleStatus?

Thank you!!

(+1)

Hey there, sorry for the late reply, I didn't see this message until just now.


Your first issue stems from the fact that I shrunk the default line spacing by a couple of pixels to make the extra line fit on the screen for the default resolution. I'll add a plugin parameter to disable that, for people who have larger resolutions, as it's not needed, and it should make the scene line up correctly in your screenshot. I'll also fix it so that the new parameter I added in the previous update also affects the party scene, as I hadn't released it was having an issue there as well.

Your second suggestion is a good one, more customization is always good for a plugin like this, to help a wider audience get their menus just the way they want them. I'll see what I can do about making that change.

I did not have plans for this to work with the in battle status plugin, as I don't use that one myself, but it shouldn't be too difficult to add that one in. 


I can't give a timeline on these changes, but it shouldn't be too long. I'll keep you posted.

(+1)

No worries! You're the best Ramza!

I have uploaded v1.35 which extends the fix from 1.34 to the party formation scene, and also unhardcodes the forced shrinking of the lines for the dark rectangles. Mess around with the new plugin parameter value a bit, and I'm sure you'll be able to get it to line up.

Hey there Ramza, I just had a quick question. I was just wondering if there was anyway to have an actor have a different off hand damage % than the default set in the plug in parameters.

My idea is to have an actor and an item that is "ambidextrous" so they get no penalty from the weapon in the off hand slot. If this isn't doable no big deal at all. I know there isn't any listed code to do that but thought maybe you knew of a script command to over write that or something.=)

(3 edits) (+1)

The boxes for the dual wield modifiers (two-hand, offhand, dual wield damage %) are javascript evals.

This means you can use a ternary operator to make the value one of two values depending on a conditions.

if you put the following in your offhand modifier parameter box, it will increase the offhand damage to 90% if the actor has a state, or if the actor doesn't have the state, 75%.

(this.isStateAffected(X)) ? 0.9 : 0.75

because of the way the plugin uses this formula (this) is the actor. In the above statement, if the actor is affected by state X, his offhand modifier is 90%, but if he isn't, it's the base 75%.

You can also nest these, if you have multiple states that change the penalty (or grant bonuses)

(this.isStateAffected(X)) ? 0.9 : (this.isStateEffected(Y)) ? 0.99 : 0.75

It doesn't have to be a state either, anything on the actor object can be used, such as his name:

(this.actor().name == 'Harold') ? 1.12 : 0.75

Hope this helps.

Awesome this is perfect. Thank you very much for showing me this, You're the best Ramza, keep up the amazing work.

I just came across a bug with the new menu extension tags. When you change an equipment slots name and then change to a class that has no change to the slot name, the slot will keep the changed name rather than revert to the default plugin parameter names. This can be fixed by giving every class a tag so it isn't all that big of an issue just thought I would let ya know.

(+1)

I have corrected this in the latest revision B. It is available at the same download location.

Apologies for all the problems with this, like I said, I didn't get much of a chance to actually QA test it before I put it up.

No worries at all I'm just stoked it wasn't that big of an issue and you were able to fix it all np. Keep up the great work, you're the best.=)

I tested the update it works great.

Hey there Ramza. I ran in to a little something and I just thought I'd run it by ya. So I named the first two equip slots mainhand and offhand. That works fine but I also have pets that use weapons the mainhand offhand looks kind of odd in their equip area.

I was just wondering if you knew of a way to make an adjustment to that something  like overwriting a different name for certain classes or maybe allowing different, extra equipment type slots to take the place of the first two equip type slots. 

I can live with things the way they are but I just thought I would ask to se if you had any thoughts.

(+1)

Greetings.

I didn't previously have a way to do this, but I just rolled it into the menu extension addon. Someone had asked a question earlier about the names of the slots, and it made me think that he was asking for this feature, so I'd started looking into ways to do it. But then it turned out I misunderstood what he was asking for, so it wasn't needed anymore.

If you also have the monkey grip plugin, you'll need to update it to the newly released version 1.01 to support the slot name changes I made in v1.33 just now. Let me know if there are any issues with it, I didn't get much of a chance to thoroughly QA test it myself, beyond making sure it displays correctly, and doesn't cause a crash (of which, there were several).

-Ramza

(1 edit)

Hey there Ramza, huge thanks for adding the feature, I think that will really allow some nice polish for people using the plugin. The plugin is however crashing any time I select a character from the equip tab. I tried a bunch of things to see if I could get it to work but it crashed every time.

It crashes on actors with or without the new tags. It crashes no matter where the tags are, ie. Actor box, class box or both. I moved the plugin order around as well and no change.

I'll post an image of the crash report for ya. 


Edit: the image doesn't seem to be showing up, I'll post the console. Also when grabbing the console error I noticed that after I moved the plugin down in the order the crash on people without the new tags wasn't happening, I had to get the crash from an actor with the codes.

YEP_CoreEngine.js:1098 ReferenceError: actor is not defined
    at Window_StatCompare.showMainHandName (Ramza_X_DW_MenuExtension.js:1121)
    at Window_StatCompare.drawSplitNames (Ramza_X_DW_MenuExtension.js:1314)
    at Window_StatCompare.drawItem (Ramza_X_DW_MenuExtension.js:1204)
    at Window_StatCompare.refresh (Ramza_X_DW_MenuExtension.js:1103)
    at Window_StatCompare.setActor (YEP_EquipCore.js:818)
    at Scene_Equip.refreshActor (YEP_EquipCore.js:995)
    at Scene_Equip.refreshActor (YEP_X_EquipCustomize.js:180)
    at Scene_Equip.refreshActor (YEP_X_EquipRequirements.js:982)
    at Scene_Equip.create (YEP_EquipCore.js:915)
    at Function.SceneManager.changeScene (rpg_managers.js:2005)

(+1)

Hey there.

Sorry about that. When I was in the process of making the changes in the plugin, I used 'actor' as a stand in for 'this._actor'. Then I went through and changed it to what it was supposed to be... in everything except yanfly's equip scene, I believe. I'm not sure how that slipped by me, but it's been fixed and is available in revision a, which you can download from the plugin page.

As for the load order fixing it, if you have the monkeygrip plugin, it should be loaded after the menu extension, as it adds on to some of the functions that draw menu modifications, and it needs to load after those scenes. Additionally the menu extension should be loaded after the YEP menus that it modifies (equip, shop, status, party system, class change). If you don't load it after these, some of the menus will probably look a bit funky.

You're the best, it all works perfect now. This is a great addition thank you for adding it. Thanks for the info about the plugin order also, I am pretty sure I had it too high up.

Can you add the ability to customize "main" and "off" so someone could put stuff like "left" "right" "Main-hand" "Off-hand" "primary" "Secondary"

Those are already included in the plugin parameters.


...Unless maybe I have those parameters, and then never used them in the actual menu scene... I will investigate when I get home to be sure.

The menu extension plugin contains parameters for you to set what the main and offhand slots are called. The default is just 'Main' and 'Off'. Using longer names like 'Right-hand' make the status scene look a bit squished, but on wider resolutions that would look fine too.

Unless I'm misunderstanding you, and you're actually looking for a way to dynamically name that slot... Like some actors it says 'right' and others it says 'primary'. That's something I can definitely do if you're looking for it.

Found it, thank you. Is there a way to cancel the seconded dual attack if the first one killed the enemy.

There isn't a way to do that within the plugin itself, as it simply repeats the target action section fo the action sequence on the attack skill.

If you're using the YEP_X_ActSequence packs (which I highly recommend as they're free) you could wrap the entire action sequence in an if statement that checks if the target has more than 0 hp before performing the action sequence.

This isn't ideal, as you can't nest if checks in an action sequence without another plugin, so if your action sequence already has an if check in it, it won't work.

The default action sequence looks like this:

perform action
wait: 10
action animation
wait for animation
action effect
death break

So a dirty modification to your default attack skill would be to add the following notetag to the attack skill in your database:

<target action>
if (target._hp > 0)
perform action
wait: 10
action animation
wait for animation
action effect
death break
end
</target action>

I can't think of a way to stop the extra attack if the target dies otherwise. Battle Engine core makes it so that even if you deal 12000% of the enemies hp in one hit, the rest of the action sequence will continue to play out.

Last Question and I think I have everything set up. Using SRD_BattlePopupCustomizer.

I am trying to make Parried and Blocked pop ups. Do you know what I should be putting in Custom Condition?

(1 edit)

I don't use the plugin myself, but briefly looking at SRDs video on it looks like result.isBlocked() and result.isParried() should be what you're looking for. While the text without the brackets might work sometimes, the function is designed to only be true when the action was actually blocked or parried. Just calling the values like you have in there might make the block popup come up on a miss or evade as well.

edit:

I just tested myself and it appears to work with those functions. Just make sure to turn the 'hide popup' plugin parameter off for both the block plugin and the parry chance plugin, or it will show nothing.

Also, I didn't look into compatibility with this too much, but it seems to work when SRDs plugin loads after mine, I'm not sure if it works in a different order.

Hello, huge fan of your scripts! I am encountering an interesting bug, I don't see it called to attention here so I figured I'd throw it out there so you know. Or maybe you do know, in which case feel free to berate me harshly for being ignorant!

Anyroad, whenever I set a dual wielding character to use 2 different classes of weapon, and a skill that is set to use only one of those, it forces the action sequence to use the correct weapon type. AKA sword for sword skills, etc. But after all normal attacks no longer attack with each weapon but instead attack with the weapon used for that skill 2x. I'm currently unsure if it's only graphically or it's actually forcing the same hand to be used twice. I've tried a variety of things to fix it, and still playing around to get more info. Perhaps you might have insight into this error.

Thanks for hearing me out and hope you've had a wonderful holiday and new years!

This is the first I've heard of that problem, but given how much of a pain it was to implement that feature, it wouldn't surprise me at all to learn there's still a bug or two with it.

I'm at work for the next several hours, but when I get home I'll be able to take a closer look. If you could verify if the normal attacks are actually using the stats of the locked weapon, by slapping wildly unrealistic ATK values on them, that'll save me a few minutes in tracking down the issue though. If not, no big deal, I'll have a look when I can.

Ah very sorry you were disturbed at work! But I have tested it, and it does seem to only be a graphical glitch. I used a Sword and Spear, initial attack does both. Then after a sword restricted only skill it will swing with the sword twice but the damage is that of the different weapons  (Tested using your suggestion). This happens regardless of the hand any item is in.

(+2)

Greetings. I have identified the problem, and released version 2.66 of the dual wield plugin with the implemented fix. The updated version is available for download on the project page now.

Sorry for the inconvenience, and thanks for reporting this bug so it could be squashed. Never feel like you're bothering me (even when I say I'm at work), when reporting even the simplest of glitches like this one.

-Ramza

(+1)

So this one may be a stretch, but I'm hoping it'll make sense to you and you'll have insight on how to resolve it.  I have recently incorporated SumRndmDde's plugin to be able to retry a battle after defeat, with the Retry Upgrade plugin to provide an option of making adjustments to the party's equipment before doing so.  

However, upon hitting the scene prompt for the equipment menu from this approach, I'm hitting a crash that seems to be citing an issue from DualWield.  I've attached a screenshot of what I'm getting:

As far as I'm aware, the Retry Upgrade plugin is making a very basic call here--it's just hitting a SceneManager.push(Scene_Equip) when that option is being presented, and rolls back to a snapshot of the party prior to beginning the encounter.  

The crash occurs when selecting a character whose equipment you'd like to change; in this particular screenshot I was selecting a character who doesn't dual wield and just has a main hand + shield equipped.

(+1)

This looks like the same issue Miah1377 reported after updating from an older version.

That function being referenced as the cause of the crash is trying to read a property that is assumed to be present on all weapons as of v2.62. I just released a sort of patch that stops it from causing the crash error, but the cause of the problem is that it appears that you are testing using a save file that was made prior to upgrading the plugin to version 2.62. The way the database for items is loaded is weird, and because this plugin wasn't reading notetags for locked wtypes prior to v2.62, the property that it saves onto weapons isn't present on your items database for the save file. The plugin (prior to 2.65) assumed that the property is always present, so it goes right to reading from it, which causes the crash error you posted when it finds the property as undefined.

As I said, v2.65, which was just uploaded a few hours ago will stop the crash (or it should anyway), but the actual fix is to start a new save-game file from which to test further.

(+2)

Interesting!  Well, this seems to have resolved the issue collectively between fresh starts and otherwise.  Cheers!

Heya Ramza I haven't updated your plugin in a couple months and just did so. Since I have been getting a crash when I change classes then go into the equip window. I also use your optimize on job change script so when I change the class it changes my weapons so I am not sure if this has anything to do with the crash.

Also the crash happens when I have weapons that can be equipped when it optimizes and when I have none that can be equipped. I'll post a pic of the crash and will keep looking into it but I thought I would run it by you and see if you had any thoughts.

I updated the Dual Wield and X DW Menu Extension plugins only.  The crash also only seems to happen to classes that dual wield. If I turn off your optimize on job change and menu extension plugins and it still crashes, but turning off dual wield fixes the issue. I didn't change any parameters after updating. And finally this didn't happen with version 2.57 of dual wield but does with the latest version.

Ok bud, hope that info helps I'll let you know if I come across anything else.


(+1)

Greetings.

Sorry for the problem here, but the error code you posted is just what I needed to track this down. The problem here is that I believe you are using an old save to test your project, before you installed the new version of this plugin. That function causing the error is checking an array that should be present on all weapons as of the 2.62 update - specifically, even weapons that do not prevent the use of other wtypes will still have this value, it's simply blank, so it doesn't cause this error.

The simplest way to prevent this error is to start a new save-game in your project to test. I have just uploaded version 2.65, which will also correct this issue (causing crashes isn't good, even if the reason isn't exactly the plugin's fault).

Hey there Ramza, the update fixed the crash. Huge thanks for your amazing and speedy work. I just wanted to let you know though in case it may help things on your side, I was always starting a new game when it crashed I never tried to load a save.

(+1)

Hmm. That is odd. Perhaps this bug was not related to the save problem at all, and my little patch corrected a different issue - one where if one of the actors was detected as having no weapon in either hand at some point, it would try to pull an undefined value from a weapon that didn't exist, rather than an undefined value on a weapon that was simply missing the required value in the first place.

In either case, I suppose the patch fixed it. Do let me know if you notice any other weird crashes like that one.

Question: The documentation indicates that this will automatically sub-out the a.atk in the formula for the default attack skill when used by a dual-wield actor--but what if you're using Yanfly to replace that skill?  In my case, I give each weapon type it's own version of default attack, so that they can have different contributing ratios for stats.  Should I manually adjust those formulas to account for mhcalc?  Cheers!

I'm not 100% sure, as I don't use that plugin myself, but I believe Weapon Unleash is coded in such a way as that all other plugins think the new skill is the attack skill, so it should properly do atk calculation. 

Keep in mind, though, that dual wielding unleashed weapons does not work correctly. The offhand weapon's unleash skill is ignored, so the mainhand skill is used twice. This is because the Weapon Unleash plugin doesn't include dual wielding support at all.

Just to clarify--is it <Weapon Unleash> that doesn't work, or does <Replace Attack: x> also not register on an off-hand weapon?  If it's the former, no big deal--but if it's the latter, that's a serious bummer as it would stop me from doing things like having daggers key off of attack + agility, etc.

Unfortunately, it's both, as that plugin was never designed with dual wielding in mind. 

The issue stems from the way dual wielding works by default in engine. The weapon unleash plugin only expects one attack, (as in the default implementation, dual wielding is still only one attack), and therefore only uses the weapon unleash (or replace attack) from the first weapon.

My plugin works by making the default attack action strike twice, which causes the weapon unleash or replace attacks from the unleash plugin to happen twice, not take one from each weapon.

This is something that could be fixed in an update, but wasn't on my roadmap until just now, and it involves deep diving into another plugin to make it compatible, so I wouldn't expect it anytime soon.

Bummer!  I'd been pretty jazzed about differentiating weapon attack formulas as one of the perks of weapon unleash (honestly more than actual unleash skills!) since I could diversify the arsenal / make gearing a little more nuanced than just 'Stack as much atk as possible!'--so I presently have some weapons that use different combinations / ratios of attack, agility, defense, etc. for their default attack replacements.  I'd certainly appreciate any endeavor to back-port a support hook for the plugin, but understand if it isn't a priority.  Thanks for your time and attention just the same and kudos again for some really fantastic plugins!

One quick aside as a possible stop-gap, at least--even if I end up having to give up on the different formula for now.  Might there be some way to partially restrict which kinds of offhand equips could be made based on the main hand?  

Whether that's going 'pair daggers together' or fist weapons or whatnot, but also if there's something like a hand crossbow it's weird to go hand crossbow + melee weapon and have the character stand back and stab from the back line after taking a primary ranged shot.

One of the things I was using there replacement attacks for was for action sequencing + animations in general, so that I could ensure that if someone was using a spear they'd thrust, etc.; I'm likely overcomplicating this though!

I don't think locking certain weapontypes from being used together while dual wielding is currently possible, although you might be able to rig something up with Yanfly's equip requirements plugin to prevent certain weapons from being equipped entirely if another weapontype is already equipped.

That is actually a good suggestion though, so I'll see what I can do about adding support for that into the plugin.

On another note, you can use if conditions in action sequences to do different things when different weapons are equipped on the same skill. I personally have my attack sequence check the actor's weapon motion type to see if he's using a ranged weapon to decide if he runs into melee range, or steps forward for a ranged attack. The <Target Action> section of your action sequence on your attack skills will be repeated twice, once for each weapon, so an if condition that checks what motion is being used in that section will update when the weapons are swapped. You can use this to have  a sequence where if the actor was using a crossbow in his main hand, and a sword in his offhand, the actor would shoot from ranged and then run in for his second melee attack, and even the reverse, although personally I think it looks better to swing in melee and then point blank shoot a crossbow into melee as well, but what do I know? :)

Greetings.

I have posted an update to this plugin to allow specific weapons to forbid the use of other weapon types via notetags. This will allow you to force users to dual wield only daggers, or prevent using a ranged weapon together with a melee weapon.

Thanks for the suggestion!

Hello Ramza, I've been playing around with this plugin now for last few days and I've noticed that the longer a Action Sequence is, the more delay before the attack will go off.

I can't be 100% if it isn't some other plugin also clashing, but simply turning yours off, will make even a very long Action Sequence go back to no delay, even if the character does not have dual wield, if your plug is on will cause this delay. 

Have you noticed or seen this at all, is there anything that can help with this, or is this just simply the nature of it, with how much it needs to do?

At which point are you noticing delay? For dual wield actors, and only when using a dual wield skill (one tagged as dual wield) this plugin does copy sections of the target action and replays them, but only if you've got it set up to do that. If you're not using it in that way, it shouldn't cause any delay to the actual action sequence, and even in the above example, it shouldn't cause any noticeable effect.

Between when you select the skill and then it happening, which I am talking about when an Action Sequence, gets to like a point where it's around 100 lines or more, you start seeing like 1,2,3 seconds of delay past that kind of point. Even if the skill isn't dual wield, but you plugin is active it will cause this, when yours is off it has no delay even at that amount of lines, you could probably see for yourself if you copy and past just a normal attack sequence, a bunch in an action sequence and can find out if you have it also.

it isn't exactly something that causes it to become usable, just need to try more optimize them better if they are one that gets to be so long, just thought id see what you think, since base Action Sequence doesn't seem to have this happen to it.

I'll take a look and see what I can find.

Good news Jeremy.90!

I have located the cause of the delay, and fixed it in the latest release (v2.61). It was caused by accidentally calling a setup function once per line of an action sequence, rather than only once per skill. The function call was inside a loop that was going line by line in the skills notebox, so it was shifting the setup function into the Setup Action of all skills once per line in the note box, rather than the intended once per skill. The added delay would be almost impossible to notice on shorter action sequences, but with each line it'd increase a bit more, until you get to the point you noticed at 100+ lines.

It is corrected now, so feel free to re-download the plugin and see for yourself.

-Ramza

Thank you for this, looks good from the quick testing I did for it.

I have a new question to ask of you, do you think it would be possible to add in a way to check if the player has access to being able to use shields or not, since if i'm not mistaken your plugin just allows,  all to use shields with or without that right?

I have made a work around for this, but thought i'd ask you see if you could add it into your own plugin to help clean things up.

Greetings.

I have just checked, and this is not the case. If an actor is incapable of wielding a shield, it will not show up in his list of available items for the offhand slot. This is also true if you have multiple armor types for shields that are all equipslot type 1 (shield). The actor only has access to shields for which he has the traits to equip:


This image is taken straight from the demo project, where the default shield is a 'large shield' and the small shield is a 'small shield'. Both items are shields, but they are different armor types, and Harold has been changed to only be able to use small shields. As you can see, the default shield doesn't appear in his list of offhand items.

Likewise if you remove his ability to equip small shields as well, no shield shows in this list at all, even when both the default shield that Therese wears, and the small shield from the npc shop are both in the inventory.

Hey Ramza, I just recently bought this plugin but whenever an enemy performs an action I get hit with this error:

I don't have a clue how this works, though it seems to work fine in your demo project.  Besides one plugin for move routes I'm only using Yanfly plugins, and I've tried positioning yours in   different places to see if it was a loading issue. I also haven't made any tweaks to the base settings, I just applied dual wielding to a party member and tested it.

Thanks.


Hello there.

It would appear that this is an uncaught bug caused in v2.55, when I added some checks to lock main or offhand weapons on actors who were using skills that required a specific weapon type. It looks like after this update I was also checking for locked weapon types on enemies, who don't use weapons, and therefore throw this error.

I have uploaded a fix, and apologize for the inconvenience. The reason why it worked in my demo project was because the uploaded demo project is using an older version of the plugin. Redownloading the plugin file from the download page will show it updated to v2.58 with this fix included.


Thanks for reporting this issue.

Wow that was fast, thanks a tonne!

Hi Ramza, I am really liking your plugin! Thanks.

I have a question about an issue I have. When using your plugin, it appears that the only choice we have two single attacks, or turn off bare hand for single attack when Mainhand only is equipped.

My issue is that when using a Bow with arrows via Uconnected42's ammunition system, there is no way to combine the values of mainhand and offhand into a single strike. Like what an arrow would do.

I have the bows equipped to Mainhand and the arrows (also a weapon) on the offhand. This setup works perfectly for UCONN_AmmunitionSystem because I have to be able to equip the ammo.

Is it possible to add an option via notetag to combine main an offhand into a single strike on certain weapons?

Thanks for your attention!:)

I'm not familiar with that plugin. However, the 'disable state' option in my plugin 's parameters can be used for exactly the scenario you describe. Try putting it as a passive on the arrow weapons and see how it works out.

I'm honestly not sure how it will work out with the arrows being weapons, though, so you might need a more creative workaround. Technically, you could make them shields and they'd still fit in the offhand, and their base parameters would be added to the single attack of the main hand weapon in that case. They'd need to be etypeId 2 specifically for that to work without modifying my plugin, though. You'd probably need some special equipment requirements to prevent a player from equipping arrows as a shield without a bow, or something as well.

Thanks for the reply, completely unblocked my mind AND it worked perfectly!

What I did was this. Set your plugin disable state to stateID[##], then using Yanfly's AutoPassiveStates, applied a passive "Archer" (also stateID[##]  to the bow weapons. Worked like a charm. Now my Rogue type classes can use both dual hand daggers and single hand bows with arrows in the offhand, and both perform perfectly.

Uconns ammunition plugin needed a little tweaking because it's not technically supposed to allow using a weapon as ammo, it wants to use items, or weapons as the ammo themselves (like throwing stars, and knives). I tried making the arrows armor, and while Uconns plugin says it will allow that, it wasn't calculating the damage multiplier correctly, probably a bug. Who knows'?

In any case, THANK YOU! for the quick reply. It's awesome to have such a helpful community like RM's. Your plugin in particular is key in my project for making things "Feel" authentic to the source material.

Hey there Ramza. I have been having an issue that I have not been able to find a solution to and I was hoping you could maybe take a look. What is happening is whenever I use a skill that has a weapon requirement and is being used by a dual wield class. If one of the hands is unarmed I get a crash.

I have tried adding the various skill tags but none have helped keep it from crashing. I have also tried setting the barehanded attack parameter to true and false and neither changed anything. 

Here's the crash notes:

YEP_CoreEngine.js:1098 TypeError: Cannot read property 'wtypeId' of null
    at Game_Action.applyDWAddEffect (Ramza_DualWield.js:598)
    at Game_Action.apply (Ramza_DualWield.js:553)
    at Game_Action.apply (Ramza_DualWield.js:1110)
    at Function.BattleManager.invokeNormalAction (rpg_managers.js:2549)
    at Function.BattleManager.invokeAction (YEP_BattleEngineCore.js:2095)
    at Function.<anonymous> (YEP_BattleEngineCore.js:2707)
    at Array.forEach (<anonymous>)
    at Function.BattleManager.actionActionEffect (YEP_BattleEngineCore.js:2704)
    at Function.BattleManager.processActionSequence (YEP_BattleEngineCore.js:2300)
    at Function.BattleManager.processActionSequence (YEP_X_ActSeqPack1.js:886)

Sorry to bug you with another issue but I have been hitting a wall trying to fix this myself. Thanks for taking a look if you do.

(+1)

Greetings. Don't ever feel like you're bugging me by reporting an issue like this, it's no trouble at all. It's my fault, really, as this is definitely a bug I introduced in the last update. 


I'm not at a computer right now, but when I get home in a few hours, I'll look into it. Given the error message, I forgot to account for an empty hand when an actor was dual wielding, something which I thought I'd accounted for, but I must've missed a check.

Like I said, I'll look into it when I get home in a few hours and post an update.

(+1)

Greetings again. I have corrected the problem.


I had thought that I had tested the logic quite thoroughly on my own, but it turns out I must've skipped the checks to see if having no weapons in either hand would cause a problem. I have added the required checks, and the project should no longer crash when either of the actor's hands are empty, when using a skill that requires a specific weapon type. Please download the updated plugin file at your earliest convenience.

You're the best. I tested out the new plugin and no more  crashes. A huge thanks from me. And you got that fix out so fast, you're a magician. This has become my favorite and most needed plugin by far. Keep up the great work. Thank you so much.=)

Hello Ramza !

I used your plugin, that I download long time ago (V1.05). But I have an issue with and was wondering if buying the update version would help me.

I have 2 characters with the habiliy "Dual Wielding" let's say A with a sword and a knife. and B with 2 Claws.

During the first tour, everythings is normal A and B use their weapons.

Then after a few turn (and some time even between 2 différents fight) the weapon seems to be exchange or thing like that.


Like The A has a Claw and a Sword and B has 2 knife (I'm just talking about the image when using skill, not the equipement). I don't have this problem if only one of my character use Dual Wielding.

Have you seen that already and does the new version fix it ?
Thanks a lot anyway !

Good day Gregaur-X.
If you are actually using version 1.05 I have to commend you on actually even getting it to work at all! Way back in June 2017 I scrapped the old version of this plugin and rewrote it as version 2.0 and it has had numerous updates and fixes since then. I was having problems similar to the ones you mentioned, as well as issues where weapons would lose their stats entirely. The way I had written it was too obtuse for the average person to even figure out how to use it (myself included), so I rewrote it to be a lot more user friendly. 

Version 2 was almost exactly the same as version 1.05, except it was plug and play. You didn't need to call any functions during your action sequences, or set up anything before the swing, when you attacked it hit twice, and looked different if you had two different weapons, and that was all it needed to do.

I can tell you for sure and without a single doubt that if you purchase the new version of the plugin you will not run into this problem any more, although you might have to change some stuff on your action sequences around to make them work again.

-Ramza

All right Ramza, I know what I need to do now ;) Thanks !

(+1)

Um, hello there, I seem to have a problem  with the plug-in, It seems that whenever the dualwielding  character attacks, it happens twice like it should, but they do not use the weapon equipped in their offhand, instead they use barehanded, and for more information if it helps, when I disabled the barehanded attack parameter in the plug-in, the character actually does attack with a weapon in their offhand but its just seems to duplicate the main weapon and even then, after the first turn the ofhand weapon seemingly disappears, I double checked the inventory afterwards to confirm. This has been happening with my main project and I made a fresh project with only the dualwielding plug-in and YEP's battlecore engine (both unedited) to test and I still get this problem, any help would be appreciated!

I have seen this issue before in the past, so I suspect the cause is the same.

You are using a weapon to enable dual wielding on the actor. Likely the mainhand weapon, based on what you've said so far. 

During the attacks, each weapon is temporarily unequipped to remove all of the traits from it when it isn't being used. The offhand weapon is removed first, so the main hand swing will only use traits from the first weapon. Afterward, the offhand weapon is re-equipped, and the main hand weapon is removed so the same can happen with the offhand swing. When the main hand weapon is removed, your actor is updated to not be capable of dual wielding anymore, because the dual wield type trait is on that weapon. This removes his offhand weapon as well, causing him to continue the second strike, but with his main (bare) hand instead. 

After this happens, checking in the menu will show the offhand weapon as unequipped, and likely gone from the inventory as well.

To fix this, add the dual wield type to the actor, or class directly, instead of to the equipment he/she is wearing.


Sorry for the delay, I just got home to confirm what you said and I don't have the dual wield type on either weapon,  and I moved the slot type between both the actor and their class and it still does the same thing, based on what your explanation and what happens when I disable barehanded, the offhand seems to ignored completely, I've created several projects trying to figure out what I've been doing wrong and I just cant seem to find it 

Screeshot of the class

Apologies for immediately assuming that the problem was on your end, as it turns out, this is a bug introduced with the fixes posted for v2.52.  I'll spare the details, but the gist of it is that an if statement was worded incorrectly, causing the dual wield sequence to lose the offhand weapon. I have corrected this in v2.53, which should now be up for download.

The other issue with turning off the barehanded attack causing both swings to look the same is also a bug on my end, and apparently has been like that since I implemented that plugin parameter. A check that checks if the wielder is dual wielding fails at a certain point during the dual wield sequence, which causes the script to continue with a second attack, but assume that the actor is only wielding one weapon, making both hits main hand swings only.

I have also corrected this issue in v2.53. As I said, the download should now be available, so feel free to verify that it is now working.

Oh YES!! Looks like everything is working with the new version you put out! And I'll also confirm that problem as well as your fix fo the barehanded duplicate problem both are good. Thank you so very much for the help and no worries about the assumption, to be quite honest I just assumed I  haphazardly enabled a conflicting setting or something dumb like that haha. Regardless, I don't mind and once again, thank you for the timely response and fix!