Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Помогите исправить макрос на мининг под Age Of Power!

тут можно задать вопрос по скриптингу
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Re:

Post by Vizit0r »

Seriy111 wrote:
drabadan wrote:
Seriy111 wrote:Скачал последний стелс и такое
16:03:15:812 [Seriy]: Compiling
16:03:15:827 [Seriy]: Compiler: [Hint] (D:\Ultima Online\Programs\Мининг\Mining.sc at 266:3): Variable 'J' never used
16:03:15:827 [Seriy]: Compiled succesfully
16:03:15:843 [Seriy]: Загружаем вейпоинты с файла...
16:03:15:858 [Seriy]: Exec: [Error] (D:\Ultima Online\Programs\Мининг\Mining.sc at 582:3): Exception: '[Центральная' is not a valid integer value
16:03:15:874 [Seriy]: Script Mining.sc stopped successfuly
файл твой читается не правильно...
там должно быть число а у тебя слово, вот оно и парсит криво.
А зачем там етот файл вообще? Есть же в стелсе технология автопоиска тайлов, какой смысл от етих всех накрутов...
Помогите розобратся!
какое из его слов тебе непонятно?
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Seriy111
Neophyte
Neophyte
Posts: 28
Joined: 23.04.2014 17:32

Post by Seriy111 »

Я незнаю какое слово.Обьясните!
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by Vizit0r »

Code: Select all

for i := 0 to 5 do 
  begin 
    s := List.strings[i + 1] + ' '; 
    MinePos[i + 1].x := StrToInt(Copy(s, 1, Pos(' ', s)-1)); 
    Delete(s,1,Pos(' ',s)); 
    MinePos[i + 1].y := StrToInt(Copy(s, 1, Pos(' ', s)-1)); 
  end; 
  s := List.strings[8] + ' '; 
  CenterPoint.x := StrToInt(Copy(s, 1, Pos(' ', s)-1)); 
  Delete(s,1,Pos(' ',s)); 
  CenterPoint.y := StrToInt(Copy(s, 1, Pos(' ', s)-1)); 
  PointsNum := StrToInt(List.Strings[10]); 
  for i := 11 to PointsNum + 10 do 
  begin 
    s := List.strings[i] + ' '; 
    WaypointToHouse[i - 9].x := StrToInt(Copy(s, 1, Pos(' ', s)-1)); 
    Delete(s,1,Pos(' ',s)); 
    WaypointToHouse[i - 9].y := StrToInt(Copy(s, 1, Pos(' ', s)-1)); 
  end; 
  AddToSystemJournal('Готово.'); 
  AddToSystemJournal('Загружаем сундуки и параметры чара...'); 
  OreBox := StrToInt(List.strings[PointsNum + 12]); 
  MainBox := StrToInt(List.strings[PointsNum + 13]); 
  MaxWeight := StrToInt(List.strings[PointsNum + 14]); 
  DropWeight := StrToInt(List.strings[PointsNum + 15]); 
  MaxHits := StrToInt(List.strings[PointsNum + 16]); 
  Mine := Chr(206)+Chr(32)+Chr(194)+Chr(229)+Chr(235)+Chr(232)+Chr(234)+Chr(232)+Chr(233)+Chr(32)+Chr(193)+Chr(192)+Chr(210)+Chr(220)+Chr(202)+Chr(206)+Chr(44)+Chr(32)+Chr(241)+Chr(238)+Chr(231)+Chr(228)+Chr(224)+Chr(242)+Chr(229)+Chr(235)+Chr(252)+Chr(32)+Chr(236)+Chr(229)+Chr(227)+Chr(224)+Chr(45)+Chr(236)+Chr(224)+Chr(234)+Chr(240)+Chr(238)+Chr(241)+Chr(224)+Chr(33);
  MineName := List.strings[PointsNum + 17]; 
  AddToSystemJournal('Готово.'); 
переписал под твой файл - все проблемы были из-за того, что вверху добавлена одна точка.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by drabadan »

nah nah wrote:Out Of Range что?
вероятно у автора версия стелса старая или он не договаривает :)
Seriy111
Neophyte
Neophyte
Posts: 28
Joined: 23.04.2014 17:32

Post by Seriy111 »

Code: Select all

CONST
  Version = 3;


