Hmm... so I choose the simpler way and just placed the ID in the duplicated codes. It actually worked, as now the spell has the name and description of a Fireball in-game (it was blank before) but weirdly enough, it still doesn't do damage and has no knockback or burning effect... The code looks like this:
case ABILITY_SPELL_FIREBALL:
{
float fDamage = (100.0f + GetCreatureSpellPower(stEvent.oCaster)) * FIREBALL_DAMAGE_FACTOR;
// damage over time
ApplyEffectDamageOverTime(oTarget, stEvent.oCaster, stEvent.nAbility, fDamage, FIREBALL_DURATION, DAMAGE_TYPE_FIRE);
// impact damage
eEffect = EffectDamage(fDamage, DAMAGE_TYPE_FIRE);
ApplyEffectOnObject(EFFECT_DURATION_TYPE_INSTANT, eEffect, oTarget, 0.0f, stEvent.oCaster, stEvent.nAbility);
// physical resistance
if (ResistanceCheck(stEvent.oCaster, oTarget, PROPERTY_ATTRIBUTE_SPELLPOWER, RESISTANCE_PHYSICAL) == FALSE)
{
// knockdown
eEffect = EffectKnockdown(oTarget, 0, stEvent.nAbility);
eEffect = SetEffectEngineInteger(eEffect, EFFECT_INTEGER_USE_INTERPOLATION_ANGLE, 2);
eEffect = SetEffectEngineVector(eEffect, EFFECT_VECTOR_ORIGIN, GetPositionFromLocation(stEvent.lTarget));
ApplyEffectOnObject(EFFECT_DURATION_TYPE_TEMPORARY, eEffect, oTarget, RandomFloat(), stEvent.oCaster, stEvent.nAbility);
}
break;
}
case 250000:
{
float fDamage = (100.0f + GetCreatureSpellPower(stEvent.oCaster)) * FIREBALL_DAMAGE_FACTOR;
// damage over time
ApplyEffectDamageOverTime(oTarget, stEvent.oCaster, stEvent.nAbility, fDamage, FIREBALL_DURATION, DAMAGE_TYPE_FIRE);
// impact damage
eEffect = EffectDamage(fDamage, DAMAGE_TYPE_FIRE);
ApplyEffectOnObject(EFFECT_DURATION_TYPE_INSTANT, eEffect, oTarget, 0.0f, stEvent.oCaster, stEvent.nAbility);
// physical resistance
if (ResistanceCheck(stEvent.oCaster, oTarget, PROPERTY_ATTRIBUTE_SPELLPOWER, RESISTANCE_PHYSICAL) == FALSE)
{
// knockdown
eEffect = EffectKnockdown(oTarget, 0, stEvent.nAbility);
eEffect = SetEffectEngineInteger(eEffect, EFFECT_INTEGER_USE_INTERPOLATION_ANGLE, 2);
eEffect = SetEffectEngineVector(eEffect, EFFECT_VECTOR_ORIGIN, GetPositionFromLocation(stEvent.lTarget));
ApplyEffectOnObject(EFFECT_DURATION_TYPE_TEMPORARY, eEffect, oTarget, RandomFloat(), stEvent.oCaster, stEvent.nAbility);
}
break;
}
// spell-specific special events
switch (stEvent.nAbility)
{
case ABILITY_SPELL_FIREBALL:
{
// ignite
SendComboEventAoE(COMBO_EVENT_IGNITE, SHAPE_SPHERE, stEvent.lTarget, stEvent.oCaster, fRadius);
break;
}
case 250000:
{
// ignite
SendComboEventAoE(COMBO_EVENT_IGNITE, SHAPE_SPHERE, stEvent.lTarget, stEvent.oCaster, fRadius);
break;
}
Am I missing something? My guess would be that I'm messing something with exporting? I used the option Tools / Export / Export with dependent resources...