ShadowDragyn Posted March 25, 2010 Share Posted March 25, 2010 I posted this on the official forums, but I'm not getting any help so I'll try here as well.This error is game-breaking, and I can't work on my mod at all until I get this fixed.Here are the posts I made there:1)I was editing a mod of mine today, and out of nowhere this specific script started showing this error I've never seen before every time I tried to save/compile it.E: 21:23:59 - spell_constants_h.nss - spell_constants_h.nss(2): Function definition missing name (while compiling spell_modal_arcarts.nss)I have a copy of an existing script, spell_modal_arcarts, pointing to another copied script, spell_constants_h_arcarts.Without changing anything huge inside spell_modal it suddenly just started giving that message every time I try to compile it, preventing the file from exporting properly.If I change spell_modal to point to the non-copied spell_constants theerror goes away.I revert spell_modal back to it's old code, and the error remains. I change spell_constants to look exactly like the original, and the error remains.I've even tried going into the file histories and reverting the twoscripts to where they were a couple days ago. Error is still there.But I point spell_modal directly to the original and it miraculously dissappears. I've tried creating a new copy of spell_constants and it does the same thing!If I don't point the scipt to my copy of spell_constants it won't work right, and I shouldn't have to do that anyway. Is my toolset just spontaneously corrupted now? Do I have to re-install the toolset and recreate my mod?2)This is maddening. I completely uninstalled and reinstalled the toolset, then recreated the scripts from exported .nss files and the problem is still there.I've narrowed it down though; when I delete the line "#include "ability_summon_h"" (something that has always been there), it goes away. That creates other errors though.Another confusing thing is that the error remains even if I delete every piece of code inside thespell_modal script past the #Include "ability_summons_h".And to the obvious question, no, I did not alter any script with that name. Even if I had, it would have reverted when I reinstalled the whole freaking toolset. The (2) line the error refers to looks like this;const resource SCRIPT_SPELL_AOE_DURATION = R"spell_aoe_duration.ncs";That's from the spell_constants script. That's what it says it's from in the error, and even if it were in spell_modal the second line in that is blocked out so it won't be read.But if I empty out spell_constants so it's completely blank, it still says it found an error on line 2! Any help? Seriously, this will drive me insane.I've completely uninstalled the toolset, reinstalled it, copied back in the old scripts from a 100% stable version of my mod that did not have this issue, and still this exact script while referencing that exact other one causes this issue. I tried renaming spell_constants, and the error remained.I tried giving back it's old name and deleting all information from spell_constants again so it was totally blank, and the error remained.I tried making it blank again while giving it a new name, and the error dissappears.I try putting it's information back in, and I get the error back.I try clearing the information back out (so it's in the exact state it was before, blank with a different name), and somehow the error remains!!If I were to delete "ability"summon_h" I imagine the only real issue would be with Animate Dead's code, but I don't change that spell and don't plan to either, so I could just remove that entirely as well. But I still get this other illogical error saying the line"object oItem = UT_AddItemToInventory(R"aw_hand_arcanearts.uti", 1, OBJECT_INVALID, "", TRUE, FALSE);"has a "parsing variable list" error. Yet another line that had in the past worked perfectly fine. You can't fix what isn't broken. For the hell of it, here are the two scripts in question:Spell_modal_arcarts// ----------------------------------------------------------------------------- // spell_modalsingletarget.nss // ----------------------------------------------------------------------------- /* Generic Ability Script for modal single target abilities */ // ----------------------------------------------------------------------------- // PeterT // ----------------------------------------------------------------------------- #include "log_h" #include "abi_templates" #include "spell_constants_h_arcarts" #include "talent_constants_h" #include "ability_summon_h" #include "plt_tut_modal" #include "plt_cod_aow_spellcombo7" // add effects void _ActivateModalAbility(struct EventSpellScriptImpactStruct stEvent) { // effects effect[] eEffects; int bPartywide = FALSE; int bEffectValid = TRUE; if(IsFollower(stEvent.oCaster)) { WR_SetPlotFlag(PLT_TUT_MODAL, TUT_MODAL_1, TRUE); } if (IsObjectValid(stEvent.oTarget) == TRUE) { stEvent.lTarget = GetLocation(stEvent.oTarget); } // ------------------------------------------------------------------------- // Handle Spells // ------------------------------------------------------------------------- switch (stEvent.nAbility) { case ABILITY_SPELL_COMBAT_MAGIC: { int nHasHand = CountItemsByTag(stEvent.oCaster, "aw_hand_arcanearts.uti"); if (nHasHand == 0) { object oItem = UT_AddItemToInventory(R"aw_hand_arcanearts.uti", 1, OBJECT_INVALID, "", TRUE, FALSE); SetItemIndestructible(oItem, TRUE); SetItemIrremovable(oItem, TRUE); EquipItem(stEvent.oCaster, oItem); } eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_ATTACK, COMBAT_MAGIC_ATTACK_BONUS + MaxF(GetCreatureSpellPower(stEvent.oCaster)/5.0,0.0) ); eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(stEvent.nAbility)); // mana degeneration eEffects[1] = EffectModifyProperty(PROPERTY_ATTRIBUTE_REGENERATION_STAMINA_COMBAT, SHIMMERING_SHIELD_MANA_REGENERATION_PENALTY); // Mana Sheathe effects if (HasAbility(stEvent.oCaster, ABILITY_SPELL_AURA_OF_MIGHT) == TRUE) { float fPower = MaxF(1.0,MinF((GetCreatureSpellPower(stEvent.oCaster) / 7.5f), 10.0f)); eEffects[0] = EffectEnchantment(10022, FloatToInt(fPower)); eEffects[1] = EffectModifyProperty(PROPERTY_ATTRIBUTE_ATTACK_SPEED_MODIFIER, -0.15f); // eEffects[2] = SetEffectEngineInteger(eEffects[2], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(ABILITY_SPELL_AURA_OF_MIGHT)); } // Ethereal Armor effects if (HasAbility(stEvent.oCaster, ABILITY_SPELL_SHIMMERING_SHIELD) == TRUE) { // armor eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_ARMOR, SHIMMERING_SHIELD_ARMOR_BONUS); eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(stEvent.nAbility)); eEffects[1] = EffectModifyProperty(PROPERTY_ATTRIBUTE_RESISTANCE_MENTAL, SHIMMERING_SHIELD_MENTAL_RESISTANCE_BONUS, PROPERTY_ATTRIBUTE_RESISTANCE_PHYSICAL, SHIMMERING_SHIELD_PHYSICAL_RESISTANCE_BONUS); eEffects[2] = EffectModifyProperty(PROPERTY_ATTRIBUTE_DAMAGE_RESISTANCE_COLD, SHIMMERING_SHIELD_COLD_RESISTANCE_BONUS, PROPERTY_ATTRIBUTE_DAMAGE_RESISTANCE_ELEC, SHIMMERING_SHIELD_ELECTRICITY_RESISTANCE_BONUS); eEffects[3] = EffectModifyProperty(PROPERTY_ATTRIBUTE_DAMAGE_RESISTANCE_FIRE, SHIMMERING_SHIELD_FIRE_RESISTANCE_BONUS, PROPERTY_ATTRIBUTE_DAMAGE_RESISTANCE_NATURE, SHIMMERING_SHIELD_NATURE_RESISTANCE_BONUS); eEffects[4] = EffectModifyProperty(PROPERTY_ATTRIBUTE_DAMAGE_RESISTANCE_SPIRIT, SHIMMERING_SHIELD_SPIRIT_RESISTANCE_BONUS); } // Fade Shroud effects if (HasAbility(stEvent.oCaster, ABILITY_SPELL_FADE_SHROUD) == TRUE) { eEffects[3] = EffectModifyProperty(PROPERTY_ATTRIBUTE_REGENERATION_STAMINA, FADE_SHROUD_COMBAT_MAGIC_MANA_REGENERATION_BONUS, PROPERTY_ATTRIBUTE_REGENERATION_STAMINA_COMBAT, FADE_SHROUD_COMBAT_MAGIC_MANA_REGENERATION_BONUS); eEffects[3] = SetEffectEngineInteger(eEffects[3], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(ABILITY_SPELL_FADE_SHROUD)); eEffects[4] = EffectModifyProperty(PROPERTY_ATTRIBUTE_DISPLACEMENT, FADE_SHROUD_COMBAT_MAGIC_DISPLACEMENT_BONUS); } break; } case ABILITY_SPELL_BLOOD_MAGIC: { eEffects[0] = EffectVisualEffect(Ability_GetImpactObjectVfxId(stEvent.nAbility)); break; } case ABILITY_SPELL_SPELL_WISP: { float fSpellpower = (100.0f + GetCreatureSpellPower(stEvent.oCaster)) * SPELL_WISP_SPELLPOWER_FACTOR; eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_SPELLPOWER, fSpellpower); eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(stEvent.nAbility)); eEffects[1] = EffectModifyProperty(PROPERTY_ATTRIBUTE_REGENERATION_STAMINA, SPELL_WISP_MANA_REGENERATION_PENALTY, PROPERTY_ATTRIBUTE_REGENERATION_STAMINA_COMBAT, SPELL_WISP_MANA_REGENERATION_PENALTY); break; } case ABILITY_SPELL_FLAMING_WEAPONS: { // determine power float fPower = MaxF(1.0,MinF((GetCreatureSpellPower(stEvent.oCaster) / 7.5f), 10.0f)); eEffects[0] = EffectEnchantment(ENCHANTMENT_FIRE, FloatToInt(fPower)); bPartywide = TRUE; break; } case ABILITY_TALENT_CRY_OF_VALOR: { float fStamina = SONG_OF_VALOR_STAMINA_REGENERATION_BONUS + (GetAttributeModifier(stEvent.oCaster, PROPERTY_ATTRIBUTE_INTELLIGENCE) * SONG_OF_VALOR_ATTRIBUTE_FACTOR); eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_REGENERATION_STAMINA_COMBAT, fStamina, PROPERTY_ATTRIBUTE_REGENERATION_STAMINA, fStamina * SONG_OF_VALOR_EXPLORE_FACTOR); eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(stEvent.nAbility)); bPartywide = TRUE; PlaySoundSet(stEvent.oCaster, SS_WARCRY, 1.0f); break; } case ABILITY_TALENT_DEMORALIZE: { float fCritical = SONG_OF_COURAGE_CRITICAL_BASE + (GetAttributeModifier(stEvent.oCaster, PROPERTY_ATTRIBUTE_INTELLIGENCE) * SONG_OF_COURAGE_CRITICAL_FACTOR); float fAttack = SONG_OF_COURAGE_ATTACK_BASE + (GetAttributeModifier(stEvent.oCaster, PROPERTY_ATTRIBUTE_INTELLIGENCE) * SONG_OF_COURAGE_ATTACK_FACTOR); float fDamage = SONG_OF_COURAGE_DAMAGE_BASE + (GetAttributeModifier(stEvent.oCaster, PROPERTY_ATTRIBUTE_INTELLIGENCE) * SONG_OF_COURAGE_DAMAGE_FACTOR); eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_MELEE_CRIT_MODIFIER, fCritical, PROPERTY_ATTRIBUTE_RANGED_CRIT_MODIFIER, fCritical); eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(stEvent.nAbility)); eEffects[1] = EffectModifyProperty(PROPERTY_ATTRIBUTE_ATTACK, fAttack, PROPERTY_ATTRIBUTE_DAMAGE_BONUS, fDamage); bPartywide = TRUE; PlaySoundSet(stEvent.oCaster, SS_WARCRY, 1.0f); break; } case ABILITY_SPELL_WALL_OF_STONE: { float fStrength = (100.0f + GetCreatureSpellPower(stEvent.oCaster)) * ROCK_ARMOR_BONUS_FACTOR; eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_ARMOR, fStrength); eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(stEvent.nAbility)); break; } case ABILITY_SPELL_FROSTWALL: { // determine power float fPower = MaxF(1.0,MinF((GetCreatureSpellPower(stEvent.oCaster) / 7.5f), 10.0f)); eEffects[0] = EffectEnchantment(ENCHANTMENT_COLD, FloatToInt(fPower)); bPartywide = TRUE; break; } case ABILITY_SPELL_MIND_FOCUS: { // determine power float fPower = MaxF(1.0,MinF((GetCreatureSpellPower(stEvent.oCaster) / 7.0f), 12.5f)); eEffects[0] = EffectEnchantment(ENCHANTMENT_TELEK, FloatToInt(fPower)); bPartywide = TRUE; break; } case ABILITY_SPELL_SPELL_MIGHT: { float fSpellpower = (GetCreatureSpellPower(stEvent.oCaster)) * SPELL_MIGHT_SPELLPOWER_FACTOR; eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_SPELLPOWER, fSpellpower); eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(stEvent.nAbility)); break; } case ABILITY_SPELL_ANIMATE_DEAD: { object oSummon = Summon_ActivateModalAbility(stEvent.oCaster, stEvent.nAbility); if (IsObjectValid(oSummon) == TRUE) { eEffects[0] = EffectSummon(stEvent.oCaster, oSummon); ApplyEffectOnObject(EFFECT_DURATION_TYPE_PERMANENT, eEffects[0], oSummon, 0.0f, stEvent.oCaster, stEvent.nAbility); // spell combo - improved reanimation if (IsModalAbilityActive(stEvent.oCaster, ABILITY_SPELL_SPELL_MIGHT) == TRUE) { if (IsFollower(stEvent.oCaster) == TRUE) { WR_SetPlotFlag(PLT_COD_AOW_SPELLCOMBO7, COD_AOW_SPELLCOMBO_7_IMPROVED_REANIMATION, TRUE); } } } else { bEffectValid = FALSE; } break; } case ABILITY_SPELL_SPELL_SHIELD: { eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_SPELLRESISTANCE, SPELL_SHIELD_SPELL_RESISTANCE); eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, Ability_GetImpactObjectVfxId(stEvent.nAbility)); break; } case ABILITY_SPELL_ARCANE_SHIELD: { float fDefense = (100.0f + GetCreatureSpellPower(stEvent.oCaster)) * ARCANE_SHIELD_DEFENSE_FACTOR; eEffects[0] = EffectModifyProperty(PROPERTY_ATTRIBUTE_DEFENSE, fDefense); int nVFX = Ability_GetImpactObjectVfxId(stEvent.nAbility); // GXA Override if (HasAbility(stEvent.oCaster, 400100) == TRUE) // GXA Fade Shield { eEffects[1] = EffectModifyProperty(PROPERTY_ATTRIBUTE_DISPLACEMENT, 15.0f, PROPERTY_ATTRIBUTE_SPELLRESISTANCE, 15.0f); nVFX = Ability_GetImpactObjectVfxId(400100); } // GXA Override eEffects[0] = SetEffectEngineInteger(eEffects[0], EFFECT_INTEGER_VFX, nVFX); break; } } if (bEffectValid == TRUE) { Log_Trace_Spell("_ActivateModalAbility", "Activating modal ability.", stEvent.nAbility, OBJECT_INVALID); Ability_ApplyUpkeepEffects(stEvent.oCaster, stEvent.nAbility, eEffects, stEvent.oTarget, bPartywide); Log_Trace_Spell("_ActivateModalAbility", "Modal ability activated.", stEvent.nAbility, OBJECT_INVALID); } else { Log_Trace_Spell("_ActivateModalAbility", "Invalid Effect. We are not activating modal ability.", stEvent.nAbility, OBJECT_INVALID); } } // remove effects void _DeactivateModalAbility(object oCaster, int nAbility) { Log_Trace_Spell("_DeactivateModalAbility", "Deactivate modal ability.", nAbility, OBJECT_INVALID); // remove effects if (nAbility == ABILITY_SPELL_COMBAT_MAGIC) { UT_RemoveItemFromInventory(R"aw_hand_arcanearts.uti"); } Effects_RemoveUpkeepEffect(oCaster, nAbility); } void main() { event ev = GetCurrentEvent(); int nEventType = GetEventType(ev); switch(nEventType) { case EVENT_TYPE_SPELLSCRIPT_PENDING: { // hand through Ability_SetSpellscriptPendingEventResult(COMMAND_RESULT_SUCCESS); break; } case EVENT_TYPE_SPELLSCRIPT_CAST: { // Get a structure with the event parameters struct EventSpellScriptCastStruct stEvent = Events_GetEventSpellScriptCastParameters(ev); switch (stEvent.nAbility) { case ABILITY_SPELL_ANIMATE_DEAD: { Summon_EventSpellscriptCast(stEvent.oCaster, stEvent.nAbility); break; } } // we just hand this through to cast_impact SetAbilityResult(stEvent.oCaster, stEvent.nResistanceCheckResult); break; } case EVENT_TYPE_SPELLSCRIPT_IMPACT: { // Get a structure with the event parameters struct EventSpellScriptImpactStruct stEvent = Events_GetEventSpellScriptImpactParameters(ev); Log_Trace(LOG_CHANNEL_COMBAT_ABILITY, GetCurrentScriptName() + ".EVENT_TYPE_SPELLSCRIPT_IMPACT",Log_GetAbilityNameById(stEvent.nAbility)); // Remove any previously existing effects from same spellid to avoid stacking Ability_PreventAbilityEffectStacking(stEvent.oTarget, stEvent.oCaster, stEvent.nAbility); // activate ability _ActivateModalAbility(stEvent); break; } case EVENT_TYPE_SPELLSCRIPT_DEACTIVATE: { // Get a structure with the event parameters struct EventSpellScriptDeactivateStruct stEvent = Events_GetEventSpellScriptDeactivateParameters(ev); // is ability active? if (IsModalAbilityActive(stEvent.oCaster, stEvent.nAbility) == TRUE) { _DeactivateModalAbility(stEvent.oCaster, stEvent.nAbility); } // Setting Return Value (abort means we aborted the ability) Ability_SetSpellscriptPendingEventResult(COMMAND_RESULT_INVALID); break; } } } Spell_constants_h_arcarts// constants for spells const resource SCRIPT_SPELL_AOE_DURATION = R"spell_aoe_duration.ncs"; const float SHATTER_SPECIAL_CHANCE = 0.25f; // Arcane Warrior // Combat Magic // Combat Magic - M2 const float COMBAT_MAGIC_ATTACK_BONUS = 5.0f; // Aura of Might - P5 const float AURA_OF_MAGIC_COMBAT_MAGIC_ATTACK_BONUS = 5.0f; const float AURA_OF_MAGIC_COMBAT_MAGIC_DEFENSE_BONUS = 10.0f; const float AURA_OF_MAGIC_COMBAT_MAGIC_DAMAGE_BONUS = 5.0f; // Shimmering Shield - M2 const float SHIMMERING_SHIELD_ARMOR_BONUS = 10.0f; const float SHIMMERING_SHIELD_FIRE_RESISTANCE_BONUS = 10.0f; const float SHIMMERING_SHIELD_COLD_RESISTANCE_BONUS = 10.0f; const float SHIMMERING_SHIELD_ELECTRICITY_RESISTANCE_BONUS = 10.0f; const float SHIMMERING_SHIELD_NATURE_RESISTANCE_BONUS = 10.0f; const float SHIMMERING_SHIELD_SPIRIT_RESISTANCE_BONUS = 10.0f; const float SHIMMERING_SHIELD_PHYSICAL_RESISTANCE_BONUS = 10.0f; const float SHIMMERING_SHIELD_MENTAL_RESISTANCE_BONUS = 10.0f; const float SHIMMERING_SHIELD_MANA_REGENERATION_PENALTY = -4.0f; // Fade Shroud - P2 const float FADE_SHROUD_COMBAT_MAGIC_MANA_REGENERATION_BONUS = 2.0f; const float FADE_SHROUD_COMBAT_MAGIC_DISPLACEMENT_BONUS = 20.0f; const float FADE_SHROUD_COMBAT_MAGIC_TRANSPARENCY = 0.5f; // Blood Mage // Blood Magic // Blood Magic - M4 const float BLOOD_MAGIC_MANA_REGENERATION_PENALTY = -1000.0f; // Blood Sacrifice - S4 const float BLOOD_SACRIFICE_MAX_HEALTH = 50.0f; const int BLOOD_SACRIFICE_CASTER_VFX = 90074; // Blood Wound - A4 const float BLOOD_WOUND_DAMAGE_FACTOR = 0.6f; const float BLOOD_WOUND_DAMAGE_DURATION = 10.0f; const float BLOOD_WOUND_PARALYSIS_DURATION = 10.0f; // Blood Control - S2 const float BLOOD_CONTROL_DURATION = 20.0f; const float BLOOD_CONTROL_DAMAGE_FACTOR = 1.0f; // Shapeshifter // Shapeshifting // Bear Shape - M2 const float BEAR_SHAPE_MANA_REGENERATION_PENALTY = -5.0f; const int BEAR_SHAPE_TRANSFORM_START_VFX = 90285; const int BEAR_SHAPE_TRANSFORM_END_VFX = 90285; // Spider Shape - M2 const float SPIDER_SHAPE_MANA_REGENERATION_PENALTY = -5.0f; const int SPIDER_SHAPE_TRANSFORM_START_VFX = 90285; const int SPIDER_SHAPE_TRANSFORM_END_VFX = 90285; // Flying Swarm - M2 const float FLYING_SWARM_MANA_REGENERATION_PENALTY = -5.0f; const int FLYING_SWARM_VFX = 90082; const int FLYING_SWARM_TRANSFORM_START_VFX = 90285; const int FLYING_SWARM_TRANSFORM_END_VFX = 90285; // Shapeshifter - PI2 const float SHAPESHIFTER_BEAR_SHAPE_MANA_REGENERATION_BONUS = 3.0f; const float SHAPESHIFTER_SPIDER_SHAPE_MANA_REGENERATION_BONUS = 3.0f; const float SHAPESHIFTER_FLYING_SWARM_MANA_REGENERATION_BONUS = 3.0f; // Spirithealer // Advanced Healing // Support the Weak - S4 const float SUPPORT_THE_WEAK_HEALING_FACTOR = 0.5f; // Revival - A4 const float REVIVAL_HEALING_FACTOR = 0.3f; // Lifeward - SH2 const float LIFEWARD_HEALING_FACTOR = 0.3f; const float LIFEWARD_DURATION = 60.0f; const int LIFEWARD_HEAL_VFX = 90087; // Cleansing Aura - M4 const int CLEANSING_AURA_AOE = 220; const float CLEANSING_AURA_PULSE_INTERVAL = 3.0f; const float CLEANSING_AURA_PULSE_INNER_RADIUS = 5.0f; const float CLEANSING_AURA_PULSE_HEALING_FACTOR = 0.2f; const float CLEANSING_AURA_MANA_REGENERATION_PENALTY = -10.0f; const int CLEANSING_AURA_AOE_VFX = 90121; // Creation // Healing // Heal - S4 const float HEAL_HEALTH_FRACTION = 0.5f; // Rejuv - S4 const float REJUVINATION_REGEN_FACTOR = 1.25f; const float REJUVINATION_DURATION = 10.0f; // Mass Rejuv const float MASS_REJUVINATION_DURATION = 5.0f; const float MASS_REJUVINATION_REGEN_FACTOR = 2.5f; // Regeneration - S4 const float REGENERATION_HEALING_FACTOR = 1.0f; const float REGENERATION_DURATION = 10.0f; // Purify - S4 const float PURIFY_HEALING_FACTOR = 0.5f; // Nature // Spell Wisp - M4 const float SPELL_WISP_SPELLPOWER_FACTOR = 0.1f; const float SPELL_WISP_MANA_REGENERATION_PENALTY = -3.0f; // Grease - U4 const int GREASE_AOE = 203; const float GREASE_DURATION = 20.0f; const float GREASE_INTERVAL_DURATION = 1.5f; const int GREASE_AOE_VFX = 90096; // Spellbloom - D4 const int SPELLBLOOM_AOE = 215; const float SPELLBLOOM_MANA_REGENERATION_BONUS = 5.0f; const float SPELLBLOOM_DURATION = 20.0f; const int SPELLBLOOM_AOE_VFX = 90098; // Stinging Swarm - S const float STINGING_SWARM_DAMAGE_FACTOR = 1.0f; const float STINGING_SWARM_DURATION = 10.0f; const float STINGING_SWARM_JUMP_THRESHOLD = 10.0f; // Glyphs // Glyph of Paralysis - S4 const int GLYPH_OF_PARALYSIS_TRAP = 301; const int GLYPH_OF_PARALYSIS_MAX_NUMBER = 5; const float GLYPH_OF_PARALYSIS_DURATION = 20.0f; const int GLYPH_OF_PARALYSIS_AOE_VFX = 90101; const string GLYPH_OF_PARALYSIS_TAG = "genip_trap_glyph"; // Glyph of Warding - D2 const int GLYPH_OF_WARDING_AOE = 230; const float GLYPH_OF_WARDING_DURATION = 20.0f; const float GLYPH_OF_WARDING_DEFENSE_BONUS = 30.0f; const float GLYPH_OF_WARDING_MENTAL_RESISTANCE_BONUS = 50.0f; const float GLYPH_OF_WARDING_MISSILE_SHIELD_BONUS = 30.0f; const int GLYPH_OF_WARDING_AOE_VFX = 90103; const string GLYPH_OF_WARDING_TAG = "AOE_GLYPH_OF_WARDING"; // Glyph of Repulsion - D4 const int GLYPH_OF_REPULSION_AOE = 231; const float GLYPH_OF_REPULSION_DURATION = 20.0f; const float GLYPH_OF_REPULSION_SPEED_PENALTY = 0.6f; const int GLYPH_OF_REPULSION_AOE_VFX = 90105; const string GLYPH_OF_REPULSION_TAG = "AOE_GLYPH_OF_REPULSION"; // Glyph of Neutralization - D2 const int GLYPH_OF_NEUTRALIZATION_AOE = 232; const float GLYPH_OF_NEUTRALIZATION_DURATION = 20.0f; const float GLYPH_OF_NEUTRALIZATION_MANA_REGENERATION_PENALTY = -25.0f; const int GLYPH_OF_NEUTRALIZATION_AOE_VFX = 90107; // Heroism // Heroic Offense - S4 const float HEROIC_OFFENSE_ATTACK_FACTOR = 0.125f; const float HEROIC_OFFENSE_DURATION = 20.0f; // Heroic Aura - S2 const float HEROIC_AURA_DURATION = 20.0f; const float HEROIC_AURA_MISSILE_SHIELD_BONUS = 30.0f; // Heroic Defense - S4 const float HEROIC_DEFENSE_DEFENSE_FACTOR = 0.1f; const float HEROIC_DEFENSE_DURATION = 20.0f; const float HEROIC_DEFENSE_RESISTANCE_FACTOR = 0.2f; const float HEROIC_DEFENSE_ABILITY_COST_PENALTY = 5.0f; // Haste - SH2 const float HASTE_MOVEMENT_SPEED_MODIFIER = 1.3f; const float HASTE_ANIMATION_SPEED_MODIFIER = -0.25f; const float HASTE_AIM_SPEED_MODIFIER = -0.25f; const float HASTE_MANA_REGENERATION_PENALTY = -10.0f; // Entropy // Mental Contamination // Weakness - S4 const float WEAKNESS_ATTACK_PENALTY = -10.0f; const float WEAKNESS_DEFENSE_PENALTY = -10.0f; const float WEAKNESS_SPEED_PENALTY = 0.6f; const float WEAKNESS_DURATION = 20.0f; // Horror - S2 const float HORROR_DAMAGE_FACTOR = 1.0f; const float HORROR_DURATION = 10.0f; const int HORROR_NIGHTMARE_VFX = 90299; // Sleep - A4 const float SLEEP_DURATION = 12.0f; // Waking Nightmare - A2 const float WAKING_NIGHTMARE_DURATION = 20.0f; // Entropic Mortality // Drain Life - S4 const float DRAIN_LIFE_DAMAGE_FACTOR = 0.3f; const int DRAIN_LIFE_CASTER_VFX = 90120; // Death Magic - MD2 const int DEATH_MAGIC_AOE = 221; const float DEATH_MAGIC_HEALTH_FACTOR = 0.2f; const int DEATH_MAGIC_AOE_VFX = 90121; const int DEATH_MAGIC_CASTER_VFX = 90123; const float DEATH_MAGIC_INTERVAL = 2.0f; // Curse of Mortality - SH2 const float CURSE_OF_MORTALITY_DURATION = 10.0f; const float CURSE_OF_MORTALITY_HEALTH_REGENERATION_PENALTY = -1000.0f; const float CURSE_OF_MORTALITY_DAMAGE_FACTOR = 0.5f; // Death Cloud - D4 const int DEATH_CLOUD_AOE = 214; const float DEATH_CLOUD_DURATION = 30.0f; const float DEATH_CLOUD_INTERVAL = 2.0f; const float DEATH_CLOUD_DAMAGE_FACTOR = 0.15f; const int DEATH_CLOUD_AOE_VFX = 90125; const float DEATH_CLOUD_DEATH_HEX_DAMAGE_FACTOR = 2.0f; // Chains of Entropy // Daze - S4 const float DAZE_DURATION = 20.0f; // Paralyze - S4 const float PARALYZE_DURATION = 15.0f; const float PARALYZE_SPEED_PENALTY = 0.8f; // Miasma - MD4 const int MIASMA_AOE = 216; const float MIASMA_ATTACK_PENALTY = -10.0f; const float MIASMA_DEFENSE_PENALTY = -10.0f; const float MIASMA_SPEED_PENALTY = 0.6f; const int MIASMA_AOE_VFX = 90129; // Mass Paralysis - A4 const float MASS_PARALYSIS_DURATION = 10.0f; const float MASS_PARALYSIS_SPEED_PENALTY = 0.8f; // Hexes // Vulnerability Hex - S4 const float VULNERABILITY_HEX_RESISTANCE_PENALTY_FACTOR = -0.3f; const float VULNERABILITY_HEX_DURATION = 20.0f; // Affliction Hex - D4 const int AFFLICTION_HEX_AOE = 223; const float AFFLICTION_HEX_DURATION = 20.0f; const float AFFLICTION_HEX_RESISTANCE_PENALTY_FACTOR = -0.2f; const int AFFLICTION_HEX_AOE_VFX = 90298; const int AFFLICTION_HEX_VFX = 90134; // Misdirection Hex - S2 const float MISDIRECTION_HEX_DURATION = 10.0f; // Death Hex - S2 const float DEATH_HEX_DURATION = 10.0f; // Primal // Path of Fire // Flame Blast - C (fire DoT) const float FLAME_BLAST_DAMAGE_FACTOR = 0.6f; const float FLAME_BLAST_DAMAGE_DURATION = 10.0f; const int FLAME_BLAST_BURNING_VFX = 90140; // Flaming Weapons - M (flaming weapons for party) // Fireball - A4 const float FIREBALL_DAMAGE_FACTOR = 0.35f; const float FIREBALL_DURATION = 5.0f; const int FIREBALL_BURNING_VFX = 90143; // Inferno - D4 const int INFERNO_AOE = 224; const int INFERNO_AOE_VFX = 90144; const float INFERNO_DURATION = 30.0f; const float INFERNO_INTERVAL = 2.0f; const float INFERNO_DAMAGE_FACTOR = 0.2f; const float INFERNO_RADIUS = 10.0f; const int INFERNO_BURNING_VFX = 90145; // Path of Stone // Rock Armor - M const float ROCK_ARMOR_BONUS_FACTOR = 0.1f; const float ROCK_ARMOR_BONUS_CAP = 12.25f; // Stonefist - S4 const float STONEFIST_DAMAGE_FACTOR = 0.4f; const float STONEFIST_PETRIFY_SHATTER_CHANCE = 0.7f; // Earthquake - D4 const int EARTHQUAKE_AOE = 216; const float EARTHQUAKE_DURATION = 20.0f; const float EARTHQUAKE_INTERVAL = 2.0f; const float EARTHQUAKE_SPEED_PENALTY = 0.7f; const int EARTHQUAKE_AOE_VFX = 90148; // Petrify - S2 const float PETRIFY_DURATION = 20.0f; const int PATRIFY_SHATTER_VFX = 90150; // Path of Storms // Shock - C (lightning dot) const float SHOCK_DAMAGE_FACTOR = 0.4f; const int SHOCK_ELECTRICITY_VFX = 90152; // Lightning - S4 const float LIGHTNING_DAMAGE_FACTOR = 0.4f; // Tempest - D4 const int TEMPEST_AOE = 213; const float TEMPEST_DURATION = 30.0f; const float TEMPEST_INTERVAL = 2.0f; const float TEMPEST_DAMAGE_FACTOR = 0.1f; const float TEMPEST_RADIUS = 10.0f; const int TEMPEST_AOE_VFX = 90155; const int TEMPEST_ELECTRICITY_VFX = 90156; const string TEMPEST_TAG = "TEMPEST"; // Path of Ice // Winter's Grasp - S4 const float WINTERS_GRASP_DAMAGE_FACTOR = 0.36f; const float WINTERS_GRASP_DURATION = 6.0f; const float WINTERS_GRASP_SPEED_PENALTY = 0.8f; const int WINTERS_GRASP_FROZEN_VFX = 90158; const int WINTERS_GRASP_SLOW_VFX = 90159; // Frost Weapons - M (cold weapons for party) // Cone of Cold - C (cold dot, speed debuff/frozen; frozen creatures are brittle) const float CONE_OF_COLD_DAMAGE_FACTOR = 0.34f; const float CONE_OF_COLD_DURATION = 3.0f; const float CONE_OF_COLD_SPEED_PENALTY = 0.6f; const int CONE_OF_COLD_FROZEN_VFX = 90162; const int CONE_OF_COLD_SLOW_VFX = 90163; // Blizzard - U3 (cold dot, speed debuff/frozen) const float BLIZZARD_DURATION = 30.0f; const int BLIZZARD_AOE = 206; const resource BLIZZARD_RESOURCE = R"spell_blizzard.ncs"; const float BLIZZARD_SLOW_FRACTION = 0.8f; const float BLIZZARD_FIRE_RESISTANCE_BONUS = 50.0f; const float BLIZZARD_DEFENSE_BONUS = 10.0f; const float BLIZZARD_DAMAGE_FRACTION = 0.1; const float BLIZZARD_INTERVAL_DURATION = 2.0f; const float BLIZZARD_FROZEN_DURATION = 4.0f; const int BLIZZARD_AOE_VFX = 90165; const int BLIZZARD_ICE_SHEET_VFX = 90166; const int BLIZZARD_FROZEN_VFX = 90167; const int BLIZZARD_SLOW_VFX = 90168; const string BLIZZARD_TAG = "VFX_PER_BLIZZARD"; // Spirit // Necromancy // Walking Bomb - S3 const float WALKING_BOMB_DURATION = 20.0f; const int WALKING_BOMB_DEATH_VFX = 90170; const float WALKING_BOMB_DAMAGE_FACTOR = 1.0f; // Death Syphon - MD2 const int DEATH_SYPHON_AOE = 224; const float DEATH_SYPHON_MANA_FACTOR = 0.25f; const int DEATH_SYPHON_AOE_VFX = 90171; const int DEATH_SYPHON_CASTER_VFX = 90173; const float DEATH_SYPHON_INTERVAL = 2.0f; // Virulent Walking Bomb - S3 const float VIRULENT_WALKING_BOMB_DURATION = 20.0f; const int VIRULENT_WALKING_BOMB_DEATH_VFX = 90175; const float VIRULENT_WALKING_BOMB_DAMAGE_FACTOR = 1.5f; // Animate Dead - M (if target is dead creature, degrad it and spawns skeleton (was:AOE + ghost) const int ANIMATE_DEAD_SUMMON_VFX = 5005; const int ANIMATE_DEAD_CONSUME_CORPSE_VFX = 1077; const int ANIMATE_DEAD_NEW_PET_GLOW_VFX = 3007; const int ANIMATE_WRONG_CORPSE_GLOW_VFX = 1011; const int ANIMATE_RIGHT_CORPSE_GLOW_VFX = 1524; const float ANIMATE_DEAD_AOE_RADIUS = 5.0f; const int ANIMATE_DEAD_GET_UP_ANIMATION = 360; // Telekinesis // Mind Blast - C (knockdown) const float MIND_BLAST_DURATION = 3.0f; // Force Field - S2 const float FORCE_FIELD_DURATION = 5.0f; // ev 200160 // Telekinetic Weapons - M (knockdown weapons for party) // Crushing Prison - S3 const float CRUSHING_PRISON_DAMAGE_FACTOR = 1.25f; const float CRUSHING_PRISON_DURATION = 5.0f; const float CRUSHING_PRISON_SHATTER_CHANCE = 0.7f; // Soul Warding // Spell Shield - S2 const float SPELL_SHIELD_SPELL_RESISTANCE = 75.0; const float SPELL_SHIELD_DURATION = 20.0f; // Dispel Magic - S4 // Antimagic Ward - S2 const float ANTIMAGIC_WARD_DURATION = 10.0f; // Antimagic Burst - S4 const string ANTIMAGIC_BURST_BLIZZARD_TAG = "VFX_PER_BLIZZARD"; const string ANTIMAGIC_BURST_TEMPEST_TAG = "TEMPEST"; const string ANTIMAGIC_BURST_DEATHCLOUD_TAG = "AOE_DEATH_CLOUD"; const string ANTIMAGIC_BURST_SPELLBLOOM_TAG = "AOE_SPELLBLOOM"; const string ANTIMAGIC_BURST_EARTHQUAKE_TAG = "AOE_EARTHQUAKE"; const string ANTIMAGIC_BURST_INFERNO_TAG = "AOE_INFERNO"; // Mana Drain // Mana Drain - S4 const float MANA_DRAIN_FACTOR = 0.3f; const int MANA_DRAIN_CASTER_VFX = 90186; // Mana Cleanse - A4 const float MANA_CLEANSE_FACTOR = 0.4f; // Spell Might - M4 const float SPELL_MIGHT_SPELLPOWER_FACTOR = 0.5f; // Mana Clash - A4 const float MANA_CLASH_DAMAGE_FACTOR = 0.4f; const int MANA_CLASH_CASTER_VFX = 90192; // Wynne's Special Ability const float WYNNE_DURATION = 60.0f; const float WYNNE_PRE_TRINKET_RADIUS = 2.5f; const float WYNNE_PRE_TRINKET_DAZE_DURATION = 6.0f; const float WYNNE_PRE_TRINKET_HEALTH_FACTOR = 0.5f; const float WYNNE_PRE_TRINKET_MANA_FACTOR = 0.5f; const float WYNNE_PRE_TRINKET_SPELLPOWER_LEVEL_FACTOR = 1.0f; const float WYNNE_PRE_TRINKET_SPELLPOWER_BONUS = 10.0f; const float WYNNE_PRE_TRINKET_MANA_REGENERATION_BONUS = 2.0f; const float WYNNE_POST_TRINKET_RADIUS = 5.0f; const float WYNNE_POST_TRINKET_HEALTH_FACTOR = 1.0f; const float WYNNE_POST_TRINKET_MANA_FACTOR = 1.0f; const float WYNNE_POST_TRINKET_SPELLPOWER_BONUS = 20.0f; const float WYNNE_POST_TRINKET_SPELLPOWER_LEVEL_FACTOR = 2.0f; const float WYNNE_POST_TRINKET_MANA_REGENERATION_BONUS = 4.0f; // Branka/Caridin Special Abilities const float BRANKA_ROCK_STRIKE_DURATION = 10.0f; const float BRANKA_ROCK_STRIKE_DAZE_DURATION = 2.0f; const float BRANKA_ROCK_STRIKE_NATURE_RESIST_MODIFER = -50.0f; const float BRANKA_ROCK_STRIKE_DEFENSE_MODIFER = 10.0f; // magical implosion const float MAGICAL_IMPLOSION_DAMAGE_FACTOR = 2.0f; const int MAGICAL_IMPLOSION_VFX = 90276; // improved drain const float IMPROVED_DRAIN_HEALTH_FACTOR = 0.45f; const int IMPROVED_DRAIN_HEALTH_VFX = 90293; const float IMPROVED_DRAIN_MANA_FACTOR = 0.45f; const int IMPROVED_DRAIN_MANA_VFX = 90294; // death combo const float DEATH_COMBO_DAMAGE_FACTOR = 2.0f; const int DEATH_COMBO_CRUST_VFX = 90295; const int DEATH_COMBO_LOCATION_VFX = 90300; // force explosion const float FORCE_EXPLOSION_DAMAGE_FACTOR = 0.5f; const float FORCE_EXPLOSION_RADIUS = 5.0f; const int FORCE_EXPLOSION_VFX = 90296; const int FORCE_EXPLOSION_IMPACT_VFX = 90276; // paralysis explosion const float PARALYSIS_EXPLOSION_DURATION = 20.0f; const int PARALYSIS_EXPLOSION_IMPACT_VFX = 90301; // storm of the century const float STORM_OF_THE_CENTURY_DURATION = 30.0f; const float STORM_OF_THE_CENTURY_DAMAGE_FACTOR = 0.3f; const int STORM_OF_THE_CENTURY_AOE = 233; const int STORM_OF_THE_CENTURY_AOE_VFX = 90273; const float STORM_OF_THE_CENTURY_INTERVAL = 2.0f; const float STORM_OF_THE_CENTURY_MANA_DRAIN = -100.0f; // Mage // Arcane Bolt const float ARCANE_BOLT_DAMAGE_FACTOR = 0.30f; // Arcane Shield const float ARCANE_SHIELD_DEFENSE_FACTOR = 0.15f; Link to comment Share on other sites More sharing options...
ShadowDragyn Posted March 25, 2010 Author Share Posted March 25, 2010 I reinstalled the toolset yet again and made absolutely sure the database was replaced through much trial and error. The issue is still there.It's different, though. Now it just reports a "parsing variable" error on line "47", no matter what the hell I have on line 47. I've deleted half the script and it still says there's a vague error on line 47. Link to comment Share on other sites More sharing options...
hdhd Posted March 25, 2010 Share Posted March 25, 2010 This won't probably help you much but you don't have to reinstall the toolset everytime you want to reset the database. You can simply use the batch file from http://social.bioware.com/wiki/datoolset/index.php/Database_backup_and_restore I can't think of any reason why the files don't compile but I never scripted/modified a spell, so I don't anything about this. I get exactly the same error when I compile the two scripts: E: 18:49:39 - spell_constants_h.nss - spell_constants_h.nss(2): Function definition missing name (while compiling spell_modal_arcarts.nss) Link to comment Share on other sites More sharing options...
ShadowDragyn Posted March 25, 2010 Author Share Posted March 25, 2010 I can't think of any reason why the files don't compile but I never scripted/modified a spell, so I don't anything about this. I get exactly the same error when I compile the two scripts: E: 18:49:39 - spell_constants_h.nss - spell_constants_h.nss(2): Function definition missing name (while compiling spell_modal_arcarts.nss)Hm.. that's a huge help that you tested it yourself and proved my toolset isn't corrupted.I'm still confused though on how it is that the same versions of the script that I had compiled before no longer can, and how this error could be so illogical.It says there's a parsing variable error on line 47 even if there is no line 47.Stranger yet is that you're getting the old error and I'm somehow getting a new one. Link to comment Share on other sites More sharing options...
ShadowDragyn Posted March 26, 2010 Author Share Posted March 26, 2010 So as I posted on the mod's official page... Fantastic.The last reinstallation of the toolset broke the game itself, so I was forced to reinstall that, which uninstalled the toolset automatically so I had to reinstall that a third time.Now it's back to the old error again, and similar errors are randomly spreading to other scripts as well now. Had fun while it lasted, but I'm thinking the toolsh** is too screwed up for me to be physically capable of maintaining this mod further... Luckily it's pretty much stable, though it doesn't do nearly as much as I'd like... just don't do anything weird with Combat Magic like having it active before using a fade shapeshift form or whatever... Link to comment Share on other sites More sharing options...
ShadowDragyn Posted March 27, 2010 Author Share Posted March 27, 2010 I've figured out a little more. I don't know how the script could have failed with Hdhd as well or how reinstalling the toolset fails to fix the issue, because more and more functions keep gradually failing to read properly when compiling.Without changing a thing, more and more of them are getting errors.A line that worked perfectly one day will miraculously fail to read the next. Link to comment Share on other sites More sharing options...
Recommended Posts