Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
191 lines
5.3 KiB
Plaintext
191 lines
5.3 KiB
Plaintext
/////////////////////////////////////////////////////////////////
|
|
// notes:
|
|
// "normal" stunning fist uses are what is normally given, not taking into account the PrC
|
|
// "extra" stunning fist uses are what uses that come from PrC classes, they can be converted into "normal" uses and dont do anything by themselves
|
|
// this is to work around the hardcoded limit of the "normal" stunning fist uses
|
|
|
|
// Try to expend a number of stunning fist uses, returns true if succesfull
|
|
int ExpendStunfistUses(object oPC, int nUses);
|
|
|
|
// Reset extra stunning fist uses to the extra uses/day a character has (use on rest)
|
|
void ResetExtraStunfistUses(object oPC);
|
|
|
|
// Get remaining "normal" stunning fist uses
|
|
int GetNormalRemainingStunfistUses(object oPC);
|
|
|
|
// Get remaining "extra" stunning fist uses
|
|
int GetExtraRemainingStunfistUses(object oPC);
|
|
|
|
// Get total remaining stunning fist uses
|
|
int GetTotalRemainingStunfistUses(object oPC);
|
|
|
|
// Get amount of "normal" stunning fist uses/day a character has
|
|
int GetNormalStunfistUsesPerDay(object oPC);
|
|
|
|
// Get amount of "extra" stunning fist uses/day a character has
|
|
int GetExtraStunfistUsesPerDay(object oPC);
|
|
|
|
// Get total amount of stunning fist uses/day a character has
|
|
int GetTotalStunFistUsesPerDay(object oPC);
|
|
|
|
// Set remaining "normal" stunning fist uses
|
|
void SetNormalRemainingStunfistUses(object oPC, int nUses);
|
|
|
|
// Set remaining "extra" stunning fist uses
|
|
void SetExtraRemainingStunfistUses(object oPC, int nUses);
|
|
|
|
// Convert "extra" stunning fist uses to "normal" (BW) stunning fist uses
|
|
void ConvertStunFistUses(object oPC);
|
|
|
|
//================================
|
|
|
|
// Minimalist includes
|
|
|
|
#include "prc_feat_const"
|
|
#include "prc_class_const"
|
|
#include "inc_item_props"
|
|
#include "prc_ipfeat_const"
|
|
//#include "prc_alterations"
|
|
|
|
// Try to expend a number of stunning fist uses, returns true if succesfull
|
|
int ExpendStunfistUses(object oPC, int nUses)
|
|
{
|
|
if (GetTotalRemainingStunfistUses(oPC) < nUses)
|
|
{
|
|
SendMessageToPC(oPC, "You don't have enough uses for this feat!");
|
|
return FALSE;
|
|
}
|
|
|
|
ConvertStunFistUses(oPC);
|
|
|
|
while (nUses)
|
|
{
|
|
nUses--;
|
|
DecrementRemainingFeatUses(oPC, FEAT_STUNNING_FIST);
|
|
ConvertStunFistUses(oPC);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
// Reset extra stunning fist uses to the extra uses/day a character has (use on rest)
|
|
void ResetExtraStunfistUses(object oPC)
|
|
{
|
|
object oSkin = GetPCSkin(oPC);
|
|
int nUses = GetExtraStunfistUsesPerDay(oPC);
|
|
|
|
if (nUses && !GetLocalInt(oPC, "PRCExtraStunningMessage"))
|
|
{
|
|
SetLocalInt(oPC, "PRCExtraStunningMessage", TRUE);
|
|
DelayCommand(3.001f, SendMessageToPC(oPC, "You gained extra stunning fist uses per day, use the feat 'PrC Extra Stunning'"));
|
|
DelayCommand(3.002f, SendMessageToPC(oPC, "to convert those uses into normal stunning fist uses"));
|
|
}
|
|
|
|
SetExtraRemainingStunfistUses(oPC, nUses);
|
|
}
|
|
|
|
void ConvertStunFistUses(object oPC)
|
|
{
|
|
while (GetNormalRemainingStunfistUses(oPC) < GetNormalStunfistUsesPerDay(oPC) && GetHasFeat(FEAT_PRC_EXTRA_STUNNING, oPC))
|
|
{
|
|
IncrementRemainingFeatUses(oPC, FEAT_STUNNING_FIST);
|
|
DecrementRemainingFeatUses(oPC, FEAT_PRC_EXTRA_STUNNING);
|
|
}
|
|
}
|
|
|
|
// Get remaining "normal" stunning fist uses
|
|
int GetNormalRemainingStunfistUses(object oPC)
|
|
{
|
|
int nUses = 0;
|
|
while (GetHasFeat(FEAT_STUNNING_FIST, oPC))
|
|
{
|
|
nUses++;
|
|
DecrementRemainingFeatUses(oPC, FEAT_STUNNING_FIST);
|
|
}
|
|
|
|
SetNormalRemainingStunfistUses(oPC, nUses);
|
|
return nUses;
|
|
}
|
|
|
|
// Get remaining "extra" stunning fist uses
|
|
int GetExtraRemainingStunfistUses(object oPC)
|
|
{
|
|
int nUses = 0;
|
|
while (GetHasFeat(FEAT_PRC_EXTRA_STUNNING, oPC))
|
|
{
|
|
nUses++;
|
|
DecrementRemainingFeatUses(oPC, FEAT_PRC_EXTRA_STUNNING);
|
|
}
|
|
|
|
SetExtraRemainingStunfistUses(oPC, nUses);
|
|
|
|
return nUses;
|
|
}
|
|
|
|
// Get total remaining stunning fist uses
|
|
int GetTotalRemainingStunfistUses(object oPC)
|
|
{
|
|
return GetNormalRemainingStunfistUses(oPC) + GetExtraRemainingStunfistUses(oPC);
|
|
}
|
|
|
|
// Get amount of "normal" stunning fist uses/day a character has
|
|
int GetNormalStunfistUsesPerDay(object oPC)
|
|
{
|
|
int nUses = GetNormalRemainingStunfistUses(oPC);
|
|
int nMaxUses = nUses;
|
|
while (nMaxUses == GetNormalRemainingStunfistUses(oPC))
|
|
{
|
|
IncrementRemainingFeatUses(oPC, FEAT_STUNNING_FIST);
|
|
nMaxUses++;
|
|
}
|
|
nMaxUses--;
|
|
SetNormalRemainingStunfistUses(oPC, nUses);
|
|
return nMaxUses;
|
|
}
|
|
|
|
// Get amount of "extra" stunning fist uses/day a character has
|
|
int GetExtraStunfistUsesPerDay(object oPC)
|
|
{
|
|
int nUses = 0;
|
|
|
|
// classes/effects which give extra stunning fist uses/day should be added here
|
|
nUses += GetLevelByClass(CLASS_TYPE_ENLIGHTENEDFIST, oPC);
|
|
nUses += GetLevelByClass(CLASS_TYPE_SHADOW_SUN_NINJA, oPC);
|
|
nUses += GetLocalInt(oPC, "LiPengStun");
|
|
|
|
return nUses;
|
|
}
|
|
|
|
// Get total amount of stunning fist uses/day a character has
|
|
int GetTotalStunFistUsesPerDay(object oPC)
|
|
{
|
|
return GetNormalStunfistUsesPerDay(oPC) + GetExtraStunfistUsesPerDay(oPC);
|
|
}
|
|
|
|
// Set remaining "normal" stunning fist uses
|
|
void SetNormalRemainingStunfistUses(object oPC, int nUses)
|
|
{
|
|
while (GetHasFeat(FEAT_STUNNING_FIST, oPC))
|
|
{
|
|
DecrementRemainingFeatUses(oPC, FEAT_STUNNING_FIST);
|
|
}
|
|
|
|
while (nUses--)
|
|
{
|
|
IncrementRemainingFeatUses(oPC, FEAT_STUNNING_FIST);
|
|
}
|
|
}
|
|
|
|
// Set remaining "extra" stunning fist uses
|
|
void SetExtraRemainingStunfistUses(object oPC, int nUses)
|
|
{
|
|
while (GetHasFeat(FEAT_PRC_EXTRA_STUNNING, oPC))
|
|
{
|
|
DecrementRemainingFeatUses(oPC, FEAT_PRC_EXTRA_STUNNING);
|
|
}
|
|
|
|
while (nUses--)
|
|
{
|
|
IncrementRemainingFeatUses(oPC, FEAT_PRC_EXTRA_STUNNING);
|
|
}
|
|
} |