Updated for PRC8 v4.20
Updated for PRC8 v4.20
This commit is contained in:
100
_module/nss/swap_iprpfeat.nss
Normal file
100
_module/nss/swap_iprpfeat.nss
Normal file
@@ -0,0 +1,100 @@
|
||||
#include "nwnx_creature"
|
||||
#include "inc_item_props"
|
||||
#include "prc_class_const"
|
||||
|
||||
/*
|
||||
Desert Wind: Scimitar, Light Mace, Spear, Light Pick, Falchion.
|
||||
Diamond Mind: Katana, Rapier, Bastard Sword, Spear
|
||||
Setting Sun: Short Sword, Staff, Unarmed Strike, Nunchaku
|
||||
Shadow Hand: Short Sword, Dagger, Unarmed Strike, Sai
|
||||
Stone Dragon: Unarmed Strike, Great Sword, Great Axe, Heavy Mace
|
||||
Tiger Claw: Unarmed Strike, Great Axe, Kama, Kukri, Hand Axe
|
||||
|
||||
FEAT_SS_DF_WF_DW
|
||||
FEAT_SS_DF_WF_DM
|
||||
FEAT_SS_DF_WF_SS
|
||||
FEAT_SS_DF_WF_SH
|
||||
FEAT_SS_DF_WF_SD
|
||||
FEAT_SS_DF_WF_TC
|
||||
*/
|
||||
|
||||
void main()
|
||||
{
|
||||
object oCreature = OBJECT_SELF;
|
||||
object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oCreature);
|
||||
|
||||
int bWarDomain = GetHasFeat(DOMAIN_WAR, oCreature) || GetHasFeat(FEAT_WAR_DOMAIN_POWER, oCreature);
|
||||
|
||||
int bSwordsage = GetLevelByClass(CLASS_TYPE_SWORDSAGE, oCreature);
|
||||
|
||||
if (!GetIsObjectValid(oSkin))
|
||||
return;
|
||||
|
||||
int nLevel = GetHitDice(oCreature);
|
||||
|
||||
if(bSwordsage)
|
||||
{
|
||||
if (GetHasFeat(FEAT_SS_DF_WF_DW, oCreature)) //:: Desert Wind
|
||||
{
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SCIMITAR, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_LIGHT_MACE, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SPEAR, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_LIGHT_PICK, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_FALCHION, nLevel);
|
||||
}
|
||||
if (GetHasFeat(FEAT_SS_DF_WF_DM, oCreature)) //:: Diamond Mind
|
||||
{
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_KATANA, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_RAPIER, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SPEAR, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_BASTARD_SWORD, nLevel);
|
||||
}
|
||||
if (GetHasFeat(FEAT_SS_DF_WF_SS, oCreature)) //:: Setting Sun
|
||||
{
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SHORT_SWORD, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_STAFF, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_NUNCHAKU, nLevel);
|
||||
}
|
||||
if (GetHasFeat(FEAT_SS_DF_WF_SH, oCreature)) //:: Shadow Hand
|
||||
{
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SHORT_SWORD, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_DAGGER, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SAI, nLevel);
|
||||
}
|
||||
if (GetHasFeat(FEAT_SS_DF_WF_SD, oCreature)) //:: Stone Dragon
|
||||
{
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_GREAT_SWORD, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_GREAT_AXE, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_HEAVY_MACE, nLevel);
|
||||
}
|
||||
if (GetHasFeat(FEAT_SS_DF_WF_TC, oCreature)) //:: Tiger Claw
|
||||
{
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_GREAT_AXE, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_KAMA, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_KUKRI, nLevel);
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_HAND_AXE, nLevel);
|
||||
}
|
||||
}
|
||||
|
||||
itemproperty ipCheck = GetFirstItemProperty(oSkin);
|
||||
while (GetIsItemPropertyValid(ipCheck))
|
||||
{
|
||||
if (GetItemPropertyType(ipCheck) == ITEM_PROPERTY_BONUS_FEAT)
|
||||
{
|
||||
int nIPFeat = GetItemPropertySubType(ipCheck);
|
||||
int nMappedFeat = WF_IpropToFeat(nIPFeat);
|
||||
|
||||
if (nMappedFeat != -1)
|
||||
{
|
||||
NWNX_Creature_AddFeatByLevel(oCreature, nMappedFeat, nLevel);
|
||||
SendMessageToPC(GetFirstPC(), "Weapon Focus feat applied via item property.");
|
||||
}
|
||||
}
|
||||
|
||||
ipCheck = GetNextItemProperty(oSkin);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user