61 lines
2.3 KiB
Plaintext
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
|
|
|
|
}
|