Autor Wiadomość
jabol123
PostWysłany: Czw 20:50, 05 Mar 2009    Temat postu: Auto Use Obsidian Knife

B.Dobry skrypt Polecam ;p

Kod:

const
 obsidian_knife = 5908;
 skin_body = [4011, 4047, 4052, 4057];
 
function searchIntArray(id:integer): boolean;
var
 i: integer;
begin
result := false;
 for i := low(skin_body) to high(skin_body) do begin
  if skin_body[i] = id then result := true;
 end;
end;

function GetItemFromOpenBackpack(ID: integer): TItem;
var
  y: integer;
begin
  Result := nil;
  for x := 0 to Self.Containers.Count - 1 do
  begin
    if x >= Self.Containers.Count then Break;
    for y := 0 to Self.Containers.Container[x].Count - 1 do
    begin
      if y >= Self.Containers.Container[x].Count then Break;
      if Self.Containers.Container[x].Item[y].ID = ID then
      begin
        Result := Self.Containers.Container[x].Item[y];
        Exit;
      end;
    end;
  end;
end;
 
function SkinBodies(id:integer): Boolean;
var
  x, y: integer;
  knife: TItem;
  t: integer;
begin
UpdateWorld;
knife := GetItemFromOpenBackpack(obsidian_knife);
if knife = nil then
begin
 Self.DisplayText('An Obsidian Knife could not be found, please open a container with it.');
 exit;
end;
t := -1;
 for x := -1 to 1 do begin
  for y := -1 to 1 do begin
  // if Screen.Tile[7+x, 5+y].Count >= 3 then begin
  //  t := -2
  // end else  t := -1;
   if searchIntArray(Screen.Tile[7+x, 5+y].Item[Screen.Tile[7+x, 5+y].Count+t].ID) = true then begin
    UpdateWorld;
    knife := GetItemFromOpenBackpack(obsidian_knife);
     if knife <> nil then begin
      knife.UseWithGround(Self.X+X, Self.Y+Y, Self.Z);
      Self.DisplayText('Attempted to skin a creature with the ID ' + IntToStr(Screen.Tile[7+x, 5+y].Item[Screen.Tile[7+x, 5+y].Count-1].ID) + '.');
      Sleep(100);
      UpdateWorld;
     end;
    end;
   end;
  end;
 end;

begin
 while not terminated do begin
 UpdateWorld;
 SkinBodies(skin_body);
 Sleep(100);
 end;
end;

Powered by phpBB © 2001, 2005 phpBB Group