// wazoo_s0_astplcd - Placeable for your body in the prime material plane was damaged #include "X0_INC_HENAI" #include "X2_INC_SUMMSCALE" void main() { object oMe=GetLocalObject(OBJECT_SELF,"oOwner"); effect eDeath=EffectDeath(); object oBody; object oUser=oMe; object oAssoc; int bHardcore=GetLocalInt(GetModule(),"bDifficultyHardcore"); int bKill=TRUE; if (GetIsPC(oMe)==TRUE) SendMessageToPC(oMe,"Your body was killed in the prime material plane!"); if (GetLocalInt(oMe,"bWAZOOASTRAL")!=TRUE) bKill=FALSE; DeleteLocalInt(oMe,"bWAZOOASTRAL"); if (bKill) ApplyEffectToObject(DURATION_TYPE_INSTANT,eDeath,oMe); oBody=GetItemPossessedBy(oMe,"wazoo_it_astret"); if (oBody!=OBJECT_INVALID) DestroyObject(oBody); if (GetIsPC(oMe)==TRUE&&bHardcore!=TRUE) { oAssoc=GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oUser); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_DOMINATED,oUser); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_FAMILIAR,oUser); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_SUMMONED,oUser); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,1); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,2); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,3); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,4); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,5); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) ExecuteScript("wazoo_s0_astret",oAssoc); } else if (GetIsPC(oMe)==TRUE&&bHardcore==TRUE) { // make henchmen stay behind oAssoc=GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oUser); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_DOMINATED,oUser); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_FAMILIAR,oUser); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_SUMMONED,oUser); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,1); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,2); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,3); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,4); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); oAssoc=GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oUser,5); if (oAssoc!=OBJECT_INVALID&&GetLocalInt(oAssoc,"nWAZOOASTRAL")==TRUE) SetAssociateState(NW_ASC_MODE_STAND_GROUND,TRUE,oAssoc); } // make henchmen stay behind }