#include "prc_inc_clsfunc" void OnEquip(object oPC,object oSkin,int iLevel,object oWeapR) { object oItem=oWeapR; int bCore = 10 + GetLevelByClass(CLASS_TYPE_MANATARMS,oPC); if(GetHasFeat(FEAT_STRIKE_AT_CORE)&& GetLocalInt(oItem, "ManArmsCore")!= bCore) { if (GetLocalInt(oItem, "ManArmsCore")) RemoveSpecificProperty(oItem,ITEM_PROPERTY_ON_HIT_PROPERTIES,IP_CONST_ONHIT_ABILITYDRAIN, GetLocalInt(oItem, "ManArmsCore"),1,"ManArmsCore", IP_CONST_ABILITY_CON, DURATION_TYPE_TEMPORARY); DelayCommand(0.10,AddItemProperty(DURATION_TYPE_TEMPORARY,ItemPropertyOnHitProps(IP_CONST_ONHIT_ABILITYDRAIN,bCore,IP_CONST_ABILITY_CON),oItem,9999.0)); SetLocalInt(oItem,"ManArmsCore",bCore); } } void OnUnEquip(object oPC,object oSkin,int iLevel,object oWeapR ) { object oItem=oWeapR; RemoveSpecificProperty(oItem,ITEM_PROPERTY_ON_HIT_PROPERTIES,IP_CONST_ONHIT_ABILITYDRAIN, -1,1,"ManArmsCore", IP_CONST_ABILITY_CON, DURATION_TYPE_TEMPORARY); DeleteLocalInt(oItem, "ManArmsCore"); } void main() { //Declare main variables. object oPC = OBJECT_SELF; object oSkin = GetPCSkin(oPC); int iEquip= GetLocalInt(oPC,"ONEQUIP"); int iAtk = GetHasFeat(FEAT_LEGENDARY_PROWESS, oPC) ? 3 : 1; if (GetHasFeat(FEAT_LEGENDARY_PROWESS,oPC)) SetCompositeBonus(oSkin,"ManArmsAC",2,ITEM_PROPERTY_AC_BONUS); if (GetHasFeat(FEAT_MASTER_CRITICAL,oPC)) DelayCommand(6.0f, ImpCrit(oPC, oSkin)); if (iEquip ==1) { OnUnEquip(oPC,oSkin,iAtk,GetItemLastUnequipped()); } else { OnEquip(oPC,oSkin,iAtk,GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC)); OnEquip(oPC,oSkin,iAtk,GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC)); } if (GetIsObjectValid(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC))) { ActionCastSpellOnSelf(SPELL_MANATARMS_DAMAGE); } else { PRCRemoveEffectsFromSpell(oPC, SPELL_MANATARMS_DAMAGE); } }