EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Archive::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=621)
-   -   fix: dual wield at wrong levels for rogue/war (https://www.eqemulator.org/forums/showthread.php?t=13001)

nattini 04-10-2004 02:49 PM

fix: dual wield at wrong levels for rogue/war
 
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
Code:

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

Code:

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


All times are GMT -4. The time now is 04:43 PM.

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