1016 lines
47 KiB
Plaintext
1016 lines
47 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Olander's Realistic Systems - Master Configurations Script
|
|
// opw_mod_onload
|
|
// By Don Anderson
|
|
// dandersonru@msn.com
|
|
//
|
|
/*
|
|
|
|
This is a master configurations script for the module load. This centers all the
|
|
Olander's Realistic Systems configurations to 1 location. These are the Global
|
|
configurations you will come across throughout the scripts....mainly in the
|
|
module onload scripts.
|
|
|
|
There are also specific tweaks and configurations specific to a particular system
|
|
like tweaking intensity values to HTF. This kind of stuff does not happen frequently
|
|
and thus is not implemented here.
|
|
|
|
See the Sections below to see the available configurations for each system.
|
|
|
|
Cheers!
|
|
|
|
Olander
|
|
|
|
*/
|
|
//
|
|
// This goes in the Module On Load Event FIRST IN THE LIST OF wrap_mod_onload !!!
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "x2_inc_switches"
|
|
#include "x2_inc_restsys"
|
|
#include "nbde_inc"
|
|
|
|
void main()
|
|
{
|
|
object oMod = GetModule();
|
|
|
|
//DM Control Switch Module Restart
|
|
//Module Name - This is your file name!!
|
|
string sMODNAME = "Olander Reality Systems All in One PW Kit";
|
|
SetLocalString(oMod,"MODNAME",sMODNAME);
|
|
|
|
//PC Export Timer Start
|
|
//DelayCommand(1200.0, SignalEvent(oMod, EventUserDefined(200)));
|
|
|
|
//Module Minutes Per Hour Setting
|
|
//Please set to Multiples of 2 and 60 is max!!
|
|
//int nMPH = 60;//Minutes Per Hour Setting
|
|
//AssignCommand(oMod,SetLocalInt(oMod,"MPH",nMPH));
|
|
|
|
int nGONG = 0;//Gongs ...yep Gongs. Turn them off by setting this to 0
|
|
AssignCommand(oMod,SetLocalInt(oMod,"GONG",nGONG));
|
|
|
|
//Clock Syncing
|
|
/*
|
|
Is your Module Time Clock not working properly? Will not cooperate?
|
|
Well this is an indication that your module is under a great strain.
|
|
You have a bunch of stuff functioning the module is laggin out or
|
|
something strange is happening.
|
|
|
|
Turn this beauty on to Sync the Module Clock. You Module will STILL
|
|
be under strain but at least your Clock and timing will work again.
|
|
This is on a 30Second Permanent Interval.
|
|
*/
|
|
//int nCLOCKSYNC = 1;//Set this to Clock Syncing (0 is OFF)
|
|
//AssignCommand(oMod,SetLocalInt(oMod,"CLOCKSYNC",nCLOCKSYNC));
|
|
//AssignCommand(oMod,ExecuteScript("opw_timesync",oMod));
|
|
|
|
//:****************************************************************************/
|
|
//: OLANDER'S AI & MISC
|
|
|
|
//OAI Critical Kill System (0 is OFF)
|
|
/*
|
|
This functions by taking into account Feats and Such to make Vorpal like kills
|
|
to vital areas. Works with any weapons/hands that do Bludgeoning Piercing or
|
|
Slashing Damage.
|
|
*/
|
|
int nOAICRIT = 0;
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OAICRIT",nOAICRIT));
|
|
|
|
//OAI Random Abilities (Original Provided by Lord Rosenkrantz)
|
|
/*
|
|
This adds some nice randomizations of NPC abilities to make each NPC
|
|
unique is some fashion. No longer will you be able to see an Orc and
|
|
assume it will be an easy fight...then again...maybe they will fall
|
|
like a Goblin. =)
|
|
*/
|
|
int RANDOMABILITIES = 0;//Set this to Turn On Random Abilities (0 is OFF)
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OAI_RANDOM_ABILITIES",RANDOMABILITIES));
|
|
|
|
//Small Creature Movement Penalities
|
|
//10% Speed decrease for Small Creatures and Dwarves (Used In Crafting and AI)
|
|
int nRACIALMOVE = 0;//Allow speed penalty to Racial Movement Rates PHB 3.5 (0 is Off)
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RACIALMOVE",nRACIALMOVE));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SML_CREATURE_MOVEPEN",20));
|
|
|
|
//Devastating Critical Allow
|
|
int nDevCrit = 1;//Set to Allow Dev Crit for Players (0 is OFF)
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DEVCRIT",nDevCrit));
|
|
|
|
//Leader Jump
|
|
int nJump = 0;//Set to Allow Players to Jump to the Party Leader (0 is OFF)
|
|
AssignCommand(oMod,SetLocalInt(oMod,"LEADERJUMP",nJump));
|
|
|
|
int nTrainerXP = 15000;//Set this to the Max XP for Combat Trainers (Level 5 Default)
|
|
//See fes_mod_onenter for all 40 Levels of XP values
|
|
AssignCommand(oMod,SetLocalInt(oMod,"TRAINERXP",nTrainerXP));
|
|
|
|
//: OLANDER'S AI & MISC
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: PERSISTENT TIME AND AUTO RELOAD SEQUENCE
|
|
|
|
//Month Naming For Clocks and Time Stuff (Sindarin/Elvish Provided)
|
|
string sMonth1 = "Narwain ";
|
|
string sMonth2 = "Ninui ";
|
|
string sMonth3 = "Gwaeron ";
|
|
string sMonth4 = "Gwirith ";
|
|
string sMonth5 = "Lothron ";
|
|
string sMonth6 = "Norui ";
|
|
string sMonth7 = "Cerveth ";
|
|
string sMonth8 = "Urui ";
|
|
string sMonth9 = "Ivanneth ";
|
|
string sMonth10 = "Narbeleth ";
|
|
string sMonth11 = "Hithui ";
|
|
string sMonth12 = "Girithron ";
|
|
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH1",sMonth1));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH2",sMonth2));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH3",sMonth3));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH4",sMonth4));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH5",sMonth5));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH6",sMonth6));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH7",sMonth7));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH8",sMonth8));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH9",sMonth9));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH10",sMonth10));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH11",sMonth11));
|
|
AssignCommand(oMod,SetLocalString(oMod,"MONTH12",sMonth12));
|
|
|
|
//Persistent Time
|
|
int nPERMTIME = 0;//Set this to Make Time Persistent (0 is OFF)
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PERMTIME",nPERMTIME));
|
|
|
|
if(nPERMTIME == 1)
|
|
{
|
|
int nCurHour = GetTimeHour();
|
|
int nCurMin = GetTimeMinute();
|
|
int nCurSec = GetTimeSecond();
|
|
int nCurMS = GetTimeMillisecond();
|
|
|
|
//Check for a Existing DB and Set to the Module
|
|
int nOldYear = NBDE_GetCampaignInt("TIME","TIMEYEAR",oMod);
|
|
if(nOldYear > 0)
|
|
{
|
|
int nHour = NBDE_GetCampaignInt("TIME","TIMEHOUR",oMod);
|
|
int nDay = NBDE_GetCampaignInt("TIME","TIMEDAY",oMod);
|
|
int nMonth = NBDE_GetCampaignInt("TIME","TIMEMONTH",oMod);
|
|
int nYear = NBDE_GetCampaignInt("TIME","TIMEYEAR",oMod);
|
|
SetCalendar(nYear, nMonth, nDay);
|
|
SetTime(nHour,0,0,0);
|
|
|
|
//Now Make it Persistent
|
|
NBDE_SetCampaignInt("TIME","TIMEHOUR",GetTimeHour(),oMod);
|
|
NBDE_SetCampaignInt("TIME","TIMEDAY",GetCalendarDay(),oMod);
|
|
NBDE_SetCampaignInt("TIME","TIMEMONTH",GetCalendarMonth(),oMod);
|
|
NBDE_SetCampaignInt("TIME","TIMEYEAR",GetCalendarYear(),oMod);
|
|
}
|
|
|
|
//New Time DB
|
|
else
|
|
{
|
|
//Now Make it Persistent
|
|
NBDE_SetCampaignInt("TIME","TIMEHOUR",GetTimeHour(),oMod);
|
|
NBDE_SetCampaignInt("TIME","TIMEDAY",GetCalendarDay(),oMod);
|
|
NBDE_SetCampaignInt("TIME","TIMEMONTH",GetCalendarMonth(),oMod);
|
|
NBDE_SetCampaignInt("TIME","TIMEYEAR",GetCalendarYear(),oMod);
|
|
|
|
SetTime(nCurHour,0,0,0);
|
|
}
|
|
}
|
|
|
|
//: PERSISTENT TIME AND AUTO RELOAD SEQUENCE
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: PLAYER INFORMATION (Some Based off Invisible420's PC Stats System)
|
|
|
|
int nSession = 1;//Set to Store the Player Session Time (0 is OFF)
|
|
int nBirthday = 1;//Set to Store the Birthday of Player (0 is OFF)
|
|
int nPKTrack = 1;//Set to Track Player Kills (0 is OFF)
|
|
int nAvgCR = 1;//Set to Track Player Average Kill CR (0 is OFF)
|
|
int nStrKill = 1;//Set to Track Player Strongest Kill Name and CR (0 is OFF)
|
|
int nNPCKiller = 1;//Set to Track Last Creature who Killed Player (0 is OFF)
|
|
int nPCKiller = 1;//Set to Track Last Player who Killed Player (0 is OFF)
|
|
int nFavWeapon = 1;//Set to Track Player's Favorite Weapon (0 is OFF)
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SESSION",nSession));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BIRTHDAY",nBirthday));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PKTRACK",nPKTrack));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AVGCR",nAvgCR));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"STRKILL",nStrKill));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"NPCKILLER",nNPCKiller));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PCKILLER",nPCKiller));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"FAVWEAPON",nFavWeapon));
|
|
|
|
//: PLAYER INFORMATION
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: DEATH, BLEEDING, and RESPAWN SYSTEMS
|
|
|
|
// 0 = Bioware
|
|
// 1 = Soul Rune and Binding Stones System
|
|
|
|
int nDeathChoose = 0;//Set this number to one of the Systems Above
|
|
int nBS = 0;//Set to turn on Binding Stones (0 is OFF)
|
|
int nPermDeath = 0;//Set to turn on Permanent Death (0 is OFF)
|
|
int nLifes = 10;//Number of Lifes Given to New Players
|
|
float fHPInt = 60.0;//HP and Bleeding Status Persistent Write Interval
|
|
int nXPPen = 0;//Set this to Give XP Penalties for Respawning (0 is OFF)
|
|
int nXPRate = 10;//This is the % XP Penalty if XP Penalties is ON
|
|
int nGPPen = 0;//Set this to Give Gold Penalties for Respawning (0 is OFF)
|
|
int nGPRate = 10;//This is the % Gold Penalty if Gold Penalties is ON
|
|
|
|
/*
|
|
NOTE: Permanent Death is based upon TOTAL number of deaths throughout the Player's
|
|
career. This will happen every time the player presses Respawn (Players can not
|
|
cheat death by logging out). You can add lifes to a player via scripts see the
|
|
script opw_dm_switch "DMAddLife" section for examples on how to do this.
|
|
*/
|
|
|
|
string sDeathPanel = "Olander's Realistic Systems Death Panel";
|
|
|
|
string sDeathSystem = "nw_o0_death";
|
|
string sDyingSystem = "nw_o0_dying";
|
|
string sRespawnSystem = "nw_o0_respawn";
|
|
|
|
switch(nDeathChoose)
|
|
{
|
|
case 0:
|
|
{
|
|
sDeathSystem = "nw_o0_death";
|
|
sDyingSystem = "nw_o0_dying";
|
|
sRespawnSystem = "nw_o0_respawn";
|
|
}
|
|
break;
|
|
case 1:
|
|
{
|
|
sDeathSystem = "bs_mod_ondeath";
|
|
sDyingSystem = "bs_mod_ondying";
|
|
sRespawnSystem = "bs_mod_respawn";
|
|
}
|
|
break;
|
|
}
|
|
|
|
if(nDeathChoose == 1)
|
|
{
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BS_ENABLE",nBS));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PERMDEATH",nPermDeath));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"LIFES",nLifes));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"HPINTERVAL",fHPInt));
|
|
}
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DEATHCHOOSE",nDeathChoose));
|
|
AssignCommand(oMod,SetLocalString(oMod,"DEATHSYSTEM",sDeathSystem));
|
|
AssignCommand(oMod,SetLocalString(oMod,"DYINGSYSTEM",sDyingSystem));
|
|
AssignCommand(oMod,SetLocalString(oMod,"RESPAWNSYSTEM",sRespawnSystem));
|
|
AssignCommand(oMod,SetLocalString(oMod,"DEATHPANEL",sDeathPanel));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DEATHCHOOSE",nDeathChoose));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"XPPEN",nXPPen));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"XPRATE",nXPRate));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"GPPEN",nGPPen));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"GPRATE",nGPRate));
|
|
|
|
//: DEATH, BLEEDING, and RESPAWN SYSTEMS
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: NPC LOOT CORPSE SYSTEM (by Scrotok and Keron Blackfeld)
|
|
|
|
/*
|
|
LOADS of configurations for this with good information as to what each does....
|
|
not worth copying over to here and restructuring the code there.
|
|
Please look at the script:
|
|
(instructions are at the top and configs are about in the middle)
|
|
_kb_loot_corpse
|
|
|
|
I have set this up the way I would use it but you can of course choose how you
|
|
want this to act.
|
|
*/
|
|
|
|
//: NPC LOOT CORPSE SYSTEM
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: FIRST ENTER STUFF
|
|
|
|
int nXP = 15000;//Set to how much XP you want the Player to start at (See fes_mod_onenter)
|
|
|
|
//PHB Settings
|
|
int nPHBStrip = 0;//This will make the PHB Gold to be Class Specific (0 is OFF)
|
|
int nGiveGold = 13000;//Set to how much Gold to give a New Player if PHB Strip is OFF
|
|
//If you set this amount to 0 the Player will get an amount of
|
|
//Gold per level Per PHB....Turn DOA Encumberance OFF!!!!!!
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"STARTXP",nXP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PHBSTRIP",nPHBStrip));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"GIVEGOLD",nGiveGold));
|
|
|
|
//: FIRST ENTER STUFF
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: XP SYSTEM (SEE NW_C2_DEFAULT7 FOR FURTHER INFORMATION)
|
|
|
|
int BIOXP = 0;//Set this for Bioware XP System (0 is OFF)
|
|
int OPWXP = 1;//Set this for Olander's XP System (0 is OFF) This is the Default System
|
|
int PWFXP = 0;//Set this for Knat's PWFXP System v2.0 (0 is OFF) This Overrides DMGXP
|
|
int DMGXP = 0;//Set this for ScrewTape's DMG XP System (0 is OFF)
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BIOXP",BIOXP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OPWXP",OPWXP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PWFXP",PWFXP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DMGXP",DMGXP));
|
|
|
|
//: XP SYSTEM
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: HTF SYSTEM (HUNGER, THIRST, and FATIGUE)
|
|
|
|
int nHTFGLOBAL = 0;//Set this to globally turn on or off the HTF System (0 is OFF)
|
|
|
|
// Setting HUNGERSYSTEM to 0 will turn off the need for PCs to regularly consume
|
|
// food and water to avoid death by starvation or dehydration.
|
|
int nHUNGERSYSTEM = 0;
|
|
|
|
// Setting FATIGUESYSTEM to 0 will turn off the ill effects recieved by a PC that
|
|
// goes a time without resting.
|
|
int nFATIGUESYSTEM = 0;
|
|
|
|
// Setting CONBASEDHEAL to 0 will turn off the Natural Healing Ability due to CON
|
|
// Note: This is like Natural Regeneration and happens ONCE Per Game Hour
|
|
int nCONBASEDHEAL = 0;
|
|
|
|
// Setting COLDSYSTEM to 0 will turn off the Cold effects recieved by a PC
|
|
int nCOLDSYSTEM = 0;
|
|
|
|
// How often in seconds to check the Hunger and Fatigue Checks (6.0 to 90.0)
|
|
float fHLOOP = 30.0;
|
|
|
|
// How often in seconds to check the Cold Checks (6.0 to 90.0)
|
|
float fCLOOP = 30.0;
|
|
|
|
//This determines at what percentage of the maximum hunger and thirst levels
|
|
//a PC is unable to rest becuase of hunger and/or thirst.
|
|
//The PC cannot rest if their current levels are below the given percentage.
|
|
float fRESTRESTRICTIONPERCENT = 0.2;
|
|
|
|
//Change the below value to increase or decrease the amount of changes the
|
|
//water canteen item can hold.
|
|
int nMAXCANTEENCHARGES = 5;
|
|
|
|
//The Quantity of Hunger, Thirst, and Fatigue Hit Points
|
|
int nHUNGER = 6000;//Default 6000
|
|
int nTHIRST = 6000;//Default 5500
|
|
int nFATIGUE = 12000;//Default 5000
|
|
|
|
//Percentage amount that players are allowed to go over quantites above
|
|
float fBUFFER = 0.2;
|
|
|
|
//The Value Ratings of Food and Drinks
|
|
//Food
|
|
int nRICH = 2000;
|
|
int nNORM = 1000;
|
|
int nPOOR = 500;
|
|
//Drink
|
|
int nHIGH = 2000;
|
|
int nMED = 1000;
|
|
int nLOW = 500;
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HTFGLOBAL", nHTFGLOBAL));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HUNGERSYSTEM", nHUNGERSYSTEM));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"FATIGUESYSTEM", nFATIGUESYSTEM));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CONBASEDHEAL", nCONBASEDHEAL));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"COLDSYSTEM", nCOLDSYSTEM));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"fHLOOP", fHLOOP));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"fCLOOP", fCLOOP));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"RESTRESTRICTIONPERCENT", fRESTRESTRICTIONPERCENT));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"MAXCANTEENCHARGES", nMAXCANTEENCHARGES));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HUNGER", nHUNGER));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"THIRST", nTHIRST));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"FATIGUE", nFATIGUE));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"BUFFER", fBUFFER));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RICH", nRICH));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"NORM", nNORM));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"POOR", nPOOR));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HIGH", nMED));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"MED", nMED));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"LOW", nLOW));
|
|
|
|
//: HTF SYSTEM (HUNGER, THIRST, and FATIGUE)
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: CAMPING AND RESTING
|
|
|
|
int nRESTGLOBAL = 0;//Set this to globally turn on or off the HTF System (0 is OFF)
|
|
|
|
int nRESTPHB = 0;//Set this for PHB Resting Rules (0 is Off)
|
|
int nRESTLEVEL = 0;//Set this to the Level to Start Resting Restrictions
|
|
int nRESTHOURS = 4;//The Number of Hours a Player Must Wait Between Rests
|
|
int nNATREGEN = 1;//Set this for Natural Healing based on CON Bonus (0 is OFF)
|
|
int nWISCOOK = 0;//Set this for Wisdom Based Cooking (0 is OFF)
|
|
|
|
//These 3 will not function without PHB Resting
|
|
int nRESTHEAL = 1;//Set this to make Healing on Resting Per HP per level Plus CON (0 is Off or Full Heal)
|
|
int nRESTCON = 1;//Set this to add HP's equal to the Constitution Ability Score * CON Bonus (0 is Off)
|
|
int nRESTHP = 1;//Set this to how many HP's per HD you wish to Heal
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RESTGLOBAL", nRESTGLOBAL));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RESTPHB", nRESTPHB));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RESTLEVEL", nRESTLEVEL));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RESTHOURS", nRESTHOURS));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"NATREGEN", nNATREGEN));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WISCOOK", nWISCOOK));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RESTHEAL", nRESTHEAL));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RESTCON", nRESTCON));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"RESTHP", nRESTHP));
|
|
|
|
//: CAMPING AND RESTING
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: CRAFTING
|
|
|
|
int nCRAFTGLOBAL = 0;//Set this to globally turn on or off the Crafting System (0 is OFF)
|
|
int nCRAFTLICENSE = 0;//Set this to require the use of a Crafting License to Craft (0 is OFF)
|
|
int nCRAFTSKILL = 0;//Set this to require the MINIMUM Skill required to Craft Without a License.
|
|
//License will Disallow this Requirement. Either Armor or Weapon will Satisfy.
|
|
//This ONLY Affects Armor and Weapon Crafting as Wand, Potion, and Traps are
|
|
//Pretty much self regulated.
|
|
|
|
//: REALITY SYSTEM CONFIGURATION SECTION
|
|
|
|
//I have also given the ability to use the standard AC to Armor
|
|
//Set to 0 to give AC to Armor instead of Damage Resistance
|
|
int nDRSYS = 0;
|
|
|
|
//Reality Armor rules to apply speed penalties while wearing armors Set to 0 to turn off
|
|
int nARMORRULES = 0;//Allows System to function and allows speed penalties (0 is Off)
|
|
int nARMORDAMAGE = 0;//When the Armor, Helm, or Shield are used in Combat they will take damage (0 is Off)
|
|
int nARMORDESTROY = 0;//When the Armor, Helm, or Shield HP's are used up they will be destroyed (0 is Off)
|
|
int nWEAPONDAMAGE = 0;//When the Weapon/Gloves is used in Combat they will take damage (0 is Off)
|
|
int nWEAPONDESTROY = 0;//When the Weapon/Glove HP's are used up it will be destroyed (0 is Off)
|
|
int nCLOAKDAMAGE = 0;//When the Cloak is used in Combat they will take damage (0 is Off)
|
|
int nCLOAKDESTROY = 0;//When the Cloak HP's are used up it will be destroyed (0 is Off)
|
|
int nBOOTSDAMAGE = 0;//When the Boots are used they will ALWAYS take damage (0 is Off)
|
|
int nBOOTSDESTROY = 0;//When the Boots HP's are used up it will be destroyed (0 is Off)
|
|
int nBELTDAMAGE = 0;//When the Belt is used in Combat they will take damage (0 is Off)
|
|
int nBELTDESTROY = 0;//When the Belt HP's are used up it will be destroyed (0 is Off)
|
|
|
|
int nDEFLECTMESSAGE = 0;//Shows the Deflection Messages (0 is Off)
|
|
int nROLLMESSAGE = 0;//Shows the Weapon Roll Message (0 is Off)
|
|
|
|
//: ARMOR CONFIGURATION SECTION
|
|
|
|
//Number of rounds required to equip armor fully
|
|
int nARMORLIGHT = 2;
|
|
int nARMORMED = 3;
|
|
int nARMORHEAVY = 4;
|
|
|
|
//Movement penalty for wearing Armor % decrease in speeds
|
|
int nARMOR10 = 5;//For Light Armors
|
|
int nARMOR20 = 10;//For Medium Armors
|
|
int nARMOR30 = 20;//For Heavy Armors
|
|
|
|
//This is the Armor/Helm/Shield/Weapon Cycles - Psuedo HB (This is Multiplied by 6)
|
|
int nCycle = 3;
|
|
|
|
//This is the Armor Number of HP's
|
|
int nAHP = 500;//This is the Base Armor HP
|
|
int nLAMult = 2;//This is the Multiplier for Light Armor
|
|
int nMAMult = 4;//This is the Multiplier for Medium Armor
|
|
int nHAMult = 6;//This is the Multiplier for Heavy Armor
|
|
int nSSMult = 1;//This is the Multiplier for Small Shield
|
|
int nLSMult = 2;//This is the Multiplier for Large Shield
|
|
int nTSMult = 3;//This is the Multiplier for Tower Shield
|
|
|
|
//Regarding AC Values:
|
|
//No Armor or Shield is indestructible just made better.
|
|
//So they get multipliers to the Armor and Shields above
|
|
//Over +5 will get the same +5 multiplier
|
|
int nAC1Mult = 2;//This is the Multiplier for AC+1 Armor or Shield
|
|
int nAC2Mult = 4;//This is the Multiplier for AC+2 Armor or Shield
|
|
int nAC3Mult = 6;//This is the Multiplier for AC+3 Armor or Shield
|
|
int nAC4Mult = 8;//This is the Multiplier for AC+4 Armor or Shield
|
|
int nAC5Mult = 10;//This is the Multiplier for AC+5 Armor or Shield
|
|
|
|
//: WEAPON CONFIGURATION SECTION
|
|
|
|
//This is the Armor Number of HP's
|
|
int nWHP = 2000;//This is the Base Weapon HP
|
|
int nLWMult = 2;//This is the Multiplier for Light Weapons
|
|
int nMWMult = 4;//This is the Multiplier for Medium Weapons
|
|
int nHWMult = 6;//This is the Multiplier for Heavy Weapons
|
|
|
|
//Regarding Enhancement Values:
|
|
//No Weapon is indestructible just made better.
|
|
//So they get multipliers to the Weapons above
|
|
//Over +5 will get the same +5 multiplier
|
|
int nAB1Mult = 2;//This is the Multiplier for AB+1 or EB+1
|
|
int nAB2Mult = 4;//This is the Multiplier for AB+2 or EB+2
|
|
int nAB3Mult = 6;//This is the Multiplier for AB+3 or EB+3
|
|
int nAB4Mult = 8;//This is the Multiplier for AB+4 or EB+4
|
|
int nAB5Mult = 10;//This is the Multiplier for AB+5 or EB+5
|
|
|
|
//: GLOVE/BRACER CONFIGURATION SECTION
|
|
|
|
//NOTE: Gloves behave like Weapons and Bracers behave like Helms and Shields
|
|
//Bracers are multiplied as above but only as Light Armor
|
|
int nGHP = 1000;//This is the Base Glove HP
|
|
int nBHP = 200;//This is the Base Bracer HP
|
|
|
|
//: CLOAK CONFIGURATION SECTION
|
|
|
|
//NOTE: Cloaks behave like Helms and Shields
|
|
//Cloaks are multiplied as above but only as Light Armor
|
|
int nCHP = 500;//This is the Base Cloak HP
|
|
|
|
//: BOOTS CONFIGURATION SECTION
|
|
|
|
//NOTE: Boots behave like Helms and Shields but are not restricted to only combat
|
|
//Boots are multiplied with Personal Bonus and AC Bonus added together. +5 Max
|
|
int nBTHP = 2000;//This is the Base Boots HP
|
|
|
|
//: BELT CONFIGURATION SECTION
|
|
|
|
//NOTE: Belts behave like Helms and Shields
|
|
//Belts have Personal Bonus Multipliers. +5 Max
|
|
int nBLHP = 500;//This is the Base Belt HP
|
|
|
|
//: CRAFTING CONFIGURATION SECTION
|
|
|
|
//These are all the configuration settings that are used throughout this
|
|
//crafting system. Try to Remember that a Player can wear multiple items
|
|
//that can stack bonuses.....so don't jack the numbers to high for each
|
|
//enchantment or you WILL have SEVERE difficulties balancing your Module.
|
|
//Then again....maybe you like that =)
|
|
|
|
/*
|
|
|
|
DR System Specs for Each Type of Armor
|
|
|
|
Name of Armor Has Identifier in the Name:
|
|
|
|
Plate: B 10/- , P 10/-, S 10/-
|
|
Banded or Lamellar: B 10/- , P 6/-, S 8/-
|
|
Splint: B 8/- , P 8/-, S 6/-
|
|
Scale: B 8/- , P 8/-, S 6/-
|
|
Chain: B 8/- , P 4/-, S 8/-
|
|
Studded: B 6/- , P 3/-, S 4/-
|
|
Hide: B 4/- , P 1/-, S 4/-
|
|
Leather: B 4/- , P 0/-, S 4/-
|
|
|
|
Note: Clothing ALWAYS gets AC (Capped at +6) because it is Purely Dexeterity Based!! Remember this!!
|
|
|
|
So for example....if you have Studded Leather the script will determine you have "Studded" in the name
|
|
and will apply the Studded properties NOT Leather. Another good example is Breast Plates. The AC Value
|
|
is less so it is easier to hit BUT they are still Plate and have very good Resistance to Damage across
|
|
the board.....so if the Breast Plate armor has "Plate" in the Name then it will get the Plate properties.
|
|
|
|
So the idea is KNOW the name of your Armor to determine which properties you wish to add AND more
|
|
importantly....WHEN TO STOP trying to Add Dusty Rose Ioun Stones to the Armor as More WILL NOT make them
|
|
any better but you can STILL keep adding them! So pay ATTENTION please!!
|
|
|
|
*/
|
|
|
|
//ENCHANTING BONUSES
|
|
int nABMAX = 5;//This is Max Attack and Damage Bonus (# of Diamonds)
|
|
int nDRMAX = 10;//This is Max Damage Resistance (1/-) for each Armor
|
|
int nACMAX = 6;//This is Max AC for Shields/Helms/Amulets and Armors(When DRSYS is Off)
|
|
int nEMAX = 10;//This is Max Damage/Elemental Bonus For Each Type of Item
|
|
int nTMAX = 3;//This is Max Damage/Elemental Bonus Combinations (Max is 6)
|
|
int nPMAX = 5;//This is Max Personal Bonus Items
|
|
int nENCDC = 30;//This is the DC to use the Enchanting Table (Recommend 30)
|
|
|
|
//ORE SMELTING
|
|
int nADAMDC = 30;//The DC to Smelt Adamantine Ore
|
|
int nADAMQTY = 5;//The Quantity of Adamantine Ore Required to smelt a bar
|
|
int nMITHDC = 25;//The DC to Smelt Mithril Ore
|
|
int nMITHQTY = 5;//The Quantity of Mithril Ore Required to smelt a bar
|
|
int nSTEELDC = 20;//The DC to Smelt Steel Ore
|
|
int nSTEELQTY = 5;//The Quantity of Steel Ore Required to smelt a bar
|
|
int nIRONDC = 15;//The DC to Smelt Iron Ore
|
|
int nIRONQTY = 5;//The Quantity of Iron Ore Required to smelt a bar
|
|
|
|
//MILLING
|
|
int nIWOODDC = 25;//The DC to Mill Ironwood Planks
|
|
int nIWOODQTY = 5;//The Quantity of Raw Ironwood Required to Mill Planks
|
|
int nOAKDC = 20;//The DC to Mill Oak Planks
|
|
int nOAKQTY = 5;//The Quantity of Raw Oak Required to Mill Planks
|
|
int nELMDC = 15;//The DC to Mill Elm Planks
|
|
int nELMQTY = 5;//The Quantity of Raw Elm Required to Mill Planks
|
|
|
|
//EDUCATION
|
|
int nHERBGP = 15;//Alchemy Amount of Gold Charged Per Credit * Class Level
|
|
int nHERBMAX = 20;//Max Alchemy Credits (20) is Maximum (4 Credits Per Class)
|
|
int nBLKGP = 15;//Blacksmithing Amount of Gold Charged Per Credit * Class Level
|
|
int nBLKMAX = 20;//Max Woodworking Credits (20) is Maximum (4 Credits Per Class)
|
|
int nWDWGP = 15;//Woodworking Amount of Gold Charged Per Credit * Class Level
|
|
int nWDWMAX = 20;//Max Blacksmithing Credits (20) is Maximum (4 Credits Per Class)
|
|
int nENCGP = 20;//Enchanting Amount of Gold Charged Per Credit * Class Level
|
|
int nENCMAX = 20;//Max Enchanting Credits (20) is Maximum (4 Credits Per Class)
|
|
|
|
//INTELLIGENCE/WISDOM REQUIREMENT
|
|
int nIWREQ = 0;//Set to 1 to Require to have 14(+2) INT or WIS to use the Enchanting Forge
|
|
|
|
//ILR (Item Level Restrictions) VARIABLES
|
|
//These are settings that allow Enchanting cost and protecting the player a bit when enchanting
|
|
//something that could require more experience than they have to enchant it. These also set a Gold
|
|
//Value Maximum that will be allowed in the Enchanting table (Great for setup areas where a DM Run
|
|
//campaign wants all the players to fit a certain range (See itemvalues 2da in the Source folder).
|
|
int nILRSYS = 0;//Set to 1 to not allow crafting of more powerful items than the Player can use
|
|
int nILRGOLD = 0;//Set to 1 to make enchanting cost something
|
|
int nILRGMAX = 4200000;//Set this to the GP Max Value for the Max Level of your players (40th Default)
|
|
|
|
//MINING AND HARVESTING
|
|
int nOREADAM = 100;//The Damage Total Required to Mine Adamantine Ore
|
|
float fTIMEADAM =1500.0;//Number of seconds to respawn Adamantine Ore
|
|
int nOREMITH = 80;//The Damage Total Required to Mine Mithril Ore
|
|
float fTIMEMITH =1500.0;//Number of seconds to respawn Mithril Ore
|
|
int nORESTEEL = 60;//The Damage Total Required to Mine Steel Ore
|
|
float fTIMESTEEL = 900.0;//Number of seconds to respawn Steel Ore
|
|
int nOREIRON = 60;//The Damage Total Required to Mine Iron Ore
|
|
float fTIMEIRON = 500.0;//Number of seconds to respawn Iron Ore
|
|
int nTREEIRONW = 80;//The Damage Total Required to Harvest Ironwood
|
|
float fTIMEIRONW =1500.0;//Number of seconds to respawn Ironwood
|
|
int nTREEOAK = 60;//The Damage Total Required to Harvest Oak
|
|
float fTIMEOAK = 900.0;//Number of seconds to respawn Oak
|
|
int nTREEELM = 40;//The Damage Total Required to Harvest Elm
|
|
float fTIMEELM = 900.0;//Number of seconds to respawn Elm
|
|
|
|
//: SET UP GLOBAL VALUES
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CRAFTGLOBAL", nCRAFTGLOBAL));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CRAFTLICENSE", nCRAFTLICENSE));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CRAFTSKILL", nCRAFTSKILL));
|
|
|
|
//Enhancements
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ABMAX", nABMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DRMAX", nDRMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ACMAX", nACMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"EMAX", nEMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"TMAX", nTMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PMAX", nPMAX));
|
|
|
|
//Crafting
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ENCDC", nENCDC));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HERBGP", nHERBGP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HERBMAX", nHERBMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BLKGP", nBLKGP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BLKMAX", nBLKMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WDWGP", nBLKGP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WDWMAX", nBLKMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ENCGP", nENCGP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ENCMAX", nENCMAX));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"IWREQ", nIWREQ));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ILRSYS", nILRSYS));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ILRGOLD", nILRGOLD));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ILRGMAX", nILRGMAX));
|
|
|
|
//Mining
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ADAMDC", nADAMDC));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ADAMQTY", nADAMQTY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OREADAM", nOREADAM));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"TIMEADAM", fTIMEADAM));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"MITHDC", nMITHDC));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"MITHQTY", nMITHQTY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OREMITH", nOREMITH));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"TIMEMITH", fTIMEMITH));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"STEELDC", nSTEELDC));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"STEELQTY", nSTEELQTY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ORESTEEL", nORESTEEL));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"TIMESTEEL", fTIMESTEEL));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"IRONDC", nIRONDC));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"IRONQTY", nIRONQTY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OREIRON", nOREIRON));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"TIMEIRON", fTIMEIRON));
|
|
|
|
//Lumbering
|
|
AssignCommand(oMod,SetLocalInt(oMod,"IWOODDC", nIWOODDC));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"IWOODQTY", nIWOODQTY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"TREEIRONW", nTREEIRONW));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"TIMEIRONW", fTIMEIRONW));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OAKDC", nOAKDC));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OAKQTY", nOAKQTY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"TREEOAK", nTREEOAK));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"TIMEOAK", fTIMEOAK));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ELMDC", nELMDC));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ELMQTY", nELMQTY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"TREEELM", nTREEELM));
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"TIMEELM", fTIMEELM));
|
|
|
|
//Armor and Shield
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DRSYS",nDRSYS));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMORRULES",nARMORRULES));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMORDAMAGE",nARMORDAMAGE));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMORDESTROY",nARMORDESTROY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMORLIGHT",nARMORLIGHT));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMORMED",nARMORMED));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMORHEAVY",nARMORHEAVY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMOR10",nARMOR10));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMOR20",nARMOR20));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMOR30",nARMOR30));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CYCLE",nCycle));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ARMORHP",nAHP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"LAMULT",nLAMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"MAMULT",nMAMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HAMULT",nHAMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SSMULT",nSSMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"LSMULT",nLSMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"TSMULT",nTSMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AC1MULT",nAC1Mult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AC2MULT",nAC2Mult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AC3MULT",nAC3Mult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AC4MULT",nAC4Mult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AC5MULT",nAC5Mult));
|
|
|
|
//Weapon
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WEAPONDAMAGE",nWEAPONDAMAGE));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WEAPONDESTROY",nWEAPONDESTROY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WEAPONHP",nWHP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"LWMULT",nLWMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"MWMULT",nMWMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HWMULT",nHWMult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AB1MULT",nAB1Mult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AB2MULT",nAB2Mult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AB3MULT",nAB3Mult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AB4MULT",nAB4Mult));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"AB5MULT",nAB5Mult));
|
|
|
|
//The rest of the Gear
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CLOAKDAMAGE",nCLOAKDAMAGE));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CLOAKDESTROY",nCLOAKDESTROY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BOOTSDAMAGE",nBOOTSDAMAGE));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BOOTSDESTROY",nBOOTSDESTROY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BELTDAMAGE",nBELTDAMAGE));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BELTDESTROY",nBELTDESTROY));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"GLOVEHP",nGHP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BRACERHP",nBHP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CLOAKHP",nCHP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BOOTSHP",nBTHP));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BELTHP",nBLHP));
|
|
|
|
//Messages
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DEFLECTMESSAGE",nDEFLECTMESSAGE));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"ROLLMESSAGE",nROLLMESSAGE));
|
|
|
|
//: CRAFTING
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: OLANDER'S REALISTIC WEATHER
|
|
|
|
int nWEATHERGLOBAL = 0;//Set this to globally turn on or off the Weather System (0 is OFF)
|
|
|
|
//Debug Messages (Temperature and Humidity will always be seen)
|
|
int nRWDebug = 0;//Debug Meesages (0 is OFF)
|
|
|
|
int nSKYBOX = 1;//New Feature to diable Sky Box changes Dynamically
|
|
//Note:
|
|
/*There are some 'Hiccups' encountered with the Aurora Engine
|
|
thay may cause the computer to go to 100% and cause the Server
|
|
to diconnect (very much like a never ending loop!!). If you
|
|
have this issue turn this off first then check to see if the
|
|
issue went away. Should. */
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WEATHERGLOBAL", nWEATHERGLOBAL));
|
|
//AssignCommand(oMod,SetLocalInt(oMod,"WEATHERCYCLE",nMPH));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WEATHERDUBUG",nRWDebug));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"WEATHERSKYBOX", nSKYBOX));
|
|
|
|
//: OLANDER'S REALISTIC WEATHER
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: PHB/CUSTOM SPELLS
|
|
|
|
int nTimeStop = 0;//Area Specific Time Stop (0 is OFF)
|
|
int nPHBHarm = 0;//PHB Harm Spell (0 is OFF)
|
|
int nPHBHeal = 0;//PHB Heal Spell (0 is OFF)
|
|
int nBlessW = 0;//CEP fix for Bless Weapon (0 is OFF)
|
|
int nDarkfire = 0;//CEP fix for Darkfire (0 is OFF)
|
|
int nFlameW = 0;//CEP fix for Flame Weapon (0 is OFF)
|
|
int nGMagicW = 0;//CEP fix for Greater Magic Weapon (0 is OFF)
|
|
int nMagicW = 0;//CEP fix for Magic Weapon (0 is OFF)
|
|
int nHolySword = 0;//CEP fix for Holy Sword (0 is OFF)
|
|
int nKeenEdge = 0;//CEP fix for Keen Edge (0 is OFF)
|
|
int nCFlame = 0;//Continual Flame Exploit Fix (0 is OFF)
|
|
int nSC1 = 0;//PHB Duration for Summon Creature I (0 is OFF)
|
|
int nSC2 = 0;//PHB Duration for Summon Creature II (0 is OFF)
|
|
int nSC3 = 0;//PHB Duration for Summon Creature III (0 is OFF)
|
|
int nSC4 = 0;//PHB Duration for Summon Creature IV (0 is OFF)
|
|
int nSC5 = 0;//PHB Duration for Summon Creature V (0 is OFF)
|
|
int nSC6 = 0;//PHB Duration for Summon Creature VI (0 is OFF)
|
|
int nSC7 = 0;//PHB Duration for Summon Creature VII (0 is OFF)
|
|
int nSC8 = 0;//PHB Duration for Summon Creature VIII (0 is OFF)
|
|
int nSC9 = 0;//PHB Duration for Summon Creature IX (0 is OFF)
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"TIMESTOP",nTimeStop));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PHBHARM",nPHBHarm));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PHBHEAL",nPHBHeal));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"BLESSW",nBlessW));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DARKFIRE",nDarkfire));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"FLAMEW",nFlameW));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"GMAGICW",nGMagicW));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"MAGICW",nMagicW));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"HOLYSWORD",nHolySword));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"KEENEDGE",nKeenEdge));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"CFLAME",nCFlame));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC1",nSC1));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC2",nSC2));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC3",nSC3));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC4",nSC4));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC5",nSC5));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC6",nSC6));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC7",nSC7));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC8",nSC8));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"SC9",nSC9));
|
|
|
|
//: PHB/CUSTOM SPELLS
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: DOA GOLD ENCUMBERANCE
|
|
|
|
int nDOA = 0;//Set this to use Gold Encumberance (0 is OFF)
|
|
AssignCommand(oMod,SetLocalInt(oMod,"DOAGOLD",nDOA));
|
|
|
|
//: DOA GOLD ENCUMBERANCE
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: REALISTIC TORCHES
|
|
|
|
//This is the Torch/Lantern Cycle Time
|
|
float fCycle = 30.0;
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"TORCHCYCLE",fCycle));
|
|
|
|
//This is the Torch Number of HP's (Set to Multiples of 4)
|
|
int nTHP = 12;//12This is Equivalent to 3 Hours
|
|
AssignCommand(oMod,SetLocalInt(oMod,"TORCHHP",nTHP));
|
|
|
|
//This is the Open Lantern Number of HP's (Set to Multiples of 4)
|
|
int nOLHP = 24;//24This is Equivalent to 6 Hours
|
|
AssignCommand(oMod,SetLocalInt(oMod,"OLANTERNHP",nOLHP));
|
|
|
|
//This is the Lantern Number of HP's (Set to Multiples of 4)
|
|
int nLHP = 40;//40This is Equivalent to 10 Hours
|
|
AssignCommand(oMod,SetLocalInt(oMod,"LANTERNHP",nLHP));
|
|
|
|
//: REALISTIC TORCHES
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: AUTO SHUT DOOR DELAY
|
|
|
|
float fASD = 10.0;//Set this to the Amount of Delay to Close the Door
|
|
AssignCommand(oMod,SetLocalFloat(oMod,"ASD",fASD));
|
|
|
|
//: AUTO SHUT DOOR DELAY
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: PACK ANIMALS & HORSES
|
|
|
|
//Animal GP Cost
|
|
int nType1 = 50;//Pack Penguin
|
|
int nType2 = 100;//Pack Badger
|
|
int nType3 = 300;//Pack Boar
|
|
int nType4 = 500;//Pack Beetle
|
|
int nType5 = 700;//Pack Ox
|
|
int nType6 = 1000;//Pack Bear
|
|
int nType7 = 700;//Pack Pony
|
|
int nType8 = 1000;//Pack Horse
|
|
int nType9 = 1000;//Black Horse
|
|
int nType10 = 1000;//White Horse
|
|
int nType11 = 1000;//Brown Horse
|
|
int nType12 = 1000;//White Pony
|
|
int nType13 = 1000;//Pinto Pony
|
|
int nType14 = 1000;//Brown Pony
|
|
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T1PRICE",nType1));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T2PRICE",nType2));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T3PRICE",nType3));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T4PRICE",nType4));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T5PRICE",nType5));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T6PRICE",nType6));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T7PRICE",nType7));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T8PRICE",nType8));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T9PRICE",nType9));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T10PRICE",nType10));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T11PRICE",nType11));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T12PRICE",nType12));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T13PRICE",nType13));
|
|
AssignCommand(oMod,SetLocalInt(oMod,"T14PRICE",nType14));
|
|
|
|
//Pack Box Maximum Items
|
|
/*
|
|
Careful here. The Box has a maximum Page Total for placing Items
|
|
into it. This is due to the limitation of the Box and the Transfer
|
|
of items to the Storage Creature.
|
|
|
|
Armor is Counted as 2 Items.
|
|
*/
|
|
int nPBMAX = 40;
|
|
AssignCommand(oMod,SetLocalInt(oMod,"PBMAX",nPBMAX));
|
|
|
|
//: PACK ANIMALS
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: MODULE SWITCHES
|
|
|
|
//Other Definitions
|
|
|
|
// * 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, FALSE);
|
|
|
|
// * 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);
|
|
|
|
// * Bioware Restrict Use Poison To Feat Only
|
|
// 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, FALSE);
|
|
|
|
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();
|
|
}
|
|
|
|
//: MODULE SWITCHES
|
|
//:****************************************************************************/
|
|
|
|
//:****************************************************************************/
|
|
//: TEMPPLATE
|
|
|
|
|
|
|
|
//: TEMPPLATE
|
|
//:****************************************************************************/
|
|
|
|
}
|