diff --git a/_module/nss/prc_inc_switch.nss b/_module/nss/prc_inc_switch.nss deleted file mode 100644 index a3a7a016..00000000 --- a/_module/nss/prc_inc_switch.nss +++ /dev/null @@ -1,2958 +0,0 @@ -/** - * @file - * This file defines names of switches that can be used to modify - * the behaviour of certain parts of the PRC pack. - * It also contains functions for getting and setting the values of - * these switches and in addition some functions dealing with the - * implementation of certain switches. - */ - - /* - - Creating your personal switch settings - For singleplayer, you can create a 2da file and place it in the overide - Then via the PRC Options switch you can read that 2da and it will - use it to set switches for you. - This will not work in multiplayer. - An example is below. Copy and paste it into a plain text file saved - as personal_switch.2da - - If there is a file named personal_switch.2da then it will be loaded - at module load and the switches set accordingly. - - -2DA V2.0 - - SwitchName SwitchType SwitchValue -0 FOO float 3.14159 -1 BAR int 12321 -2 BAZ string "Go For The Eyes Boo, Go For The Eyes!" -3 PRC_PNP_TRUESEEING int 1 -4 PRC_TIMESTOP_LOCAL int 1 -5 PRC_TIMESTOP_NO_HOSTILE int 1 -6 PRC_TIMESTOP_BLANK_PC int 1 -7 PRC_PNP_ELEMENTAL_SWARM int 1 -8 PRC_PNP_TENSERS_TRANSFORMATION int 1 -9 PRC_PNP_BLACK_BLADE_OF_DISASTER int 1 -10 PRC_PNP_FIND_TRAPS int 1 -11 PRC_PNP_DARKNESS int 1 -12 PRC_PNP_DARKNESS_35ED int 1 -13 PRC_PNP_ANIMATE_DEAD int 1 -14 PRC_35ED_WORD_OF_FAITH int 1 -15 PRC_CREATE_UNDEAD_UNCONTROLLED int 1 -16 PRC_CREATE_UNDEAD_PERMANENT int 1 -17 PRC_SLEEP_NO_HD_CAP int 1 -18 PRC_USE_NEW_IMBUE_ARROW int 1 -19 PRC_ORC_WARLORD_COHORT int 1 -20 PRC_LICH_ALTER_SELF_DISABLE int 1 -21 PRC_TRUE_NECROMANCER_ALTERNATE_VISUAL int 1 -22 PRC_THRALLHERD_LEADERSHIP int 1 -23 PRC_PNP_UNIMPINGED int 1 -24 PRC_PNP_IMPENETRABILITY int 1 -25 PRC_PNP_DULLBLADES int 1 -26 PRC_PNP_CHAMPIONS_VALOR int 1 -27 PRC_STAFF_CASTER_LEVEL int 1 -28 PRC_PNP_ABILITY_DAMAGE_EFFECTS int 1 -29 PRC_PNP_REST_HEALING int 1 -30 PRC_PNP_SOMATIC_COMPOMENTS int 1 -31 PRC_PNP_SOMATIC_ITEMS int 1 -32 PRC_MULTISUMMON int 1 -33 PRC_SUMMON_ROUND_PER_LEVEL int 1 -34 PRC_PNP_FAMILIAR_FEEDING int 1 -35 PRC_PNP_HOLY_AVENGER_IPROP int 1 -36 PRC_PNP_SLINGS int 1 -37 PRC_PNP_RACIAL_SPEED int 1 -38 PRC_PNP_ARMOR_SPEED int 1 -39 PRC_REMOVE_PLAYER_SPEED int 1 -40 PRC_BREW_POTION_CASTER_LEVEL int 1 -41 PRC_SCRIBE_SCROLL_CASTER_LEVEL int 1 -42 PRC_CRAFT_WAND_CASTER_LEVEL int 1 -43 PRC_CRAFTING_BASE_ITEMS int 1 -44 PRC_XP_USE_SIMPLE_LA int 1 -45 PRC_XP_USE_SIMPLE_RACIAL_HD int 1 - */ - - /* This variable MUST be updated with every new version of the PRC!!! */ - - const string PRC_VERSION = "PRC 3.9.0"; - - /* This variable MUST be updated every time 'assemble_spellbooks.bat' is run!!! */ - - const string AMS_VERSION = "AMS_1.7.6"; - -/******************************************************************************\ -* Spell switches * -\******************************************************************************/ - -/** Material Components - * Set switch to 1 to activate this - * This allows material components in NWN through the materialcomp.2da - * Just put the SpellID and UTC resref in, MINUS the .utc on the end. - * This also requires the names of the items, formatted like so ("" included): "Object Name" - * - * Set switch to 2 to activate this - * Deducts gold instead of requiring material components - * Put the gold value in the Cost column - - * Set switch to 3 to activate both at the same time - * WARNING: This will slow spellcasting down due to 2da reads and inventory loops - */ -const string PRC_MATERIAL_COMPONENTS = "PRC_MATERIAL_COMPONENTS"; - -const string PRC_DISABLE_COMPONENTS_SHOP = "PRC_DISABLE_COMPONENTS_SHOP"; - -/** Bioware True Seeing can see stealthed creatures. - * This replaces the trueseeing effect with a See Invisible + Ultravision + Spot bonus. - * This affects the spell and power True Seeing and the Dragon Disciple class - */ -const string PRC_PNP_TRUESEEING = "PRC_PNP_TRUESEEING"; - -/** - * PRC_PNP_TRUESEEING must be on. - * Value of spot skill bonus that True Seeing grants. - * Defaults to +15 if not set. - */ -const string PRC_PNP_TRUESEEING_SPOT_BONUS = "PRC_PNP_TRUESEEING_SPOT_BONUS"; - -/** Remove the cap PRC added to this spell */ -const string PRC_BIOWARE_GRRESTORE = "PRC_BIOWARE_GRRESTORE"; -/** Remove the cap PRC added to this spell */ -const string PRC_BIOWARE_HEAL = "PRC_BIOWARE_HEAL"; -/** Remove the cap PRC added to this spell */ -const string PRC_BIOWARE_MASS_HEAL = "PRC_BIOWARE_MASS_HEAL"; -/** Remove the cap PRC added to this spell */ -const string PRC_BIOWARE_HARM = "PRC_BIOWARE_HARM"; -/** Remove the cap PRC added to this spell */ -const string PRC_BIOWARE_NEUTRALIZE_POISON = "PRC_BIOWARE_NEUTRALIZE_POISON"; -/** Remove the cap PRC added to this spell */ -const string PRC_BIOWARE_REMOVE_DISEASE = "PRC_BIOWARE_REMOVE_DISEASE"; - -/** - * This replaces the 3.0 Spell Focus bonuses with the 3.5 edition ones - */ -const string PRC_35_SPELL_FOCUS = "PRC_35_SPELL_FOCUS"; - -/* Blindness/Deafness effect is permanent */ -const string PRC_PNP_BLINDNESS_DEAFNESS = "PRC_PNP_BLINDNESS_DEAFNESS"; - -/** - * Sets caltrops duration in seconds. - * Defaults = permanent - */ -const string PRC_CALTROPS_DURATION = "PRC_CALTROPS_DURATION"; - -/*** - * Timestop has Bioware durations (9 seconds or 18 for Greater Timestop) rather - * than PnP durations (1d4+1 or 2d4+2) - */ -const string PRC_TIMESTOP_BIOWARE_DURATION = "PRC_TIMESTOP_BIOWARE_DURATION"; - -/** - * Timestop has only a local affect, i.e doesn't stop people on the other areas of the module. - * Note that AOEs continue to act during a timestop, and durations/delayed events still occur. - */ -const string PRC_TIMESTOP_LOCAL = "PRC_TIMESTOP_LOCAL"; - -/** - * PRC_TIMESTOP_LOCAL must be enabled. - * Caster can't perform any hostile actions while in timestop. - */ -const string PRC_TIMESTOP_NO_HOSTILE = "PRC_TIMESTOP_NO_HOSTILE"; - -/** - * PRC_TIMESTOP_LOCAL must be enabled. - * PCs can't see anything while stopped. - * This might look to the player like their game crashed. - */ -const string PRC_TIMESTOP_BLANK_PC = "PRC_TIMESTOP_BLANK_PC"; - -/** - * Instead of Bioware's sequential summons it creates multiple elementals. - * Only works if PRC_MULTISUMMON is on - */ -const string PRC_PNP_ELEMENTAL_SWARM = "PRC_PNP_ELEMENTAL_SWARM"; - -/** - * If you pass a save, you can't be affected by that aura for 24h. - * NOTE: Not implemented yet - */ -const string PRC_PNP_FEAR_AURAS = "PRC_PNP_FEAR_AURAS"; - -/** - * Not a polymorph but ability bonuses instead. - */ -const string PRC_PNP_TENSERS_TRANSFORMATION = "PRC_PNP_TENSERS_TRANSFORMATION"; - -/** - * Less powerful, more PnP accurate version. - * Caster must concentrate to maintain it. - */ -const string PRC_PNP_BLACK_BLADE_OF_DISASTER = "PRC_PNP_BLACK_BLADE_OF_DISASTER"; - -/** - * Traps are only shown, not disarmed - */ -const string PRC_PNP_FIND_TRAPS = "PRC_PNP_FIND_TRAPS"; - -/** - * PnP Darkness - * Is a mobile AOE based off an item - */ -const string PRC_PNP_DARKNESS = "PRC_PNP_DARKNESS"; - -/** - * Bioware Invisibility, Improved Invisibility - */ -const string PRC_BIOWARE_INVISIBILITY = "PRC_BIOWARE_INVISIBILITY"; - -/** - * 3.5ed Darkness - * Gives 20% concelement rather than bioware darkness - */ -const string PRC_PNP_DARKNESS_35ED = "PRC_PNP_DARKNESS_35ED"; - -/** - * Undead summons are permanent, but can only have 4HD/casterlevel in total - * Does not enforce the requirement for a corpse - * Also applies to ghoul gauntlet which otherwise will create one ghoul - * if you dont already have a summon - */ -const string PRC_PNP_ANIMATE_DEAD = "PRC_PNP_ANIMATE_DEAD"; - -/** - * This sets the HP limit for Symbol of Death, Symbol of Fear and Symbol of Stunning - * spells. Default = 150. - */ -const string PRC_SYMBOL_HP_LIMIT = "PRC_SYMBOL_HP_LIMIT"; - -/** - * "Word of Faith" spells use 3.5 ed rules rather than 3.0ed - * basically instead of 12+ / <12 / <8 / <4 its relative to caster level - * at >=CL / = 1. - * Default: 1 - */ -const string PRC_USES_PER_WEAPON_POISON_COUNT = "PRC_USES_PER_WEAPON_POISON_COUNT"; - -/** - * Size of the die rolled when determining the amount of hits the poison will - * work on. If this is set, the value should be at least 2. - * Default: Dice aren't rolled. - */ -const string PRC_USES_PER_WEAPON_POISON_DIE = "PRC_USES_PER_WEAPON_POISON_DIE"; - -/** - * This is the name of the script to be run when someone attempts to poison food to - * check if the targeted item is food. The default script returns FALSE for everything, - * so you must define your own to have this functionality. - * - * This switch has string values instead of integers. - * - * Default: poison_is_food <- an example script, just returns false - * - * @see poison_is_food - */ -const string PRC_POISON_IS_FOOD_SCRIPT_NAME = "PRC_POISON_IS_FOOD_SCRIPT_NAME"; - -/** - * This switch determines whether a creature equipping a poisoned item is assumed to be - * acting smartly in that it attempts to clean the item first. If it's not set, the - * creature just directly equips the item and gets poisoned. - * - * Default: Off, the creature gets poisoned without any checks - * - * @see poison_onequip - */ -const string PRC_POISON_ALLOW_CLEAN_IN_EQUIP = "PRC_POISON_ALLOW_CLEAN_IN_EQUIP"; - -/** - * - * Default: crafting requires only gold and xp - */ -const string PRC_CRAFT_POISON_USE_INGREDIENST = "PRC_CRAFT_POISON_USE_INGREDIENST"; - -/******************************************************************************\ -* PRGT system switches * -\******************************************************************************/ - -//these three are strings not switches -const string PRC_PRGT_XP_SCRIPT_TRIGGERED = "PRC_PRGT_XP_SCRIPT_TRIGGERED"; -const string PRC_PRGT_XP_SCRIPT_DISARMED = "PRC_PRGT_XP_SCRIPT_DISARMED"; -const string PRC_PRGT_XP_SCRIPT_RECOVERED = "PRC_PRGT_XP_SCRIPT_RECOVERED"; - -/** - * @TODO: Write description. - */ -const string PRC_PRGT_XP_AWARD_FOR_TRIGGERED = "PRC_PRGT_XP_AWARD_FOR_TRIGGERED"; - -/** - * @TODO: Write description. - */ -const string PRC_PRGT_XP_AWARD_FOR_RECOVERED = "PRC_PRGT_XP_AWARD_FOR_RECOVERED"; - -/** - * @TODO: Write description. - */ -const string PRC_PRGT_XP_AWARD_FOR_DISARMED = "PRC_PRGT_XP_AWARD_FOR_DISARMED"; - - - -/******************************************************************************\ -* Psionics switches * -\******************************************************************************/ - -/** - * If this is set, use ac_appearances.2da to determine an Astral Construct's - * appearance instead of the values hardcoded into the script. - */ -const string PRC_PSI_ASTRAL_CONSTRUCT_USE_2DA = "ASTRAL_CONSTRUCT_USE_2DA"; - -/** - * If this is set, Astral Construct's duration will be multiplied by given - * number. Examples: - * 10 - duration is equal to 1 minute per manifester level - * 600 - duration is equal to 1 hour per manifester level - */ -const string PRC_PSI_ASTRAL_CONSTRUCT_DUR_MOD = "PRC_PSI_ASTRAL_CONSTRUCT_DUR_MOD"; - - -/** - * If this is set, The Astral Seed power will attempt to use the provided string as - * the ResRef to create the Astral Seed object instead of the of the phylactery - * ResRef("x2_plc_phylact"). - * May be used by builders to create an object that CAN be destroyed, or has other traits, - * as desired. - * Type: String - * Values: "" [Default] (Blank, or not set: Use default phylactery ResRef for Astral Seed) - * STRING (Entered String will be used as the ResRef of created Astral Seed object) - */ -const string PRC_PSI_ASTRAL_SEED_RESREF = "PRC_PSI_ASTRAL_SEED_RESREF"; - -/** - * By default the Astral Seed power respawns the player, and then makes them immobile for - * 24-game-hours. - * If this switch is set, it will adjust the imobility time period; shortening it, lengthing it, or - * effectively eliminating it. - * Type: Int - * Values: 0 [Default] (Not set: Use default 24 hour duration) - * -1 (Any negative value will result in a fixed duratoion of 2 seconds, which effectively eliminates the wait period) - * 1 (Any potitive value: multiply duration by the value provided and then divide result by 1000. - * Values less than 1000 will shorten the duration, values higher than 1000 will lengthen it.) - */ -const string PRC_PSI_ASTRAL_SEED_RESPAWN_DELAY_X1000 = "PRC_PSI_ASTRAL_SEED_RESPAWN_DELAY_X1000"; - -/** - * By default, when the Astral Seed power is activated upon death, the user loses one level's - * worth of XP. This may not be compatabile with all death and respawn systems. - * If this flag is set, the XP loss is completely eliminated. The standard PRC event hook script - * of "prc_pw_astralseed" may be used to script any additional effects to occure upon Astral Seed - * respawning, including scripting specific XP loss amount. - * Type: Int - * Values: 0 [Default] (Not set: lose 1 level worth of XP upon Astral Seed respawn) - * 1 (Any potitive value: Remove all XP loss from Astral Seed respawn) - */ -const string PRC_PSI_ASTRAL_SEED_RESPAWN_NO_LEVEL_LOSS = "PRC_PSI_ASTRAL_SEED_RESPAWN_NO_LEVEL_LOSS"; - - -/** - * Setting this switch active makes Psychic Reformation only allow one to - * reselect psionic powers instead of fully rebuilding their character. - * - * Possible values: - * 0 = Off, Psychic Reformation behaves as specified in the power - * description. That is, the target is deleveled by a certain - * amount and then releveled back to where they were. - * Nonzero, not 2 = On, Psychic Reformation only nulls a selected number of - * the target's selected powers and allows reselection. - * 2 = On, and the XP cost is reduced to 25 per level reformed. - */ -const string PRC_PSI_PSYCHIC_REFORMATION_NERF = "PRC_PSI_PSYCHIC_REFORMATION_NERF"; - -/** - * Determines how Rapid Metabolism works. - * When set, heals the feat possessor by their Hit Dice + Constitution modifier - * every 24h. - * Default: Heals the feat possessor by 1 + their Constitution modifier every - * turn (60s). - */ -const string PRC_PNP_RAPID_METABOLISM = "PRC_PNP_RAPID_METABOLISM"; - -/** - * Determines how the epic feat Improved Metapsionics works. - * When set, the total cost of metapsionics applied to power being manifested is - * summed and Improved Metapsionics cost reduction is applied to the sum. - * Default: Improved Metapsionics cost reduction is applied separately to each - * metapsionic used with power being manifested. - */ -const string PRC_PSI_IMP_METAPSIONICS_USE_SUM = "PRC_PSI_IMP_METAPSIONICS_USE_SUM"; - - -/** - * A switch a player can personally toggle. If this is set, their augmentation level - * is considered to be the amount of PP they are willing to pay for augmentation. - * Default: A player's augmentation level is the number of times to augment the power. - */ -const string PRC_PLAYER_SWITCH_AUGMENT_IS_PP = "PRC_PLAYER_SWITCH_AUGMENT_IS_PP"; - -/** - * A switch a player can personally toggle. If set, the metapsionics code attempts - * to avoid exceeding the manifester level cap by skipping application of - * such active metapsionic feats where the cost would cause manifester level cap to - * be exceeded. Quicken Power is exempt from ever being skipped if it is active. - */ -const string PRC_PLAYER_SWITCH_AUTOMETAPSI = "PRC_PLAYER_SWITCH_AUTOMETAPSI"; - -/******************************************************************************\ -* PnP Polymorphing switches * -\******************************************************************************/ - -/** - * These switches are used to limit the targets that can be used with the - * PRC Polymorph / Shifting mechanics. - * - * Remember, mimicing uses the targetting instance, whereas - * shifting into that form again later creats a new instance from - * the resref. Thus if you modify creatures after they have been - * placed from the palette, odd things may happen. - * - * Also if you give any monster the "Archetypal Form" feat, the players - * will not be able to take that monsters shape. - */ - -/** - * If set, the system compares user HD to target CR. - * Default: user HD is compared to target HD - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_USECR = "PNP_SHFT_USECR"; - -/** - * If set, the system does not allow target creatures of size Huge or greater. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_S_HUGE = "PNP_SHFT_S_HUGE"; - -/** - * If set, the system does not allow target creatures of size Large. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_S_LARGE = "PNP_SHFT_S_LARGE"; - -/** - * If set, the system does not allow target creatures of size Medium. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_S_MEDIUM = "PNP_SHFT_S_MEDIUM"; - -/** - * If set, the system does not allow target creatures of size Small. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_S_SMALL = "PNP_SHFT_S_SMALL"; - -/** - * If set, the system does not allow target creatures of size Tiny or smaller. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_S_TINY = "PNP_SHFT_S_TINY"; - -/** - * If set, the system does not allow target creatures of type Outsider. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_OUTSIDER = "PNP_SHFT_F_OUTSIDER"; - -/** - * If set, the system does not allow target creatures of type Elemental. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_ELEMENTAL = "PNP_SHFT_F_ELEMENTAL"; - -/** - * If set, the system does not allow target creatures of type Construct. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_CONSTRUCT = "PNP_SHFT_F_CONSTRUCT"; - -/** - * If set, the system does not allow target creatures of type Undead. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_UNDEAD = "PNP_SHFT_F_UNDEAD"; - -/** - * If set, the system does not allow target creatures of type Dragon. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_DRAGON = "PNP_SHFT_F_DRAGON"; - -/** - * If set, the system does not allow target creatures of type Aberration. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_ABERRATION = "PNP_SHFT_F_ABERRATION"; - -/** - * If set, the system does not allow target creatures of type Ooze. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_OOZE = "PNP_SHFT_F_OOZE"; - -/** - * If set, the system does not allow target creatures of type Magical Beast. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_MAGICALBEAST = "PNP_SHFT_F_MAGICALBEAST"; - -/** - * If set, the system does not allow target creatures of type Giant. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_GIANT = "PNP_SHFT_F_GIANT"; - -/** - * If set, the system does not allow target creatures of type Vermin. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_VERMIN = "PNP_SHFT_F_VERMIN"; - -/** - * If set, the system does not allow target creatures of type Beast. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_BEAST = "PNP_SHFT_F_BEAST"; - -/** - * If set, the system does not allow target creatures of type Animal. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_ANIMAL = "PNP_SHFT_F_ANIMAL"; - -/** - * If set, the system does not allow target creatures of type Monstrous Humanoid. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_MONSTROUSHUMANOID = "PNP_SHFT_F_MONSTROUSHUMANOID"; - -/** - * If set, the system does not allow target creatures of type Humanoid. - * Values: 0 is not set, anything else is set. - */ -const string PNP_SHFT_F_HUMANOID = "PNP_SHFT_F_HUMANOID"; - -/******************************************************************************\ -* Combat System Switches * -\******************************************************************************/ - -/** - * ebonfowl: when TRUE critical hits will not multiply elemental melee damage - * from effects in scripted combat - */ -const string PRC_PNP_ELEMENTAL_DAMAGE = "PRC_PNP_ELEMENTAL_DAMAGE"; - -/** - * TODO: Write description. - */ -const string PRC_SPELL_SNEAK_DISABLE = "PRC_SPELL_SNEAK_DISABLE"; - -/** - * Use 3.5 edition unarmed damage progression instead of 3.0 edition. - * Default: Use 3.0 unarmed damage progression. - */ -const string PRC_3_5e_FIST_DAMAGE = "PRC_3_5e_FIST_DAMAGE"; - -/** - * Use a Brawler character's size as a part of determining their unarmed - * damage. - * Default: A Brawler's size is ignored. - */ -const string PRC_BRAWLER_SIZE = "PRC_BRAWLER_SIZE"; - -/** - * Use appearance size rather than racial-determined size - * This also means it includes bonuses from classes and spells - */ -const string PRC_APPEARANCE_SIZE = "PRC_APPEARANCE_SIZE"; - -/** - * This reenables the Bioware Monk attack progression, with up to 6 monk attacks per round -*/ -const string PRC_BIOWARE_MONK_ATTACKS ="PRC_BIOWARE_MONK_ATTACKS"; - -/** - * This switch (if on) takes care that only light weapons (one size smaller than the creature size) - * are finessable, meaning that small races can only finesse tiny weapons - */ -const string PRC_SMALL_CREATURE_FINESSE ="PRC_SMALL_CREATURE_FINESSE"; - -/** - * turns on combat debugging for scripted combat, - * similar to Bioware's dm_enablecombatdebugging 1 - * will show a lot of info about the attack and damage rolls - */ -const string PRC_COMBAT_DEBUG = "PRC_COMBAT_DEBUG"; - -/** - * switches on Biowares Divine Power version (bonus atacks come at full AB) - */ -const string PRC_BIOWARE_DIVINE_POWER = "PRC_BIOWARE_DIVINE_POWER"; - -/** - * if True, allows us to select a better target in prc combat functions - * by switching from one target to another (closer) target - * only relevant for melee combat (we never switch targets on ranged combat) - */ -const string PRC_ALLOW_SWITCH_OF_TARGET = "PRC_ALLOW_SWITCH_OF_TARGET"; - -/** - * disable coup the grace on first attack in round - */ -const string PRC_DISABLE_COUP_DE_GRACE = "PRC_DISABLE_COUP_DE_GRACE"; - -/** - * limit to the (non-dice) damage of a flame weapon or darkfire spell - * if the switch is not set or zero, non-dice damage of flame weapon or darkfire is limited to 10 - * it is recommended not to set these switches higher than 10 - */ -const string PRC_FLAME_WEAPON_DAMAGE_MAX = "PRC_FLAME_WEAPON_DAMAGE_MAX"; -const string PRC_DARKFIRE_DAMAGE_MAX = "PRC_DARKFIRE_DAMAGE_MAX"; - -/** - * ebonfowl: when this switch is not FALSE, the attack bonus is capped as it is in-game, if FALSE, - * attack bonus is uncapped - */ -const string PRC_CAPPED_ATTACK_BONUS = "PRC_CAPPED_ATTACK_BONUS"; - - -/******************************************************************************\ -* Craft System Switches * -\******************************************************************************/ - -/* - * Completely disable the PRC Crafting System - */ -const string PRC_DISABLE_CRAFT = "PRC_DISABLE_CRAFT"; - -/* - * Disables epic crafting - */ -const string PRC_DISABLE_CRAFT_EPIC = "PRC_DISABLE_CRAFT_EPIC"; - -/* - * Set this on an area to disable crafting within that area - * Best used in conjunction with the time elapsing and no-rest - * This applies to both PRC Crafting and biowares scroll/wand/potions - */ -const string PRC_AREA_DISABLE_CRAFTING = "PRC_AREA_DISABLE_CRAFTING"; - -/* - * Inverts the behavior of previous switch - * Will disable crafting on all areas BUT ones with the - * PRC_AREA_DISABLE_CRAFTING switch set - * Only works for new crafting system - */ -const string PRC_AREA_DISABLE_CRAFTING_INVERT = "PRC_AREA_DISABLE_CRAFTING_INVERT"; - -/* - * Multiply the delay (in seconds) after the creation of an item in which a PC - * can't craft anything. This is divided by 100 to get a float. - * Normally, it's set to the market price of the item. Set - * it to less than 100 to reduce it instead. (default: 0). - * - * This is independant of PRC_PLAYER_TIME - * - */ -const string PRC_CRAFT_TIMER_MULTIPLIER = "PRC_CRAFT_TIMER_MULTIPLIER"; - -/* - * Absolute maximum delay (in seconds) where crafting is disabled for a PC, - * regardless of the item's market price. By default it's 0 (meaning that there's - * no delay at all). - * - * This is independant of PRC_PLAYER_TIME - * - */ -const string PRC_CRAFT_TIMER_MAX = "PRC_CRAFT_TIMER_MAX"; - -/* - * Absolute minimum delay (in seconds) where crafting is disabled for a PC, - * regardless of the item's market price. By default it's 0 (meaning that there's - * no delay at all). - * - * This is independant of PRC_PLAYER_TIME - * - */ -const string PRC_CRAFT_TIMER_MIN = "PRC_CRAFT_TIMER_MIN"; - -/** - * These three switches modify Bioware crafting so that the items produced have the - * casterlevel of the spellcaster who created them. Normally under Bioware, it is possible - * for a level 3 caster to produce level 9 items and for a level 40 caster to only produce - * level 5 items. - * This also allows metamagic to apply to crafting. i.e you produce a wand of maximized fireball - * - * @see PRC_SCRIBE_SCROLL_CASTER_LEVEL - * @see PRC_CRAFT_WAND_CASTER_LEVEL - */ -const string PRC_BREW_POTION_CASTER_LEVEL = "PRC_BREW_POTION_CASTER_LEVEL"; - -/** - * These three switches modify Bioware crafting so that the items produced have the - * casterlevel of the spellcaster who created them. Normally under Bioware, it is possible - * for a level 3 caster to produce level 9 items and for a level 40 caster to only produce - * level 5 items. - * This also allows metamagic to apply to crafting. i.e you produce a wand of maximized fireball - * - * @see PRC_BREW_POTION_CASTER_LEVEL - * @see PRC_CRAFT_WAND_CASTER_LEVEL - */ -const string PRC_SCRIBE_SCROLL_CASTER_LEVEL = "PRC_SCRIBE_SCROLL_CASTER_LEVEL"; - -/** - * These three switches modify Bioware crafting so that the items produced have the - * casterlevel of the spellcaster who created them. Normally under Bioware, it is possible - * for a level 3 caster to produce level 9 items and for a level 40 caster to only produce - * level 5 items. - * This also allows metamagic to apply to crafting. i.e you produce a wand of maximized fireball - * - * @see PRC_BREW_POTION_CASTER_LEVEL - * @see PRC_SCRIBE_SCROLL_CASTER_LEVEL - */ -const string PRC_CRAFT_WAND_CASTER_LEVEL = "PRC_CRAFT_WAND_CASTER_LEVEL"; - -/** - * As above, except it applies to rods - */ -const string PRC_CRAFT_ROD_CASTER_LEVEL = "PRC_CRAFT_ROD_CASTER_LEVEL"; - -/** - * As above, except it applies to staffs - */ -const string PRC_CRAFT_STAFF_CASTER_LEVEL = "PRC_CRAFT_STAFF_CASTER_LEVEL"; - -/* - * Characters with a crafting feat always have the appropriate base item in their inventory - */ -const string PRC_CRAFTING_BASE_ITEMS = "PRC_CRAFTING_BASE_ITEMS"; - -/* - * Max level of spells brewed into potions - * defaults to 3 - */ -const string X2_CI_BREWPOTION_MAXLEVEL = "X2_CI_BREWPOTION_MAXLEVEL"; - -/* - * cost modifier of spells brewed into poitions - * defaults to 50 - */ -const string X2_CI_BREWPOTION_COSTMODIFIER = "X2_CI_BREWPOTION_COSTMODIFIER"; - -/* - * cost modifier of spells scribed into scrolls - * defaults to 25 - */ -const string X2_CI_SCRIBESCROLL_COSTMODIFIER = "X2_CI_SCRIBESCROLL_COSTMODIFIER"; - -/* - * Max level of spells crafted into wands - * defaults to 4 - */ -const string X2_CI_CRAFTWAND_MAXLEVEL = "X2_CI_CRAFTWAND_MAXLEVEL"; - -/* - * cost modifier of spells crafted into wands - * defaults to 750 - */ -const string X2_CI_CRAFTWAND_COSTMODIFIER = "X2_CI_CRAFTWAND_COSTMODIFIER"; - -/* - * cost modifier of spells crafted into rods - * note that adding a second spell costs 75% and 3 or more costs 50% - * defaults to 750 - */ -const string X2_CI_CRAFTROD_COSTMODIFIER = "X2_CI_CRAFTROD_COSTMODIFIER"; - -/* - * cost modifier of spells crafted into staffs - * note that adding a second spell costs 75% and 3 or more costs 50% - * defaults to 750 - */ -const string X2_CI_CRAFTSTAFF_COSTMODIFIER = "X2_CI_CRAFTSTAFF_COSTMODIFIER"; - -/** - * Allows the use of arbitrary itemproperties and uses NWN item costs - * ie. not PnP - */ -const string PRC_CRAFTING_ARBITRARY = "PRC_CRAFTING_ARBITRARY"; - -/** - * Scales the item costs overall for the purposes of crafting - * defaults to 100 - */ -const string PRC_CRAFTING_COST_SCALE = "PRC_CRAFTING_COST_SCALE"; - -/** - * Scales the item costs for mundane item crafting - * defaults to 100 - */ -const string PRC_CRAFTING_MUNDANE_COST_SCALE = "PRC_CRAFTING_MUNDANE_COST_SCALE"; - -/** - * Sets crafting time per 1000gp in market price: - * 1 - off, no time required - * 2 - round - * 3 - turn - * 4 - hour - * 5 - day - * defaults to 1 hour/1000gp - */ -const string PRC_CRAFTING_TIME_SCALE = "PRC_CRAFTING_TIME_SCALE"; - -/** - * TO DISABLE SPECIFIC PROPERTIES: - * - * Set a switch with the name: - * - * PRC_CRAFT_DISABLE__ - * - * where the 2da files are named craft_* (lower case) - * or itempropdef in the case of arbitrary crafting - * - * eg. PRC_CRAFT_DISABLE_itempropdef_15 - * - * disables all castspell properties in arbitrary crafting mode - */ - -/******************************************************************************\ -* Teleport System Switches * -\******************************************************************************/ - -/** - * Defines the maximum number of teleport target locations a PC may store. - * Default: 50 - */ -const string PRC_TELEPORT_MAX_TARGET_LOCATIONS = "PRC_TELEPORT_MAX_TARGET_LOCATIONS"; - -/** - * If this is set, all spells/powers/effects with the [Teleportation] descriptor - * (ie, their scripts use GetCanTeleport()) fail. - * - * Default: Off - */ -const string PRC_DISABLE_TELEPORTATION = "PRC_DISABLE_TELEPORTATION"; - -/** - * If a local integer variable by this name is set on an area, certain - * teleportation destinations are unavailable based on the value of the variable. - * This affects the return value of GetCanTeleport() when the bMovesCreature parameter - * is true. - * - * Possible values are a bitwise combinations of the following: - * PRC_DISABLE_TELEPORTATION_FROM_AREA - * PRC_DISABLE_TELEPORTATION_TO_AREA - * PRC_DISABLE_TELEPORTATION_WITHIN_AREA - */ -const string PRC_DISABLE_TELEPORTATION_IN_AREA = "PRC_DISABLE_TELEPORTATION_IN_AREA"; - -/** - * A value of PRC_DISABLE_TELEPORTATION_IN_AREA. This disables teleporting - * from the area in question to other areas. - */ -const int PRC_DISABLE_TELEPORTATION_FROM_AREA = 0x1; - -/** - * A value of PRC_DISABLE_TELEPORTATION_IN_AREA. This disables teleporting - * from other areas to the area in question. - */ -const int PRC_DISABLE_TELEPORTATION_TO_AREA = 0x2; - -/** - * A value of PRC_DISABLE_TELEPORTATION_IN_AREA. This disables both teleporting - * from area in question to another location in that same area. - */ -const int PRC_DISABLE_TELEPORTATION_WITHIN_AREA = 0x4; - -/** - * Forces spells/powers/effects that use GetTeleportError() to behave in a - * specific way when their destination is in an area on which this local - * variable is set. - * Based on the value of this variable, such a spell/power will always behave in - * a way described by one of the entries of Teleport results table. This happens - * even if the spell/power would normally ignore the table. - * - * Default: Each spell / power behaves by it's normal specification. - * - * Values: - * PRC_FORCE_TELEPORTATION_RESULT_ONTARGET - * PRC_FORCE_TELEPORTATION_RESULT_OFFTARGET - * PRC_FORCE_TELEPORTATION_RESULT_WAYOFFTARGET - * PRC_FORCE_TELEPORTATION_RESULT_MISHAP - */ -const string PRC_FORCE_TELEPORTATION_RESULT = "PRC_FORCE_TELEPORTATION_RESULT"; - -/** - * A value of PRC_FORCE_TELEPORTATION_RESULT. This makes the spells affected by - * the variable always succeed. - */ -const int PRC_FORCE_TELEPORTATION_RESULT_ONTARGET = 1; - -/** - * A value of PRC_FORCE_TELEPORTATION_RESULT. This makes the spells affected by - * the variable always dump the target(s) in a random location in the same area. - */ -const int PRC_FORCE_TELEPORTATION_RESULT_OFFTARGET = 2; - -/** - * A value of PRC_FORCE_TELEPORTATION_RESULT. This makes the spells affected by - * the variable always dump the target(s) in a random location among the users's - * stored teleport choices, or if there are no others, just stay where the user is. - */ -const int PRC_FORCE_TELEPORTATION_RESULT_WAYOFFTARGET = 3; - -/** - * A value of PRC_FORCE_TELEPORTATION_RESULT. This makes the spells affected by - * the variable always do the following: - * // Mishap: - * // You and anyone else teleporting with you have gotten “scrambled.” - * // You each take 1d10 points of damage, and you reroll on the chart to see where you wind up. - * // For these rerolls, roll 1d20+80. Each time “Mishap” comes up, the characters take more damage and must reroll. - */ -const int PRC_FORCE_TELEPORTATION_RESULT_MISHAP = 4; - -/** - * If a variable by this name is non-zero on a creature, that creature cannot - * teleport. If you use this in your own scripts, please do not set it to - * a static value or directly remove it. - * Instead, increase it's value by one when the disabling occurs and decrease - * by one when the disabling turns off. This is required in order to be able to - * handle overlapping sources of forbiddance. - * - * Note: This stops all effects with the [Teleportation] descriptor, by causing - * GetCanTeleport() to always return FALSE. - */ -const string PRC_DISABLE_CREATURE_TELEPORT = "PRC_DISABLE_CREATURE_TELEPORT"; - - -/******************************************************************************\ -* Persistent World switches * -\******************************************************************************/ - -/** - * Persistant time tracking. - * When the first player logs on, the clock is set forward to the last time that - * player logged off. - */ -const string PRC_PW_TIME = "PRC_PW_TIME"; - -/** - * Number of rounds between exporting characters (1 round = 6 seconds). - */ -const string PRC_PW_PC_AUTOEXPORT = "PRC_PW_PC_AUTOEXPORT"; - -/** - * A player's HP is stored via persistant locals every HB and restored on logon. - */ -const string PRC_PW_HP_TRACKING = "PRC_PW_HP_TRACKING"; - -/** - * A player's location is stored via persistant locals every HB and restored - * on logon. - */ -const string PRC_PW_LOCATION_TRACKING = "PRC_PW_LOCATION_TRACKING"; - -/** - * Player places map pins are tracked via persistant locals and restored on logon - */ -const string PRC_PW_MAPPIN_TRACKING = "PRC_PW_MAPPIN_TRACKING"; - -/** - * Being dead is stored via persistant locals and restored on logon. - */ -const string PRC_PW_DEATH_TRACKING = "PRC_PW_DEATH_TRACKING"; - -/** - * Spells cast are tracked via persistant locals and restored on logon - */ -const string PRC_PW_SPELL_TRACKING = "PRC_PW_SPELL_TRACKING"; - -/** - * Players cant logon for this many minutes after a server load - */ -const string PRC_PW_LOGON_DELAY = "PRC_PW_LOGON_DELAY"; - - - -/******************************************************************************\ -* XP system switches * -\******************************************************************************/ - -/** - * This modifies the amount of XP a character recieves based on Level Adjustment - * - Doesn't take racial hit dice into account. - * - Should work with any prior XP system. - * - Use this on pre-exisitng modules. - */ -const string PRC_XP_USE_SIMPLE_LA = "PRC_XP_USE_SIMPLE_LA"; - -/** - * Any new characters entering the module are automatically given racial hit dice - * Unlike PnP, they do not get to select what feats/skills the racial HD grant - * Instead the default bioware package will be used. - * Do not use if the ConvoCCs racial hit dice option is in use. - */ -const string PRC_XP_USE_SIMPLE_RACIAL_HD = "PRC_XP_USE_SIMPLE_RACIAL_HD"; - -/** - * Characters must earn their racial HD through the normal levelup process - * Player must still take all their racial HD before they can take more - * than one level in a non-racial class. - * PRC_XP_USE_SIMPLE_RACIAL_HD must be on, and the convoCC racial hit dice option - * must be off - */ -const string PRC_XP_USE_SIMPLE_RACIAL_HD_NO_FREE_XP = "PRC_XP_USE_SIMPLE_RACIAL_HD_NO_FREE_XP"; - -/** - * Characters are given racial HD via LevelupHenchman so can't select feats etc - * Uses the default packages for each class, which are poor to say the least - * PRC_XP_USE_SIMPLE_RACIAL_HD must be on, and the convoCC racial hit dice option - * must be off - */ -const string PRC_XP_USE_SIMPLE_RACIAL_HD_NO_SELECTION = "PRC_XP_USE_SIMPLE_RACIAL_HD_NO_SELECTION"; - -/** - * Enables PRC XP system. - * This may cause balance issues with pre-exisiting modules, so it is recomended - * that only builders use this and do extensive playtesting and tweaking for - * balance. - * - * Uses the dmgxp.2da file which is a copy of the XP tables in the DMG and ELH - * these are based on the formula of 13.3333 encounters of CR = ECL to advance - * a level. - * Enconters of CR > ECL+8 or CR < ECL-8 dont give XP. - * Tables are setup so that parties' levels will converge over time. - */ -const string PRC_XP_USE_PNP_XP = "PRC_XP_USE_PNP_XP"; - -/** - * PRC XP system will use default bioware xptable.2da instead of dmgxp.2da - */ -const string PRC_XP_USE_BIOWARE_XPTABLE = "PRC_XP_USE_BIOWARE_XPTABLE"; - -/** - * This value is divided by 100 when applied so a value of 100 is equivalent to 1.0 - * slider for PnP XP system, multiplier for final XP amount - * This can also be set on individual PCs for the same result. If it is not set, then - * it defaults to 1.0. - */ -const string PRC_XP_SLIDER_x100 = "PRC_XP_SLIDER_x100"; - -/** - * Player groups will get small xp bonuses. Formula is group size - 1 * switch/100 - * so with a default value of 10 (10%) a party of 4 PCs receives 30% XP bonus - */ -const string PRC_XP_GROUP_BONUS = "PRC_XP_GROUP_BONUS"; - -/** - * Use ECL for NPCs instead of CR. - * Should be close, but I dont know how Bioware CR calculations work with the - * PRC races. - * Also note ECL is a measure of power in a campaign, wheras CR is measure of - * power in a single encounter. Thus ECL weights use/day abilitieis more than - * CR does. - */ -const string PRC_XP_USE_ECL_NOT_CR = "PRC_XP_USE_ECL_NOT_CR"; - -/** - * If this is set, ECL = LA + racial hit dice - * EVEN IF THE CHARACTER DOESNT HAVE ANY RACIAL HIT DICE! - * So it penalizes the power races far more than PnP because they don't get any - * of the other benefits of racial hit dice (BAB, HP, saves, skills, feats, etc) - */ -const string PRC_XP_INCLUDE_RACIAL_HIT_DIE_IN_LA = "PRC_XP_INCLUDE_RACIAL_HIT_DIE_IN_LA"; - -/** - * These values are divided by 100 when applied so a value of 100 is equivalent - * to 1.0. - * This is for purposes of party size for dividing XP awards by. - * By PnP only PCs would count, and possibly henchmen too, but you might want to - * tweak others for balance purposes, for example to hinder a solo wizard with - * dozens of summons. - */ -const string PRC_XP_PC_PARTY_COUNT_x100 = "PRC_XP_PC_PARTY_COUNT_x100"; -const string PRC_XP_HENCHMAN_PARTY_COUNT_x100 = "PRC_XP_HENCHMAN_PARTY_COUNT_x100"; -const string PRC_XP_DOMINATED_PARTY_COUNT_x100 = "PRC_XP_DOMINATED_PARTY_COUNT_x100"; -const string PRC_XP_ANIMALCOMPANION_PARTY_COUNT_x100 = "PRC_XP_ANIMALCOMPANION_PARTY_COUNT_x100"; -const string PRC_XP_FAMILIAR_PARTY_COUNT_x100 = "PRC_XP_FAMILIAR_PARTY_COUNT_x100"; -const string PRC_XP_SUMMONED_PARTY_COUNT_x100 = "PRC_XP_SUMMONED_PARTY_COUNT_x100"; -const string PRC_XP_UNKNOWN_PARTY_COUNT_x100 = "PRC_XP_UNKNOWN_PARTY_COUNT_x100"; - -/** - * Use SetXP rather than GiveXP. Will bypass any possible Bioware interference. - */ -const string PRC_XP_USE_SETXP = "PRC_XP_USE_SETXP"; - -/** - * Give XP to NPCs - */ -const string PRC_XP_GIVE_XP_TO_NPCS = "PRC_XP_GIVE_XP_TO_NPCS"; - -/** - * Setting this switch will turn off the messages about being too far awy to gain XP - */ -const string PRC_XP_DISABLE_SPAM = "PRC_XP_DISABLE_SPAM"; - -/** - * PCs must be in the same area as the CR to gain XP. - * Helps stop powerlevelling by detering low level characters hanging around - * with 1 very strong char. - */ -const string PRC_XP_MUST_BE_IN_AREA = "PRC_XP_MUST_BE_IN_AREA"; - -/** - * Maximum distance that a PC must be to gain XP. - * Helps stop powerlevelling by detering low level characters hanging around - * with 1 very strong char. - */ -const string PRC_XP_MAX_PHYSICAL_DISTANCE = "PRC_XP_MAX_PHYSICAL_DISTANCE"; - -/** - * Maximum level difference in levels between killer and PC being awarded XP. - * Helps stop powerlevelling by detering low level characters hanging around - * with 1 very strong char. - */ -const string PRC_XP_MAX_LEVEL_DIFF = "PRC_XP_MAX_LEVEL_DIFF"; - -/** - * Gives XP to NPCs when no PCs are in their faction - * This might cause lag if large numebrs of NPCs in the same faction. - */ -const string PRC_XP_GIVE_XP_TO_NON_PC_FACTIONS = "PRC_XP_GIVE_XP_TO_NON_PC_FACTIONS"; - - - - -/******************************************************************************\ -* Database and Letoscript switches * -\******************************************************************************/ - -/** - * Set this if you want to use the bioware db for 2da caching - * the value is the number of Hbs between caching runs - * Defaults to 300 (30 mins) if not set - * cache will be flushed automatically when the PRC version changes - * If this is set to -1 or lower, it is never stored for persistance over - * module restarts. - * The bioware database will bloat infinitely on Linux, due to biowares poor - * handling. - */ -const string PRC_USE_BIOWARE_DATABASE = "PRC_USE_BIOWARE_DATABASE"; - -/** - * Set this if you are using NWNX and any sort of database. - */ -const string PRC_USE_DATABASE = "PRC_USE_DATABASE"; - -/** - * Set this if you are using SQLite (the built-in database in NWNX-ODBC2). - * This will use transactions and SQLite specific syntax. - */ -const string PRC_DB_SQLITE = "PRC_DB_SQLITE"; - -/** - * This is the interval of each transaction. By default it is 600 seconds. - * Shorter will mean slower, but less data lost in the event of a server crash. - * Longer is visa versa. - */ -const string PRC_DB_SQLITE_INTERVAL = "PRC_DB_SQLITE_INTERVAL"; - -/** - * Set this if you are using MySQL. - * This will not use transactions and will use MySQL specific syntax - */ -const string PRC_DB_MYSQL = "PRC_DB_MYSQL"; - - -/** - * [DEFUNCT] - * This will precache 2da files into the database. - * The first time a module runs with this set it will lag a lot for a long time - * as the game does 2da reads. - * Afterwards it will be much faster. - * This is a really, really long lag. Like days/weeks type length. - * This is not the "normal" precaching that the spellbooks & psionics does. - */ -const string PRC_DB_PRECACHE = "PRC_DB_PRECACHE"; - -/** - * [DEFUNCT] - * TODO: Write description. - */ -const string PRC_USE_LETOSCRIPT = "PRC_USE_LETOSCRIPT"; - -/** - * [DEFUNCT] - * Set this to 1 if using build 18 - */ -const string PRC_LETOSCRIPT_PHEONIX_SYNTAX = "PRC_LETOSCRIPT_PHEONIX_SYNTAX"; - -/** - * [DEFUNCT] - * Set this to 1 to have Letoscript convert stat boosts on the hide to - * permanent ones. - */ -const string PRC_LETOSCRIPT_FIX_ABILITIES = "PRC_LETOSCRIPT_FIX_ABILITIES"; - -/** - * [DEFUNCT] - * Letoscript needs a string named PRC_LETOSCRIPT_NWN_DIR set to the - * directory of NWN. If it doesnt work, try different slash options: // \\ / \ - */ -const string PRC_LETOSCRIPT_NWN_DIR = "PRC_LETOSCRIPT_NWN_DIR"; - -/** - * [DEFUNCT] - * Switch so that Unicorn will use the SQL database for SCO/RCO - * Must have the zeoslib.dlls installed for this - * - * UNTESTED!!! - */ -const string PRC_LETOSCRIPT_UNICORN_SQL = "PRC_LETOSCRIPT_UNICORN_SQL"; - -/** - * [DEFUNCT] - * This is a string, not integer. - * If the IP is set, Letoscript will use ActivatePortal instead of booting. - * The IP and Password must be correct for your server or bad things will happen. - * - If your IP is non-static make sure this is kept up to date. - * - * See the Lexicon entry on ActivatePortal for more information. - * - * @see PRC_LETOSCRIPT_PORTAL_PASSWORD - */ -const string PRC_LETOSCRIPT_PORTAL_IP = "PRC_LETOSCRIPT_PORTAL_IP"; - -/** - * [DEFUNCT] - * This is a string, not integer. - * If the IP is set, Letoscript will use ActivatePortal instead of booting. - * The IP and Password must be correct for your server or bad things will happen. - * - If your IP is non-static make sure this is kept up to date. - * - * See the Lexicon entry on ActivatePortal for more information. - * - * @see PRC_LETOSCRIPT_PORTAL_IP - */ -const string PRC_LETOSCRIPT_PORTAL_PASSWORD = "PRC_LETOSCRIPT_PORTAL_PASSWORD"; - -/** - * [DEFUNCT] - * If set you must be using Unicorn. - * Will use getnewest bic instead of filename reconstruction (which fails if - * multiple characters have the same name) - */ -const string PRC_LETOSCRIPT_GETNEWESTBIC = "PRC_LETOSCRIPT_GETNEWESTBIC"; - -//This switch is set automatically after prc_onmodload detects NWNX_Funcs plugin -const string PRC_NWNX_FUNCS = "PRC_NWNX_FUNCS"; - - -/******************************************************************************\ -* ConvoCC switches [DEFUNCT] * -\******************************************************************************/ - -/** - * [DEFUNCT] - * Activates the ConvoCC. - * This doesn't turn on the database and letoscript as well, which you must - * do yourself. - * - * @see PRC_USE_DATABASE - * @see PRC_USE_LETOSCRIPT - */ -const string PRC_CONVOCC_ENABLE = "PRC_CONVOCC_ENABLE"; - -/** - * [DEFUNCT] - * Avariel characters have bird wings. - */ -const string PRC_CONVOCC_AVARIEL_WINGS = "PRC_CONVOCC_AVARIEL_WINGS"; - -/** - * [DEFUNCT] - * Fey'ri characters have bat wings. - */ -const string PRC_CONVOCC_FEYRI_WINGS = "PRC_CONVOCC_FEYRI_WINGS"; - -/** - * [DEFUNCT] - * Aasimar characters have the option of angel wings - * Note: Not set by PRC_CONVOCC_ENFORCE_PNP_RACIAL as it isn't part of PnP - */ - -const string PRC_CONVOCC_AASIMAR_WINGS = "PRC_CONVOCC_AASIMAR_WINGS"; - -/** - * [DEFUNCT] - * Fey'ri characters have a demonic tail. - */ -const string PRC_CONVOCC_FEYRI_TAIL = "PRC_CONVOCC_FEYRI_TAIL"; - -/** - * [DEFUNCT] - * Teifling characters have the option of a demonic tail. - */ -const string PRC_CONVOCC_TIEFLING_TAIL = "PRC_CONVOCC_TIEFLING_TAIL"; - -/** - * [DEFUNCT] - * Force Drow characters to be of the correct gender for their race. - */ -const string PRC_CONVOCC_DROW_ENFORCE_GENDER = "PRC_CONVOCC_DROW_ENFORCE_GENDER"; - -/** - *[DEFUNCT] - * Force Genasi clerics to select the relevant elemental domain as one of - * their feats. - */ -const string PRC_CONVOCC_GENASI_ENFORCE_DOMAINS = "PRC_CONVOCC_GENASI_ENFORCE_DOMAINS"; - -/** - *[DEFUNCT] - * Female Rakshasa use the female rakshasa model. Use together with PRC_CONVOCC_USE_RACIAL_APPEARANCES - * @see PRC_CONVOCC_USE_RACIAL_APPEARANCES - */ -const string PRC_CONVOCC_RAKSHASA_FEMALE_APPEARANCE = "PRC_CONVOCC_RAKSHASA_FEMALE_APPEARANCE"; - -/** - *[DEFUNCT] - * A combination switch to turn on all the racial enforcement settings. - * @see PRC_CONVOCC_RAKSHASA_FEMALE_APPEARANCE - * @see PRC_CONVOCC_GENASI_ENFORCE_DOMAINS - * @see PRC_CONVOCC_DROW_ENFORCE_GENDER - * @see PRC_CONVOCC_TIEFLING_TAIL - * @see PRC_CONVOCC_FEYRI_TAIL - * @see PRC_CONVOCC_FEYRI_WINGS - * @see PRC_CONVOCC_AVARIEL_WINGS - */ -const string PRC_CONVOCC_ENFORCE_PNP_RACIAL = "PRC_CONVOCC_ENFORCE_PNP_RACIAL"; - -/** - * [DEFUNCT] - * Note: feat enforcement switches don't do anything (TODO?) - */ - -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_BLOOD_OF_THE_WARLORD= "PRC_CONVOCC_ENFORCE_BLOOD_OF_THE_WARLORD"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_NIMBUSLIGHT = "PRC_CONVOCC_ENFORCE_FEAT_NIMBUSLIGHT"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_HOLYRADIANCE = "PRC_CONVOCC_ENFORCE_FEAT_HOLYRADIANCE"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_SERVHEAVEN = "PRC_CONVOCC_ENFORCE_FEAT_SERVHEAVEN"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_SAC_VOW = "PRC_CONVOCC_ENFORCE_FEAT_SAC_VOW"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_VOW_OBED = "PRC_CONVOCC_ENFORCE_FEAT_VOW_OBED"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_THRALL_TO_DEMON= "PRC_CONVOCC_ENFORCE_FEAT_THRALL_TO_DEMON"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_DISCIPLE_OF_DARKNESS="PRC_CONVOCC_ENFORCE_FEAT_DISCIPLE_OF_DARKNESS"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_LICHLOVED = "PRC_CONVOCC_ENFORCE_FEAT_LICHLOVED"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_EVIL_BRANDS = "PRC_CONVOCC_ENFORCE_FEAT_EVIL_BRANDS"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_VILE_WILL_DEFORM="PRC_CONVOCC_ENFORCE_FEAT_VILE_WILL_DEFORM"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_VILE_DEFORM_OBESE="PRC_CONVOCC_ENFORCE_FEAT_VILE_DEFORM_OBESE"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_VILE_DEFORM_GAUNT="PRC_CONVOCC_ENFORCE_FEAT_VILE_DEFORM_GAUNT"; -/** Separate enforcement of feats with special restrictions. */ -const string PRC_CONVOCC_ENFORCE_FEAT_LOLTHS_MEAT = "PRC_CONVOCC_ENFORCE_FEAT_LOLTHS_MEAT"; - - -/** - *[DEFUNCT] - * A combination switch to turn on all the feat enforcement settings. Doesn't do anything - */ -const string PRC_CONVOCC_ENFORCE_FEATS = "PRC_CONVOCC_ENFORCE_FEATS"; - -/** - * [DEFUNCT] - * Stops players from changing their wings. Turning this on gives players only the "none" choice - * at the wing stage of the convoCC. Use in conjuction with the wing switches. - * @see PRC_CONVOCC_AVARIEL_WINGS - * @see PRC_CONVOCC_FEYRI_WINGS - * @see PRC_CONVOCC_AASIMAR_WINGS - */ -const string PRC_CONVOCC_DISALLOW_CUSTOMISE_WINGS = "PRC_CONVOCC_DISALLOW_CUSTOMISE_WINGS"; - -/** - * [DEFUNCT] - * Stops players from changing their tail. Turning this on gives players only the "none" choice - * at the tail stage of the convoCC. Use in conjuction with the tail switches. - * @see PRC_CONVOCC_FEYRI_TAIL - * @see PRC_CONVOCC_TIEFLING_TAIL - */ -const string PRC_CONVOCC_DISALLOW_CUSTOMISE_TAIL = "PRC_CONVOCC_DISALLOW_CUSTOMISE_TAIL"; - -/** - * [DEFUNCT] - * Stops players from changing their model at all. Doesn't do anything - */ -const string PRC_CONVOCC_DISALLOW_CUSTOMISE_MODEL = "PRC_CONVOCC_DISALLOW_CUSTOMISE_MODEL"; - -/** - * [DEFUNCT] - * Players are only given a choice of appearances that match their race. For most races, this is the - * default appearance defined in racialtypes.2da. - * @see PRC_CONVOCC_RAKSHASA_FEMALE_APPEARANCE - */ -const string PRC_CONVOCC_USE_RACIAL_APPEARANCES = "PRC_CONVOCC_USE_RACIAL_APPEARANCES"; -/** - * [DEFUNCT] - * Player can only choose a portrait that matches their race as in portraits.2da. Because - * Bioware's elf, dwarf etc. subrace portraits are labelled as eg. 'elf' not 'drow' and because - * half elves have no portraits, this is actually done on appearance and not on race for PCs using - * Bioware's PC appearance models. - */ -const string PRC_CONVOCC_USE_RACIAL_PORTRAIT = "PRC_CONVOCC_USE_RACIAL_PORTRAIT"; - -/** - * [DEFUNCT] - * Players can only select from the player voicesets. NPC voicesets are not - * complete, so wont play sounds for many things such as emotes. - */ -const string PRC_CONVOCC_ONLY_PLAYER_VOICESETS = "PRC_CONVOCC_ONLY_PLAYER_VOICESETS"; - -/** - * [DEFUNCT] - * Only allows players to select voiceset of the same gender as their character. - */ -const string PRC_CONVOCC_RESTRICT_VOICESETS_BY_SEX = "PRC_CONVOCC_RESTRICT_VOICESETS_BY_SEX"; - -/** - * [DEFUNCT] - * Allow players to keep their exisiting voiceset. - * The ConvoCC cannot allow players to select custom voiceset, so the only way - * for players to have them is to select them in the Bioware character creator - * and then select to keep them in the ConvoCC. - */ -const string PRC_CONVOCC_ALLOW_TO_KEEP_VOICESET = "PRC_CONVOCC_ALLOW_TO_KEEP_VOICESET"; - -/** - * [DEFUNCT] - * Allow players to keep their exisiting portrait. - * The ConvoCC cannot allow players to select custom portraits, so the only way - * for players to have them is to select them in the Bioware character creator - * and then select to keep them in the ConvoCC. - */ -const string PRC_CONVOCC_ALLOW_TO_KEEP_PORTRAIT = "PRC_CONVOCC_ALLOW_TO_KEEP_PORTRAIT"; - -/** - * [DEFUNCT] - * Only allow players to select portraits of the same gender as their character. - * Most of the NPC portraits do not have a gender so are also removed. - */ -const string PRC_CONVOCC_RESTRICT_PORTRAIT_BY_SEX = "PRC_CONVOCC_RESTRICT_PORTRAIT_BY_SEX"; - -/** - * [DEFUNCT] - * This option give players the ability to start with racial hit dice for some - * of the more powerful races. These are defined in ECL.2da. - * For these races, players do not pick a class in the ConvoCC but instead - * select 1 or more levels in a racial class (such as monsterous humanoid, or - * outsider). - * This is not a complete ECL system, it merely gives players the racial hit - * dice component of their race. It does not make any measure of the Level - * Adjustment component. For example, a pixie has no racial hit dice, but has a - * +4 level adjustment. Doesn't do anything - */ -const string PRC_CONVOCC_ENABLE_RACIAL_HITDICE = "PRC_CONVOCC_ENABLE_RACIAL_HITDICE"; - -/** - * [DEFUNCT] - * This option allows players to keep their skillpoints from one level to - * the next, if they want to. - */ -const string PRC_CONVOCC_ALLOW_SKILL_POINT_ROLLOVER = "PRC_CONVOCC_ALLOW_SKILL_POINT_ROLLOVER"; - -/** - * [DEFUNCT] - * This will identify new characters based on XP as in v1.3 - * This is less secure than using the encrypted key. - * @see PRC_CONVOCC_ENCRYPTION_KEY - */ -const string PRC_CONVOCC_USE_XP_FOR_NEW_CHAR = "PRC_CONVOCC_USE_XP_FOR_NEW_CHAR"; - -/** - * [DEFUNCT] - * This is the key used to encrypt characters' names if USE_XP_FOR_NEW_CHAR - * is false in order to identify returning characters. It should be in the - * range 1-100. - * If USE_XP_FOR_NEW_CHAR is true along with this, then returning characters - * will be encrypted too, so once everone has logged on at least once, - * USE_XP_FOR_NEW_CHAR can be set to false for greater security. - * - * WARNING: Changing this value after some PCs have gone through the convoCC will - * cause them to have to go through it again. The encryption uses the player's - * public CD key, so they won't be able to log into their account from different - * NWN installs as the key won't match using this system - */ -const string PRC_CONVOCC_ENCRYPTION_KEY = "PRC_CONVOCC_ENCRYPTION_KEY"; - -/** - * [DEFUNCT] - * As requested, an option to alter the amount of points available in the stat - * point-buy at character creation. - * Default: 30 - */ -const string PRC_CONVOCC_STAT_POINTS = "PRC_CONVOCC_STAT_POINTS"; - -/** - * [DEFUNCT] - * As requested, if set this will give a number of bonus feats equal to this - * value to each created character, similar to human Quick To Master feat. - */ -const string PRC_CONVOCC_BONUS_FEATS = "PRC_CONVOCC_BONUS_FEATS"; - -/** - * [DEFUNCT] - * As requested, this will cap the maximum a stat can start at, excluding racial - * modifies. - * Default: 18 - */ -const string PRC_CONVOCC_MAX_STAT = "PRC_CONVOCC_MAX_STAT"; - -/** - * [DEFUNCT] - * As requested, this will change the skill point multplier at level 1. - * Default: 4 - */ -const string PRC_CONVOCC_SKILL_MULTIPLIER = "PRC_CONVOCC_SKILL_MULTIPLIER"; - -/** - * [DEFUNCT] - * As requested, this will give a bonus to skill points after multiplication. - */ -const string PRC_CONVOCC_SKILL_BONUS = "PRC_CONVOCC_SKILL_BONUS"; - -/** - * [DEFUNCT] - * When set, the convoCC NO LONGER STARTS AUTOMATICALLY on logging in. It must be called - * by a script in the module. This allows the module builder to start the convoCC from a - * particular area or trigger's On Enter event. The script should call the convoCC with - * ExecuteScript("prc_ccc_main", oPC) where oPC is the PC. It's advisable to check the - * entering object is a PC and not a NPC or DM. - */ - -const string PRC_CONVOCC_CUSTOM_START_LOCATION = "PRC_CONVOCC_CUSTOM_START_LOCATION"; - -/** - * [DEFUNCT] - * When set, this switch causes a custom script to be used to determine whether a PC should go - * through the convoCC or not. - * The script must: - * - be called "ccc_custom_enter" - * - set the local int "CONVOCC_LAST_STATUS" on the PC (OBJECT_SELF) - * - include prc_ccc_const (for the constants the local int can be set to) - * otherwise the PC will always be booted - * - * possible values for CONVOCC_LAST_STATUS: - * CONVOCC_ENTER_BOOT_PC (causes the PC to get kicked) - * CONVOCC_ENTER_NEW_PC (causes the PC to go through the convoCC) - * CONVOCC_ENTER_RETURNING_PC (causes the PC to skip the convoCC) - * - * This switch will completely bypass the convoCC methods for determining whether to run the - * convoCC on an entering PC, so if necessary, your custom marker for 'done' would be set - * in 'ccc_custom_exit' - * @see PRC_CONVOCC_CUSTOM_EXIT_SCRIPT - */ -const string PRC_CONVOCC_CUSTOM_ENTER_SCRIPT = "PRC_CONVOCC_CUSTOM_ENTER_SCRIPT"; - -/** - * [DEFUNCT] - * When set, this switch causes a custom script to be executed at the last stage of the convoCC, - * just before booting the player. The script must be named 'ccc_custom_exit'. - * Possible uses include: giving PCs gold and/or equipment, giving PCs PW items - * (even plot items get removed at the start of the convoCC), setting a new persistant location, - * setting a custom marker for having done the convoCC in conjunction with - * 'ccc_custom_enter' - * @see PRC_CONVOCC_CUSTOM_ENTER_SCRIPT - */ - -const string PRC_CONVOCC_CUSTOM_EXIT_SCRIPT = "PRC_CONVOCC_CUSTOM_EXIT_SCRIPT"; - -/******************************************************************************\ -* Truenaming switches * -\******************************************************************************/ - -/** - * Sets the CR Multiplier for Evolving Mind utterances - * This is divided by 100 to get a float. - * Ex: To multiply by 1.5, set this value to 150 - * - * The formula used is (CR * Multiplier) + 15 - * - * defaults to PnP: (CR * 2) + 15 - */ -const string PRC_TRUENAME_CR_MULTIPLIER = "PRC_TRUENAME_CR_MULTIPLIER"; - -/** - * Gives a bonus based on Truenamer level - * PC Truenamer level is divided by this value - * Ex: To give a bonus equal to 1/2 Truenamer level, set this to 2 - * - * The formula used is (CR * Multiplier) + 15 - Bonus - * - * defaults to PnP: 0/No bonus - */ -const string PRC_TRUENAME_LEVEL_BONUS = "PRC_TRUENAME_LEVEL_BONUS"; - -/** - * Sets the Constant value added to the DC - * Ex: To make the constant 10, simply set this value to 10 - * - * The formula used is (CR * Multiplier) + Constant - * - * defaults to PnP: +15. - */ -const string PRC_TRUENAME_DC_CONSTANT = "PRC_TRUENAME_DC_CONSTANT"; - -/** - * Turns off the Law of Sequence when set to 1 - * - * defaults to PnP: On - */ -const string PRC_LAW_OF_SEQUENCE = "PRC_LAW_OF_SEQUENCE"; - -/** - * Turns off the Law of Resistance when set to 1 - * - * defaults to PnP: On - */ -const string PRC_LAW_OF_RESISTANCE = "PRC_LAW_OF_RESISTANCE"; - -/** - * Sets the Constant value added to the DC - * Ex: To make the constant 10, simply set this value to 10 - * - * The formula used is Constant + (2 * Utterance Level) - * - * defaults to PnP: +25. - */ -const string PRC_PERFECTED_MAP_CONSTANT = "PRC_PERFECTED_MAP_CONSTANT"; - -/** - * Sets the Multiplier value added to the DC - * Ex: To make the multiplier 4, simply set this value to 4 - * - * The formula used is 25 + (Multiplier * Utterance Level) - * - * defaults to PnP: 2. - */ -const string PRC_PERFECTED_MAP_MULTIPLIER = "PRC_PERFECTED_MAP_MULTIPLIER"; - -/******************************************************************************\ -* Binding switches * -\******************************************************************************/ - -/** - * Sets how many seconds it takes to contact a vestige. - * Any number less than 6 is ignored - */ -const string PRC_CONTACT_VESTIGE_TIMER = "PRC_CONTACT_VESTIGE_TIMER"; - -/** - * Sets how many seconds it takes to bind a vestige. - * Any number less than 12 is ignored - */ -const string PRC_BIND_VESTIGE_TIMER = "PRC_BIND_VESTIGE_TIMER"; - -/******************************************************************************\ -* Encounter switches * -\******************************************************************************/ - -/** Encounter areas - * Setting this will disable access to the encounter areas from the PRC Options convo - */ -const string PRC_DISABLE_ENCOUNTERS = "PRC_DISABLE_ENCOUNTERS"; - -/** - * This script prevents hacking to another user account without Master Server Authentication - * - * Stores public cd keys for each account in database. In case the key was registered with - * another account player is booted from the server. - * - * All credits go to FunkySwerve - */ -const string PRC_PW_SECURITY_CD_CHECK = "PRC_PW_SECURITY_CD_CHECK"; - - -/******************************************************************************\ -* Debugging Switches * -\******************************************************************************/ - -/** - * Toggles everything guarded by "if(DEBUG)". Mostly calls to DoDebug(). - */ -const string PRC_DEBUG = "PRC_DEBUG"; - - - - -/////////////////////// -// Function protypes // -/////////////////////// -/* NOTE: if you are looking for a function that used to be in here, it's probably in inc_switch_setup */ - -/** - * Checks the state of a PRC switch. - * NOTE: This will only work with switches that use integer values. You - * must get the value of non-integer-valued switches manually. - * - * @param sSwitch One of the PRC_* constant strings defined in prc_inc_switch - * @return The value of the switch queried - */ -int GetPRCSwitch(string sSwitch); - -/** - * Sets a PRC switch state. - * NOTE: As this will only set switches with integer values, you will need - * to manually set the (few) switches that should have a value other than - * integer. - * - * @param sSwitch One of the PRC_* constant strings defined in prc_inc_switch - * @param nState The integer value to set the switch to - */ -void SetPRCSwitch(string sSwitch, int nState); - -//const string PRC_FILE_END_TOKEN = "prc_fe_tkn"; - -////////////////////////// -// Function definitions // -////////////////////////// - -int GetPRCSwitch(string sSwitch) -{ - return GetLocalInt(GetModule(), sSwitch); -} - -void SetPRCSwitch(string sSwitch, int nState) -{ - SetLocalInt(GetModule(), sSwitch, nState); -}