2025/07/19 Update

Battlerager: Replaced Knockdown & Improved Knockdown with Improved Trip & Reckless Offense.
Ninja: Replaced racial HiPS with normal HiPS.
Placed Epic Skill Focus Alchemy under the correct masterfeat.
Fixed icon for Dousing the Flames.
Added Monkey Grip to iprp_feats.2da, for testing.
Added Double Scimitar to GetIsDoubleSidedWeeaponType()
Fixed Leaping Dragon.
Added club & dagger to correct proficiencies in IsProficient()
Updated Vow of Poverty for persistence. (@Anufis).
Added weapon wield changing option in PRC Options Radial.
Fixed targetting on Fleetness of Foot.
This commit is contained in:
Jaysyn904
2025-07-18 17:54:18 -04:00
parent 358b36350a
commit b6ec45deb2
21 changed files with 1269 additions and 1953 deletions

View File

@@ -84,19 +84,9 @@ void main()
//Applying stat boosts
if(GetPersistantLocalInt(oPC, "VoPBoost"+IntToString(nLevelCheck)) >= 10)
{
if(!GetLocalInt(oPC, "VoPBoostGiven"+IntToString(nLevelCheck)))
{
SetLocalInt(oPC, "VoPBoostGiven"+IntToString(nLevelCheck), 0);
}
int oldValue = GetLocalInt(oPC, "VoPBoostGiven"+IntToString(nLevelCheck));
int newValue = 2 * (1 + (nLevel - nLevelCheck) / 4);
int stat = GetPersistantLocalInt(oPC, "VoPBoost"+IntToString(nLevelCheck)) - 10;
if (oldValue < newValue)
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT,UnyieldingEffect(EffectAbilityIncrease(stat, newValue - oldValue)), oPC);
SetLocalInt(oPC, "VoPBoostGiven"+IntToString(nLevelCheck), newValue);
}
int value = 2 * (1 + (nLevel - nLevelCheck) / 4);
SetCompositeBonus(oSkin, "VoPBoostStat"+IntToString(stat), value, ITEM_PROPERTY_ABILITY_BONUS, stat);
}
//Call exalted feat for each even level
@@ -117,12 +107,7 @@ void main()
//Resistance (Ex): At 7th level, an ascetic gains a +1 resistance bonus on all saving throws. This bonus increases to +2 at 13th level, and to +3 at 17th level.
if (nLevel>=7)
{
int oldValue = GetLocalInt(oPC, "VoPResistance");
if (nResist > oldValue)
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT, ExtraordinaryEffect(EffectSavingThrowIncrease(SAVING_THROW_ALL, nResist - oldValue, SAVING_THROW_TYPE_ALL)), oPC);
SetLocalInt(oPC, "VoPResistance", nResist);
}
SetCompositeBonus(oSkin, "VoPResist", nResist, ITEM_PROPERTY_SAVING_THROW_BONUS, SAVING_THROW_ALL);
}
//Natural Armor +1 each 8 levels
@@ -172,16 +157,19 @@ void main()
for (nSlot=0; nSlot < 13; nSlot++) //All but creatures slots
{
oItem=GetItemInSlot(nSlot, oPC);
if((GetIsItemPropertyValid(GetFirstItemProperty(oItem)) && !(GetItemPropertyTag(GetFirstItemProperty(oItem)) == "Tag_PRC_OnHitKeeper")
&& !(nSlot == 4 || nSlot == 5)) //Check if it is magical (all items but on the hands)
|| (nSlot == 1 && GetBaseAC(oItem) >= 1) //Check if it is an armor (AC>0)
|| (nSlot == 5 && GetBaseItemType(oItem) == BASE_ITEM_SMALLSHIELD || //Check if it is a shield
GetBaseItemType(oItem) == BASE_ITEM_LARGESHIELD ||
GetBaseItemType(oItem) == BASE_ITEM_TOWERSHIELD))
if (!(GetTag(oItem) == "xp1_mystrashand") && !(GetTag(oItem) == "H2_SenseiAmulet"))
{
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature(GetName(oItem)+" would break your vow!", oPC, FALSE);
if((GetIsItemPropertyValid(GetFirstItemProperty(oItem)) && !(GetItemPropertyTag(GetFirstItemProperty(oItem)) == "Tag_PRC_OnHitKeeper")
&& !(nSlot == 4 || nSlot == 5)) //Check if it is magical (all items but on the hands)
|| (nSlot == 1 && GetBaseAC(oItem) >= 1) //Check if it is an armor (AC>0)
|| (nSlot == 5 && GetBaseItemType(oItem) == BASE_ITEM_SMALLSHIELD || //Check if it is a shield
GetBaseItemType(oItem) == BASE_ITEM_LARGESHIELD ||
GetBaseItemType(oItem) == BASE_ITEM_TOWERSHIELD))
{
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature(GetName(oItem)+" would break your vow!", oPC, FALSE);
}
}
}
@@ -222,14 +210,16 @@ void main()
&& !(GetItemPropertyTag(eCheckIP) == "Sanctify4")) iMagic = 1;
eCheckIP = GetNextItemProperty(oItem);
}
if((IPGetIsMeleeWeapon(oItem) || GetWeaponRanged(oItem)) && (iMagic || !iWeaponAllowed)) //Check if weapon is magical or not on allowed list
if (!(GetTag(oItem) == "xp1_mystrashand") && !(GetTag(oItem) == "H2_SenseiAmulet"))
{
if(!(GetBaseItemType(oItem) == BASE_ITEM_SLING && GetItemPropertyType(GetFirstItemProperty(oItem)) == ITEM_PROPERTY_MIGHTY)) //Allow Mighty Bonus on Slings
if((IPGetIsMeleeWeapon(oItem) || GetWeaponRanged(oItem)) && (iMagic || !iWeaponAllowed)) //Check if weapon is magical or not on allowed list
{
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature(GetName(oItem)+" would break your vow!", oPC, FALSE);
if(!(GetBaseItemType(oItem) == BASE_ITEM_SLING && GetItemPropertyType(GetFirstItemProperty(oItem)) == ITEM_PROPERTY_MIGHTY)) //Allow Mighty Bonus on Slings
{
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature(GetName(oItem)+" would break your vow!", oPC, FALSE);
}
}
}
}

View File

@@ -77,11 +77,14 @@ const int STAGE_SPELL_SHOPS_LEVEL_FILTER = 48;
const int STAGE_SPELL_SHOPS_ALPHABETICAL_FILTER = 49;
const int STAGE_PLANTSHAPE_SLOTS = 50;
const int STAGE_PLANTSHAPE_SHAPE = 51;
const int STAGE_WIELDING = 52;
const int STAGE_WIELDING_ONE = 53;
const int STAGE_WIELDING_TWO = 54;
const int STAGE_WIELDING_POLEARM = 55;
// Confirmation stage for registering cohort
const int STAGE_REGISTER_CONFIRM = 200;
const int STAGE_CDKEY_ADD = 509;
const int STAGE_APPEARANCE = 510;
const int STAGE_HEAD = 520;
@@ -433,6 +436,11 @@ void main()
// The stage is used to determine the active conversation node.
// 0 is the entry node.
int nStage = GetStage(oPC);
object oWeaponR = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
object oWeaponL = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
int bRanged = GetWeaponRanged(oWeaponR);
// Check which of the conversation scripts called the scripts
if(nValue == 0) // All of them set the DynConv_Var to non-zero value, so something is wrong -> abort
@@ -477,7 +485,11 @@ void main()
AddChoice("Miscellaneous options.", 11);
if(DEBUG)//TO DO: add separate switch
AddChoice("Wipe PRC Spellbooks", 12);
if((!bRanged && oWeaponR != OBJECT_INVALID) && (PRCGetCreatureSize(oPC) > 1 && PRCGetCreatureSize(oPC) < 5))
{
AddChoice("Set weapon wielding.", 52);
}
MarkStageSetUp(nStage, oPC);
SetDefaultTokens(); // Set the next, previous, exit and wait tokens to default values
}
@@ -1298,6 +1310,340 @@ void main()
AddChoice("Back", CHOICE_RETURN_TO_PREVIOUS);
MarkStageSetUp(nStage, oPC);
}
else if (nStage == STAGE_WIELDING)
{
string sHeader = "With this option you can change the how you wield certain melee weapons.";
SetHeader(sHeader);
int bShield = GetIsShield(oWeaponL);
int bTorch = (GetBaseItemType(oWeaponL) == BASE_ITEM_TORCH);
int bUnarmed = (oWeaponR == OBJECT_INVALID);
int bOneHand = (!bUnarmed && oWeaponL == OBJECT_INVALID);
int bMonkey = GetHasFeat(FEAT_MONKEY_GRIP);
int bPowerful = GetHasFeat(FEAT_RACE_POWERFUL_BUILD);
int bTwoHand = GetIsTwoHandedMeleeWeapon(oWeaponR);
int bDouble = GetIsDoubleSidedWeapon(oWeaponR);
int bPolearm = (GetBaseItemType(oWeaponR) == BASE_ITEM_HALBERD ||
GetBaseItemType(oWeaponR) == BASE_ITEM_QUARTERSTAFF ||
GetBaseItemType(oWeaponR) == BASE_ITEM_SHORTSPEAR ||
GetBaseItemType(oWeaponR) == BASE_ITEM_MAGICSTAFF);
int iSize = PRCGetCreatureSize(oPC);
int iWeaponSize = GetWeaponSize(oWeaponR);
if (iSize == CREATURE_SIZE_TINY)
{
int bAdded1H = FALSE;
if (iWeaponSize == 1 && !bShield && !bTorch)
{
AddChoice("Wield tiny weapon one-handed.", 1);
AddChoice("Wield tiny weapon two-handed.", 2);
bAdded1H = TRUE;
}
else if (iWeaponSize == 1 && (bShield || bTorch))
{
AddChoice("Wield tiny weapon one-handed.", 1);
bAdded1H = TRUE;
}
if (iWeaponSize == 2 && (bMonkey || bPowerful))
{
AddChoice("Wield small weapon one-handed.", 1);
AddChoice("Wield small weapon two-handed.", 2);
bAdded1H = TRUE;
}
else if (iWeaponSize == 2 && !bMonkey && !bPowerful && !bShield && !bTorch)
{
AddChoice("Wield small weapon two-handed.", 2);
bAdded1H = TRUE;
}
}
else if (iSize == CREATURE_SIZE_SMALL)
{
int bAdded1H = FALSE;
if (!bShield && !bTorch && bTwoHand && !bPolearm)
{
AddChoice("Wield a large weapon two-handed.", 2);
}
else if (!bShield && !bTorch && bTwoHand && bPolearm)
{
AddChoice("Wield a polearm two-handed.", 2);
}
if (iWeaponSize == 1 && !bShield && !bTorch)
{
AddChoice("Wield tiny weapon one-handed.", 1);
AddChoice("Wield tiny weapon two-handed.", 2);
bAdded1H = TRUE;
}
else if (iWeaponSize == 1 && (bShield || bTorch))
{
AddChoice("Wield tiny weapon one-handed.", 1);
bAdded1H = TRUE;
}
if (iWeaponSize == 2 && (bShield || bTorch))
{
AddChoice("Wield small weapon one-handed.", 1);
bAdded1H = TRUE;
}
else if (iWeaponSize == 2 && !bShield && !bTorch)
{
AddChoice("Wield small weapon one-handed.", 1);
AddChoice("Wield small weapon two-handed.", 2);
bAdded1H = TRUE;
}
if (iWeaponSize == 3 && !bShield && !bTorch && !bMonkey && !bPowerful)
{
AddChoice("Wield medium weapon two-handed.", 2);
}
else if (iWeaponSize == 3 && !bShield && !bTorch && (bMonkey || bPowerful))
{
AddChoice("Wield medium weapon one-handed.", 1);
AddChoice("Wield medium weapon two-handed.", 2);
}
else if (iWeaponSize == 3 && (bMonkey || bPowerful) && (bShield && bTorch))
{
AddChoice("Wield medium weapon one-handed.", 1);
}
}
else if (iSize == CREATURE_SIZE_MEDIUM)
{
int bAdded1H = FALSE;
if (bDouble && !bShield && !bTorch && (!bMonkey || !bPowerful))
{
AddChoice("Wield a double-sided weapon two-handed.", 3);
}
else if (bDouble && !bShield && !bTorch && (bMonkey || bPowerful))
{
AddChoice("Wield a double-sided weapon one-handed.", 1);
AddChoice("Wield a double-sided weapon two-handed.", 3);
bAdded1H = TRUE;
}
else if (bDouble && (bMonkey || bPowerful) && (bShield || bTorch))
{
AddChoice("Wield a double-sided weapon one-handed.", 1);
bAdded1H = TRUE;
}
if (!bTwoHand && !bPolearm && !bDouble && (bShield || bTorch))
{
AddChoice("Wield a small or medium weapon one-handed.", 1);
bAdded1H = TRUE;
}
else if (!bTwoHand && !bPolearm && !bDouble && (bMonkey || bPowerful) && (!bShield || !bTorch))
{
AddChoice("Wield a small or medium weapon one-handed.", 1);
AddChoice("Wield a small or medium weapon two-handed.", 2);
bAdded1H = TRUE;
}
if (bTwoHand && !bDouble && !bPolearm && !bDouble && (bMonkey || bPowerful) && (bShield || bTorch))
{
AddChoice("Wield a large weapon one-handed.", 1);
}
else if (bTwoHand && !bDouble && bPolearm && !bDouble && (bMonkey || bPowerful) && (bShield || bTorch))
{
AddChoice("Wield a polearm one-handed.", 1);
}
if (!bShield && !bTorch && !bDouble && bTwoHand && !bPolearm && (bMonkey || bPowerful))
{
AddChoice("Wield a large weapon one-handed.", 1);
AddChoice("Wield a large weapon two-handed.", 2);
}
if (!bShield && !bTorch && bTwoHand && !bMonkey && !bPowerful && !bPolearm && !bDouble)
{
AddChoice("Wield a large weapon two-handed.", 2);
}
if (!bShield && !bTorch && bPolearm && !bDouble && (bMonkey || bPowerful))
{
AddChoice("Wield a polearm one-handed.", 1);
AddChoice("Wield a polearm two-handed.", 3);
}
else if (bShield && bTorch && bPolearm && !bDouble && (bMonkey || bPowerful))
{
AddChoice("Wield a polearm one-handed.", 1);
}
if (!bShield && !bTorch && bPolearm && !bDouble && !bMonkey && !bPowerful)
{
AddChoice("Wield a polearm two-handed.", 3);
}
if (!bAdded1H && !bShield && !bTorch && !bPolearm && !bDouble && !bTwoHand)
{
AddChoice("Wield a small or medium weapon one-handed.", 1);
}
}
else if (iSize == CREATURE_SIZE_LARGE)
{
int bAdded1H = FALSE;
if (bDouble && bOneHand && !bShield && !bTorch )
{
AddChoice("Wield a double-sided weapon one-handed.", 1);
AddChoice("Wield a double-sided weapon two-handed.", 3);
}
else if (bDouble && (!bOneHand || bShield || bTorch))
{
AddChoice("Wield a double-sided weapon one-handed.", 1);
}
if (bTwoHand && !bPolearm && bOneHand && !bShield && !bTorch )
{
AddChoice("Wield a large weapon one-handed.", 1);
AddChoice("Wield a large weapon two-handed.", 2);
}
else if (bTwoHand && !bPolearm && (!bOneHand || bShield || bTorch))
{
AddChoice("Wield a large weapon one-handed.", 1);
}
if (bPolearm && bOneHand && !bShield && !bTorch )
{
AddChoice("Wield a polearm one-handed.", 1);
AddChoice("Wield a polearm two-handed.", 3);
}
else if (bPolearm && (!bOneHand || bShield || bTorch))
{
AddChoice("Wield a polearm one-handed.", 1);
}
if((iWeaponSize == 3) && bOneHand && !bShield && !bTorch )
{
AddChoice("Wield a medium weapon one-handed.", 1);
AddChoice("Wield a medium weapon two-handed.", 2);
}
else if(iWeaponSize == 3 && (!bOneHand || bShield || bTorch))
{
AddChoice("Wield a medium weapon one-handed.", 1);
}
else if(iWeaponSize == 2)
{
AddChoice("Wield a small weapon one-handed.", 1);
}
}
AddChoice("Back", CHOICE_RETURN_TO_PREVIOUS);
MarkStageSetUp(nStage, oPC);
}
else if (nStage == STAGE_WIELDING_ONE)
{
string sHeader = "One handed attack animations set.";
SetHeader(sHeader);
ReplaceObjectAnimation(oPC, "1hreadyr", "");
ReplaceObjectAnimation(oPC, "1hreadyl", "");
ReplaceObjectAnimation(oPC, "1hslashl", "");
ReplaceObjectAnimation(oPC, "1hslashr", "");
ReplaceObjectAnimation(oPC, "1hstab", "");
ReplaceObjectAnimation(oPC, "1hcloseh", "");
ReplaceObjectAnimation(oPC, "1hclosel", "");
ReplaceObjectAnimation(oPC, "1hreach", "");
ReplaceObjectAnimation(oPC, "1hparryl", "");
ReplaceObjectAnimation(oPC, "1hparryr", "");
ReplaceObjectAnimation(oPC, "1hslasho", "");
ReplaceObjectAnimation(oPC, "2hreadyr", "1hreadyr");
ReplaceObjectAnimation(oPC, "2hreadyl", "1hreadyl");
ReplaceObjectAnimation(oPC, "2hslashl", "1hslashl");
ReplaceObjectAnimation(oPC, "2hslashr", "1hslashr");
ReplaceObjectAnimation(oPC, "2hstab", "1hstab");
ReplaceObjectAnimation(oPC, "2hcloseh", "1hcloseh");
ReplaceObjectAnimation(oPC, "2hclosel", "1hclosel");
ReplaceObjectAnimation(oPC, "2hreach", "1hreach");
ReplaceObjectAnimation(oPC, "2hparryl", "1hparryl");
ReplaceObjectAnimation(oPC, "2hparryr", "1hparryr");
ReplaceObjectAnimation(oPC, "2hslasho", "1hslasho");
ReplaceObjectAnimation(oPC, "plreadyr", "1hreadyr");
ReplaceObjectAnimation(oPC, "plreadyl", "1hreadyl");
ReplaceObjectAnimation(oPC, "plslashl", "1hslashl");
ReplaceObjectAnimation(oPC, "plslashr", "1hslashr");
ReplaceObjectAnimation(oPC, "plstab", "1hstab");
ReplaceObjectAnimation(oPC, "plcloseh", "1hcloseh");
ReplaceObjectAnimation(oPC, "plclosel", "1hclosel");
ReplaceObjectAnimation(oPC, "plreach", "1hreach");
ReplaceObjectAnimation(oPC, "plparryl", "1hparryl");
ReplaceObjectAnimation(oPC, "plparryr", "1hparryr");
ReplaceObjectAnimation(oPC, "plslasho", "1hslasho");
AddChoice("Back", CHOICE_RETURN_TO_PREVIOUS);
MarkStageSetUp(nStage, oPC);
}
else if (nStage == STAGE_WIELDING_TWO)
{
string sHeader = "Two-handed attack animations set.";
SetHeader(sHeader);
ReplaceObjectAnimation(oPC, "1hreadyr", "2hreadyr");
ReplaceObjectAnimation(oPC, "1hreadyl", "2hreadyl");
ReplaceObjectAnimation(oPC, "1hslashl", "2hslashl");
ReplaceObjectAnimation(oPC, "1hslashr", "2hslashr");
ReplaceObjectAnimation(oPC, "1hstab", "2hstab");
ReplaceObjectAnimation(oPC, "1hcloseh", "2hcloseh");
ReplaceObjectAnimation(oPC, "1hclosel", "2hclosel");
ReplaceObjectAnimation(oPC, "1hreach", "2hreach");
ReplaceObjectAnimation(oPC, "1hparryl", "2hparryl");
ReplaceObjectAnimation(oPC, "1hparryr", "2hparryr");
ReplaceObjectAnimation(oPC, "1hslasho", "2hslasho");
ReplaceObjectAnimation(oPC, "2hreadyr", "");
ReplaceObjectAnimation(oPC, "2hreadyl", "");
ReplaceObjectAnimation(oPC, "2hslashl", "");
ReplaceObjectAnimation(oPC, "2hslashr", "");
ReplaceObjectAnimation(oPC, "2hstab", "");
ReplaceObjectAnimation(oPC, "2hcloseh", "");
ReplaceObjectAnimation(oPC, "2hclosel", "");
ReplaceObjectAnimation(oPC, "2hreach", "");
ReplaceObjectAnimation(oPC, "2hparryl", "");
ReplaceObjectAnimation(oPC, "2hparryr", "");
ReplaceObjectAnimation(oPC, "2hslasho", "");
ReplaceObjectAnimation(oPC, "plreadyr", "");
ReplaceObjectAnimation(oPC, "plreadyl", "");
ReplaceObjectAnimation(oPC, "plslashl", "");
ReplaceObjectAnimation(oPC, "plslashr", "");
ReplaceObjectAnimation(oPC, "plstab", "");
ReplaceObjectAnimation(oPC, "plcloseh", "");
ReplaceObjectAnimation(oPC, "plclosel", "");
ReplaceObjectAnimation(oPC, "plreach", "");
ReplaceObjectAnimation(oPC, "plparryl", "");
ReplaceObjectAnimation(oPC, "plparryr", "");
ReplaceObjectAnimation(oPC, "plslasho", "");
AddChoice("Back", CHOICE_RETURN_TO_PREVIOUS);
MarkStageSetUp(nStage, oPC);
}
else if (nStage == STAGE_WIELDING_POLEARM)
{
string sHeader = "Polearm attack animations set.";
SetHeader(sHeader);
ReplaceObjectAnimation(oPC, "plreadyr", "");
ReplaceObjectAnimation(oPC, "plreadyl", "");
ReplaceObjectAnimation(oPC, "plslashl", "");
ReplaceObjectAnimation(oPC, "plslashr", "");
ReplaceObjectAnimation(oPC, "plstab", "");
ReplaceObjectAnimation(oPC, "plcloseh", "");
ReplaceObjectAnimation(oPC, "plclosel", "");
ReplaceObjectAnimation(oPC, "plreach", "");
ReplaceObjectAnimation(oPC, "plparryl", "");
ReplaceObjectAnimation(oPC, "plparryr", "");
ReplaceObjectAnimation(oPC, "plslasho", "");
AddChoice("Back", CHOICE_RETURN_TO_PREVIOUS);
MarkStageSetUp(nStage, oPC);
}
}
// Do token setup
@@ -1379,6 +1725,8 @@ void main()
nStage = STAGE_LA_BUYOFF;
else if(nChoice == 42)
nStage = STAGE_ENCOUNTER_AREAS;
else if(nChoice == 52)
nStage = STAGE_WIELDING;
else if(nChoice == 10)
nStage = STAGE_APPEARANCE;
else if(nChoice == 11)
@@ -2091,7 +2439,125 @@ void main()
nStage = STAGE_ENTRY;
MarkStageNotSetUp(nStage, oPC);
}
else if (nStage == STAGE_WIELDING)
{
if(nChoice == CHOICE_RETURN_TO_PREVIOUS)
{
nStage = STAGE_ENTRY;
MarkStageNotSetUp(nStage, oPC);
}
if(nChoice == 1)
{
string sHeader = "One handed attack animations set.";
SetHeader(sHeader);
ReplaceObjectAnimation(oPC, "1hreadyr", "");
ReplaceObjectAnimation(oPC, "1hreadyl", "");
ReplaceObjectAnimation(oPC, "1hslashl", "");
ReplaceObjectAnimation(oPC, "1hslashr", "");
ReplaceObjectAnimation(oPC, "1hstab", "");
ReplaceObjectAnimation(oPC, "1hcloseh", "");
ReplaceObjectAnimation(oPC, "1hclosel", "");
ReplaceObjectAnimation(oPC, "1hreach", "");
ReplaceObjectAnimation(oPC, "1hparryl", "");
ReplaceObjectAnimation(oPC, "1hparryr", "");
ReplaceObjectAnimation(oPC, "1hslasho", "");
ReplaceObjectAnimation(oPC, "2hreadyr", "1hreadyr");
ReplaceObjectAnimation(oPC, "2hreadyl", "1hreadyl");
ReplaceObjectAnimation(oPC, "2hslashl", "1hslashl");
ReplaceObjectAnimation(oPC, "2hslashr", "1hslashr");
ReplaceObjectAnimation(oPC, "2hstab", "1hstab");
ReplaceObjectAnimation(oPC, "2hcloseh", "1hcloseh");
ReplaceObjectAnimation(oPC, "2hclosel", "1hclosel");
ReplaceObjectAnimation(oPC, "2hreach", "1hreach");
ReplaceObjectAnimation(oPC, "2hparryl", "1hparryl");
ReplaceObjectAnimation(oPC, "2hparryr", "1hparryr");
ReplaceObjectAnimation(oPC, "2hslasho", "1hslasho");
ReplaceObjectAnimation(oPC, "plreadyr", "1hreadyr");
ReplaceObjectAnimation(oPC, "plreadyl", "1hreadyl");
ReplaceObjectAnimation(oPC, "plslashl", "1hslashl");
ReplaceObjectAnimation(oPC, "plslashr", "1hslashr");
ReplaceObjectAnimation(oPC, "plstab", "1hstab");
ReplaceObjectAnimation(oPC, "plcloseh", "1hcloseh");
ReplaceObjectAnimation(oPC, "plclosel", "1hclosel");
ReplaceObjectAnimation(oPC, "plreach", "1hreach");
ReplaceObjectAnimation(oPC, "plparryl", "1hparryl");
ReplaceObjectAnimation(oPC, "plparryr", "1hparryr");
ReplaceObjectAnimation(oPC, "plslasho", "1hslasho");
//AddChoice("Back", CHOICE_RETURN_TO_PREVIOUS);
MarkStageSetUp(nStage, oPC);
}
if(nChoice == 2)
{
string sHeader = "Two-handed attack animations set.";
SetHeader(sHeader);
ReplaceObjectAnimation(oPC, "1hreadyr", "2hreadyr");
ReplaceObjectAnimation(oPC, "1hreadyl", "2hreadyl");
ReplaceObjectAnimation(oPC, "1hslashl", "2hslashl");
ReplaceObjectAnimation(oPC, "1hslashr", "2hslashr");
ReplaceObjectAnimation(oPC, "1hstab", "2hstab");
ReplaceObjectAnimation(oPC, "1hcloseh", "2hcloseh");
ReplaceObjectAnimation(oPC, "1hclosel", "2hclosel");
ReplaceObjectAnimation(oPC, "1hreach", "2hreach");
ReplaceObjectAnimation(oPC, "1hparryl", "2hparryl");
ReplaceObjectAnimation(oPC, "1hparryr", "2hparryr");
ReplaceObjectAnimation(oPC, "1hslasho", "2hslasho");
ReplaceObjectAnimation(oPC, "2hreadyr", "");
ReplaceObjectAnimation(oPC, "2hreadyl", "");
ReplaceObjectAnimation(oPC, "2hslashl", "");
ReplaceObjectAnimation(oPC, "2hslashr", "");
ReplaceObjectAnimation(oPC, "2hstab", "");
ReplaceObjectAnimation(oPC, "2hcloseh", "");
ReplaceObjectAnimation(oPC, "2hclosel", "");
ReplaceObjectAnimation(oPC, "2hreach", "");
ReplaceObjectAnimation(oPC, "2hparryl", "");
ReplaceObjectAnimation(oPC, "2hparryr", "");
ReplaceObjectAnimation(oPC, "2hslasho", "");
ReplaceObjectAnimation(oPC, "plreadyr", "");
ReplaceObjectAnimation(oPC, "plreadyl", "");
ReplaceObjectAnimation(oPC, "plslashl", "");
ReplaceObjectAnimation(oPC, "plslashr", "");
ReplaceObjectAnimation(oPC, "plstab", "");
ReplaceObjectAnimation(oPC, "plcloseh", "");
ReplaceObjectAnimation(oPC, "plclosel", "");
ReplaceObjectAnimation(oPC, "plreach", "");
ReplaceObjectAnimation(oPC, "plparryl", "");
ReplaceObjectAnimation(oPC, "plparryr", "");
ReplaceObjectAnimation(oPC, "plslasho", "");
//AddChoice("Back", CHOICE_RETURN_TO_PREVIOUS);
MarkStageSetUp(nStage, oPC);
}
if(nChoice == 3)
{
string sHeader = "Polearm attack animations set.";
SetHeader(sHeader);
ReplaceObjectAnimation(oPC, "plreadyr", "");
ReplaceObjectAnimation(oPC, "plreadyl", "");
ReplaceObjectAnimation(oPC, "plslashl", "");
ReplaceObjectAnimation(oPC, "plslashr", "");
ReplaceObjectAnimation(oPC, "plstab", "");
ReplaceObjectAnimation(oPC, "plcloseh", "");
ReplaceObjectAnimation(oPC, "plclosel", "");
ReplaceObjectAnimation(oPC, "plreach", "");
ReplaceObjectAnimation(oPC, "plparryl", "");
ReplaceObjectAnimation(oPC, "plparryr", "");
ReplaceObjectAnimation(oPC, "plslasho", "");
//AddChoice("Back", CHOICE_RETURN_TO_PREVIOUS);
MarkStageSetUp(nStage, oPC);
}
}
// Store the stage value. If it has been changed, this clears out the choices
SetStage(nStage, oPC);
}