Include more ReputationSources
This commit is contained in:
parent
61bd3bb922
commit
d306f36882
@ -748,7 +748,10 @@ void Battleground::RewardReputationToTeam(uint32 factionId, uint32 reputation, T
|
||||
AddPct(repGain, itr->second->GetTotalAuraModifier(SPELL_AURA_MOD_REPUTATION_GAIN));
|
||||
AddPct(repGain, itr->second->GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_FACTION_REPUTATION_GAIN, realFactionId));
|
||||
if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(realFactionId))
|
||||
{
|
||||
ScriptMgr::instance()->OnBeforePlayerReputationChange(itr->second, factionId, repGain, ReputationSource::PvP);
|
||||
itr->second->GetReputationMgr().ModifyReputation(factionEntry, repGain);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1018,11 +1018,14 @@ void WorldSession::HandlePlayerLoginFromDB(LoginQueryHolder const& holder)
|
||||
{
|
||||
ReputationMgr& repMgr = pCurrChar->GetReputationMgr();
|
||||
|
||||
auto SendFullReputation = [&repMgr](std::initializer_list<uint32> factionsList)
|
||||
auto SendFullReputation = [&repMgr, pCurrChar](std::initializer_list<uint32> factionsList)
|
||||
{
|
||||
for (auto const& itr : factionsList)
|
||||
{
|
||||
repMgr.SetOneFactionReputation(sFactionStore.LookupEntry(itr), 42999.f, false);
|
||||
auto faction = sFactionStore.LookupEntry(itr);
|
||||
float reputation = 42999.f;
|
||||
ScriptMgr::instance()->OnBeforePlayerReputationChange(pCurrChar, faction->ID, reputation, ReputationSource::Config);
|
||||
repMgr.SetOneFactionReputation(sFactionStore.LookupEntry(itr), reputation, false);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -20,6 +20,8 @@ enum class ReputationSource : uint8 {
|
||||
RepeatableQuest,
|
||||
/// The player used a spell
|
||||
Spell,
|
||||
// The player get reputation by doing PvP related tasks
|
||||
PvP,
|
||||
/// The player get reputation by a console command
|
||||
Console,
|
||||
/// The player get some reputation by server configuration
|
||||
|
||||
@ -29,6 +29,7 @@ EndScriptData */
|
||||
#include "Pet.h"
|
||||
#include "Player.h"
|
||||
#include "ReputationMgr.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "StringConvert.h"
|
||||
|
||||
using namespace Acore::ChatCommands;
|
||||
@ -826,8 +827,9 @@ public:
|
||||
handler->SendErrorMessage(LANG_COMMAND_FACTION_NOREP_ERROR, factionEntry->name[handler->GetSessionDbcLocale()], factionId);
|
||||
return false;
|
||||
}
|
||||
|
||||
target->GetReputationMgr().SetOneFactionReputation(factionEntry, float(amount), false);
|
||||
float rep = target->GetReputationMgr().GetReputation(factionId) - float(amount);
|
||||
ScriptMgr::instance()->OnBeforePlayerReputationChange(target, factionId, rep, ReputationSource::Console);
|
||||
target->GetReputationMgr().SetOneFactionReputation(factionEntry, rep, false);
|
||||
target->GetReputationMgr().SendState(target->GetReputationMgr().GetState(factionEntry));
|
||||
|
||||
handler->PSendSysMessage(LANG_COMMAND_MODIFY_REP, factionEntry->name[handler->GetSessionDbcLocale()], factionId,
|
||||
|
||||
@ -28,6 +28,7 @@ EndScriptData */
|
||||
#include "ObjectMgr.h"
|
||||
#include "Player.h"
|
||||
#include "ReputationMgr.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
using namespace Acore::ChatCommands;
|
||||
|
||||
@ -309,7 +310,9 @@ public:
|
||||
{
|
||||
if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(repFaction))
|
||||
{
|
||||
player->GetReputationMgr().SetReputation(factionEntry, static_cast<float>(repValue));
|
||||
auto repDiv = static_cast<float>(repValue - curRep);
|
||||
ScriptMgr::instance()->OnBeforePlayerReputationChange(player, repFaction, repDiv, ReputationSource::Console);
|
||||
player->GetReputationMgr().SetReputation(factionEntry, repDiv + curRep);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -323,7 +326,9 @@ public:
|
||||
{
|
||||
if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(repFaction))
|
||||
{
|
||||
player->GetReputationMgr().SetReputation(factionEntry, static_cast<float>(repValue2));
|
||||
auto repDiv = static_cast<float>(repValue2 - curRep);
|
||||
ScriptMgr::instance()->OnBeforePlayerReputationChange(player, repFaction, repDiv, ReputationSource::Console);
|
||||
player->GetReputationMgr().SetReputation(factionEntry, repDiv + curRep);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,6 +25,7 @@
|
||||
#include "OutdoorPvPScript.h"
|
||||
#include "Player.h"
|
||||
#include "ReputationMgr.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "Transport.h"
|
||||
#include "World.h"
|
||||
#include "WorldPacket.h"
|
||||
@ -115,7 +116,9 @@ bool OutdoorPvPSI::HandleAreaTrigger(Player* player, uint32 trigger)
|
||||
// add 19 honor
|
||||
player->RewardHonor(nullptr, 1, 19);
|
||||
// add 20 cenarion circle repu
|
||||
player->GetReputationMgr().ModifyReputation(sFactionStore.LookupEntry(609), 20.f);
|
||||
float reputation = 20.f;
|
||||
ScriptMgr::instance()->OnBeforePlayerReputationChange(player, 609, reputation, ReputationSource::PvP);
|
||||
player->GetReputationMgr().ModifyReputation(sFactionStore.LookupEntry(609), reputation);
|
||||
// complete quest
|
||||
player->KilledMonsterCredit(SI_TURNIN_QUEST_CM_A);
|
||||
}
|
||||
@ -141,7 +144,9 @@ bool OutdoorPvPSI::HandleAreaTrigger(Player* player, uint32 trigger)
|
||||
// add 19 honor
|
||||
player->RewardHonor(nullptr, 1, 19);
|
||||
// add 20 cenarion circle repu
|
||||
player->GetReputationMgr().ModifyReputation(sFactionStore.LookupEntry(609), 20.f);
|
||||
float reputation = 20.f;
|
||||
ScriptMgr::instance()->OnBeforePlayerReputationChange(player, 609, reputation, ReputationSource::PvP);
|
||||
player->GetReputationMgr().ModifyReputation(sFactionStore.LookupEntry(609), reputation);
|
||||
// complete quest
|
||||
player->KilledMonsterCredit(SI_TURNIN_QUEST_CM_H);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user