EN4_PRC8/_module/nss/rd_evilqstinc.nss

1352 lines
48 KiB
Plaintext
Raw Permalink Normal View History

#include "rd_questinc"
void InitiateEvilQuest(object oPC,object oGiver);
void GetNextStepEvil(object oPC,object oGiver);
void SetupEvilQuestStep(int iStepType, int iStep, object oPC,object oGiver);
string GetGoodCamp(object oPC);
string GetEvilQuestItemTag(object oPC);
object GetEvilQuestItem(object oPC, object oBoss, object oSender, string sTag = "");
object GetGoodPartyQuestMobs(object oPC, object oSender);
object GetGoodParty(int iLevel, string sTag);
string GetGoodCreatureTag(int iLevel);
object GetGoodQuestCreatures(object oPC, object oSender);
int GetEvilQuest1(object oPC);
int GetEvilQuest2(object oPC);
int GetEvilQuest3(object oPC);
int GetEvilItemQuest1(object oPC);
int GetEvilItemQuest2(object oPC);
int GetEvilItemQuest3(object oPC);
int GetEvilItemQuest4(object oPC);
int GetEvilItemQuest5(object oPC);
int GetEvilItemQuest6(object oPC);
void InitiateEvilQuest(object oPC,object oGiver)
{
int iRandom;
int iQuest;
int iQuestStepType;
SetToken(oPC,oGiver,110,"Thank you.");
SetPartyString(oPC,"QuestStep1Token111","REPEAT");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","REPEAT");
iRandom = Random(100);
//iRandom = 8;
if (iRandom < 50)
{
iQuest = Random(6)+1;
//This code makes dungeon camps a little more rare for the Evil side.
if (iQuest == 6)
iQuest = Random(4) + 5;
//iQuest=1;
SetPartyInt(oPC,"QuestSteps",1);
iQuestStepType = iQuest;
}
else if (iRandom < 80)
{
if (Random(2)==0)
iQuest = Random(2)+1;
else
iQuest = Random(3)+1;
switch (iQuest)
{
case 1: iQuestStepType = GetEvilQuest1(oPC); break;
case 2: iQuestStepType = GetEvilQuest2(oPC); break;
case 3: iQuestStepType = GetEvilQuest3(oPC); break;
}
}
else if (iRandom < 100)
{
iQuest = Random(6)+1;
iQuest = GetItemQuest(oPC,iQuest,6);
//iQuest=6;
switch (iQuest)
{
case 1: iQuestStepType = GetEvilItemQuest1(oPC); break;
case 2: iQuestStepType = GetEvilItemQuest2(oPC); break;
case 3: iQuestStepType = GetEvilItemQuest3(oPC); break;
case 4: iQuestStepType = GetEvilItemQuest4(oPC); break;
case 5: iQuestStepType = GetEvilItemQuest5(oPC); break;
case 6: iQuestStepType = GetEvilItemQuest6(oPC); break;
}
}
else
{
SetPartyInt(oPC,"QuestSteps",1);
iQuestStepType = 1;
}
SetPartyInt(oPC,"Quest",iQuest);
SetPartyInt(oPC,"QuestStep",1);
SetPartyString(oPC,"QuestGiver",GetTag(oGiver));
SetPartyString(oPC,"QuestZone",GetZone(oPC));
SetLocalInt(GetModule(),GetZone(oPC),1);
SetPartyInt(oPC,"QuestDone",0);
SetupEvilQuestStep(iQuestStepType,1,oPC,oGiver);
}
void GetNextStepEvil(object oPC,object oGiver)
{
int iStep;
int iSteps;
int iStepType;
iSteps = GetLocalInt(oPC,"QuestSteps");
iStep = GetLocalInt(oPC,"QuestStep");
//SendMessageToPC(GetFirstPC(),"iStep : " + IntToString(iStep));
//SendMessageToPC(GetFirstPC(),"iSteps : " + IntToString(iSteps));
if (iStep < iSteps)
{
iStep++;
iStepType = GetLocalInt(oPC,"QuestStep" + IntToString(iStep));
SetupEvilQuestStep(iStepType,iStep,oPC,oGiver);
} else {
SetPartyInt(oPC,"QuestDone",1);
}
}
void SetupEvilQuestStep(int iStepType, int iStep, object oPC,object oGiver)
{
int iQuestType;
int iItemUnknown;
string sCampTag;
string sAmbush;
string sCampDescription;
string sCampLocation;
string sGiver;
string sTag;
string sTokenLine;
string sAttackers;
string sQuestStep;
string sItemTag;
string sOldCamp;
string sToken111;
string sToken112;
string sToken113;
string sResponse;
string sOldItem;
string sEscort;
string sOldEscort;
string sReply;
object oBoss;
object oItem;
SetPartyInt(oPC,"QuestStep",iStep);
SetCustomToken(111, "");
SetCustomToken(112, "");
SetCustomToken(113, "");
sGiver = GetName(oGiver);
SetToken(oPC,oGiver,103,sGiver);
GetRandomThankyou();
sQuestStep = "QuestStep" + IntToString(iStep);
sCampTag = GetLocalString(oPC,sQuestStep + "Mob");
sOldCamp = GetLocalString(oPC,"QuestCampType");
sOldItem = GetLocalString(oPC,"QuestItemTag");
sItemTag = GetLocalString(oPC,sQuestStep + "Item");
sOldEscort = GetLocalString(oPC,"QuestEscort");
sEscort = GetLocalString(oPC,sQuestStep + "Escort");
sToken111 = GetLocalString(oPC,sQuestStep + "Token111");
sToken112 = GetLocalString(oPC,sQuestStep + "Token112");
sToken113 = GetLocalString(oPC,sQuestStep + "Token113");
iItemUnknown = GetLocalInt(oPC,sQuestStep + "ItemUnknown");
SetPartyInt(oPC,"QuestItemUnknown",iItemUnknown);
sResponse = GetLocalString(oPC,sQuestStep + "Response");
if (sResponse == "")
sResponse = "Thank you.";
SetToken(oPC,oGiver,110,sResponse);
sReply = GetLocalString(oPC,sQuestStep + "Reply");
if (sReply == "")
sReply = "What do you need?";
SetToken(oPC,oGiver,120,sReply);
if (sCampTag == "REPEAT")
sCampTag = sOldCamp;
if (sCampTag == "")
sCampTag = GetGoodCamp(oPC);
if (sItemTag == "REPEAT")
sItemTag = sOldItem;
if (iStepType == 1)
{
SetPartyInt(oPC,"QuestStep",iStep);
oBoss = GetQuestCamp(oPC,oGiver,sCampTag);
//GetPrisoners(oBoss);
SetPartyString(oPC,"QuestItemTag","");
sTokenLine = "The " + GetToken(101) + " have a solid presence in the area. They have become a thorn in our side, disrupting our agents from their normal business.";
sTokenLine = FixTokenLine(sTokenLine,sToken111);
SetToken(oPC,oGiver,111,sTokenLine);
sTokenLine = "I need you to take care of the " + GetToken(101) + ". They are located " + GetToken(102) + ".";
sTokenLine = FixTokenLine(sTokenLine,sToken112);
SetToken(oPC,oGiver,112,sTokenLine);
//sTokenLine = "I will reward you if you can eliminate them.";
sTokenLine = "";
sTokenLine = FixTokenLine(sTokenLine,sToken113);
SetToken(oPC,oGiver,113,sTokenLine);
}
if (iStepType == 2)
{
SetPartyInt(oPC,"QuestStep",iStep);
oBoss = GetQuestCamp(oPC,oGiver,sCampTag);
oItem = GetEvilQuestItem(oPC,oBoss,oGiver,sItemTag);
SetPartyInt(oPC,"QuestItemUnknown",1);
sTokenLine ="My agents send word that a camp of " + GetToken(101) + " have been spotted in the area. I need you to take care of the " + GetToken(101) + " and look for anything of importance they might have on them.";
sTokenLine = FixTokenLine(sTokenLine,sToken111);
SetToken(oPC,oGiver,111,sTokenLine);
sTokenLine = "The " + GetToken(101) + " are located " + GetToken(102) + ".";
sTokenLine = FixTokenLine(sTokenLine,sToken112);
SetToken(oPC,oGiver,112,sTokenLine);
sTokenLine ="We need them eliminated, but we also need to find out what they are up to so remember to look around for anything important they might have.";
sTokenLine = FixTokenLine(sTokenLine,sToken113);
SetToken(oPC,oGiver,113,sTokenLine);
//GetPrisoners(oBoss);
}
if (iStepType == 3)
{
SetPartyInt(oPC,"QuestStep",iStep);
oBoss = GetRandomQuestMobs(oPC,oGiver,0,sCampTag);
SetPartyString(oPC,"QuestItemTag","");
sTokenLine = "A " + GetToken(101) + " was spotted in the nearby area. We need to deal with the " + GetToken(101) + " before more arrive.";
sTokenLine = FixTokenLine(sTokenLine,sToken111);
SetToken(oPC,oGiver,111,sTokenLine);
sTokenLine = "I need you to take care of the problem, but beware, the " + GetToken(101) + " may not be alone. Go to " + GetToken(102) + " and look for the " + GetToken(101) + ".";
sTokenLine = FixTokenLine(sTokenLine,sToken112);
SetToken(oPC,oGiver,112,sTokenLine);
}
if (iStepType == 4)
{
SetPartyInt(oPC,"QuestStep",iStep);
oBoss = GetRandomQuestMobs(oPC,oGiver,0,sCampTag);
oItem = GetEvilQuestItem(oPC,oBoss,oGiver,sItemTag);
SetPartyInt(oPC,"QuestItemUnknown",1);
sTokenLine = "A " + GetToken(101) + " was spotted traveling through the area. My agents believe the " + GetToken(101) + " might carry something important.";
sTokenLine = FixTokenLine(sTokenLine,sToken111);
SetToken(oPC,oGiver,111,sTokenLine);
sTokenLine = "The " + GetToken(101) + " is not alone, so be careful. The group was spotted " + GetToken(102);
sTokenLine = FixTokenLine(sTokenLine,sToken112);
SetToken(oPC,oGiver,112,sTokenLine);
sTokenLine = "Kill them, and search their bodies for anything interesting.";
sTokenLine = FixTokenLine(sTokenLine,sToken113);
SetToken(oPC,oGiver,113,sTokenLine);
}
if (iStepType == 5)
{
SetPartyInt(oPC,"QuestStep",iStep);
oBoss = GetGoodPartyQuestMobs(oPC,oGiver);
SetPartyString(oPC,"QuestItemTag","");
if (Random(3)>0)
sTokenLine = "A party of good adventurers has been spotted in the area. Ordinarily, I'd let our minions deal with the adventurers, but right now we have some sensitive operations going on.";
else
sTokenLine = "An operation I was conducting was recently delayed by the interference of a party of good adventurers. The adventurers must pay for their insolence.";
sTokenLine = FixTokenLine(sTokenLine,sToken111);
SetToken(oPC,oGiver,111,sTokenLine);
sTokenLine = "I need you to take care of these adventurers. They were last spotted " + GetToken(102) + ".";
sTokenLine = FixTokenLine(sTokenLine,sToken112);
SetToken(oPC,oGiver,112,sTokenLine);
}
if (iStepType == 6)
{
SetPartyInt(oPC,"QuestStep",iStep);
oBoss = GetDungeonCamp(oPC,oGiver,sCampTag);
//GetPrisoners(oBoss);
SetPartyString(oPC,"QuestItemTag","");
sTokenLine = "The " + GetToken(101) + " are becoming more of a nuisance. They have invaded one of our strongholds in the area and now work to clear it of the evil we have patiently brewed there.";
sTokenLine = FixTokenLine(sTokenLine,sToken111);
SetToken(oPC,oGiver,111,sTokenLine);
sTokenLine = "The " + GetToken(101) + " can be found " + GetToken(102) + ".";
sTokenLine = FixTokenLine(sTokenLine,sToken112);
SetToken(oPC,oGiver,112,sTokenLine);
//sTokenLine = "";
//sTokenLine = FixTokenLine(sTokenLine,sToken113);
//SetToken(oPC,oGiver,113,sTokenLine);
}
if (iStepType == 7)
{
SetPartyInt(oPC,"QuestStep",iStep);
oBoss = GetDungeonCamp(oPC,oGiver,sCampTag);
oItem = GetEvilQuestItem(oPC,oBoss,oGiver,sItemTag);
SetPartyInt(oPC,"QuestItemUnknown",1);
sTokenLine ="The " + GetToken(101) + " have invaded a stronghold of ours and work to clear it of our minions.";
sTokenLine = FixTokenLine(sTokenLine,sToken111);
SetToken(oPC,oGiver,111,sTokenLine);
sTokenLine = "The " + GetToken(101) + " must be eliminated. They can be found " + GetToken(102) + ".";
sTokenLine = FixTokenLine(sTokenLine,sToken112);
SetToken(oPC,oGiver,112,sTokenLine);
sTokenLine ="Destroy them, and search their bodies for anything that might inform us of their plans.";
sTokenLine = FixTokenLine(sTokenLine,sToken113);
SetToken(oPC,oGiver,113,sTokenLine);
//GetPrisoners(oBoss);
}
if (iStepType == 8)
{
SetPartyInt(oPC,"QuestStep",iStep);
oBoss = GetGoodQuestCreatures(oPC,oGiver);
SetPartyString(oPC,"QuestItemTag","");
sTokenLine = "My agents spotted a " + GetToken(101) + " in the nearby lands. I need the " + GetToken(101) + " eliminated before any of my operations are interupted.";
sTokenLine = FixTokenLine(sTokenLine,sToken111);
SetToken(oPC,oGiver,111,sTokenLine);
sTokenLine = "The " + GetToken(101) + " might not be alone and was last spotted " + GetToken(102) + ".";
sTokenLine = FixTokenLine(sTokenLine,sToken112);
SetToken(oPC,oGiver,112,sTokenLine);
}
iQuestType = GetLocalInt(oPC,"QuestType");
RemoveJournalQuestEntry("jDelivery",oPC);
RemoveJournalQuestEntry("jCamp",oPC);
if (iQuestType == 1)
AddJournalQuestEntry("jCamp",1,oPC);
else
AddJournalQuestEntry("jDelivery",1,oPC);
}
string GetGoodCamp(object oPC)
{
int iRandom;
int iLevel;
string sTag;
iLevel = GetHitDice(oPC);
iLevel = ZoneLevel(GetArea(oPC),iLevel);
sTag = "elf";
if (iLevel < 3)
{
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: sTag = "halfling"; break;
case 2: sTag = "mdragon"; break;
case 3: sTag = "gnome"; break;
}
}
else if (iLevel < 5)
{
iRandom = Random(5)+1;
switch (iRandom)
{
case 1: sTag = "halfling"; break;
case 2: sTag = "elf"; break;
case 3: sTag = "dwarf"; break;
case 4: sTag = "militia"; break;
case 5: sTag = "gnome"; break;
}
}
else if (iLevel < 9)
{
iRandom = Random(6)+1;
switch (iRandom)
{
case 1: sTag = "halfling"; break;
case 2: sTag = "elf"; break;
case 3: sTag = "dwarf"; break;
case 4: sTag = "human"; break;
case 5: sTag = "dragon0"; break;
case 6: sTag = "gnome"; break;
}
}
else if (iLevel < 14)
{
iRandom = Random(4)+1;
switch (iRandom)
{
case 1: sTag = "angel"; break;
case 2: sTag = "elf"; break;
case 3: sTag = "dwarf"; break;
case 4: sTag = "human"; break;
case 5: sTag = "deva"; break;
case 6: sTag = "druid"; break;
}
}
else if (iLevel < 20)
{
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: sTag = "elf"; break;
case 2: sTag = "dwarf"; break;
case 3: sTag = "human"; break;
}
}
else
{
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: sTag = "angelic"; break;
case 2: sTag = "self"; break;
case 3: sTag = "dwarf"; break;
}
}
return sTag;
}
object GetEvilQuestItem(object oPC, object oBoss, object oSender, string sTag = "")
{
object oItem;
if (sTag == "")
sTag = GetEvilQuestItemTag(oPC);
oItem=CreateItemOnObject(sTag,oBoss);
SetPartyString(oPC,"QuestItemTag",sTag);
SetToken(oPC,oSender,104,GetName(oItem));
return oItem;
}
string GetEvilQuestItemTag(object oPC)
{
int iRandom;
int iDialogue;
string sTag;
sTag = "en4_document";
iDialogue = 1;
iRandom = Random(4)+1;
switch (iRandom)
{
case 1: sTag = "en4_document"; break;
case 2: sTag = "en3_letter"; break;
case 3: sTag = "en4_map"; break;
case 4: sTag = "en4_journal"; break;
}
//SetPartyInt(oPC,"QuestDialogue",iDialogue);
return sTag;
}
object GetGoodPartyQuestMobs(object oPC, object oSender)
{
object oCreature;
string sCampType;
string sCampDescription;
string sLocation;
string sTag;
string sZone;
int iDifficulty;
int iBase;
int iBaseStart;
int iBaseMax;
int iCampType;
int iLevel;
int iAdjustedLevel;
int iSpawn;
int iMaxSpots;
object oMod;
oMod = GetModule();
iBase = GetLocalInt(oMod,"iBase");
iBaseStart = GetLocalInt(oMod,"iBaseStart");
iBaseMax = GetLocalInt(oMod,"iBaseMax");
iCampType = GetLocalInt(oMod,"iCampType");
SetLocalInt(oMod,"iBase",0);
SetLocalInt(oMod,"iBaseStart",0);
SetLocalInt(oMod,"iBaseMax",0);
SetLocalInt(oMod,"iCampType",0);
SetLocalString(oMod,"sCD","");
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);
oCreature = GetGoodParty(iAdjustedLevel,sTag);
//oCreature = GetQuestCreatures(oPC,sCampType,iBase,iBaseStart,iBaseMax,iCampType);
sCampDescription = GetName(oCreature);
SetToken(oPC,oSender,101,"good adventurers");
sLocation = GetLocalString(GetObjectByTag(sTag),"Description");
SetToken(oPC,oSender,102,sLocation);
SetToken(oPC,oSender,105,"good adventurers");
SetLocalInt(oCreature,"iCampType",iCampType);
SetLocalString(oCreature,"sCampType",sCampType);
SetPartyInt(oPC,"QuestType",1);
SetPartyString(oPC,"QuestTargetNPC",GetTag(oSender));
//SetPartyString(oPC,"QuestCreatureTag",GetTag(oCreature));
SetPartyString(oPC,"QuestTargetMob",GetTag(oCreature));
SetPartyString(oPC,"QuestCampType",sCampType);
SetPartyInt(oPC,"QuestTargetMobDead",0);
iDifficulty = GetLocalInt(oPC,"QuestDifficulty");
iDifficulty++;
SetPartyInt(oPC,"QuestDifficulty",iDifficulty);
return oCreature;
}
object GetGoodParty(int iLevel, string sTag)
{
object oCreature;
location lLoc;
int iRandom;
int iIndex;
int iLevels;
int iNewLevel;
int iFighters;
int iClerics;
int iRogues;
int iWizards;
string sCreature;
oCreature = GetObjectByTag(sTag + "_S");
if (!(GetIsObjectValid(oCreature)))
{
lLoc = GetLocation(GetObjectByTag(sTag));
iFighters = Random(3)+1;
iWizards = Random(2);
iClerics = Random(2);
iRogues = Random(2);
if (Random(2) == 0)
iClerics++;
if (Random(4) == 0)
iRogues++;
if (Random(6) == 0)
iWizards++;
iIndex=0;
while (iIndex < iFighters)
{
sCreature = GetGoodFighter();
oCreature=CreateObject(OBJECT_TYPE_CREATURE,sCreature,lLoc,FALSE,sTag + "_S");
LevelPartyMember(oCreature,iLevel);
iIndex++;
}
iIndex=0;
while (iIndex < iClerics)
{
sCreature = GetGoodCleric();
oCreature=CreateObject(OBJECT_TYPE_CREATURE,sCreature,lLoc,FALSE,sTag + "_S");
LevelPartyMember(oCreature,iLevel);
iIndex++;
}
iIndex=0;
while (iIndex < iWizards)
{
sCreature = GetGoodWizard();
oCreature=CreateObject(OBJECT_TYPE_CREATURE,sCreature,lLoc,FALSE,sTag + "_S");
LevelPartyMember(oCreature,iLevel);
iIndex++;
}
iIndex=0;
while (iIndex < iRogues)
{
sCreature = GetGoodRogue();
oCreature=CreateObject(OBJECT_TYPE_CREATURE,sCreature,lLoc,FALSE,sTag + "_S");
LevelPartyMember(oCreature,iLevel);
iIndex++;
}
}
//Create heroic party member
if (Random(15)==0)
{
iRandom=Random(4)+1;
switch (iRandom)
{
case 1: sCreature = GetGoodWizard(); break;
case 2: sCreature = GetGoodRogue(); break;
case 3: sCreature = GetGoodCleric(); break;
case 4: sCreature = GetGoodFighter(); break;
}
oCreature=CreateObject(OBJECT_TYPE_CREATURE,sCreature,lLoc,FALSE,sTag + "_S");
if (Random(10)==0)
{
LevelPartyMember(oCreature,iLevel+4);
GetArtifact(oCreature);
} else {
LevelPartyMember(oCreature,iLevel+2);
GetMagicItem(oCreature);
}
}
return oCreature;
}
object GetGoodQuestCreatures(object oPC, object oSender)
{
object oCreature;
string sCampType;
string sCampDescription;
string sLocation;
string sTag;
string sZone;
string sCreature;
int iDifficulty;
int iBase;
int iBaseStart;
int iBaseMax;
int iCampType;
int iLevel;
int iAdjustedLevel;
int iSpawn;
int iMaxSpots;
int iRandom;
int iIndex;
object oMod;
oMod = GetModule();
iBase = GetLocalInt(oMod,"iBase");
iBaseStart = GetLocalInt(oMod,"iBaseStart");
iBaseMax = GetLocalInt(oMod,"iBaseMax");
iCampType = GetLocalInt(oMod,"iCampType");
SetLocalInt(oMod,"iBase",0);
SetLocalInt(oMod,"iBaseStart",0);
SetLocalInt(oMod,"iBaseMax",0);
SetLocalInt(oMod,"iCampType",0);
SetLocalString(oMod,"sCD","");
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);
sCreature = GetGoodCreatureTag(iAdjustedLevel);
iRandom = Random(3)+2;
iIndex=0;
while (iIndex < iRandom)
{
oCreature=CreateObject(OBJECT_TYPE_CREATURE,sCreature,GetLocation(GetObjectByTag(sTag)),FALSE,sTag + "_S");
iIndex++;
}
sCampDescription = GetName(oCreature);
SetToken(oPC,oSender,101,sCampDescription);
sLocation = GetLocalString(GetObjectByTag(sTag),"Description");
SetToken(oPC,oSender,102,sLocation);
SetToken(oPC,oSender,105,sCampDescription);
SetLocalInt(oCreature,"iCampType",iCampType);
SetLocalString(oCreature,"sCampType",sCampType);
SetPartyInt(oPC,"QuestType",1);
SetPartyString(oPC,"QuestTargetNPC",GetTag(oSender));
//SetPartyString(oPC,"QuestCreatureTag",GetTag(oCreature));
SetPartyString(oPC,"QuestTargetMob",GetTag(oCreature));
SetPartyString(oPC,"QuestCampType",sCampType);
SetPartyInt(oPC,"QuestTargetMobDead",0);
iDifficulty = GetLocalInt(oPC,"QuestDifficulty");
iDifficulty++;
SetPartyInt(oPC,"QuestDifficulty",iDifficulty);
return oCreature;
}
string GetGoodCreatureTag(int iLevel)
{
string sTag;
int iRandom;
/*
en4_gsolar1 34
en4_TArchon 14
en4_gsolar2 32
*/
sTag = "EN4_DRYAD";
if (iLevel < 4)
{
iRandom = Random(7)+1;
switch (iRandom)
{
case 1: sTag = "EN4_DRYAD"; break;
case 2: sTag = "en4_pixie"; break;
case 3: sTag = "EN4_PSEUDODRAGON"; break;
case 4: sTag = "en3_MYCONIDSPRO"; break;
case 5: sTag = "en3_MYCONID"; break;
case 6: sTag = "en3_BROWNIE"; break;
case 7: sTag = "EN4_DOGCOOSHEEM"; break;
}
}
else if (iLevel < 7)
{
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: sTag = "en3_blinkdog"; break;
case 2: sTag = "en3_satyr"; break;
case 3: sTag = "EN4_NYMPH"; break;
}
}
else if (iLevel < 11)
{
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: sTag = "EN4_GYNOSPHINX"; break;
case 2: sTag = "EN4_TREANT"; break;
case 3: sTag = "en4_movdeva"; break;
}
}
else if (iLevel < 15)
{
iRandom = Random(5)+1;
switch (iRandom)
{
case 1: sTag = "EN4_ANDROSPHINX"; break;
case 2: sTag = "en3_ELDERXORN"; break;
case 3: sTag = "en4_TArchon"; break;
case 4: sTag = "en4_mondeva"; break;
case 5: sTag = "en4_adeva"; break;
}
}
else if (iLevel < 20)
{
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: sTag = "en3_PLANETAR" + IntToString(Random(2)+1); break;
case 2: sTag = "en4_ctorm"; break;
case 3: sTag = "EN4_Baelnorn"; break;
}
}
else if (iLevel < 20)
sTag = "en4_goodwmaster";
else
sTag = "en4_gsolar" + IntToString(Random(2)+1);
return sTag;
}
int GetEvilQuest1(object oPC)
{
int iQuestStepType;
SetPartyInt(oPC,"QuestSteps",3);
iQuestStepType = 3;
SetPartyString(oPC,"QuestStep1Response","Excellent, but more I have more for you to do.");
SetPartyInt(oPC,"QuestStep2",3);
SetPartyString(oPC,"QuestStep2Mob","REPEAT");
SetPartyString(oPC,"QuestStep2Token111","More have been spotted in the area. I need you to deal with them while I investigate the situation further.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Response","Good. While you were taking care of the problem, I have found out something interesting.");
SetPartyString(oPC,"QuestStep2Reply","What did you find out?");
if (Random(4)>0)
{
SetPartyInt(oPC,"QuestStep3",1);
SetPartyString(oPC,"QuestStep3Mob","REPEAT");
SetPartyString(oPC,"QuestStep3Token111","I have located their camp of operations.");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
} else {
SetPartyInt(oPC,"QuestStep3",6);
SetPartyString(oPC,"QuestStep3Mob","REPEAT");
SetPartyString(oPC,"QuestStep3Token111","I have located their camp of operations. It seems they have invaded a stronghold of our and now must be eliminated.");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
}
return iQuestStepType;
}
int GetEvilQuest2(object oPC)
{
int iQuestStepType;
SetPartyInt(oPC,"QuestSteps",2);
iQuestStepType = 4;
SetPartyString(oPC,"QuestStep1Item","en4_letter1");
SetPartyString(oPC,"QuestStep1Response","Interesting.");
SetPartyString(oPC,"QuestStep1Reply","What does it say?.");
if (Random(4)>0)
{
SetPartyInt(oPC,"QuestStep2",1);
SetPartyString(oPC,"QuestStep2Mob","REPEAT");
SetPartyString(oPC,"QuestStep2Token111","It tells me the location of our enemy.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
} else {
SetPartyInt(oPC,"QuestStep2",6);
SetPartyString(oPC,"QuestStep2Mob","REPEAT");
SetPartyString(oPC,"QuestStep2Token111","It tells me the location of our enemy. It seems they have invaded a stronghold of our and now must be eliminated.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
}
return iQuestStepType;
}
int GetEvilQuest3(object oPC)
{
int iQuestStepType;
int iRandom;
SetPartyInt(oPC,"QuestSteps",2);
if (Random(2) == 0)
iQuestStepType = 5;
else
iQuestStepType = 8;
SetPartyString(oPC,"QuestStep1Response","Excellent. I do have a little more work for you, though.");
SetPartyString(oPC,"QuestStep1Reply","What do you need?.");
iRandom = Random(3);
if (iRandom == 0)
{
SetPartyInt(oPC,"QuestStep2",3);
SetPartyString(oPC,"QuestStep2Token111","REPEAT");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Response","Excellent. I do need you for a bit longer, though.");
}
else if (iRandom == 2) {
SetPartyInt(oPC,"QuestStep2",5);
SetPartyString(oPC,"QuestStep2Token111","REPEAT");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Response","Excellent. I do need you for a bit longer, though.");
}
else {
SetPartyInt(oPC,"QuestStep2",8);
SetPartyString(oPC,"QuestStep2Token111","REPEAT");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Response","Excellent. I do need you for a bit longer, though.");
}
if (Random(2) == 0)
{
SetPartyInt(oPC,"QuestSteps",3);
SetPartyInt(oPC,"QuestStep3",1);
SetPartyString(oPC,"QuestStep3Token111","It seems these minor distubances I've sent you on aren't so random. Some [101] have been spotted in the area and need to be eliminated.");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
SetPartyString(oPC,"QuestStep3Response","Excellent. I do need you for a bit longer, though.");
}
return iQuestStepType;
}
int GetEvilItemQuest1(object oPC)
{
int iQuestStepType;
SetPartyInt(oPC,"QuestSteps",3);
iQuestStepType = 4;
SetPartyString(oPC,"QuestStep1Token111","A [101] was spotted traveling through the area. My agents believe the [101] might carry something important.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","REPEAT");
SetPartyString(oPC,"QuestStep1Item","en3_scroll");
SetPartyString(oPC,"QuestStep1Response","Ah, this is very interesting.");
SetPartyString(oPC,"QuestStep1Reply","What is it?");
SetPartyInt(oPC,"QuestStep1ItemUnknown",1);
if (Random(2) == 0)
{
SetPartyInt(oPC,"QuestStep2",4);
SetPartyString(oPC,"QuestStep2Item","en3_scroll");
SetPartyString(oPC,"QuestStep2Token111","It is part of a scroll. This is just the sort of thing we need for our power to grow. I have a feeling we might find a piece of it in the hands of a [101] spotted in the area.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Response","Excellent, and I just discovered where the last piece is being kept.");
SetPartyString(oPC,"QuestStep2Reply","Where?");
if (Random(2) == 0)
{
SetPartyInt(oPC,"QuestStep3",4);
SetPartyString(oPC,"QuestStep3Item","en3_scroll");
SetPartyString(oPC,"QuestStep3Token111","It is nearby, but it is guarded by a [101].");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
} else {
SetPartyInt(oPC,"QuestStep3",2);
SetPartyString(oPC,"QuestStep3Item","en3_scroll");
SetPartyString(oPC,"QuestStep3Token111","It is nearby, but it is guarded by a camp of [101].");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
}
} else {
SetPartyInt(oPC,"QuestSteps",4);
SetPartyInt(oPC,"QuestStep2",5);
SetPartyString(oPC,"QuestStep2Item","en3_scroll");
SetPartyString(oPC,"QuestStep2Token111","I am not sure, but I believe it is a spell.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Response","Interesting, very interesting indeed.");
SetPartyString(oPC,"QuestStep2Reply","What is it?");
if (Random(2) == 0)
{
SetPartyInt(oPC,"QuestStep3",4);
SetPartyString(oPC,"QuestStep3Item","en3_scroll");
SetPartyString(oPC,"QuestStep3Token111","It is part of a scroll. This is just the sort of thing we need for our power to grow. I have a feeling I might know where you might find another piece of it. A [101] was spotted in the area acting very suspiciously.");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
SetPartyString(oPC,"QuestStep3Response","Excellent, and I just discovered where the last piece is being kept.");
SetPartyString(oPC,"QuestStep3Reply","Where?");
if (Random(2) == 0)
{
SetPartyInt(oPC,"QuestStep4",4);
SetPartyString(oPC,"QuestStep4Item","en3_scroll");
SetPartyString(oPC,"QuestStep4Token111","It is nearby, but it is guarded by a [101].");
SetPartyString(oPC,"QuestStep4Token112","REPEAT");
} else {
SetPartyInt(oPC,"QuestStep4",2);
SetPartyString(oPC,"QuestStep4Item","en3_scroll");
SetPartyString(oPC,"QuestStep4Token111","It is nearby, but it is guarded by a camp of [101].");
SetPartyString(oPC,"QuestStep4Token112","REPEAT");
}
} else {
SetPartyInt(oPC,"QuestStep3",2);
SetPartyString(oPC,"QuestStep3Item","en3_scroll");
SetPartyString(oPC,"QuestStep3Token111","It is part of a scroll. This is just the sort of thing we need for our power to grow. I have a feeling I might know where you might find another piece of it. A [101] was spotted in the area acting very suspiciously.");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
SetPartyString(oPC,"QuestStep3Response","Excellent, and I just discovered where the last piece is being kept.");
SetPartyString(oPC,"QuestStep3Reply","Where?");
if (Random(2) == 0)
{
SetPartyInt(oPC,"QuestStep4",2);
SetPartyString(oPC,"QuestStep4Item","en3_scroll");
SetPartyString(oPC,"QuestStep4Token111","It is nearby, but it is guarded by a camp of [101].");
SetPartyString(oPC,"QuestStep4Token112","REPEAT");
} else {
SetPartyInt(oPC,"QuestStep4",7);
SetPartyString(oPC,"QuestStep4Item","en3_scroll");
SetPartyString(oPC,"QuestStep4Token111","It is nearby, but it is guarded by a camp of [101].");
SetPartyString(oPC,"QuestStep4Token112","REPEAT");
}
}
}
//DebugQuest(oPC);
return iQuestStepType;
}
int GetEvilItemQuest2(object oPC)
{
int iQuestStepType;
SetPartyInt(oPC,"QuestSteps",2);
if (Random(2)==0)
{
iQuestStepType = 2;
SetPartyString(oPC,"QuestStep1Token111","My agents send word that a camp of [101] have been spotted in the area. I need you to take care of the [101] and look for anything of importance they might have on them.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","When you are done with them, search the bodies for anything out of the ordinary.");
SetPartyString(oPC,"QuestStep1Item","en3_book");
SetPartyString(oPC,"QuestStep1Response","Ah, this is very interesting.");
SetPartyString(oPC,"QuestStep1Reply","What is it?");
SetPartyInt(oPC,"QuestStep1ItemUnknown",1);
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep2",2);
SetPartyString(oPC,"QuestStep2Item","en3_papers2");
SetPartyString(oPC,"QuestStep2Token111","It is an ancient tome, but it is missing some important pages. There are some [101] in the area, perhaps they have the missing pages.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
} else {
SetPartyInt(oPC,"QuestStep2",4);
SetPartyString(oPC,"QuestStep2Item","en3_papers2");
SetPartyString(oPC,"QuestStep2Token111","It is an ancient tome, but it is missing some important pages. A [101] was recently spotted in the area, perhaps the [101] has the missing pages.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
}
} else {
iQuestStepType = 4;
SetPartyString(oPC,"QuestStep1Token111","A [101] was spotted traveling through the area. My agents believe the [101] might carry something important.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","When you are done with them, search the bodies for anything out of the ordinary.");
SetPartyString(oPC,"QuestStep1Item","en3_book");
SetPartyString(oPC,"QuestStep1Response","Ah, this is very interesting.");
SetPartyString(oPC,"QuestStep1Reply","What is it?");
SetPartyInt(oPC,"QuestStep1ItemUnknown",1);
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep2",2);
SetPartyString(oPC,"QuestStep2Item","en3_papers2");
SetPartyString(oPC,"QuestStep2Token111","It is an ancient tome, but it is missing some important pages. There are some [101] in the area, perhaps they have the missing pages.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
} else {
SetPartyInt(oPC,"QuestStep2",4);
SetPartyString(oPC,"QuestStep2Item","en3_papers2");
SetPartyString(oPC,"QuestStep2Token111","It is an ancient tome, but it is missing some important pages. A [101] was recently spotted in the area, perhaps the [101] has the missing pages.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
}
}
//DebugQuest(oPC);
return iQuestStepType;
}
int GetEvilItemQuest3(object oPC)
{
int iQuestStepType;
int iRandom;
string sItem;
string sToken;
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: sItem = "en3_evilamulet";
sToken = "Yes. The letter speaks of an amulet blessed with evil powers. Some [101] were spotted in the area and one of my agents noticed peculiar behavior from them.";
break;
case 2: sItem = "en3_glowrod";
sToken = "Yes. The letter speaks of a glowing rod with strange powers. Some [101] were spotted in the area and one of my agents noticed peculiar behavior from them.";
break;
case 3: sItem = "en4_silver";
sToken = "Yes. The letter speaks of the transfer of a bar of enchanted silver. Some [101] were spotted in the area and if they have gotten their hands on the silver they could become a force for good in the land.";
break;
}
SetPartyInt(oPC,"QuestSteps",2);
if (Random(2)==0)
{
iQuestStepType = 2;
SetPartyString(oPC,"QuestStep1Token111","My agents send word that a camp of [101] have been spotted in the area. I need you to take care of the [101] and look for anything of importance they might have on them.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","When you are done with them, search the bodies for anything out of the ordinary.");
SetPartyString(oPC,"QuestStep1Item","en4_letter2");
SetPartyString(oPC,"QuestStep1Response","Ah, this is very interesting.");
SetPartyString(oPC,"QuestStep1Reply","What is it?");
SetPartyInt(oPC,"QuestStep1ItemUnknown",1);
} else {
iQuestStepType = 4;
SetPartyString(oPC,"QuestStep1Token111","A [101] was spotted traveling through the area. My agents believe the [101] might carry something important.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","When you are done with them, search the bodies for anything out of the ordinary.");
SetPartyString(oPC,"QuestStep1Item","en4_letter2");
SetPartyString(oPC,"QuestStep1Response","Ah, this is very interesting.");
SetPartyString(oPC,"QuestStep1Reply","What is it?");
SetPartyInt(oPC,"QuestStep1ItemUnknown",1);
}
if (Random(2)==0)
{
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep2", 4);
SetPartyString(oPC,"QuestStep2Token111",sToken);
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Item",sItem);
} else {
SetPartyInt(oPC,"QuestStep2", 7);
SetPartyString(oPC,"QuestStep2Token111",sToken);
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Item",sItem);
}
} else {
SetPartyString(oPC,"QuestStep1Response","Hmmm...");
SetPartyInt(oPC,"QuestSteps",3);
SetPartyInt(oPC,"QuestStep2",5);
SetPartyString(oPC,"QuestStep2Item","REPEAT");
SetPartyString(oPC,"QuestStep2Token111","I am not sure, it is in a script not known to me. I must consult with others on this. In the meantime, there is a pesky group of adventurers I believe are looking for this document. Deal with them and return to me.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Response","Very good.");
SetPartyString(oPC,"QuestStep2Reply","Did you decypher the script?");
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep3", 4);
SetPartyString(oPC,"QuestStep3Token111",sToken);
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
SetPartyString(oPC,"QuestStep3Item",sItem);
} else {
SetPartyInt(oPC,"QuestStep3", 7);
SetPartyString(oPC,"QuestStep3Token111",sToken);
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
SetPartyString(oPC,"QuestStep3Item",sItem);
}
}
return iQuestStepType;
}
int GetEvilItemQuest4(object oPC)
{
int iQuestStepType;
SetPartyInt(oPC,"QuestSteps",3);
if (Random(2)==0)
{
iQuestStepType = 2;
SetPartyString(oPC,"QuestStep1Token111","I have just learned something that needs investigating. Some [101] were spotted in the area might have an item of interest on them.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","When you are done with them, search the bodies for anything out of the ordinary.");
SetPartyString(oPC,"QuestStep1Item","en4_qring1");
SetPartyString(oPC,"QuestStep1Response","A ring, eh? This is very odd. I need a little time to study it, but I do have something for you to do in the meantime.");
SetPartyString(oPC,"QuestStep1Reply","What's that?");
SetPartyInt(oPC,"QuestStep1ItemUnknown",1);
} else {
iQuestStepType = 4;
SetPartyString(oPC,"QuestStep1Token111","I have just learned something that needs investigating. A [101] was spotted in the area that might have an item of interest.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","When you are done with them, search the bodies for anything out of the ordinary.");
SetPartyString(oPC,"QuestStep1Item","en4_qring1");
SetPartyString(oPC,"QuestStep1Response","A ring, eh? This is very odd. I need a little time to study it, but I do have something for you to do in the meantime.");
SetPartyString(oPC,"QuestStep1Reply","What's that?");
SetPartyInt(oPC,"QuestStep1ItemUnknown",1);
}
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep2",1);
SetPartyString(oPC,"QuestStep2Token111","Some [101] were spotted in the area. I don't know if they have anthing to do with the ring, but we need them eliminated.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Token113","When you are done with them, return to me and perhaps I'll have learned more about this ring.");
SetPartyString(oPC,"QuestStep2Response","You've done well. I've been studying the ring in your absense and believe it to hold some power. Unfortunately, others seek the ring too. I need you to eliminate them so that I can study it further without any disturbances.");
SetPartyString(oPC,"QuestStep2Reply","What do you need?");
} else {
SetPartyInt(oPC,"QuestStep2",3);
SetPartyString(oPC,"QuestStep2Token111","A [101] and some of it's companions were spotted in the area. I don't know if they have anthing to do with the ring, but we need them eliminated.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Token113","When you are done with them, search the bodies for anything out of the ordinary.");
SetPartyString(oPC,"QuestStep2Response","You've done well. I've been studying the ring in your absense and believe it to hold some power. Unfortunately, others seek the ring too. I need you to eliminate them so that I can study it further without any disturbances.");
SetPartyString(oPC,"QuestStep2Reply","What do you need?");
}
SetPartyInt(oPC,"QuestStep3",5);
SetPartyString(oPC,"QuestStep3Token111","A party of adventurers have been searching for the ring.");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
SetPartyString(oPC,"QuestStep3Token113","When you are done with them, return to me and I will reward you.");
return iQuestStepType;
}
int GetEvilItemQuest5(object oPC)
{
int iQuestStepType;
int iMinLevel;
int iSteps;
int iRandom;
string sTag;
object oArea;
oArea = GetArea(oPC);
iMinLevel = GetLocalInt(oArea,"MinimumLevel");
sTag = "drow";
if (iMinLevel<7)
{
iRandom = Random(4)+1;
switch (iRandom)
{
case 1: sTag = "elf"; break;
case 2: sTag = "dwarf"; break;
case 3: sTag = "halfling"; break;
case 4: sTag = "human"; break;
}
}
else if (iMinLevel<20)
{
iRandom = Random(3)+1;
switch (iRandom)
{
case 1: sTag = "elf"; break;
case 2: sTag = "dwarf"; break;
case 3: sTag = "halfling"; break;
}
}
else
{
iRandom = Random(4)+1;
switch (iRandom)
{
case 1: sTag = "elf"; break;
case 2: sTag = "dwarf"; break;
case 3: sTag = "halfling"; break;
case 4: sTag = "angelic"; break;
}
}
SetLocalString(oPC,"QuestAttackers",sTag);
SetLocalInt(oPC,"QuestDifficulty",2);
iSteps = Random(4)+2;
SetPartyInt(oPC,"QuestSteps",iSteps);
if (Random(2)==0)
{
iQuestStepType = 1;
SetPartyString(oPC,"QuestStep1Mob",sTag);
SetPartyString(oPC,"QuestStep1Token111","The [101] have a solid presence in the area. They have become a thorn in our side, disrupting our agents from their normal business.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","I will reward you if you can eliminate them.");
SetPartyString(oPC,"QuestStep1Response","You've done a good job. Unfortunately, the problem is more serious than I first thought.");
SetPartyString(oPC,"QuestStep1Reply","How serious?");
} else {
iQuestStepType = 3;
SetPartyString(oPC,"QuestStep1Mob",sTag);
SetPartyString(oPC,"QuestStep1Token111","A [101] was seen spying on our operations. We cannot allow this to continue else word of our plans might leak back to the city.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","");
SetPartyString(oPC,"QuestStep1Response","You've done a good job. Unfortunately, the problem is more serious than I first thought.");
SetPartyString(oPC,"QuestStep1Reply","How serious?");
}
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep2",1);
SetPartyString(oPC,"QuestStep2Mob",sTag);
SetPartyString(oPC,"QuestStep2Token111","More of the [101] have been spotted in the area. We cannot allow them to gather in strong numbers else our grip on this land might be lost.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Token113","We need you to eliminate them.");
SetPartyString(oPC,"QuestStep2Response","You've done a good job. But there is more work to be done.");
SetPartyString(oPC,"QuestStep2Reply","What do you need?");
} else {
SetPartyInt(oPC,"QuestStep2",3);
SetPartyString(oPC,"QuestStep2Mob",sTag);
SetPartyString(oPC,"QuestStep2Token111","There are more of them. A [101] and some companions have been spotted in the area. We cannot allow them to gather in strong numbers else our grip on this land might be lost.");
SetPartyString(oPC,"QuestStep2Token112","REPEAT");
SetPartyString(oPC,"QuestStep2Token113","");
SetPartyString(oPC,"QuestStep2Response","You've done a good job. But there is more work to be done.");
SetPartyString(oPC,"QuestStep2Reply","What do you need?");
}
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep3",1);
SetPartyString(oPC,"QuestStep3Mob",sTag);
SetPartyString(oPC,"QuestStep3Token111","Their forces grow strong. More of the [101] have been spotted in the area.");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
SetPartyString(oPC,"QuestStep3Token113","We need you to eliminate them.");
SetPartyString(oPC,"QuestStep3Response","You've done a good job. But there is more work to be done.");
SetPartyString(oPC,"QuestStep3Reply","What do you need?");
} else {
SetPartyInt(oPC,"QuestStep3",3);
SetPartyString(oPC,"QuestStep3Mob",sTag);
SetPartyString(oPC,"QuestStep3Token111","Their forces grow strong. A [101] and some companions have been spotted in the area.");
SetPartyString(oPC,"QuestStep3Token112","REPEAT");
SetPartyString(oPC,"QuestStep3Token113","");
SetPartyString(oPC,"QuestStep3Response","You've done a good job. But there is more work to be done.");
SetPartyString(oPC,"QuestStep3Reply","What do you need?");
}
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep4",1);
SetPartyString(oPC,"QuestStep4Mob",sTag);
SetPartyString(oPC,"QuestStep4Token111","Their forces are growing even stronger. More of the [101] have been spotted in the area.");
SetPartyString(oPC,"QuestStep4Token112","REPEAT");
SetPartyString(oPC,"QuestStep4Token113","We need you to eliminate them.");
SetPartyString(oPC,"QuestStep4Response","You've done a good job. But there is more work to be done.");
SetPartyString(oPC,"QuestStep4Reply","What do you need?");
} else {
SetPartyInt(oPC,"QuestStep4",3);
SetPartyString(oPC,"QuestStep4Mob",sTag);
SetPartyString(oPC,"QuestStep4Token111","Their forces are growing even stronger. A [101] and some companions have been spotted in the area.");
SetPartyString(oPC,"QuestStep4Token112","REPEAT");
SetPartyString(oPC,"QuestStep4Token113","");
SetPartyString(oPC,"QuestStep4Response","You've done a good job. But there is more work to be done.");
SetPartyString(oPC,"QuestStep4Reply","What do you need?");
}
if (Random(2)==0)
{
SetPartyInt(oPC,"QuestStep5",1);
SetPartyString(oPC,"QuestStep5Mob",sTag);
SetPartyString(oPC,"QuestStep5Token111","They seem unending. More of the [101] have been spotted in the area.");
SetPartyString(oPC,"QuestStep5Token112","REPEAT");
SetPartyString(oPC,"QuestStep5Token113","We need you to eliminate them.");
SetPartyString(oPC,"QuestStep5Response","You've done a good job. But there is more work to be done.");
SetPartyString(oPC,"QuestStep5Reply","What do you need?");
} else {
SetPartyInt(oPC,"QuestStep5",3);
SetPartyString(oPC,"QuestStep5Mob",sTag);
SetPartyString(oPC,"QuestStep5Token111","They seem unending. A [101] and some companions have been spotted in the area.");
SetPartyString(oPC,"QuestStep5Token112","REPEAT");
SetPartyString(oPC,"QuestStep5Token113","");
SetPartyString(oPC,"QuestStep5Response","You've done a good job. But there is more work to be done.");
SetPartyString(oPC,"QuestStep5Reply","What do you need?");
}
return iQuestStepType;
}
int GetEvilItemQuest6(object oPC)
{
int iQuestStepType;
int iMinLevel;
int iSteps;
int iLevel;
string sCamp;
object oArea;
oArea = GetArea(oPC);
iLevel = GetHitDice(oPC);
iLevel = ZoneLevel(GetArea(oPC),iLevel);
if (iLevel<4)
sCamp = "mdragon";
else if (iLevel<7)
sCamp = "dragon0";
else if (iLevel<13)
sCamp = "angel";
else if (iLevel<17)
sCamp = "dragon1";
else if (iLevel<22)
sCamp = "dragon2";
else if (iLevel<29)
sCamp = "dragon3";
else
sCamp = "dragon4";
iQuestStepType = 1;
SetPartyString(oPC,"QuestStep1Mob",sCamp);
SetPartyInt(oPC,"QuestSteps",1);
if (sCamp == "angel")
SetPartyString(oPC,"QuestStep1Token111","Our operations are in peril. Angels have descended upon the land and are whiping out all of our work. I need you to eliminate them.");
else if (sCamp == "dragon0" || sCamp == "mdragon")
SetPartyString(oPC,"QuestStep1Token111","We have an infestation of minatures dragons that needs to be wiped out.");
else
SetPartyString(oPC,"QuestStep1Token111","A dragon has been spotted in the area. Ordinarily, I'd be thrilled, but in this case it is a good dragon. We can't have it disturbing our operations.");
SetPartyString(oPC,"QuestStep1Token112","REPEAT");
SetPartyString(oPC,"QuestStep1Token113","I will reward you if you can eliminate them.");
return iQuestStepType;
}