Вот вам живой пример, чтобы вы в будущем не имели ошибочного мнения.
Как видите подчинку заклинаний вы:
[spoiler=Кнопка "Подчинить спэл"]http://trueimages.ru/img/c1/6f/02821c55a891b3311c23a003b2e.jpg
Как выглядит подчинка спэла на самом деле и как вообще выглядит спэл на языке эмуляторов:
[spoiler=Заклинание мага "Ледяная стрела"]class spell_mage_frostbolt : public SpellScriptLoader
{
public:
spell_mage_frostbolt() : SpellScriptLoader("spell_mage_frostbolt") { }
class spell_mage_frostbolt_SpellScript : public SpellScript
{
PrepareSpellScript(spell_mage_frostbolt_SpellScript);
void RecalculateDamage(SpellEffIndex /*effIndex*/)
{
if (GetHitUnit() && GetHitUnit()->HasAuraState(AURA_STATE_FROZEN, GetSpellInfo(), GetCaster()))
{
if (AuraEffect* aurEff = GetCaster()->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_MAGE, ICON_MAGE_SHATTER, EFFECT_1))
{
int32 damage = GetHitDamage();
AddPct(damage, aurEff->GetAmount());
SetHitDamage(damage);
}
}
}
Это только заклинание, кусок кода в одном .cpp файле, а в здесь ещё объявлена группа хэдэров, куда функция будет обращаться.
Сам скрипт заклинания, спэлауры - ещё тонна кода. + обращение к базе данных, где выставлены значения, много значений.
А теперь задумайтесь в верности своих убеждений. Если вы полагали, что подчинить спэл - это, как два пальца... В данном случае попытаться - это уже действие.