Log in

View Full Version : fix: dual wield at wrong levels for rogue/war


nattini
04-10-2004, 02:49 PM
dual wield was only working for warriors and rogues starting at level 17 -- instead of 13.

the case statement in CanThisClassDualWield() was to blame-- the war/rog case blocks were falling through to the bard one which returned false until level 17... so the bug only occured with war/rog level 13-16


mob.cpp starting at approx. line 1353

bool Mob::CanThisClassDuelWield(void) //Dual wield not Duel, busy someone else fix it
{
// All npcs over level 13 can dual wield
if (this->IsNPC() && (this->GetLevel() >= 13))
return true;

// nattini - added breaks- preventing war/rog classes falling through to the bard level check
// Kaiyodo - Check the classes that can DW, and make sure we're not using a 2 hander
switch(this->GetClass()) // Lets make sure they are the right level! -image
{
case WARRIOR:
{
if(this->GetLevel() < 13)
return false;
break;
}
case ROGUE:
{
if(this->GetLevel() < 13)
return false;
break;
}
case BARD:
{
if(this->GetLevel() < 17)
return false;
break;
}
case RANGER:
{
if(this->GetLevel() < 17)
return false;
break;
}
case BEASTLORD:
{
if(this->GetLevel() < 17)
return false;
break;
}
case MONK:
{
}
}

nattini
04-10-2004, 08:33 PM
bool Mob::CanThisClassDuelWield(void) //Dual wield not Duel, busy someone else fix it
{
// All npcs over level 13 can dual wield
if (this->IsNPC() && (this->GetLevel() >= 13))
return true;

// nattini - added breaks- preventing war/rog classes falling through to the bard level check
// Kaiyodo - Check the classes that can DW, and make sure we're not using a 2 hander
switch(this->GetClass()) // Lets make sure they are the right level! -image
{
case WARRIOR:
case ROGUE:
{
if(this->GetLevel() < 13)
return false;
break;
}
case BARD:
case BEASTLORD:
case RANGER:
{
if(this->GetLevel() < 17)
return false;
break;
}
case MONK:
{
}
}


sorry, that case statment was haunting me in my sleep. i should be better now.

-nattini

KhaN
04-10-2004, 09:17 PM
This post remember me that using 0.5.5DR1, my rogue got dodge around lvl4 but the skill only started to increase around lvl8, same for backstap if i remember.

nattini
04-11-2004, 09:20 AM
well, backstab shouldnt have worked at all until level 10 when you're supposed to get it- dodge should have worked at 4 though.


just taking a quick peek, it looks like your're right. there are a lot of cases that are falling through to the next one due to omitted breaks;

without even looking to hard, i can see problems with double attack, parry and riposte--- the riposte one being severe enough that warriors monks and rogues wouldnt be able to use it until 58!

---maybe thats why riposte disc seems broken =)

ill play with these tonight, to bad there no active cvs for me to commit the fixes to =\

-nattini