Really fixed Evard's on wands this time

Really fixed Evard's on wands this time.  Fixed Acidic Spatter in regards to Acid Fog being spell #0.
This commit is contained in:
Jaysyn904 2024-11-08 19:02:23 -05:00
parent 820ddff588
commit ea09e4db6f
3 changed files with 32 additions and 26 deletions

View File

@ -376,7 +376,7 @@
372 Aura_of_Vitality 321 1 1 0 7 0 372 Aura_of_Vitality 321 1 1 0 7 0
373 War_Cry 322 1 1 0 4 0 373 War_Cry 322 1 1 0 4 0
374 Regenerate 323 1 1 0 7 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 376 Legend_Lore 326 1 1 0 5 0
377 Find_Traps 327 0 0 0 3 0 377 Find_Traps 327 0 0 0 3 0
378 Summon_Mephit **** 1 1 1 5 0 378 Summon_Mephit **** 1 1 1 5 0

View File

@ -86,28 +86,6 @@ void main()
//timestop noncombat equip //timestop noncombat equip
DoTimestopEquip(oPC, oItem); 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 //:: Saint / Holy Touch doesn't work w/ ranged weapons
if (GetHasTemplate(TEMPLATE_SAINT, oPC)) 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)) if (!GetWeaponRanged(oItem))
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC); 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(oPC, EVENT_ONPLAYEREQUIPITEM);
ExecuteAllScriptsHookedToEvent(oItem, EVENT_ITEM_ONPLAYEREQUIPITEM); ExecuteAllScriptsHookedToEvent(oItem, EVENT_ITEM_ONPLAYEREQUIPITEM);

View File

@ -97,7 +97,7 @@ int GetHighestSpellAvailableBySchool(object oPC, string sSchool)
return nSpellLevel; 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; 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)) if(GetHasFeat(FEAT_ACIDIC_SPLATTER, oPC))
{ {
nBonus = GetHighestSpellAvailableByDescriptor(oPC, RESERVESPELL_DESCRIPTOR_ACID); nBonus = GetHighestSpellAvailableByDescriptor(oPC, RESERVESPELL_DESCRIPTOR_ACID);
if((GetHasSpell(SPELL_ACID_FOG, oPC)) || (PRCGetIsRealSpellKnown(SPELL_ACID_FOG, oPC)))
{
nBonus = 6;
}
DeleteLocalInt(oPC, "AcidicSplatterBonus"); DeleteLocalInt(oPC, "AcidicSplatterBonus");
if (nBonus > 1) SetLocalInt(oPC, "AcidicSplatterBonus", nBonus); if (nBonus > 1) SetLocalInt(oPC, "AcidicSplatterBonus", nBonus);