Версия 1.1
Code: Select all
Program AlchemyDRW;
// (c) v26RuS (Galiano{ASTARTA} DRW) v1.1
{$Include 'all.inc'}
var
STime: TDateTime;
q: integer;
AlchemyFlag : Boolean;
const
WhatYouDo = 'Total Mana'; // Что делаем
TypBottles = $0F0E; // Тип пустых бутылок
TypPotion = $0F0A; // Тип готовых бутылок
ColPotion = $0F0A; // Цвет готовых бутылок
TypReag= $0F87; // Тип реагентов из которых делаем
CountRegs = 10; // Какое количество реагентов брать
CountBottles = 5; // Какое количество пустых бутылок брать
Sunduk_reags_bottels = $40053D27; // ИД сундука с которого берем бутылки и реагенты
Sunduk_craft = $40053D27; // ИД сундука в который кладем готовый продукт
procedure check_reag;
begin
FindType(TypReag,Backpack);
if (FindCount=0) OR (Count(TypReag)<10) then
begin
UseObject(Sunduk_reags_bottels);
wait(250);
FindType(TypReag,Sunduk_reags_bottels);
if (FindCount>0) and (CountEx(TypReag,$0000,Sunduk_reags_bottels)>100) then
begin
MoveItem(FindItem,CountRegs,Backpack,0,0,0);
wait(250);
AddToSystemJournal('Добрали '+IntToStr(CountRegs)+' реагентов. На данный момент имеем '+IntToStr(Count(TypReag))+' штук. Осталось ещё '+IntToStr(CountEx(TypReag,$0000,Sunduk_reags_bottels))+' реагентов.');
end
else
AddToSystemJournal('Ошибка во время добора реагентов.');
AlchemyFlag := false;
end
end;
procedure check_bootle;
begin
FindTypeEx(TypBottles,$0000,Backpack,false);
if (FindCount=0) OR (Count(TypBottles)<10) then
begin
UseObject(Sunduk_reags_bottels);
wait(250);
FindTypeEX(TypBottles,$0000,Sunduk_reags_bottels,false);
if (FindCount>0) and (CountEx(TypBottles,$0000,Sunduk_reags_bottels)>100) then
begin
MoveItem(FindItem,CountBottles,Backpack,0,0,0);
wait(250);
AddToSystemJournal('Добрали '+IntToStr(CountBottles)+' бутылок. На данный момент имеем '+IntToStr(CountEx(TypBottles,$0000,backpack))+' штук. Осталось ещё '+IntToStr(CountEx(TypBottles,$0000,Sunduk_reags_bottels))+' бутылок.');
end
else
AddToSystemJournal('Ошибка во время добора реагентов.');
AlchemyFlag := false;
end
end;
procedure craft_bottle;
begin
FindTypeEx(TypPotion,ColPotion,Backpack,false);
if (FindCount>0) AND (CountEx(TypPotion,ColPotion,backpack) > 9) then
begin
MoveItem(FindItem,1,Sunduk_craft,0,0,0);
wait(800);
end;
end;
Begin
AlchemyFlag := true;
CancelMenu;
wait(500)
Automenu('What',WhatYouDo);
repeat
check_reag;
check_bootle;
UseObject(FindType(TypReag,Backpack))
Wait(500);
STime := Now;
repeat
wait(500)
q := q+1;
checksave;
until (InJournalBetweenTimes('You put', STime, Now)<>-1) or (InJournalBetweenTimes('You toss', STime, Now)<>-1) or (AlchemyFlag = false) or (q > 300);
craft_bottle;
until (AlchemyFlag = false) or Dead;
FullDisconnect;
End.