View Single Post
  #4  
Old 02-11-2015, 03:42 PM
epilz
Hill Giant
 
Join Date: Sep 2013
Posts: 247
Default

I am having the same exact problem. Below is my check_hasitem plugin.
File dated 1/16/15.

Code:
#checks to see if player has item
#useage plugin::check_hasitem($client, itemid);
sub check_hasitem {
    my $client = shift;
    my $itmchk = shift;
    my $slot1;
    my $itemid1;
    my $augid1;
    my $i;
    my $body_count = $client->GetCorpseCount();
    my $body_id;

#Check main inventory and cursor
    for($slot1=0; $slot1<=30; $slot1++) {
        $itemid1=$client->GetItemIDAt($slot1);
      for($i=0; $i<5; $i++) {
         $augid1=$client->GetAugmentIDAt($slot1, $i);
         if($augid1==$itmchk) {
            return 1;
         }
      }
        if($itemid1==$itmchk) {
            return 1;
        }
    }
#Check main inventory's and cursor's containers
    for($slot1=251; $slot1<=340; $slot1++) {
        $itemid1=$client->GetItemIDAt($slot1);
      for($i=0; $i<5; $i++) {
         $augid1=$client->GetAugmentIDAt($slot1, $i);
         if($augid1==$itmchk) {
            return 1;
         }
      }
        if($itemid1==$itmchk) {
            return 1;
        }
    }
#Check bank slots
    for($slot1=2000; $slot1<=2015; $slot1++) {
        $itemid1=$client->GetItemIDAt($slot1);
      for($i=0; $i<5; $i++) {
         $augid1=$client->GetAugmentIDAt($slot1, $i);
         if($augid1==$itmchk) {
            return 1;
         }
      }
        if($itemid1==$itmchk) {
            return 1;
        }
    }
#Check bank's containers
    for($slot1=2030; $slot1<=2190; $slot1++) {
        $itemid1=$client->GetItemIDAt($slot1);
      for($i=0; $i<5; $i++) {
         $augid1=$client->GetAugmentIDAt($slot1, $i);
         if($augid1==$itmchk) {
            return 1;
         }
      }
        if($itemid1==$itmchk) {
            return 1;
        }
    }
#Check shared bank
    for($slot1=2500; $slot1<=2501; $slot1++) {
        $itemid1=$client->GetItemIDAt($slot1);
      for($i=0; $i<5; $i++) {
         $augid1=$client->GetAugmentIDAt($slot1, $i);
         if($augid1==$itmchk) {
            return 1;
         }
      }
        if($itemid1==$itmchk) {
            return 1;
        }
    }
#Check shared bank's containers
    for($slot1=2531; $slot1<=2550; $slot1++) {
        $itemid1=$client->GetItemIDAt($slot1);
      for($i=0; $i<5; $i++) {
         $augid1=$client->GetAugmentIDAt($slot1, $i);
         if($augid1==$itmchk) {
            return 1;
         }
      }
        if($itemid1==$itmchk) {
            return 1;
        }
    }
#Check corpses
  if ($body_count > 0) {
    for ($i=1; $i<=$body_count; $i++) {
      $body_id = $client->GetCorpseID($i);
      for ($slot1=0; $slot1<=30; $slot1++) {
        $itemid1 = $client->GetCorpseItemAt($body_id, $slot1);
        if ($itemid1 == $itmchk) {
          return 1;
        }
      }
      for ($slot1=251; $slot1<=340; $slot1++) {
        $itemid1 = $client->GetCorpseItemAt($body_id, $slot1);
        if ($itemid1 == $itmchk) {
          return 1;
        }
      }
    }
  }
  return 0;
}

1;

Last edited by epilz; 02-11-2015 at 03:44 PM.. Reason: added date
Reply With Quote