mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
[Bug Fix] Fix Character EXP Modifiers default (#4161)
# Notes - The `-1.0f` was causing these modifiers to be set to `0.0` and when people would enable them they would get no experience. - We now use the zone based grabbed methods when setting which will default to a value of `1.0f` if there is not a value found.
This commit is contained in:
parent
ee3d02bac6
commit
2c2a8cdb63
@ -74,9 +74,11 @@ public:
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto& m = l.front();
|
||||||
|
|
||||||
return EXPModifier{
|
return EXPModifier{
|
||||||
.aa_modifier = l[0].aa_modifier,
|
.aa_modifier = m.aa_modifier,
|
||||||
.exp_modifier = l[0].exp_modifier
|
.exp_modifier = m.exp_modifier
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3165,6 +3165,11 @@ void Zone::ClearEXPModifier(Client* c)
|
|||||||
exp_modifiers.erase(c->CharacterID());
|
exp_modifiers.erase(c->CharacterID());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Zone::ClearEXPModifierByCharacterID(const uint32 character_id)
|
||||||
|
{
|
||||||
|
exp_modifiers.erase(character_id);
|
||||||
|
}
|
||||||
|
|
||||||
float Zone::GetAAEXPModifier(Client* c)
|
float Zone::GetAAEXPModifier(Client* c)
|
||||||
{
|
{
|
||||||
const auto& l = exp_modifiers.find(c->CharacterID());
|
const auto& l = exp_modifiers.find(c->CharacterID());
|
||||||
@ -3177,6 +3182,18 @@ float Zone::GetAAEXPModifier(Client* c)
|
|||||||
return v.aa_modifier;
|
return v.aa_modifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Zone::GetAAEXPModifierByCharacterID(const uint32 character_id)
|
||||||
|
{
|
||||||
|
const auto& l = exp_modifiers.find(character_id);
|
||||||
|
if (l == exp_modifiers.end()) {
|
||||||
|
return 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto& v = l->second;
|
||||||
|
|
||||||
|
return v.aa_modifier;
|
||||||
|
}
|
||||||
|
|
||||||
float Zone::GetEXPModifier(Client* c)
|
float Zone::GetEXPModifier(Client* c)
|
||||||
{
|
{
|
||||||
const auto& l = exp_modifiers.find(c->CharacterID());
|
const auto& l = exp_modifiers.find(c->CharacterID());
|
||||||
@ -3189,6 +3206,18 @@ float Zone::GetEXPModifier(Client* c)
|
|||||||
return v.exp_modifier;
|
return v.exp_modifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Zone::GetEXPModifierByCharacterID(const uint32 character_id)
|
||||||
|
{
|
||||||
|
const auto& l = exp_modifiers.find(character_id);
|
||||||
|
if (l == exp_modifiers.end()) {
|
||||||
|
return 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto& v = l->second;
|
||||||
|
|
||||||
|
return v.exp_modifier;
|
||||||
|
}
|
||||||
|
|
||||||
void Zone::SetAAEXPModifier(Client* c, float aa_modifier)
|
void Zone::SetAAEXPModifier(Client* c, float aa_modifier)
|
||||||
{
|
{
|
||||||
auto l = exp_modifiers.find(c->CharacterID());
|
auto l = exp_modifiers.find(c->CharacterID());
|
||||||
@ -3209,6 +3238,26 @@ void Zone::SetAAEXPModifier(Client* c, float aa_modifier)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Zone::SetAAEXPModifierByCharacterID(const uint32 character_id, float aa_modifier)
|
||||||
|
{
|
||||||
|
auto l = exp_modifiers.find(character_id);
|
||||||
|
if (l == exp_modifiers.end()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto& m = l->second;
|
||||||
|
|
||||||
|
m.aa_modifier = aa_modifier;
|
||||||
|
|
||||||
|
CharacterExpModifiersRepository::SetEXPModifier(
|
||||||
|
database,
|
||||||
|
character_id,
|
||||||
|
GetZoneID(),
|
||||||
|
GetInstanceVersion(),
|
||||||
|
m
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
void Zone::SetEXPModifier(Client* c, float exp_modifier)
|
void Zone::SetEXPModifier(Client* c, float exp_modifier)
|
||||||
{
|
{
|
||||||
auto l = exp_modifiers.find(c->CharacterID());
|
auto l = exp_modifiers.find(c->CharacterID());
|
||||||
@ -3229,6 +3278,26 @@ void Zone::SetEXPModifier(Client* c, float exp_modifier)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Zone::SetEXPModifierByCharacterID(const uint32 character_id, float exp_modifier)
|
||||||
|
{
|
||||||
|
auto l = exp_modifiers.find(character_id);
|
||||||
|
if (l == exp_modifiers.end()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto& m = l->second;
|
||||||
|
|
||||||
|
m.exp_modifier = exp_modifier;
|
||||||
|
|
||||||
|
CharacterExpModifiersRepository::SetEXPModifier(
|
||||||
|
database,
|
||||||
|
character_id,
|
||||||
|
GetZoneID(),
|
||||||
|
GetInstanceVersion(),
|
||||||
|
m
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
bool Zone::IsIdleWhenEmpty() const
|
bool Zone::IsIdleWhenEmpty() const
|
||||||
{
|
{
|
||||||
return m_idle_when_empty;
|
return m_idle_when_empty;
|
||||||
|
|||||||
@ -269,10 +269,15 @@ public:
|
|||||||
void SendReloadMessage(std::string reload_type);
|
void SendReloadMessage(std::string reload_type);
|
||||||
|
|
||||||
void ClearEXPModifier(Client* c);
|
void ClearEXPModifier(Client* c);
|
||||||
|
void ClearEXPModifierByCharacterID(const uint32 character_id);
|
||||||
float GetAAEXPModifier(Client* c);
|
float GetAAEXPModifier(Client* c);
|
||||||
|
float GetAAEXPModifierByCharacterID(const uint32 character_id);
|
||||||
float GetEXPModifier(Client* c);
|
float GetEXPModifier(Client* c);
|
||||||
|
float GetEXPModifierByCharacterID(const uint32 character_id);
|
||||||
void SetAAEXPModifier(Client* c, float aa_modifier);
|
void SetAAEXPModifier(Client* c, float aa_modifier);
|
||||||
|
void SetAAEXPModifierByCharacterID(const uint32 character_id, float aa_modifier);
|
||||||
void SetEXPModifier(Client* c, float exp_modifier);
|
void SetEXPModifier(Client* c, float exp_modifier);
|
||||||
|
void SetEXPModifierByCharacterID(const uint32 character_id, float exp_modifier);
|
||||||
|
|
||||||
void AddAggroMob() { aggroedmobs++; }
|
void AddAggroMob() { aggroedmobs++; }
|
||||||
void AddAuth(ServerZoneIncomingClient_Struct *szic);
|
void AddAuth(ServerZoneIncomingClient_Struct *szic);
|
||||||
|
|||||||
@ -4270,7 +4270,7 @@ void ZoneDatabase::SetAAEXPModifierByCharID(
|
|||||||
instance_version,
|
instance_version,
|
||||||
EXPModifier{
|
EXPModifier{
|
||||||
.aa_modifier = aa_modifier,
|
.aa_modifier = aa_modifier,
|
||||||
.exp_modifier = -1.0f
|
.exp_modifier = zone->GetEXPModifierByCharacterID(character_id)
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -4288,7 +4288,7 @@ void ZoneDatabase::SetEXPModifierByCharID(
|
|||||||
zone_id,
|
zone_id,
|
||||||
instance_version,
|
instance_version,
|
||||||
EXPModifier{
|
EXPModifier{
|
||||||
.aa_modifier = -1.0f,
|
.aa_modifier = zone->GetAAEXPModifierByCharacterID(character_id),
|
||||||
.exp_modifier = exp_modifier
|
.exp_modifier = exp_modifier
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user