Code:
if($item1 > 0){quest::summonitem("$item1");}
if($item2 > 0){quest::summonitem("$item2");}
if($item3 > 0){quest::summonitem("$item3");}
if($item4 > 0){quest::summonitem("$item4");}
This part is wrong. You need to remove the quotes in the method calls, like quest::summonitem($item4); Or it will try to find "$item4" in a Db instead of the number stored in item4.