//Script Name: onheartbeat ////////////////////////////////////////// //Created By: Genisys (Guile) //Created On: 4/20/08 (Updated 8/10/08) ///////////////////////////////////////// /* Some parts of this script were taken from AW_Olorin's Paths of Ascension Module This script goes in the OnHeartbeat Event of the Module Properties */ //////////////////////////////////////// //Required Include #include "x3_inc_horse" //#include "nw_i0_tool" //Main Script void main() { //IMPORTANT NOTE: If you are using nwnx2 to load your server you will //want to open up the OnModuleLoad script to activate the NWNX2 Reset //and below you will need to follow the directions to turn off normal reset. object oPC = GetFirstPC(); while(GetIsObjectValid(oPC)) { //This function stops trap setting in town. (or wherever you place the invisible //object you will create tagnamed "nocrown" at./ located in the pallette) object detector = GetNearestObjectByTag("nocrown", oPC, 0); if (GetIsObjectValid(detector)) { object trap = GetNearestTrapToObject(detector, FALSE); if ( GetTrapCreator(trap) == oPC && !GetIsDM(oPC) && GetIsPC(oPC)) if (GetArea(oPC) != GetArea(GetObjectByTag("throneofdeath"))) { AssignCommand(oPC, ClearAllActions()); AssignCommand(oPC, ActionJumpToLocation(GetLocation(GetWaypointByTag("prison")))); SendMessageToPC(oPC, "You have been sent to jail for setting a trap in a restricted area."); } } oPC = GetNextPC(); } /////////////////////////////////////////////////////////////[ MAIN ]/////////// //x3 Function! oPC=GetFirstPC(); int nRoll; int bNoCombat=GetLocalInt(GetModule(),"X3_NO_MOUNTED_COMBAT_FEAT"); while(GetIsObjectValid(oPC)) { // PC traversal if (GetLocalInt(oPC,"bX3_STORE_MOUNT_INFO")) { // store DeleteLocalInt(oPC,"bX3_STORE_MOUNT_INFO"); HorseSaveToDatabase(oPC,X3_HORSE_DATABASE); } // store if (!bNoCombat&&GetHasFeat(FEAT_MOUNTED_COMBAT,oPC)&&HorseGetIsMounted(oPC)) { // check for AC increase nRoll=d20()+GetSkillRank(SKILL_RIDE,oPC); nRoll=nRoll-10; if (nRoll>4) { // ac increase nRoll=nRoll/5; ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectACIncrease(nRoll),oPC,7.0); } // ac increase } // check for AC increase oPC=GetNextPC(); } // PC traversal } /////////////////////////////////////////////////////////////[ MAIN ]///////////