EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   Dual Wield Rule Changes (https://www.eqemulator.org/forums/showthread.php?t=38028)

Uleat 04-06-2014 05:36 AM

Dual Wield Rule Changes
 
I changed the rules for dual-wielding to allow non-monk/beastlord class to use their fists as long as they have at least one weapon equipped
in either their primary or secondary slots.

Code:

Primary        Secondary        Dual Wield
----------------------------------
2H        Empty                No

1H        1H                Yes
1H        Object                No
1H        Empty                Yes

Object        1H                Yes
Object        Object                No
Object        Empty                Yes

Empty        1H                Yes
Empty        Object                No
Empty        Empty                No (unless you are a monk or beastlord)

If this is incorrect in any way, please let me know and I'll (or someone) will correct it.

If you have an opinion on this, please post and a discussion should ensue.

Kingly_Krab 04-06-2014 05:46 AM

Yeah, this make sense. But why Beastlords?

Uleat 04-06-2014 06:06 AM

They were always coded to allow dual-wielding fists.

I'm pretty sure they've always been considered a Monk-lite class since their introduction.

Kingly_Krab 04-06-2014 06:14 AM

Quote:

Originally Posted by Uleat (Post 229332)
They were always coded to allow dual-wielding fists.

I'm pretty sure they've always been considered a Monk-lite class since their introduction.

Okay, I was just confused, as they do have to earn their Dual Wield, I thought they would just be like the rest.

Uleat 04-06-2014 06:30 AM

All of the checks are wrapped in a Client::HasSkill(SkillDualWield) check.

If there's no skill, then no one has it. This logic matrix only applies once they have trained it..unless there's a bug elsewhere that grants them that skill :)

Code:

bool Mob::CanThisClassDualWield(void) const {
        if(!IsClient()) {
                return(GetSkill(SkillDualWield) > 0);
        }
        else if(CastToClient()->HasSkill(SkillDualWield)) {
                const ItemInst* pinst = CastToClient()->GetInv().GetItem(SLOT_PRIMARY);
                const ItemInst* sinst = CastToClient()->GetInv().GetItem(SLOT_SECONDARY);

                // 2HS, 2HB, or 2HP
                if(pinst && pinst->IsWeapon()) {
                        const Item_Struct* item = pinst->GetItem();

                        if((item->ItemType == ItemType2HBlunt) || (item->ItemType == ItemType2HSlash) || (item->ItemType == ItemType2HPiercing))
                                return false;
                }

                // OffHand Weapon
                if(sinst && !sinst->IsWeapon())
                        return false;

                // Dual-Wielding Empty Fists
                if(!pinst && !sinst)
                        if(class_ != MONK && class_ != MONKGM && class_ != BEASTLORD && class_ != BEASTLORDGM)
                                return false;

                return true;
        }

        return false;
}

This is an on-the-fly check for current conditions..not a base does this class get the dual wield ability.

It's name is a bit mis-leading.

Kingly_Krab 04-06-2014 06:50 AM

Oh I know, I read the code. I was just assuming all non-innate dual wielding classes would not be able to dual wield with hands.

jsr 04-06-2014 09:46 PM

Quote:

Originally Posted by Uleat (Post 229328)
I changed the rules for dual-wielding to allow non-monk/beastlord class to use their fists as long as they have at least one weapon equipped
in either their primary or secondary slots.

Code:

Primary        Secondary        Dual Wield
----------------------------------
Empty        Empty                No (unless you are a monk or beastlord)

If you have an opinion on this, please post and a discussion should ensue.

I don't understand the restriction on dw with fist/fist, I've never seen anyone in a fist fight use one hand.

Uleat 04-06-2014 10:28 PM

Ok..here is the original function:

Code:

bool Mob::CanThisClassDualWield(void) const
{
        if (!IsClient()) {
                return(GetSkill(SkillDualWield) > 0);
        } else {
                const ItemInst* inst = CastToClient()->GetInv().GetItem(SLOT_PRIMARY);
                // 2HS, 2HB, or 2HP
                if (inst && inst->IsType(ItemClassCommon)) {
                        const Item_Struct* item = inst->GetItem();
                        if ((item->ItemType == ItemType2HBlunt) || (item->ItemType == ItemType2HSlash) || (item->ItemType == ItemType2HPiercing))
                                return false;
                } else {
                        //No weapon in hand... using hand-to-hand...
                        //only monks and beastlords? can dual wield their fists.
                        if(class_ != MONK && class_ != MONKGM && class_ != BEASTLORD && class_ != BEASTLORDGM) {
                                return false;
                        }
                }

                return (CastToClient()->HasSkill(SkillDualWield));        // No skill = no chance
        }
}

As you can see, I did not change the effective behavior of dual-wielding empty hands.

This change affects all non-Monk/Beastlord dual wield characteristics only.


There were reports of warriors not attacking with their off-hand weapon when they unequipped their primary weapon.

Now, these classes can use either Primary or Secondary for their empty hand, so long as the other has a weapon.


In regards to the old rule for only allowing Monk and Beastlord, I don't know why it was set up that way. I only restated the criteria
to fix an issue for the other d-w classes.

