EN4_PRC8/_module/nss/qst_cq1_step3.nss

143 lines
3.1 KiB
Plaintext
Raw Permalink Normal View History

#include "rd_questinc"
void main()
{
object oPC;
string sZone;
string sTag;
int iMaxSpots;
int iSpawn;
int iCreatureLevel;
int iCreatures;
int iIndex;
int iLevel;
object oCreature;
int iDeathAllowed;
int iDeathAjust;
int iAdjustedLevel;
int iPCCount;
int iDifficulty;
int iRandom;
string sBoss;
string sFollowers;
string sLocation;
string sTokenLine;
location lLoc;
oPC=GetPCSpeaker();
SetPartyInt(oPC,"QuestStep",3);
sZone = GetZone(oPC);
iMaxSpots = GetMaxQuestSpots(sZone);
iSpawn = Random(iMaxSpots)+1;
sTag = sZone + "_Q_" + IntToString(iSpawn);
iLevel = GetHitDice(oPC);
iAdjustedLevel = GetAdjustedLevel(oPC);
iAdjustedLevel = ZoneLevel(GetArea(oPC),iAdjustedLevel);
if (iAdjustedLevel<8)
{
iRandom = Random(2)+1;
switch (iRandom)
{
case 1:
sBoss = "en3_boss1_1";
sFollowers = "en3_follower1";
break;
case 2:
sBoss = "en3_boss1_2";
sFollowers = "en3_follower1_2";
break;
}
}
else if (iAdjustedLevel<16)
{
iRandom = Random(2)+1;
switch (iRandom)
{
case 1:
sBoss = "en3_boss2_1";
sFollowers = "en3_follower2";
break;
case 2:
sBoss = "en3_boss2_2";
sFollowers = "en3_follower2_2";
break;
}
}
else if (iAdjustedLevel<26)
{
iRandom = Random(2)+1;
switch (iRandom)
{
case 1:
sBoss = "en3_boss3_1";
sFollowers = "en3_follower3";
break;
case 2:
sBoss = "en3_boss3_2";
sFollowers = "en3_follower3_2";
break;
}
}
else
{
iRandom = Random(2)+1;
switch (iRandom)
{
case 1:
sBoss = "en3_boss4_1";
sFollowers = "en3_follower4";
break;
case 2:
sBoss = "en3_boss4_2";
sFollowers = "en3_follower4_2";
break;
}
}
lLoc = GetLocation(GetObjectByTag(sTag));
oCreature = CreateObject(OBJECT_TYPE_CREATURE,sBoss,lLoc);
sLocation = GetLocalString(GetObjectByTag(sTag),"Description");
SetToken(oPC,OBJECT_SELF,102,sLocation);
SetToken(oPC,OBJECT_SELF,101,GetName(oCreature));
SetToken(oPC,OBJECT_SELF,105,GetName(oCreature));
if (Random(3)==0)
GetArtifact(oCreature);
else
GetMagicItem(oCreature);
iCreatures = Random(4)+1;
iIndex = 1;
while (iIndex <= iCreatures)
{
CreateObject(OBJECT_TYPE_CREATURE,sFollowers,lLoc);
iIndex++;
}
SetPartyString(oPC,"QuestCreatureTag",sBoss);
SetPartyInt(oPC,"QuestType",1);
SetPartyString(oPC,"QuestTargetNPC",GetTag(OBJECT_SELF));
SetPartyString(oPC,"QuestTargetMob",GetTag(oCreature));
SetPartyInt(oPC,"QuestTargetMobDead",0);
iDifficulty = GetLocalInt(oPC,"QuestDifficulty");
iDifficulty = iDifficulty + 2;
SetPartyInt(oPC,"QuestDifficulty",iDifficulty);
sTokenLine = "I need to eliminate a " + GetToken(101) + " located " + GetToken(102) + ".";
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
RemoveJournalQuestEntry("jDelivery",oPC);
RemoveJournalQuestEntry("jCamp",oPC);
AddJournalQuestEntry("jCamp",1,oPC);
}