这是一个中调试常用到的一个输出函数。。
首先建立一个npcdbc.log 的日志文件。然后扫描所有的技能ID。当技能ID里的属性满足一定的条件的情况下。把对应的NPC的ID输出到npcdbc.log中保存
这个是一个比较有用的函数。。你需要自己建立函数到你的mangos代码中。
ofstream myfile;
myfile.open ("npcdbc.log");
uint16 count = 0;
for (uint32 i = 1; i < 53086; ++i)
{
SpellEntry const* spellInfo = sSpellStore.LookupEntry(i);
if (spellInfo)
{
for (uint32 idx = 0; idx < 3; ++idx)
{
if (spellInfo->EffectApplyAuraName[idx] == SPELL_AURA_MOUNTED)// 相关骑乘的坐骑的之类的NPC的对应ID
{
myfile << spellInfo->EffectMiscValue[idx] << " ";
++count;
}
if (spellInfo->EffectApplyAuraName[idx] == SPELL_AURA_TRANSFORM) //相关的载具,等NPC的对应ID
{
myfile << spellInfo->EffectMiscValue[idx] << " ";
++count;
}
else if (spellInfo->Effect[idx] == SPELL_EFFECT_SUMMON) //技能对应的可召唤的NPC的ID
{
myfile << spellInfo->EffectMiscValue[idx] << " ";
++count;
}
}
}
}
PSendSysMessage("Found %u npc's in spell.dbc", count);
myfile.close();
对应这些。。就可以找到相关的技能ID和对应的NPC 的ID
这篇文章,也相当于对DBC的结构有一个参考了解了!
谢谢收看~~~