HoS_PRC8/_mod/_module/nss/hb_caravanmon.nss
Jaysyn904 04165202c0 Initial upload
Initial upload
2024-11-25 19:36:07 -05:00

61 lines
2.3 KiB
Plaintext

//////////////////////////////////////////////////////////////////////////////
// Slaver and Roving Merchant Caravan Monitor
//////////////////////////////////////////////////////////////////////////////
string fnReturnDirection(object oOb)
{ // return a directional for use by the mystic
string sRet="NA";
object oArea=GetArea(oOb);
string sT=GetTag(oArea);
if (sT=="AGC"||sT=="BGC") sRet="CENTER";
else if (sT=="AGN"||sT=="BGN"||sT=="FrozenNorthEast"||sT=="FrozenNorthSouth"||sT=="FrozenNorthCentral") sRet="N";
else if (sT=="AGE"||sT=="BGE") sRet="E";
else if (sT=="AGNE"||sT=="BGNE"||sT=="PassageNorthGEast"||sT=="PassageNorthSEast") sRet="NE";
else if (sT=="AGNW"||sT=="BGNW") sRet="NW";
else if (sT=="AGS"||sT=="BGS") sRet="S";
else if (sT=="AGSE"||sT=="BGSE") sRet="SE";
else if (sT=="AGSW"||sT=="BGSW"||sT=="DESNW"||sT=="DESSW"||sT=="SL") sRet="SW";
else if (sT=="AGW"||sT=="BGW") sRet="W";
return sRet;
} // fnReturnDirection()
void main()
{
object oMod=GetModule();
object oMe=OBJECT_SELF;
object oRMG=GetLocalObject(oMod,"oRMGMerchant");
object oSCM=GetLocalObject(oMod,"oSCM");
int nSlaveP=GetLocalInt(oMod,"nSlaverPower");
string sResRMG="strangeapparatus";
string sResSlvr="plc_flamesmall";
object oRMGO=GetLocalObject(oMe,"oRMG");
object oSCMO=GetLocalObject(oMe,"oSCM");
object oWP;
string sLoc;
if (oRMGO!=OBJECT_INVALID) DestroyObject(oRMGO);
if (oSCMO!=OBJECT_INVALID) DestroyObject(oSCMO);
if (nSlaveP>20) sResSlvr="plc_flamemedium";
if (nSlaveP>60) sResSlvr="plc_flamelarge";
if (oRMG!=OBJECT_INVALID)
{ // merchant caravan
sLoc=fnReturnDirection(oRMG);
if (sLoc!="NA")
{ // direction returned
oWP=GetNearestObjectByTag("MYSTIC_"+sLoc,oMe,1);
oRMGO=CreateObject(OBJECT_TYPE_PLACEABLE,sResRMG,GetLocation(oWP));
SetLocalObject(oMe,"oRMG",oRMGO);
} // direction returned
} // merchant caravan
if (oSCM!=OBJECT_INVALID)
{ // merchant caravan
sLoc=fnReturnDirection(oSCM);
if (sLoc!="NA")
{ // direction returned
oWP=GetNearestObjectByTag("MYSTIC_"+sLoc,oMe,1);
oSCMO=CreateObject(OBJECT_TYPE_PLACEABLE,sResSlvr,GetLocation(oWP));
SetLocalObject(oMe,"oSCM",oSCMO);
} // direction returned
} // merchant caravan
}