EN4_PRC8/_module/nss/qst_cq5_setup.nss
Jaysyn904 b464d8da05 Initial Commit
Initial Commit [v1.32PRC8]
2025-04-03 13:38:45 -04:00

265 lines
6.9 KiB
Plaintext

#include "rd_questinc"
#include "prc_class_const"
void main()
{
object oPC;
object oBoss;
int iVariance;
int iLevel;
int iRandom;
int iAdjustedLevel;
string sTokenLine;
string sTag;
int iMilitiaLevel;
location lLoc;
object oMilitia;
oPC = GetPCSpeaker();
SetPartyInt(oPC,"QuestStep",1);
SetLocalString(oPC,"QuestGiver",GetTag(OBJECT_SELF));
SetLocalInt(oPC,"Quest",1);
SetCustomToken(111, "");
SetCustomToken(112, "");
SetCustomToken(113, "");
SetToken(oPC,OBJECT_SELF,103,GetName(OBJECT_SELF));
iLevel = GetHitDice(oPC);
iAdjustedLevel = GetAdjustedLevel(oPC);
iAdjustedLevel = ZoneLevel(GetArea(oPC),iAdjustedLevel);
if (GetLevelByClass(CLASS_TYPE_WIZARD, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_SORCERER, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_BEGUILER, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_SHADOWCASTER, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_WARLOCK, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_DRAGONFIRE_ADEPT, oPC) > 0)
{
iRandom = Random(2)+1;
switch (iRandom)
{
case 1: iVariance = 10; break;
case 2: iVariance = 11; break;
}
if (iVariance == 11 && iAdjustedLevel > 24)
iVariance = 10;
}
else if (GetLevelByClass(CLASS_TYPE_CLERIC,oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_SOHEI,oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_PALADIN,oPC) > 0)
{
iRandom = Random(2)+1;
switch (iRandom)
{
case 1: iVariance = 10; break;
case 2: iVariance = 20; break;
}
}
else if (GetLevelByClass(CLASS_TYPE_DRUID, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_HEXBLADE, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_SHAMAN, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_WARMAGE, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_TOTEMIST, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_DUSKBLADE, oPC) > 0 ||
GetLevelByClass(CLASS_TYPE_RANGER,oPC) > 0)
{
iRandom = Random(2)+1;
switch (iRandom)
{
case 1: iVariance = 21; break;
case 2: iVariance = 11; break;
}
if (iVariance == 11 && iAdjustedLevel > 24)
iVariance = 10;
if (iVariance == 21 && iAdjustedLevel > 17)
iVariance = 10;
if (GetLevelByClass(CLASS_TYPE_RANGER,oPC) > 0 && iVariance == 10)
if (Random(2)==0)
iVariance = 30;
else
iVariance = 41;
}
else if (GetLevelByClass(CLASS_TYPE_ROGUE,oPC)
+GetLevelByClass(CLASS_TYPE_NINJA, oPC)
+GetLevelByClass(CLASS_TYPE_SCOUT, oPC)
+GetLevelByClass(CLASS_TYPE_FACTOTUM, oPC)
+GetLevelByClass(CLASS_TYPE_PSYCHIC_ROGUE, oPC) > 0)
{
iRandom = Random(2)+1;
switch (iRandom)
{
case 1: iVariance = 30; break;
case 2: iVariance = 41; break;
}
}
else
{
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: iVariance = 30; break;
case 2: iVariance = 40; break;
case 3: iVariance = 41; break;
}
if (iVariance == 40)
if (iAdjustedLevel < 12 || iAdjustedLevel > 25)
iVariance = 41;
}
SetLocalInt(OBJECT_SELF,"QuestVariance",iVariance);
//SendMessageToPC(GetFirstPC(),"Variance set to " + IntToString(iVariance));
if (iVariance == 10)
{
if (iAdjustedLevel<10)
sTag = "summon2";
else if (iAdjustedLevel<16)
sTag = "summon5";
else if (iAdjustedLevel<25)
sTag = "summon6";
else if (iAdjustedLevel<35)
sTag = "fiend";
else
sTag = "demon";
if (Random(2)==0 || iAdjustedLevel < 4)
oBoss = GetRandomQuestMobs(oPC,OBJECT_SELF,0,sTag);
else
oBoss = GetQuestCamp(oPC,OBJECT_SELF,sTag);
sTokenLine = "I need to eliminate some demons located " + GetToken(102) + ".";
}
if (iVariance == 11)
{
if (iAdjustedLevel<10)
sTag = "summon1";
else if (iAdjustedLevel<16)
sTag = "summon3";
else if (iAdjustedLevel<25)
sTag = "summon4";
if (Random(2)==0 || iAdjustedLevel < 4)
oBoss = GetRandomQuestMobs(oPC,OBJECT_SELF,0,sTag);
else
oBoss = GetQuestCamp(oPC,OBJECT_SELF,sTag);
sTokenLine = "I need to eliminate some elementals located " + GetToken(102) + ".";
}
if (iVariance == 20)
{
if (iAdjustedLevel<5)
sTag = "undead1";
else if (iAdjustedLevel<9)
sTag = "undead3";
else if (iAdjustedLevel<15)
sTag = "undead4";
else if (iAdjustedLevel<20)
sTag = "undead5";
else
sTag = "undead6";
if (Random(2)==0)
oBoss = GetRandomQuestMobs(oPC,OBJECT_SELF,0,sTag);
else
oBoss = GetQuestCamp(oPC,OBJECT_SELF,sTag);
sTokenLine = "I need to eliminate some undead located " + GetToken(102) + ".";
}
if (iVariance == 21)
{
if (iAdjustedLevel<3)
sTag = "stirge";
else if (iAdjustedLevel<7)
if (Random(2)==0)
sTag = "unkempt";
else
sTag = "ant";
else if (iAdjustedLevel<10)
if (Random(2)==0)
sTag = "spider1";
else
sTag = "beetle1";
else if (iAdjustedLevel<18)
if (Random(2)==0)
sTag = "spider2";
else
sTag = "beetle2";
if (Random(2)==0)
oBoss = GetRandomQuestMobs(oPC,OBJECT_SELF,0,sTag);
else
oBoss = GetQuestCamp(oPC,OBJECT_SELF,sTag);
sTokenLine = "I need to eliminate some undead located " + GetToken(102) + ".";
}
if (iVariance == 30)
{
if (Random(2)==0)
oBoss = GetRandomQuestMobs(oPC,OBJECT_SELF,0,sTag);
else
{
oBoss = GetQuestCamp(oPC,OBJECT_SELF,sTag);
GetPrisoners(oBoss,11);
}
sTokenLine = "I need to eliminate some slavers located " + GetToken(102) + ".";
}
if (iVariance == 40)
{
oBoss = GetQuestCamp(oPC,OBJECT_SELF,"dragon");
sTokenLine = "I need to slay a dragon located " + GetToken(102) + ".";
iMilitiaLevel = iAdjustedLevel - 1;
lLoc = GetLocation(oPC);
oMilitia = CreateObject(OBJECT_TYPE_CREATURE,"en3_militia",lLoc);
if (iMilitiaLevel>1)
LevelMob(oMilitia,iMilitiaLevel);
EquipMob(oMilitia);
AddHenchman(oPC,oMilitia);
oMilitia = CreateObject(OBJECT_TYPE_CREATURE,"en3_militia",lLoc);
if (iMilitiaLevel>1)
LevelMob(oMilitia,iMilitiaLevel);
EquipMob(oMilitia);
AddHenchman(oPC,oMilitia);
}
if (iVariance == 41)
{
if (Random(2)==0)
{
sTag = "duergar";
oBoss = GetQuestCamp(oPC,OBJECT_SELF,sTag);
GetPrisoners(oBoss,3);
sTokenLine = "I need to eliminate some duergar located " + GetToken(102) + ".";
}
else
{
sTag = "drow";
oBoss = GetQuestCamp(oPC,OBJECT_SELF,sTag);
GetPrisoners(oBoss,3);
sTokenLine = "I need to eliminate some drow elves located " + GetToken(102) + ".";
}
}
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
RemoveJournalQuestEntry("jDelivery",oPC);
RemoveJournalQuestEntry("jCamp",oPC);
AddJournalQuestEntry("jCamp",1,oPC);
}