398 lines
29 KiB
Plaintext
398 lines
29 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////
|
|
// ip_cfg
|
|
// written by: eyesolated
|
|
// written at: June 17, 2004
|
|
//
|
|
// Notes: ItemProperty Config File
|
|
|
|
// The system version will be safed on infused items
|
|
const int CI_IP_VERSION = 1;
|
|
|
|
// Use NWNX?
|
|
const int CI_IP_USE_NWNX = TRUE;
|
|
|
|
// Sets the maximum number of positive properties an item can receive
|
|
const int CI_IP_MAX_POSITIVE = 4;
|
|
|
|
// Sets the maximum number of negative properties an item can receive
|
|
const int CI_IP_MAX_NEGATIVE = 2;
|
|
|
|
// Sets the maximum number of restrictive properties an item can receive
|
|
const int CI_IP_MAX_RESTRICTIVE = 1;
|
|
|
|
// Sets the required/allowed numbers of properties an item needs to be colored Rare.
|
|
// These conditinos are AND-related
|
|
const int CI_IP_RARE_MINPOSITIVE = 2;
|
|
const int CI_IP_RARE_MAXNEGATIVE = 0;
|
|
|
|
// The following number defines how much a positive property is allowed to be below
|
|
// the maximum theoretical level achievable for the given item for it to be considered
|
|
// RARE. Set this to -1 to deactivate this feature
|
|
const int CI_IP_RARE_ALLOWED_POSITIVE_DEVIATION = 2;
|
|
|
|
// Sets the required/allowed numbers of properties an item needs to be colored Rare.
|
|
// These conditinos are AND-related
|
|
const int CI_IP_EPIC_MINPOSITIVE = 3;
|
|
const int CI_IP_EPIC_MAXNEGATIVE = 0;
|
|
|
|
// The following number defines how much a positive property is allowed to be below
|
|
// the maximum theoretical level achievable for the given item for it to be considered
|
|
// RARE. Set this to -1 to deactivate this feature
|
|
const int CI_IP_EPIC_ALLOWED_POSITIVE_DEVIATION = 1;
|
|
|
|
// This sets the maximum Magic Item Level the System will be able to produce.
|
|
// Default: 50
|
|
const int CI_IP_MAXMAGICLEVEL = 10; // note: PAT overrides this setting for PAT-ified creatures!
|
|
|
|
// This sets the maximum Magic Item Level the System will be able to produce for
|
|
// undroppable Monster Equipment.
|
|
// Default: 50
|
|
const int CI_IP_MAXMAGICLEVEL_MONSTERONLY = 50;
|
|
|
|
// Chance the Base Item Level will be reduced.
|
|
// The item level will be reduced for n = 0 to (X / CI_IP_REDUCED_ITEM_LEVEL_MAXIMUM_DIVISOR) - 1
|
|
// times, as long as it rolls positive against
|
|
// CI_IP_REDUCED_ITEM_LEVEL_CHANCE_BASE - n * CI_IP_REDUCED_ITEM_LEVEL_CHANCE_MODIFIER
|
|
//
|
|
// Example: The maximum possible level is set to 9.
|
|
// CI_IP_REDUCED_ITEM_LEVEL_CHANCE_BASE = 60
|
|
// CI_IP_REDUCED_ITEM_LEVEL_CHANCE_MODIFIER = 10
|
|
// CI_IP_REDUCED_ITEM_LEVEL_MAXIMUM_DIVISOR = 3
|
|
//
|
|
// There is a 60% chance the item level is reduced to 8.
|
|
// If the roll succeeds, then there is a 50% chance the item level is reduced to 7.
|
|
// If the roll succeeds, then there is a 40% chance the item level is reduced to 6.
|
|
// After 3 successful rolls (9 / 3 = 3) it stops at level 6.
|
|
// In other words, there's a 40% chance the item stays level 9, a 30% chance of it
|
|
// being level 8, an 18% chance of it being 7 and a 12% chance of it being level 6.
|
|
const int CI_IP_REDUCED_ITEM_LEVEL_CHANCE_BASE = 91;
|
|
const int CI_IP_REDUCED_ITEM_LEVEL_CHANCE_MODIFIER = 9;
|
|
const int CI_IP_REDUCED_ITEM_LEVEL_MAXIMUM_DIVISOR = 4;
|
|
|
|
// These values set the chances for additional properties beyond the first one
|
|
// CI_IP_ADDITIONAL_x_PROPERTY_BASE is the base % of getting an additional
|
|
// property while CI_IP_ADDITIONAL_x_PROPERTY_MODIFIER is multiplied with the
|
|
// existing properties on the item and is subtracted from the base chance.
|
|
// Example: An item has 1 property. With BASE set to 15% and MODIFIER set to 3%, there
|
|
// is a 12% chance to get a second property.
|
|
// An item already has 2 properties. With BASE set to 15% and MODIFIER set
|
|
// to 3%, there is a 9% chance to get a third property.
|
|
const int CI_IP_ADDITIONAL_POSITIVE_PROPERTY_CHANCE_BASE = 40;
|
|
const int CI_IP_ADDITIONAL_POSITIVE_PROPERTY_CHANCE_MODIFIER = 12;
|
|
|
|
// The LEVEL_MODIFIER rolls a random value by which the magic level of an additional property
|
|
// is reduced.
|
|
// CI_IP_ADDITIONAL_x_PROPERTY_LEVEL_MODIFIER_BASE is the base reduction for an
|
|
// additional property, while CI_IP_ADDITIONAL_x_PROPERTY_LEVEL_MODIFIER_RANDOM adds
|
|
// a random element to the subtraction. The minimum Magic Level is always 1.
|
|
const int CI_IP_ADDITIONAL_POSITIVE_PROPERTY_LEVEL_MODIFIER_BASE = 1;
|
|
const int CI_IP_ADDITIONAL_POSITIVE_PROPERTY_LEVEL_MODIFIER_RANDOM = 2;
|
|
const int CI_IP_ADDITIONAL_NEGATIVE_PROPERTY_LEVEL_MODIFIER_BASE = 0;
|
|
const int CI_IP_ADDITIONAL_NEGATIVE_PROPERTY_LEVEL_MODIFIER_RANDOM = 3;
|
|
const int CI_IP_ADDITIONAL_RESTRICTIVE_PROPERTY_LEVEL_MODIFIER_BASE = 0;
|
|
const int CI_IP_ADDITIONAL_RESTRICTIVE_PROPERTY_LEVEL_MODIFIER_RANDOM = 3;
|
|
|
|
// The Base % of getting a negative property on the item. The formula used is
|
|
// Positive_Properties * (CI_IP_ADDITIONAL_NEGATIVE_PROPERTY_CHANCE_BASE - (Total_Properties - Positive_Properties) * CI_IP_ADDITIONAL_NEGATIVE_PROPERTY_CHANCE_REDUCTION)
|
|
// Example A: If the item has 3 positive properties and CHANCE_BASE is set to 8 while CHANCE_REDUCTION is set to 1
|
|
// First negative property : 3 * (8 - (3 - 3) * 1) = 24%
|
|
// Second negative proeprty: 3 * (8 - (4 - 3) * 1) = 21%
|
|
// Example B: If the item has 3 positive properties and CHANCE_BASE is set to 10 while CHANCE_REDUCTION is set to 3
|
|
// First negative property : 3 * (10 - (3 - 3) * 3) = 30%
|
|
// Second negative proeprty: 3 * (10 - (4 - 3) * 3) = 21%
|
|
const int CI_IP_ADDITIONAL_NEGATIVE_PROPERTY_CHANCE_BASE = 24;
|
|
const int CI_IP_ADDITIONAL_NEGATIVE_PROPERTY_CHANCE_REDUCTION = 1;
|
|
|
|
// This sets the Basic Chance / Positive Property for an item to receive a restrictive
|
|
// Property.
|
|
const int CI_IP_CHANCE_RESTRICTIVE = 5;
|
|
|
|
// This sets the added chance for a restrictive property for wands and rods
|
|
const int CI_IP_RODWAND_EXTRA_CHANCE_RESTRICTIVE = 50;
|
|
|
|
// These constants define the possible values regarding enabling/disabling properties
|
|
// within the system. Do not modify these.
|
|
const int CI_IP_PROPERTY_DISABLED = 0;
|
|
const int CI_IP_PROPERTY_ENABLED = 1;
|
|
const int CI_IP_PROPERTY_ENABLED_MONSTERONLY = 2;
|
|
|
|
// If Ability Bonus is activated, should the abilities be restricted to the following slots?
|
|
// Belt: STR, CON, WIS, CHA
|
|
// Gloves: STR, DEX, INT, CHA
|
|
// Cloak: DEX, CON, INT, WIS
|
|
const int CI_IP_RESTRICT_AbilityBonus = TRUE;
|
|
|
|
// If Regeneration is activated, should it be restricted to jewelry only?
|
|
const int CI_IP_RESTRICT_Regeneration = TRUE;
|
|
|
|
// Enable/Disable Properties within the system
|
|
// These settings affect the sysetm itself, properties set to CI_IP_PROPERTY_DISABLED here won't
|
|
// appear on any item created. CI_IP_PROPERTY_ENABLED means the item will appear on items,
|
|
// CI_IP_PROPERTY_ENABLED_MONSTERONLY means only items generated for monsters only will have
|
|
// this property on them.
|
|
//
|
|
// If you want properties to scale differently or change wheter they are
|
|
// available to players or monsters only on differenr power levels, modify the script "ip_ini".
|
|
const int CI_IP_ENABLE_AbilityBonus = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_ACBonus = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_ACBonusVsAlignment = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_ACBonusVsDmgType = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_ACBonusVsRace = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_ACBonusVsSpecificAlignment = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_AdditionalProperty = CI_IP_PROPERTY_ENABLED_MONSTERONLY; // Unknown, Cursed, used for Socketing for now
|
|
const int CI_IP_ENABLE_ArcaneSpellFailure_Increased = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_ArcaneSpellFailure_Decreased = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_AttackBonus = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_AttackBonusVsAlignment = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_AttackBonusVsRace = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_AttackBonusVsSpecificAlignment = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_AttackPenalty = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_BonusFeat = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_BonusLevelSpell = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_BonusSavingThrow = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_BonusSavingThrowVsX = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_BonusSavingThrowVsXUniversalIncluded = CI_IP_PROPERTY_DISABLED; // Shouldn't enable this, too powerful
|
|
const int CI_IP_ENABLE_BonusSpellResistance = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_CastSpell = CI_IP_PROPERTY_ENABLED; // This is for books and staves
|
|
const int CI_IP_ENABLE_CastSpellPotion = CI_IP_PROPERTY_ENABLED; // Potions won't work at all if this is FALSE
|
|
const int CI_IP_ENABLE_CastSpellWand_5ChargesPerUse = CI_IP_PROPERTY_ENABLED; // If you disable all CastSpellWand switches, wands
|
|
const int CI_IP_ENABLE_CastSpellWand_1ChargePerUse = CI_IP_PROPERTY_ENABLED; // and rods won't work at all
|
|
const int CI_IP_ENABLE_CastSpellWand_1PerDay = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_CastSpellWand_2PerDay = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_CastSpellWand_3PerDay = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_CastSpellWand_Unlimited = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_ContainerReducedWeight = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DamageBonus = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DamageBonusVsAlignment = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_DamageBonusVsRace = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_DamageBonusVsSpecificAlignment = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_DamageImmunity = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DamagePenalty = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DamageReduction = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DamageResistance = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DamageVulnerability = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_Darkvision = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DecreaseAbility = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DecreaseAC = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DecreaseSkill = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_DecreaseSkillAllSkillsIncluded = CI_IP_PROPERTY_DISABLED; // Shouldn't enable this, too powerful
|
|
const int CI_IP_ENABLE_EnhancementBonus = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_EnhancementBonusVsAlignment = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_EnhancementBonusVsRace = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_EnhancementBonusVsSpecificAlignment = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_ExtraMeleeDamageType = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_ExtraRangeDamageType = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_Haste = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_HealersKit = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_HolyAvenger = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_ImmunityMisc = CI_IP_PROPERTY_ENABLED; // Immunities included for players: Poison, Fear, Death Magic
|
|
const int CI_IP_ENABLE_ImmunityToSpellLevel = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_ImprovedEvasion = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_Keen = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_Light = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_LimitUseByAlignment = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_LimitUseByClass = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_LimitUseByRace = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_LimitUseBySpecificAlignment = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_MassiveCritical = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_Mighty = CI_IP_PROPERTY_ENABLED; // Mighty property for Ranged Weapons like Bows, allowing STR Bonus on Damage rolls
|
|
const int CI_IP_ENABLE_MonsterDamage = CI_IP_PROPERTY_ENABLED_MONSTERONLY; // Only works on Creature Weapons
|
|
const int CI_IP_ENABLE_NoDamage = CI_IP_PROPERTY_DISABLED;
|
|
// NOT AVAILABLE const int CI_IP_ENABLE_OnHitCastSpell = CI_IP_PROPERTY_ENABLED;
|
|
// NOT AVAILABLE const int CI_IP_ENABLE_OnHitProps = CI_IP_PROPERTY_ENABLED;
|
|
// NOT AVAILABLE const int CI_IP_ENABLE_OnMonsterHitProperties = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_ReducedSavingThrow = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_ReducedSavingThrowVsX = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_ReducedSavingThrowVsXUniversalIncluded = CI_IP_PROPERTY_DISABLED; // Shouldn't enable this, too powerful
|
|
const int CI_IP_ENABLE_Regeneration = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_SkillBonus = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_SkillBonusAllIncluded = CI_IP_PROPERTY_DISABLED; // Shouldn't enable this, too powerful
|
|
// NOT AVAILABLE const int CI_IP_ENABLE_SpecialWalk = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_SpellImmunitySchool = CI_IP_PROPERTY_ENABLED_MONSTERONLY;
|
|
const int CI_IP_ENABLE_SpellImmunitySpecific = CI_IP_PROPERTY_DISABLED;
|
|
const int CI_IP_ENABLE_ThievesTools = CI_IP_PROPERTY_ENABLED; // Thieves' Tools won't work at all if this is FALSE
|
|
const int CI_IP_ENABLE_Trap = CI_IP_PROPERTY_ENABLED; // Traps won't work at all if this is FALSE
|
|
const int CI_IP_ENABLE_TrueSeeing = CI_IP_PROPERTY_DISABLED; // TRUE Seeing is bugged in regards to Hide/Move Silently
|
|
// NOT AVAILABLE const int CI_IP_ENABLE_TurnResistance = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_UnlimitedAmmo = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_VampiricRegeneration = CI_IP_PROPERTY_ENABLED;
|
|
// NOT AVAILABLE const int CI_IP_ENABLE_VisualEffect = CI_IP_PROPERTY_ENABLED;
|
|
// NOT AVAILABLE const int CI_IP_ENABLE_WeightIncrease = CI_IP_PROPERTY_ENABLED;
|
|
const int CI_IP_ENABLE_WeightReduction = CI_IP_PROPERTY_ENABLED;
|
|
|
|
|
|
|
|
////////////////////////////////////////////
|
|
// !!! DON'T TOUCH ANYTHING BELOW THIS !!! /
|
|
// !!! DON'T TOUCH ANYTHING BELOW THIS !!! /
|
|
// !!! DON'T TOUCH ANYTHING BELOW THIS !!! /
|
|
////////////////////////////////////////////
|
|
|
|
const string CS_IP_VAR_CREATION_VERSION = "ip_Creation_Version";
|
|
const string CS_IP_VAR_CREATION_LEVEL = "ip_Creation_Level";
|
|
|
|
const string CS_IP_INI_USERDEFINEDEVENTNUMBER = "IP_EVENTID";
|
|
const string CS_IP_INIB_USERDEFINEDEVENTNUMBER = "IPB_EVENTID";
|
|
|
|
const string CS_IP_TABLE = "ip_Properties";
|
|
const string CS_IP_ARRAY_INIT = "IP_ARRAY_INIT";
|
|
|
|
// In case we don't use NWNx, we need alternatives
|
|
const string CS_IP_DB_PRELOAD_STORE_OBJ = "IP_PRE_STORE";
|
|
const string CS_IP_DB_PRELOAD_STORE = "IP_PRE_S_TAG";
|
|
const string CS_IP_DB_PRELOAD_AREA_OBJ = "IP_PRE_AREA";
|
|
|
|
const string CS_IP_DB_PRELOAD_ARRAY = "IP_PRE_ARRAY";
|
|
|
|
const string CS_IP_DB_AREA = "A_EGS";
|
|
const string CS_IP_DB_WAYPOINT = "WP_EGS";
|
|
const string CS_IP_DB_MERCHANT_RESREF = "M_EGS";
|
|
const string CS_IP_DB_ITEMINFO_RESREF = "I_EGS_ItemInfo";
|
|
const string CS_IP_DB_MERCHANT_ID = "M_IP_ID";
|
|
const string CS_IP_DB_MERCHANT_MAIN = "M_IP_M";
|
|
const string CS_IP_DB_MERCHANT_SUB = "M_IP_S";
|
|
const string CS_IP_DB_MERCHANT_BASE = "M_IP_B";
|
|
const string CS_IP_DB_MERCHANT_MONSTERONLY_ID = "M_IP_MID";
|
|
const string CS_IP_DB_MERCHANT_MONSTERONLY_MAIN = "M_IP_MOM";
|
|
const string CS_IP_DB_MERCHANT_MONSTERONLY_SUB = "M_IP_MOS";
|
|
const string CS_IP_DB_MERCHANT_MONSTERONLY_BASE = "M_IP_MOB";
|
|
const string CS_IP_ARRAY_ID = "IP_A_ID";
|
|
const string CS_IP_ARRAY_MAINCATEGORY = "IP_MC";
|
|
const string CS_IP_ARRAY_SUBCATEGORY = "IP_SC";
|
|
const string CS_IP_ARRAY_BASEITEM = "IP_BI";
|
|
|
|
const string CS_IP_DB_TEMPARRAY_MAINCATEGORIES = "IP_TMP_C";
|
|
const string CS_IP_DB_TEMPARRAY_SUBCATEGORIES = "IP_TMP_S";
|
|
const string CS_IP_DB_TEMPARRAY_BASEITEMS = "IP_TMP_B";
|
|
|
|
const string CS_IP_DB_TEMPARRAY_SELECTIP = "IP_TMP_SIP";
|
|
const string CS_IP_DB_TEMPARRAY_STORE = "IP_TMP_STO";
|
|
|
|
struct STRUCT_IP_PropertyDetails
|
|
{
|
|
itemproperty IP;
|
|
string Prefix1;
|
|
string Prefix2;
|
|
string Postfix;
|
|
int PropID;
|
|
int Var1;
|
|
int Var2;
|
|
int Var3;
|
|
};
|
|
|
|
// Field Definitions
|
|
const string CS_IP_ENTRY_ID = "Entry_ID";
|
|
const string CS_IP_ID = "Property_ID";
|
|
const string CS_IP_TYPE = "Type";
|
|
const string CS_IP_CATEGORIES_MAIN = "MainCategories";
|
|
const string CS_IP_CATEGORIES_SUB = "SubCategories";
|
|
const string CS_IP_BASEITEMS = "BaseItems";
|
|
const string CS_IP_LEVEL = "Level";
|
|
const string CS_IP_VARONE = "Variable1";
|
|
const string CS_IP_VARTWO = "Variable2";
|
|
const string CS_IP_VARTHREE = "Variable3";
|
|
const string CS_IP_MONSTERONLY = "MonsterOnly";
|
|
const string CS_IP_PLAYERONLY = "PlayerOnly";
|
|
const string CS_IP_PREFIX_I = "Prefix1";
|
|
const string CS_IP_PREFIX_II = "Prefix2";
|
|
const string CS_IP_POSTFIX = "Postfix";
|
|
|
|
// Property Types
|
|
const int CI_IP_TYPE_POSITIVE = 0;
|
|
const int CI_IP_TYPE_NEGATIVE = 1;
|
|
const int CI_IP_TYPE_RESTRICTIVE = 2;
|
|
|
|
// SpellType constants
|
|
const int CI_IP_POTION = 1;
|
|
const int CI_IP_WAND = 2;
|
|
const int CI_IP_OTHER = 3;
|
|
|
|
// Property constants
|
|
const int CI_IP_Invalid = -1;
|
|
const int CI_IP_AbilityBonus = ITEM_PROPERTY_ABILITY_BONUS;
|
|
const int CI_IP_ACBonus = ITEM_PROPERTY_AC_BONUS;
|
|
const int CI_IP_ACBonusVsAlign = ITEM_PROPERTY_AC_BONUS_VS_ALIGNMENT_GROUP;
|
|
// NON_EXISTANT! const int CI_IP_ACBonusVsAlignAllIncluded = -2;
|
|
const int CI_IP_ACBonusVsDmgType = ITEM_PROPERTY_AC_BONUS_VS_DAMAGE_TYPE;
|
|
const int CI_IP_ACBonusVsRace = ITEM_PROPERTY_AC_BONUS_VS_RACIAL_GROUP;
|
|
const int CI_IP_ACBonusVsSAlign = ITEM_PROPERTY_AC_BONUS_VS_SPECIFIC_ALIGNMENT;
|
|
const int CI_IP_AdditionalProperty = ITEM_PROPERTY_ADDITIONAL;
|
|
const int CI_IP_ArcaneSpellFailure = ITEM_PROPERTY_ARCANE_SPELL_FAILURE;
|
|
const int CI_IP_AttackBonus = ITEM_PROPERTY_ATTACK_BONUS;
|
|
const int CI_IP_AttackBonusVsAlign = ITEM_PROPERTY_ATTACK_BONUS_VS_ALIGNMENT_GROUP;
|
|
// NON_EXISTANT! const int CI_IP_AttackBonusVsAlignAllIncluded = -3;
|
|
const int CI_IP_AttackBonusVsRace = ITEM_PROPERTY_ATTACK_BONUS_VS_RACIAL_GROUP;
|
|
const int CI_IP_AttackBonusVsSAlign = ITEM_PROPERTY_ATTACK_BONUS_VS_SPECIFIC_ALIGNMENT;
|
|
const int CI_IP_AttackPenalty = ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER;
|
|
const int CI_IP_BonusFeat = ITEM_PROPERTY_BONUS_FEAT;
|
|
const int CI_IP_BonusLevelSpell = ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N;
|
|
const int CI_IP_BonusSavingThrow = ITEM_PROPERTY_SAVING_THROW_BONUS;
|
|
const int CI_IP_BonusSavingThrowVsX = ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC;
|
|
const int CI_IP_BonusSavingThrowVsXUniversalIncluded = -4;
|
|
const int CI_IP_BonusSpellResistance = ITEM_PROPERTY_SPELL_RESISTANCE;
|
|
const int CI_IP_CastSpell = ITEM_PROPERTY_CAST_SPELL;
|
|
const int CI_IP_CastSpellPotion = -5;
|
|
const int CI_IP_CastSpellWand = -6;
|
|
const int CI_IP_ContainerReducedWeight = ITEM_PROPERTY_ENHANCED_CONTAINER_REDUCED_WEIGHT;
|
|
const int CI_IP_DamageBonus = ITEM_PROPERTY_DAMAGE_BONUS;
|
|
const int CI_IP_DamageBonusVsAlign = ITEM_PROPERTY_DAMAGE_BONUS_VS_ALIGNMENT_GROUP;
|
|
// NON_EXISTANT! const int CI_IP_DamageBonusVsAlignAllIncluded = -7;
|
|
const int CI_IP_DamageBonusVsRace = ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP;
|
|
const int CI_IP_DamageBonusVsSAlign = ITEM_PROPERTY_DAMAGE_BONUS_VS_SPECIFIC_ALIGNMENT;
|
|
const int CI_IP_DamageImmunity = ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE;
|
|
const int CI_IP_DamagePenalty = ITEM_PROPERTY_DECREASED_DAMAGE;
|
|
const int CI_IP_DamageReduction = ITEM_PROPERTY_DAMAGE_REDUCTION;
|
|
const int CI_IP_DamageResistance = ITEM_PROPERTY_DAMAGE_RESISTANCE;
|
|
const int CI_IP_DamageVulnerability = ITEM_PROPERTY_DAMAGE_VULNERABILITY;
|
|
const int CI_IP_Darkvision = ITEM_PROPERTY_DARKVISION;
|
|
const int CI_IP_DecreaseAbility = ITEM_PROPERTY_DECREASED_ABILITY_SCORE;
|
|
const int CI_IP_DecreaseAC = ITEM_PROPERTY_DECREASED_AC;
|
|
const int CI_IP_DecreaseSkill = ITEM_PROPERTY_DECREASED_SKILL_MODIFIER;
|
|
const int CI_IP_DecreaseSkillAllSkillsIncluded = -8;
|
|
const int CI_IP_EnhancementBonus = ITEM_PROPERTY_ENHANCEMENT_BONUS;
|
|
const int CI_IP_EnhancementBonusVsAlign = ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_ALIGNMENT_GROUP;
|
|
// NON_EXISTANT! const int CI_IP_EnhancementBonusVsAlignAllIncluded = -9;
|
|
const int CI_IP_EnhancementBonusVsRace = ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP;
|
|
const int CI_IP_EnhancementBonusVsSAlign = ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_SPECIFIC_ALIGNEMENT;
|
|
// Deactivated const int CI_IP_EnhancementPenalty = -10;
|
|
const int CI_IP_ExtraMeleeDamageType = ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE;
|
|
const int CI_IP_ExtraRangeDamageType = ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE;
|
|
// NON_EXISTANT! const int CI_IP_FreeAction = -11;
|
|
const int CI_IP_Haste = ITEM_PROPERTY_HASTE;
|
|
const int CI_IP_HealersKit = ITEM_PROPERTY_HEALERS_KIT;
|
|
const int CI_IP_HolyAvenger = ITEM_PROPERTY_HOLY_AVENGER;
|
|
const int CI_IP_ImmunityMisc = ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS;
|
|
const int CI_IP_ImmunityToSpellLevel = ITEM_PROPERTY_IMMUNITY_SPELLS_BY_LEVEL;
|
|
const int CI_IP_ImprovedEvasion = ITEM_PROPERTY_IMPROVED_EVASION;
|
|
const int CI_IP_Keen = ITEM_PROPERTY_KEEN;
|
|
const int CI_IP_Light = ITEM_PROPERTY_LIGHT;
|
|
const int CI_IP_LimitUseByAlign = ITEM_PROPERTY_USE_LIMITATION_ALIGNMENT_GROUP;
|
|
const int CI_IP_LimitUseByClass = ITEM_PROPERTY_USE_LIMITATION_CLASS;
|
|
const int CI_IP_LimitUseByRace = ITEM_PROPERTY_USE_LIMITATION_RACIAL_TYPE;
|
|
const int CI_IP_LimitUseBySAlign = ITEM_PROPERTY_USE_LIMITATION_SPECIFIC_ALIGNMENT;
|
|
const int CI_IP_MassiveCritical = ITEM_PROPERTY_MASSIVE_CRITICALS;
|
|
const int CI_IP_MaxRangeStrengthMod = ITEM_PROPERTY_MIGHTY;
|
|
const int CI_IP_MonsterDamage = ITEM_PROPERTY_MONSTER_DAMAGE;
|
|
const int CI_IP_NoDamage = ITEM_PROPERTY_NO_DAMAGE;
|
|
const int CI_IP_OnHitCastSpell = ITEM_PROPERTY_ONHITCASTSPELL;
|
|
const int CI_IP_OnHitProps = ITEM_PROPERTY_ON_HIT_PROPERTIES;
|
|
const int CI_IP_OnMonsterHitProperties = ITEM_PROPERTY_ON_MONSTER_HIT;
|
|
const int CI_IP_ReducedSavingThrow = ITEM_PROPERTY_DECREASED_SAVING_THROWS;
|
|
const int CI_IP_ReducedSavingThrowVsX = ITEM_PROPERTY_DECREASED_SAVING_THROWS_SPECIFIC;
|
|
const int CI_IP_ReducedSavingThrowVsXUniversalIncluded = -12;
|
|
const int CI_IP_Regeneration = ITEM_PROPERTY_REGENERATION;
|
|
const int CI_IP_SkillBonus = ITEM_PROPERTY_SKILL_BONUS;
|
|
const int CI_IP_SkillBonusAllIncluded = -13;
|
|
const int CI_IP_SpecialWalk = ITEM_PROPERTY_SPECIAL_WALK;
|
|
const int CI_IP_SpellImmunitySchool = ITEM_PROPERTY_IMMUNITY_SPELL_SCHOOL;
|
|
const int CI_IP_SpellImmunitySpecific = ITEM_PROPERTY_IMMUNITY_SPECIFIC_SPELL;
|
|
const int CI_IP_ThievesTools = ITEM_PROPERTY_THIEVES_TOOLS;
|
|
const int CI_IP_Trap = ITEM_PROPERTY_TRAP;
|
|
const int CI_IP_TrueSeeing = ITEM_PROPERTY_TRUE_SEEING;
|
|
const int CI_IP_TurnResistance = ITEM_PROPERTY_TURN_RESISTANCE;
|
|
const int CI_IP_UnlimitedAmmo = ITEM_PROPERTY_UNLIMITED_AMMUNITION;
|
|
const int CI_IP_VampiricRegeneration = ITEM_PROPERTY_REGENERATION_VAMPIRIC;
|
|
const int CI_IP_VisualEffect = ITEM_PROPERTY_VISUALEFFECT;
|
|
const int CI_IP_WeightIncrease = ITEM_PROPERTY_WEIGHT_INCREASE;
|
|
const int CI_IP_WeightReduction = ITEM_PROPERTY_BASE_ITEM_WEIGHT_REDUCTION;
|