Перейти к публикации
Fau

Fishing

Рекомендованные сообщения

Да нефиг там играться, ставь 8 вместо 6 и все.

холостые закидоны удочки на землю,если нужно то ставь 8

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 круг запомним все холостые закидоны, со след всё только цель.

Program fishing_New;Procedure DrawMap(X, Y: Integer);VarFigure: TMapFigure;Begin  Figure.kind := fkLine;  Figure.coord := fcWorld;  Figure.x1 := X;  Figure.y1 := Y;  Figure.x2 := X+1;  Figure.y2 := Y+1;  Figure.brushStyle := bsClear;  Figure.brushColor := $000000;  Figure.color := $FFFF00;        //???? ?????  Figure.text := '';  AddFigure(Figure);End;const  _Range = 7;      type   TFishTile = record   X, Y, Tile : Word;   Z : Integer;   Banned : Boolean; end;    var  _FishingTiles : Array of Word;     _LootTypes : Array of Word;      _FishTypes : Array of Word;  type TFishTileArray = Array of TFishTile;   function SetFishTiles(var FishPoints : TFishTileArray) : Integer;var  x, y, i, k : Integer;     tmpTile: TStaticCell;begin   for x := (_Range *-1) to _Range do    for y := (_Range *-1) to _Range do       begin                        tmpTile := ReadStaticsXY(GetX(Self) + x, GetY(Self) + y, WorldNum);        for k := 0 to High(tmpTile.Statics) do           for i := 0 to (Length(_FishingTiles) - 1) do            if (tmpTile.Statics[k].Tile = _FishingTiles[i]) then              begin                SetLength(FishPoints, Length(FishPoints) + 1);                FishPoints[High(FishPoints)].Tile := tmpTile.Statics[k].Tile;                 FishPoints[High(FishPoints)].X := GetX(Self) + x;                 FishPoints[High(FishPoints)].Y := GetY(Self) + y;                FishPoints[High(FishPoints)].Z := tmpTile.Statics[k].Z;                FishPoints[High(FishPoints)].Banned := False;                Inc(Result);                 DrawMap(GetX(Self) + x, GetY(Self) + y);                Break;                end;              end;         end;procedure WaitLag(WaitTimeMS : Integer);begin  CheckLag(30000);  Wait(WaitTimeMS);end;type TCardinalArray = Array of Cardinal;function GetFoundItems(ItemType: Word; Container : Cardinal): TCardinalArray;var  res : TCardinalArray; List: TStringList;  i: Integer;begin  if (FindType(ItemType, Container) <= 0) then    Exit;      List := TStringList.Create;  if GetFindedList(List) then   begin    SetLength(res, List.Count);    for i := 0 to Length(res)-1 do       res[i] := StrToInt('$'+List.Strings[i]);   end;  List.Free;   Result := res;end;function GetFoundItemsEx(ItemTypes : Array of Word; Container : Cardinal) : TCardinalArray;var  i, k : Integer;  tmpItems : TCardinalArray;begin  for i := 0 to High(ItemTypes) do    begin      tmpItems := GetFoundItems(ItemTypes[i], Container);      for k := 0 to High(tmpItems) do        begin          SetLength(Result, Length(Result) + 1);          Result[High(Result)] := tmpItems[k];        end;    end;end;function GetFoundItemsWithColour(ItemType, ItemColour: Word; Container : Cardinal): TCardinalArray;var  res : TCardinalArray; List: TStringList;  i: Integer;begin  if (FindTypeEx(ItemType, ItemColour, Container, False) <= 0) then    Exit;      List := TStringList.Create;  if GetFindedList(List) then   begin    SetLength(res, List.Count);    for i := 0 to Length(res)-1 do       res[i] := StrToInt('$'+List.Strings[i]);   end;  List.Free;   Result := res;end;procedure Carve(Id : Cardinal);var  i : Integer;begin  for i := 0 to High(_FishTypes) do    if GetType(Id) = _FishTypes[i] then      begin        UseType($0F51, 0);        if WaitForTarget(10000) then          TargetToObject(Id);                                                    WaitJournalLine(Now, 'Success', 3000);        Break;      end; end;procedure LootingSequence;var  i, k : Integer;  tmpArr : TCardinalArray;begin  for i := 0 to High(_LootTypes) do    begin      tmpArr := GetFoundItems(_LootTypes[i], Ground);      for k := 0 to High(tmpArr) do        begin          MoveItem(tmpArr[k], 0, Backpack, 0,0,0);          WaitLag(500);             Carve(tmpArr[k]);        end;    end;end;procedure BanTile(var FishPoint : TFishTile);begin  FishPoint.Banned := True;  WaitLag(1500);  end;var  fishPoints : TFishTileArray;  i, q : Integer;begin  ClearFigures;  _FishingTiles := [3518,3335,3336,3337,6039,6040,6041,6042,6043,6044,6060];   _FishTypes := [$9CC, $9CD, $9CE, $9CF, $14EB, $DD6, $DD7, $DD8];  _LootTypes := [$EED, $9CC, $9CD, $9CE, $9CF, $14EB, $DD6, $DD7, $DD8];  AddToSystemJournal('FishSpots initialized: ' + IntToStr(SetFishTiles(fishPoints)));                    while True do    begin    for i := 0 to High(fishPoints) do       begin        if fishPoints[i].Banned then          Continue;                          //if UseType($DCA, $12C) = 0 then          UseType($0DBF, 0);        if WaitForTarget(30000) then          TargetToTile(fishPoints[i].Tile, fishPoints[i].X, fishPoints[i].Y, fishPoints[i].Z);//fishPoints[i].Z);        WaitJournalLineSystem(Now, 'stop|far away|see that|seem to get|have to cast', 5000);              case FoundedParamId of          -1 : AddToSystemJournal(LastJournalMessage);          1 : BanTile(fishPoints[i]);          2 : BanTile(fishPoints[i]);          4 : BanTile(fishPoints[i]);         end;        CheckLag(30000);      end;    Inc(q);        if ((q mod 3) = 0) then       begin        LootingSequence;        if FindType($97B, Backpack) > 0 then          begin            UseObject(FindItem);            WaitLag(300);          end        else          AddToSystemJournal('No food in backpack');        AddToSystemJournal('RoundMade');      end;   end;end.
Изменено пользователем Drabadan

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

