249 lines
7.0 KiB
Plaintext
249 lines
7.0 KiB
Plaintext
|
//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;
|
||
|
}
|