Initial Commit
Initial Commit [v1.32PRC8]
This commit is contained in:
112
_module/nss/htca_enter.nss
Normal file
112
_module/nss/htca_enter.nss
Normal file
@@ -0,0 +1,112 @@
|
||||
#include "rd_questinc"
|
||||
|
||||
void ArenaLevelUp(object oCreature, int iLevelUp);
|
||||
void CleanArena();
|
||||
void RemoveLootFromRemains(object oContainer);
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC;
|
||||
object oCreature;
|
||||
int iLevel;
|
||||
int iRandom;
|
||||
int iLevelUp;
|
||||
location lLoc;
|
||||
string sTag;
|
||||
|
||||
CleanArena();
|
||||
|
||||
oPC = GetPCSpeaker();
|
||||
iLevel = Random(3) + GetHitDice(oPC) - 1;
|
||||
SetPartyInt(oPC,"HTCArena",1);
|
||||
|
||||
iRandom = Random(3)+1;
|
||||
sTag = "HTCA_Spawn" + IntToString(iRandom);
|
||||
lLoc = GetLocation(GetObjectByTag(sTag));
|
||||
|
||||
iRandom = Random(6)+1;
|
||||
iLevelUp = TRUE;
|
||||
switch (iRandom)
|
||||
{
|
||||
case 1: sTag = "en4_hostilefig2"; break;
|
||||
case 2: sTag = "en4_hostilemonk2"; break;
|
||||
case 3: sTag = "en4_hostileclr2"; break;
|
||||
case 4: sTag = "en4_hostilewiz2"; break;
|
||||
case 5: sTag = "en4_hostilefig2"; break;
|
||||
case 6: sTag = "en4_hostilemonk2"; break;
|
||||
}
|
||||
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,sTag,lLoc,FALSE);
|
||||
|
||||
if (iLevelUp == TRUE && iLevel-1 >1)
|
||||
ArenaLevelUp(oCreature,iLevel-1);
|
||||
|
||||
lLoc = GetLocation(GetObjectByTag("HTCA_Enter"));
|
||||
AssignCommand(oPC,JumpToLocation(lLoc));
|
||||
}
|
||||
|
||||
|
||||
void ArenaLevelUp(object oCreature, int iLevelUp)
|
||||
{
|
||||
object oItem;
|
||||
|
||||
LevelMob(oCreature,iLevelUp);
|
||||
EquipMob(oCreature);
|
||||
|
||||
oItem = GetFirstItemInInventory(oCreature);
|
||||
while (GetIsObjectValid(oItem))
|
||||
{
|
||||
SetDroppableFlag(oItem,FALSE);
|
||||
oItem = GetNextItemInInventory(oCreature);
|
||||
}
|
||||
}
|
||||
|
||||
void CleanArena()
|
||||
{
|
||||
object oCreature;
|
||||
object oArea;
|
||||
string sTag;
|
||||
|
||||
sTag = "HTCA_Spawn1";
|
||||
oArea = GetArea(GetObjectByTag(sTag));
|
||||
oCreature = GetFirstObjectInArea(oArea);
|
||||
while (GetIsObjectValid(oCreature))
|
||||
{
|
||||
if (GetObjectType(oCreature) == OBJECT_TYPE_CREATURE && !GetIsPC(oCreature) && !GetIsPC(GetMaster(oCreature)))
|
||||
{
|
||||
//SendMessageToPC(GetFirstPC(),"Trying to Destroy " + GetName(oCreature));
|
||||
AssignCommand(oCreature,SetIsDestroyable(TRUE));
|
||||
DestroyObject(oCreature,0.1f);
|
||||
}
|
||||
if (GetName(oCreature) == "Remains")
|
||||
{
|
||||
RemoveLootFromRemains(oCreature);
|
||||
DestroyObject(oCreature);
|
||||
}
|
||||
|
||||
oCreature = 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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user