//:: New itemproperties const int ITEM_PROPERTY_USE_LIMITATION_ABILITY_SCORE = 95; const int ITEM_PROPERTY_USE_LIMITATION_SKILL_RANKS = 96; const int ITEM_PROPERTY_USE_LIMITATION_SPELL_LEVEL = 88; const int ITEM_PROPERTY_USE_LIMITATION_ARCANE_SPELL_LEVEL = 89; const int ITEM_PROPERTY_USE_LIMITATION_DIVINE_SPELL_LEVEL = 90; const int ITEM_PROPERTY_USE_LIMITATION_SNEAK_ATTACK = 91; const int ITEM_PROPERTY_USE_LIMITATION_GENDER = 150; const int ITEM_PROPERTY_SPEED_INCREASE = 133; const int ITEM_PROPERTY_SPEED_DECREASE = 134; const int ITEM_PROPERTY_AREA_OF_EFFECT = 100; const int ITEM_PROPERTY_CAST_SPELL_CASTER_LEVEL = 94; const int ITEM_PROPERTY_CAST_SPELL_METAMAGIC = 92; const int ITEM_PROPERTY_CAST_SPELL_DC = 93; const int ITEM_PROPERTY_PNP_HOLY_AVENGER = 101; const int ITEM_PROPERTY_WIZARDRY = 102; const int ITEM_PROPERTY_DIVINITY = 103; const int ITEM_PROPERTY_ECHOBLADE = 104; //:: AoE itemproperties const int IP_CONST_AOE_DARKNESS = 0; const int IP_CONST_AOE_DEEPER_DARKNESS = 1; const int IP_CONST_AOE_CIRCLE_VS_EVIL = 2; const int IP_CONST_AOE_CIRCLE_VS_GOOD = 3; const int IP_CONST_AOE_CIRCLE_VS_LAW = 4; const int IP_CONST_AOE_CIRCLE_VS_CHAOS = 5; const int IP_CONST_AOE_DAMNING_DARKNESS = 6; ////////////////////////////////////////////////// /* Function prototypes */ ////////////////////////////////////////////////// //new function to return a PRC caster level itemproperty //will putput to log file if it doesnt work //relys on blueprints containing these itemproperties itemproperty ItemPropertyCastSpellCasterLevel(int nSpell, int nLevel); //new function to return a PRC metamagic itemproperty //will putput to log file if it doesnt work //relys on blueprints containing these itemproperties //nMetamagic should be a METAMAGIC_* constant itemproperty ItemPropertyCastSpellMetamagic(int nSpell, int nMetamagic); //new function to return a PRC DC itemproperty //will putput to log file if it doesnt work //relys on blueprints containing these itemproperties itemproperty ItemPropertyCastSpellDC(int nSpell, int nDC); //new function to return a PRC AoE itemproperty //will putput to log file if it doesnt work //relys on blueprints containing these itemproperties //nIPAoEID is defined in iprp_aoe & IP_CONST_AOE_* itemproperty ItemPropertyAreaOfEffect(int nIPAoEID, int nLevel); //returns the PRCs new PnP Holy Avenger //for paladins, +5 +2d6 divine vs evil, castspell:dispel magic @ casterlevel = paladinlevels //or non paladins, +2 itemproperty ItemPropertyPnPHolyAvenger(); //new function to return a PRC wizardry itemproperty //will putput to log file if it doesnt work //relys on blueprints containing these itemproperties itemproperty ItemPropertyWizardry(int nSpellLevel); //new function to return a PRC Divinity itemproperty //will putput to log file if it doesnt work //relys on blueprints containing these itemproperties itemproperty ItemPropertyDivinity(int nSpellLevel); //returns Echoblade itemproperty itemproperty ItemPropertyEchoblade(); //not implemented itemproperty ItemPropertyLimitUseByAbility(int nAbility, int nMinScore); //not implemented itemproperty ItemPropertyLimitUseBySkill(int nSkill, int nMinScore); //not implemented itemproperty ItemPropertyLimitUseBySpellcasting(int nLevel); //not implemented itemproperty ItemPropertyLimitUseByArcaneSpellcasting(int nLevel); //not implemented itemproperty ItemPropertyLimitUseByDivineSpellcasting(int nLevel); //not implemented itemproperty ItemPropertyLimitUseBySneakAttackDice(int nDice); ////////////////////////////////////////////////// /* Includes */ ////////////////////////////////////////////////// #include "prc_x2_itemprop" //#include "prc_alterations" ////////////////////////////////////////////////// /* Function defintions */ ////////////////////////////////////////////////// itemproperty ItemPropertyCastSpellMetamagic(int nSpell, int nMetamagic) { //convert nSpell into reference to iprip_spells.2da nSpell = IPGetIPConstCastSpellFromSpellID(nSpell); itemproperty ipReturn; string sResRef = "prc_ip" + IntToString(ITEM_PROPERTY_CAST_SPELL_METAMAGIC) + "_" + IntToString(nSpell); object oChest = GetObjectByTag("HEARTOFCHAOS");//use the crafting chest object oItem = CreateItemOnObject(sResRef, oChest); DestroyObject(oItem); switch(nMetamagic) { case METAMAGIC_NONE: return ipReturn;//doenst work as an IP nMetamagic = 0; break; case METAMAGIC_EMPOWER: nMetamagic = 2; break; case METAMAGIC_EXTEND: nMetamagic = 3; break; case METAMAGIC_MAXIMIZE: nMetamagic = 4; break; case METAMAGIC_QUICKEN: return ipReturn;//doenst work as an IP nMetamagic = 1; break; case METAMAGIC_SILENT: return ipReturn;//doenst work as an IP nMetamagic = 5; break; case METAMAGIC_STILL: return ipReturn;//doenst work as an IP nMetamagic = 6; break; } ipReturn = GetFirstItemProperty(oItem); int i; for(i=0;i