Initial Commit
Initial Commit [v1.32PRC8]
This commit is contained in:
140
_module/nss/rd_door.nss
Normal file
140
_module/nss/rd_door.nss
Normal file
@@ -0,0 +1,140 @@
|
||||
#include "rd_spawnmobs"
|
||||
|
||||
void HouseLevelUp(object oCreature, int iLevel);
|
||||
|
||||
void main()
|
||||
{
|
||||
object oSpawnPoint;
|
||||
object oCreature;
|
||||
location lLoc;
|
||||
string sWPTag;
|
||||
string sTreasureTag;
|
||||
string sHouseTag;
|
||||
int iLock;
|
||||
int iMod;
|
||||
int iRandom;
|
||||
int iLevel;
|
||||
int iHouse;
|
||||
string sHouse;
|
||||
|
||||
if (GetLocalInt(OBJECT_SELF,"EN4Entered") == 0)
|
||||
{
|
||||
DelayCommand(10.0f,SetLocalInt(OBJECT_SELF,"EN4Used",1));
|
||||
SetLocalInt(OBJECT_SELF,"EN4Entered",1);
|
||||
|
||||
iHouse = Random(3)+1;
|
||||
if (iHouse == 1 && GetLocalInt(GetModule(),"House1InUse") == 1)
|
||||
iHouse = 2;
|
||||
if (iHouse == 2 && GetLocalInt(GetModule(),"House2InUse") == 1)
|
||||
iHouse = 3;
|
||||
if (iHouse == 3 && GetLocalInt(GetModule(),"House3InUse") == 1)
|
||||
iHouse = 3;
|
||||
|
||||
sHouse = "House" + IntToString(iHouse);
|
||||
if (iHouse == 1)
|
||||
SetLocalInt(GetModule(),"House1InUse",1);
|
||||
if (iHouse == 2)
|
||||
SetLocalInt(GetModule(),"House2InUse",1);
|
||||
if (iHouse == 3)
|
||||
SetLocalInt(GetModule(),"House3InUse",1);
|
||||
|
||||
sTreasureTag = sHouse + "_Treasure" + IntToString(Random(2)+1);
|
||||
SetLocalInt(GetObjectByTag(sHouse + "_Treasure1"),"Treasure",0);
|
||||
SetLocalInt(GetObjectByTag(sHouse + "_Treasure2"),"Treasure",0);
|
||||
SetLocalInt(GetObjectByTag(sHouse + "_Treasure1"),"TreasureMod",0);
|
||||
SetLocalInt(GetObjectByTag(sHouse + "_Treasure2"),"TreasureMod",0);
|
||||
SetLocalInt(GetObjectByTag(sTreasureTag),"Treasure",1);
|
||||
|
||||
iLock=GetLockUnlockDC(OBJECT_SELF);
|
||||
iMod = 0;
|
||||
if (iLock > 20 && iLock < 31)
|
||||
iMod = 1;
|
||||
else if (iLock >30 && iLock < 35)
|
||||
iMod = 2;
|
||||
else if (iLock < 40)
|
||||
iMod = 4;
|
||||
else
|
||||
iMod = 6;
|
||||
|
||||
SetLocalInt(GetObjectByTag(sTreasureTag),"TreasureMod",iMod);
|
||||
|
||||
sWPTag = sHouse + "_WP" + IntToString(Random(4)+1);
|
||||
lLoc = GetLocation(GetObjectByTag(sWPTag));
|
||||
iLevel = GetHitDice(GetEnteringObject());
|
||||
iRandom = Random(8)+1;
|
||||
if (iRandom<3)
|
||||
{
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_comhostile1",lLoc,FALSE,"HouseSpawn");
|
||||
}
|
||||
else if (iRandom == 3)
|
||||
{
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilewiz",lLoc,FALSE,"HouseSpawn");
|
||||
HouseLevelUp(oCreature,iLevel);
|
||||
}
|
||||
else if (iRandom == 4)
|
||||
{
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilefig",lLoc,FALSE,"HouseSpawn");
|
||||
HouseLevelUp(oCreature,iLevel);
|
||||
}
|
||||
else if (iRandom == 5)
|
||||
{
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilemonk",lLoc,FALSE,"HouseSpawn");
|
||||
HouseLevelUp(oCreature,iLevel);
|
||||
}
|
||||
else if (iRandom == 6)
|
||||
{
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostileclr",lLoc,FALSE,"HouseSpawn");
|
||||
HouseLevelUp(oCreature,iLevel);
|
||||
}
|
||||
else if (iRandom == 7)
|
||||
{
|
||||
if (Random(2)==0)
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilefig",lLoc,FALSE,"HouseSpawn");
|
||||
else
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilemonk",lLoc,FALSE,"HouseSpawn");
|
||||
HouseLevelUp(oCreature,iLevel);
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostileclr",lLoc,FALSE,"HouseSpawn");
|
||||
HouseLevelUp(oCreature,iLevel);
|
||||
}
|
||||
else if (iRandom == 8)
|
||||
{
|
||||
if (Random(2)==0)
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilefig",lLoc,FALSE,"HouseSpawn");
|
||||
else
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilemonk",lLoc,FALSE,"HouseSpawn");
|
||||
HouseLevelUp(oCreature,iLevel);
|
||||
oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilewiz",lLoc,FALSE,"HouseSpawn");
|
||||
HouseLevelUp(oCreature,iLevel);
|
||||
}
|
||||
|
||||
SetActionMode(oCreature,ACTION_MODE_DETECT,TRUE);
|
||||
SetLocalString(GetEnteringObject(),"EN4Return",GetTag(OBJECT_SELF));
|
||||
SetLocalInt(GetEnteringObject(),"EN4House",iHouse);
|
||||
sHouseTag = "WP_" + sHouse;
|
||||
SetLocalString(OBJECT_SELF,"SpawnTo",sHouseTag);
|
||||
oSpawnPoint = GetObjectByTag(sHouseTag);
|
||||
AssignCommand(GetEnteringObject(),JumpToLocation(GetLocation(oSpawnPoint)));
|
||||
} else {
|
||||
if (GetLocalInt(OBJECT_SELF,"EN4Used") == 0)
|
||||
{
|
||||
sHouseTag= GetLocalString(OBJECT_SELF,"SpawnTo");
|
||||
oSpawnPoint = GetObjectByTag(sHouseTag);
|
||||
AssignCommand(GetEnteringObject(),JumpToLocation(GetLocation(oSpawnPoint)));
|
||||
} else {
|
||||
SendMessageToPC(GetEnteringObject(),"This house has already been entered.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void HouseLevelUp(object oCreature, int iLevel)
|
||||
{
|
||||
int iLevelUp;
|
||||
|
||||
iLevelUp = Random(5)-2;
|
||||
iLevelUp = iLevelUp + iLevel;
|
||||
if (iLevelUp < 1)
|
||||
iLevelUp = 1;
|
||||
LevelMob(oCreature,iLevelUp);
|
||||
EquipMob(oCreature);
|
||||
}
|
Reference in New Issue
Block a user