VAR
   List: TStringList;
   PointsNum: integer;
   MinePos: array[1..6] of Record
      x, y: integer;
   end;
   WaypointToHouse: array[1..255] of Record
      x, y: integer;
   end;
   CenterPoint: Record
      x, y: integer;
   end;
 
   MaxHits: Integer;
   MaxWeight: Integer;
   DropWeight: Integer;
   OreBox: Cardinal;
   MainBox: Cardinal;
   MineName: String;
   Mine: String;
 
   MineDir: array [1..9] of string;
   Item: array [1..7] of integer;
   Tools: array [1..5] of integer;
   DirNum, PosNum: Integer;
   ItemID: Cardinal;
   AntiStuckCounter: integer;
   ScriptStarted: boolean;
 
   i: integer;
   s: string;
   FileName: String;

/////////////////////////////////////////////////
//    Готовые процедцры, ниче не трогать       //
/////////////////////////////////////////////////
procedure WaitConnection(WaitTime : Integer);
begin
   if Connected then Exit;
   while not Connected do Wait(1000);
   wait(WaitTime);
end;

procedure DropOre;
begin
   If Weight > DropWeight then
   begin
      addtosystemjournal('Перевес, сбрасываем руду...');
      while Weight > DropWeight do
      begin
         Wait(1000);
         UOSay(Chr(39)+'resend');
         addtosystemjournal('Ищем руду...');
         Wait(5000);
         addtosystemjournal('Сбрасываем...');
         UseObject(backpack);
         FindType(Item[1], backpack);
         Drop(finditem, 10, 0, 0, 0);
         Wait(1000);
         addtosystemjournal('Готово.');
      end;
   end;
end;
 
/////////////////////////////////////////////
//    Основные процедуры скрипта           //
/////////////////////////////////////////////
procedure Loot;
begin
   FindDistance := 3; 
   If FindType($0EED,Ground) <> 0 then
   begin
      grab(findtype($0EED, Ground), 0);
      wait(200);
   end;
end;

procedure Dig;
begin
   Loot;
   MoveXY(MinePos[PosNum].x, MinePos[PosNum].y, false, 0, true);
   AddToSystemJournal('Начинаем копать...');
   Wait(3500);
   UOSay(Chr(39)+'pc mine '+MineDir[DirNum]);
end;

procedure MoveToHouse;
var
  j: integer;
begin
   Loot;
   DropOre;
   addtosystemjournal('Идем к дому');
   for j := 1 to PointsNum do
   begin
      addtosystemjournal(IntToStr(WaypointToHouse[j].x) + ' ' + IntToStr(WaypointToHouse[j].y));
      MoveXY(WaypointToHouse[j].x, WaypointToHouse[j].y, false, 0, true);
   end;
end; 

procedure CheckStam;
 begin
  If Stam < 40 then
   begin
    wait(1000);
   end;
  end; 

procedure MoveToMine;
var
  j: integer;
begin
   DropOre;
   addtosystemjournal('Идем в шахту.');
   for j := PointsNum - 1 downto 1 do
   begin
      newMoveXY(WaypointToHouse[j].x, WaypointToHouse[j].y, false, 0, true);
   end;
   MoveXY(CenterPoint.x, CenterPoint.y, false, 0, true);
end;


procedure Resend;
begin
   Wait(1000);
   UOSay(Chr(39)+'resend');
   Wait(5000);
end;

procedure checkbandage;
begin
   If FindType(Tools[2], backpack) = 0 then
   begin
      If not(isDead(self)) then
      begin
         MoveToHouse;
         UseSkill('Hiding')
         Wait(1000);
         UOSay(Chr(39)+'resend');
         AddToSystemJournal('Resend');
         wait(5500);
         AddToSystemJournal('Открываем сундук с приколами');
         UseObject(MainBox);
         AddToSystemJournal('Открываем пак');
         UseObject(backpack);
         Wait(2000);
         AddToSystemJournal('Ищем БИНТЫ');
         FindType(Tools[2], MainBox);
         If finditem = 0 then
         begin
            AddToSystemJournal('Бинты не найдены.');
            MoveToMine;
            exit;
         end;
         AddToSystemJournal('Берем вещь на курсор');
         DragItem(finditem,15);
         AddToSystemJournal('Кидаем в пак');
         DropItem(backpack,0,0,0);
         ClearJournal;
      end
      else exit;
   end;
   MoveToMine;
   Dig;
end;

