mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-12 08:02:25 +00:00
Merc logic fix for heal spells - allows mercs to select fast healing spells as a 'standard' healing spell & new rule for unsuspend
This commit is contained in:
parent
67a95b59a7
commit
79f9433dfa
@ -163,6 +163,7 @@ RULE_INT(Mercs, AggroRadius, 100) // Determines the distance from which a merc
|
|||||||
RULE_INT(Mercs, AggroRadiusPuller, 25) // Determines the distance from which a merc will aggro group member's target, if they have the group role of puller (also used to determine the distance at which a healer merc will begin healing a group member, if they have the group role of puller)
|
RULE_INT(Mercs, AggroRadiusPuller, 25) // Determines the distance from which a merc will aggro group member's target, if they have the group role of puller (also used to determine the distance at which a healer merc will begin healing a group member, if they have the group role of puller)
|
||||||
RULE_INT(Mercs, ResurrectRadius, 50) // Determines the distance from which a healer merc will attempt to resurrect a group member's corpse
|
RULE_INT(Mercs, ResurrectRadius, 50) // Determines the distance from which a healer merc will attempt to resurrect a group member's corpse
|
||||||
RULE_INT(Mercs, ScaleRate, 100)
|
RULE_INT(Mercs, ScaleRate, 100)
|
||||||
|
RULE_BOOL(Mercs, AllowMercSuspendInCombat, true)
|
||||||
RULE_CATEGORY_END()
|
RULE_CATEGORY_END()
|
||||||
|
|
||||||
RULE_CATEGORY(Guild)
|
RULE_CATEGORY(Guild)
|
||||||
|
|||||||
@ -940,7 +940,7 @@ bool IsRegularSingleTargetHealSpell(uint16 spell_id)
|
|||||||
{
|
{
|
||||||
if(spells[spell_id].effectid[0] == 0 && spells[spell_id].base[0] > 0 &&
|
if(spells[spell_id].effectid[0] == 0 && spells[spell_id].base[0] > 0 &&
|
||||||
spells[spell_id].targettype == ST_Target && spells[spell_id].buffduration == 0 &&
|
spells[spell_id].targettype == ST_Target && spells[spell_id].buffduration == 0 &&
|
||||||
!IsFastHealSpell(spell_id) && !IsCompleteHealSpell(spell_id) &&
|
!IsCompleteHealSpell(spell_id) &&
|
||||||
!IsHealOverTimeSpell(spell_id) && !IsGroupSpell(spell_id))
|
!IsHealOverTimeSpell(spell_id) && !IsGroupSpell(spell_id))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|||||||
@ -5468,7 +5468,7 @@ void Client::SuspendMercCommand() {
|
|||||||
Merc* merc = Merc::LoadMerc(this, &zone->merc_templates[GetMercInfo().MercTemplateID], 0, true);
|
Merc* merc = Merc::LoadMerc(this, &zone->merc_templates[GetMercInfo().MercTemplateID], 0, true);
|
||||||
if(merc)
|
if(merc)
|
||||||
{
|
{
|
||||||
SpawnMerc(merc, true);
|
SpawnMerc(merc, false);
|
||||||
Log.Out(Logs::General, Logs::Mercenaries, "SuspendMercCommand Successful Unsuspend for %s.", GetName());
|
Log.Out(Logs::General, Logs::Mercenaries, "SuspendMercCommand Successful Unsuspend for %s.", GetName());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -5482,6 +5482,15 @@ void Client::SuspendMercCommand() {
|
|||||||
{
|
{
|
||||||
Merc* CurrentMerc = GetMerc();
|
Merc* CurrentMerc = GetMerc();
|
||||||
|
|
||||||
|
|
||||||
|
if (!RuleB(Mercs, AllowMercSuspendInCombat))
|
||||||
|
{
|
||||||
|
if (!CheckCanSpawnMerc(GetMercInfo().MercTemplateID))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(CurrentMerc && GetMercID())
|
if(CurrentMerc && GetMercID())
|
||||||
{
|
{
|
||||||
CurrentMerc->Suspend();
|
CurrentMerc->Suspend();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user