1015 lines
31 KiB
Plaintext
1015 lines
31 KiB
Plaintext
|
#include "rd_questinc"
|
||
|
#include "rd_advzones"
|
||
|
#include "prc_class_const"
|
||
|
|
||
|
void GetSewerKey(object oPC);
|
||
|
void GuildQuestType1(object oPC);
|
||
|
void GuildQuestType2(object oPC);
|
||
|
void GuildQuestType3(object oPC);
|
||
|
void GuildQuestType4(object oPC);
|
||
|
void GuildQuestType5(object oPC);
|
||
|
void GuildQuestType6(object oPC);
|
||
|
void GuildQuestType7(object oPC);
|
||
|
void GuildQuestType8(object oPC);
|
||
|
void GuildQuestType9(object oPC);
|
||
|
void GuildQuestType10(object oPC);
|
||
|
void GuildQuestType11(object oPC);
|
||
|
void GuildQuestType12(object oPC);
|
||
|
void GuildQuestType13(object oPC);
|
||
|
void GuildQuestType14(object oPC);
|
||
|
void GuildQuestType15(object oPC);
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oPC;
|
||
|
object oBoss;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
int iQuestType;
|
||
|
int iZones;
|
||
|
int iDifficulty;
|
||
|
int iRandom;
|
||
|
int iRandom2;
|
||
|
string sTokenLine;
|
||
|
string sCD;
|
||
|
|
||
|
oPC = GetPCSpeaker();
|
||
|
iLevel = GetHitDice(oPC);
|
||
|
iAdjustedLevel = GetAdjustedLevel(oPC);
|
||
|
|
||
|
SetPartyInt(oPC,"QuestStep",1);
|
||
|
SetPartyString(oPC,"QuestGiver",GetTag(OBJECT_SELF));
|
||
|
SetPartyInt(oPC,"Quest",1);
|
||
|
|
||
|
SetCustomToken(99, "Well, then, you did alright.");
|
||
|
|
||
|
SetCustomToken(111, "");
|
||
|
SetCustomToken(112, "");
|
||
|
SetCustomToken(113, "");
|
||
|
|
||
|
SetToken(oPC,OBJECT_SELF,103,GetName(OBJECT_SELF));
|
||
|
|
||
|
iRandom = Random(100);
|
||
|
|
||
|
if (iRandom < 5)
|
||
|
if (GetLocalInt(GetModule(),"AdventureZone") == 0)
|
||
|
GuildQuestType1(oPC); //AdventureZone - Kill
|
||
|
else
|
||
|
GuildQuestType6(oPC);
|
||
|
else if (iRandom < 10)
|
||
|
if (GetLocalInt(GetModule(),"AdventureZone") == 0)
|
||
|
GuildQuestType2(oPC); //AdventureZone - Retrieve
|
||
|
else
|
||
|
GuildQuestType11(oPC);
|
||
|
else if (iRandom < 13)
|
||
|
GuildQuestType3(oPC); //LandCamp - Kill
|
||
|
else if (iRandom < 15)
|
||
|
GuildQuestType4(oPC); //LandCamp - Kill and Retrieve
|
||
|
else if (iRandom < 20)
|
||
|
GuildQuestType5(oPC); //House - Kill
|
||
|
else if (iRandom < 25)
|
||
|
GuildQuestType6(oPC); //Sewers - Kill
|
||
|
else if (iRandom < 30)
|
||
|
GuildQuestType7(oPC); //Graveyard - Kill
|
||
|
else if (iRandom < 35)
|
||
|
GuildQuestType8(oPC); //Crypt - Kill
|
||
|
else if (iRandom < 40)
|
||
|
if (GetLocalInt(GetModule(),"AdventureZone") == 0)
|
||
|
GuildQuestType9(oPC); //AdventureZone - Dungeon - Retrieve
|
||
|
else
|
||
|
GuildQuestType14(oPC);
|
||
|
else if (iRandom < 55)
|
||
|
{
|
||
|
if (GetLocalInt(GetModule(),"Breakins") < 41 &&
|
||
|
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)
|
||
|
GuildQuestType10(oPC); //Burgle
|
||
|
else
|
||
|
GuildQuestType2(oPC);
|
||
|
}
|
||
|
else if (iRandom < 65)
|
||
|
GuildQuestType11(oPC); //House - Bandits
|
||
|
else if (iRandom < 70)
|
||
|
GuildQuestType12(oPC); //House - Assassins
|
||
|
else if (iRandom < 80)
|
||
|
GuildQuestType13(oPC); //Sewers - Bandits
|
||
|
else if (iRandom < 90)
|
||
|
GuildQuestType14(oPC); //Graveyard - Bandits
|
||
|
else if (iRandom < 95)
|
||
|
GuildQuestType15(oPC); //Sewers - Assassins
|
||
|
else
|
||
|
{
|
||
|
if (GetLocalInt(GetModule(),"Breakins") < 41)
|
||
|
GuildQuestType10(oPC); //Burgle
|
||
|
else
|
||
|
GuildQuestType9(oPC);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
void GetSewerKey(object oPC)
|
||
|
{
|
||
|
object oPartyMember = GetFirstFactionMember(oPC, TRUE);
|
||
|
while (GetIsObjectValid(oPartyMember) == TRUE)
|
||
|
{
|
||
|
if (!HasItem(oPartyMember,"hts2_key"))
|
||
|
CreateItemOnObject("hts2_key",oPartyMember);
|
||
|
oPartyMember = GetNextFactionMember(oPC, TRUE);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void GuildQuestType1(object oPC)
|
||
|
{
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
int iDifficulty;
|
||
|
int iRandom;
|
||
|
string sCD;
|
||
|
string sTokenLine;
|
||
|
object oBoss;
|
||
|
|
||
|
iLevel = GetHitDice(oPC);
|
||
|
iAdjustedLevel = GetAdjustedLevel(oPC);
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
SetPartyInt(oPC,"QuestAdventureZone",1);
|
||
|
SetPartyString(oPC,"AZRespawn",GetTag(OBJECT_SELF));
|
||
|
oBoss = SetupAdventureZones(iAdjustedLevel);
|
||
|
SetPartyString(oPC,"QuestStep1Mob",GetTag(oBoss));
|
||
|
SetPartyString(oPC,"QuestTargetMob",GetTag(oBoss));
|
||
|
SetPartyInt(oPC,"QuestType",1);
|
||
|
iDifficulty = AZDifficulty();
|
||
|
SetPartyInt(oPC,"QuestDifficulty",iDifficulty);
|
||
|
sCD = GetLocalString(oBoss,"sCD");
|
||
|
|
||
|
iRandom = Random(3)+1;
|
||
|
if (iRandom == 1)
|
||
|
{
|
||
|
sTokenLine = "We have operations that extend far from the city, and some of these operations are being interupted by the strange chaos effecting the lands.";
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "We need you to eliminate one of the sources of this chaos. You are to eliminate the " + GetName(oBoss) + " that is interfering with our operations.";
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
sTokenLine = "Gather what supplies you need and then talk to me and I send a guide with you to show you the location.";
|
||
|
SetToken(oPC,OBJECT_SELF,113,sTokenLine);
|
||
|
} else {
|
||
|
sTokenLine = "We often run afoul of the city guard, but in these chaotic times they tend to look away so long as we do our part to help out.";
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "Our help to help out is now your part. You are to eliminate the " + GetName(oBoss) + " that is causing some problems.";
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
sTokenLine = "Gather what supplies you need and then talk to me and I send a guide with you to show you the location.";
|
||
|
SetToken(oPC,OBJECT_SELF,113,sTokenLine);
|
||
|
}
|
||
|
|
||
|
SetToken(oPC,OBJECT_SELF,101,sCD);
|
||
|
SetToken(oPC,OBJECT_SELF,105,GetName(oBoss));
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
//AddJournalQuestEntry("jSpecial",1,oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
|
||
|
}
|
||
|
|
||
|
void GuildQuestType2(object oPC)
|
||
|
{
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
int iDifficulty;
|
||
|
int iRandom;
|
||
|
string sCD;
|
||
|
string sTokenLine;
|
||
|
string sItem;
|
||
|
string sItemTag;
|
||
|
object oBoss;
|
||
|
|
||
|
iLevel = GetHitDice(oPC);
|
||
|
iAdjustedLevel = GetAdjustedLevel(oPC);
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
SetPartyInt(oPC,"QuestAdventureZone",1);
|
||
|
SetPartyString(oPC,"AZRespawn",GetTag(OBJECT_SELF));
|
||
|
//oBoss = SetupAdventureZones(iAdjustedLevel);
|
||
|
|
||
|
iRandom = Random(8)+1;
|
||
|
switch(iRandom)
|
||
|
{
|
||
|
case 1: sItemTag = "tg_item1"; sItem = "a special diamond"; break;
|
||
|
case 2: sItemTag = "tg_item2"; sItem = "a special ruby"; break;
|
||
|
case 3: sItemTag = "tg_item3"; sItem = "a special emerald"; break;
|
||
|
case 4: sItemTag = "tg_item4"; sItem = "a special ring"; break;
|
||
|
case 5: sItemTag = "tg_item5"; sItem = "a special necklace"; break;
|
||
|
case 6: sItemTag = "tg_item6"; sItem = "an ancient relic"; break;
|
||
|
case 7: sItemTag = "tg_item7"; sItem = "an ancient amulet"; break;
|
||
|
case 8: sItemTag = "tg_item8"; sItem = "an ancient ring"; break;
|
||
|
}
|
||
|
|
||
|
oBoss = SetupAdventureZones(iAdjustedLevel,0,"",sItemTag);
|
||
|
SetPartyString(oPC,"QuestItemTag",sItemTag);
|
||
|
SetPartyInt(oPC,"QuestType",3);
|
||
|
iDifficulty = AZDifficulty();
|
||
|
SetPartyInt(oPC,"QuestDifficulty",iDifficulty);
|
||
|
sCD = GetLocalString(oBoss,"sCD");
|
||
|
|
||
|
object oItem = GetObjectByTag(sItemTag);
|
||
|
if (GetIsObjectValid(oItem))
|
||
|
SetToken(oPC,OBJECT_SELF,104,GetName(oItem));
|
||
|
else
|
||
|
SetToken(oPC,OBJECT_SELF,104,"item you requested");
|
||
|
|
||
|
sTokenLine = "We have word that " + sItem + " is located not too far from the city. We want you to go get it for us.";
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "Look, you are a thief, or at least trying to be one. This should be right up your alley. Go sneak around, pound on a few guards, make a distraction, whatever, just get what we need and get back here.";
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
sTokenLine = "Gather what supplies you need and then talk to me and I send a guide with you to show you the location.";
|
||
|
SetToken(oPC,OBJECT_SELF,113,sTokenLine);
|
||
|
|
||
|
SetToken(oPC,OBJECT_SELF,101,sCD);
|
||
|
SetToken(oPC,OBJECT_SELF,105,GetName(oBoss));
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jSpecial",1,oPC);
|
||
|
//AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType3(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
if (Random(5) == 0)
|
||
|
oBoss = GetDungeonCamp(oPC,OBJECT_SELF);
|
||
|
else
|
||
|
oBoss = GetQuestCamp(oPC,OBJECT_SELF);
|
||
|
|
||
|
sTokenLine = "Some " + GetToken(101) + " have been disrupting our operations in the surrounding lands. The " + GetToken(101) + " need to be dealt with before they interfere with our profits.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "The " + GetToken(101) + " are located " + GetToken(102) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType4(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
int iRandom;
|
||
|
string sItemTag;
|
||
|
string sItem;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
if (Random(5) == 0)
|
||
|
oBoss = GetDungeonCamp(oPC,OBJECT_SELF);
|
||
|
else
|
||
|
oBoss = GetQuestCamp(oPC,OBJECT_SELF);
|
||
|
|
||
|
|
||
|
iRandom = Random(8)+1;
|
||
|
switch(iRandom)
|
||
|
{
|
||
|
case 1: sItemTag = "tg_item1"; sItem = "a special diamond"; break;
|
||
|
case 2: sItemTag = "tg_item2"; sItem = "a special ruby"; break;
|
||
|
case 3: sItemTag = "tg_item3"; sItem = "a special emerald"; break;
|
||
|
case 4: sItemTag = "tg_item4"; sItem = "a special ring"; break;
|
||
|
case 5: sItemTag = "tg_item5"; sItem = "a special necklace"; break;
|
||
|
case 6: sItemTag = "tg_item6"; sItem = "an ancient relic"; break;
|
||
|
case 7: sItemTag = "tg_item7"; sItem = "an ancient amulet"; break;
|
||
|
case 8: sItemTag = "tg_item8"; sItem = "an ancient ring"; break;
|
||
|
}
|
||
|
|
||
|
SetPartyString(oPC,"QuestItemTag",sItemTag);
|
||
|
object oItem = CreateItemOnObject(sItemTag,oBoss);
|
||
|
SetToken(oPC,OBJECT_SELF,104,GetName(oItem));
|
||
|
|
||
|
sTokenLine = "Some " + GetToken(101) + " have aquired an item of interest, " + sItem + " that proves to be more valuable than the " + GetToken(101) + "' lives are worth.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "The " + GetToken(101) + " are located " + GetToken(102) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType5(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
object oHouse;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
int iCamp;
|
||
|
int iHCAdjust;
|
||
|
int iHouse;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
string sZone;
|
||
|
string sQuestCampType;
|
||
|
string sCampDescription;
|
||
|
string sLocation;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
iHCAdjust = 0;
|
||
|
if (CheckHardcore())
|
||
|
iHCAdjust = 5;
|
||
|
|
||
|
if (iLevel - iHCAdjust < 5)
|
||
|
iCamp = 1;
|
||
|
else if (iLevel - iHCAdjust < 10)
|
||
|
iCamp = Random(2)+1;
|
||
|
else if (iLevel - iHCAdjust < 15)
|
||
|
iCamp = Random(3)+1;
|
||
|
else
|
||
|
iCamp = Random(2)+2;
|
||
|
|
||
|
iHouse = Random(2)+1;
|
||
|
|
||
|
if (iHouse == 1 && GetLocalInt(GetModule(),"HTCAbandonedHouse1") == 1)
|
||
|
iHouse = 2;
|
||
|
if (iHouse == 2 && GetLocalInt(GetModule(),"HTCAbandonedHouse2") == 1)
|
||
|
iHouse = 1;
|
||
|
|
||
|
if (iHouse==1)
|
||
|
{
|
||
|
sZone = "H1";
|
||
|
sLocation = "in an abandoned building across from the arena in Hightop City";
|
||
|
SetLocalInt(GetModule(),"HTCAbandonedHouse1",1);
|
||
|
SetPartyInt(oPC,"HTCAbandonedHouse1",1);
|
||
|
} else {
|
||
|
sZone = "H2";
|
||
|
sLocation = "in an abandoned building in Upper Hightop City";
|
||
|
SetLocalInt(GetModule(),"HTCAbandonedHouse2",1);
|
||
|
SetPartyInt(oPC,"HTCAbandonedHouse2",1);
|
||
|
}
|
||
|
|
||
|
sQuestCampType="";
|
||
|
|
||
|
oHouse = GetObjectByTag(sZone + "_Q1_Boss");
|
||
|
if (GetIsObjectValid(oHouse))
|
||
|
{
|
||
|
ClearZoneMobs(GetArea(oHouse));
|
||
|
//SendMessageToPC(GetFirstPC(),GetTag(GetArea(oHouse)));
|
||
|
}
|
||
|
oBoss = SpawnQuestCamp(sZone,iCamp,iAdjustedLevel,1,sQuestCampType);
|
||
|
|
||
|
sQuestCampType = GetLocalString(oBoss,"CampType");
|
||
|
|
||
|
sCampDescription = GetLocalString(oBoss,"Description");
|
||
|
SetToken(oPC,OBJECT_SELF,101,sCampDescription);
|
||
|
SetToken(oPC,OBJECT_SELF,102,sLocation);
|
||
|
SetToken(oPC,OBJECT_SELF,105,GetName(oBoss));
|
||
|
|
||
|
SetPartyInt(oPC,"QuestType",1);
|
||
|
SetPartyInt(oPC,"QuestCamp",iCamp);
|
||
|
SetPartyString(oPC,"QuestCampzone",sZone);
|
||
|
SetPartyString(oPC,"QuestTargetNPC",GetTag(OBJECT_SELF));
|
||
|
SetPartyString(oPC,"QuestTargetMob",GetTag(oBoss));
|
||
|
SetPartyInt(oPC,"QuestTargetMobDead",0);
|
||
|
SetPartyString(oPC,"QuestCampType",sQuestCampType);
|
||
|
|
||
|
if (iCamp == 1)
|
||
|
SetPartyInt(oPC,"QuestDifficulty",1);
|
||
|
else
|
||
|
SetPartyInt(oPC,"QuestDifficulty",2);
|
||
|
|
||
|
if (Random(2) == 0)
|
||
|
{
|
||
|
sTokenLine = "Some " + GetToken(101) + " have been disrupting our operations in the city. The " + GetToken(101) + " need to be dealt with before they interfere with our profits.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
} else {
|
||
|
sTokenLine = "The city council has asked us to find some " + GetToken(101) + " that are holed up in the city. We have uncovered their base and now need you to deal with them.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
}
|
||
|
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "The " + GetToken(101) + " are located " + GetToken(102) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType6(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
oBoss = GetDungeonCamp(oPC,OBJECT_SELF,"",1);
|
||
|
|
||
|
GetSewerKey(oPC);
|
||
|
|
||
|
sTokenLine = "I have received word that some " + GetToken(101) + " have been spotted in the abandoned sewers. This area is of vital importance to us and must be clear for our use.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "I need you to go into the abandoned sewers and destroy these " + GetToken(101) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType7(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
oBoss = GetQuestCamp(oPC,OBJECT_SELF,"",2);
|
||
|
|
||
|
sTokenLine = "The council sends word of disturbances in the graveyard. Our agents believe the disturbances to be caused by some " + GetToken(101) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "We need you to go up to Upper Hightop City, enter the graveyard, and put to rest these " + GetToken(101) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType8(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
oBoss = GetDungeonCamp(oPC,OBJECT_SELF,"",3);
|
||
|
|
||
|
sTokenLine = "The council sends word of of a menace in the graveyard's crypt. I sent an agent to check into it and he spotted some " + GetToken(101) + ", but there were too many for him to handle.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "We need you to clear these " + GetToken(101) + " out of the crypt. Go to Upper Hightop City, into the graveyard, enter the crypt, and get rid of these " + GetToken(101) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType9(object oPC)
|
||
|
{
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
int iDifficulty;
|
||
|
int iRandom;
|
||
|
string sCD;
|
||
|
string sTokenLine;
|
||
|
string sItem;
|
||
|
string sItemTag;
|
||
|
object oBoss;
|
||
|
|
||
|
iLevel = GetHitDice(oPC);
|
||
|
iAdjustedLevel = GetAdjustedLevel(oPC);
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
SetPartyInt(oPC,"QuestAdventureZone",1);
|
||
|
SetPartyString(oPC,"AZRespawn",GetTag(OBJECT_SELF));
|
||
|
//oBoss = SetupAdventureZones(iAdjustedLevel);
|
||
|
|
||
|
iRandom = Random(8)+1;
|
||
|
switch(iRandom)
|
||
|
{
|
||
|
case 1: sItemTag = "tg_item1"; sItem = "a special diamond"; break;
|
||
|
case 2: sItemTag = "tg_item2"; sItem = "a special ruby"; break;
|
||
|
case 3: sItemTag = "tg_item3"; sItem = "a special emerald"; break;
|
||
|
case 4: sItemTag = "tg_item4"; sItem = "a special ring"; break;
|
||
|
case 5: sItemTag = "tg_item5"; sItem = "a special necklace"; break;
|
||
|
case 6: sItemTag = "tg_item6"; sItem = "an ancient relic"; break;
|
||
|
case 7: sItemTag = "tg_item7"; sItem = "an ancient amulet"; break;
|
||
|
case 8: sItemTag = "tg_item8"; sItem = "an ancient ring"; break;
|
||
|
}
|
||
|
|
||
|
oBoss = SetupAdventureZones(iAdjustedLevel,1,"",sItemTag);
|
||
|
SetPartyString(oPC,"QuestItemTag",sItemTag);
|
||
|
SetPartyInt(oPC,"QuestType",3);
|
||
|
iDifficulty = AZDifficulty();
|
||
|
SetPartyInt(oPC,"QuestDifficulty",iDifficulty);
|
||
|
sCD = GetLocalString(oBoss,"sCD");
|
||
|
|
||
|
object oItem = GetObjectByTag(sItemTag);
|
||
|
if (GetIsObjectValid(oItem))
|
||
|
SetToken(oPC,OBJECT_SELF,104,GetName(oItem));
|
||
|
else
|
||
|
SetToken(oPC,OBJECT_SELF,104,"item you requested");
|
||
|
|
||
|
sTokenLine = "We have word that " + sItem + " is located in a dungeon not too far from the city. We want you to go get it for us.";
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "Look, you are a thief, or at least trying to be one. This should be right up your alley. Go sneak around, pound on a few guards, make a distraction, whatever, just get what we need and get back here.";
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
sTokenLine = "Gather what supplies you need and then talk to me and I send a guide with you to show you the location.";
|
||
|
SetToken(oPC,OBJECT_SELF,113,sTokenLine);
|
||
|
|
||
|
SetToken(oPC,OBJECT_SELF,101,sCD);
|
||
|
SetToken(oPC,OBJECT_SELF,105,GetName(oBoss));
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jSpecial",1,oPC);
|
||
|
//AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType10(object oPC)
|
||
|
{
|
||
|
int iLevel;
|
||
|
int iGold;
|
||
|
int iHouses;
|
||
|
int iTotalHouses;
|
||
|
string sTokenLine;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
SetPartyInt(oPC,"QuestStep",1);
|
||
|
SetLocalString(oPC,"QuestGiver",GetTag(OBJECT_SELF));
|
||
|
SetLocalInt(oPC,"Quest",3);
|
||
|
SetCustomToken(111, "");
|
||
|
SetCustomToken(112, "");
|
||
|
SetCustomToken(113, "");
|
||
|
|
||
|
iLevel = GetHitDice(oPC);
|
||
|
iGold = iLevel * 25;
|
||
|
iHouses = Random(3)+2;
|
||
|
|
||
|
iTotalHouses = iHouses + GetLocalInt(oPC,"PCHouses");
|
||
|
|
||
|
SetPartyInt(oPC,"QuestGold",iGold);
|
||
|
SetPartyInt(oPC,"QuestHouses",iTotalHouses);
|
||
|
SetPartyInt(oPC,"QuestDifficulty",1);
|
||
|
|
||
|
sTokenLine = "Yes indeed, I have something for you. We need to fill our coffers a little bit, and to do that we need you plying your trade in the city.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "You need to break into at least " + IntToString(iHouses) + " houses and bring back at least " + IntToString(iGold) + " gold. Look, I don't care if you can't make a copper from your breakins, that's your fault for picking bad houses. Just bring us back the loot.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jSpecial",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType11(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
object oHouse;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
int iCamp;
|
||
|
int iHCAdjust;
|
||
|
int iHouse;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
string sZone;
|
||
|
string sQuestCampType;
|
||
|
string sCampDescription;
|
||
|
string sLocation;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
iHCAdjust = 0;
|
||
|
if (CheckHardcore())
|
||
|
iHCAdjust = 5;
|
||
|
|
||
|
if (iLevel - iHCAdjust < 5)
|
||
|
iCamp = 1;
|
||
|
else if (iLevel - iHCAdjust < 10)
|
||
|
iCamp = Random(2)+1;
|
||
|
else if (iLevel - iHCAdjust < 15)
|
||
|
iCamp = Random(3)+1;
|
||
|
else
|
||
|
iCamp = Random(2)+2;
|
||
|
|
||
|
iHouse = Random(2)+1;
|
||
|
|
||
|
if (iHouse == 1 && GetLocalInt(GetModule(),"HTCAbandonedHouse1") == 1)
|
||
|
iHouse = 2;
|
||
|
if (iHouse == 2 && GetLocalInt(GetModule(),"HTCAbandonedHouse2") == 1)
|
||
|
iHouse = 1;
|
||
|
|
||
|
if (iHouse==1)
|
||
|
{
|
||
|
sZone = "H1";
|
||
|
sLocation = "in an abandoned building across from the arena in Hightop City";
|
||
|
SetLocalInt(GetModule(),"HTCAbandonedHouse1",1);
|
||
|
SetPartyInt(oPC,"HTCAbandonedHouse1",1);
|
||
|
} else {
|
||
|
sZone = "H2";
|
||
|
sLocation = "in an abandoned building in Upper Hightop City";
|
||
|
SetLocalInt(GetModule(),"HTCAbandonedHouse2",1);
|
||
|
SetPartyInt(oPC,"HTCAbandonedHouse2",1);
|
||
|
}
|
||
|
|
||
|
sQuestCampType="";
|
||
|
|
||
|
if (iLevel < 12)
|
||
|
sQuestCampType="bandit";
|
||
|
else if (iLevel < 21)
|
||
|
sQuestCampType="merc";
|
||
|
else
|
||
|
sQuestCampType="drow";
|
||
|
|
||
|
oHouse = GetObjectByTag(sZone + "_Q1_Boss");
|
||
|
if (GetIsObjectValid(oHouse))
|
||
|
{
|
||
|
ClearZoneMobs(GetArea(oHouse));
|
||
|
//SendMessageToPC(GetFirstPC(),GetTag(GetArea(oHouse)));
|
||
|
}
|
||
|
oBoss = SpawnQuestCamp(sZone,iCamp,iAdjustedLevel,1,sQuestCampType);
|
||
|
|
||
|
sQuestCampType = GetLocalString(oBoss,"CampType");
|
||
|
|
||
|
sCampDescription = GetLocalString(oBoss,"Description");
|
||
|
SetToken(oPC,OBJECT_SELF,101,sCampDescription);
|
||
|
SetToken(oPC,OBJECT_SELF,102,sLocation);
|
||
|
SetToken(oPC,OBJECT_SELF,105,GetName(oBoss));
|
||
|
|
||
|
SetPartyInt(oPC,"QuestType",1);
|
||
|
SetPartyInt(oPC,"QuestCamp",iCamp);
|
||
|
SetPartyString(oPC,"QuestCampzone",sZone);
|
||
|
SetPartyString(oPC,"QuestTargetNPC",GetTag(OBJECT_SELF));
|
||
|
SetPartyString(oPC,"QuestTargetMob",GetTag(oBoss));
|
||
|
SetPartyInt(oPC,"QuestTargetMobDead",0);
|
||
|
SetPartyString(oPC,"QuestCampType",sQuestCampType);
|
||
|
|
||
|
if (iCamp == 1)
|
||
|
SetPartyInt(oPC,"QuestDifficulty",1);
|
||
|
else
|
||
|
SetPartyInt(oPC,"QuestDifficulty",2);
|
||
|
|
||
|
sTokenLine = "A group of " + GetToken(101) + " have been been operating in the city without guild permission. We have located their base and need you to go teach them a lesson. ";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "The " + GetToken(101) + " are located " + GetToken(102) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType12(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
object oHouse;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
int iCamp;
|
||
|
int iHCAdjust;
|
||
|
int iHouse;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
string sZone;
|
||
|
string sQuestCampType;
|
||
|
string sCampDescription;
|
||
|
string sLocation;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
iHCAdjust = 0;
|
||
|
if (CheckHardcore())
|
||
|
iHCAdjust = 5;
|
||
|
|
||
|
if (iLevel - iHCAdjust < 5)
|
||
|
iCamp = 1;
|
||
|
else if (iLevel - iHCAdjust < 10)
|
||
|
iCamp = Random(2)+1;
|
||
|
else if (iLevel - iHCAdjust < 15)
|
||
|
iCamp = Random(3)+1;
|
||
|
else
|
||
|
iCamp = Random(2)+2;
|
||
|
|
||
|
iHouse = Random(2)+1;
|
||
|
|
||
|
if (iHouse == 1 && GetLocalInt(GetModule(),"HTCAbandonedHouse1") == 1)
|
||
|
iHouse = 2;
|
||
|
if (iHouse == 2 && GetLocalInt(GetModule(),"HTCAbandonedHouse2") == 1)
|
||
|
iHouse = 1;
|
||
|
|
||
|
if (iHouse==1)
|
||
|
{
|
||
|
sZone = "H1";
|
||
|
sLocation = "in an abandoned building across from the arena in Hightop City";
|
||
|
SetLocalInt(GetModule(),"HTCAbandonedHouse1",1);
|
||
|
SetPartyInt(oPC,"HTCAbandonedHouse1",1);
|
||
|
} else {
|
||
|
sZone = "H2";
|
||
|
sLocation = "in an abandoned building in Upper Hightop City";
|
||
|
SetLocalInt(GetModule(),"HTCAbandonedHouse2",1);
|
||
|
SetPartyInt(oPC,"HTCAbandonedHouse2",1);
|
||
|
}
|
||
|
|
||
|
sQuestCampType="";
|
||
|
|
||
|
if (Random(2) == 0)
|
||
|
sQuestCampType="drow";
|
||
|
else
|
||
|
sQuestCampType="duergar";
|
||
|
|
||
|
oHouse = GetObjectByTag(sZone + "_Q1_Boss");
|
||
|
if (GetIsObjectValid(oHouse))
|
||
|
{
|
||
|
ClearZoneMobs(GetArea(oHouse));
|
||
|
//SendMessageToPC(GetFirstPC(),GetTag(GetArea(oHouse)));
|
||
|
}
|
||
|
oBoss = SpawnQuestCamp(sZone,iCamp,iAdjustedLevel,1,sQuestCampType);
|
||
|
|
||
|
sQuestCampType = GetLocalString(oBoss,"CampType");
|
||
|
|
||
|
sCampDescription = GetLocalString(oBoss,"Description");
|
||
|
SetToken(oPC,OBJECT_SELF,101,sCampDescription);
|
||
|
SetToken(oPC,OBJECT_SELF,102,sLocation);
|
||
|
SetToken(oPC,OBJECT_SELF,105,GetName(oBoss));
|
||
|
|
||
|
SetPartyInt(oPC,"QuestType",1);
|
||
|
SetPartyInt(oPC,"QuestCamp",iCamp);
|
||
|
SetPartyString(oPC,"QuestCampzone",sZone);
|
||
|
SetPartyString(oPC,"QuestTargetNPC",GetTag(OBJECT_SELF));
|
||
|
SetPartyString(oPC,"QuestTargetMob",GetTag(oBoss));
|
||
|
SetPartyInt(oPC,"QuestTargetMobDead",0);
|
||
|
SetPartyString(oPC,"QuestCampType",sQuestCampType);
|
||
|
|
||
|
if (iCamp == 1)
|
||
|
SetPartyInt(oPC,"QuestDifficulty",1);
|
||
|
else
|
||
|
SetPartyInt(oPC,"QuestDifficulty",2);
|
||
|
|
||
|
sTokenLine = "We have received reports of unsanctioned assassinations happening in the city. We believe some " + GetToken(101) + " are behind the assassinations. We cannot let the " + GetToken(101) + " get a firm foothold in the city, so we need you to deal with them. ";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "The " + GetToken(101) + " are located " + GetToken(102) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType13(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
string sQuestCampType;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
if (iLevel < 12)
|
||
|
sQuestCampType="bandit";
|
||
|
else if (iLevel < 21)
|
||
|
sQuestCampType="merc";
|
||
|
else
|
||
|
sQuestCampType="drow";
|
||
|
|
||
|
oBoss = GetDungeonCamp(oPC,OBJECT_SELF,sQuestCampType,1);
|
||
|
|
||
|
GetSewerKey(oPC);
|
||
|
|
||
|
sTokenLine = "There has been a recent rise in unsanctioned guild activity. It seems a rival gang is trying to take over some of our territory. This agent reports that a group of strange " + GetToken(101) + " have been spotted in the abandoned sewers.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "I need you to go into the abandoned sewers and destroy these " + GetToken(101) + ".";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType14(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
string sQuestCampType;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
if (iLevel < 12)
|
||
|
sQuestCampType="bandit";
|
||
|
else if (iLevel < 21)
|
||
|
sQuestCampType="merc";
|
||
|
else
|
||
|
sQuestCampType="drow";
|
||
|
|
||
|
oBoss = GetQuestCamp(oPC,OBJECT_SELF,sQuestCampType,2);
|
||
|
|
||
|
sTokenLine = "An upstart gang has been operating in the area. At first, it was only a minor annoyance, but they have been growing more bold. We have word that they are having a meeting in the graveyard and we want you to give them a lesson in crossing the Thieves Guild.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "We need you to go up to Upper Hightop City, enter the graveyard, and give these " + GetToken(101) + " their lesson.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|
||
|
|
||
|
void GuildQuestType15(object oPC)
|
||
|
{
|
||
|
object oBoss;
|
||
|
int iVariance;
|
||
|
int iLevel;
|
||
|
int iAdjustedLevel;
|
||
|
string sTokenLine;
|
||
|
string sTag;
|
||
|
string sQuestCampType;
|
||
|
|
||
|
SetPartyInt(oPC,"QuestSteps",1);
|
||
|
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);
|
||
|
|
||
|
if (iLevel < 12)
|
||
|
sQuestCampType="bandit";
|
||
|
else if (iLevel < 21)
|
||
|
sQuestCampType="merc";
|
||
|
else
|
||
|
sQuestCampType="drow";
|
||
|
|
||
|
oBoss = GetDungeonCamp(oPC,OBJECT_SELF,sQuestCampType,1);
|
||
|
|
||
|
GetSewerKey(oPC);
|
||
|
|
||
|
sTokenLine = "In recent weeks an assassin's guild has been operating in the city. My agents report that a group of " + GetToken(101) + " are behind the assassinations. Look, this is bad for business. A few robbed citizens and merchants can be overlooked, but when they keep turning up dead the council starts eyeing our activities.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,111,sTokenLine);
|
||
|
sTokenLine = "The assassins are using the abandoned sewers as their base of operations. We need you to go down there and deal with them.";
|
||
|
sTokenLine = FixTokenLine(sTokenLine,"REPEAT");
|
||
|
SetToken(oPC,OBJECT_SELF,112,sTokenLine);
|
||
|
|
||
|
RemoveJournalQuestEntry("jDelivery",oPC);
|
||
|
RemoveJournalQuestEntry("jCamp",oPC);
|
||
|
AddJournalQuestEntry("jCamp",1,oPC);
|
||
|
}
|