procedure CheckHeal;
begin
   If Life < MaxHits then
   begin
      while Life < Str do
      begin
         If isDead(self) then exit;
         If InJournal('У вас нет бинтов') <> -1 then checkbandage;
         UOSay(Chr(39)+'pc heal self');
         Wait(3500);
         addtosystemjournal('Лечимся');
      end;
   end;
end;

procedure TakeOnEquip2;
var
   j: integer;
begin
   MoveToHouse;
   UseSkill('Hiding');
   Resend;
   AddToSystemJournal('Открываем сундук с кирками');
   Wait(5000);
   UseObject(MainBox);
   AddToSystemJournal('Открываем пак');
   UseObject(backpack);
   Wait(2000);
   for j := 1 to 3 do
   begin
      if FindType(Tools[j], backpack) = 0 then
      begin
         AddToSystemJournal('Ищем вещь '+IntToStr(j));
         FindType(Tools[j], MainBox);
         If finditem = 0 then
         begin
            AddToSystemJournal('Вещь '+IntToStr(j)+' не найдена.');
            MoveToMine;
            exit;
         end;
         AddToSystemJournal('Берем вещь на курсор');
         DragItem(finditem,10);
         Wait(500);
         AddToSystemJournal('Кидаем в пак');
         DropItem(backpack,0,0,0);
         Wait(500);
      end;
   end;
   if FindType(Tools[4],self) = 0 then
   begin
      Wait(500);
      AddToSystemJournal('Ищем вещь '+IntToStr(4));
      FindType(Tools[4], MainBox);
      If finditem = 0 then
      begin
         AddToSystemJournal('Вещь '+IntToStr(4)+' не найдена.');
         MoveToMine;
         exit;
      end;
      AddToSystemJournal('Берем вещь на курсор');
      DragItem(finditem,25);
      AddToSystemJournal('Кидаем в пак');
      DropItem(backpack,0,0,0);
      UseObject(backpack);
      Wait(500);
      FindType(Tools[4], backpack);
      Equip (RhandLayer, finditem);
   end;
   if FindType(Tools[5],self) = 0 then
   begin
      Wait(1000);
      AddToSystemJournal('Ищем вещь '+IntToStr(5));
      FindType(Tools[5], MainBox);
      If finditem = 0 then
      begin
         AddToSystemJournal('Вещь '+IntToStr(5)+' не найдена.');
         MoveToMine;
         exit;
      end;
      AddToSystemJournal('Берем вещь на курсор');
      DragItem(finditem,25);
      AddToSystemJournal('Кидаем в пак');
      DropItem(backpack,0,0,0);
      UseObject(backpack);
      Wait(1000);
      FindType(Tools[5], backpack);
      Equip (LhandLayer, finditem);
   end;
   CheckHeal;
   MoveToMine;
   Dig;
end;

procedure CheckGhost;
var
  j: integer;
begin
   If IsDead(self) then
   begin
      Wait(10000);
      newMoveXY(CenterPoint.x, CenterPoint.y, false, 0, true);
    MoveXY(1985, 2068, false, 0, true); //1
    MoveXY(1985, 2068, false, 0, true); //2
    MoveXY(1985, 2068, false, 0, true); //3
    MoveXY(1985, 2068, false, 0, true); //4
    MoveXY(1985, 2068, false, 0, true); //5
    MoveXY(1985, 2068, false, 0, true); //6
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true);
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
     MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
     MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
         Useobject($67FB7B92);     // Krest
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
         Useobject($42EE92A8); // Kalitka
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
       MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
    MoveXY(1985, 2068, false, 0, true); //7
      TakeOnEquip2;
   end;
end;

Procedure StoreOre;
var
  j: integer;
begin
   j := 1;
   MoveToHouse;
   while j < 8 do
   begin
      If FindType(Item[j], backpack) > 0 then
      begin
         ItemID := finditem;
         If not(isDead(self)) then MoveItem(ItemID, 0, OreBox, 0, 0, 0);
         Wait(1000);
      end
      else
      begin
         j := j + 1;
      end;
   end;
   addtosystemjournal('Идем в шахту');
   MoveToMine;
   Dig;
end;

procedure CheckWeight;
begin
   If Weight > MaxWeight then
   begin
      If not(isDead(self)) then StoreOre;
   end;
end;

procedure Next;
begin
   ClearJournal;
   DirNum := DirNum + 1;
   addtosystemjournal('Выбираем новую точку.');
   If DirNum > 9 then
   begin
      DirNum := 1;
      PosNum := PosNum + 1;
      If PosNum > 5 then
      begin
         PosNum := 1;
      end;
   end;
   CheckGhost;
   Dig;
