112 lines
4.8 KiB
Plaintext
112 lines
4.8 KiB
Plaintext
//#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);
|
|
// }
|
|
// }
|
|
//}
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|