mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
[Feature] Add Support for "Show Mine Only" Filters (#2484)
* [Feature] Add Support for "Show Mine Only" Filters * Added "Show Mine Only" support for HoTs * remove this-> as it's implied.
This commit is contained in:
parent
d7097e84ff
commit
eb02525d36
@ -718,7 +718,7 @@ typedef enum {
|
|||||||
FilterPetMisses = 21, //0=show, 1=hide
|
FilterPetMisses = 21, //0=show, 1=hide
|
||||||
FilterFocusEffects = 22, //0=show, 1=hide
|
FilterFocusEffects = 22, //0=show, 1=hide
|
||||||
FilterPetSpells = 23, //0=show, 1=hide
|
FilterPetSpells = 23, //0=show, 1=hide
|
||||||
FilterHealOverTime = 24, //0=show, 1=hide
|
FilterHealOverTime = 24, //0=show, 1=mine only, 2=hide
|
||||||
FilterUnknown25 = 25,
|
FilterUnknown25 = 25,
|
||||||
FilterUnknown26 = 26,
|
FilterUnknown26 = 26,
|
||||||
FilterUnknown27 = 27,
|
FilterUnknown27 = 27,
|
||||||
|
|||||||
@ -4050,12 +4050,14 @@ void Mob::CommonDamage(Mob* attacker, int64 &damage, const uint16 spell_id, cons
|
|||||||
attacker->MessageString(Chat::DamageShield, OTHER_HIT_NONMELEE, GetCleanName(), ConvertArray(damage, val1));
|
attacker->MessageString(Chat::DamageShield, OTHER_HIT_NONMELEE, GetCleanName(), ConvertArray(damage, val1));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
entity_list.MessageCloseString(
|
entity_list.FilteredMessageCloseString(
|
||||||
this, /* Sender */
|
attacker, /* Sender */
|
||||||
true, /* Skip Sender */
|
false, /* Sender is attacker, so do not skip */
|
||||||
RuleI(Range, SpellMessages),
|
RuleI(Range, SpellMessages),
|
||||||
Chat::NonMelee, /* 283 */
|
Chat::NonMelee, /* 283 */
|
||||||
|
FilterSpellDamage, /* FilterType: 13 */
|
||||||
HIT_NON_MELEE, /* %1 hit %2 for %3 points of non-melee damage. */
|
HIT_NON_MELEE, /* %1 hit %2 for %3 points of non-melee damage. */
|
||||||
|
0,
|
||||||
attacker->GetCleanName(), /* Message1 */
|
attacker->GetCleanName(), /* Message1 */
|
||||||
GetCleanName(), /* Message2 */
|
GetCleanName(), /* Message2 */
|
||||||
ConvertArray(damage, val1) /* Message3 */
|
ConvertArray(damage, val1) /* Message3 */
|
||||||
@ -4215,7 +4217,7 @@ void Mob::HealDamage(uint64 amount, Mob *caster, uint16 spell_id)
|
|||||||
// message to target
|
// message to target
|
||||||
if (IsClient() && caster != this) {
|
if (IsClient() && caster != this) {
|
||||||
if (CastToClient()->ClientVersionBit() & EQ::versions::maskSoFAndLater)
|
if (CastToClient()->ClientVersionBit() & EQ::versions::maskSoFAndLater)
|
||||||
FilteredMessageString(this, Chat::NonMelee, FilterHealOverTime,
|
FilteredMessageString(caster, Chat::NonMelee, FilterHealOverTime,
|
||||||
HOT_HEALED_OTHER, caster->GetCleanName(),
|
HOT_HEALED_OTHER, caster->GetCleanName(),
|
||||||
itoa(acthealed), spells[spell_id].name);
|
itoa(acthealed), spells[spell_id].name);
|
||||||
else
|
else
|
||||||
@ -4231,7 +4233,7 @@ void Mob::HealDamage(uint64 amount, Mob *caster, uint16 spell_id)
|
|||||||
YOU_HEAL, GetCleanName(), itoa(acthealed));
|
YOU_HEAL, GetCleanName(), itoa(acthealed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else if (CastToClient()->GetFilter(FilterHealOverTime) != (FilterShowSelfOnly || FilterHide)) {
|
||||||
Message(Chat::NonMelee, "You have been healed for %d points of damage.", acthealed);
|
Message(Chat::NonMelee, "You have been healed for %d points of damage.", acthealed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3156,10 +3156,9 @@ void Client::ServerFilter(SetServerFilter_Struct* filter){
|
|||||||
if (ClientVersionBit() & EQ::versions::maskSoDAndLater) {
|
if (ClientVersionBit() & EQ::versions::maskSoDAndLater) {
|
||||||
if (filter->filters[FilterHealOverTime] == 0)
|
if (filter->filters[FilterHealOverTime] == 0)
|
||||||
ClientFilters[FilterHealOverTime] = FilterShow;
|
ClientFilters[FilterHealOverTime] = FilterShow;
|
||||||
// This is called 'Show Mine Only' in the clients, but functions the same as show
|
// This is called 'Show Mine Only' in the clients
|
||||||
// so instead of apply special logic, just set to show
|
|
||||||
else if (filter->filters[FilterHealOverTime] == 1)
|
else if (filter->filters[FilterHealOverTime] == 1)
|
||||||
ClientFilters[FilterHealOverTime] = FilterShow;
|
ClientFilters[FilterHealOverTime] = FilterShowSelfOnly;
|
||||||
else
|
else
|
||||||
ClientFilters[FilterHealOverTime] = FilterHide;
|
ClientFilters[FilterHealOverTime] = FilterHide;
|
||||||
} else {
|
} else {
|
||||||
@ -3277,14 +3276,12 @@ bool Client::FilteredMessageCheck(Mob *sender, eqFilterType filter)
|
|||||||
else if (mode == FilterHide)
|
else if (mode == FilterHide)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!sender && mode == FilterHide) {
|
if (sender != this && (mode == FilterHide || mode == FilterShowSelfOnly)) {
|
||||||
return false;
|
return false;
|
||||||
} else if (sender) {
|
} else if (sender) {
|
||||||
if (this == sender) {
|
if (this == sender) {
|
||||||
if (mode == FilterHide) // don't need to check others
|
if (mode == FilterHide) // don't need to check others
|
||||||
return false;
|
return false;
|
||||||
} else if (mode == FilterShowSelfOnly) { // we know sender isn't us
|
|
||||||
return false;
|
|
||||||
} else if (mode == FilterShowGroupOnly) {
|
} else if (mode == FilterShowGroupOnly) {
|
||||||
Group *g = GetGroup();
|
Group *g = GetGroup();
|
||||||
Raid *r = GetRaid();
|
Raid *r = GetRaid();
|
||||||
|
|||||||
@ -123,9 +123,9 @@ int64 Mob::GetActSpellDamage(uint16 spell_id, int64 value, Mob* target) {
|
|||||||
else if (IsNPC() && CastToNPC()->GetSpellScale())
|
else if (IsNPC() && CastToNPC()->GetSpellScale())
|
||||||
value = int64(static_cast<float>(value) * CastToNPC()->GetSpellScale() / 100.0f);
|
value = int64(static_cast<float>(value) * CastToNPC()->GetSpellScale() / 100.0f);
|
||||||
|
|
||||||
entity_list.MessageCloseString(
|
entity_list.FilteredMessageCloseString(
|
||||||
this, true, 100, Chat::SpellCrit,
|
this, true, 100, Chat::SpellCrit, FilterSpellCrits,
|
||||||
OTHER_CRIT_BLAST, GetName(), itoa(-value));
|
OTHER_CRIT_BLAST, 0, GetName(), itoa(-value));
|
||||||
|
|
||||||
if (IsClient())
|
if (IsClient())
|
||||||
MessageString(Chat::SpellCrit, YOU_CRIT_BLAST, itoa(-value));
|
MessageString(Chat::SpellCrit, YOU_CRIT_BLAST, itoa(-value));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user