Здравствуйте, вот мой первый топик по поводу автоскупки...Написал скрипт на скупку регов...Суть скрипта такая- рекол к регам скупает улетает к другим регам,снова скупает...по окончании этого всего дела реколиться в палатку выкладывает купленное набирает реги на рекол и деньги и делает лог аут! Единственное что не могу понять как сделать так чтобы он реколился и если вендор далеко или регов нет у него, чар просто улетал на следующую скупку...Дело в том, что чар улетает только в том случае если скупил... Еще буду признателен если кто-ниюудь в макрос вставит CheckSave...Спасибо за помощь...
program Skupka_NS;
{$Include 'all.inc'} 
const
kolvo=360;
NS=$0F88;
RunebookNS=$7F4B1E6E;
Sunduk = $40009B07;
Runebook=$7F2EDC11;
UnloadX = 942;    //Координаты выгрузки
UnloadY = 2304;     //Координаты выгрузки
weight1 = 350; //Полный вес с регами
gp=$0EED;
MineXdel = 5287; //Координгаты покупки
MineYdel = 3981; //Координгаты покупки
MineXbrit1 = 1502; //Координгаты покупки
MineYbrit1 = 1661; //Координгаты покупки
reg1 = $0F86;       
reg2 = $0F7A;      
reg3 = $0F7B;
//    РЕКОЛ   
procedure Recall2;
begin
//Рекол к сундуку
repeat
repeat
wait(5000);
Until Recall(Runebook,8); //Рекол по 8й руне
CheckLag;
wait (5000);                //Задержка на рекол
until ((GetX(self) = UnloadX) and (GetY(self) = UnloadY))
//Вынрузка логов
UseObject( Sunduk );
wait(1000);
addtosystemjournal('Выкладываем Реги'); 
while Count( NS ) > 0 do
begin
   FindType( NS, backpack ); 
   MoveItem( finditem, 0, Sunduk, 0, 0, 0 ); 
   wait( 500 ); 
end;
//Добор регов и денег
if Count( reg1 ) < 10 then 
begin
addtosystemjournal('Берем реги'); 
  FindType( reg1, Sunduk )   
  if FindCount = 0 Then 
  begin
   addtosystemjournal('Реги кончились, скрипт остановлен'); 
   exit; 
  end  
  Grab(  finditem, 50 ); 
  wait( 500 ); 
end;
if Count( reg2 ) < 10 then 
begin
addtosystemjournal('Берем реги'); 
  FindType( reg2, Sunduk )   
  if FindCount = 0 Then 
  begin
   addtosystemjournal('Реги кончились, скрипт остановлен'); 
   exit; 
  end  
  Grab(  finditem, 50 ); 
  wait( 500 ); 
end;
if Count( reg3 ) < 10 then 
begin
addtosystemjournal('Берем реги'); 
  FindType( reg3, Sunduk )   
  if FindCount = 0 Then 
  begin
   addtosystemjournal('Реги кончились, скрипт остановлен'); 
   exit; 
  end  
  Grab(  finditem, 50 ); 
  wait( 500 ); 
end;
if Count( gp ) < 2000 then 
begin
addtosystemjournal('Берем денег'); 
  FindType( gp, Sunduk )   
  if FindCount = 0 Then 
  begin
   addtosystemjournal('денег нет, скрипт остановлен'); 
   exit; 
  end  
  Grab(  finditem, 10000 ); 
  wait( 500 ); 
end;
end;
Procedure del;
var i, k : Integer; 
begin 
//Рекол к регам
addtosystemjournal('Реколимся в делюсию'); 
repeat
repeat
wait(5000);
Until Recall(RunebookNS,11) //Рекол по 11й руне
CheckLag;
wait (5000);                //Задержка на рекол
until ((GetX(self) = MineXdel) and (GetY(self) = MineYdel))
wait(2000);
   if not GetAutoBuyMode then SetAutoBuyMode(true); 
   SetAutoBuyDelay(4); 
   AutoBuy(NS,$0000,kolvo);
      
      k := Count(NS); 
      waitconnection(5000); 
      UOSay('Aneida buy'); 
      repeat 
         wait(100) 
      until (Count(NS) > k) or (Gold < (kolvo*2)) or (Gold = Gold); 
      i := Count(NS); 
      addtosystemjournal('куплено ' + inttostr(i-k) + ' из ' + inttostr(i) + ' регов');