end;

procedure CheckJournal;
var
   temp: String;
begin
   if (InJournal('Здесь нет больше руды..') <> -1) or (InJournal('Вы не можете копать') <> -1) then
   begin
      Next;
   end;
   if (InJournal('Вы стали немного известнее..') <> -1) then
   begin
      wait(5000);
      Dig;
   end;
   if InJournal('Призракам это не доступно!') <> -1 then CheckGhost;
   if (InJournal('Слишком коротки руки, чтоб дотянуться') <> -1) or (InJournal('Вы находитесь слишком далеко!') <> -1) then disconnect;
   if InJournal('Подождите, предыдущее действие не завершено') <> -1 then begin ClearJournal; Dig end;;
   if InJournal(Chr(53)+Chr(53)+Chr(53)+Chr(53)+Chr(53)) <> -1 then begin ClearJournal; UOsay('Бомбошка')  end;
   FindDistance := 15;
   If FindType($0190,ground) <> 0 then
   begin
      temp := Chr(50)+Chr(50)+Chr(49)+Chr(54)+Chr(57)+Chr(54)+Chr(55)+Chr(56);
      If IntToStr(finditem) = temp then UOsay(Mine) else begin UOSay('Привет сэр '+GetName(finditem)); UOSay('*записывает серийник чара*'); end;
      If (GetNotoriety(finditem) = 6) or (GetNotoriety(finditem) = 5) or (GetNotoriety(finditem) = 3) then UOSay('Не убивай, я свой :) ' );
      Ignore(finditem);
   end;
   If FindType($0191,ground) <> 0 then
   begin
      temp := Chr(52)+Chr(49)+Chr(50)+Chr(51)+Chr(53)+Chr(50)+Chr(53)+Chr(48);
      If IntToStr(finditem) = temp then UOsay(Mine) else begin UOSay('Привет сэр '+GetName(finditem)); UOSay('*записывает серийник чара*'); end;
      If (GetNotoriety(finditem) = 6) or (GetNotoriety(finditem) = 5) or (GetNotoriety(finditem) = 3) then UOSay('Не убивай, я свой :) ' );
      Ignore(finditem);
   end;
   if FindType($0018, ground) <> 0 then
   begin
      attack(finditem);
      while GetDistance(finditem) > 1 do
      begin     
         MoveXY(getX(finditem),getY(finditem),false,1,true);
         wait(100);
      end;
      If Life < MaxHits then
      begin
         while Life < Str do
         begin
            If isDead(self) then exit;
            If InJournal('У вас нет бинтов') <> -1 then checkbandage;
            UOSay(Chr(39)+'pc heal self');
            Wait(5000);
            addtosystemjournal('Лечимся');
         end;
      end;
   end;
   if FindType($0032, ground) <> 0 then
   begin
      attack(finditem);
      while GetDistance(finditem) > 1 do
      begin     
         MoveXY(getX(finditem),getY(finditem),false,1,true);
         wait(100);
      end;
      If Life < MaxHits then
      begin
         while Life < Str do
         begin
            If isDead(self) then exit;
            If InJournal('У вас нет бинтов') <> -1 then checkbandage;
            UOSay(Chr(39)+'pc heal self');
            Wait(5000);
            addtosystemjournal('Лечимся');
         end;
      end;
   end;
end;

procedure TakeOnEquip(ID: Cardinal);
var
   j: integer;
