незнаю как у вас, а ну нас при инскрипте всегда было 2 таргета - первый на бланкскроллы, второй на спеллбуку, и тогда появляется меню - первое с выбором круга, второе с выбором заклинания.
автоменю не вставил тогда.
вот полный скрипт.
Code: Select all
program Inscription;
var
time, blank,SB : Cardinal;
stime : TDateTime;
const writtenscroll = $1F60;
{$Include 'all.inc'}
procedure Dropscrolls(scroll:Word);
begin
findtype(scroll,backpack);
IF FindFullQuantity > 0 then
begin
Stack(scroll,$FFFF);
Wait(300);
end;
end;
procedure Getscrolls(scroll:Word);
begin
findtype(scroll,backpack);
IF FindFullQuantity < 50 then
begin
Grab(findtype(scroll,ground),500);
wait(300)
end;
end;
procedure GetReg(reg:Word);
begin
Dropscrolls(writtenscroll);
findtype(reg,backpack);
IF FindFullQuantity < 50 then
begin
Grab(findtype(reg,ground),500);
wait(300)
end;
end;
procedure RegsCheck(BMoss, MRoot, BPearl, GArlic, GSerg, SAsh, NShade, SSilk : Integer);
begin
IF BMoss <> 0 then GetReg(BM);
IF MRoot <> 0 then GetReg(MR);
IF BPearl <> 0 then GetReg(BP);
IF GArlic <> 0 then GetReg(GA);
IF GSerg <> 0 then GetReg(GS);
IF SAsh <> 0 then GetReg(SA);
IF NShade <> 0 then GetReg(NS);
IF SSilk <> 0 then GetReg(SS);
end;
Begin // Main program start!!!
AutoMenu('circle','7');
AutoMenu('spell','Gate');
SB:=findtypeex($0EFA,0,backpack,false);
Hungry(1,$FFFFFFFF);
time :=Timer;
while true do
begin
if Timer > Time + 10*60*1000 then
begin
Hungry(1,$FFFFFFFF);
time :=Timer;
end;
blank:=findtype($E34,backpack);
CheckTargetError(10,2);
waitconnection(130000);
stime := Now;
while (blank = 0) and (Now < stime + (3.0/1440)) do
begin
wait(100);
blank:=findtype($E34,backpack);
end;
if (Now > stime + (3.0/1440)) then
begin
AddToSystemJournal('Finding blank timeout');
Disconnect;
end;
While Mana > 30 do
begin
if TargetPresent then CancelTarget;
stime := Now;
WaitTargetObject(blank)
CheckSave;
UseSkill('Inscription');
repeat
CheckSave;
InJournalBetweenTimes('spellbook|already|Targetting', stime, Now);
wait(100);
until (LineCount > 0) or (Now > stime + (3.0/1440));
stime := Now;
WaitForTarget(5000);
if TargetPresent then TargetToObject(SB);
repeat
CheckSave;
InJournalBetweenTimes('create|fail|reach|Targetting', stime, Now);
wait(100);
until (LineCount > 0) or (Now > stime + (3.0/1440));
end;
while Mana < Int do
begin
CheckSave;
UseSkill('Meditation');
wait(3500);
end;
wait(7000);
CheckSave;
IF Weight > 300 then Dropscrolls(writtenscroll);
RegsCheck(0,1,1,0,0,1,0,0);
Getscrolls($E34); // blank
end;
End.
кстати,
AutoMenu('circle','7');
AutoMenu('spell','Gate');
совсем не надо в цикле ставить, одного раза (как в скрипте приведенном) в начале - вполне достаточно, если не надо менять значения в меню