87 lines
1.9 KiB
Plaintext
87 lines
1.9 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name hx_inc_treasure
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Random treasure for creatures. Created on
|
|
spawn-in.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Brad Prince
|
|
//:: Created On: Oct 25, 2003
|
|
//:://////////////////////////////////////////////
|
|
|
|
// Figure out whether to grab treasure of not.
|
|
void HX_GetTreasure(object oSelf = OBJECT_SELF);
|
|
// Get the treasure.
|
|
void GetTreasure(object oSelf);
|
|
// Count the treasure.
|
|
int GetTreasureCount(object oTreasure);
|
|
|
|
//////////////////////////////////////////////////
|
|
|
|
void HX_GetTreasure(object oSelf = OBJECT_SELF)
|
|
{
|
|
int iRandom = Random(100);
|
|
int iRandom2;
|
|
|
|
if(iRandom <= 25)
|
|
{
|
|
// Random treasure.
|
|
if(iRandom == 25)
|
|
{
|
|
GetTreasure(oSelf);
|
|
GetTreasure(oSelf);
|
|
}
|
|
if(iRandom <= 15)
|
|
{
|
|
GetTreasure(oSelf);
|
|
}
|
|
// Random gold.
|
|
else
|
|
{
|
|
iRandom = Random(1000) + 500;
|
|
// Multiplier.
|
|
iRandom2 = Random(5) + 1;
|
|
|
|
GiveGoldToCreature(oSelf, iRandom * iRandom2);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Get the treasure.
|
|
void GetTreasure(object oSelf)
|
|
{
|
|
int iCount = 0;
|
|
int x = 0;
|
|
// How much treasure is left.
|
|
object oTreasure = GetObjectByTag("hx_treasure");
|
|
iCount = Random(GetTreasureCount(oTreasure));
|
|
|
|
object oItem = GetFirstItemInInventory(oTreasure);
|
|
|
|
while(x <= iCount)
|
|
{
|
|
if(x == iCount)
|
|
{
|
|
CopyItem(oItem, oSelf);
|
|
return;
|
|
}
|
|
x = x + 1;
|
|
oItem = GetNextItemInInventory(oTreasure);
|
|
}
|
|
}
|
|
|
|
int GetTreasureCount(object oTreasure)
|
|
{
|
|
int x = 0;
|
|
object oItem = GetFirstItemInInventory(oTreasure);
|
|
|
|
while(GetIsObjectValid(oItem))
|
|
{
|
|
x = x + 1;
|
|
oItem = GetNextItemInInventory(oTreasure);
|
|
}
|
|
return x + 1;
|
|
}
|