139 lines
6.4 KiB
Plaintext
139 lines
6.4 KiB
Plaintext
|
// Modified by AW Olorin on 6-11-2004
|
||
|
// Added Module Version string Constant
|
||
|
// Added Announcement period Constant (How many HB's between announcemnts)
|
||
|
#include "x2_inc_switches"
|
||
|
#include "x2_inc_restsys"
|
||
|
#include "afx_sfunc"
|
||
|
|
||
|
const string POA_VERSION = "This server is running PoA version 1.68";
|
||
|
const int ANNOUNCE_PERIOD = 600;
|
||
|
void main()
|
||
|
{
|
||
|
|
||
|
if (GetGameDifficulty() == GAME_DIFFICULTY_CORE_RULES || GetGameDifficulty() == GAME_DIFFICULTY_DIFFICULT)
|
||
|
{
|
||
|
// * Setting the switch below will enable a seperate Use Magic Device Skillcheck for
|
||
|
// * rogues when playing on Hardcore+ difficulty. This only applies to scrolls
|
||
|
SetModuleSwitch (MODULE_SWITCH_ENABLE_UMD_SCROLLS, TRUE);
|
||
|
|
||
|
// * Activating the switch below will make AOE spells hurt neutral NPCS by default
|
||
|
// SetModuleSwitch (MODULE_SWITCH_AOE_HURT_NEUTRAL_NPCS, TRUE);
|
||
|
}
|
||
|
|
||
|
// * AI: Activating the switch below will make the creaures using the WalkWaypoint function
|
||
|
// * able to walk across areas
|
||
|
// SetModuleSwitch (MODULE_SWITCH_ENABLE_CROSSAREA_WALKWAYPOINTS, TRUE);
|
||
|
|
||
|
// * Spells: Activating the switch below will make the Glyph of Warding spell behave differently:
|
||
|
// * The visual glyph will disappear after 6 seconds, making them impossible to spot
|
||
|
// SetModuleSwitch (MODULE_SWITCH_ENABLE_INVISIBLE_GLYPH_OF_WARDING, TRUE);
|
||
|
|
||
|
// * Craft Feats: Want 50 charges on a newly created wand? We found this unbalancing,
|
||
|
// * but since it is described this way in the book, here is the switch to get it back...
|
||
|
// SetModuleSwitch (MODULE_SWITCH_ENABLE_CRAFT_WAND_50_CHARGES, TRUE);
|
||
|
|
||
|
// * Craft Feats: Use this to disable Item Creation Feats if you do not want
|
||
|
// * them in your module
|
||
|
// SetModuleSwitch (MODULE_SWITCH_DISABLE_ITEM_CREATION_FEATS, TRUE);
|
||
|
|
||
|
// * Palemaster: Deathless master touch in PnP only affects creatures up to a certain size.
|
||
|
// * We do not support this check for balancing reasons, but you can still activate it...
|
||
|
// SetModuleSwitch (MODULE_SWITCH_SPELL_CORERULES_DMASTERTOUCH, TRUE);
|
||
|
|
||
|
// * Epic Spellcasting: Some Epic spells feed on the liveforce of the caster. However this
|
||
|
// * did not fit into NWNs spell system and was confusing, so we took it out...
|
||
|
// SetModuleSwitch (MODULE_SWITCH_EPIC_SPELLS_HURT_CASTER, TRUE);
|
||
|
|
||
|
// * Epic Spellcasting: Some Epic spells feed on the liveforce of the caster. However this
|
||
|
// * did not fit into NWNs spell system and was confusing, so we took it out...
|
||
|
// SetModuleSwitch (MODULE_SWITCH_RESTRICT_USE_POISON_TO_FEAT, TRUE);
|
||
|
|
||
|
// * Spellcasting: Some people don't like caster's abusing expertise to raise their AC
|
||
|
// * Uncommenting this line will drop expertise mode whenever a spell is cast by a player
|
||
|
// SetModuleSwitch (MODULE_VAR_AI_STOP_EXPERTISE_ABUSE, TRUE);
|
||
|
|
||
|
|
||
|
// * Item Event Scripts: The game's default event scripts allow routing of all item related events
|
||
|
// * into a single file, based on the tag of that item. If an item's tag is "test", it will fire a
|
||
|
// * script called "test" when an item based event (equip, unequip, acquire, unacquire, activate,...)
|
||
|
// * is triggered. Check "x2_it_example.nss" for an example.
|
||
|
// * This feature is disabled by default.
|
||
|
SetModuleSwitch (MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS, TRUE);
|
||
|
|
||
|
if (GetModuleSwitchValue (MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE)
|
||
|
{
|
||
|
// * If Tagbased scripts are enabled, and you are running a Local Vault Server
|
||
|
// * you should use the line below to add a layer of security to your server, preventing
|
||
|
// * people to execute script you don't want them to. If you use the feature below,
|
||
|
// * all called item scrips will be the prefix + the Tag of the item you want to execute, up to a
|
||
|
// * maximum of 16 chars, instead of the pure tag of the object.
|
||
|
// * i.e. without the line below a user activating an item with the tag "test",
|
||
|
// * will result in the execution of a script called "test". If you uncomment the line below
|
||
|
// * the script called will be "1_test.nss"
|
||
|
// SetUserDefinedItemEventPrefix("1_");
|
||
|
|
||
|
}
|
||
|
|
||
|
// * This initializes Bioware's wandering monster system as used in Hordes of the Underdark
|
||
|
// * You can deactivate it, making your module load faster if you do not use it.
|
||
|
// * If you want to use it, make sure you set "x2_mod_def_rest" as your module's OnRest Script
|
||
|
// SetModuleSwitch (MODULE_SWITCH_USE_XP2_RESTSYSTEM, TRUE);
|
||
|
|
||
|
if (GetModuleSwitchValue(MODULE_SWITCH_USE_XP2_RESTSYSTEM) == TRUE)
|
||
|
{
|
||
|
|
||
|
// * This allows you to specify a different 2da for the wandering monster system.
|
||
|
// SetWanderingMonster2DAFile("des_restsystem");
|
||
|
|
||
|
//* Do not change this line.
|
||
|
WMBuild2DACache();
|
||
|
}
|
||
|
|
||
|
// each area affected must be tagged and bagged then place the enter and exit scripts in each area.
|
||
|
object oArea002 = GetObjectByTag("CavernsofUnderdark");
|
||
|
SetLocalInt(oArea002,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea003 = GetObjectByTag("DrowSewers");
|
||
|
SetLocalInt(oArea003,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea004 = GetObjectByTag("HouseFenLiss");
|
||
|
SetLocalInt(oArea004,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea005 = GetObjectByTag("housedenat");
|
||
|
SetLocalInt(oArea005,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea006 = GetObjectByTag("HermitsDen");
|
||
|
SetLocalInt(oArea002,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea007 = GetObjectByTag("Manatakloss");
|
||
|
SetLocalInt(oArea007,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea008 = GetObjectByTag("DrowSlum1");
|
||
|
SetLocalInt(oArea008,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea009 = GetObjectByTag("DrowSlum2");
|
||
|
SetLocalInt(oArea009,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea010 = GetObjectByTag("DrowSlum3");
|
||
|
SetLocalInt(oArea010,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea011 = GetObjectByTag("DrowArcaneAcademy");
|
||
|
SetLocalInt(oArea011,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea012 = GetObjectByTag("HouseGuratsz");
|
||
|
SetLocalInt(oArea012,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea013 = GetObjectByTag("HouseKhuraan");
|
||
|
SetLocalInt(oArea013,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea014 = GetObjectByTag("QueensPalace");
|
||
|
SetLocalInt(oArea014,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
object oArea015 = GetObjectByTag("PalaceVault");
|
||
|
SetLocalInt(oArea015,"afx_flags",AFX_FLAG_DARK);
|
||
|
|
||
|
SetLocalString(GetModule(),"Version",POA_VERSION);
|
||
|
SetLocalInt(GetModule(),"iAnnounce_Period",ANNOUNCE_PERIOD);
|
||
|
|
||
|
}
|