////////////////////////////////////////////////////////////////////////////// // 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 }