begin
   MoveToHouse;
   UseSkill('Hiding');
   Resend;
   AddToSystemJournal('Открываем сундук с кирками');
   Wait(5000);
   UseObject(MainBox);
   AddToSystemJournal('Открываем пак');
   UseObject(backpack);
   Wait(2000);
   for j := 1 to 3 do
   begin
      if FindType(Tools[j], backpack) = 0 then
      begin
         AddToSystemJournal('Ищем вещь '+IntToStr(j));
         FindType(Tools[j], MainBox);
         If finditem = 0 then
         begin
            AddToSystemJournal('Вещь '+IntToStr(j)+' не найдена.');
            MoveToMine;
            exit;
         end;
         AddToSystemJournal('Берем вещь на курсор');
         DragItem(finditem,10);
         Wait(1000);
         AddToSystemJournal('Кидаем в пак');
         DropItem(backpack,0,0,0);
         Wait(1000);
      end;
   end;
   for j := 4 to 5 do
   begin
      if FindType(Tools[j],self) = 0 then
      begin
         AddToSystemJournal('Ищем вещь '+IntToStr(j));
         FindType(Tools[j], MainBox);
         If finditem = 0 then
         begin
            AddToSystemJournal('Вещь '+IntToStr(j)+' не найдена.');
            MoveToMine;
            exit;
         end;
         AddToSystemJournal('Берем вещь на курсор');
         DragItem(finditem,25);
         Wait(300);
         AddToSystemJournal('Кидаем в пак');
         DropItem(backpack,0,0,0);
         Wait(800);
         UseObject(backpack);
         FindType(Tools[j], backpack);
         Equip(RhandLayer,(FindType(Tools[4], backpack)));
         Equip(LhandLayer,(FindType(Tools[5], backpack)));
      end;
   end;
   MoveToMine;
   Dig;
end;


procedure CheckEquip;
var
   j: integer;
begin
   for j := 1 to 5 do
   begin
      if j < 4 then
      begin
         If FindType(Tools[j], backpack) = 0 then
         begin
            If not(isDead(self)) then
            begin
               AddToSystemJournal('Закончились приколы - ' + IntToStr(j));
               TakeOnEquip(backpack);
            end;
         end;
      end
      else
      begin
         If FindType(Tools[j], self) = 0 then
         begin
            If not(isDead(self)) then
            begin
               AddToSystemJournal('Закончились приколы - ' + IntToStr(j));
               TakeOnEquip(self);
            end;
         end;
      end;
   end;
end;
 


///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/////////////////////    Основная часть   /////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
BEGIN
movethroughNpc := 10;
  AddToSystemJournal('Загружаем вейпоинты с файла...');
  List := TStringList.Create;
  FileName := Copy(GetName(self), 1, Length(GetName(self)) - 1);
  List.LoadFromFile(FileName + '.txt');
for i := 0 to 5 do
  begin
    s := List.strings[i + 1] + ' ';
    MinePos[i + 1].x := StrToInt(Copy(s, 1, Pos(' ', s)-1));
    Delete(s,1,Pos(' ',s));
    MinePos[i + 1].y := StrToInt(Copy(s, 1, Pos(' ', s)-1));
  end;
  s := List.strings[8] + ' ';
  CenterPoint.x := StrToInt(Copy(s, 1, Pos(' ', s)-1));
  Delete(s,1,Pos(' ',s));
  CenterPoint.y := StrToInt(Copy(s, 1, Pos(' ', s)-1));
  PointsNum := StrToInt(List.Strings[10]);
  for i := 11 to PointsNum + 10 do
  begin
    s := List.strings[i] + ' ';
    WaypointToHouse[i - 10].x := StrToInt(Copy(s, 1, Pos(' ', s)-1));
    Delete(s,1,Pos(' ',s));
    WaypointToHouse[i - 10].y := StrToInt(Copy(s, 1, Pos(' ', s)-1));
  end;
  AddToSystemJournal('Готово.');
  AddToSystemJournal('Загружаем сундуки и параметры чара...');
  OreBox := StrToInt(List.strings[PointsNum + 12]);
  MainBox := StrToInt(List.strings[PointsNum + 13]);
  MaxWeight := StrToInt(List.strings[PointsNum + 14]);
  DropWeight := StrToInt(List.strings[PointsNum + 15]);
  MaxHits := StrToInt(List.strings[PointsNum + 16]);
  Mine := Chr(206)+Chr(32)+Chr(194)+Chr(229)+Chr(235)+Chr(232)+Chr(234)+Chr(232)+Chr(233)+Chr(32)+Chr(193)+Chr(192)+Chr(210)+Chr(220)+Chr(202)+Chr(206)+Chr(44)+Chr(32)+Chr(241)+Chr(238)+Chr(231)+Chr(228)+Chr(224)+Chr(242)+Chr(229)+Chr(235)+Chr(252)+Chr(32)+Chr(236)+Chr(229)+Chr(227)+Chr(224)+Chr(45)+Chr(236)+Chr(224)+Chr(234)+Chr(240)+Chr(238)+Chr(241)+Chr(224)+Chr(33);
  MineName := List.strings[PointsNum + 17];
  AddToSystemJournal('Готово.'); 
  AddToSystemJournal('Инициализируем переменные...');
  DirNum := 1; PosNum := 1;
  Item[1] := $19B9;
  Item[2] := $0F25;
  Item[3] := $0F8C;
  Item[4] := $0F21;
  Item[5] := $0F2F;
  Item[6] := $0F2B;
  Item[7] := $0EED;
  Tools[1] := $0E85;
  Tools[2] := $0E21;
  Tools[3] := $097B;
  Tools[4] := $13FF;
  Tools[5] := $1B74;
  MineDir[1] := 'CENTER';
  MineDir[2] := 'N';
  MineDir[3] := 'NE';
  MineDir[4] := 'E';
  MineDir[5] := 'SE';
  MineDir[6] := 'S';
  MineDir[7] := 'SW';
  MineDir[8] := 'W';
  MineDir[9] := 'NW';
  ScriptStarted := false;
  AddToSystemJournal('Готово...');
  AddToSystemJournal('Запускаю макрос...');
  AntiStuckCounter := -1;
  Ignore(self);
  // Основной цикл.
  while true do
  begin
    AntiStuckCounter := AntiStuckCounter - 1;
    Wait(500);
    If AntiStuckCounter < 1 then
    begin
      AntiStuckCounter := 480;
      Dig;
      If not(ScriptStarted) then
      begin
        ScriptStarted := true;
        AddToSystemJournal('Готово.');
      end;
    end;
    CheckGhost;
    If not(isDead(self)) then CheckEquip;
    If not(isDead(self)) then CheckJournal;
    If not(isDead(self)) then CheckWeight;
    If not(isDead(self)) then CheckHeal;
  end;
