Здравствуйте, вот мой первый топик по поводу автоскупки...Написал скрипт на скупку регов...Суть скрипта такая- рекол к регам скупает улетает к другим регам,снова скупает...по окончании этого всего дела реколиться в палатку выкладывает купленное набирает реги на рекол и деньги и делает лог аут! Единственное что не могу понять как сделать так чтобы он реколился и если вендор далеко или регов нет у него, чар просто улетал на следующую скупку...Дело в том, что чар улетает только в том случае если скупил... Еще буду признателен если кто-ниюудь в макрос вставит 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 то автоматом рекол в палатку за деньгами...Ну сейчас попробую это разрешить.
Выдаёт такую ошибку вроде всё правильно написано ....не пойму ...
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; ?