Initial Commit
Initial Commit [v1.32PRC8]
This commit is contained in:
578
_module/nss/rd_advzones.nss
Normal file
578
_module/nss/rd_advzones.nss
Normal file
@@ -0,0 +1,578 @@
|
||||
#include "rd_spawn"
|
||||
|
||||
object SetupAdventureZones(int iLevel, int iAdventureType = 0, string sSpawn = "", string sItem = "");
|
||||
void ClearAdventureZones();
|
||||
int GetHasAdvZone(int iArea, int iZones,string sPrefix);
|
||||
object PopulateArea(string sArea,string sCampType,int iSpawnType, int iLevel, int iBase,int iBaseStart,int iBaseMax,int iCampType, int iBoss = TRUE,int iWander = FALSE);
|
||||
void PopArea(string sArea,string sCampType,int iSpawnType, int iLevel, int iBase,int iBaseStart,int iBaseMax,int iCampType, int iBoss = TRUE,int iWander = FALSE);
|
||||
void ClearArea(string sArea);
|
||||
void RemoveLootFromAdvArea(object oArea);
|
||||
void RemoveLootFromRemains(object oContainer);
|
||||
int AZDifficulty();
|
||||
void ZoneToArea(object oPC,int iArea);
|
||||
|
||||
object SetupAdventureZones(int iLevel, int iAdventureType = 0, string sSpawn = "", string sItem = "")
|
||||
{
|
||||
int iLand;
|
||||
int iLE;
|
||||
int iLair;
|
||||
int iZones;
|
||||
int iIndex;
|
||||
int iIndexCheck;
|
||||
int iArea;
|
||||
int iFlag;
|
||||
int iBase;
|
||||
int iBaseStart;
|
||||
int iBaseMax;
|
||||
int iCampType;
|
||||
int iAreas;
|
||||
int iDungeonLair;
|
||||
int iDungeon;
|
||||
int iCampSize;
|
||||
int iBoss;
|
||||
string sTreasure;
|
||||
string sCampType;
|
||||
string sArea;
|
||||
string sAreas;
|
||||
string sCD;
|
||||
object oChest;
|
||||
object oBoss;
|
||||
object oMod;
|
||||
|
||||
//SendMessageToPC(GetFirstPC(),"Level=" + IntToString(iLevel));
|
||||
|
||||
iLand = 10;
|
||||
iLE = 2;
|
||||
iLair = 2;
|
||||
iDungeonLair = 2;
|
||||
iDungeon = 16;
|
||||
|
||||
if (iAdventureType == 0)
|
||||
iZones = Random(4)+1;
|
||||
else
|
||||
iZones = Random(2);
|
||||
|
||||
if (iAdventureType == 1)
|
||||
DelayCommand(0.1f,SetCreatureTags(iLevel,1));
|
||||
|
||||
//iZones = 0;
|
||||
|
||||
ClearAdventureZones();
|
||||
|
||||
SetLocalInt(GetModule(),"AdventureZone",1);
|
||||
SetLocalInt(GetModule(),"AdvZones",iZones + 2);
|
||||
|
||||
if (iAdventureType == 0)
|
||||
SetupCampTypes(iLevel,1,1,0);
|
||||
else
|
||||
SetupCampTypes(iLevel,0,1,0);
|
||||
|
||||
if (sSpawn == "" || iAdventureType > 0)
|
||||
sCampType = GetCampType();
|
||||
else
|
||||
sCampType = GetSpecificCampType(sSpawn);
|
||||
|
||||
oMod = GetModule();
|
||||
iBase = GetLocalInt(oMod,"iBase");
|
||||
iBaseStart = GetLocalInt(oMod,"iBaseStart");
|
||||
iBaseMax = GetLocalInt(oMod,"iBaseMax");
|
||||
iCampType = GetLocalInt(oMod,"iCampType");
|
||||
sCD = GetLocalString(oMod,"sCD");
|
||||
SetLocalInt(oMod,"iBase",0);
|
||||
SetLocalInt(oMod,"iBaseStart",0);
|
||||
SetLocalInt(oMod,"iBaseMax",0);
|
||||
SetLocalInt(oMod,"iCampType",0);
|
||||
|
||||
iIndex = 1;
|
||||
iIndexCheck = 1;
|
||||
while (iIndex <= iZones)
|
||||
{
|
||||
iArea = Random(iLand)+1;
|
||||
//iArea=1;
|
||||
iFlag = GetHasAdvZone(iArea,iIndex,"Land");
|
||||
if (iFlag == FALSE)
|
||||
{
|
||||
sArea = "Land" + IntToString(iArea);
|
||||
//PopulateArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType);
|
||||
DelayCommand(0.1f,PopArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType));
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),sArea);
|
||||
iIndexCheck = 0;
|
||||
iIndex++;
|
||||
}
|
||||
if (iFlag == TRUE && iIndexCheck > 12)
|
||||
{
|
||||
//SendMessageToPC(GetFirstPC(),"ForceNewArea");
|
||||
iArea = 1;
|
||||
while (GetHasAdvZone(iArea,iIndex,"Land") == TRUE)
|
||||
iArea++;
|
||||
sArea = "Land" + IntToString(iArea);
|
||||
//PopulateArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType);
|
||||
DelayCommand(0.1f,PopArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType));
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),sArea);
|
||||
iIndexCheck = 0;
|
||||
iIndex++;
|
||||
}
|
||||
iIndexCheck++;
|
||||
}
|
||||
|
||||
//GetLocalString(GetModule(),"AZArea" + IntToString(iIndex)
|
||||
|
||||
if (iAdventureType == 0)
|
||||
{
|
||||
iArea = Random(iLE)+1;
|
||||
sArea = "LE" + IntToString(iArea);
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),sArea);
|
||||
//PopulateArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType);
|
||||
DelayCommand(0.1f,PopArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType,FALSE));
|
||||
|
||||
iIndex++;
|
||||
iArea = Random(iLair)+1;
|
||||
sArea = "Lair" + IntToString(iArea);
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),sArea);
|
||||
oBoss=PopulateArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType);
|
||||
SetLocalString(oBoss,"sCD",sCD);
|
||||
sTreasure = "Lair" + IntToString(iArea) + "_Treasure";
|
||||
oChest = GetObjectByTag(sTreasure);
|
||||
SetLocalInt(oChest,"EN4_DoOnce",0);
|
||||
if (sItem != "")
|
||||
CreateItemOnObject(sItem,oChest);
|
||||
if (!GetIsObjectValid(oChest))
|
||||
{
|
||||
WriteTimestampedLogEntry("ERROR: Could not find lair chest : " + sTreasure);
|
||||
if (sItem != "")
|
||||
CreateItemOnObject(sItem,oBoss);
|
||||
}
|
||||
}
|
||||
|
||||
if (iAdventureType == 1)
|
||||
{
|
||||
iArea = Random(iLE)+1;
|
||||
sArea = "LE" + IntToString(iArea);
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),sArea);
|
||||
//PopulateArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType);
|
||||
DelayCommand(0.1f,PopArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType,TRUE));
|
||||
iIndex++;
|
||||
|
||||
//Get Dungeon Areas
|
||||
iZones = Random(3)+2+iIndex;
|
||||
//iZones = 2+iIndex;
|
||||
iCampSize = Random(2)+1;
|
||||
sCampType = "";
|
||||
//iIndex = 1;
|
||||
iIndexCheck = 1;
|
||||
while (iIndex <= iZones)
|
||||
{
|
||||
|
||||
if (sCampType == "")
|
||||
{
|
||||
if (iIndex < iZones-iCampSize)
|
||||
sCampType = GetCampType();
|
||||
else
|
||||
{
|
||||
SetupCampTypes(iLevel,1,1,0);
|
||||
if (sSpawn == "")
|
||||
sCampType = GetCampType();
|
||||
else
|
||||
sCampType = GetSpecificCampType(sSpawn);
|
||||
}
|
||||
|
||||
iBase = GetLocalInt(oMod,"iBase");
|
||||
iBaseStart = GetLocalInt(oMod,"iBaseStart");
|
||||
iBaseMax = GetLocalInt(oMod,"iBaseMax");
|
||||
iCampType = GetLocalInt(oMod,"iCampType");
|
||||
sCD = GetLocalString(oMod,"sCD");
|
||||
SetLocalInt(oMod,"iBase",0);
|
||||
SetLocalInt(oMod,"iBaseStart",0);
|
||||
SetLocalInt(oMod,"iBaseMax",0);
|
||||
SetLocalInt(oMod,"iCampType",0);
|
||||
}
|
||||
|
||||
if (Random(2)==0)
|
||||
iBoss = TRUE;
|
||||
else
|
||||
iBoss = FALSE;
|
||||
|
||||
if (iIndex >= iZones-iCampSize)
|
||||
iBoss = FALSE;
|
||||
|
||||
if (iIndex == iZones-iCampSize-1 && sCampType != sSpawn)
|
||||
iBoss = TRUE;
|
||||
|
||||
iArea = Random(iDungeon)+1;
|
||||
//iArea=15;
|
||||
iFlag = GetHasAdvZone(iArea,iIndex,"DNG");
|
||||
if (iFlag == FALSE)
|
||||
{
|
||||
sArea = "DNG" + IntToString(iArea);
|
||||
//PopulateArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType);
|
||||
DelayCommand(0.1f,PopArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType,iBoss,TRUE));
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),sArea);
|
||||
if (iBoss == TRUE)
|
||||
sCampType = "";
|
||||
iIndexCheck = 0;
|
||||
iIndex++;
|
||||
}
|
||||
if (iFlag == TRUE && iIndexCheck > 12)
|
||||
{
|
||||
//SendMessageToPC(GetFirstPC(),"ForceNewArea");
|
||||
iArea = 1;
|
||||
while (GetHasAdvZone(iArea,iIndex,"DNG") == TRUE)
|
||||
iArea++;
|
||||
sArea = "DNG" + IntToString(iArea);
|
||||
//PopulateArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType);
|
||||
DelayCommand(0.1f,PopArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType,iBoss,TRUE));
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),sArea);
|
||||
if (iBoss == TRUE)
|
||||
sCampType = "";
|
||||
iIndexCheck = 0;
|
||||
iIndex++;
|
||||
}
|
||||
iIndexCheck++;
|
||||
}
|
||||
|
||||
//Get Dungeon Lair
|
||||
//iIndex++;
|
||||
iArea = Random(iDungeonLair)+1;
|
||||
//iArea = 2;
|
||||
sArea = "DL" + IntToString(iArea);
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),sArea);
|
||||
oBoss=PopulateArea(sArea,sCampType,0,iLevel,iBase,iBaseStart,iBaseMax,iCampType);
|
||||
SetLocalString(oBoss,"sCD",sCD);
|
||||
sTreasure = "DL" + IntToString(iArea) + "_Treasure";
|
||||
oChest = GetObjectByTag(sTreasure);
|
||||
SetLocalInt(oChest,"EN4_DoOnce",0);
|
||||
if (sItem != "")
|
||||
CreateItemOnObject(sItem,oChest);
|
||||
if (!GetIsObjectValid(oChest))
|
||||
{
|
||||
WriteTimestampedLogEntry("ERROR: Could not find lair chest : " + sTreasure);
|
||||
if (sItem != "")
|
||||
CreateItemOnObject(sItem,oBoss);
|
||||
}
|
||||
}
|
||||
|
||||
iAreas = iIndex;
|
||||
iIndex = 1;
|
||||
while (iIndex <= iAreas)
|
||||
{
|
||||
if (iIndex > 1)
|
||||
sAreas=sAreas + " - ";
|
||||
sAreas = sAreas + GetLocalString(GetModule(),"AZArea" + IntToString(iIndex));
|
||||
iIndex ++;
|
||||
}
|
||||
|
||||
WriteTimestampedLogEntry("Random Area Generated: " + sAreas);
|
||||
|
||||
return oBoss;
|
||||
}
|
||||
|
||||
|
||||
int GetHasAdvZone(int iArea, int iZones,string sPrefix)
|
||||
{
|
||||
int iResult;
|
||||
int iIndex;
|
||||
|
||||
iResult = FALSE;
|
||||
|
||||
iIndex = 1;
|
||||
while (iIndex <= iZones)
|
||||
{
|
||||
//SendMessageToPC(GetFirstPC(),"Compare1 : Land" + IntToString(iArea));
|
||||
//SendMessageToPC(GetFirstPC(),"Compare2 : " + GetLocalString(GetModule(),"AZArea" + IntToString(iIndex)));
|
||||
if (sPrefix + IntToString(iArea) == GetLocalString(GetModule(),"AZArea" + IntToString(iIndex)))
|
||||
iResult = TRUE;
|
||||
iIndex++;
|
||||
}
|
||||
return iResult;
|
||||
}
|
||||
|
||||
void ClearAdventureZones()
|
||||
{
|
||||
int iIndex;
|
||||
int iZones;
|
||||
|
||||
iZones = GetLocalInt(GetModule(),"AdvZones");
|
||||
|
||||
iIndex = 1;
|
||||
while (iIndex <= iZones)
|
||||
{
|
||||
SetLocalString(GetModule(),"AZArea" + IntToString(iIndex),"");
|
||||
iIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
void ZoneToArea(object oPC,int iArea)
|
||||
{
|
||||
int iOldArea;
|
||||
string sZone;
|
||||
string sTagMod;
|
||||
object oEnter;
|
||||
location lLoc;
|
||||
|
||||
iOldArea = GetLocalInt(oPC,"AZCurrentArea");
|
||||
if (iOldArea < iArea)
|
||||
sTagMod = "_Enter";
|
||||
else
|
||||
sTagMod = "_Exit";
|
||||
|
||||
SetLocalInt(oPC,"AZCurrentArea",iArea);
|
||||
|
||||
if (iArea>0)
|
||||
{
|
||||
sZone = GetLocalString(GetModule(),"AZArea" + IntToString(iArea));
|
||||
sZone = sZone + sTagMod;
|
||||
} else {
|
||||
sZone = GetLocalString(oPC,"AZRespawn");
|
||||
}
|
||||
|
||||
oEnter = GetObjectByTag(sZone);
|
||||
if (GetIsObjectValid(oEnter))
|
||||
{
|
||||
lLoc = GetLocation(oEnter);
|
||||
AssignCommand(oPC,JumpToLocation(lLoc));
|
||||
} else {
|
||||
SendMessageToPC(oPC,"ERROR: Cannot Find Zone Waypoint " + sZone + ".");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void PopArea(string sArea,string sCampType,int iSpawnType, int iLevel, int iBase,int iBaseStart,int iBaseMax,int iCampType, int iBoss = TRUE,int iWander = FALSE)
|
||||
{
|
||||
PopulateArea(sArea,sCampType,iSpawnType,iLevel,iBase,iBaseStart,iBaseMax,iCampType,iBoss,iWander);
|
||||
}
|
||||
|
||||
object PopulateArea(string sArea,string sCampType,int iSpawnType, int iLevel, int iBase,int iBaseStart,int iBaseMax,int iCampType, int iBoss = TRUE,int iWander = FALSE)
|
||||
{
|
||||
int iIndex;
|
||||
int iType;
|
||||
int iRandom;
|
||||
int iHardCore;
|
||||
int iSpawn;
|
||||
int iSpawnNumber;
|
||||
string sWP;
|
||||
object oWP;
|
||||
object oCreature;
|
||||
|
||||
ClearArea(sArea);
|
||||
iHardCore = CheckHardcore();
|
||||
|
||||
iIndex = 1;
|
||||
sWP = sArea + "_" + IntToString(iIndex);
|
||||
oWP = GetObjectByTag(sWP);
|
||||
|
||||
while (GetIsObjectValid(oWP))
|
||||
{
|
||||
//oCreature = GetCampMob(iSpawnType,sWP,sCampType,iLevel,iBaseStart,iBase,iBaseMax,iCampType);
|
||||
if (iSpawnType > 0)
|
||||
iType = iSpawnType;
|
||||
else {
|
||||
iRandom = Random(10);
|
||||
if (iRandom < 6)
|
||||
iType = 1;
|
||||
else if (iRandom < 9)
|
||||
iType = 2;
|
||||
else
|
||||
iType = 3;
|
||||
}
|
||||
iSpawn = TRUE;
|
||||
if (iHardCore)
|
||||
{
|
||||
if (iLevel < 5)
|
||||
iRandom = Random(3);
|
||||
else if (iLevel < 10)
|
||||
iRandom = Random(4);
|
||||
else if (iLevel < 15)
|
||||
iRandom = Random(5);
|
||||
if (iRandom == 0)
|
||||
iSpawn = FALSE;
|
||||
}
|
||||
|
||||
if (Random(12)==0 && iWander == TRUE)
|
||||
{
|
||||
iSpawn = FALSE;
|
||||
DelayCommand(1.0f,SpawnMob(sWP));
|
||||
}
|
||||
|
||||
if (iSpawn)
|
||||
{
|
||||
iSpawnNumber = 1;
|
||||
if (iLevel>10 && iLevel < 20 && iHardCore == FALSE)
|
||||
{
|
||||
if (Random(4) == 0)
|
||||
iSpawnNumber = 2;
|
||||
}
|
||||
if (iLevel>19 && iHardCore == FALSE)
|
||||
{
|
||||
iSpawnNumber = Random(3)+1;
|
||||
if (iType == 3 && iSpawnNumber == 3)
|
||||
iSpawnNumber = 2;
|
||||
}
|
||||
if (iLevel>19 && iHardCore == TRUE)
|
||||
{
|
||||
if (Random(4) == 0)
|
||||
iSpawnNumber = 2;
|
||||
}
|
||||
|
||||
DelayCommand(0.2f,SpawnCampMob(iType,sWP,sCampType,iLevel,iBaseStart,iBase,iBaseMax,iCampType));
|
||||
if (iSpawnNumber > 1)
|
||||
DelayCommand(0.2f,SpawnCampMob(iType,sWP,sCampType,iLevel,iBaseStart,iBase,iBaseMax,iCampType,1,1));
|
||||
if (iSpawnNumber > 2)
|
||||
DelayCommand(0.2f,SpawnCampMob(iType,sWP,sCampType,iLevel,iBaseStart,iBase,iBaseMax,iCampType,1,2));
|
||||
|
||||
}
|
||||
iIndex++;
|
||||
sWP = sArea + "_" + IntToString(iIndex);
|
||||
oWP = GetObjectByTag(sWP);
|
||||
}
|
||||
|
||||
if (iBoss == TRUE)
|
||||
{
|
||||
sWP = sArea + "_Boss";
|
||||
oWP = GetObjectByTag(sWP);
|
||||
if (GetIsObjectValid(oWP))
|
||||
{
|
||||
oCreature = GetCampMob(99,sWP,sCampType,iLevel,iBaseStart,iBase,iBaseMax,iCampType);
|
||||
|
||||
iType = Random(2)+2;
|
||||
iSpawnNumber = 1;
|
||||
if (iLevel>10 && iLevel < 20 && iHardCore == FALSE)
|
||||
{
|
||||
if (Random(4) == 0)
|
||||
iSpawnNumber = 2;
|
||||
}
|
||||
if (iLevel>19 && iHardCore == FALSE)
|
||||
{
|
||||
iSpawnNumber = Random(3)+1;
|
||||
if (iType == 3 && iSpawnNumber == 3)
|
||||
iSpawnNumber = 2;
|
||||
}
|
||||
if (iLevel>19 && iHardCore == TRUE)
|
||||
{
|
||||
if (Random(4) == 0)
|
||||
iSpawnNumber = 2;
|
||||
}
|
||||
if (iSpawnNumber > 1)
|
||||
DelayCommand(0.2f,SpawnCampMob(iType,sWP,sCampType,iLevel,iBaseStart,iBase,iBaseMax,iCampType,1,1));
|
||||
if (iSpawnNumber > 2)
|
||||
DelayCommand(0.2f,SpawnCampMob(iType,sWP,sCampType,iLevel,iBaseStart,iBase,iBaseMax,iCampType,1,2));
|
||||
}
|
||||
}
|
||||
return oCreature;
|
||||
}
|
||||
|
||||
void ClearArea(string sArea)
|
||||
{
|
||||
int iIndex;
|
||||
object oWaypoint;
|
||||
object oCreature;
|
||||
object oArea;
|
||||
|
||||
iIndex = 1;
|
||||
oWaypoint = GetObjectByTag(sArea + "_" + IntToString(iIndex));
|
||||
|
||||
while (GetIsObjectValid(oWaypoint))
|
||||
{
|
||||
oCreature = GetObjectByTag(sArea + "_" + IntToString(iIndex) + "_S");
|
||||
if (GetIsObjectValid(oCreature))
|
||||
{
|
||||
AssignCommand(oCreature,SetIsDestroyable(TRUE));
|
||||
DestroyObject(oCreature,0.5);
|
||||
}
|
||||
oCreature = GetObjectByTag(sArea + "_" + IntToString(iIndex) + "_S1");
|
||||
if (GetIsObjectValid(oCreature))
|
||||
{
|
||||
AssignCommand(oCreature,SetIsDestroyable(TRUE));
|
||||
DestroyObject(oCreature,0.5);
|
||||
}
|
||||
oCreature = GetObjectByTag(sArea + "_" + IntToString(iIndex) + "_S2");
|
||||
if (GetIsObjectValid(oCreature))
|
||||
{
|
||||
AssignCommand(oCreature,SetIsDestroyable(TRUE));
|
||||
DestroyObject(oCreature,0.5);
|
||||
}
|
||||
|
||||
iIndex++;
|
||||
oWaypoint = GetObjectByTag(sArea + "_" + IntToString(iIndex));
|
||||
}
|
||||
|
||||
oCreature = GetObjectByTag(sArea + "_Boss_S");
|
||||
if (GetIsObjectValid(oCreature))
|
||||
{
|
||||
AssignCommand(oCreature,SetIsDestroyable(TRUE));
|
||||
DestroyObject(oCreature,0.5);
|
||||
}
|
||||
oCreature = GetObjectByTag(sArea + "_Boss_S1");
|
||||
if (GetIsObjectValid(oCreature))
|
||||
{
|
||||
AssignCommand(oCreature,SetIsDestroyable(TRUE));
|
||||
DestroyObject(oCreature,0.5);
|
||||
}
|
||||
oCreature = GetObjectByTag(sArea + "_Boss_S2");
|
||||
if (GetIsObjectValid(oCreature))
|
||||
{
|
||||
AssignCommand(oCreature,SetIsDestroyable(TRUE));
|
||||
DestroyObject(oCreature,0.5);
|
||||
}
|
||||
|
||||
|
||||
oWaypoint = GetObjectByTag(sArea + "_Enter");
|
||||
oArea = GetArea(oWaypoint);
|
||||
DelayCommand(0.5f,RemoveLootFromAdvArea(oArea));
|
||||
|
||||
}
|
||||
|
||||
void RemoveLootFromAdvArea(object oArea)
|
||||
{
|
||||
object oItem;
|
||||
|
||||
oItem = GetFirstObjectInArea(oArea);
|
||||
|
||||
while (GetIsObjectValid(oItem))
|
||||
{
|
||||
if (GetName(oItem) == "Remains")
|
||||
{
|
||||
RemoveLootFromRemains(oItem);
|
||||
DestroyObject(oItem);
|
||||
}
|
||||
oItem = GetNextObjectInArea(oArea);
|
||||
}
|
||||
}
|
||||
|
||||
void RemoveLootFromRemains(object oContainer)
|
||||
{
|
||||
object oItem;
|
||||
object oLastItem;
|
||||
int iFlag;
|
||||
int iDeleteFlag;
|
||||
|
||||
iFlag = 0;
|
||||
|
||||
oItem = GetFirstItemInInventory(oContainer);
|
||||
|
||||
while (iFlag == 0)
|
||||
{
|
||||
DestroyObject(oItem);
|
||||
|
||||
oLastItem = oItem;
|
||||
oItem = GetNextItemInInventory(oContainer);
|
||||
|
||||
if (oLastItem == oItem)
|
||||
iFlag = 1;
|
||||
}
|
||||
}
|
||||
|
||||
int AZDifficulty()
|
||||
{
|
||||
int iZones;
|
||||
int iDifficulty;
|
||||
|
||||
iZones = GetLocalInt(GetModule(),"AdvZones");
|
||||
if (iZones < 3)
|
||||
iDifficulty = 2;
|
||||
else if (iZones < 5)
|
||||
iDifficulty = 3;
|
||||
else
|
||||
iDifficulty = 4;
|
||||
|
||||
return iDifficulty;
|
||||
}
|
Reference in New Issue
Block a user