2026/01/08 Update

Hexblade shouldn't get Medium Armor prof.
Weapon Specialization Whip isn't a Warblade bonus feat.
Reorganized packages.2da.
Fixed potential issue with SetCompositeBonusT().
Added materials iprops to material based crafting.
Fixed bug w/ DoTrip().
Added heartbeat script to Monk to properly handle monk sizes.
Cleaned up PRCGetCreatureSize().
Set Shielded Casting to use TagItemProperty().
Archivist now has a Lore check to learn spells from scrolls.
Set Dragonfire Strike to use TagItemProperty().
Setup Forsaker to use TagItemProperty().
Fixed distance mismatch with Necrocarnum Shroud.
Added too much debugging for the unarmed stuff.
Cloudkill now obeys Mastery of Shapes.
This commit is contained in:
Jaysyn904
2026-01-08 20:31:11 -05:00
parent 6ca160ca26
commit 6420e5dbb8
28 changed files with 1707 additions and 1117 deletions

View File

@@ -96,7 +96,36 @@ void main()
SendMessageToPC(oPC, GetStringByStrRef(53308));//"You already have that spell in your spellbook."
return;
}
// Make a Lore check to learn the spell
string sSpellLevel = Get2DACache("spells", "Cleric", nSpellID);
nSpellLevel = StringToInt(sSpellLevel);
// If no cleric level, check innate level
if (nSpellLevel == 0)
nSpellLevel = StringToInt(Get2DACache("spells", "Innate", nSpellID));
int nDC = 15 + nSpellLevel;
// Check for previous failed attempts
string sFailVar = "PRC_Archivist_Fail_" + IntToString(nSpellID);
int nFailedLore = GetPersistantLocalInt(oPC, sFailVar);
int nCurrentLore = GetSkillRank(SKILL_LORE, oPC);
// If failed before and Lore hasn't improved, deny attempt
if (nFailedLore > 0 && nCurrentLore <= nFailedLore)
{
FloatingTextStringOnCreature("You must improve your Lore skill before attempting to learn this spell again.", oPC, FALSE);
return;
}
if(!GetPRCIsSkillSuccessful(oPC, SKILL_LORE, nDC))
{
// Store the Lore rank at time of failure
SetPersistantLocalInt(oPC, sFailVar, nCurrentLore);
FloatingTextStringOnCreature("Lore check failed (DC " + IntToString(nDC) + "). You cannot learn this spell.", oPC, FALSE);
return;
}
//destroy the scroll
int nStack = GetNumStackedItems(oScroll);
if (nStack > 1)