Further file organization
Further file organization
This commit is contained in:
123
nwn/nwnprc/trunk/scripts/prc_shou.nss
Normal file
123
nwn/nwnprc/trunk/scripts/prc_shou.nss
Normal file
@@ -0,0 +1,123 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Shou Disciple
|
||||
//:: prc_shou.nss
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Check to see which Shou Disciple feats a PC
|
||||
//:: has and apply the appropriate bonuses.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Stratovarius
|
||||
//:: Created On: June 28, 2004
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_alterations"
|
||||
#include "prc_inc_unarmed"
|
||||
|
||||
|
||||
/*
|
||||
it_crewpb006 - 1d6
|
||||
it_crewpb011 - 1d8
|
||||
it_crewpb015 - 1d10
|
||||
it_crewpb016 - 2d6
|
||||
*/
|
||||
|
||||
|
||||
void DodgeBonus(object oPC, object oSkin)
|
||||
{
|
||||
|
||||
//SendMessageToPC(OBJECT_SELF, "DodgeBonus is called");
|
||||
|
||||
int ACBonus = 0;
|
||||
int iShou = GetLevelByClass(CLASS_TYPE_SHOU, oPC);
|
||||
|
||||
//SendMessageToPC(OBJECT_SELF, "Shou Class Level: " + IntToString(iShou));
|
||||
|
||||
if(iShou > 0 && iShou < 2)
|
||||
{
|
||||
ACBonus = 1;
|
||||
}
|
||||
else if(iShou >= 2 && iShou < 4)
|
||||
{
|
||||
ACBonus = 2;
|
||||
}
|
||||
else if(iShou >= 4)
|
||||
{
|
||||
ACBonus = 3;
|
||||
}
|
||||
|
||||
//SendMessageToPC(OBJECT_SELF, "Dodge Bonus to AC: " + IntToString(ACBonus));
|
||||
|
||||
SetCompositeBonus(oSkin, "ShouDodge", ACBonus, ITEM_PROPERTY_AC_BONUS);
|
||||
SetLocalInt(oPC, "HasShouDodge", 2);
|
||||
}
|
||||
|
||||
|
||||
void RemoveDodge(object oPC, object oSkin)
|
||||
{
|
||||
SetCompositeBonus(oSkin, "ShouDodge", 0, ITEM_PROPERTY_AC_BONUS);
|
||||
SetLocalInt(oPC, "HasShouDodge", 1);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare main variables.
|
||||
object oPC = OBJECT_SELF;
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
|
||||
|
||||
object oWeapRL = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
|
||||
object oWeapLL = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
|
||||
|
||||
int iBaseL = GetBaseItemType(oWeapLL);
|
||||
int iBaseR = GetBaseItemType(oWeapRL);
|
||||
int iEquip = GetLocalInt(oPC,"ONEQUIP");
|
||||
string nMes = "";
|
||||
|
||||
//SendMessageToPC(OBJECT_SELF, "prc_shou is called");
|
||||
|
||||
if( GetBaseAC(oArmor) > 3 )
|
||||
{
|
||||
RemoveDodge(oPC, oSkin);
|
||||
|
||||
if(GetHasSpellEffect(SPELL_MARTIAL_FLURRY_LIGHT, oPC) || GetHasSpellEffect(SPELL_MARTIAL_FLURRY_ALL, oPC))
|
||||
{
|
||||
PRCRemoveEffectsFromSpell(oPC, SPELL_MARTIAL_FLURRY_LIGHT);
|
||||
PRCRemoveEffectsFromSpell(oPC, SPELL_MARTIAL_FLURRY_ALL);
|
||||
}
|
||||
|
||||
FloatingTextStringOnCreature("*Shou Disciple Abilities Disabled Due To Equipped Armour*", oPC);
|
||||
}
|
||||
else if(iBaseL == BASE_ITEM_SMALLSHIELD || iBaseL == BASE_ITEM_LARGESHIELD || iBaseL == BASE_ITEM_TOWERSHIELD)
|
||||
{
|
||||
RemoveDodge(oPC, oSkin);
|
||||
|
||||
if(GetHasSpellEffect(SPELL_MARTIAL_FLURRY_LIGHT, oPC) || GetHasSpellEffect(SPELL_MARTIAL_FLURRY_ALL, oPC))
|
||||
{
|
||||
PRCRemoveEffectsFromSpell(oPC, SPELL_MARTIAL_FLURRY_LIGHT);
|
||||
PRCRemoveEffectsFromSpell(oPC, SPELL_MARTIAL_FLURRY_ALL);
|
||||
}
|
||||
|
||||
FloatingTextStringOnCreature("*Shou Disciple Abilities Disabled Due To Equipped Shield*", oPC);
|
||||
}
|
||||
// This checks to make sure he doesnt have a non-light weapon equipped for Martial Flurry Light
|
||||
else if(StringToInt(Get2DACache("baseitems", "WeaponSize", iBaseL)) > 2 || StringToInt(Get2DACache("baseitems", "WeaponSize", iBaseR)) > 2)
|
||||
{
|
||||
PRCRemoveEffectsFromSpell(oPC, SPELL_MARTIAL_FLURRY_LIGHT);
|
||||
FloatingTextStringOnCreature("*Martial Flurry Light Disabled Due to Equipped Weapons*", oPC);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(GetLevelByClass(CLASS_TYPE_SHOU, oPC) > 1 )
|
||||
{
|
||||
RemoveDodge(oPC, oSkin);
|
||||
DodgeBonus(oPC, oSkin);
|
||||
}
|
||||
}
|
||||
|
||||
//Evaluate The Unarmed Strike Feats
|
||||
//UnarmedFeats(oPC);
|
||||
SetLocalInt(OBJECT_SELF, CALL_UNARMED_FEATS, TRUE);
|
||||
|
||||
//Evaluate Fists
|
||||
//UnarmedFists(oPC);
|
||||
SetLocalInt(OBJECT_SELF, CALL_UNARMED_FISTS, TRUE);
|
||||
}
|
Reference in New Issue
Block a user