53 lines
2.3 KiB
Plaintext
53 lines
2.3 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Name re_treasure0
|
||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||
|
//:://////////////////////////////////////////////
|
||
|
/*
|
||
|
The purpose of re_treasure# scripts are to generate
|
||
|
random treasure on a creature created via the BESIE
|
||
|
Random Encounter System by Ray Miller. These scripts
|
||
|
are called via an ExecuteScript() function from within
|
||
|
"re_rndenc". The object executing this script is passed
|
||
|
as the creature to be given treasure, so this creature
|
||
|
can be refered to as OBJECT_SELF.
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Ray Miller
|
||
|
//:: Created On: 10/27/02
|
||
|
//::////////////////////////////////////////////////////////////////////////////
|
||
|
/*
|
||
|
This is the standard treasure script for the BESIE Random Encounter System
|
||
|
By Ray Miller. Prior to v1.8 This script executed a series of functions to
|
||
|
bestow treasure upon creatures generated by the system. The problem was that
|
||
|
there were to many function which looped too many times and would sometimes cause
|
||
|
the spawner to abort with a "too many instructions error". So now we just use it
|
||
|
to bestow money.
|
||
|
|
||
|
Please note that the amount of treasure that should be rewarded for an encounter
|
||
|
or in a module is very subjective. Some will consider this amount far too generous
|
||
|
and some too greedy.
|
||
|
*/
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
void main()
|
||
|
{
|
||
|
if(d100()>66) return;
|
||
|
object oCreature = OBJECT_SELF;
|
||
|
object oMarker;
|
||
|
if(GetRacialType(oCreature) == RACIAL_TYPE_ANIMAL
|
||
|
|| GetRacialType(oCreature) == RACIAL_TYPE_VERMIN) return;
|
||
|
float fChallengeFactor = GetChallengeRating(oCreature) * 30.0;
|
||
|
float fFactor = IntToFloat(Random(5) + 2);
|
||
|
int iTreasure = FloatToInt(fChallengeFactor / fFactor);
|
||
|
int iType = GetRacialType(oCreature);
|
||
|
CreateItemOnObject("NW_IT_GOLD001", oCreature, iTreasure);
|
||
|
if(iType == RACIAL_TYPE_UNDEAD || iType == RACIAL_TYPE_ABERRATION)
|
||
|
oMarker = CreateItemOnObject("NW_IT_MSMLMISC21", oCreature, 1);
|
||
|
else if(iType == RACIAL_TYPE_CONSTRUCT ||
|
||
|
iType == RACIAL_TYPE_ELEMENTAL ||
|
||
|
iType == RACIAL_TYPE_OUTSIDER)
|
||
|
oMarker = CreateItemOnObject("NW_IT_MSMLMISC11", oCreature, 1);
|
||
|
else
|
||
|
oMarker = CreateItemOnObject("NW_IT_MMIDMISC05", oCreature, 1);
|
||
|
SetLocalInt(oMarker, "bItemForGold", TRUE);
|
||
|
}
|