If someone can provide a reference as to why or why not the other classes should or should not be capable of dual-wielding
their fists, I will gladly adapt this function to the finding.

jsr 04-06-2014 10:42 PM

I'll check Live later :)

Robregen 04-06-2014 10:52 PM

Quote:

It seems obvious to choose H2H weapons because of the lore of beastlords. However, H2H weapons are mostly late additions to the game (Luclin onwards) and thus relatively rare, and are heavily competed for against monk twinks, as a result are extremely expensive for the damage they can do. It is worth getting H2H skills and keeping them maxed, because H2H weapons will be preferred at 60+, but the cost imbalance makes them less than ideal until then. H2H weapons in general have better ratios than other types for beastlords.
http://www.paullynch.org/Everquest/VSBL/88weapons.html

Uleat 04-07-2014 01:51 AM

Here's a good one: http://everquest.allakhazam.com/wiki/eq:warrior

Quote:

Hand to Hand 1 Bare fists; no use for anyone other than monks and beastlords.
I guess, according to this, we should nix all bare-fisted attacking other classes.


EDIT: I guess that just muddies the water..Just because they get the skill and can increase, it still doesn't specify whether it's dual wieldable.

Hopefully, jsr will find a positive answer :)

jsr 04-07-2014 08:58 AM

fyi later will probably be next weekend!

Uleat 04-07-2014 09:28 AM

Lol! No worries! And it doesn't have to be just you..anyone can proffer this information :)

ChaosSlayerZ 04-08-2014 08:06 PM

you could make it into a Rule:

NakedFistsDWRule:

0 - default (only monks/bst can DW naked fists)
1 - you can DW 1 naked fist if you got 1 hand armed
2 - everyone can DW naked fists

jsr 04-13-2014 02:26 AM

Quote:

Originally Posted by Uleat (Post 229328)
I changed the rules for dual-wielding to allow non-monk/beastlord class to use their fists as long as they have at least one weapon equipped
in either their primary or secondary slots.

Code:

Primary        Secondary        Dual Wield
----------------------------------
2H        Empty                No

1H        1H                Yes
1H        Object                No
1H        Empty                Yes

Object        1H                Yes
Object        Object                No
Object        Empty                Yes

Empty        1H                Yes
Empty        Object                No
Empty        Empty                No (unless you are a monk or beastlord)

If this is incorrect in any way, please let me know and I'll (or someone) will correct it.

If you have an opinion on this, please post and a discussion should ensue.

Used a ranger with 269 dual wield skill.

Code:

                        empty/empty        empty/object
1 attempt per sec        5                7
2 attempts per sec        2                36
3 attempts per sec        5                12
4 attempts per sec        38                9
5 attempts per sec        5                3
6 attempts per sec        16                1
time                        161                252
attempts                279                172
attempts per time        1.73                0.68

- Didn't exclude riposte data
- Drop in attack rate for empty/object is more than expected, but I assume it's within margin for error.

In any event data clearly shows rangers dual wield with empty/empty, DW animation also played. I think we have no reason to expect different results for other classes, the only other I can test (without the effort of levelling up) would be rogue if you think this is insufficient.

Akkadius 04-13-2014 03:39 AM

When changing core function behavior. It is wise create a rule to offer a before and after that you can choose as the operator. As with all systematic core changes

Uleat 04-13-2014 03:46 AM

Ok..definitely looks like you have more attacks dual-wielding empty fists.

I'm still not sure why it was originally coded that way..but, I will take a closer at the attack code.

I agree..it doesn't make sense why no one else couldn't use both fists in a fist fight.

One thing I did find was that as a monk's level increases, his (her) fist damage rating increases..but, that doesn't correlate to d-w'ness of fists.

Since I didn't change the original effective behavior, I'll look into this at a future date. I'm really trying to finalize the item/inventory code in this rework
so I can move on to all of the calling code and database changes, and don't want to get side-tracked on this project (again...)


Funny thing about that 'margin of error' with the object..what if ripostes go off with an object and not an empty hand?


PRE-POST EDIT: Yes, I will add a rule for that :P

jsr 04-13-2014 07:53 AM

Quote:

Originally Posted by Uleat (Post 229469)
Ok..definitely looks like you have more attacks dual-wielding empty fists.

I'm still not sure why it was originally coded that way..but, I will take a closer at the attack code.

I agree..it doesn't make sense why no one else couldn't use both fists in a fist fight.

One thing I did find was that as a monk's level increases, his (her) fist damage rating increases..but, that doesn't correlate to d-w'ness of fists.

Since I didn't change the original effective behavior, I'll look into this at a future date. I'm really trying to finalize the item/inventory code in this rework
so I can move on to all of the calling code and database changes, and don't want to get side-tracked on this project (again...)


Funny thing about that 'margin of error' with the object..what if ripostes go off with an object and not an empty hand?


PRE-POST EDIT: Yes, I will add a rule for that :P


Riposte rate was roughly consistent across both samples, and not high enough to confuse the result which is why I left it in. Eq designers opted for a simple combat system compared to many other mud codebases around at the time.. so personally I wouldn't look for complexity to mirror live, simplest is probably closest :)


All times are GMT -4. The time now is 09:12 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.