Initial commit
Initial commit. Updated release archive.
This commit is contained in:
482
_module/nss/qst_template.nss
Normal file
482
_module/nss/qst_template.nss
Normal file
@@ -0,0 +1,482 @@
|
||||
//#include "en5_misc"
|
||||
#include "en5_spawnzone"
|
||||
|
||||
void SetupTemplate();
|
||||
void SetupGoblinTheme(string sZone);
|
||||
void SetupOrcTheme(string sZone);
|
||||
void SetupMiscTheme(string sZone);
|
||||
void CheckLair(string sZone);
|
||||
|
||||
void SetupTemplate()
|
||||
{
|
||||
string sZone;
|
||||
int iRandom;
|
||||
int iMaxLevel;
|
||||
int iSACheck;
|
||||
|
||||
iSACheck = GetLocalInt(GetModule(),sZone + "_SPECIAL_1");
|
||||
|
||||
if (iSACheck == 0)
|
||||
{
|
||||
sZone=GetLocalString(OBJECT_SELF,"Zone");
|
||||
iMaxLevel = GetMaxLevel(sZone);
|
||||
|
||||
iRandom=Random(3);
|
||||
if (iRandom<1 && GetLocalInt(GetModule(),"Theme1Used") == 0 && iMaxLevel<15)
|
||||
SetupGoblinTheme(sZone);
|
||||
else if (iRandom<2 & GetLocalInt(GetModule(),"Theme2Used") == 0 && iMaxLevel<15)
|
||||
SetupOrcTheme(sZone);
|
||||
else if (iRandom<3 & GetLocalInt(GetModule(),"Theme3Used") == 0 && iMaxLevel<21)
|
||||
SetupMiscTheme(sZone);
|
||||
}
|
||||
}
|
||||
|
||||
void CheckLair(string sZone)
|
||||
{
|
||||
object oTransfer;
|
||||
object oMob;
|
||||
object oNPC;
|
||||
string sTag;
|
||||
string sWP;
|
||||
string sMob;
|
||||
string sFirstName;
|
||||
string sLastName;
|
||||
string sName;
|
||||
string sMobName;
|
||||
int iMinLevel;
|
||||
int iMaxLevel;
|
||||
int iMinMagicLevel;
|
||||
int iSACheck;
|
||||
int iLairs;
|
||||
int iRandom;
|
||||
int iHorde;
|
||||
|
||||
iSACheck = GetLocalInt(GetModule(),sZone + "_SPECIAL_1");
|
||||
iLairs =GetLocalInt(GetModule(),"Lairs");
|
||||
iMinLevel=GetMinLevel(sZone);
|
||||
iMaxLevel=GetMaxLevel(sZone);
|
||||
|
||||
if (iSACheck == 0 && iLairs < 4 && iMaxLevel < 30)
|
||||
{
|
||||
iLairs++;
|
||||
|
||||
sTag = "LAIR" + IntToString(iLairs);
|
||||
oTransfer=GetObjectByTag(sZone + "_SPECIAL_1");
|
||||
SetLocalString(oTransfer,"Area",sTag + "_Enter");
|
||||
oTransfer=GetObjectByTag(sTag + "_Exit");
|
||||
SetLocalString(oTransfer,"Area",sZone + "_1_Enter");
|
||||
SetLocalInt(GetModule(),sTag,1);
|
||||
SetLocalInt(GetObjectByTag(sZone + "_INFO"),"SA",1);
|
||||
SetLocalInt(GetModule(),sZone + "_SPECIAL_1",1);
|
||||
SetLocalInt(GetModule(),"Lairs",iLairs);
|
||||
|
||||
oTransfer=GetObjectByTag(sTag + "_INFO");
|
||||
SetLocalInt(oTransfer,"MinLevel",iMinLevel);
|
||||
SetLocalInt(oTransfer,"MaxLevel",iMaxLevel);
|
||||
|
||||
sWP=sTag + "_Q_1";
|
||||
iMinMagicLevel = iMaxLevel + 3;
|
||||
iHorde=0;
|
||||
sMob="EN5_TROLL";
|
||||
if (iMaxLevel<2)
|
||||
{
|
||||
iRandom=Random(4);
|
||||
if (iRandom<1)
|
||||
sMob="EN5_TROLL";
|
||||
else if (iRandom<2)
|
||||
sMob="EN5_ETTERCAP";
|
||||
else if (iRandom<3)
|
||||
sMob="EN5_FLYEYE";
|
||||
else
|
||||
sMob="EN5_HORROR";
|
||||
}
|
||||
else if (iMaxLevel<5)
|
||||
{
|
||||
iRandom=Random(3);
|
||||
if (iRandom<1)
|
||||
sMob="EN5_WERECAT";
|
||||
else if (iRandom<2)
|
||||
sMob="EN5_SHFIEND";
|
||||
else
|
||||
sMob="EN5_MUMMY";
|
||||
|
||||
}
|
||||
else if (iMaxLevel<9)
|
||||
{
|
||||
iRandom=Random(5);
|
||||
if (iRandom<1)
|
||||
sMob="en5_bulette2";
|
||||
else if (iRandom<2)
|
||||
sMob="EN5_DMSUCUBUS";
|
||||
else if (iRandom<3)
|
||||
sMob="EN5_SLAADGRN";
|
||||
else if (iRandom<4)
|
||||
sMob="EN5_GolClay";
|
||||
else
|
||||
sMob="EN4_GHOULBOSS";
|
||||
}
|
||||
else if (iMaxLevel<12)
|
||||
{
|
||||
iRandom=Random(4);
|
||||
if (iRandom<1)
|
||||
{
|
||||
sMob="EN6_ADDRGWHITE";
|
||||
iHorde=1;
|
||||
}
|
||||
else if (iRandom<2)
|
||||
{
|
||||
sMob="EN6_ADDRGBLACK";
|
||||
iHorde=1;
|
||||
}
|
||||
else if (iRandom<3)
|
||||
{
|
||||
sMob="EN5_GELUGON";
|
||||
sMobName = "powerful Demon";
|
||||
}
|
||||
else
|
||||
sMob="en5_spectre";
|
||||
}
|
||||
else if (iMaxLevel<16)
|
||||
{
|
||||
iRandom=Random(4);
|
||||
if (iRandom<1)
|
||||
{
|
||||
sMob="EN6_ODRGGREEN";
|
||||
iHorde=1;
|
||||
}
|
||||
else if (iRandom<2)
|
||||
{
|
||||
sMob="EN6_ODRGBLUE";
|
||||
iHorde=1;
|
||||
}
|
||||
else if (iRandom<3)
|
||||
{
|
||||
sMob="EN6_GFROST";
|
||||
sMobName = "powerful lich";
|
||||
}
|
||||
else
|
||||
sMob="en4_daemon";
|
||||
}
|
||||
else if (iMaxLevel<22)
|
||||
{
|
||||
iRandom=Random(4);
|
||||
if (iRandom<1)
|
||||
{
|
||||
sMob="EN5_Flame";
|
||||
iHorde=1;
|
||||
sMobName = "ancient red dragon";
|
||||
}
|
||||
else if (iRandom<2)
|
||||
{
|
||||
sMob="en6_ebony";
|
||||
iHorde=1;
|
||||
sMobName = "powerful shadow dragon";
|
||||
}
|
||||
else if (iRandom<3)
|
||||
{
|
||||
sMob="EN6_ABALOR_L";
|
||||
sMobName = "ancient balor demon";
|
||||
iHorde=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
sMob="en6_dknight_l";
|
||||
sMobName = "powerful death knight";
|
||||
iHorde=1;
|
||||
}
|
||||
}
|
||||
else if (iMaxLevel<33)
|
||||
{
|
||||
iRandom=Random(4);
|
||||
if (iRandom<1)
|
||||
{
|
||||
sMob="EN5_MARILITHBG_L";
|
||||
iHorde=1;
|
||||
sMobName = "powerful marlith demon";
|
||||
}
|
||||
else if (iRandom<2)
|
||||
{
|
||||
sMob="EN6_FTITAN_L";
|
||||
iHorde=1;
|
||||
sMobName = "fire titan";
|
||||
}
|
||||
else if (iRandom<3)
|
||||
{
|
||||
sMob="en6_demilich_l";
|
||||
sMobName = "powerful demi-lich";
|
||||
iHorde=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
sMob="en6_vamp_l";
|
||||
sMobName = "powerful vampire";
|
||||
iHorde=1;
|
||||
}
|
||||
}
|
||||
else
|
||||
sMob="en6_dracolich";
|
||||
|
||||
oMob=GetMob(sMob,sWP);
|
||||
SetLocalInt(oMob,"MagicItemLevel",iMinMagicLevel);
|
||||
if (iHorde >0)
|
||||
CreateItemOnObject("NW_IT_GOLD001", oMob, Random(4000)+1000);
|
||||
if (GetIsObjectValid(GetObjectByTag(sZone + "_Town")))
|
||||
oNPC=GetMob("en6_lair_bard" + IntToString(Random(3)+1),sZone + "_Town");
|
||||
else
|
||||
oNPC=GetMob("en6_lair_bard" + IntToString(Random(3)+1),sZone + "_QUESTNPC1");
|
||||
if (iMaxLevel>1)
|
||||
{
|
||||
LevelMob(oNPC,iMinLevel,EN5_CLASS_BARD);
|
||||
EquipMob(oNPC);
|
||||
}
|
||||
if (sMobName == "")
|
||||
sMobName = GetName(oMob);
|
||||
SetLocalString(oNPC,"Mob",sMobName);
|
||||
|
||||
sFirstName=RandomName(NAME_FIRST_GENERIC_MALE);
|
||||
sLastName=RandomName(NAME_LAST_HUMAN);
|
||||
|
||||
iRandom=Random(6);
|
||||
if (iRandom<1)
|
||||
sName="Minstrel " + sFirstName;
|
||||
else if (iRandom<2)
|
||||
sName="Bard " + sFirstName;
|
||||
else if (iRandom<3)
|
||||
sName="Troubador " + sFirstName;
|
||||
else if (iRandom<4)
|
||||
sName=sFirstName + " the Minstrel";
|
||||
else if (iRandom<5)
|
||||
sName=sFirstName + " the Bard";
|
||||
else
|
||||
sName=sFirstName + " " + sLastName;
|
||||
SetName(oNPC,sName);
|
||||
}
|
||||
}
|
||||
|
||||
void SetupGoblinTheme(string sZone)
|
||||
{
|
||||
int iMinLevel;
|
||||
int iMaxLevel;
|
||||
object oTransfer;
|
||||
object oInfo;
|
||||
object oMob;
|
||||
|
||||
oInfo=GetObjectByTag("T1_INFO");
|
||||
|
||||
iMinLevel=GetMinLevel(sZone);
|
||||
iMaxLevel=GetMaxLevel(sZone);
|
||||
|
||||
SetLocalInt(oInfo,"MinLevel",iMinLevel);
|
||||
SetLocalInt(oInfo,"MaxLevel",iMaxLevel);
|
||||
|
||||
oTransfer=GetObjectByTag(sZone + "_SPECIAL_1");
|
||||
SetLocalString(oTransfer,"Area","T1_Enter");
|
||||
oTransfer=GetObjectByTag("T1_Exit");
|
||||
SetLocalString(oTransfer,"Area",sZone + "_1_Enter");
|
||||
SetLocalInt(GetModule(),"T1",1);
|
||||
SetLocalInt(GetObjectByTag(sZone + "_INFO"),"SA",1);
|
||||
SetLocalInt(GetModule(),sZone + "_SPECIAL_1",1);
|
||||
|
||||
SetLocalString(GetModule(),"SPAWN_Zone","T1");
|
||||
SetLocalString(GetModule(),"SPAWN_CampType","C");
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",1);
|
||||
|
||||
SetLocalInt(GetModule(),"MobWander",50);
|
||||
oMob=GetGoblins(iMinLevel);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
oMob=GetGoblins(iMaxLevel);
|
||||
SetLocalInt(GetModule(),"MobWander",0);
|
||||
|
||||
oMob=GetMob("en6_goblin_c","T1_S_1",iMaxLevel+1,TRUE);
|
||||
DelayCommand(0.1,LevelupBoss(oMob,iMaxLevel+1,EN5_CLASS_FIGHTER,2));
|
||||
|
||||
if (Random(2)==0)
|
||||
{
|
||||
oMob=GetMob("en6_goblin_w","T1_S_2",iMaxLevel,FALSE);
|
||||
DelayCommand(0.1,LevelupBoss(oMob,iMaxLevel+1,EN5_CLASS_WIZARD,1));
|
||||
DelayCommand(0.1,AssignCommand(oMob,SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY)));
|
||||
CreateItemOnObject("T1_key",oMob);
|
||||
oMob=GetMob("en6_goblin_p","T1_S_3",iMaxLevel,FALSE);
|
||||
DelayCommand(0.1,LevelupBoss(oMob,iMaxLevel+1,EN5_CLASS_CLERIC,2));
|
||||
DelayCommand(0.1,AssignCommand(oMob,SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY)));
|
||||
} else {
|
||||
oMob=GetMob("en6_goblin_w","T1_S_2",iMaxLevel,FALSE);
|
||||
DelayCommand(0.1,LevelupBoss(oMob,iMaxLevel+1,EN5_CLASS_WIZARD,1));
|
||||
DelayCommand(0.1,AssignCommand(oMob,SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY)));
|
||||
oMob=GetMob("en6_goblin_p","T1_S_3",iMaxLevel,FALSE);
|
||||
DelayCommand(0.1,LevelupBoss(oMob,iMaxLevel+1,EN5_CLASS_CLERIC,2));
|
||||
DelayCommand(0.1,AssignCommand(oMob,SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY)));
|
||||
CreateItemOnObject("T1_key",oMob);
|
||||
}
|
||||
CreateTraps(sZone,iMinLevel,iMaxLevel);
|
||||
LockDoorsAndChests(sZone,iMinLevel,iMaxLevel);
|
||||
|
||||
SetLocalString(GetModule(),"QuestZone",sZone);
|
||||
ExecuteScript("t1_setup",OBJECT_SELF);
|
||||
ExecuteScript("t1_2_setup",OBJECT_SELF);
|
||||
ExecuteScript("t1_3_setup",OBJECT_SELF);
|
||||
SetLocalString(GetModule(),"QuestZone","");
|
||||
SetLocalInt(GetModule(),"Theme1Used",1);
|
||||
SetLocalInt(GetObjectByTag(sZone+"INFO"),"Template",1);
|
||||
}
|
||||
|
||||
void SetupOrcTheme(string sZone)
|
||||
{
|
||||
int iMinLevel;
|
||||
int iMaxLevel;
|
||||
object oTransfer;
|
||||
object oInfo;
|
||||
object oMob;
|
||||
|
||||
oInfo=GetObjectByTag("T2_INFO");
|
||||
|
||||
iMinLevel=GetMinLevel(sZone);
|
||||
iMaxLevel=GetMaxLevel(sZone);
|
||||
|
||||
SetLocalInt(oInfo,"MinLevel",iMinLevel);
|
||||
SetLocalInt(oInfo,"MaxLevel",iMaxLevel);
|
||||
|
||||
oTransfer=GetObjectByTag(sZone + "_SPECIAL_1");
|
||||
SetLocalString(oTransfer,"Area","T2_Enter");
|
||||
oTransfer=GetObjectByTag("T2_Exit");
|
||||
SetLocalString(oTransfer,"Area",sZone + "_1_Enter");
|
||||
SetLocalInt(GetModule(),"T2",1);
|
||||
SetLocalInt(GetObjectByTag(sZone + "_INFO"),"SA",1);
|
||||
SetLocalInt(GetModule(),sZone + "_SPECIAL_1",1);
|
||||
|
||||
SetLocalString(GetModule(),"SPAWN_Zone","T2");
|
||||
SetLocalString(GetModule(),"SPAWN_CampType","C");
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",1);
|
||||
|
||||
SetLocalInt(GetModule(),"MobWander",50);
|
||||
oMob=GetOrcs(iMaxLevel);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
oMob=GetOrcs(iMaxLevel);
|
||||
SetLocalInt(GetModule(),"MobWander",0);
|
||||
|
||||
oMob=GetMob("en6_orc_c","T2_S_1",iMaxLevel+1,TRUE);
|
||||
DelayCommand(0.1,LevelupBoss(oMob,iMaxLevel+1,EN5_CLASS_BARBARIAN,2));
|
||||
|
||||
if (iMaxLevel>2)
|
||||
{
|
||||
oMob=GetMob("EN6_WORG_E","T2_S_2",iMaxLevel,FALSE);
|
||||
oMob=GetMob("EN6_WORG_E","T2_S_3",iMaxLevel,FALSE);
|
||||
}
|
||||
CreateTraps(sZone,iMinLevel,iMaxLevel);
|
||||
LockDoorsAndChests(sZone,iMinLevel,iMaxLevel);
|
||||
|
||||
SetLocalString(GetModule(),"QuestZone",sZone);
|
||||
ExecuteScript("t2_setup",OBJECT_SELF);
|
||||
ExecuteScript("t2_2_setup",OBJECT_SELF);
|
||||
ExecuteScript("t2_3_setup",OBJECT_SELF);
|
||||
SetLocalString(GetModule(),"QuestZone","");
|
||||
SetLocalInt(GetModule(),"Theme2Used",1);
|
||||
SetLocalInt(GetObjectByTag(sZone+"INFO"),"Template",2);
|
||||
}
|
||||
|
||||
void SetupMiscTheme(string sZone)
|
||||
{
|
||||
int iMinLevel;
|
||||
int iMaxLevel;
|
||||
int iRandom;
|
||||
object oTransfer;
|
||||
object oInfo;
|
||||
object oMob;
|
||||
|
||||
oInfo=GetObjectByTag("T3_INFO");
|
||||
|
||||
iMinLevel=GetMinLevel(sZone);
|
||||
iMaxLevel=GetMaxLevel(sZone);
|
||||
|
||||
SetLocalInt(oInfo,"MinLevel",iMinLevel);
|
||||
SetLocalInt(oInfo,"MaxLevel",iMaxLevel);
|
||||
|
||||
oTransfer=GetObjectByTag(sZone + "_SPECIAL_1");
|
||||
SetLocalString(oTransfer,"Area","T3_Enter");
|
||||
oTransfer=GetObjectByTag("T3_Exit");
|
||||
SetLocalString(oTransfer,"Area",sZone + "_1_Enter");
|
||||
SetLocalInt(GetModule(),"T3",1);
|
||||
SetLocalInt(GetObjectByTag(sZone + "_INFO"),"SA",1);
|
||||
SetLocalInt(GetModule(),sZone + "_SPECIAL_1",1);
|
||||
|
||||
SetLocalString(GetModule(),"SPAWN_Zone","T3");
|
||||
SetLocalString(GetModule(),"SPAWN_CampType","C");
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",1);
|
||||
|
||||
iRandom=Random(2)+1;
|
||||
SetLocalInt(GetModule(),"iRandom",iRandom);
|
||||
|
||||
SetLocalInt(GetModule(),"MobWander",50);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",1);
|
||||
if (iMaxLevel<3)
|
||||
{
|
||||
oMob=GetLizardfolk(1);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
oMob=GetLizardfolk(1);
|
||||
}
|
||||
else if (iMaxLevel<7 && iRandom==1)
|
||||
{
|
||||
oMob=GetBugBear(2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
oMob=GetBugBear(2);
|
||||
}
|
||||
else if (iMaxLevel<7)
|
||||
{
|
||||
oMob=GetLizardfolk(4);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
oMob=GetLizardfolk(4);
|
||||
}
|
||||
else if (iMaxLevel<10)
|
||||
{
|
||||
oMob=GetMonstrous(6);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
oMob=GetMonstrous(6);
|
||||
}
|
||||
else if (iMaxLevel<14 && iRandom==1)
|
||||
{
|
||||
oMob=GetBugBear(10);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
oMob=GetBugBear(10);
|
||||
}
|
||||
else if (iMaxLevel<14)
|
||||
{
|
||||
oMob=GetTrolls(10);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
oMob=GetTrolls(10);
|
||||
}
|
||||
else if (iMaxLevel<19)
|
||||
{
|
||||
oMob=GetMonstrous(13);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
oMob=GetMonstrous(13);
|
||||
}
|
||||
else
|
||||
{
|
||||
oMob=GetGiants(20);
|
||||
SetLocalInt(GetModule(),"SPAWN_Camp",2);
|
||||
SetLocalInt(GetModule(),"SPAWN_Boss",0);
|
||||
oMob=GetGiants(20);
|
||||
}
|
||||
SetLocalInt(GetModule(),"MobWander",0);
|
||||
SetLocalString(GetModule(),"T3Mobs",GetLocalString(GetModule(),"EN5_CampDescription"));
|
||||
CreateTraps(sZone,iMinLevel,iMaxLevel);
|
||||
LockDoorsAndChests(sZone,iMinLevel,iMaxLevel);
|
||||
|
||||
SetLocalString(GetModule(),"QuestZone",sZone);
|
||||
ExecuteScript("t3_setup",OBJECT_SELF);
|
||||
ExecuteScript("t3_2_setup",OBJECT_SELF);
|
||||
ExecuteScript("t3_3_setup",OBJECT_SELF);
|
||||
SetLocalString(GetModule(),"QuestZone","");
|
||||
SetLocalInt(GetModule(),"Theme3Used",1);
|
||||
SetLocalInt(GetObjectByTag(sZone+"INFO"),"Template",3);
|
||||
}
|
||||
Reference in New Issue
Block a user