Files
HeroesStone_PRC8/_module/nss/cu_magichi.nss
Jaysyn904 1eefc84201 Initial Commit
Initial Commit.
2025-09-14 15:40:46 -04:00

96 lines
4.2 KiB
Plaintext

//************************************************************************
// Custom Magic Treasure Function for generating magic treasure of varying types in placeable, store or creature
// B W-Husey, 31st October 2003
// See cu_treasure and cu_magic for remaining categories
// Treasure Types are:
/* Scrolls56 - level 5 & 6 scrolls (Bookcases, stores & Wizards)
Inputs: sTreasureSet - The name of the group of treasure as above
oCreateIn - The object to contain the treasure
nChance - Chance of any of this type
nBonus - For Magic (improves treasure) - do not make nBonus negative. Max 79 (12 for Magic2).
*/
void GetMagichi(string sTreasureSet, object oCreateIn=OBJECT_SELF, int nChance=100, int nBonus=0)
{
if (Random(100)+1<nChance)
{
string sItem = "nw_wswdg001"; //default item = dagger
int nStack=1; //default 1 in stack
int rnd; //define variables
if (sTreasureSet == "Scrolls56") //SCROLLS LEVEL 5 & 6
{
int counter=0;
int iNumb=0;
int rnd2= Random(10)+1;
if (rnd2<6) counter=1;
else if (rnd2 <10 ) counter=2;
else if (rnd2 <11 ) counter=3;
while (iNumb<counter)
{
rnd = Random(102);
if (rnd < 1) sItem = "nw_it_sparscr501";
else if (rnd <4 ) sItem = "nw_it_sparscr502";
else if (rnd <6 ) sItem = "nw_it_sparscr503";
else if (rnd <8 ) sItem = "nw_it_sparscr504";
else if (rnd <10 )sItem = "nw_it_sparscr505";
else if (rnd <12 )sItem = "nw_it_sparscr506";
else if (rnd <14 )sItem = "nw_it_sparscr507";
else if (rnd <16 )sItem = "nw_it_sparscr508";
else if (rnd <18 )sItem = "nw_it_sparscr509";
else if (rnd <20 )sItem = "nw_it_sparscr510";
else if (rnd <22 )sItem = "nw_it_sparscr511";
else if (rnd <24 )sItem = "nw_it_sparscr512";
else if (rnd <26 )sItem = "nw_it_sparscr513";
else if (rnd <28 )sItem = "x1_it_sparscr501";
else if (rnd <30 )sItem = "x1_it_sparscr502";
else if (rnd <32 )sItem = "x1_it_spdvscr501";
else if (rnd <34 )sItem = "x1_it_spdvscr502";
else if (rnd <36 )sItem = "nw_it_sparscr601";
else if (rnd <38 )sItem = "nw_it_sparscr602";
else if (rnd <40 )sItem = "nw_it_sparscr603";
else if (rnd <42 )sItem = "nw_it_sparscr604";
else if (rnd <44 )sItem = "nw_it_sparscr605";
else if (rnd <46 )sItem = "nw_it_sparscr606";
else if (rnd <48 )sItem = "nw_it_sparscr607";
else if (rnd <50 )sItem = "nw_it_sparscr608";
else if (rnd <52 )sItem = "nw_it_sparscr609";
else if (rnd <54 )sItem = "nw_it_sparscr610";
else if (rnd <56 )sItem = "nw_it_sparscr611";
else if (rnd <58 )sItem = "nw_it_sparscr612";
else if (rnd <60 )sItem = "nw_it_sparscr613";
else if (rnd <62 )sItem = "nw_it_sparscr614";
else if (rnd <64 )sItem = "x1_it_sparscr601";
else if (rnd <66 )sItem = "x1_it_sparscr602";
else if (rnd <68 )sItem = "x1_it_sparscr603";
else if (rnd <70 )sItem = "x1_it_sparscr604";
else if (rnd <72 )sItem = "x1_it_sparscr605";
else if (rnd <74 )sItem = "x1_it_spdvscr601";
else if (rnd <76 )sItem = "x1_it_spdvscr602";
else if (rnd <78 )sItem = "x1_it_spdvscr603";
else if (rnd <80 )sItem = "x1_it_spdvscr604";
else if (rnd <82 )sItem = "x1_it_spdvscr605";
else if (rnd <84 )sItem = "x2_it_spdvscr501";
else if (rnd <86 )sItem = "x2_it_spdvscr502";
else if (rnd <88 )sItem = "x2_it_spdvscr503";
else if (rnd <90 )sItem = "x2_it_spdvscr509";
else if (rnd <92 )sItem = "x2_it_sparscr501";
else if (rnd <94 )sItem = "x2_it_sparscr502";
else if (rnd <96 )sItem = "x2_it_spdvscr601";
else if (rnd <98 )sItem = "x2_it_spdvscr602";
else if (rnd <100 )sItem = "x2_it_spdvscr606";
else if (rnd <102 )sItem = "x2_it_sparscr601";
if (counter-iNumb>1) {CreateItemOnObject(sItem, oCreateIn, nStack);} // All scrolls except last created by this line
iNumb ++;
} //End of While Loop
} //End of Scrolls56 If
CreateItemOnObject(sItem, oCreateIn,nStack); // Create the item
} //End of nChance
} //End of Void