вывод из самбомудлей модов для азероткор
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#include "ABGlobalScript.h"
|
||||
|
||||
#include "ABConfig.h"
|
||||
#include "ABMapInfo.h"
|
||||
#include "ABUtils.h"
|
||||
|
||||
void AutoBalance_GlobalScript::OnAfterUpdateEncounterState(Map* map, EncounterCreditType type, uint32 /*creditEntry*/, Unit* /*source*/, Difficulty /*difficulty_fixed*/, DungeonEncounterList const* /*encounters*/, uint32 /*dungeonCompleted*/, bool updated)
|
||||
{
|
||||
//if (!dungeonCompleted)
|
||||
// return;
|
||||
|
||||
if (!rewardEnabled || !updated)
|
||||
return;
|
||||
|
||||
AutoBalanceMapInfo* mapABInfo = GetMapInfo(map);
|
||||
|
||||
if (mapABInfo->adjustedPlayerCount < MinPlayerReward)
|
||||
return;
|
||||
|
||||
// skip if it's not a pre-wotlk dungeon/raid and if it's not scaled
|
||||
if (!LevelScaling || mapABInfo->mapLevel <= 70 || mapABInfo->lfgMinLevel <= 70
|
||||
// skip when not in dungeon or not kill credit
|
||||
|| type != ENCOUNTER_CREDIT_KILL_CREATURE || !map->IsDungeon())
|
||||
return;
|
||||
|
||||
Map::PlayerList const& playerList = map->GetPlayers();
|
||||
|
||||
if (playerList.IsEmpty())
|
||||
return;
|
||||
|
||||
uint32 reward = map->ToInstanceMap()->GetMaxPlayers() > 5 ? rewardRaid : rewardDungeon;
|
||||
if (!reward)
|
||||
return;
|
||||
|
||||
//instanceStart=0, endTime;
|
||||
uint8 difficulty = map->GetDifficulty();
|
||||
|
||||
for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
|
||||
{
|
||||
if (!itr->GetSource() || itr->GetSource()->IsGameMaster() || itr->GetSource()->GetLevel() < DEFAULT_MAX_LEVEL)
|
||||
continue;
|
||||
|
||||
itr->GetSource()->AddItem(reward, 1 + difficulty); // difficulty boost
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user