END.
[Точки обкопок]
1939 324
1936 323
1933 322
1933 319
1936 320
1939 321
[Центральная точка]
1942 324
[Количество точек на пути к дому из шахты]
4
1942 324
1948 330
1948 348
1954 348
[сундук для руды, сундук для бинтов кирок хавки катана щит для арчера, макс вес,вес при котором надо скидывать руду, кол-во жизней для начала лечения]
$4530C4A0
$4530C4A0
270
320
120
Шахта Серый.
Last edited by Seriy111 on 01.06.2014 0:03, edited 3 times in total.
Seriy111
Neophyte
Neophyte
Posts: 28
Joined: 23.04.2014 17:32

Re:

Post by Seriy111 »

09:18:22:734 [Seriy]: Character Seriy Connected.
09:18:26:875 [Seriy]: Compiling
09:18:26:921 [Seriy]: Compiler: [Hint] (D:\Ultima Online\Programs\Мининг\mining.sc at 266:3): Variable 'J' never used
09:18:26:921 [Seriy]: Compiled succesfully
09:18:26:921 [Seriy]: Загружаем вейпоинты с файла...
09:18:26:937 [Seriy]: Готово.
09:18:26:937 [Seriy]: Загружаем сундуки и параметры чара...
09:18:26:937 [Seriy]: Готово.
09:18:26:937 [Seriy]: Инициализируем переменные...
09:18:26:937 [Seriy]: Готово...
09:18:26:937 [Seriy]: Запускаю макрос...
09:18:29:265 [Seriy]: Point X 1949 Y 347 marked as bad to 15 min
09:18:36:609 [Seriy]: Начинаем копать...
09:18:40:109 [Seriy]: Готово.
09:18:40:109 [Seriy]: Закончились приколы - 1
09:18:40:125 [Seriy]: Идем к дому
09:18:53:250 [Seriy]: Открываем сундук с кирками
09:18:58:250 [Seriy]: Открываем пак
09:19:00:312 [Seriy]: Ищем вещь 1
09:19:00:312 [Seriy]: Берем вещь на курсор
09:19:01:312 [Seriy]: Кидаем в пак
09:19:02:359 [Seriy]: Ищем вещь 2
09:19:02:359 [Seriy]: Берем вещь на курсор
09:19:03:375 [Seriy]: Кидаем в пак
09:19:04:421 [Seriy]: Ищем вещь 3
09:19:04:421 [Seriy]: Берем вещь на курсор
09:19:05:421 [Seriy]: Кидаем в пак
09:19:06:484 [Seriy]: Ищем вещь 4
09:19:06:484 [Seriy]: Берем вещь на курсор
09:19:06:781 [Seriy]: Кидаем в пак
09:19:07:734 [Seriy]: Drag error: Object not found.
09:19:07:734 [Seriy]: Ищем вещь 5
09:19:07:734 [Seriy]: Берем вещь на курсор
09:19:08:093 [Seriy]: Кидаем в пак
09:19:08:937 [Seriy]: Drag error: Object not found.
09:19:08:937 [Seriy]: Drag error: Object not found.
09:19:08:953 [Seriy]: Идем в шахту.
09:19:23:609 [Seriy]: Начинаем копать...
09:19:27:125 [Seriy]: Закончились приколы - 5
09:19:27:125 [Seriy]: Идем к дому
09:19:40:703 [Seriy]: Открываем сундук с кирками
09:19:45:703 [Seriy]: Открываем пак
09:19:47:750 [Seriy]: Ищем вещь 5
09:19:47:750 [Seriy]: Берем вещь на курсор
09:19:48:046 [Seriy]: Кидаем в пак
09:19:48:906 [Seriy]: Drag error: Object not found.
09:19:49:000 [Seriy]: Идем в шахту.
Last edited by Seriy111 on 01.06.2014 9:53, edited 3 times in total.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by Vizit0r »

