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.
		
			
				
	
	
		
			60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // Dread Necromancer passive abilities.
 | |
| 
 | |
| #include "prc_inc_template"
 | |
| 
 | |
| void DNDamageResist(object oPC, int nLevel)
 | |
| {
 | |
|     object oSkin = GetPCSkin(oPC);
 | |
|     if(GetLocalInt(oSkin, "DNDamageResist") == TRUE) return;
 | |
| 
 | |
|     int nDR;
 | |
|     if (nLevel >= 15)      nDR = IP_CONST_DAMAGERESIST_8;
 | |
|     else if (nLevel >= 11) nDR = IP_CONST_DAMAGERESIST_6;
 | |
|     else if (nLevel >= 7)  nDR = IP_CONST_DAMAGERESIST_4;
 | |
|     else if (nLevel >= 2)  nDR = IP_CONST_DAMAGERESIST_2;
 | |
| 
 | |
|     AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_PIERCING, nDR), oSkin);
 | |
|     AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SLASHING, nDR), oSkin);
 | |
|     AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_BLUDGEONING, nDR), oSkin);
 | |
|     SetLocalInt(oSkin, "DNDamageResist", TRUE);
 | |
| }
 | |
| 
 | |
| // Armour Spell Fail reduction
 | |
| /*void ReducedASF(object oCreature)
 | |
| {
 | |
|     object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oCreature);
 | |
|     object oShield = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oCreature);
 | |
|     object oSkin = GetPCSkin(oCreature);
 | |
|     int nAC = GetBaseAC(oArmor);
 | |
|     int nClass = GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oCreature);
 | |
|     int iBonus = GetLocalInt(oSkin, "DreadNecroArmour");
 | |
|     int nASF = -1;
 | |
|     itemproperty ip;
 | |
| 
 | |
|     // First thing is to remove old ASF (in case armor is changed.)
 | |
|     if (iBonus != -1)
 | |
|         RemoveSpecificProperty(oSkin, ITEM_PROPERTY_ARCANE_SPELL_FAILURE, -1, iBonus, 1, "DreadNecroArmour");
 | |
| 
 | |
|     // As long as they meet the requirements, just give em max ASF reduction
 | |
|     // I know it could cause problems if they have increased ASF, but thats unlikely
 | |
|     else if (3 >= nAC)
 | |
|         nASF = IP_CONST_ARCANE_SPELL_FAILURE_MINUS_25_PERCENT;
 | |
| 
 | |
|     // Apply the ASF to the skin.
 | |
|     ip = ItemPropertyArcaneSpellFailure(nASF); 
 | |
| 
 | |
|     AddItemProperty(DURATION_TYPE_PERMANENT, ip, oSkin);
 | |
|     SetLocalInt(oSkin, "DreadNecroArmour", nASF);
 | |
| }*/
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     //Declare main variables.
 | |
|     object oPC = OBJECT_SELF;
 | |
|     int nClass = GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oPC);
 | |
| 
 | |
|     //if (GetIsPC(oPC)) ReducedASF(oPC);
 | |
|     if(nClass > 1) DNDamageResist(oPC, nClass);
 | |
|     if(nClass > 19) ApplyTemplateToObject(TEMPLATE_LICH, oPC);
 | |
| }
 |