//Please note.. this script for monster spawns is *NOT* complete //This is only an example.. You as the designer of the module //must assign your own creatures and/or devise a more //optimal grouping rather than just a straight random number. // //Example.. each chest could have a themed spawn where //all monsters are from a subcategory.. i.e. all undead.. or //all goblins.. or all dragons (family group.. wyrmlings included) //This is just a sample script to fill in the blank and provide //for proper testing and evaluation. Please assign your monsters //as you see fit. -- UOAbigail string GetMonster1(); string GetMonster2(); string GetMonster3(); string GetMonster4(); string GetMonster5(); string GetMonster6(); string GetMonster7(); string GetMonster8(); string GetMonster9(); string GetMonster10(); void main() { object oSelf=OBJECT_SELF; int iMapLevel = GetLocalInt(oSelf,"iChestLevel"); object oPC = GetLocalObject(oSelf,"oDiggingPC"); string sMonsterResRef; switch (iMapLevel) { case 2:{sMonsterResRef=GetMonster2();break;} case 3:{sMonsterResRef=GetMonster3();break;} case 4:{sMonsterResRef=GetMonster4();break;} case 5:{sMonsterResRef=GetMonster5();break;} case 6:{sMonsterResRef=GetMonster6();break;} case 7:{sMonsterResRef=GetMonster7();break;} case 8:{sMonsterResRef=GetMonster8();break;} case 9:{sMonsterResRef=GetMonster9();break;} case 10:{sMonsterResRef=GetMonster10();break;} default:{sMonsterResRef=GetMonster1();break;} } object oTemp; location lSelf = GetLocation(oSelf); vector vSelf = GetPosition(oSelf); object oArea = GetArea(oSelf); vector vFire; int vDirection; float fSelf; int iRandom; float fDistance; location lFire; fSelf = GetFacing(oSelf)+Random(360); fDistance = (IntToFloat(Random(100)+1)/10.0)+5.0; vFire = vSelf + (AngleToVector(fSelf) * fDistance); lFire = Location(oArea,vFire,fSelf); oTemp = CreateObject(OBJECT_TYPE_CREATURE,sMonsterResRef,lFire,TRUE); AssignCommand(oTemp,SetFacingPoint(AngleToVector(GetFacing(oPC)))); AssignCommand(oTemp,ActionAttack(oPC,FALSE)); DelayCommand(1.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_COM_SPARKS_PARRY,FALSE),lFire)); } string GetMonster1() //CR 1-3 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_kobold002";break;} case 1:{sResRef="nw_kobold001";break;} case 2:{sResRef="nw_goblina";break;} case 3:{sResRef="nw_goblinb";break;} case 4:{sResRef="nw_gnoll001";break;} case 5:{sResRef="nw_orca";break;} case 6:{sResRef="nw_orcb";break;} case 7:{sResRef="nw_gobchiefb";break;} default:{sResRef="nw_skeleton";break;} } return sResRef; } string GetMonster2() //CR 4-6 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_gobchiefa";break;} case 1:{sResRef="nw_troll";break;} case 2:{sResRef="nw_orcwiza ";break;} case 3:{sResRef="nw_spiddire";break;} case 4:{sResRef="nw_bugwiza";break;} case 5:{sResRef="nw_minotaur";break;} case 6:{sResRef="nw_invstalk";break;} case 7:{sResRef="nw_spidgiant";break;} default:{sResRef="nw_imp";break;} } return sResRef; } string GetMonster3() //CR 7-9 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_ogreboss";break;} case 1:{sResRef="nw_gnthill";break;} case 2:{sResRef="nw_trollboss";break;} case 3:{sResRef="nw_bugchiefa";break;} case 4:{sResRef="nw_orcboss";break;} case 5:{sResRef="nw_gobchiefa";break;} case 6:{sResRef="nw_btlstag";break;} case 7:{sResRef="nw_slaadgray";break;} default:{sResRef="nw_dmvrock";break;} } return sResRef; } string GetMonster4() //CR 10-12 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_earthhuge";break;} case 1:{sResRef="nw_umberhulk";break;} case 2:{sResRef="nw_mumcleric";break;} case 3:{sResRef="nw_vampire003";break;} case 4:{sResRef="nw_vampire004";break;} case 5:{sResRef="nw_battdevour";break;} case 6:{sResRef="nw_spiderboss";break;} case 7:{sResRef="nw_beetleboss";break;} default:{sResRef="nw_firehuge";break;} } return sResRef; } string GetMonster5() //CR 13-15 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_slaaddeth";break;} case 1:{sResRef="nw_drgblack001";break;} case 2:{sResRef="nw_drggreen002";break;} case 3:{sResRef="nw_demon";break;} case 4:{sResRef="nw_drgwhite002";break;} case 5:{sResRef="nw_eartheld";break;} case 6:{sResRef="nw_fireelder";break;} case 7:{sResRef="nw_airgreat";break;} default:{sResRef="nw_goliron";break;} } return sResRef; } string GetMonster6() //CR 16-18 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_goliron";break;} case 1:{sResRef="nw_drgred002";break;} case 2:{sResRef="nw_drgblue002";break;} case 3:{sResRef="nw_drggreen003";break;} case 4:{sResRef="nw_drgblack002";break;} case 5:{sResRef="nw_drgwhite003";break;} case 6:{sResRef="nw_lich003";break;} case 7:{sResRef="nw_slaaddeth";break;} default:{sResRef="nw_demon";break;} } return sResRef; } string GetMonster7()//CR 19-21 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_goliron";break;} case 1:{sResRef="nw_drgblack003";break;} case 2:{sResRef="nw_drgblue003";break;} case 3:{sResRef="nw_drggreen003";break;} case 4:{sResRef="nw_drgred003";break;} case 5:{sResRef="nw_drgwhite003";break;} case 6:{sResRef="nw_lich003";break;} case 7:{sResRef="nw_slaaddeth";break;} default:{sResRef="nw_demon";break;} } return sResRef; } string GetMonster8() //CR 22-24 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_goliron";break;} case 1:{sResRef="nw_drgblack003";break;} case 2:{sResRef="nw_drgblue003";break;} case 3:{sResRef="nw_drggreen003";break;} case 4:{sResRef="nw_drgred003";break;} case 5:{sResRef="nw_drgwhite003";break;} case 6:{sResRef="nw_lich003";break;} case 7:{sResRef="nw_slaaddeth";break;} default:{sResRef="nw_demon";break;} } return sResRef; } string GetMonster9() //CR 25-27 here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_goliron";break;} case 1:{sResRef="nw_drgblack003";break;} case 2:{sResRef="nw_drgblue003";break;} case 3:{sResRef="nw_drggreen003";break;} case 4:{sResRef="nw_drgred003";break;} case 5:{sResRef="nw_drgwhite003";break;} case 6:{sResRef="nw_lich003";break;} case 7:{sResRef="nw_slaaddeth";break;} default:{sResRef="nw_demon";break;} } return sResRef; } string GetMonster10() //CR 28+ here { string sResRef; switch (Random(9)) { case 0:{sResRef="nw_goliron";break;} case 1:{sResRef="nw_drgblack003";break;} case 2:{sResRef="nw_drgblue003";break;} case 3:{sResRef="nw_drggreen003";break;} case 4:{sResRef="nw_drgred003";break;} case 5:{sResRef="nw_drgwhite003";break;} case 6:{sResRef="nw_lich003";break;} case 7:{sResRef="nw_slaaddeth";break;} default:{sResRef="nw_demon";break;} } return sResRef; }