Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
70 lines
2.4 KiB
Plaintext
70 lines
2.4 KiB
Plaintext
#include "prc_inc_clsfunc"
|
|
#include "prc_inc_unarmed"
|
|
#include "prc_ip_srcost"
|
|
|
|
void SpellResistancePC(object oPC, object oSkin, int iLevel)
|
|
{
|
|
//15 +lvl
|
|
if (iLevel % 2 == 0)
|
|
{
|
|
iLevel = (iLevel-10)/2;
|
|
iLevel = (iLevel>IP_CONST_SPELLRESISTANCEBONUS_60) ? IP_CONST_SPELLRESISTANCEBONUS_60 :iLevel ;
|
|
}
|
|
else
|
|
{
|
|
iLevel = iLevel/2+21;
|
|
iLevel = (iLevel>IP_CONST_SPELLRESISTANCEBONUS_61) ? IP_CONST_SPELLRESISTANCEBONUS_61 :iLevel ;
|
|
|
|
}
|
|
|
|
if (GetLocalInt(oSkin,"IniSR")==iLevel) return;
|
|
RemoveSpecificProperty(oSkin,ITEM_PROPERTY_SPELL_RESISTANCE,-1,IP_CONST_ONHIT_SAVEDC_26,GetLocalInt(oSkin,"IniSR"));
|
|
AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyBonusSpellResistance(iLevel),oSkin);
|
|
SetLocalInt(oSkin,"IniSR",iLevel);
|
|
}
|
|
|
|
void StunStrike(object oPC,object oSkin)
|
|
{
|
|
if (GetLocalInt(oSkin,"IniStunStrk")) return;
|
|
|
|
object oWeapL = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L,oPC);
|
|
|
|
// fixed to work with new unarmed inc
|
|
if(!GetIsPRCCreatureWeapon(oWeapL))
|
|
return;
|
|
|
|
RemoveSpecificProperty(oWeapL,ITEM_PROPERTY_ON_HIT_PROPERTIES,IP_CONST_ONHIT_STUN,IP_CONST_ONHIT_SAVEDC_26,IPRP_CONST_ONHIT_DURATION_5_PERCENT_1_ROUNDS);
|
|
AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyOnHitProps(IP_CONST_ONHIT_STUN,IP_CONST_ONHIT_SAVEDC_26,IPRP_CONST_ONHIT_DURATION_5_PERCENT_1_ROUNDS),oWeapL);
|
|
SetLocalInt(oSkin,"IniStunStrk",1);
|
|
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
|
|
// We cannot add stuff to the creature weapons until they have been evaluated,
|
|
// so we request their evaluation, and wait for it to happen.
|
|
if(!GetLocalInt(OBJECT_SELF, UNARMED_CALLBACK))
|
|
{
|
|
//Evaluate The Unarmed Strike Feats
|
|
//UnarmedFeats(oPC);
|
|
SetLocalInt(oPC, CALL_UNARMED_FEATS, TRUE);
|
|
|
|
//Evaluate Fists
|
|
//UnarmedFists(oPC);
|
|
SetLocalInt(oPC, CALL_UNARMED_FISTS, TRUE);
|
|
|
|
// Request callback once the feat & fist evaluation is done
|
|
AddEventScript(oPC, CALLBACKHOOK_UNARMED, "prc_initdraconic", FALSE, FALSE);
|
|
}
|
|
else
|
|
{
|
|
//Declare main variables.
|
|
object oSkin = GetPCSkin(oPC);
|
|
object oWeapL = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC);
|
|
|
|
if (GetHasFeat(FEAT_INIDR_SPELLRESISTANCE,oPC)) SpellResistancePC(oPC,oSkin,GetLevelByClass(CLASS_TYPE_INITIATE_DRACONIC,oPC)+15);
|
|
if (GetHasFeat(FEAT_INIDR_STUNSTRIKE,oPC)) StunStrike(oPC,oSkin);
|
|
}
|
|
} |