Внизу более новая версия! Старую оставил для ознакомления с направлением движения мысли : )
Code: Select all
program taketarget;
var
t1, t2: cardinal;
procedure taketarget;
var
cTime: tdatetime;
begin
// Отменяем старый таргет.
if targetpresent then
canceltarget
else
cancelwaittarget;
// Выходим из батл стойки.
if warmode then
setwarmode(false);
// Используем скилл для получения таргета.
uosay('Укажите бегемота.');
useskill('Remove Trap');
// Ждем появления таргета.
if NOT waitfortarget(15000) then begin
addtosystemjournal('Превышен лимит ожидания появления цели. Повторите попытку.');
exit;
end;
// Ждем указания цели.
cTime := now;
while targetpresent do begin
wait(300);
if cTime+(1.0/(24*60*4)) <= now then begin
canceltarget;
addtosystemjournal('Превышен лимит ожидания указания цели. Повторите попытку.');
exit;
end;
end;
// Присваиваем переменной ID цели.
t1 := lasttarget;
// Используем скилл для получения таргета.
uosay('Укажите ягненка.');
useskill('Remove Trap');
// Ждем появления таргета.
if NOT waitfortarget(15000) then begin
addtosystemjournal('Превышен лимит ожидания появления цели. Повторите попытку.');
exit;
end;
// Ждем указания цели.
cTime := now;
while targetpresent do begin
wait(300);
if cTime+(1.0/(24*60*4)) <= now then begin
canceltarget;
addtosystemjournal('Превышен лимит ожидания указания цели. Повторите попытку.');
exit;
end;
end;
// Присваиваем переменной ID цели.
t2 := lasttarget;
end;
begin
taketarget;
// Крутим и вертим цель как хотим.
clickonobject(t1);
checklag(15000);
wait(100);
addtosystemjournal(getname(t1));
clickonobject(t2);
checklag(15000);
wait(100);
addtosystemjournal(getname(t2));
end.
Code: Select all
program taketarget;
var
t1, t2: cardinal;
function taketarget(s: string; var t: cardinal): boolean;
var
cTime: tdatetime;
begin
// Отменяем старый таргет.
if targetpresent then
canceltarget
else
cancelwaittarget;
// Выходим из батл стойки.
if warmode then
setwarmode(false);
// Используем скилл для получения таргета.
clientprint(s);
useskill('Remove Trap');
// Ждем появления таргета.
if NOT waitfortarget(15000) then begin
clientprint('Превышен лимит ожидания появления таргета. Повторите попытку.');
addtosystemjournal('Превышен лимит ожидания появления таргета. Повторите попытку.');
exit;
end;
// Ждем указания цели.
cTime := now;
while targetpresent do begin
wait(300);
if cTime+(1.0/(24*60*4)) <= now then begin
canceltarget;
clientprint('Превышен лимит ожидания цели. Повторите попытку.');
addtosystemjournal('Превышен лимит ожидания цели. Повторите попытку.');
exit;
end;
end;
// Отмена таргета?
if lasttarget = 0 then begin
uosay('Таргет отменен.');
addtosystemjournal('Таргет отменен.');
exit;
end;
// Присваиваем переменной ID цели.
t := lasttarget;
result := true;
end;
begin
if NOT taketarget('Укажите слона.', t1) then
exit;
if NOT taketarget('Укажите слониху слону.', t2) then
exit;
// Крутим и вертим цель как хотим.
clientprint('Цель 1 - $' + inttohex(t1, 8));
addtosystemjournal('Цель 1 - $' + inttohex(t1, 8));
clientprint('Цель 2 - $' + inttohex(t2, 8));
addtosystemjournal('Цель 2 - $' + inttohex(t2, 8));
end.