Try this. Not using arrays will only find the item on the bottom of the pile.
Code:
program Pickup;
{$DEFINE SMART}
{$i Reflection/Reflection.simba}
const
ItemsToPickup = ['Feather', 'Abyssal whip']; // Items to Pickup
var
Grounds: TReflectGroundItemArray;
I: Integer;
begin
Grounds.GetAll(20);
for I := 0 to High(Grounds) do
begin
if IsArrInStr(ItemsToPickup, Grounds[I].GetName) then
begin
Reflect.Mouse.Move(Grounds[I].GetMSPoint, 3, 3);
Reflect.Mouse.Click(Mouse_Right);
Reflect.Text.ChooseOption(Grounds[I].GetName);
end;
end;
end.