//#include "sy_t_tclass" #include "RR_TREASURE" //:://///////////////////////////////////////////// //:: sy_t_genloot.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// //::////////////////////////////////////////////// //:: Created By: Syrsuro //:: Created On: November - May //::////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// ///////This script is intended to be used as the OnDeath and OnOpen script of a container. ///////In addition to sy_t_tlass, the files sy_t_magic.nss and sy_t_mundane are necessary. /////////////////////////////////////////////////////////////////////////////////////////// //Declarations/////////////////////////// object GetLastOpener(); //void ShoutDisturbed(); //////////////////////////////////////// //This script is supposed to create an STANDARD treasure. Thus, the modifier is set to 6. //This modifier is passed to the other scripts and used to determine the quantity of gold and //the frequency of gems. /////////////////////////////////////////////////////////////////////////////////// ////////This script takes the Level of the PC who opens or destroys the container and ////////uses this to scale the treasure off of. If you want to pre-set the CR of the ////////encounter/ container; you can set nCR directly. //////////////////////////////////////////////////////////////////////////////////// void main() { int nTModifier = 6;//Default values are 2 (poor), 6 (standard) and 10 (rich). if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0) { return; } object oLastOpener = GetLastOpener(); // int nCR = GetHitDice(oLastOpener); /// Sets the CR = level of opener.. //nCR = 20; /// Sets the CR as a pre-set value. // TreasureChance(OBJECT_SELF, nCR, nTModifier); /// The Treasure Generation Function (defined in sy_t_tcass) CT_rr_master_lewt_med(oLastOpener, OBJECT_SELF); SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1); ShoutDisturbed(); /// Should make local NPCs of the same faction as the chest hostile. } ///////////////////////////////////////////////////////////////////////////////// // * GET OPENER ////////////////////////////////////////////////////////////// // * Returns the object that either last opened the container or destroyed it //object GetLastOpener() //{ // if (GetIsObjectValid(GetLastOpenedBy()) == TRUE) // { // return GetLastOpenedBy(); // } // else // if (GetIsObjectValid(GetLastKiller()) == TRUE) // { // return GetLastKiller(); // } // return OBJECT_INVALID; //} /////////////////////////////////////////////////////////////////////////////// //:://///////////////////////////////////////////// //:: ShoutDisturbed //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// //::////////////////////////////////////////////// //:: Created By:BioWare //:: Created On: //::////////////////////////////////////////////// // * Container shouts if disturbed //void ShoutDisturbed() //{ // if (GetIsDead(OBJECT_SELF) == TRUE) // { // object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), TRUE, OBJECT_TYPE_CREATURE); //Cycle through the targets within the spell shape until an invalid object is captured. // while (GetIsObjectValid(oTarget)) // { // if (GetFactionEqual(oTarget, OBJECT_SELF) == TRUE) // { // * Make anyone who is a member of my faction hostile if I am violated // object oAttacker = GetLastAttacker(); // SetIsTemporaryEnemy(oAttacker,oTarget); // AssignCommand(oTarget, ActionAttack(oAttacker)); // } // oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), TRUE, OBJECT_TYPE_CREATURE); // } // } // else (GetIsOpen(OBJECT_SELF) == TRUE); // { // object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), TRUE, OBJECT_TYPE_CREATURE); //Cycle through the targets within the spell shape until an invalid object is captured. // while (GetIsObjectValid(oTarget)) // { // if (GetFactionEqual(oTarget, OBJECT_SELF) == TRUE) // { // * Make anyone who is a member of my faction hostile if I am violated // object oAttacker = GetLastOpener(); // SetIsTemporaryEnemy(oAttacker,oTarget); // AssignCommand(oTarget, ActionAttack(oAttacker)); // } // oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), TRUE, OBJECT_TYPE_CREATURE); // } // } //} //////////////////////////////////////////////////////////////////////////////////////////////