Core/Spawning: Actually check spawn group state before processing a respawn. It feels like that is something that should've been noticed at some point.
Port From (https://github.com/TrinityCore/TrinityCore/commit/5c80f5073493a3d31fd4b463891727beb6fe7eb1)
This commit is contained in:
@@ -681,44 +681,6 @@ namespace Game.Scripting
|
||||
return RunScriptRet<ItemScript>(tmpscript => tmpscript.OnCastItemCombatSpell(player, victim, spellInfo, item), item.GetScriptId());
|
||||
}
|
||||
|
||||
//CreatureScript
|
||||
public bool CanSpawn(ulong spawnId, uint entry, CreatureData cData, Map map)
|
||||
{
|
||||
Cypher.Assert(map != null);
|
||||
|
||||
CreatureTemplate baseTemplate = Global.ObjectMgr.GetCreatureTemplate(entry);
|
||||
Cypher.Assert(baseTemplate != null);
|
||||
|
||||
// find out which template we'd be using
|
||||
CreatureTemplate actTemplate = null;
|
||||
DifficultyRecord difficultyEntry = CliDB.DifficultyStorage.LookupByKey(map.GetDifficultyID());
|
||||
while (actTemplate == null && difficultyEntry != null)
|
||||
{
|
||||
int idx = CreatureTemplate.DifficultyIDToDifficultyEntryIndex(difficultyEntry.Id);
|
||||
if (idx == -1)
|
||||
break;
|
||||
|
||||
if (baseTemplate.DifficultyEntry[idx] != 0)
|
||||
{
|
||||
actTemplate = Global.ObjectMgr.GetCreatureTemplate(baseTemplate.DifficultyEntry[idx]);
|
||||
break;
|
||||
}
|
||||
|
||||
if (difficultyEntry.FallbackDifficultyID == 0)
|
||||
break;
|
||||
|
||||
difficultyEntry = CliDB.DifficultyStorage.LookupByKey(difficultyEntry.FallbackDifficultyID);
|
||||
}
|
||||
|
||||
if (actTemplate == null)
|
||||
actTemplate = baseTemplate;
|
||||
|
||||
uint scriptId = baseTemplate.ScriptID;
|
||||
if (cData != null && cData.ScriptId != 0)
|
||||
scriptId = cData.ScriptId;
|
||||
|
||||
return RunScriptRet<CreatureScript, bool>(p => p.CanSpawn(spawnId, entry, baseTemplate, actTemplate, cData, map), scriptId, true);
|
||||
}
|
||||
public CreatureAI GetCreatureAI(Creature creature)
|
||||
{
|
||||
Cypher.Assert(creature != null);
|
||||
|
||||
Reference in New Issue
Block a user