холостые закидоны удочки на землю,если нужно то ставь 8

Т.к. 8 это радиус поиска таилов будет и радиус максимальной длинны закидывания удочки, а закидоны в землю это из-за говно таилов которые он будет искать. А значит просто надо найти место с нормальными таилами воды, ну или послать их в игнор :)

Изменено пользователем долби

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

1 круг запомним все холостые закидоны, со след всё только цель.

Program fishing_New;Procedure DrawMap(X, Y: Integer);VarFigure: TMapFigure;Begin  Figure.kind := fkLine;  Figure.coord := fcWorld;  Figure.x1 := X;  Figure.y1 := Y;  Figure.x2 := X+1;  Figure.y2 := Y+1;  Figure.brushStyle := bsClear;  Figure.brushColor := $000000;  Figure.color := $FFFF00;        //???? ?????  Figure.text := '';  AddFigure(Figure);End;const  _Range = 7;      type   TFishTile = record   X, Y, Tile : Word;   Z : Integer;   Banned : Boolean; end;    var  _FishingTiles : Array of Word;     _LootTypes : Array of Word;      _FishTypes : Array of Word;  type TFishTileArray = Array of TFishTile;   function SetFishTiles(var FishPoints : TFishTileArray) : Integer;var  x, y, i, k : Integer;     tmpTile: TStaticCell;begin   for x := (_Range *-1) to _Range do    for y := (_Range *-1) to _Range do       begin                        tmpTile := ReadStaticsXY(GetX(Self) + x, GetY(Self) + y, WorldNum);        for k := 0 to High(tmpTile.Statics) do           for i := 0 to (Length(_FishingTiles) - 1) do            if (tmpTile.Statics[k].Tile = _FishingTiles[i]) then              begin                SetLength(FishPoints, Length(FishPoints) + 1);                FishPoints[High(FishPoints)].Tile := tmpTile.Statics[k].Tile;                 FishPoints[High(FishPoints)].X := GetX(Self) + x;                 FishPoints[High(FishPoints)].Y := GetY(Self) + y;                FishPoints[High(FishPoints)].Z := tmpTile.Statics[k].Z;                FishPoints[High(FishPoints)].Banned := False;                Inc(Result);                 DrawMap(GetX(Self) + x, GetY(Self) + y);                Break;                end;              end;         end;procedure WaitLag(WaitTimeMS : Integer);begin  CheckLag(30000);  Wait(WaitTimeMS);end;type TCardinalArray = Array of Cardinal;function GetFoundItems(ItemType: Word; Container : Cardinal): TCardinalArray;var  res : TCardinalArray; List: TStringList;  i: Integer;begin  if (FindType(ItemType, Container) <= 0) then    Exit;      List := TStringList.Create;  if GetFindedList(List) then   begin    SetLength(res, List.Count);    for i := 0 to Length(res)-1 do       res[i] := StrToInt('$'+List.Strings[i]);   end;  List.Free;   Result := res;end;function GetFoundItemsEx(ItemTypes : Array of Word; Container : Cardinal) : TCardinalArray;var  i, k : Integer;  tmpItems : TCardinalArray;begin  for i := 0 to High(ItemTypes) do    begin      tmpItems := GetFoundItems(ItemTypes[i], Container);      for k := 0 to High(tmpItems) do        begin          SetLength(Result, Length(Result) + 1);          Result[High(Result)] := tmpItems[k];        end;    end;end;function GetFoundItemsWithColour(ItemType, ItemColour: Word; Container : Cardinal): TCardinalArray;var  res : TCardinalArray; List: TStringList;  i: Integer;begin  if (FindTypeEx(ItemType, ItemColour, Container, False) <= 0) then    Exit;      List := TStringList.Create;  if GetFindedList(List) then   begin    SetLength(res, List.Count);    for i := 0 to Length(res)-1 do       res[i] := StrToInt('$'+List.Strings[i]);   end;  List.Free;   Result := res;end;procedure Carve(Id : Cardinal);var  i : Integer;begin  for i := 0 to High(_FishTypes) do    if GetType(Id) = _FishTypes[i] then      begin        UseType($0F51, 0);        if WaitForTarget(10000) then          TargetToObject(Id);                                                    WaitJournalLine(Now, 'Success', 3000);        Break;      end; end;procedure LootingSequence;var  i, k : Integer;  tmpArr : TCardinalArray;begin  for i := 0 to High(_LootTypes) do    begin      tmpArr := GetFoundItems(_LootTypes[i], Ground);      for k := 0 to High(tmpArr) do        begin          MoveItem(tmpArr[k], 0, Backpack, 0,0,0);          WaitLag(500);             Carve(tmpArr[k]);        end;    end;end;procedure BanTile(var FishPoint : TFishTile);begin  FishPoint.Banned := True;  WaitLag(1500);  end;var  fishPoints : TFishTileArray;  i, q : Integer;begin  ClearFigures;  _FishingTiles := [3518,3335,3336,3337,6039,6040,6041,6042,6043,6044,6060];   _FishTypes := [$9CC, $9CD, $9CE, $9CF, $14EB, $DD6, $DD7, $DD8];  _LootTypes := [$EED, $9CC, $9CD, $9CE, $9CF, $14EB, $DD6, $DD7, $DD8];  AddToSystemJournal('FishSpots initialized: ' + IntToStr(SetFishTiles(fishPoints)));                    while True do    begin    for i := 0 to High(fishPoints) do       begin        if fishPoints[i].Banned then          Continue;                          //if UseType($DCA, $12C) = 0 then          UseType($0DBF, 0);        if WaitForTarget(30000) then          TargetToTile(fishPoints[i].Tile, fishPoints[i].X, fishPoints[i].Y, fishPoints[i].Z);//fishPoints[i].Z);        WaitJournalLineSystem(Now, 'stop|far away|see that|seem to get|have to cast', 5000);              case FoundedParamId of          -1 : AddToSystemJournal(LastJournalMessage);          1 : BanTile(fishPoints[i]);          2 : BanTile(fishPoints[i]);          4 : BanTile(fishPoints[i]);         end;        CheckLag(30000);      end;    Inc(q);        if ((q mod 3) = 0) then       begin        LootingSequence;        if FindType($97B, Backpack) > 0 then          begin            UseObject(FindItem);            WaitLag(300);          end        else          AddToSystemJournal('No food in backpack');        AddToSystemJournal('RoundMade');      end;   end;end.

Можешь когда хочешь ведь :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Compiler: [Error] (fishing_New.sc at 72:0): Redeclared identifier "GetFoundItems" ;
Error line is: " function GetFoundItems(ItemType: Word; Container : Cardinal): TCardinalArray; "
подскажите плз, в чем проблема?....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Compiler: [Error] (fishing_New.sc at 72:0): Redeclared identifier "GetFoundItems" ;
Error line is: " function GetFoundItems(ItemType: Word; Container : Cardinal): TCardinalArray; "
подскажите плз, в чем проблема?....

 

 

в 7.9.1 ввели "аппаратную поддержку" GetFoundItems, надо бы перекомпилить...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...