AutoBuy(NS,$0000,0);
end;
Procedure brit1;
var i, k : Integer; 
begin 
//Рекол к регам
addtosystemjournal('Реколимся в брит1'); 
repeat
repeat
wait(5000);
Until Recall(RunebookNS,1) //Рекол по 1й руне
CheckLag;
wait (5000);                //Задержка на рекол
until ((GetX(self) = MineXbrit1) and (GetY(self) = MineYbrit1))
wait(2000);
   if not GetAutoBuyMode then SetAutoBuyMode(true); 
   SetAutoBuyDelay(4); 
   AutoBuy(NS,$0000,kolvo);
      repeat
      k := Count(NS); 
      waitconnection(5000); 
      UOSay('Bront buy'); 
       
         wait(100) 
      until (Count(NS) > k) or (Gold < (kolvo*2)); 
      i := Count(NS); 
      addtosystemjournal('куплено ' + inttostr(i-k) + ' из ' + inttostr(i) + ' регов');
AutoBuy(NS,$0000,0);
wait(2000);
   if not GetAutoBuyMode then SetAutoBuyMode(true); 
   SetAutoBuyDelay(4); 
   AutoBuy(NS,$0000,kolvo);
      
      k := Count(NS); 
      waitconnection(5000); 
      UOSay('Burgess buy'); 
      repeat 
         wait(100) 
      until (Count(NS) > k) or (Gold < (kolvo*2)); 
      i := Count(NS); 
      addtosystemjournal('куплено ' + inttostr(i-k) + ' из ' + inttostr(i) + ' регов');
AutoBuy(NS,$0000,0);
end;
BEGIN
del;
if Weight > weight1 then
begin
addtosystemjournal('Много веса --> рекол'); 
Recall2;
end;
brit1;
if Weight > weight1 then
begin
addtosystemjournal('Много веса --> рекол'); 
Recall2;
end;
Recall2;
clearjournal;
END.
			
			
									
									
						Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7 
	Помогите со скриптом на скупку регов...
Ну ладно, значит ты при копировании посъедал скобки и точки-запятые.
вот изза таких структур он зависает у тебя:
перепеши без цикла, иначе получаеш зацикливание бесконечное.
			
			
									
									
						вот изза таких структур он зависает у тебя:
Code: Select all
k := Count(NS);
waitconnection(5000);
UOSay('Aneida buy');
repeat
wait(100)
until (Count(NS) > k) or (Gold < (kolvo*2)) or (Gold = Gold);Так спасибо всё сделал так как ты сказал, все получилось...  Сейчас только надо исправить надпись-КУПЛЕНО столько то из стольки то...(почему-то пишет куплено 0 из -и смотрит на количество в бэкпаке) и вторая проблемка- если денег становится мееньше допустим 2000 то автоматом рекол в палатку за деньгами...Ну сейчас попробую это разрешить.
 Сейчас только надо исправить надпись-КУПЛЕНО столько то из стольки то...(почему-то пишет куплено 0 из -и смотрит на количество в бэкпаке) и вторая проблемка- если денег становится мееньше допустим 2000 то автоматом рекол в палатку за деньгами...Ну сейчас попробую это разрешить.
			
			
									
									
						 Сейчас только надо исправить надпись-КУПЛЕНО столько то из стольки то...(почему-то пишет куплено 0 из -и смотрит на количество в бэкпаке) и вторая проблемка- если денег становится мееньше допустим 2000 то автоматом рекол в палатку за деньгами...Ну сейчас попробую это разрешить.
 Сейчас только надо исправить надпись-КУПЛЕНО столько то из стольки то...(почему-то пишет куплено 0 из -и смотрит на количество в бэкпаке) и вторая проблемка- если денег становится мееньше допустим 2000 то автоматом рекол в палатку за деньгами...Ну сейчас попробую это разрешить.Выдаёт  такую ошибку вроде всё правильно написано ....не пойму ...
2:05:23 [koko]: Compiler: [Error] (Скупка регов.txt at 38:7): Unknown identifier 'Recall'
2:05:23 [koko]: Compiling failed
2:05:23 [koko]: Script Скупка регов.txt stopped successfuly
Это случайно не из-за того что написано Recall2; а не просто Recall; ?
			
			
									
									
						2:05:23 [koko]: Compiler: [Error] (Скупка регов.txt at 38:7): Unknown identifier 'Recall'
2:05:23 [koko]: Compiling failed
2:05:23 [koko]: Script Скупка регов.txt stopped successfuly
Это случайно не из-за того что написано Recall2; а не просто Recall; ?
