Difference between revisions of "ItemPropertyDamageVulnerability"

From NWN Lexicon
Jump to: navigation, search
(Created page with " =ItemPropertyDamageVulnerability(int, int)= Sets a damage vulnerability itemproperty. itemproperty  ItemPropertyDamageVulnerability(   ...")
 
 
(One intermediate revision by the same user not shown)
Line 7: Line 7:
 
Sets a damage vulnerability itemproperty.
 
Sets a damage vulnerability itemproperty.
  
[[itemproperty | itemproperty ]] ItemPropertyDamageVulnerability(
+
<nwscript>
    [[int | int ]] nDamageType,
+
itemproperty ItemPropertyDamageVulnerability(
    [[int | int ]] nVulnerability
+
    int nDamageType,
);
+
    int nVulnerability
 +
);
 +
</nwscript>
  
 
====Parameters====
 
====Parameters====
Line 42: Line 44:
 
====Example====
 
====Example====
  
<font color="#7f0000"><nowiki>#include "x2_inc_itemprop"
+
<nwscript>
</nowiki></font><font color="#007f00">//The include is for the IPSafeAddItemProperty function
+
<nowiki>#include "x2_inc_itemprop"
</font>
+
</nowiki>//The include is for the IPSafeAddItemProperty function
<font color="#007f00">//Makes the PC speaker's armor take 100% additional cold damage (ie. double)
+
 
</font><font color="#0000ff">void</font> main()
+
//Makes the PC speaker's armor take 100% additional cold damage (ie. double)
{
+
void main()
<font color="#0000ff">object</font> oPC=GetPCSpeaker();
+
{
<font color="#0000ff">object</font> oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
+
object oPC=GetPCSpeaker();
<font color="#0000ff">int</font> nDamageType = IP_CONST_DAMAGETYPE_COLD;
+
object oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
<font color="#0000ff">int</font> nVulnerability = IP_CONST_DAMAGEVULNERABILITY_100_PERCENT;
+
int nDamageType = IP_CONST_DAMAGETYPE_COLD;
+
int nVulnerability = IP_CONST_DAMAGEVULNERABILITY_100_PERCENT;
<font color="#0000ff">if</font> (!GetIsObjectValid(oItem)) <font color="#0000ff">return</font>;
+
 
+
if (!GetIsObjectValid(oItem)) return;
<font color="#0000ff">itemproperty</font> ipAdd = ItemPropertyDamageVulnerability(nDamageType, nVulnerability);
+
 
+
itemproperty ipAdd = ItemPropertyDamageVulnerability(nDamageType, nVulnerability);
IPSafeAddItemProperty(oItem, ipAdd);
+
 
}
+
IPSafeAddItemProperty(oItem, ipAdd);
 +
}
 +
</nwscript>
  
 
====See Also====
 
====See Also====

Latest revision as of 00: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