diff --git a/nwn/nwnprc/trunk/2das/des_crft_spells.2da b/nwn/nwnprc/trunk/2das/des_crft_spells.2da index ed23cd4f..7b63a797 100644 --- a/nwn/nwnprc/trunk/2das/des_crft_spells.2da +++ b/nwn/nwnprc/trunk/2das/des_crft_spells.2da @@ -376,7 +376,7 @@ 372 Aura_of_Vitality 321 1 1 0 7 0 373 War_Cry 322 1 1 0 4 0 374 Regenerate 323 1 1 0 7 0 -375 Evards_Black_Tentacles 324 1 1 0 4 0 +375 Evards_Black_Tentacles 324 1 0 0 4 0 376 Legend_Lore 326 1 1 0 5 0 377 Find_Traps 327 0 0 0 3 0 378 Summon_Mephit **** 1 1 1 5 0 diff --git a/nwn/nwnprc/trunk/scripts/prc_equip.nss b/nwn/nwnprc/trunk/scripts/prc_equip.nss index d06caa72..124c6e2b 100644 --- a/nwn/nwnprc/trunk/scripts/prc_equip.nss +++ b/nwn/nwnprc/trunk/scripts/prc_equip.nss @@ -86,28 +86,6 @@ void main() //timestop noncombat equip DoTimestopEquip(oPC, oItem); -//:: Clear Echoblade effect if weapon is changed - int nBaseItem = GetBaseItemType(oItem); - - effect eEffect = GetFirstEffect(oPC); - - if (nBaseItem == BASE_ITEM_AMULET || nBaseItem == BASE_ITEM_ARMOR || nBaseItem == BASE_ITEM_ARROW || nBaseItem == BASE_ITEM_BELT || nBaseItem == BASE_ITEM_BOLT || nBaseItem == BASE_ITEM_BOOTS - || nBaseItem == BASE_ITEM_BRACER || nBaseItem == BASE_ITEM_BULLET || nBaseItem == BASE_ITEM_CBLUDGWEAPON || nBaseItem == BASE_ITEM_CLOAK || nBaseItem == BASE_ITEM_CPIERCWEAPON - || nBaseItem == BASE_ITEM_CREATUREITEM || nBaseItem == BASE_ITEM_CSLASHWEAPON || nBaseItem == BASE_ITEM_CSLSHPRCWEAP || nBaseItem == BASE_ITEM_GLOVES || nBaseItem == BASE_ITEM_HELMET - || nBaseItem == BASE_ITEM_RING || nBaseItem == BASE_ITEM_LARGESHIELD || nBaseItem == BASE_ITEM_RING || nBaseItem == BASE_ITEM_SMALLSHIELD || nBaseItem == BASE_ITEM_TOWERSHIELD) - { - return; - } - else - { - while(GetIsEffectValid(eEffect)) - { - if(GetEffectTag(eEffect) == "Echoblade") - RemoveEffect(oPC, eEffect); - eEffect = GetNextEffect(oPC); - } - } - //:: Saint / Holy Touch doesn't work w/ ranged weapons if (GetHasTemplate(TEMPLATE_SAINT, oPC)) { @@ -137,12 +115,34 @@ void main() } -//:: check if equipped with a ranged weapon and apply effect again if not + //:: Check if equipped with a ranged weapon and apply effect again if not if (!GetWeaponRanged(oItem)) ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC); } - // Execute scripts hooked to this event for the creature and item triggering it +//:: Clear Echoblade effect if weapon is changed + int nBaseItem = GetBaseItemType(oItem); + + effect eEffect = GetFirstEffect(oPC); + + if (nBaseItem == BASE_ITEM_AMULET || nBaseItem == BASE_ITEM_ARMOR || nBaseItem == BASE_ITEM_ARROW || nBaseItem == BASE_ITEM_BELT || nBaseItem == BASE_ITEM_BOLT || nBaseItem == BASE_ITEM_BOOTS + || nBaseItem == BASE_ITEM_BRACER || nBaseItem == BASE_ITEM_BULLET || nBaseItem == BASE_ITEM_CBLUDGWEAPON || nBaseItem == BASE_ITEM_CLOAK || nBaseItem == BASE_ITEM_CPIERCWEAPON + || nBaseItem == BASE_ITEM_CREATUREITEM || nBaseItem == BASE_ITEM_CSLASHWEAPON || nBaseItem == BASE_ITEM_CSLSHPRCWEAP || nBaseItem == BASE_ITEM_GLOVES || nBaseItem == BASE_ITEM_HELMET + || nBaseItem == BASE_ITEM_RING || nBaseItem == BASE_ITEM_LARGESHIELD || nBaseItem == BASE_ITEM_RING || nBaseItem == BASE_ITEM_SMALLSHIELD || nBaseItem == BASE_ITEM_TOWERSHIELD) + { + return; + } + else + { + while(GetIsEffectValid(eEffect)) + { + if(GetEffectTag(eEffect) == "Echoblade") + RemoveEffect(oPC, eEffect); + eEffect = GetNextEffect(oPC); + } + } + +//:: Execute scripts hooked to this event for the creature and item triggering it ExecuteAllScriptsHookedToEvent(oPC, EVENT_ONPLAYEREQUIPITEM); ExecuteAllScriptsHookedToEvent(oItem, EVENT_ITEM_ONPLAYEREQUIPITEM); diff --git a/nwn/nwnprc/trunk/scripts/prc_reservefeat.nss b/nwn/nwnprc/trunk/scripts/prc_reservefeat.nss index 11e04712..0e299ad0 100644 --- a/nwn/nwnprc/trunk/scripts/prc_reservefeat.nss +++ b/nwn/nwnprc/trunk/scripts/prc_reservefeat.nss @@ -97,7 +97,7 @@ int GetHighestSpellAvailableBySchool(object oPC, string sSchool) return nSpellLevel; } -int GetHighestDomainSpellAvailable(object oPC, string sDomain) //This will loop all domain spells for a given doamain and return the highest level available to cast +int GetHighestDomainSpellAvailable(object oPC, string sDomain) //This will loop all domain spells for a given domain and return the highest level available to cast { string sFile = "prc_desc_" + sDomain; @@ -207,6 +207,12 @@ void UpdateReserveFeats(object oPC) //This will check for each reserve feat, ca if(GetHasFeat(FEAT_ACIDIC_SPLATTER, oPC)) { nBonus = GetHighestSpellAvailableByDescriptor(oPC, RESERVESPELL_DESCRIPTOR_ACID); + + if((GetHasSpell(SPELL_ACID_FOG, oPC)) || (PRCGetIsRealSpellKnown(SPELL_ACID_FOG, oPC))) + { + nBonus = 6; + } + DeleteLocalInt(oPC, "AcidicSplatterBonus"); if (nBonus > 1) SetLocalInt(oPC, "AcidicSplatterBonus", nBonus);