Unify Flag related commands. (#1290)

This commit is contained in:
brotalnia
2018-01-23 01:12:21 +02:00
committed by GitHub
parent 5fd3d2654c
commit b29a5a0730
5 changed files with 276 additions and 161 deletions
+20 -11
View File
@@ -237,6 +237,16 @@ void ScriptMgr::LoadScripts(ScriptMapMap& scripts, const char* tablename)
break;
}
case SCRIPT_COMMAND_INTERRUPT_CASTS:
{
if (tmp.interruptCasts.spellId && !sSpellMgr.GetSpellEntry(tmp.interruptCasts.spellId))
{
sLog.outErrorDb("Table `%s` using nonexistent spell (id: %u) in SCRIPT_COMMAND_INTERRUPT_CASTS for script id %u", tablename, tmp.interruptCasts.spellId, tmp.id);
continue;
}
break;
}
case SCRIPT_COMMAND_TELEPORT_TO:
{
if (!sMapStorage.LookupEntry<MapEntry>(tmp.teleportTo.mapId))
@@ -540,20 +550,14 @@ void ScriptMgr::LoadScripts(ScriptMapMap& scripts, const char* tablename)
{
break;
}
case SCRIPT_COMMAND_GO_LOCK_STATE:
case SCRIPT_COMMAND_UPDATE_ENTRY:
{
if (// lock(0x01) and unlock(0x02) together
((tmp.goLockState.lockState & SF_GOLOCKSTATE_LOCK) && (tmp.goLockState.lockState & SF_GOLOCKSTATE_UNLOCK)) ||
// non-interact (0x4) and interact (0x08) together
((tmp.goLockState.lockState & SF_GOLOCKSTATE_NO_INTERACT) && (tmp.goLockState.lockState & SF_GOLOCKSTATE_INTERACT)) ||
// no setting
!tmp.goLockState.lockState ||
// invalid number
tmp.goLockState.lockState >= SF_GOLOCKSTATE_MAX)
if (!ObjectMgr::GetCreatureTemplate(tmp.updateEntry.creatureEntry))
{
sLog.outErrorDb("Table `%s` has invalid lock state (datalong = %u) in SCRIPT_COMMAND_GO_LOCK_STATE for script id %u.", tablename, tmp.goLockState.lockState, tmp.id);
sLog.outErrorDb("Table `%s` has invalid creature (Entry: %u) in SCRIPT_COMMAND_UPDATE_ENTRY for script id %u", tablename, tmp.updateEntry.creatureEntry, tmp.id);
continue;
}
break;
}
case SCRIPT_COMMAND_STAND_STATE:
@@ -565,8 +569,13 @@ void ScriptMgr::LoadScripts(ScriptMapMap& scripts, const char* tablename)
}
break;
}
case SCRIPT_COMMAND_MODIFY_NPC_FLAGS:
case SCRIPT_COMMAND_MODIFY_THREAT:
{
if (tmp.modThreat.target >= SO_MODIFYTHREAT_MAX_TARGETS)
{
sLog.outErrorDb("Table `%s` has invalid target type (datalong = %u) in SCRIPT_COMMAND_MODIFY_THREAT for script id %u", tablename, tmp.modThreat.target, tmp.id);
continue;
}
break;
}
case SCRIPT_COMMAND_SEND_TAXI_PATH: