diff --git a/.gitignore b/.gitignore
index 4c5ded7a..1f5c5892 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,5 @@
_module/poa.mod
*.mod
*.mod
+*.hak
+_haks/output/poa_dev.md5
diff --git a/_haks/output/poa_dev.hak b/_haks/output/poa_dev.hak
deleted file mode 100644
index 03e5aeb2..00000000
Binary files a/_haks/output/poa_dev.hak and /dev/null differ
diff --git a/_haks/output/poa_dev.md5 b/_haks/output/poa_dev.md5
deleted file mode 100644
index e117e641..00000000
--- a/_haks/output/poa_dev.md5
+++ /dev/null
@@ -1 +0,0 @@
-470c8aa2ec6da2fb021692e5bf508f39
\ No newline at end of file
diff --git a/_haks/poa_dev/nw_s1_aurafear.ncs b/_haks/poa_dev/nw_s1_aurafear.ncs
index 104b632d..f6cfd5ac 100644
Binary files a/_haks/poa_dev/nw_s1_aurafear.ncs and b/_haks/poa_dev/nw_s1_aurafear.ncs differ
diff --git a/_haks/poa_dev/nw_s1_aurafear.nss b/_haks/poa_dev/nw_s1_aurafear.nss
index de8f8aa3..52750544 100644
--- a/_haks/poa_dev/nw_s1_aurafear.nss
+++ b/_haks/poa_dev/nw_s1_aurafear.nss
@@ -13,8 +13,19 @@
//:: Created On: May 25, 2001
//:://////////////////////////////////////////////
+// Modified 2004/01/30 (Brian Greinke)
+// Added disable/reenable support
+#include "prc_alterations"
+
void main()
{
+ //first, look to see if effect is already activated
+ if ( GetHasSpellEffect(SPELLABILITY_AURA_FEAR, OBJECT_SELF) )
+ {
+ PRCRemoveSpellEffects( SPELLABILITY_AURA_FEAR, OBJECT_SELF, OBJECT_SELF );
+ return;
+ }
+
object oCaster = OBJECT_SELF;
if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(oCaster))
{
diff --git a/_haks/poa_dev/nw_s1_barbrage.ncs b/_haks/poa_dev/nw_s1_barbrage.ncs
deleted file mode 100644
index 4f4b0ce2..00000000
Binary files a/_haks/poa_dev/nw_s1_barbrage.ncs and /dev/null differ
diff --git a/_haks/poa_dev/nw_s2_bardsong.ncs b/_haks/poa_dev/nw_s2_bardsong.ncs
deleted file mode 100644
index 7bcc0476..00000000
Binary files a/_haks/poa_dev/nw_s2_bardsong.ncs and /dev/null differ
diff --git a/_haks/poa_dev/nw_s2_elemshape.ncs b/_haks/poa_dev/nw_s2_elemshape.ncs
index b364ac81..cbc44263 100644
Binary files a/_haks/poa_dev/nw_s2_elemshape.ncs and b/_haks/poa_dev/nw_s2_elemshape.ncs differ
diff --git a/_haks/poa_dev/nw_s2_elemshape.nss b/_haks/poa_dev/nw_s2_elemshape.nss
index 6c71d2a6..321ad246 100644
--- a/_haks/poa_dev/nw_s2_elemshape.nss
+++ b/_haks/poa_dev/nw_s2_elemshape.nss
@@ -10,21 +10,36 @@
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 22, 2002
//:://////////////////////////////////////////////
-//:: Modified By: Iznoghoud - January 19 2004
-/*
-What this script changes:
-Allows druid elemental shapes to get stacking item properties carried over correctly
-just like shifters.
-See Iznoghoud's x2_s2_gwildshp script for an in-detail description.
-Added fix for a Bioware Bug: Druids now get elder wildshapes at level 20 and above,
-not just when exactly level 20.
-*/
+//:: Modified By: Deva Winblood
+//:: Modified Date: January 15th-16th, 2008
//:://////////////////////////////////////////////
+/*
+ Modified to insure no shapeshifting spells are castable upon
+ mounted targets. This prevents problems that can occur due
+ to dismounting after shape shifting, or other issues that can
+ occur due to preserved appearances getting out of synch.
+
+ This can additional check can be disabled by setting the variable
+ X3_NO_SHAPESHIFT_SPELL_CHECK to 1 on the module object. If this
+ variable is set then this script will function as it did prior to
+ this modification.
+
+*/
+
+//#include "x3_inc_horse"
+#include "prc_alterations"
+#include "pnp_shft_poly"
+
+void elemental_shape_shift(object oPC, int nShape)
+
+{
+ string sResRef = Get2DACache("prc_polymorph", "ResRef", nShape);
+ StoreCurrentAppearanceAsTrueAppearance(oPC, TRUE);
+ ShiftIntoResRef(oPC, SHIFTER_TYPE_DRUID, sResRef, TRUE);
+}
-#include "ws_inc_shifter"
void main()
{
-
if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF))
{
@@ -34,18 +49,32 @@ if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF))
}
//Declare major variables
int nSpell = GetSpellId();
- object oTarget = GetSpellTargetObject();
+ object oTarget = PRCGetSpellTargetObject();
effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
effect ePoly;
int nPoly;
- int nMetaMagic = GetMetaMagicFeat();
- int nDuration = GetCasterLevel(OBJECT_SELF);
+ int nDuration = GetLevelByClass(CLASS_TYPE_DRUID)
+ + GetLevelByClass(CLASS_TYPE_ARCANE_HIEROPHANT);
int bElder = FALSE;
- //Enter Metamagic conditions
- if (nMetaMagic == METAMAGIC_EXTEND)
+ if (!GetLocalInt(GetModule(),"X3_NO_SHAPESHIFT_SPELL_CHECK"))
+ { // check to see if abort due to being mounted
+ if (PRCHorseGetIsMounted(oTarget))
+ { // abort
+ if (GetIsPC(oTarget)) FloatingTextStrRefOnCreature(111982,oTarget,FALSE);
+ return;
+ } // abort
+ } // check to see if abort due to being mounted
+
+ //this command will make shore that polymorph plays nice with the shifter
+ ShifterCheck(OBJECT_SELF);
+
+ int nShape = GetPersistantLocalInt(OBJECT_SELF, PRC_PNP_SHIFTING + IntToString(nSpell));
+ if(nShape > 0)
{
- nDuration = nDuration *2; //Duration is +100%
+ elemental_shape_shift(OBJECT_SELF, nShape);
+ return;
}
+
if(GetLevelByClass(CLASS_TYPE_DRUID) >= 20)
{
bElder = TRUE;
@@ -89,241 +118,246 @@ if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF))
nPoly = POLYMORPH_TYPE_ELDER_AIR_ELEMENTAL;
}
}
-
- int bWeapon;
- int bArmor;
- int bItems;
- int bCopyGlovesToClaws = FALSE;
-
- bWeapon = StringToInt(Get2DAString("polymorph","MergeW",nPoly)) == 1;
-
- if ( WS_ALWAYS_COPY_ARMOR_PROPS )
- bArmor = TRUE;
- else
- bArmor = StringToInt(Get2DAString("polymorph","MergeA",nPoly)) == 1;
-
- if ( WS_ALWAYS_COPY_ITEM_PROPS )
- bItems = TRUE;
- else
- bItems = StringToInt(Get2DAString("polymorph","MergeI",nPoly)) == 1;
-
- // Send message to PC about which items get merged to this form
- string sMerge;
- sMerge = "Merged: "; // : This is a color code that makes the text behind it sort of light blue.
- if(bArmor) sMerge += "Armor, Helmet, Shield";
- if(bItems) sMerge += ", Rings, Amulet, Cloak, Boots, Belt, Bracers";
- if( bWeapon || WS_COPY_WEAPON_PROPS_TO_UNARMED == 1 )
- sMerge += ", Weapon";
- else if ( WS_COPY_WEAPON_PROPS_TO_UNARMED == 2 )
- sMerge += ", Gloves to unarmed attacks";
- else if (WS_COPY_WEAPON_PROPS_TO_UNARMED == 3 )
- sMerge += ", Weapon (if you had one equipped) or gloves to unarmed attacks";
- else
- sMerge += ", No weapon or gloves to unarmed attacks";
- SendMessageToPC(oTarget,sMerge + ".");
-
- // Store which items should transfer to this polymorph type. (For exportallchar scripts)
- SetLocalInt(oTarget, "GW_PolyID", nPoly);
- SetLocalInt(oTarget, "GW_bWeapon", bWeapon );
- SetLocalInt(oTarget, "GW_bArmor", bArmor );
- SetLocalInt(oTarget, "GW_bItems", bItems );
-
- //--------------------------------------------------------------------------
- // Store the old objects so we can access them after the character has
- // changed into his new form
- //--------------------------------------------------------------------------
- object oWeaponOld;
- object oArmorOld;
- object oRing1Old ;
- object oRing2Old;
- object oAmuletOld;
- object oCloakOld ;
- object oBootsOld ;
- object oBeltOld ;
- object oHelmetOld;
- object oShield ;
- object oBracerOld;
- object oHideOld;
- //Assume the normal shape doesn't have a creature skin object.
- //If using a subracesystem or something else that places a skin on the normal shape
- //another condition is needed to decide whether or not to store current items.
- //One way could be to scan all effects to see whether one is a polymorph effect.
- int nPolyed = GetIsObjectValid(GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF));
- // If there is a creature armor see if it is a creature hide put
- // on the unpolymorphed player by scanning for a polymorph effect.
- if ( nPolyed )
- nPolyed = ( ScanForPolymorphEffect(OBJECT_SELF) != -2 );
- if(! nPolyed)
- {
- //if not polymorphed get items worn and store on player.
- oWeaponOld = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
- oArmorOld = GetItemInSlot(INVENTORY_SLOT_CHEST,OBJECT_SELF);
- oRing1Old = GetItemInSlot(INVENTORY_SLOT_LEFTRING,OBJECT_SELF);
- oRing2Old = GetItemInSlot(INVENTORY_SLOT_RIGHTRING,OBJECT_SELF);
- oAmuletOld = GetItemInSlot(INVENTORY_SLOT_NECK,OBJECT_SELF);
- oCloakOld = GetItemInSlot(INVENTORY_SLOT_CLOAK,OBJECT_SELF);
- oBootsOld = GetItemInSlot(INVENTORY_SLOT_BOOTS,OBJECT_SELF);
- oBeltOld = GetItemInSlot(INVENTORY_SLOT_BELT,OBJECT_SELF);
- oHelmetOld = GetItemInSlot(INVENTORY_SLOT_HEAD,OBJECT_SELF);
- oShield = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,OBJECT_SELF);
- oBracerOld = GetItemInSlot(INVENTORY_SLOT_ARMS,OBJECT_SELF);
- oHideOld = GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF);
- SetLocalObject(OBJECT_SELF,"GW_OldWeapon",oWeaponOld);
- SetLocalObject(OBJECT_SELF,"GW_OldArmor",oArmorOld);
- SetLocalObject(OBJECT_SELF,"GW_OldRing1",oRing1Old);
- SetLocalObject(OBJECT_SELF,"GW_OldRing2",oRing2Old);
- SetLocalObject(OBJECT_SELF,"GW_OldAmulet",oAmuletOld);
- SetLocalObject(OBJECT_SELF,"GW_OldCloak",oCloakOld);
- SetLocalObject(OBJECT_SELF,"GW_OldBoots",oBootsOld);
- SetLocalObject(OBJECT_SELF,"GW_OldBelt",oBeltOld);
- SetLocalObject(OBJECT_SELF,"GW_OldHelmet",oHelmetOld);
- SetLocalObject(OBJECT_SELF,"GW_OldBracer",oBracerOld);
- SetLocalObject(OBJECT_SELF,"GW_OldHide",oHideOld);
- if (GetIsObjectValid(oShield))
- {
- if (GetBaseItemType(oShield) !=BASE_ITEM_LARGESHIELD &&
- GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD &&
- GetBaseItemType(oShield) !=BASE_ITEM_TOWERSHIELD)
- {
- oShield = OBJECT_INVALID;
- }
- }
- SetLocalObject(OBJECT_SELF,"GW_OldShield",oShield);
-
- }
- else
- {
- //if already polymorphed use items stored earlier.
- oWeaponOld = GetLocalObject(OBJECT_SELF,"GW_OldWeapon");
- oArmorOld = GetLocalObject(OBJECT_SELF,"GW_OldArmor");
- oRing1Old = GetLocalObject(OBJECT_SELF,"GW_OldRing1");
- oRing2Old = GetLocalObject(OBJECT_SELF,"GW_OldRing2");
- oAmuletOld = GetLocalObject(OBJECT_SELF,"GW_OldAmulet");
- oCloakOld = GetLocalObject(OBJECT_SELF,"GW_OldCloak");
- oBootsOld = GetLocalObject(OBJECT_SELF,"GW_OldBoots");
- oBeltOld = GetLocalObject(OBJECT_SELF,"GW_OldBelt");
- oHelmetOld = GetLocalObject(OBJECT_SELF,"GW_OldHelmet");
- oShield = GetLocalObject(OBJECT_SELF,"GW_OldShield");
- oBracerOld = GetLocalObject(OBJECT_SELF,"GW_OldBracer");
- oHideOld = GetLocalObject(OBJECT_SELF,"GW_OldHide");
- }
-
- //--------------------------------------------------------------------------
- // Here the actual polymorphing is done
- //--------------------------------------------------------------------------
ePoly = EffectPolymorph(nPoly);
- //--------------------------------------------------------------------------
- // Iznoghoud: Link the stackable properties as permanent bonuses to the
- // Polymorph effect, instead of putting them on the creature hide. They will
- // properly disappear as soon as the polymorph is ended.
- //--------------------------------------------------------------------------
- ePoly = AddStackablePropertiesToPoly ( oTarget, ePoly, bWeapon, bItems, bArmor, oArmorOld, oRing1Old, oRing2Old, oAmuletOld, oCloakOld, oBracerOld, oBootsOld, oBeltOld, oHelmetOld, oShield, oWeaponOld, oHideOld);
- ePoly = ExtraordinaryEffect(ePoly);
- ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
- ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, OBJECT_SELF, HoursToSeconds(nDuration));
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_ELEMENTAL_SHAPE, FALSE));
- //--------------------------------------------------------------------------
- // This code handles the merging of item properties
- //--------------------------------------------------------------------------
- object oWeaponNew = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
- object oArmorNew = GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF);
- object oClawLeft = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L,OBJECT_SELF);
- object oClawRight = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R,OBJECT_SELF);
- object oBite = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B,OBJECT_SELF);
- //--------------------------------------------------------------------------
- // ...Weapons
- //--------------------------------------------------------------------------
- if (bWeapon)
+
+ int bWeapon = StringToInt(Get2DACache("polymorph","MergeW",nPoly)) == 1;
+ int bArmor = StringToInt(Get2DACache("polymorph","MergeA",nPoly)) == 1;
+ int bItems = StringToInt(Get2DACache("polymorph","MergeI",nPoly)) == 1;
+
+
+ object oWeaponOld = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
+ object oArmorOld = GetItemInSlot(INVENTORY_SLOT_CHEST,OBJECT_SELF);
+ object oRing1Old = GetItemInSlot(INVENTORY_SLOT_LEFTRING,OBJECT_SELF);
+ object oRing2Old = GetItemInSlot(INVENTORY_SLOT_RIGHTRING,OBJECT_SELF);
+ object oAmuletOld = GetItemInSlot(INVENTORY_SLOT_NECK,OBJECT_SELF);
+ object oCloakOld = GetItemInSlot(INVENTORY_SLOT_CLOAK,OBJECT_SELF);
+ object oBootsOld = GetItemInSlot(INVENTORY_SLOT_BOOTS,OBJECT_SELF);
+ object oBeltOld = GetItemInSlot(INVENTORY_SLOT_BELT,OBJECT_SELF);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ object oHelmetOld = GetItemInSlot(INVENTORY_SLOT_HEAD,OBJECT_SELF);
+ object oShield = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,OBJECT_SELF);
+ if (GetIsObjectValid(oShield))
+
+
+
{
- //----------------------------------------------------------------------
- // GZ: 2003-10-20
- // Sorry, but I was forced to take that out, it was confusing people
- // and there were problems with updating the stats sheet.
- //----------------------------------------------------------------------
- /* if (!GetIsObjectValid(oWeaponOld))
+ if (GetBaseItemType(oShield) !=BASE_ITEM_LARGESHIELD &&
+ GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD &&
+ GetBaseItemType(oShield) !=BASE_ITEM_TOWERSHIELD)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{
- //------------------------------------------------------------------
- // If we had no weapon equipped before, remove the old weapon
- // to allow monks to change into unarmed forms by not equipping any
- // weapon before polymorphing
- //------------------------------------------------------------------
- DestroyObject(oWeaponNew);
+
+
+
+
+ oShield = OBJECT_INVALID;
+
}
- else*/
- {
- //------------------------------------------------------------------
- // Merge item properties...
- //------------------------------------------------------------------
- WildshapeCopyWeaponProperties(oTarget, oWeaponOld, oWeaponNew);
- }
- }
- else {
- switch ( WS_COPY_WEAPON_PROPS_TO_UNARMED )
- {
- case 1: // Copy over weapon properties to claws/bite
- WildshapeCopyNonStackProperties(oWeaponOld,oClawLeft, TRUE);
- WildshapeCopyNonStackProperties(oWeaponOld,oClawRight, TRUE);
- WildshapeCopyNonStackProperties(oWeaponOld,oBite, TRUE);
- break;
- case 2: // Copy over glove properties to claws/bite
- WildshapeCopyNonStackProperties(oBracerOld,oClawLeft, FALSE);
- WildshapeCopyNonStackProperties(oBracerOld,oClawRight, FALSE);
- WildshapeCopyNonStackProperties(oBracerOld,oBite, FALSE);
- bCopyGlovesToClaws = TRUE;
- break;
- case 3: // Copy over weapon properties to claws/bite if wearing a weapon, otherwise copy gloves
- if ( GetIsObjectValid(oWeaponOld) )
- {
- WildshapeCopyNonStackProperties(oWeaponOld,oClawLeft, TRUE);
- WildshapeCopyNonStackProperties(oWeaponOld,oClawRight, TRUE);
- WildshapeCopyNonStackProperties(oWeaponOld,oBite, TRUE);
- }
- else
- {
- WildshapeCopyNonStackProperties(oBracerOld,oClawLeft, FALSE);
- WildshapeCopyNonStackProperties(oBracerOld,oClawRight, FALSE);
- WildshapeCopyNonStackProperties(oBracerOld,oBite, FALSE);
- bCopyGlovesToClaws = TRUE;
- }
- break;
- default: // Do not copy over anything
- break;
- };
- }
- //--------------------------------------------------------------------------
- // ...Armor
- //--------------------------------------------------------------------------
- if (bArmor)
- {
- //----------------------------------------------------------------------
- // Merge item properties from armor and helmet...
- //----------------------------------------------------------------------
- WildshapeCopyNonStackProperties(oArmorOld,oArmorNew);
- WildshapeCopyNonStackProperties(oHelmetOld,oArmorNew);
- WildshapeCopyNonStackProperties(oShield,oArmorNew);
- WildshapeCopyNonStackProperties(oHideOld,oArmorNew);
- }
- //--------------------------------------------------------------------------
- // ...Magic Items
- //--------------------------------------------------------------------------
- if (bItems)
- {
- //----------------------------------------------------------------------
- // Merge item properties from from rings, amulets, cloak, boots, belt
- // Iz: And bracers, in case oBracerOld gets set to a valid object.
- //----------------------------------------------------------------------
- WildshapeCopyNonStackProperties(oRing1Old,oArmorNew);
- WildshapeCopyNonStackProperties(oRing2Old,oArmorNew);
- WildshapeCopyNonStackProperties(oAmuletOld,oArmorNew);
- WildshapeCopyNonStackProperties(oCloakOld,oArmorNew);
- WildshapeCopyNonStackProperties(oBootsOld,oArmorNew);
- WildshapeCopyNonStackProperties(oBeltOld,oArmorNew);
- // Because Bracers can have On Hit Cast Spell type properties we should
- // avoid copying the bracers twice. Otherwise the player can get that On
- // Hit effect both when hitting, and getting hit.
- if ( bCopyGlovesToClaws == FALSE )
- WildshapeCopyNonStackProperties(oBracerOld,oArmorNew);
}
+
+ //this command will make shore that polymorph plays nice with the shifter
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ShifterCheck(OBJECT_SELF);
+
+
+
+ //Apply the VFX impact and effects
+ ClearAllActions(); // prevents an exploit
+
+
+
+
+
+
+
+
+
+ ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
+ ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, OBJECT_SELF, HoursToSeconds(nDuration));
+
+
+
+
+
+ object oWeaponNew = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
+ object oArmorNew = GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF);
+
+
+
+
+
+
+ if (bWeapon)
+ {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IPWildShapeCopyItemProperties(oWeaponOld,oWeaponNew, TRUE);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+
+
+
+ if (bArmor)
+ {
+ IPWildShapeCopyItemProperties(oHelmetOld,oArmorNew);
+ IPWildShapeCopyItemProperties(oArmorOld,oArmorNew);
+
+
+
+ IPWildShapeCopyItemProperties(oShield,oArmorNew);
+
+ }
+
+
+
+ if (bItems)
+ {
+
+
+
+
+ IPWildShapeCopyItemProperties(oRing1Old,oArmorNew);
+ IPWildShapeCopyItemProperties(oRing2Old,oArmorNew);
+ IPWildShapeCopyItemProperties(oAmuletOld,oArmorNew);
+ IPWildShapeCopyItemProperties(oCloakOld,oArmorNew);
+ IPWildShapeCopyItemProperties(oBootsOld,oArmorNew);
+ IPWildShapeCopyItemProperties(oBeltOld,oArmorNew);
+
+
+
+
+
+ }
+
+ DelayCommand(1.5,ActionCastSpellOnSelf(SPELL_SHAPE_INCREASE_DAMAGE));
}
diff --git a/_haks/poa_dev/nw_s2_wholeness.ncs b/_haks/poa_dev/nw_s2_wholeness.ncs
deleted file mode 100644
index 4e13fabf..00000000
Binary files a/_haks/poa_dev/nw_s2_wholeness.ncs and /dev/null differ
diff --git a/_haks/poa_dev/nw_s2_wildshape.ncs b/_haks/poa_dev/nw_s2_wildshape.ncs
index fe2fc3d8..49b525d9 100644
Binary files a/_haks/poa_dev/nw_s2_wildshape.ncs and b/_haks/poa_dev/nw_s2_wildshape.ncs differ
diff --git a/_haks/poa_dev/nw_s2_wildshape.nss b/_haks/poa_dev/nw_s2_wildshape.nss
index d6af398a..5b2a2f56 100644
--- a/_haks/poa_dev/nw_s2_wildshape.nss
+++ b/_haks/poa_dev/nw_s2_wildshape.nss
@@ -15,20 +15,37 @@
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 22, 2002
//:://////////////////////////////////////////////
-//:: Modified By: Iznoghoud - January 19 2004
-/*
-What this script changes:
-Allows druid wildshapes to get stacking item properties carried over correctly
-just like shifters.
-See Iznoghoud's x2_s2_gwildshp script for an in-detail description.
-*/
+//:: Modified By: Deva Winblood
+//:: Modified Date: January 15th-16th, 2008
//:://////////////////////////////////////////////
+/*
+ Modified to insure no shapeshifting spells are castable upon
+ mounted targets. This prevents problems that can occur due
+ to dismounting after shape shifting, or other issues that can
+ occur due to preserved appearances getting out of synch.
-#include "ws_inc_shifter"
+ This can additional check can be disabled by setting the variable
+ X3_NO_SHAPESHIFT_SPELL_CHECK to 1 on the module object. If this
+ variable is set then this script will function as it did prior to
+ this modification.
+
+*/
+
+
+//#include "x3_inc_horse"
+#include "prc_alterations"
+#include "pnp_shft_poly"
+
+void wild_shape_shift(object oPC, int nShape)
+{
+ string sResRef = Get2DACache("prc_polymorph", "ResRef", nShape);
+ StoreCurrentAppearanceAsTrueAppearance(oPC, TRUE);
+ ShiftIntoResRef(oPC, SHIFTER_TYPE_DRUID, sResRef);
+}
void main()
+
{
-
//Override in town, no casting!
if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF))
{
@@ -37,21 +54,41 @@ if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF))
return;
}
-
//Declare major variables
int nSpell = GetSpellId();
- object oTarget = GetSpellTargetObject();
+ object oTarget = PRCGetSpellTargetObject();
+ object oPC = OBJECT_SELF;
effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
effect ePoly;
int nPoly;
- int nMetaMagic = GetMetaMagicFeat();
- int nDuration = GetLevelByClass(CLASS_TYPE_DRUID);
+ int nMetaMagic = PRCGetMetaMagicFeat();
+ int nDuration = GetLevelByClass(CLASS_TYPE_DRUID, oPC)
+ + GetLevelByClass(CLASS_TYPE_ARCANE_HIEROPHANT, oPC);
+ if (!GetLocalInt(GetModule(),"X3_NO_SHAPESHIFT_SPELL_CHECK"))
+ { // check to see if abort due to being mounted
+ if (PRCHorseGetIsMounted(oTarget))
+ { // abort
+ if (GetIsPC(oTarget)) FloatingTextStrRefOnCreature(111982,oTarget,FALSE);
+ return;
+ } // abort
+ } // check to see if abort due to being mounted
+
//Enter Metamagic conditions
- if (nMetaMagic == METAMAGIC_EXTEND)
+ if ((nMetaMagic & METAMAGIC_EXTEND))
{
nDuration = nDuration *2; //Duration is +100%
}
+ //this command will make shore that polymorph plays nice with the shifter
+ ShifterCheck(OBJECT_SELF);
+
+ int nShape = GetPersistantLocalInt(oPC, PRC_PNP_SHIFTING + IntToString(nSpell));
+ if(nShape > 0)
+ {
+ wild_shape_shift(oPC, nShape);
+ return;
+ }
+
//Determine Polymorph subradial type
if(nSpell == 401)
{
@@ -93,255 +130,255 @@ if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF))
{
nPoly = POLYMORPH_TYPE_DIRE_BADGER;
}
- }
+
- int bWeapon;
- int bArmor;
- int bItems;
- int bCopyGlovesToClaws = FALSE;
+
+
+
+
- bWeapon = StringToInt(Get2DAString("polymorph","MergeW",nPoly)) == 1;
+
- if ( WS_ALWAYS_COPY_ARMOR_PROPS )
- bArmor = TRUE;
- else
- bArmor = StringToInt(Get2DAString("polymorph","MergeA",nPoly)) == 1;
+
+
+
+
- if ( WS_ALWAYS_COPY_ITEM_PROPS )
- bItems = TRUE;
- else
- bItems = StringToInt(Get2DAString("polymorph","MergeI",nPoly)) == 1;
+
+
+
+
- // Send message to PC about which items get merged to this form
- string sMerge;
- sMerge = "Merged: "; // : This is a color code that makes the text behind it blue.
- if(bArmor) sMerge += "Armor, Helmet, Shield";
- if(bItems) sMerge += ", Rings, Amulet, Cloak, Boots, Belt, Bracers";
- if( bWeapon || WS_COPY_WEAPON_PROPS_TO_UNARMED == 1 )
- sMerge += ", Weapon";
- else if ( WS_COPY_WEAPON_PROPS_TO_UNARMED == 2 )
- sMerge += ", Gloves to unarmed attacks";
- else if (WS_COPY_WEAPON_PROPS_TO_UNARMED == 3 )
- sMerge += ", Weapon (if you had one equipped) or gloves to unarmed attacks";
- else
- sMerge += ", No weapon or gloves to unarmed attacks";
- SendMessageToPC(oTarget,sMerge + ".");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- // Store which items should transfer to this polymorph type. (For exportallchar scripts)
- SetLocalInt(oTarget, "GW_PolyID", nPoly);
- SetLocalInt(oTarget, "GW_bWeapon", bWeapon );
- SetLocalInt(oTarget, "GW_bArmor", bArmor );
- SetLocalInt(oTarget, "GW_bItems", bItems );
+
+
+
+
+
- //--------------------------------------------------------------------------
- // Store the old objects so we can access them after the character has
- // changed into his new form
- //--------------------------------------------------------------------------
- object oWeaponOld;
- object oArmorOld;
- object oRing1Old ;
- object oRing2Old;
- object oAmuletOld;
- object oCloakOld ;
- object oBootsOld ;
- object oBeltOld ;
- object oHelmetOld;
- object oShield ;
- object oBracerOld;
- object oHideOld;
- //Assume the normal shape doesn't have a creature skin object.
- //If using a subracesystem or something else that places a skin on the normal shape
- //another condition is needed to decide whether or not to store current items.
- //One way could be to scan all effects to see whether one is a polymorph effect.
- int nPolyed = GetIsObjectValid(GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF));
- // If there is a creature armor see if it is a creature hide put
- // on the unpolymorphed player by scanning for a polymorph effect.
- if ( nPolyed )
- nPolyed = ( ScanForPolymorphEffect(OBJECT_SELF) != -2 );
- if(! nPolyed)
- {
- //if not polymorphed get items worn and store on player.
- oWeaponOld = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
- oArmorOld = GetItemInSlot(INVENTORY_SLOT_CHEST,OBJECT_SELF);
- oRing1Old = GetItemInSlot(INVENTORY_SLOT_LEFTRING,OBJECT_SELF);
- oRing2Old = GetItemInSlot(INVENTORY_SLOT_RIGHTRING,OBJECT_SELF);
- oAmuletOld = GetItemInSlot(INVENTORY_SLOT_NECK,OBJECT_SELF);
- oCloakOld = GetItemInSlot(INVENTORY_SLOT_CLOAK,OBJECT_SELF);
- oBootsOld = GetItemInSlot(INVENTORY_SLOT_BOOTS,OBJECT_SELF);
- oBeltOld = GetItemInSlot(INVENTORY_SLOT_BELT,OBJECT_SELF);
- oHelmetOld = GetItemInSlot(INVENTORY_SLOT_HEAD,OBJECT_SELF);
- oShield = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,OBJECT_SELF);
- oBracerOld = GetItemInSlot(INVENTORY_SLOT_ARMS,OBJECT_SELF);
- oHideOld = GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF);
- SetLocalObject(OBJECT_SELF,"GW_OldWeapon",oWeaponOld);
- SetLocalObject(OBJECT_SELF,"GW_OldArmor",oArmorOld);
- SetLocalObject(OBJECT_SELF,"GW_OldRing1",oRing1Old);
- SetLocalObject(OBJECT_SELF,"GW_OldRing2",oRing2Old);
- SetLocalObject(OBJECT_SELF,"GW_OldAmulet",oAmuletOld);
- SetLocalObject(OBJECT_SELF,"GW_OldCloak",oCloakOld);
- SetLocalObject(OBJECT_SELF,"GW_OldBoots",oBootsOld);
- SetLocalObject(OBJECT_SELF,"GW_OldBelt",oBeltOld);
- SetLocalObject(OBJECT_SELF,"GW_OldHelmet",oHelmetOld);
- SetLocalObject(OBJECT_SELF,"GW_OldBracer",oBracerOld);
- SetLocalObject(OBJECT_SELF,"GW_OldHide",oHideOld);
- if (GetIsObjectValid(oShield))
- {
- if (GetBaseItemType(oShield) !=BASE_ITEM_LARGESHIELD &&
- GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD &&
- GetBaseItemType(oShield) !=BASE_ITEM_TOWERSHIELD)
- {
- oShield = OBJECT_INVALID;
- }
- }
- SetLocalObject(OBJECT_SELF,"GW_OldShield",oShield);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
}
- else
- {
- //if already polymorphed use items stored earlier.
- oWeaponOld = GetLocalObject(OBJECT_SELF,"GW_OldWeapon");
- oArmorOld = GetLocalObject(OBJECT_SELF,"GW_OldArmor");
- oRing1Old = GetLocalObject(OBJECT_SELF,"GW_OldRing1");
- oRing2Old = GetLocalObject(OBJECT_SELF,"GW_OldRing2");
- oAmuletOld = GetLocalObject(OBJECT_SELF,"GW_OldAmulet");
- oCloakOld = GetLocalObject(OBJECT_SELF,"GW_OldCloak");
- oBootsOld = GetLocalObject(OBJECT_SELF,"GW_OldBoots");
- oBeltOld = GetLocalObject(OBJECT_SELF,"GW_OldBelt");
- oHelmetOld = GetLocalObject(OBJECT_SELF,"GW_OldHelmet");
- oShield = GetLocalObject(OBJECT_SELF,"GW_OldShield");
- oBracerOld = GetLocalObject(OBJECT_SELF,"GW_OldBracer");
- oHideOld = GetLocalObject(OBJECT_SELF,"GW_OldHide");
- }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- //--------------------------------------------------------------------------
- // Here the actual polymorphing is done
- //--------------------------------------------------------------------------
+
+
+
ePoly = EffectPolymorph(nPoly);
- //--------------------------------------------------------------------------
- // Iznoghoud: Link the stackable properties as permanent bonuses to the
- // Polymorph effect, instead of putting them on the creature hide. They will
- // properly disappear as soon as the polymorph is ended.
- //--------------------------------------------------------------------------
- ePoly = AddStackablePropertiesToPoly ( oTarget, ePoly, bWeapon, bItems, bArmor, oArmorOld, oRing1Old, oRing2Old, oAmuletOld, oCloakOld, oBracerOld, oBootsOld, oBeltOld, oHelmetOld, oShield, oWeaponOld, oHideOld);
+
+
+
+
+
+
ePoly = ExtraordinaryEffect(ePoly);
- ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
- ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, OBJECT_SELF, HoursToSeconds(nDuration));
+
+
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_WILD_SHAPE, FALSE));
- //--------------------------------------------------------------------------
- // This code handles the merging of item properties
- //--------------------------------------------------------------------------
- object oWeaponNew = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
- object oArmorNew = GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF);
- object oClawLeft = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L,OBJECT_SELF);
- object oClawRight = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R,OBJECT_SELF);
- object oBite = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B,OBJECT_SELF);
- //--------------------------------------------------------------------------
- // ...Weapons
- //--------------------------------------------------------------------------
- if (bWeapon)
- {
- //----------------------------------------------------------------------
- // GZ: 2003-10-20
- // Sorry, but I was forced to take that out, it was confusing people
- // and there were problems with updating the stats sheet.
- //----------------------------------------------------------------------
- /* if (!GetIsObjectValid(oWeaponOld))
- {
- //------------------------------------------------------------------
- // If we had no weapon equipped before, remove the old weapon
- // to allow monks to change into unarmed forms by not equipping any
- // weapon before polymorphing
- //------------------------------------------------------------------
- DestroyObject(oWeaponNew);
- }
- else*/
- {
- //------------------------------------------------------------------
- // Merge item properties...
- //------------------------------------------------------------------
- WildshapeCopyWeaponProperties(oTarget, oWeaponOld,oWeaponNew);
- }
- }
- else {
- switch ( WS_COPY_WEAPON_PROPS_TO_UNARMED )
- {
- case 1: // Copy over weapon properties to claws/bite
- WildshapeCopyNonStackProperties(oWeaponOld,oClawLeft, TRUE);
- WildshapeCopyNonStackProperties(oWeaponOld,oClawRight, TRUE);
- WildshapeCopyNonStackProperties(oWeaponOld,oBite, TRUE);
- break;
- case 2: // Copy over glove properties to claws/bite
- WildshapeCopyNonStackProperties(oBracerOld,oClawLeft, FALSE);
- WildshapeCopyNonStackProperties(oBracerOld,oClawRight, FALSE);
- WildshapeCopyNonStackProperties(oBracerOld,oBite, FALSE);
- bCopyGlovesToClaws = TRUE;
- break;
- case 3: // Copy over weapon properties to claws/bite if wearing a weapon, otherwise copy gloves
- if ( GetIsObjectValid(oWeaponOld) )
- {
- WildshapeCopyNonStackProperties(oWeaponOld,oClawLeft, TRUE);
- WildshapeCopyNonStackProperties(oWeaponOld,oClawRight, TRUE);
- WildshapeCopyNonStackProperties(oWeaponOld,oBite, TRUE);
- }
- else
- {
- WildshapeCopyNonStackProperties(oBracerOld,oClawLeft, FALSE);
- WildshapeCopyNonStackProperties(oBracerOld,oClawRight, FALSE);
- WildshapeCopyNonStackProperties(oBracerOld,oBite, FALSE);
- bCopyGlovesToClaws = TRUE;
- }
- break;
- default: // Do not copy over anything
- break;
- };
- }
- //--------------------------------------------------------------------------
- // ...Armor
- //--------------------------------------------------------------------------
- if (bArmor)
- {
- //----------------------------------------------------------------------
- // Merge item properties from armor and helmet...
- //----------------------------------------------------------------------
- WildshapeCopyNonStackProperties(oArmorOld,oArmorNew);
- WildshapeCopyNonStackProperties(oHelmetOld,oArmorNew);
- WildshapeCopyNonStackProperties(oShield,oArmorNew);
- WildshapeCopyNonStackProperties(oHideOld,oArmorNew);
- }
- //--------------------------------------------------------------------------
- // ...Magic Items
- //--------------------------------------------------------------------------
- if (bItems)
- {
- //----------------------------------------------------------------------
- // Merge item properties from from rings, amulets, cloak, boots, belt
- // Iz: And bracers, in case oBracerOld gets set to a valid object.
- //----------------------------------------------------------------------
- WildshapeCopyNonStackProperties(oRing1Old,oArmorNew);
- WildshapeCopyNonStackProperties(oRing2Old,oArmorNew);
- WildshapeCopyNonStackProperties(oAmuletOld,oArmorNew);
- WildshapeCopyNonStackProperties(oCloakOld,oArmorNew);
- WildshapeCopyNonStackProperties(oBootsOld,oArmorNew);
- WildshapeCopyNonStackProperties(oBeltOld,oArmorNew);
- // Because Bracers can have On Hit Cast Spell type properties we should
- // avoid copying the bracers twice. Otherwise the player can get that On
- // Hit effect both when hitting, and getting hit.
- if ( bCopyGlovesToClaws == FALSE )
- WildshapeCopyNonStackProperties(oBracerOld,oArmorNew);
- }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-}
+ int bWeapon = StringToInt(Get2DACache("polymorph","MergeW",nPoly)) == 1;
+ int bArmor = StringToInt(Get2DACache("polymorph","MergeA",nPoly)) == 1;
+ int bItems = StringToInt(Get2DACache("polymorph","MergeI",nPoly)) == 1;
-
-
-//============================================================================================
-/*
+
+
object oWeaponOld = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
object oArmorOld = GetItemInSlot(INVENTORY_SLOT_CHEST,OBJECT_SELF);
@@ -357,12 +394,17 @@ if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF))
{
if (GetBaseItemType(oShield) !=BASE_ITEM_LARGESHIELD &&
GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD &&
- GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD)
+ GetBaseItemType(oShield) !=BASE_ITEM_TOWERSHIELD)
{
oShield = OBJECT_INVALID;
}
}
+ ClearAllActions(); // prevents an exploit
+
+
+ if (GetEssentiaInvestedFeat(OBJECT_SELF, FEAT_AZURE_WILD_SHAPE))
+ ePoly = EffectLinkEffects(ePoly, EffectDamageIncrease(IPGetDamageBonusConstantFromNumber(GetEssentiaInvestedFeat(OBJECT_SELF, FEAT_AZURE_WILD_SHAPE)), DAMAGE_TYPE_BASE_WEAPON));
@@ -393,5 +435,6 @@ if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(OBJECT_SELF))
IPWildShapeCopyItemProperties(oBeltOld,oArmorNew);
}
+ DelayCommand(1.5,ActionCastSpellOnSelf(SPELL_SHAPE_INCREASE_DAMAGE));
}
-*/
+
diff --git a/_haks/poa_dev/personal_switch.2da b/_haks/poa_dev/personal_switch.2da
deleted file mode 100644
index a283b363..00000000
--- a/_haks/poa_dev/personal_switch.2da
+++ /dev/null
@@ -1,132 +0,0 @@
-2DA V2.0
-
- SwitchName SwitchType SwitchValue
-3 PRC_PNP_TRUESEEING int 1
-4 PRC_TIMESTOP_LOCAL int 1
-5 PRC_TIMESTOP_NO_HOSTILE int 0
-6 PRC_TIMESTOP_BLANK_PC int 0
-7 PRC_PNP_ELEMENTAL_SWARM int 1
-8 PRC_PNP_TENSERS_TRANSFORMATION int 1
-9 PRC_PNP_BLACK_BLADE_OF_DISASTER int 1
-10 PRC_PNP_FIND_TRAPS int 0
-11 PRC_PNP_DARKNESS int 0
-12 PRC_PNP_DARKNESS_35ED int 0
-13 PRC_PNP_ANIMATE_DEAD int 1
-14 PRC_35ED_WORD_OF_FAITH int 0
-15 PRC_CREATE_UNDEAD_UNCONTROLLED int 1
-16 PRC_CREATE_UNDEAD_PERMANENT int 0
-17 PRC_SLEEP_NO_HD_CAP int 0
-18 PRC_USE_NEW_IMBUE_ARROW int 1
-19 PRC_ORC_WARLORD_COHORT int 1
-20 PRC_LICH_ALTER_SELF_DISABLE int 0
-21 PRC_TRUE_NECROMANCER_ALTERNATE_VISUAL int 1
-22 PRC_THRALLHERD_LEADERSHIP int 1
-23 PRC_PNP_UNIMPINGED int 1
-24 PRC_PNP_IMPENETRABILITY int 1
-25 PRC_PNP_DULLBLADES int 1
-26 PRC_PNP_CHAMPIONS_VALOR int 1
-27 PRC_STAFF_CASTER_LEVEL int 1
-28 PRC_PNP_ABILITY_DAMAGE_EFFECTS int 1
-29 PRC_PNP_REST_HEALING int 0
-30 PRC_PNP_SOMATIC_COMPOMENTS int 0
-31 PRC_PNP_SOMATIC_ITEMS int 0
-32 PRC_MULTISUMMON int 1
-33 PRC_SUMMON_ROUND_PER_LEVEL int 0
-34 PRC_PNP_FAMILIAR_FEEDING int 0
-35 PRC_PNP_HOLY_AVENGER_IPROP int 1
-36 PRC_PNP_SLINGS int 1
-37 PRC_PNP_RACIAL_SPEED int 1
-38 PRC_PNP_ARMOR_SPEED int 1
-39 PRC_REMOVE_PLAYER_SPEED int 1
-40 PRC_BREW_POTION_CASTER_LEVEL int 1
-41 PRC_SCRIBE_SCROLL_CASTER_LEVEL int 1
-42 PRC_CRAFT_WAND_CASTER_LEVEL int 1
-43 PRC_CRAFTING_BASE_ITEMS int 1
-44 PRC_XP_USE_SIMPLE_LA int 1
-45 PRC_XP_USE_SIMPLE_RACIAL_HD int 1
-46 PRC_AUTO_IDENTIFY_ON_ACQUIRE int 1
-47 PRC_AUTO_UNIDENTIFY_ON_UNACQUIRE int 0
-48 PRC_BARD_LIGHT_ARMOR_SPELLCASTING int 1
-49 PRC_PSIONIC_SLAYER_FAV_ENEMY_ABERRATION_ONLY int 1
-50 PRC_ECL_USES_XP_NOT_HD int 1
-51 PRC_PNP_ANIMAL_COMPANIONS int 1
-52 PRC_PNP_FAMILIARS int 1
-53 PRC_POWER_ATTACK int 1
-54 PRC_NEC_TERM_PERMADEATH int 0
-55 PRC_SPELL_ALIGNMENT_RESTRICT int 2
-56 PRC_ALLOW_ONLY_SHARP_WEAPONS int 0
-57 PRC_DEXBASED_WEAPON_POISONING_FAILURE_CHANCE int 1
-58 PRC_PNP_RAPID_METABOLISM int 0
-59 PRC_PNP_ELEMENTAL_DAMAGE int 1
-60 PRC_SMALL_CREATURE_FINESSE int 1
-61 PRC_CRAFT_ROD_CASTER_LEVEL int 1
-62 PRC_CRAFT_STAFF_CASTER_LEVEL int 1
-63 PRC_XP_USE_SIMPLE_RACIAL_HD_NO_FREE_XP int 1
-64 PRC_XP_INCLUDE_RACIAL_HIT_DIE_IN_LA int 0
-65 PRC_XP_USE_SETXP int 0
-66 PRC_DISABLE_COMPONENTS_SHOP int 0
-67 PRC_TRUE_NECROMANCER_ALTERNATE_VISUAL int 1
-68 PRC_DISABLE_CONVO_TEMPLATE_GAIN int 0
-69 PRC_SPELLSLAB int 1
-70 PRC_POWER_ATTACK_STACK_WITH_BW int 1
-71 PRC_DISABLE_SWITCH_CHANGING_CONVO int 1
-72 PRC_ENFORCE_RACIAL_APPEARANCE int 0
-73 PRC_APPEARNCE_CHANGE_DISABLE int 0
-74 ###BELOW_HERE_CAN_BREAK_EXISTING_PW### **** ****
-75 PRC_SUPPLY_BASED_REST int 0
-76 PRC_PNP_DEATH_ENABLE int 0
-77 PRC_DEATH_OR_BLEED int 1
-78 PRC_DEATH_DAMAGE_FROM_BLEEDING int 1
-79 PRC_DEATH_BLEED_TO_STABLE_CHANCE int 1
-80 PRC_DEATH_STABLE_TO_DISABLED_CHANCE int 1
-81 PRC_PW_TIME int 0
-82 PRC_PW_HP_TRACKING int 0
-83 PRC_PW_LOCATION_TRACKING int 0
-84 PRC_PW_MAPPIN_TRACKING int 0
-85 PRC_PW_DEATH_TRACKING int 0
-86 PRC_PW_SPELL_TRACKING int 0
-87 PRC_PW_LOGON_DELAY int 0
-88 PRC_XP_USE_PNP_XP int 1
-89 PRC_XP_MUST_BE_IN_AREA int 1
-90 PRC_XP_MAX_PHYSICAL_DISTANCE int 0
-91 PRC_XP_MAX_LEVEL_DIFF int 8
-92 PRC_EPIC_INGORE_DEFAULT int 0
-93 PRC_EPIC_XP_COSTS int 1
-94 PRC_EPIC_TAKE_TEN_RULE int 1
-95 PRC_EPIC_PRIMARY_ABILITY_MODIFIER_RULE int 1
-96 PRC_EPIC_BACKLASH_DAMAGE int 1
-97 PRC_EPIC_FOCI_ADJUST_DC int 1
-98 PRC_EPIC_GOLD_MULTIPLIER int 1
-99 PRC_EPIC_XP_FRACTION int 1
-100 PRC_EPIC_FAILURE_FRACTION_GOLD int 1
-101 PRC_EPIC_BOOK_DESTRUCTION int 0
-102 PRC_EPIC_CONVO_LEARNING_DISABLE int 0
-103 PRC_CRAFTING_TIME_SCALE int 1
-104 PRC_AFTS_EXTRA_DAMAGE int 1
-105 PRC_DRAGON_DISCIPLE_SIZE_CHANGES int 1
-106 PRC_NPC_HAS_PC_SPELLCASTING int 1
-107 PRC_ENABLE_SPELL_SHARING int 1
-108 PRC_USE_DATABASE int 1
-109 PRC_DB_PRECACHE int 0
-110 PRC_DB_SQLITE int 0
-111 PRC_DB_SQLITE_INTERVAL int 0
-112 PRC_DB_MYSQL int 0
-113 PRC_USE_LETOSCRIPT int 0
-114 PRC_LETOSCRIPT_PHEONIX_SYNTAX int 0
-115 PRC_LETOSCRIPT_FIX_ABILITIES int 0
-116 PRC_LETOSCRIPT_UNICORN_SQL int 0
-117 PRC_LETOSCRIPT_GETNEWESTBIC int 0
-118 PRC_COMBAT_DEBUG int 0
-119 PRC_DEBUG int 0
-120 PRC_35_SPELL_FOCUS int 0
-121 PRC_35_TWO_WEAPON_FIGHTING int 0
-122 PRC_PNP_DISARM int 1
-123 PRC_BONUS_COHORTS int 1
-124 PRC_XP_HENCHMAN_PARTY_COUNT_x100 int 1
-125 PRC_XP_DOMINATED_PARTY_COUNT_x100 int 1
-126 PRC_XP_ANIMALCOMPANION_PARTY_COUNT_x100 int 1
-127 PRC_XP_FAMILIAR_PARTY_COUNT_x100 int 1
-128 PRC_XP_SUMMONED_PARTY_COUNT_x100 int 1
-129 PRC_CHICKEN_INFESTED int 1
-130 PRC_PNP_SHIFTER_BONUS int 127
-131 PRC_PW_SECURITY_CD_CHECK int 0
diff --git a/_haks/poa_dev/x1_s2_imbuearrow.ncs b/_haks/poa_dev/x1_s2_imbuearrow.ncs
deleted file mode 100644
index a0538a07..00000000
Binary files a/_haks/poa_dev/x1_s2_imbuearrow.ncs and /dev/null differ
diff --git a/_haks/poa_dev/nw_s1_barbrage.nss b/_removed files/nw_s1_barbrage.nss
similarity index 100%
rename from _haks/poa_dev/nw_s1_barbrage.nss
rename to _removed files/nw_s1_barbrage.nss
diff --git a/_haks/poa_dev/nw_s2_bardsong.nss b/_removed files/nw_s2_bardsong.nss
similarity index 100%
rename from _haks/poa_dev/nw_s2_bardsong.nss
rename to _removed files/nw_s2_bardsong.nss
diff --git a/_haks/poa_dev/nw_s2_wholeness.nss b/_removed files/nw_s2_wholeness.nss
similarity index 100%
rename from _haks/poa_dev/nw_s2_wholeness.nss
rename to _removed files/nw_s2_wholeness.nss
diff --git a/_haks/poa_dev/x1_s2_imbuearrow.nss b/_removed files/x1_s2_imbuearrow.nss
similarity index 100%
rename from _haks/poa_dev/x1_s2_imbuearrow.nss
rename to _removed files/x1_s2_imbuearrow.nss