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

Помогите со скриптом на скупку регов...

тут можно задать вопрос по скриптингу
Post Reply
Parmesan!
Posts: 3
Joined: 11.08.2009 8:08

Помогите со скриптом на скупку регов...

Post by Parmesan! »

Здравствуйте, вот мой первый топик по поводу автоскупки...Написал скрипт на скупку регов...Суть скрипта такая- рекол к регам скупает улетает к другим регам,снова скупает...по окончании этого всего дела реколиться в палатку выкладывает купленное набирает реги на рекол и деньги и делает лог аут! Единственное что не могу понять как сделать так чтобы он реколился и если вендор далеко или регов нет у него, чар просто улетал на следующую скупку...Дело в том, что чар улетает только в том случае если скупил... Еще буду признателен если кто-ниюудь в макрос вставит 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.
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Post by Tomers »

Ну начнем с того, что этот скрипт незапустится вобще ( в нем куча синтаксических ошибок).
Ну а по поводу твоего вопроса щас перепишу его посвоему и подумаю.
Parmesan!
Posts: 3
Joined: 11.08.2009 8:08

Post by Parmesan! »

Tomers wrote:Ну начнем с того, что этот скрипт незапустится вобще ( в нем куча синтаксических ошибок).
Ну а по поводу твоего вопроса щас перепишу его посвоему и подумаю.
Вот как раз он то и запускается...И все делает в точности как я и написал...
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Post by Tomers »

Ну ладно, значит ты при копировании посъедал скобки и точки-запятые.
вот изза таких структур он зависает у тебя:

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);
перепеши без цикла, иначе получаеш зацикливание бесконечное.
Parmesan!
Posts: 3
Joined: 11.08.2009 8:08

Post by Parmesan! »

Так спасибо всё сделал так как ты сказал, все получилось... :D Сейчас только надо исправить надпись-КУПЛЕНО столько то из стольки то...(почему-то пишет куплено 0 из -и смотрит на количество в бэкпаке) и вторая проблемка- если денег становится мееньше допустим 2000 то автоматом рекол в палатку за деньгами...Ну сейчас попробую это разрешить.
Mr.Ripley
Posts: 7
Joined: 11.10.2010 0:40

Post by Mr.Ripley »

Выдаёт такую ошибку вроде всё правильно написано ....не пойму ...

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; ?
Post Reply