Initial Upload
Initial Upload
This commit is contained in:
600
_removed files/x2_inc_switches.nss
Normal file
600
_removed files/x2_inc_switches.nss
Normal file
@@ -0,0 +1,600 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// x2_inc_switches:: Interface for switching subsystem functionality
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
This file provides a basic interface for switching different Hordes of
|
||||
the Underdark subsystems on/off and allows centralized access to certain
|
||||
"expert" functionality like overriding AI or Spellscripts.
|
||||
|
||||
Changing any of these switches from their default position is considered
|
||||
unsupported and done at your own risk - please do NOT send any bug reports
|
||||
about problems caused by these switches.
|
||||
*/
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (c) 2003 Bioware Corp. * Created By: Georg Zoeller * On: 2003-07-16
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// M O D U L E
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Force Use Magic Device Skillchecks, Default = FALSE except for GAME_DIFFICULTY_CORE_RULES+
|
||||
// * If switched to TRUE, a rogue has to succeed in a UMD check against DC 25+SpellLevel
|
||||
// * in order to use a scroll. See x2_pc_umdcheck.nss for details
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_ENABLE_UMD_SCROLLS = "X2_SWITCH_ENABLE_UMD_SCROLLS";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Toggle on/off the Item Creation Feats, Default = O
|
||||
// * Disable the Item Creation Feats that come with Hordes of the Underdark for the
|
||||
// * module.
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_DISABLE_ITEM_CREATION_FEATS = "X2_SWITCH_DISABLE_ITEMCREATION_FEATS";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Toggle Area of Effect Spell behaviour
|
||||
// * If set to TRUE, AOE Spells will hurt NPCS that are neutral to the caster if they are
|
||||
// * caught in the effect
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_AOE_HURT_NEUTRAL_NPCS = "X0_G_ALLOWSPELLSTOHURT";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * For balancing reasons the crafting system will create 50 charges on a new wand
|
||||
// * instead it will create 10 + casterlevel charges. if you want to be "hard core rules compliant"
|
||||
// * 50 charges, enable thiis switch
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_ENABLE_CRAFT_WAND_50_CHARGES = "X2_SWITCH_ENABLE_50_WAND_CHARGES";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Some epic spells, namely Hellball, do damage to the caster. We found this too confusing
|
||||
// * in testing, so it was disabled. You can reactivate using this flag
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_EPIC_SPELLS_HURT_CASTER = "X2_SWITCH_EPIC_SPELLS_HURT_CASTER";
|
||||
|
||||
//------------------------------------------------------------------------------// * Deathless master touch is not supposed to affect creatures of size > large
|
||||
// * but we do not check this condition by default to balance the fact that the slain
|
||||
// * creature is not raised under the command of the pale master.
|
||||
// * by setting this switch to TRUE, the ability will no longer effect creatures of
|
||||
// * huge+ size.
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_SPELL_CORERULES_DMASTERTOUCH = "X2_SWITCH_SPELL_CORERULE_DMTOUCH";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * By default, all characters can use the various poisons that can be found to poison their weapons if
|
||||
// * they win a Dex check. Activating this flag will restrict the use of poison to chars with the UsePoison
|
||||
// * feat only
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_RESTRICT_USE_POISON_TO_FEAT = "X2_SWITCH_RESTRICT_USE_POISON_FEAT";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Multiple Henchmen: By default, henchmen will never damage each other with AoE spells.
|
||||
// * By activating this switch, henchmen will be able to damage each other with AoE spells
|
||||
// * and potentially go on each other's throats.
|
||||
// * Warning: Activating this switch has the potential of introducing game breaking bugs. Do
|
||||
// * not use on the official SoU campaign. Use at your own risk. Really, its dangerous!
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_ENABLE_MULTI_HENCH_AOE_DAMAGE = "X2_SWITCH_MULTI_HENCH_AOE_MADNESS";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Spell Targeting: Pre Hordes of the underdark, in hardcore mode, creatures would not hurt each other
|
||||
// * with their AOE spells if they were no PCs. Setting this switch to true, will activate the correct
|
||||
// * behaviour. Activating this on older modules can break things, unless you know what you are doing!
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_ENABLE_NPC_AOE_HURT_ALLIES = "X2_SWITCH_ENABLE_NPC_AOE_HURT_ALLIES";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * If set to TRUE, the Bebilith Ruin Armor ability is going to actually destroy
|
||||
// * the armor it hits. Would be very annoying for players...
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_ENABLE_BEBILITH_RUIN_ARMOR = "X2_SWITCH_BEBILITH_HARDCORE_RUIN_ARMOR";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Setting this switch to TRUE will make the Glyph of warding symbol disappear after 6 seconds, but
|
||||
// * the glyph will stay active....
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_ENABLE_INVISIBLE_GLYPH_OF_WARDING = "X2_SWITCH_GLYPH_OF_WARDING_INVISIBLE";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Setting this switch to TRUE will enable the allow NPCs running between waypoints using the WalkWaypoints
|
||||
// * function to cross areas, like they did in the original NWN. This was changed in 1.30 to use only
|
||||
// * waypoints in one area.
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_ENABLE_CROSSAREA_WALKWAYPOINTS = "X2_SWITCH_CROSSAREA_WALKWAYPOINTS";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Setting this switch to TRUE will disable the glow of a newly found secret door
|
||||
// * used in some locations in XP2
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_DISABLE_SECRET_DOOR_FLASH = "X2_SWITCH_DISABLE_SECRET_DOOR_FLASH";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Setting this switch to TRUE will disable execution of tagbased scripts that are enabled
|
||||
// * by default when using the standard module events (x2_mod_def_*)
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS = "X2_SWITCH_ENABLE_TAGBASED_SCRIPTS";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Setting thsi switch to TRUE will enable the XP2 Wandering Monster System
|
||||
// * for this module (if you are using the default rest script and you have set
|
||||
// * up the correct variables for each area
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_USE_XP2_RESTSYSTEM = "X2_SWITCH_ENABLE_XP2_RESTSYSTEM";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * if this variable is set, the AI will not use Dispel Magic against harmfull AOE
|
||||
// * spells.
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_DISABLE_AI_DISPEL_AOE = "X2_L_AI_NO_AOE_DISPEL";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Setting this variable to TRUE on the module will disable the call to the
|
||||
// * random loot generation in most creatures' OnSpawn script.
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_SWITCH_NO_RANDOM_MONSTER_LOOT = "X2_L_NOTREASURE";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// M I S C
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_VAR_OVERRIDE_SPELLSCRIPT ="X2_S_UD_SPELLSCRIPT";
|
||||
|
||||
const string MODULE_VAR_TAGBASED_SCRIPT_PREFIX ="X2_S_UD_SPELLSCRIPT";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Variable that holds the wandering monster 2da filename
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_VAR_WANDERING_MONSTER_2DA ="X2_WM_2DA_NAME";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * This variable allows to specify a % for NOT using dispel magic against AOEs
|
||||
// instead fleeing
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_VAR_AI_NO_DISPEL_AOE_CHANCE = "X2_L_AI_AOE_DISPEL_CHANCE";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Setting this variable to TRUE will cause the Expertise/Improved Expertise
|
||||
// * modes to be disabled whenever a player is casting a spell.
|
||||
//------------------------------------------------------------------------------
|
||||
const string MODULE_VAR_AI_STOP_EXPERTISE_ABUSE = "X2_L_STOP_EXPERTISE_ABUSE";
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// C R E A T U R E S
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * see x2_ai_demo for details
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_CUSTOM_AISCRIPT = "X2_SPECIAL_COMBAT_AI_SCRIPT";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Setting this variable on a spellcaster creature will make its spelluse a
|
||||
// * bit more random, but their spell selection may not always be appropriate
|
||||
// * to the situation anymore.
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_RANDOMIZE_SPELLUSE = "X2_SPELL_RANDOM";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Set to 1 to make the creature activate stealth mode after spawn
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_USE_SPAWN_STEALTH = "X2_L_SPAWN_USE_STEALTH";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Set to 1 to make the creature activate detectmode after spawn
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_USE_SPAWN_SEARCH = "X2_L_SPAWN_USE_SEARCH";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Set to 1 to make the creature play mobile ambient animations after spawn
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_USE_SPAWN_AMBIENT = "X2_L_SPAWN_USE_AMBIENT";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Set to 1 to make the creature play immobile ambient animations after spawn
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_USE_SPAWN_AMBIENT_IMMOBILE = "X2_L_SPAWN_USE_AMBIENT_IMMOBILE";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Set to 1 to make the creature immune to dispel magic (used for statues)
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_IMMUNE_TO_DISPEL = "X1_L_IMMUNE_TO_DISPEL";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Set this variable to 1 on a creature to make it walk through other creatures
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_IS_INCORPOREAL = "X2_L_IS_INCORPOREAL";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Set this variable to 1 - 6 to override the number of attacks a creature has based on its BAB
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_NUMBER_OF_ATTACKS = "X2_L_NUMBER_OF_ATTACKS";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * The value of this variable (int) is added to the chance that a creature
|
||||
// * will use magic in combat. Set to 100 for always, 0 for never
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_AI_MODIFIED_MAGIC_RATE = "X2_L_BEH_MAGIC";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * The higher value of this variable, the higher the chance that the creature
|
||||
// * will use offensive abilities in combat. Set to 0 to make them flee.
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_AI_MODIFIED_OFFENSE_RATE = "X2_L_BEH_OFFENSE";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * The higher value of this variable, the higher the chance that the creature
|
||||
// * will aid friendly creatures in combat. Not that helping usually degrades
|
||||
// * the overall difficulty of an encounter, but makes it more interesting.
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_AI_MODIFIED_COMPASSION_RATE = "X2_L_BEH_COMPASSION";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * This allows you to script items that enhance a palemaster's summoned creatures. You need
|
||||
// * to put the name of a script into this variable that will be run on any creature called by
|
||||
// * the pale master's summon undead ability. You can use this script to add effects to the creature.
|
||||
// * You can use the OnEquip/OnUnEquip event hooks set this variable.
|
||||
//------------------------------------------------------------------------------
|
||||
const string CREATURE_VAR_PALE_MASTER_SPECIAL_ITEM = "X2_S_PM_SPECIAL_ITEM";
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// These constants define item messages that are routed to script files with
|
||||
// the item tag's through the default XP2 module scripts.
|
||||
//------------------------------------------------------------------------------
|
||||
const int X2_ITEM_EVENT_ACTIVATE = 0;
|
||||
const int X2_ITEM_EVENT_EQUIP = 1;
|
||||
const int X2_ITEM_EVENT_UNEQUIP = 2;
|
||||
const int X2_ITEM_EVENT_ONHITCAST = 3;
|
||||
const int X2_ITEM_EVENT_ACQUIRE = 4;
|
||||
const int X2_ITEM_EVENT_UNACQUIRE = 5;
|
||||
const int X2_ITEM_EVENT_SPELLCAST_AT = 6;
|
||||
|
||||
const int X2_EXECUTE_SCRIPT_CONTINUE =0;
|
||||
const int X2_EXECUTE_SCRIPT_END =1;
|
||||
|
||||
// Set the active User Defined Item Event
|
||||
// X2_ITEM_EVENT_ACTIVATE
|
||||
// X2_ITEM_EVENT_EQUIP
|
||||
// X2_ITEM_EVENT_UNEQUIP
|
||||
// X2_ITEM_EVENT_ONHITCAST
|
||||
// X2_ITEM_EVENT_ACQUIRE
|
||||
// X2_ITEM_EVENT_UNACQUIRE
|
||||
// X2_ITEM_EVENT_SPELLCAST_AT
|
||||
int SetUserDefinedItemEventNumber(int nEvent);
|
||||
|
||||
// Get the active User Defined Item Event
|
||||
// X2_ITEM_EVENT_ACTIVATE
|
||||
// X2_ITEM_EVENT_EQUIP
|
||||
// X2_ITEM_EVENT_UNEQUIP
|
||||
// X2_ITEM_EVENT_ONHITCAST
|
||||
// X2_ITEM_EVENT_ACQUIRE
|
||||
// X2_ITEM_EVENT_UNACQUIRE
|
||||
// X2_ITEM_EVENT_SPELLCAST_AT
|
||||
int GetUserDefinedItemEventNumber();
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Used to switch between different rule implementations or to subsystems for the game
|
||||
// * see x2_inc_switches for more detailed information on these constants
|
||||
//------------------------------------------------------------------------------
|
||||
void SetModuleSwitch(string sModuleSwitchConstant,int bValue);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Returns the value of a module switch
|
||||
//------------------------------------------------------------------------------
|
||||
int GetModuleSwitchValue(string sModuleSwitchConstant);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// D O O R S
|
||||
//------------------------------------------------------------------------------
|
||||
const string DOOR_FLAG_RESIST_KNOCK = "X2_FLAG_DOOR_RESIST_KNOCK";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Used to toggle custom flags on a door
|
||||
// * oDoor - Door to set the switch on
|
||||
// * Valid values for sDoorFlagConstant:
|
||||
// * X2_FLAG_DOOR_RESIST_KNOCK -
|
||||
// * Set to 1 to prevent knock from working with feedback.
|
||||
// * Set to 2 to prevent knock from working without feedback
|
||||
//------------------------------------------------------------------------------
|
||||
void SetDoorFlag(object oDoor, string sDoorFlagConstant, int nValue);
|
||||
int GetDoorFlag(object oDoor, string sDoorFlagConstant);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// W A Y P O I N T S
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * By setting this variable to 1 on a waypoint, a creature using this
|
||||
// * waypoint as part of its WalkWaypoints routine will assume the facing
|
||||
// * of the waypoint upon reaching it.
|
||||
//------------------------------------------------------------------------------
|
||||
const string WAYPOINT_VAR_FORCE_SETFACING = "X2_L_WAYPOINT_SETFACING";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// I T E M S
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// NOTE: THIS NO LONGER WORKS. TO PREVENT MODIFICATION USE THE PLOT FLAG
|
||||
//------------------------------------------------------------------------------
|
||||
const string ITEM_FLAG_NO_CRAFT_MODIFICATION = "X2_FLAG_ITEM_CRAFT_DO_NOT_MODIFY";
|
||||
void SetItemFlag(object oItem, string sItemFlagConstant, int nValue);
|
||||
int GetItemFlag(object oItem, string sItemFlagConstant);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Execute sScript on oTarget returning an integer.
|
||||
// * Do not nest this function
|
||||
//------------------------------------------------------------------------------
|
||||
int ExecuteScriptAndReturnInt(string sScript, object oTarget);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Sets the return value for scripts called via ExecuteScriptAndReturnInt
|
||||
// * valid values are
|
||||
// * X2_EXECUTE_SCRIPT_CONTINUE - continue calling script after executed scriptis done
|
||||
// * X2_EXECUTE_SCRIPT_END - end calling script after executed script is done
|
||||
//------------------------------------------------------------------------------
|
||||
void SetExecutedScriptReturnValue(int nValue = X2_EXECUTE_SCRIPT_END);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * This is a security feature. If you are running a *local vault* server and you
|
||||
// * have tag based script execution enabled, people could bring items into your
|
||||
// * game that execute existing scripts. You can set a script prefix here to
|
||||
// * prevent that. Note that you have to add this prefix to your item scripts in
|
||||
// * the module to make them work.
|
||||
//------------------------------------------------------------------------------
|
||||
void SetUserDefinedItemEventPrefix(string sPrefix="");
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// S P E L L S C R I P T S
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Allows the module creator to specify a script that will be run before any spellscript is run
|
||||
// You can call SetModuleOverrideSpellscript() at the end of the script specified by
|
||||
// sScriptName. If you call this function this will prevent the original spellscript
|
||||
// (and all craft item code) from being executed.
|
||||
// If you do not add this line, the original spellscript and/or crafting code will
|
||||
// run in addition to your script
|
||||
//------------------------------------------------------------------------------
|
||||
void SetModuleOverrideSpellscript(string sScriptName);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// C R E A T U R E S
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void SetCreatureFlag(object oCreature, string sFlag, int nValue);
|
||||
int GetCreatureFlag(object oCreature, string sFlag);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Define a replacement script for DetermineCombatRound
|
||||
// * See x2_ai_demo for details
|
||||
//------------------------------------------------------------------------------
|
||||
void SetCreatureOverrideAIScript(object oCreature, string sScriptName);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Call this at end of your custom override AI script set via CREATURE_VAR_CUSTOM_AISCRIPT
|
||||
// * See x2_ai_demo for details.
|
||||
//------------------------------------------------------------------------------
|
||||
void SetCreatureOverrideAIScriptFinished(object oCreature = OBJECT_SELF);
|
||||
void ClearCreatureOverrideAIScriptTarget(object oCreature = OBJECT_SELF);
|
||||
object GetCreatureOverrideAIScriptTarget(object oCreature = OBJECT_SELF);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// * Define the name of the 2da file which is used for the wandering monster
|
||||
// * system
|
||||
//------------------------------------------------------------------------------
|
||||
void SetWanderingMonster2DAFile(string s2DAName = "des_restsystem");
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Interface to switch on / off specific subsystems or behaviors
|
||||
// Check X2_INC_SWITCHES.NSS for details
|
||||
//----------------------------------------------------------------------------
|
||||
void SetModuleSwitch(string sModuleSwitchConstant,int bValue)
|
||||
{
|
||||
if (bValue == 0)
|
||||
{
|
||||
DeleteLocalInt (GetModule(),sModuleSwitchConstant);
|
||||
return;
|
||||
} else if ((sModuleSwitchConstant) == MODULE_SWITCH_AOE_HURT_NEUTRAL_NPCS && bValue == TRUE)
|
||||
{
|
||||
bValue = 10;
|
||||
}
|
||||
SetLocalInt (GetModule(),sModuleSwitchConstant, bValue);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Return the value of a module switch set by SetModuleSwitch
|
||||
// See X2_INC_SWITCHES for a list of all module switches
|
||||
//----------------------------------------------------------------------------
|
||||
int GetModuleSwitchValue(string sModuleSwitchConstant)
|
||||
{
|
||||
int nRet = GetLocalInt (GetModule(),sModuleSwitchConstant);
|
||||
return nRet;
|
||||
}
|
||||
|
||||
void SetDoorFlag(object oDoor, string sDoorFlagConstant, int nValue)
|
||||
{
|
||||
if (nValue == 0)
|
||||
{
|
||||
DeleteLocalInt (oDoor,sDoorFlagConstant);
|
||||
return;
|
||||
}
|
||||
SetLocalInt (oDoor,sDoorFlagConstant, nValue);
|
||||
}
|
||||
|
||||
int GetDoorFlag(object oDoor, string sDoorFlagConstant)
|
||||
{
|
||||
int nRet = GetLocalInt (oDoor,sDoorFlagConstant);
|
||||
return nRet;
|
||||
}
|
||||
|
||||
void SetItemFlag(object oItem, string sItemFlagConstant, int nValue)
|
||||
{
|
||||
if (nValue == 0)
|
||||
{
|
||||
DeleteLocalInt (oItem,sItemFlagConstant);
|
||||
return;
|
||||
}
|
||||
SetLocalInt (oItem,sItemFlagConstant, nValue);
|
||||
}
|
||||
|
||||
int GetItemFlag(object oItem, string sItemFlagConstant)
|
||||
{
|
||||
int nRet = GetLocalInt (oItem,sItemFlagConstant);
|
||||
return nRet;
|
||||
}
|
||||
|
||||
void SetModuleOverrideSpellscript(string sScriptName)
|
||||
{
|
||||
SetLocalString(GetModule(),MODULE_VAR_OVERRIDE_SPELLSCRIPT,sScriptName);
|
||||
}
|
||||
|
||||
string GetModuleOverrideSpellscript()
|
||||
{
|
||||
string sScript = GetLocalString(GetModule(),"X2_S_UD_SPELLSCRIPT");
|
||||
return sScript;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// You can call this in our overridden spellscript. If you call this
|
||||
// this will prevent the original spellscript (and all craft item code)
|
||||
// from being executed. If you do not add this line, the original spellscript
|
||||
// and/or crafting code will run in addition to your script
|
||||
//------------------------------------------------------------------------------
|
||||
void SetModuleOverrideSpellScriptFinished()
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF,"X2_L_BLOCK_LAST_SPELL",TRUE);
|
||||
}
|
||||
|
||||
int GetModuleOverrideSpellScriptFinished()
|
||||
{
|
||||
int nRet = GetLocalInt(OBJECT_SELF,"X2_L_BLOCK_LAST_SPELL");
|
||||
DeleteLocalInt(OBJECT_SELF,"X2_L_BLOCK_LAST_SPELL");
|
||||
return nRet;
|
||||
}
|
||||
|
||||
void SetCreatureOverrideAIScript(object oCreature, string sScriptName)
|
||||
{
|
||||
SetLocalString(oCreature,CREATURE_VAR_CUSTOM_AISCRIPT,sScriptName);
|
||||
}
|
||||
|
||||
void SetCreatureOverrideAIScriptFinished(object oCreature = OBJECT_SELF)
|
||||
{
|
||||
// WriteTimestampedLogEntry("Custom AI Finished");
|
||||
SetLocalInt(oCreature,"X2_SPECIAL_COMBAT_AI_SCRIPT_OK",TRUE);
|
||||
}
|
||||
|
||||
object GetCreatureOverrideAIScriptTarget(object oCreature = OBJECT_SELF)
|
||||
{
|
||||
object oRet= GetLocalObject(oCreature,"X2_NW_I0_GENERIC_INTRUDER");
|
||||
return oRet;
|
||||
}
|
||||
|
||||
void ClearCreatureOverrideAIScriptTarget(object oCreature = OBJECT_SELF)
|
||||
{
|
||||
DeleteLocalObject(oCreature,"X2_NW_I0_GENERIC_INTRUDER");
|
||||
}
|
||||
|
||||
void SetCreatureFlag(object oCreature, string sFlag, int nValue)
|
||||
{
|
||||
if (sFlag == CREATURE_VAR_IMMUNE_TO_DISPEL)
|
||||
{
|
||||
if (nValue != 0)
|
||||
{
|
||||
nValue = 10;
|
||||
}
|
||||
}
|
||||
|
||||
SetLocalInt(oCreature,sFlag ,nValue);
|
||||
}
|
||||
|
||||
int GetCreatureFlag(object oCreature, string sFlag)
|
||||
{
|
||||
int nRet = GetLocalInt(oCreature,sFlag);
|
||||
return nRet;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Get the current UserDefined Item Event Number
|
||||
// X2_ITEM_EVENT_ACTIVATE
|
||||
// X2_ITEM_EVENT_EQUIP
|
||||
// X2_ITEM_EVENT_UNEQUIP
|
||||
// X2_ITEM_EVENT_ONHITCAST
|
||||
// X2_ITEM_EVENT_ACQUIRE
|
||||
// X2_ITEM_EVENT_UNACQUIRE
|
||||
// X2_ITEM_EVENT_SPELLCAST_AT
|
||||
//----------------------------------------------------------------------------
|
||||
int GetUserDefinedItemEventNumber()
|
||||
{
|
||||
return GetLocalInt(OBJECT_SELF,"X2_L_LAST_ITEM_EVENT");
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Set the current UserDefined Item Event Number
|
||||
// X2_ITEM_EVENT_ACTIVATE
|
||||
// X2_ITEM_EVENT_EQUIP
|
||||
// X2_ITEM_EVENT_UNEQUIP
|
||||
// X2_ITEM_EVENT_ONHITCAST
|
||||
// X2_ITEM_EVENT_ACQUIRE
|
||||
// X2_ITEM_EVENT_UNACQUIRE
|
||||
// X2_ITEM_EVENT_SPELLCAST_AT
|
||||
//----------------------------------------------------------------------------
|
||||
void SetUserDefinedItemEventNumber(int nEvent)
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF,"X2_L_LAST_ITEM_EVENT",nEvent);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Returns the name for the User Defined Item Event script for oItem,
|
||||
// including possible prefixes configured by SetUserDefinedItemEventPrefix
|
||||
//----------------------------------------------------------------------------
|
||||
string GetUserDefinedItemEventScriptName(object oItem)
|
||||
{
|
||||
string sPrefix = GetLocalString(GetModule(),"MODULE_VAR_TAGBASED_SCRIPT_PREFIX");
|
||||
string sTag = sPrefix + GetTag(oItem);
|
||||
return sTag;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// You can define a prefix for any User Defined Item Event here, to prevent
|
||||
// people from executing scripts you do not like them to execute on your
|
||||
// local vault server
|
||||
//----------------------------------------------------------------------------
|
||||
void SetUserDefinedItemEventPrefix(string sPrefix="")
|
||||
{
|
||||
SetLocalString(GetModule(),"MODULE_VAR_TAGBASED_SCRIPT_PREFIX",sPrefix);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Wrapper for Execute Script to execute a script and get an integer
|
||||
// return value. Do not nest this function!
|
||||
//----------------------------------------------------------------------------
|
||||
int ExecuteScriptAndReturnInt(string sScript, object oTarget)
|
||||
{
|
||||
DeleteLocalInt(oTarget,"X2_L_LAST_RETVAR");
|
||||
ExecuteScript(sScript,oTarget);
|
||||
int nRet = GetLocalInt(oTarget,"X2_L_LAST_RETVAR");
|
||||
DeleteLocalInt(oTarget,"X2_L_LAST_RETVAR");
|
||||
return nRet;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Helper function for ExecuteScriptAndReturnInt
|
||||
//----------------------------------------------------------------------------
|
||||
void SetExecutedScriptReturnValue(int nValue = X2_EXECUTE_SCRIPT_CONTINUE)
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF,"X2_L_LAST_RETVAR",nValue);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Define the name of the 2da file which is used for the wandering monster
|
||||
// system
|
||||
//----------------------------------------------------------------------------
|
||||
void SetWanderingMonster2DAFile(string s2DAName = "des_restsystem")
|
||||
{
|
||||
SetLocalString(OBJECT_SELF,MODULE_VAR_WANDERING_MONSTER_2DA,s2DAName);
|
||||
}
|
Reference in New Issue
Block a user