Sets an unlimited ammo itemproperty.

itemproperty ItemPropertyUnlimitedAmmo(





Sets item property Unlimited ammo. If you leave the parameter field blank it will be just a normal bolt, arrow or bullet; however you may specify that you want the ammunition to do special damage (eg. +1d6 Fire, or +1 enhancement bonus). For this parameter you would use the constants beginning with (IP_CONST_UNLIMITEDAMMO_*).


This itemproperty must be added to the RANGED WEAPON, not to the ammunition itself.

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_UNLIMITEDAMMO_* value can be retrieved off this type of item property using GetItemPropertySubType.




#include "x2_inc_itemprop"
//The include is for the IPSafeAddItemProperty function

//Grants the PC speaker's onhand weapon unlimited +5 ammo
//No check is made here to see if the weapon is ranged
//If it isn't, nothing will happen
void main()
object oPC = GetPCSpeaker();
object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
if (!GetIsObjectValid(oItem)) return;

itemproperty ipAdd = ItemPropertyUnlimitedAmmo(IP_CONST_UNLIMITEDAMMO_PLUS5);

IPSafeAddItemProperty(oItem, ipAdd);

See Also

functions: AddItemProperty | IPSafeAddItemProperty
categories: Item Creation Functions
constants: IP_CONST_UNLIMITEDAMMO_* Constants

 author: Lilac Soul, editor: Peter Busby