//Contributed by Mike Daneman aka. Mishenka //Modified: 69MEH69 Added more items to pick up //Modified by EpicValor for party loot #include "69_inc_henai" void main() { ClearAllActions(); SetAssociateState(NW_ASC_IS_BUSY); int bFound = FALSE; string sName; location lCenter = GetLocation(OBJECT_SELF); object oThing = GetFirstObjectInShape(SHAPE_SPHERE,60.0,lCenter,TRUE,OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_ITEM); object oMaster = GetMaster(OBJECT_SELF); while(GetIsObjectValid(oThing)) { if(GetObjectType(oThing)==OBJECT_TYPE_ITEM) { bFound = TRUE; { object oParty = GetFirstFactionMember(oMaster, TRUE); while (GetIsObjectValid(oParty)) { // Check if it's a player character if (GetIsPC(oParty)) { sName = GetName(oThing); ActionDoCommand (SendMessageToPC(oParty, GetName(oMaster)+"'s golem"+" picked up "+sName+".")); ActionPickUpItem(oThing); } oParty = GetNextFactionMember(oMaster, TRUE); } } } else // oThing is a placeable { if(GetHasInventory(oThing)) // Containers (including corpses) { // Don't search locked containers // Only search trapped containers if you can't see the trap if(!GetLocked(oThing) && (!GetIsTrapped(oThing) || (GetIsTrapped(oThing) && !GetTrapDetectedBy(oThing,OBJECT_SELF)))) { bFound = TRUE; ActionMoveToObject (oThing, TRUE, 1.0f); ActionDoCommand(AssignCommand(oThing,PlayAnimation(ANIMATION_PLACEABLE_OPEN))); ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,3.0,0.5); object oItem = GetFirstItemInInventory(oThing); object oMaster = GetMaster(OBJECT_SELF); while(GetIsObjectValid(oItem)) { string iName = GetName(oItem); object oParty = GetFirstFactionMember(oMaster, TRUE); while (GetIsObjectValid(oParty)) { // Check if it's a player character if (GetIsPC(oParty)) { ActionDoCommand (SendMessageToPC(oParty, GetName(oMaster)+"'s golem"+" picked up "+GetName(oItem)+" from "+GetName(oThing)+".")); ActionTakeItem(oItem,oThing); } oParty = GetNextFactionMember(oMaster, TRUE); oItem = GetNextItemInInventory(oThing); } ActionDoCommand(AssignCommand(oThing,PlayAnimation(ANIMATION_PLACEABLE_CLOSE))); } } } } oThing = GetNextObjectInShape(SHAPE_SPHERE,60.0,lCenter,TRUE,OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_ITEM); } ActionDoCommand(SetAssociateState(NW_ASC_IS_BUSY,FALSE)); if(!bFound) ActionSpeakString("I don't see where I can find any around here.", TALKVOLUME_PARTY); }