mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 02:46:33 +01:00
[7666] For heroic mode creature use AIName from normal mode version in same way as done for ScriptName. Author: VladimirMangos
Also at creature templates loading check that AIName/ScriptName not set for heroic mode creature versions. --HG-- branch : trunk
This commit is contained in:
@@ -2237,12 +2237,17 @@ uint32 Creature::getLevelForTarget( Unit const* target ) const
|
||||
return level;
|
||||
}
|
||||
|
||||
std::string Creature::GetScriptName()
|
||||
std::string Creature::GetAIName() const
|
||||
{
|
||||
return ObjectMgr::GetCreatureTemplate(GetEntry())->AIName;
|
||||
}
|
||||
|
||||
std::string Creature::GetScriptName() const
|
||||
{
|
||||
return objmgr.GetScriptName(GetScriptId());
|
||||
}
|
||||
|
||||
uint32 Creature::GetScriptId()
|
||||
uint32 Creature::GetScriptId() const
|
||||
{
|
||||
return ObjectMgr::GetCreatureTemplate(GetEntry())->ScriptID;
|
||||
}
|
||||
|
||||
@@ -560,8 +560,9 @@ class TRINITY_DLL_SPEC Creature : public Unit
|
||||
CreatureInfo const *GetCreatureInfo() const { return m_creatureInfo; }
|
||||
CreatureDataAddon const* GetCreatureAddon() const;
|
||||
|
||||
std::string GetScriptName();
|
||||
uint32 GetScriptId();
|
||||
std::string GetAIName() const;
|
||||
std::string GetScriptName() const;
|
||||
uint32 GetScriptId() const;
|
||||
|
||||
void prepareGossipMenu( Player *pPlayer, uint32 gossipid = 0 );
|
||||
void sendPreparedGossip( Player* player );
|
||||
|
||||
@@ -47,11 +47,8 @@ namespace FactorySelector
|
||||
if(CreatureAI* scriptedAI = Script->GetAI(creature))
|
||||
return scriptedAI;
|
||||
|
||||
CreatureInfo const *cinfo = creature->GetCreatureInfo();
|
||||
assert(cinfo);
|
||||
|
||||
// this seems to be useless
|
||||
std::string ainame=cinfo->AIName;
|
||||
// AIname in db
|
||||
std::string ainame=creature->GetAIName();
|
||||
if(!ai_factory && !ainame.empty())
|
||||
ai_factory = ai_registry.GetRegistryItem( ainame.c_str() );
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
int CreatureEventAI::Permissible(const Creature *creature)
|
||||
{
|
||||
if( creature->GetCreatureInfo()->AIName == "EventAI" )
|
||||
if( creature->GetAIName() == "EventAI" )
|
||||
return PERMIT_BASE_SPECIAL;
|
||||
return PERMIT_BASE_NO;
|
||||
}
|
||||
|
||||
@@ -591,6 +591,18 @@ void ObjectMgr::LoadCreatureTemplates()
|
||||
continue;
|
||||
}
|
||||
|
||||
if(heroicInfo->AIName && *heroicInfo->AIName)
|
||||
{
|
||||
sLog.outErrorDb("Heroic mode creature (Entry: %u) has `AIName`, but in any case will used normal mode creature (Entry: %u) AIName.",cInfo->HeroicEntry,i);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(heroicInfo->ScriptID)
|
||||
{
|
||||
sLog.outErrorDb("Heroic mode creature (Entry: %u) has `ScriptName`, but in any case will used normal mode creature (Entry: %u) ScriptName.",cInfo->HeroicEntry,i);
|
||||
continue;
|
||||
}
|
||||
|
||||
hasHeroicEntries.insert(i);
|
||||
heroicEntries.insert(cInfo->HeroicEntry);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user