Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
124 lines
3.6 KiB
Plaintext
124 lines
3.6 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: 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);
|
|
}
|