2026/01/26 Update
Added Wispling race. Wispling qualifies for Shifter (PnP). Bioware poisons now work with "new" PRC8 weapons. Updated PRC8 Tester mod store to have Bioware venoms. Updated PRC8 version. Added Alchemy expansion notes. Updated Starting package TLK notes.
This commit is contained in:
@@ -795,11 +795,11 @@ int ArtificerPrereqCheck(object oPC, string sFile, int nLine, int nCost)
|
||||
// Save crafting state during crafting
|
||||
void SaveCraftingState(object oPC)
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: SaveCraftingState called for " + GetName(oPC));
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> SaveCraftingState called for " + GetName(oPC));
|
||||
|
||||
if(GetLocalInt(oPC, PRC_CRAFT_HB))
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: Player is crafting, saving state...");
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> SaveCraftingState: Player is crafting, saving state...");
|
||||
|
||||
// Get the crafting item
|
||||
object oItem = GetLocalObject(oPC, PRC_CRAFT_ITEM);
|
||||
@@ -815,7 +815,7 @@ void SaveCraftingState(object oPC)
|
||||
{
|
||||
sItemUUID = GetObjectUUID(oItem);
|
||||
SQLocalsPlayer_SetString(oPC, "crafting_item_uuid", sItemUUID);
|
||||
if(DEBUG) DoDebug("DEBUG: Generated and saved new UUID: " + sItemUUID);
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> SaveCraftingState: Generated and saved new UUID: " + sItemUUID);
|
||||
}
|
||||
|
||||
// Get crafting cost values
|
||||
@@ -903,7 +903,7 @@ void SaveCraftingState(object oPC)
|
||||
|
||||
object GetItemByUUID(object oPC, string sUUID)
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: Searching for item with UUID: " + sUUID);
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> GetItemByUUID | Searching for item with UUID: " + sUUID);
|
||||
|
||||
// Check player's inventory
|
||||
object oItem = GetFirstItemInInventory(oPC);
|
||||
@@ -911,7 +911,7 @@ object GetItemByUUID(object oPC, string sUUID)
|
||||
{
|
||||
if(GetObjectUUID(oItem) == sUUID)
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: Found item in player inventory: " + GetName(oItem));
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> GetItemByUUID | Found item in player inventory: " + GetName(oItem));
|
||||
return oItem;
|
||||
}
|
||||
oItem = GetNextItemInInventory(oPC);
|
||||
@@ -924,7 +924,7 @@ object GetItemByUUID(object oPC, string sUUID)
|
||||
oItem = GetItemInSlot(i, oPC);
|
||||
if(GetIsObjectValid(oItem) && GetObjectUUID(oItem) == sUUID)
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: Found equipped item: " + GetName(oItem));
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> GetItemByUUID | Found equipped item: " + GetName(oItem));
|
||||
return oItem;
|
||||
}
|
||||
}
|
||||
@@ -938,7 +938,7 @@ object GetItemByUUID(object oPC, string sUUID)
|
||||
{
|
||||
if(GetObjectUUID(oItem) == sUUID)
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: Found item in craft chest: " + GetName(oItem));
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> GetItemByUUID | Found item in craft chest: " + GetName(oItem));
|
||||
return oItem;
|
||||
}
|
||||
oItem = GetNextItemInInventory(oChest);
|
||||
@@ -954,14 +954,14 @@ object GetItemByUUID(object oPC, string sUUID)
|
||||
{
|
||||
if(GetObjectUUID(oItem) == sUUID)
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: Found item in temp craft chest: " + GetName(oItem));
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> GetItemByUUID | Found item in temp craft chest: " + GetName(oItem));
|
||||
return oItem;
|
||||
}
|
||||
oItem = GetNextItemInInventory(oTempChest);
|
||||
}
|
||||
}
|
||||
|
||||
if(DEBUG) DoDebug("DEBUG: Item not found with UUID: " + sUUID);
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> GetItemByUUID | Item not found with UUID: " + sUUID);
|
||||
return OBJECT_INVALID;
|
||||
}
|
||||
|
||||
@@ -1017,7 +1017,7 @@ void CraftingHB(object oPC, object oItem, itemproperty ip, int nCost, int nXP, s
|
||||
|
||||
if(nRounds == 0 || GetPCPublicCDKey(oPC) == "") //default to zero time if single player
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: Crafting completion - nCost: " + IntToString(nCost) + ", nLine: " + IntToString(nLine));
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> CraftHB() | Crafting completion - nCost: " + IntToString(nCost) + ", nLine: " + IntToString(nLine));
|
||||
|
||||
RemoveEventScript(oPC, EVENT_VIRTUAL_ONDAMAGED, "prc_od_conc");
|
||||
if(GetLevelByClass(CLASS_TYPE_ARTIFICER, oPC))
|
||||
@@ -1033,7 +1033,7 @@ void CraftingHB(object oPC, object oItem, itemproperty ip, int nCost, int nXP, s
|
||||
}
|
||||
}
|
||||
FloatingTextStringOnCreature("Crafting Complete!", oPC);
|
||||
if(DEBUG) DoDebug("DEBUG: Entering ApplyProperties() >> nCost: " + IntToString(nCost) + ", nLine: " + IntToString(nLine));
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> CraftHB() | Entering ApplyProperties() - nCost: " + IntToString(nCost) + ", nLine: " + IntToString(nLine));
|
||||
ApplyProperties(oPC, oItem, ip, nCost, nXP, sFile, nLine);
|
||||
DeleteLocalInt(oPC, PRC_CRAFT_HB);
|
||||
|
||||
@@ -1048,7 +1048,7 @@ void CraftingHB(object oPC, object oItem, itemproperty ip, int nCost, int nXP, s
|
||||
}
|
||||
else
|
||||
{
|
||||
if(DEBUG) DoDebug("DEBUG: Continuing CraftingHB() >> nCost: " + IntToString(nCost) + ", nLine: " + IntToString(nLine));
|
||||
if(DEBUG) DoDebug("prc_craft_cv_inc >> CraftHB() | Continuing CraftingHB() - nCost: " + IntToString(nCost) + ", nLine: " + IntToString(nLine));
|
||||
FloatingTextStringOnCreature("Crafting: " + IntToString(nRounds) + " round(s) remaining", oPC);
|
||||
DelayCommand(6.0, CraftingHB(oPC, oItem, ip, nCost, nXP, sFile, nLine, nRounds - 1));
|
||||
}
|
||||
|
||||
@@ -341,6 +341,9 @@ const int FEAT_FOG_CLOUD_BREATH = 5434; //:: Spiretop Dragon
|
||||
const int FEAT_LTSENSE = 4700;
|
||||
const int FEAT_LTBLIND = 4701;
|
||||
|
||||
const int FEAT_WISPLING_CHANGE_SHAPE = 4433; //:: Wispling
|
||||
|
||||
|
||||
const int FEAT_SPELL5 = 4702;
|
||||
const int FEAT_SPELL10 = 4420;
|
||||
const int FEAT_SPELL11 = 4703;
|
||||
|
||||
@@ -2459,6 +2459,7 @@ int GetCanShiftIntoCreature(object oShifter, int nShifterType, object oTemplate)
|
||||
nRacialType == RACIAL_TYPE_HALFELF ||
|
||||
nRacialType == RACIAL_TYPE_HALFLING ||
|
||||
nRacialType == RACIAL_TYPE_HUMANOID_ORC ||
|
||||
nRacialType == RACIAL_TYPE_HUMANOID_GOBLINOID ||
|
||||
nRacialType == RACIAL_TYPE_HUMANOID_REPTILIAN
|
||||
))
|
||||
{
|
||||
@@ -2488,6 +2489,7 @@ int GetCanShiftIntoCreature(object oShifter, int nShifterType, object oTemplate)
|
||||
nRacialType == RACIAL_TYPE_HALFELF ||
|
||||
nRacialType == RACIAL_TYPE_HALFLING ||
|
||||
nRacialType == RACIAL_TYPE_HUMANOID_ORC ||
|
||||
nRacialType == RACIAL_TYPE_HUMANOID_GOBLINOID ||
|
||||
nRacialType == RACIAL_TYPE_HUMANOID_REPTILIAN
|
||||
))
|
||||
{
|
||||
@@ -2523,6 +2525,7 @@ int GetCanShiftIntoCreature(object oShifter, int nShifterType, object oTemplate)
|
||||
nTargetRacialType == RACIAL_TYPE_HALFORC ||
|
||||
nTargetRacialType == RACIAL_TYPE_HALFELF ||
|
||||
nTargetRacialType == RACIAL_TYPE_HALFLING ||
|
||||
nTargetRacialType == RACIAL_TYPE_HUMANOID_GOBLINOID ||
|
||||
nTargetRacialType == RACIAL_TYPE_HUMANOID_ORC ||
|
||||
nTargetRacialType == RACIAL_TYPE_HUMANOID_REPTILIAN
|
||||
) &&
|
||||
@@ -2533,6 +2536,7 @@ int GetCanShiftIntoCreature(object oShifter, int nShifterType, object oTemplate)
|
||||
nShifterRacialType == RACIAL_TYPE_HALFORC ||
|
||||
nShifterRacialType == RACIAL_TYPE_HALFELF ||
|
||||
nShifterRacialType == RACIAL_TYPE_HALFLING ||
|
||||
nShifterRacialType == RACIAL_TYPE_HUMANOID_GOBLINOID ||
|
||||
nShifterRacialType == RACIAL_TYPE_HUMANOID_ORC ||
|
||||
nShifterRacialType == RACIAL_TYPE_HUMANOID_REPTILIAN
|
||||
))
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
|
||||
/* This variable MUST be updated with every new version of the PRC!!! */
|
||||
|
||||
const string PRC_VERSION = "PRC8 4.80";
|
||||
const string PRC_VERSION = "PRC8 4.81";
|
||||
|
||||
/* This variable MUST be updated every time 'assemble_spellbooks.bat' is run!!! */
|
||||
|
||||
|
||||
@@ -111,6 +111,7 @@ const int RACIAL_TYPE_NAZTHARUNE_RAKSHASA = 96;
|
||||
const int RACIAL_TYPE_RETH_DEKALA = 67;
|
||||
|
||||
//Planetouched Races
|
||||
const int RACIAL_TYPE_WISPLING = 195;
|
||||
const int RACIAL_TYPE_AASIMAR = 198;
|
||||
const int RACIAL_TYPE_AIR_GEN = 199;
|
||||
const int RACIAL_TYPE_EARTH_GEN = 200;
|
||||
|
||||
@@ -443,14 +443,15 @@ const int SPELL_PHANTOM_STEED = 2347;
|
||||
const int SPELL_GASEOUS_FORM = 2348;
|
||||
|
||||
//:: Racial spell additions
|
||||
const int SPIRETOP_FOG_CLOUD_BREATH = 1487; //:: Spiretop Dragon
|
||||
const int MEPHLING_BREATH_WEAPON = 1488; //:: Mephlings
|
||||
const int SPELL_ARANEA_ALTER = 1489; //:: Aranea
|
||||
const int SPELL_WISPLING_CHANGE_SHAPE = 17980; //;; Wispling
|
||||
const int SPIRETOP_FOG_CLOUD_BREATH = 1487; //:: Spiretop Dragon
|
||||
const int MEPHLING_BREATH_WEAPON = 1488; //:: Mephlings
|
||||
const int SPELL_ARANEA_ALTER = 1489; //:: Aranea
|
||||
const int SPELL_ARANEA_ALTER_HUMANOID = 1490;
|
||||
const int SPELL_ARANEA_ALTER_HYBRID = 1491;
|
||||
const int SPELL_ARANEA_ALTER_SPIDER = 1492;
|
||||
const int SPELL_ARANEA_WEB = 1493;
|
||||
const int SPELL_MUCK_SQUIRT = 1494; //:: Muckdweller
|
||||
const int SPELL_MUCK_SQUIRT = 1494; //:: Muckdweller
|
||||
const int SPELL_RAKSHASA_DISGUISE = 1951;
|
||||
const int SPELL_FEYRI_ALTER = 1955;
|
||||
const int SPELL_NIXIE_WATERBREATHING = 1956;
|
||||
@@ -547,6 +548,12 @@ const int SPELL_TURLEMOI_STRENGTH = 19013;
|
||||
const int SPELL_HADRIMOI_STRENGTH = 19014;
|
||||
const int SPELL_GLOURA_GRACE = 19015;
|
||||
|
||||
const int SPELL_WISPLING_CHANGE_SHAPE_LEARN = 17980;
|
||||
const int SPELL_WISPLING_CHANGE_SHAPE_OPTIONS = 17981;
|
||||
const int SPELL_WISPLING_CHANGE_SHAPE_TRUE = 17982;
|
||||
const int SPELL_WISPLING_CHANGE_SHAPE_QS1 = 17983;
|
||||
const int SPELL_WISPLING_CHANGE_SHAPE_QS2 = 17984;
|
||||
|
||||
// Poison system spells
|
||||
const int SPELL_POISONED_WEAPON = 2880;
|
||||
const int SPELL_GRENADE_POISONVIAL = 2881;
|
||||
|
||||
@@ -754,7 +754,6 @@ if(nItem == BASE_ITEM_BASTARDSWORD
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Returns TRUE if weapon is a blugeoning weapon
|
||||
// Uses Get2DAString!
|
||||
// ----------------------------------------------------------------------------
|
||||
int IPGetIsBludgeoningWeapon(object oItem)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user