// Treasure Chest #include "X0_I0_TREASURE" //percentage const int CHANCE_OF_UNIQUE = 30; void main() { object oItem = OBJECT_INVALID; // Clear all contents of the chest oItem = GetFirstItemInInventory(); while ( oItem != OBJECT_INVALID ) { //Make sure people don't stuff chest with plot items and break it SetPlotFlag(oItem, FALSE); DestroyObject( oItem, 0.0 ); oItem = GetNextItemInInventory(); } // Set respawntime float to the number of seconds. float respawntime = 600.00; if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0) { return; } object oLastOpener = GetLastOpener(); GenerateHighTreasure(oLastOpener, OBJECT_SELF); GenerateHighTreasure(oLastOpener, OBJECT_SELF); GenerateMediumTreasure(oLastOpener, OBJECT_SELF); GenerateMediumTreasure(oLastOpener, OBJECT_SELF); {int nRandom = d8(1); int nTreasureType = 1; if (nRandom == 1){ CreateItemOnObject("NW_IT_GOLD001", OBJECT_SELF, d100(230)); } else if (nRandom == 2){ CreateItemOnObject("NW_IT_GOLD001", OBJECT_SELF, d100(4750)); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType);} else if (nRandom == 3){ CreateItemOnObject("NW_IT_GOLD001", OBJECT_SELF, d100(2207)); GenerateHighTreasure(oLastOpener, OBJECT_SELF); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType);} else if (nRandom == 4){ CreateItemOnObject("NW_IT_GOLD001", OBJECT_SELF, d100(1120)); GenerateHighTreasure(oLastOpener, OBJECT_SELF); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType);} else if (nRandom == 5){ CreateItemOnObject("NW_IT_GOLD001", OBJECT_SELF, d100(896)); GenerateHighTreasure(oLastOpener, OBJECT_SELF); GenerateHighTreasure(oLastOpener, OBJECT_SELF); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType);} else if (nRandom == 6){ CreateItemOnObject("NW_IT_GOLD001", OBJECT_SELF, d100(850)); GenerateHighTreasure(oLastOpener, OBJECT_SELF); GenerateHighTreasure(oLastOpener, OBJECT_SELF); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType);} else if (nRandom == 7){ CreateItemOnObject("NW_IT_GOLD001", OBJECT_SELF, d100(750)); GenerateHighTreasure(oLastOpener, OBJECT_SELF); GenerateHighTreasure(oLastOpener, OBJECT_SELF); GenerateHighTreasure(oLastOpener, OBJECT_SELF); } else if (nRandom == 8){ CreateItemOnObject("NW_IT_GOLD001", OBJECT_SELF, d100(1000)); GenerateHighTreasure(oLastOpener, OBJECT_SELF); GenerateHighTreasure(oLastOpener, OBJECT_SELF); GenerateHighTreasure(oLastOpener, OBJECT_SELF); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType); CreateJewel(OBJECT_SELF, OBJECT_SELF, nTreasureType);} } int DiceRoll = d100(); if( DiceRoll <= CHANCE_OF_UNIQUE) { GenerateBossTreasure(oLastOpener, OBJECT_SELF); } SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1); ShoutDisturbed(); // Command added to delay the respawn AssignCommand( OBJECT_SELF, DelayCommand (respawntime, SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",0) ) ); }