4
1942 324
1948 330
1948 348
1954 348
1954 348

написано 4, а точек 5.
что ж ты хочешь-то.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Seriy111
Neophyte
Neophyte
Posts: 28
Joined: 23.04.2014 17:32

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by Seriy111 »

Проблема с 5 итемом.Он в сундуке есть,но не берет его и не одевает!
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by Vizit0r »

значит проверяй тип.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Seriy111
Neophyte
Neophyte
Posts: 28
Joined: 23.04.2014 17:32

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by Seriy111 »

09:19:07:734 [Seriy]: Drag error: Object not found.
09:19:07:734 [Seriy]: Ищем вещь 5
09:19:07:734 [Seriy]: Берем вещь на курсор
09:19:08:093 [Seriy]: Кидаем в пак
09:19:08:937 [Seriy]: Drag error: Object not found.
09:19:08:937 [Seriy]: Drag error: Object not found.
Не берет и неодеват!
09:19:47:750 [Seriy]: Ищем вещь 5
09:19:47:750 [Seriy]: Берем вещь на курсор
09:19:48:046 [Seriy]: Кидаем в пак
09:19:48:906 [Seriy]: Drag error: Object not found.
Берет и одевает при возврате к сундку, но пишет
09:19:48:906 [Seriy]: Drag error: Object not found.
Помогите исправить!
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by nah nah »

Code: Select all

  Tools[1] := $0E85;
  Tools[2] := $0E21;
  Tools[3] := $097B;
  Tools[4] := $13FF;
  Tools[5] := $1B74;
Проверь, соответствуют ли типы в списке с типами предметов, лежащих в сундуке. Проверять тип нужно командой ,info, НО вместо запятой у тебя может быть что-то другое. посмотреть можно тут
Seriy111
Neophyte
Neophyte
Posts: 28
Joined: 23.04.2014 17:32

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by Seriy111 »

nah nah wrote:

Code: Select all

  Tools[1] := $0E85;
  Tools[2] := $0E21;
  Tools[3] := $097B;
  Tools[4] := $13FF;
  Tools[5] := $1B74;
Проверь, соответствуют ли типы в списке с типами предметов, лежащих в сундуке. Проверять тип нужно командой ,info, НО вместо запятой у тебя может быть что-то другое. посмотреть можно тут
Итемы лежат те!Я писал выше что
09:19:07:734 [Seriy]: Drag error: Object not found.
09:19:07:734 [Seriy]: Ищем вещь 5
09:19:07:734 [Seriy]: Берем вещь на курсор
09:19:08:093 [Seriy]: Кидаем в пак
09:19:08:937 [Seriy]: Drag error: Object not found.
09:19:08:937 [Seriy]: Drag error: Object not found.
Не берет и неодевает!Потом идет в шахту проверяет наличие итема 5 и идет обратно к сундуку.Пишет
09:19:47:750 [Seriy]: Ищем вещь 5
09:19:47:750 [Seriy]: Берем вещь на курсор
09:19:48:046 [Seriy]: Кидаем в пак
09:19:48:906 [Seriy]: Drag error: Object not found
В результате его берет и одевает хотя тут пишет ошибку!
Как сделать что б за первый раз он брал все?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Помогите исправить макрос на мининг под Age Of Power!

Post by Vizit0r »

ты писал, и тебе писали.
Читай внимательно советы.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply