Code: Select all
Program SparringHeal;
// Непрерывный подхил чара во время боя и во время ожидания.
// Сброс кровавых бинтов и подбор с пола чистых.
// (Для шарда Forest Wars. Особенность: новое использование бинтов
// только после завершения предыдущего использования. Оружие
// из рук не выпадает.)
// v.1.00b (c) Edred
{$Include 'all.inc'}
var
ctime : TDateTime;
k : integer;
const
Bint=$0E21;
BlBint=$0E20;
Begin
	FindDistance:=2;
	while not Dead do
	begin
		if (Count(Bint) = 0) then
		begin
			// доберем бинтов и сбросим кровавые
			FindType(Bint, Ground);
			if (FindCount > 0) then
			begin
				Grab(finditem,20);
				wait(1000);
			end
			else
			begin
				addtosystemjournal('Не нашел бинтов! Подложите на пол!');
				repeat
					wait(500)
					FindType(Bint, Ground);
				until (FindCount > 0);
				Grab(finditem,20);
				wait(1000);
			end;
			FindType(BlBint, Backpack);
			while (FindCount > 0) do
			begin
				Drop(finditem,0,0,0,0);
				wait(1000);
				FindType(BlBint, Backpack);
			end;
		end;
		// лечимся до восстановления здоровья
		while (HP < MaxHP) and (Count(Bint) > 0) do
		begin
			FindType(Bint, Backpack);
			if TargetPresent then CancelTarget;
			ctime := Now;
			UseObject(FindItem);
			WaitForTarget(5000);
			If TargetPresent then TargetToObject(Self);
			k := 0;
			repeat
				wait(100);
				k := k + 1;
			until (InJournalBetweenTimes('You put the bloody bandage|failed.', ctime, Now)<>-1) or (k > 300);
		end;
	end;
End.
