diff --git a/common/classes.cpp b/common/classes.cpp index be683fbd1..3aaeeded3 100644 --- a/common/classes.cpp +++ b/common/classes.cpp @@ -573,6 +573,20 @@ bool IsNonSpellFighterClass(uint8 class_id) } } +bool IsHybridClass(uint8 class_id) +{ + switch (class_id) { + case PALADIN: + case RANGER: + case SHADOWKNIGHT: + case BARD: + case BEASTLORD: + return true; + default: + return false; + } +} + bool IsCasterClass(uint8 class_id) { switch (class_id) { diff --git a/common/classes.h b/common/classes.h index 2ca9a3c4d..f63758937 100644 --- a/common/classes.h +++ b/common/classes.h @@ -135,6 +135,7 @@ uint8 GetClassIDFromPlayerClassBit(uint32 player_class_bit); bool IsFighterClass(uint8 class_id); bool IsSpellFighterClass(uint8 class_id); bool IsNonSpellFighterClass(uint8 class_id); +bool IsHybridClass(uint8 class_id); bool IsCasterClass(uint8 class_id); bool IsINTCasterClass(uint8 class_id); bool IsWISCasterClass(uint8 class_id); diff --git a/utils/scripts/eqemu_server.pl b/utils/scripts/eqemu_server.pl index ec3505c43..e06408bd9 100644 --- a/utils/scripts/eqemu_server.pl +++ b/utils/scripts/eqemu_server.pl @@ -1822,7 +1822,7 @@ sub quest_files_fetch { print "[Update] No Quest Updates found... \n\n"; } - rmtree("updates_staged/"); + rmtree("updates_staged/"); } sub lua_modules_fetch { diff --git a/zone/bot.cpp b/zone/bot.cpp index 42adfddac..c695d7169 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -2481,7 +2481,7 @@ void Bot::SetTarget(Mob* mob) { } void Bot::SetStopMeleeLevel(uint8 level) { - if (IsCasterClass(GetClass()) || IsSpellFighterClass(GetClass())) + if (IsCasterClass(GetClass()) || IsHybridClass(GetClass())) _stopMeleeLevel = level; else _stopMeleeLevel = 255; @@ -2506,10 +2506,10 @@ void Bot::SetHoldMode() { // AI Processing for the Bot object constexpr float MAX_CASTER_DISTANCE[PLAYER_CLASS_COUNT] = { - 0, (34 * 34), (24 * 24), (28 * 28), (26 * 26), (42 * 42), 0, 0, 0, (38 * 38), (54 * 54), (48 * 48), (52 * 52), (50 * 50), (30 * 30), 0 -// W C P R S D M B R S N W M E B B -// A L A N H R N R O H E I A N S E -// R R L G D U K D G M C Z G C T R + 0, (34 * 34), (24 * 24), (28 * 28), (26 * 26), (42 * 42), 0, (30 * 30), 0, (38 * 38), (54 * 54), (48 * 48), (52 * 52), (50 * 50), (32 * 32), 0 +// W C P R S D M B R S N W M E B B +// A L A N H R N R O H E I A N S E +// R R L G D U K D G M C Z G C T R }; void Bot::AI_Process() @@ -3390,7 +3390,7 @@ void Bot::AI_Process() BotRangedAttack(tar); } } - else if (!IsBotArcher() && (IsBotNonSpellFighter() || GetLevel() < GetStopMeleeLevel())) { + else if (!IsBotArcher() && GetLevel() < GetStopMeleeLevel()) { // We can't fight if we don't have a target, are stun/mezzed or dead.. // Stop attacking if the target is enraged diff --git a/zone/bot_command.cpp b/zone/bot_command.cpp index 1a0c415db..51fa44ced 100644 --- a/zone/bot_command.cpp +++ b/zone/bot_command.cpp @@ -6145,7 +6145,7 @@ void bot_subcommand_bot_stop_melee_level(Client *c, const Seperator *sep) return; if (helper_is_help_or_usage(sep->arg[1])) { c->Message(m_usage, "usage: %s [current | reset | sync | value: 0-255]", sep->arg[0]); - c->Message(m_note, "note: Only caster and spell-casting fighter class bots may be modified"); + c->Message(m_note, "note: Only caster or hybrid class bots may be modified"); c->Message(m_note, "note: Use [reset] to set stop melee level to server rule"); c->Message(m_note, "note: Use [sync] to set stop melee level to current bot level"); return; @@ -6156,8 +6156,8 @@ void bot_subcommand_bot_stop_melee_level(Client *c, const Seperator *sep) c->Message(m_fail, "You must a bot that you own to use this command"); return; } - if (!IsCasterClass(my_bot->GetClass()) && !IsSpellFighterClass(my_bot->GetClass())) { - c->Message(m_fail, "You must a caster or spell-casting fighter class bot to use this command"); + if (!IsCasterClass(my_bot->GetClass()) && !IsHybridClass(my_bot->GetClass())) { + c->Message(m_fail, "You must a caster or hybrid class bot to use this command"); return; }