aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp41
-rw-r--r--src/game/Level1.cpp36
-rw-r--r--src/game/Player.cpp2
-rw-r--r--src/game/SpellMgr.cpp74
-rw-r--r--src/game/TicketHandler.cpp25
-rw-r--r--src/game/TicketMgr.cpp10
-rw-r--r--src/game/TicketMgr.h2
-rw-r--r--src/game/World.cpp4
8 files changed, 119 insertions, 75 deletions
diff --git a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
index bfd8a5d51ce..1126352de8c 100644
--- a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
+++ b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
@@ -604,8 +604,9 @@ struct TRINITY_DLL_DECL npc_apprentice_mirvedaAI : public ScriptedAI
{
if (PlayerGUID)
{
- Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
- ((Player*)player)->GroupEventHappens(QUEST_UNEXPECTED_RESULT, m_creature);
+ Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
+ if(player)
+ ((Player*)player)->CompleteQuest(QUEST_UNEXPECTED_RESULT);
}
}
@@ -672,28 +673,20 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI
void Reset()
{
EndTimer = 0;
- WaveTimer = 0;
- PlayerGUID = 0;
Completed = false;
Progress = false;
+ PlayerGUID = 0;
+ WaveTimer = 0;
}
void Aggro(Unit* who){}
- void JustSummoned(Creature *summoned)
- {
- summoned->AI()->AttackStart(m_creature);
- }
-
void MoveInLineOfSight(Unit* who)
{
- error_log("MoveLos");
- if( who->GetTypeId() == TYPEID_PLAYER && !m_creature->canStartAttack(who) )
+ if( who->GetTypeId() == TYPEID_PLAYER && !m_creature->canStartAttack(who) && !Progress)
{
- error_log("TypeId check");
if( ((Player*)who)->GetQuestStatus(QUEST_POWERING_OUR_DEFENSES) == QUEST_STATUS_INCOMPLETE )
{
- error_log("Queststaus");
float Radius = 10.0;
if( m_creature->IsWithinDistInMap(who, Radius) )
{
@@ -701,10 +694,14 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI
WaveTimer = 1000;
EndTimer = 60000;
Progress = true;
- error_log("Event started");
}
}
}
+ }
+
+ void JustSummoned(Creature *summoned)
+ {
+ summoned->AI()->AttackStart(m_creature);
}
void JustDied(Unit* killer)
@@ -726,26 +723,26 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI
if (PlayerGUID)
{
Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
- ((Player*)player)->GroupEventHappens(QUEST_POWERING_OUR_DEFENSES, m_creature);
+ if(player)
+ ((Player*)player)->CompleteQuest(QUEST_POWERING_OUR_DEFENSES);
}
m_creature->DealDamage(m_creature,m_creature->GetHealth(),NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
m_creature->RemoveCorpse();
- error_log("EndTimer done");
}else EndTimer -= diff;
if(WaveTimer < diff && !Completed && Progress)
{
- uint32 ran = rand()%8;
- DoSpawnCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran].x, SpawnLocations[ran].y, SpawnLocations[ran].z, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
- DoSpawnCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran].x, SpawnLocations[ran].y, SpawnLocations[ran].z, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
- DoSpawnCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran].x, SpawnLocations[ran].y, SpawnLocations[ran].z, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000);
+ uint32 ran1 = rand()%8;
+ uint32 ran2 = rand()%8;
+ uint32 ran3 = rand()%8;
+ m_creature->SummonCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran1].x, SpawnLocations[ran1].y, SpawnLocations[ran1].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ m_creature->SummonCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran2].x, SpawnLocations[ran2].y, SpawnLocations[ran2].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
+ m_creature->SummonCreature(MOB_ENRAGED_WRAITH, SpawnLocations[ran3].x, SpawnLocations[ran3].y, SpawnLocations[ran3].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
WaveTimer = 30000;
- error_log("Wave summon");
}else WaveTimer -= diff;
}
};
-
CreatureAI* GetAI_npc_infused_crystalAI(Creature *_Creature)
{
return new npc_infused_crystalAI (_Creature);
diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp
index be8d4cfb0bf..4d30987836e 100644
--- a/src/game/Level1.cpp
+++ b/src/game/Level1.cpp
@@ -275,7 +275,7 @@ bool ChatHandler::HandleGMTicketListCommand(const char* args)
SendSysMessage(LANG_COMMAND_TICKETSHOWLIST);
for(GmTicketList::iterator itr = ticketmgr.GM_TicketList.begin(); itr != ticketmgr.GM_TicketList.end(); ++itr)
{
- if((*itr)->closed)
+ if((*itr)->closed == 1)
continue;
std::stringstream message;
@@ -298,7 +298,7 @@ bool ChatHandler::HandleGMTicketListOnlineCommand(const char* args)
SendSysMessage(LANG_COMMAND_TICKETSHOWONLINELIST);
for(GmTicketList::iterator itr = ticketmgr.GM_TicketList.begin(); itr != ticketmgr.GM_TicketList.end(); ++itr)
{
- if((*itr)->closed || !objmgr.GetPlayer((*itr)->playerGuid))
+ if((*itr)->closed == 1 || !objmgr.GetPlayer((*itr)->playerGuid))
continue;
std::stringstream message;
@@ -383,22 +383,22 @@ bool ChatHandler::HandleGMTicketCloseByIdCommand(const char* args)
uint64 tguid = atoi(args);
GM_Ticket *ticket = ticketmgr.GetGMTicket(tguid);
- if(!ticket || ticket->closed)
+ if(!ticket || ticket->closed == 1)
{
SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
+ return false;
}
- if(ticket && ticket->assignedToGM != m_session->GetPlayer()->GetGUID())
+ if(ticket && ticket->assignedToGM != 0 && ticket->assignedToGM != m_session->GetPlayer()->GetGUID())
{
PSendSysMessage(LANG_COMMAND_TICKETCANNOTCLOSE, ticket->guid);
-
+ return false;
}
- sWorld.SendGMText(LANG_COMMAND_TICKETCLOSED, ticket->name, ticket->guid);
+ sWorld.SendGMText(LANG_COMMAND_TICKETCLOSED, ticket->name.c_str(), ticket->guid);
ticketmgr.RemoveGMTicket(ticket->guid);
Player *plr = objmgr.GetPlayer(ticket->playerGuid);
if(!plr || !plr->IsInWorld())
- return true;
+ return false;
// send abandon ticket
WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
@@ -422,13 +422,13 @@ bool ChatHandler::HandleGMTicketAssignToCommand(const char* args)
std::string targm = targetgm;
if(!normalizePlayerName(targm))
- return false;
+ return true;
Player *cplr = m_session->GetPlayer();
std::string gmname;
GM_Ticket *ticket = ticketmgr.GetGMTicket(ticketGuid);
- if(!ticket || ticket->closed)
+ if(!ticket || ticket->closed == 1)
{
SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
return true;
@@ -506,7 +506,7 @@ bool ChatHandler::HandleGMTicketUnAssignCommand(const char* args)
bool ChatHandler::HandleGMTicketCommentCommand(const char* args)
{
- if(!args)
+ if(!*args)
return false;
char* tguid = strtok((char*)args, " ");
@@ -516,19 +516,17 @@ bool ChatHandler::HandleGMTicketCommentCommand(const char* args)
if(!comment)
return false;
- std::string gmname;
Player *cplr = m_session->GetPlayer();
GM_Ticket *ticket = ticketmgr.GetGMTicket(ticketGuid);
- if(!ticket || ticket->closed)
+ if(!ticket || ticket->closed == 1)
{
PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
return true;
}
- if(ticket->assignedToGM = 0 && ticket->assignedToGM != cplr->GetGUID())
+ if(ticket->assignedToGM != 0 && ticket->assignedToGM != cplr->GetGUID())
{
- gmname = objmgr.GetPlayer(ticket->assignedToGM)->GetName();
- PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->guid, gmname.c_str());
+ PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->guid);
return true;
}
@@ -552,10 +550,10 @@ bool ChatHandler::HandleGMTicketDeleteByIdCommand(const char* args)
if(!ticket)
{
- PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST, ticketGuid);
+ SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
return true;
}
- if(!ticket->closed)
+ if(!ticket->closed == 1)
{
SendSysMessage(LANG_COMMAND_TICKETCLOSEFIRST);
return true;
@@ -563,8 +561,8 @@ bool ChatHandler::HandleGMTicketDeleteByIdCommand(const char* args)
std::string gmname = m_session->GetPlayer()->GetName();
sWorld.SendGMText(LANG_COMMAND_TICKETDELETED, ticket->guid, gmname.c_str());
- ticketmgr.DeleteGMTicketPermanently(ticket->guid);
Player *plr = objmgr.GetPlayer(ticket->playerGuid);
+ ticketmgr.DeleteGMTicketPermanently(ticket->guid);
if(plr && plr->IsInWorld())
{
// Force abandon ticket
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index f0b20f5d880..ed8c38297b6 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -3742,7 +3742,7 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC
CharacterDatabase.PExecute("DELETE FROM character_reputation WHERE guid = '%u'",guid);
CharacterDatabase.PExecute("DELETE FROM character_spell WHERE guid = '%u'",guid);
CharacterDatabase.PExecute("DELETE FROM character_spell_cooldown WHERE guid = '%u'",guid);
- CharacterDatabase.PExecute("DELETE FROM gm_ticket WHERE playerGuid = '%u'", guid);
+ CharacterDatabase.PExecute("DELETE FROM gm_tickets WHERE playerGuid = '%u'", guid);
CharacterDatabase.PExecute("DELETE FROM item_instance WHERE owner_guid = '%u'",guid);
CharacterDatabase.PExecute("DELETE FROM character_social WHERE guid = '%u' OR friend='%u'",guid,guid);
CharacterDatabase.PExecute("DELETE FROM mail WHERE receiver = '%u'",guid);
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index a7096b818d1..5ff242537d0 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -1473,6 +1473,19 @@ void SpellMgr::LoadSpellChains()
{
mSpellChains.clear(); // need for reload case
+ std::vector<uint32> ChainedSpells;
+ for (uint32 ability_id=0;ability_id<sSkillLineAbilityStore.GetNumRows();ability_id++)
+ {
+ SkillLineAbilityEntry const *AbilityInfo=sSkillLineAbilityStore.LookupEntry(ability_id);
+ if (!AbilityInfo)
+ continue;
+ if (AbilityInfo->spellId==20154) //exception to these rules (not needed in 3.0.3)
+ continue;
+ if (!AbilityInfo->forward_spellid)
+ continue;
+ ChainedSpells.push_back(AbilityInfo->forward_spellid);
+ }
+
std::multimap<SpellRankEntry, SpellRankValue,SpellRankEntry> RankMap;
for (uint32 ability_id=0;ability_id<sSkillLineAbilityStore.GetNumRows();ability_id++)
@@ -1483,6 +1496,17 @@ void SpellMgr::LoadSpellChains()
//get only spell with lowest ability_id to prevent doubles
uint32 spell_id=AbilityInfo->spellId;
+ if (spell_id==20154) //exception to these rules (not needed in 3.0.3)
+ continue;
+ bool found=false;
+ for (uint32 i=0; i<ChainedSpells.size(); i++)
+ {
+ if (ChainedSpells.at(i)==spell_id)
+ found=true;
+ }
+ if (found)
+ continue;
+
if(mSkillLineAbilityMap.lower_bound(spell_id)->second->id!=ability_id)
continue;
SpellEntry const *SpellInfo=sSpellStore.LookupEntry(spell_id);
@@ -1491,6 +1515,9 @@ void SpellMgr::LoadSpellChains()
std::string sRank = SpellInfo->Rank[sWorld.GetDefaultDbcLocale()];
if(sRank.empty())
continue;
+ //exception to polymorph spells-make pig and turtle other chain than sheep
+ if ((SpellInfo->SpellFamilyName==SPELLFAMILY_MAGE) && (SpellInfo->SpellFamilyFlags & 0x1000000) && (SpellInfo->SpellIconID!=82))
+ continue;
SpellRankEntry entry;
SpellRankValue value;
@@ -1503,10 +1530,18 @@ void SpellMgr::LoadSpellChains()
entry.TargetAuraState=SpellInfo->TargetAuraState;
entry.SpellVisual=SpellInfo->SpellVisual[0];
entry.ManaCost=SpellInfo->manaCost;
-
- value.Id=spell_id;
- value.Rank=SpellInfo->Rank[sWorld.GetDefaultDbcLocale()];
- RankMap.insert(std::pair<SpellRankEntry, SpellRankValue>(entry,value));
+
+ for (;;)
+ {
+ AbilityInfo=mSkillLineAbilityMap.lower_bound(spell_id)->second;
+ value.Id=spell_id;
+ value.Rank=SpellInfo->Rank[sWorld.GetDefaultDbcLocale()];
+ RankMap.insert(std::pair<SpellRankEntry, SpellRankValue>(entry,value));
+ spell_id=AbilityInfo->forward_spellid;
+ SpellInfo=sSpellStore.LookupEntry(spell_id);
+ if (!SpellInfo)
+ break;
+ }
}
barGoLink bar(RankMap.size());
@@ -1531,17 +1566,13 @@ void SpellMgr::LoadSpellChains()
for (itr2 = RankErrorMap.lower_bound(err_entry);itr2!=RankErrorMap.upper_bound(err_entry);itr2++)
{
sLog.outDebug("There is a duplicate rank entry (%s) for spell: %u",itr2->first,itr2->second->second.Id);
- if (itr2->second->second.Id!=21084) //only one exception to these rules (not needed in 3.0.3)
- {
- sLog.outDebug("Spell %u removed from chain data.",itr2->second->second.Id);
- RankMap.erase(itr2->second);
- itr=RankMap.lower_bound(entry);
- }
+ sLog.outDebug("Spell %u removed from chain data.",itr2->second->second.Id);
+ RankMap.erase(itr2->second);
+ itr=RankMap.lower_bound(entry);
}
else
itr2++;
}
-
//do not proceed for spells with less than 2 ranks
uint32 spell_max_rank=RankMap.count(entry);
if (spell_max_rank<2)
@@ -1619,6 +1650,10 @@ void SpellMgr::LoadSpellChains()
}
}
+//uncomment these two lines to print yourself list of spell_chains on startup
+// for (UNORDERED_MAP<uint32, SpellChainNode>::iterator itr=mSpellChains.begin();itr!=mSpellChains.end();itr++)
+// sLog.outString( "Id: %u, Rank: %d , %s",itr->first,itr->second.rank, sSpellStore.LookupEntry(itr->first)->Rank[sWorld.GetDefaultDbcLocale()]);
+
sLog.outString();
sLog.outString( ">> Loaded %u spell chains",count);
}
@@ -2063,18 +2098,29 @@ void SpellMgr::LoadSpellCustomAttr()
break;
case 41376: // Spite
case 39992: // Needle Spine
+ case 29576: //Multi-Shot
+ case 40816: //Saber Lash
+ case 37790: //Spread Shot
spellInfo->MaxAffectedTargets = 3;
break;
+ case 38310: //Multi-Shot
+ spellInfo->MaxAffectedTargets = 4;
+ break;
case 42005: // Bloodboil
+ case 38296: //Spitfire Totem
+ case 37676: //Insidious Whisper
spellInfo->MaxAffectedTargets = 5;
break;
+ case 40827: //Sinful Beam
+ case 40859: //Sinister Beam
+ case 40860: //Vile Beam
+ case 40861: //Wicked Beam
+ spellInfo->MaxAffectedTargets = 10;
+ break;
case 8122: case 8124: case 10888: case 10890: // Psychic Scream
case 12494: // Frostbite
spellInfo->Attributes |= SPELL_ATTR_BREAKABLE_BY_DAMAGE;
break;
- //case 5530: // Mace spec (this will not be needed in 303
- // spellInfo->rangeIndex = 13; //inf
- // break;
default:
break;
}
diff --git a/src/game/TicketHandler.cpp b/src/game/TicketHandler.cpp
index 2a0fa4760b6..f3374332f79 100644
--- a/src/game/TicketHandler.cpp
+++ b/src/game/TicketHandler.cpp
@@ -60,7 +60,7 @@ void WorldSession::HandleGMTicketCreateOpcode( WorldPacket & recv_data )
ticket->playerGuid = GetPlayer()->GetGUID();
ticket->message = ticketText;
ticket->timestamp = time(NULL);
- ticket->closed = false;
+ ticket->closed = 0;
ticket->assignedToGM = 0;
ticket->comment = "";
@@ -128,16 +128,20 @@ void WorldSession::HandleGMTicketDeleteOpcode( WorldPacket & /*recv_data*/)
GM_Ticket* ticket = ticketmgr.GetGMTicketByPlayer(GetPlayer()->GetGUID());
- // Remove Tickets from Player
- ticketmgr.RemoveGMTicketByPlayer(GetPlayer()->GetGUID());
-
- // Response - no errors
- WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
- data << uint32(9);
- // Send Packet
- SendPacket(&data);
+ // CHeck for Ticket
+ if(ticket)
+ {
+ // Remove Tickets from Player
+
+ // Response - no errors
+ WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
+ data << uint32(9);
+ // Send Packet
+ SendPacket(&data);
- sWorld.SendGMText(LANG_COMMAND_TICKETPLAYERABANDON, GetPlayer()->GetName(), ticket->guid );
+ sWorld.SendGMText(LANG_COMMAND_TICKETPLAYERABANDON, GetPlayer()->GetName(), ticket->guid );
+ ticketmgr.RemoveGMTicketByPlayer(GetPlayer()->GetGUID());
+ }
}
void WorldSession::HandleGMTicketGetTicketOpcode( WorldPacket & /*recv_data*/)
@@ -164,7 +168,6 @@ void WorldSession::HandleGMTicketGetTicketOpcode( WorldPacket & /*recv_data*/)
SendPacket(&data);
-
}
void WorldSession::HandleGMTicketSystemStatusOpcode( WorldPacket & /*recv_data*/)
diff --git a/src/game/TicketMgr.cpp b/src/game/TicketMgr.cpp
index 212f9ff8059..0f1f7501e67 100644
--- a/src/game/TicketMgr.cpp
+++ b/src/game/TicketMgr.cpp
@@ -49,7 +49,7 @@ GM_Ticket* TicketMgr::GetGMTicketByPlayer(uint64 playerGuid)
{
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
{
- if((*i)->playerGuid == playerGuid && !(*i)->closed)
+ if((*i)->playerGuid == playerGuid && (*i)->closed == 0)
{
return (*i);
}
@@ -72,7 +72,7 @@ GM_Ticket* TicketMgr::GetGMTicketByName(const char* name)
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
{
- if((*i)->playerGuid == playerGuid && !(*i)->closed)
+ if((*i)->playerGuid == playerGuid && (*i)->closed == 0)
{
return (*i);
}
@@ -147,9 +147,9 @@ void TicketMgr::RemoveGMTicket(uint64 ticketGuid)
{
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
{
- if((*i)->guid == ticketGuid && !(*i)->closed)
+ if((*i)->guid == ticketGuid && (*i)->closed == 0)
{
- (*i)->closed = true;
+ (*i)->closed = 1;
SaveGMTicket((*i));
}
++i;
@@ -161,7 +161,7 @@ void TicketMgr::RemoveGMTicketByPlayer(uint64 playerGuid)
{
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
{
- if((*i)->playerGuid == playerGuid && !(*i)->closed)
+ if((*i)->playerGuid == playerGuid && (*i)->closed == 0)
{
(*i)->closed = true;
SaveGMTicket((*i));
diff --git a/src/game/TicketMgr.h b/src/game/TicketMgr.h
index 150ca4d2eff..e41be9db5c3 100644
--- a/src/game/TicketMgr.h
+++ b/src/game/TicketMgr.h
@@ -34,7 +34,7 @@ struct GM_Ticket
std::string name;
std::string message;
uint64 timestamp;
- bool closed;
+ uint16 closed;
uint64 assignedToGM;
std::string comment;
};
diff --git a/src/game/World.cpp b/src/game/World.cpp
index 5e7240817ff..028ec804ab4 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -489,7 +489,7 @@ void World::LoadConfigSettings(bool reload)
sLog.outError("Rate.Talent (%f) mustbe > 0. Using 1 instead.",rate_values[RATE_TALENT]);
rate_values[RATE_TALENT] = 1.0f;
}
- rate_values[RATE_CORPSE_DECAY_LOOTED] = sConfig.GetFloatDefault("Rate.Corpse.Decay.Looted",0.1f);
+ rate_values[RATE_CORPSE_DECAY_LOOTED] = sConfig.GetFloatDefault("Rate.Corpse.Decay.Looted",0.5f);
rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] = sConfig.GetFloatDefault("TargetPosRecalculateRange",1.5f);
if(rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] < CONTACT_DISTANCE)
@@ -902,7 +902,7 @@ void World::LoadConfigSettings(bool reload)
m_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP] = sConfig.GetBoolDefault("Death.CorpseReclaimDelay.PvP", true);
m_configs[CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE] = sConfig.GetBoolDefault("Death.CorpseReclaimDelay.PvE", true);
- m_configs[CONFIG_THREAT_RADIUS] = sConfig.GetIntDefault("ThreatRadius", 100);
+ m_configs[CONFIG_THREAT_RADIUS] = sConfig.GetIntDefault("ThreatRadius", 60);
// always use declined names in the russian client
m_configs[CONFIG_DECLINED_NAMES_USED] =