Difference between revisions of "ItemPropertyDamageVulnerability"

From NWN Lexicon
Jump to: navigation, search
 
Line 8: Line 8:
  
 
<nwscript>
 
<nwscript>
[[itemproperty | itemproperty ]] ItemPropertyDamageVulnerability(
+
itemproperty ItemPropertyDamageVulnerability(
    [[int | int ]] nDamageType,
+
    int nDamageType,
    [[int | int ]] nVulnerability
+
    int nVulnerability
);
+
);
 
</nwscript>
 
</nwscript>
  
Line 45: Line 45:
  
 
<nwscript>
 
<nwscript>
<nowiki>#include "x2_inc_itemprop"
+
<nowiki>#include "x2_inc_itemprop"
</nowiki>//The include is for the IPSafeAddItemProperty function
+
</nowiki>//The include is for the IPSafeAddItemProperty function
+
 
//Makes the PC speaker's armor take 100% additional cold damage (ie. double)
+
//Makes the PC speaker's armor take 100% additional cold damage (ie. double)
void main()
+
void main()
{
+
{
object oPC=GetPCSpeaker();
+
object oPC=GetPCSpeaker();
object oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
+
object oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
int nDamageType = IP_CONST_DAMAGETYPE_COLD;
+
int nDamageType = IP_CONST_DAMAGETYPE_COLD;
int nVulnerability = IP_CONST_DAMAGEVULNERABILITY_100_PERCENT;
+
int nVulnerability = IP_CONST_DAMAGEVULNERABILITY_100_PERCENT;
+
 
if (!GetIsObjectValid(oItem)) return;
+
if (!GetIsObjectValid(oItem)) return;
+
 
itemproperty ipAdd = ItemPropertyDamageVulnerability(nDamageType, nVulnerability);
+
itemproperty ipAdd = ItemPropertyDamageVulnerability(nDamageType, nVulnerability);
+
 
IPSafeAddItemProperty(oItem, ipAdd);
+
IPSafeAddItemProperty(oItem, ipAdd);
}
+
}
 
</nwscript>
 
</nwscript>
  

Latest revision as of 01:38, 26 August 2012



ItemPropertyDamageVulnerability(int, int)

Sets a damage vulnerability itemproperty.

itemproperty ItemPropertyDamageVulnerability(
    int nDamageType,
    int nVulnerability
);

Parameters

nDamageType

IP_CONST_DAMAGETYPE_*

nVulnerability

IP_CONST_DAMAGEVULNERABILITY_*


Description

Sets item property Damage vulnerability. You must specify the damage type constant (IP_CONST_DAMAGETYPE_*) , such as Divine or Piercing, that you want the user to be extra vulnerable to and the percentage vulnerability constant (IP_CONST_DAMAGEVULNERABILITY_*), ranging from 5% to 100%, to be added to the original damage.



Remarks

The itemproperty commands are special constructors - they construct an itemproperty "object" which can then be applied to an item using the AddItemProperty command, much like effects need to be first constructed, then applied with ApplyEffectToObject.

It will often be a good idea to remove similar itemproperties from the item first. There's a command in the "x2_inc_itemprop" include file called IPSafeAddItemProperty which will do that for you. Check IPSafeAddItemProperty for current bug report.

The IP_CONST_DAMAGETYPE_* constant can be retrieved off this type of item property using GetItemPropertySubType. The IP_CONST_DAMAGEVULNERABILITY_* constant can be retrieved using GetItemPropertCostTableValue.


Version

1.61

Example

<nowiki>#include "x2_inc_itemprop"
</nowiki>//The include is for the IPSafeAddItemProperty function
 
//Makes the PC speaker's armor take 100% additional cold damage (ie. double)
void main()
{
object oPC=GetPCSpeaker();
object oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
int nDamageType = IP_CONST_DAMAGETYPE_COLD;
int nVulnerability = IP_CONST_DAMAGEVULNERABILITY_100_PERCENT;
 
if (!GetIsObjectValid(oItem)) return;
 
itemproperty ipAdd = ItemPropertyDamageVulnerability(nDamageType, nVulnerability);
 
IPSafeAddItemProperty(oItem, ipAdd);
}

See Also

functions: 

IPSafeAddItemProperty

constants: 

IP_CONST_DAMAGEVULNERABILITY_* Constants



 author: Lilac Soul, editor: Peter Busby