Program Veterinary; {$Include 'all.inc'} var t,k:integer; ctime : TDateTime; Const bandage=$0E21; Color_bndg=$0000; blbandage=$0E20; Sunduk=$40832368; //Сундук куда скидывам кровавые бинты и где лежит корм для лошадок Horse1=$000B907B; //Лошадка 1 Horse2=$000BE50C; //Лошадка 2 seno=$1EBD; //Сено procedure Check_eda; var tmp1 : cardinal; tmp2 : Integer; begin UseObject(Sunduk); FindType(seno,sunduk); if (FindCount>0) then begin MoveItem(FindItem,5,Horse1,0,0,0); wait(1250); end; tmp1 := findtype(seno,backpack); tmp2 := GetQuantity(tmp1); MoveItem(tmp1, tmp2, Sunduk, 0, 0, 0); end; procedure Check_eda2; var tmp1 : cardinal; tmp2 : Integer; begin UseObject(Sunduk); FindType(seno,sunduk); if (FindCount>0) then begin MoveItem(FindItem,5,Horse2,0,0,0); wait(1250); end; tmp1 := findtype(seno,backpack); tmp2 := GetQuantity(tmp1); MoveItem(tmp1, tmp2, Sunduk, 0, 0, 0); end; procedure Check_blbndg; begin Repeat FindType(blbandage,Backpack); while FindCount>0 do begin t:=CountEx(blbandage,Color_bndg,Backpack); MoveItem(FindItem,t,Sunduk,0,0,0); wait(1000); FindType(blbandage, backpack); end; Until FindCount=0; end; procedure getitems(item:cardinal); begin if (count(item)<3) then begin findType(item,Ground); if (FindCount > 0) then begin k := FindQuantity; Grab(finditem,20); wait(500); checksave; case item of bandage : addtosystemjournal('взял 20 bandage из ' + inttostr(k)); end; end else begin addtosystemjournal('Мало!!!'); repeat wait(5000); findType(item,Ground); until (FindCount > 0); Grab(finditem,20); wait(1000); checksave; case item of bandage : addtosystemjournal('взял 20 bandage из ' + inttostr(k)); end; end; end; end; procedure HealHorse1; begin waitconnection(5000); check_eda; getitems(bandage); while (GetHP(Horse1) < GetMaxHP(Horse1)) do begin ctime := Now; UseObject(FindType(bandage,Backpack)); WaitForTarget(1000); if targetpresent then begin TargetToObject(Horse1); end; k := 0; repeat wait(6000); k := k + 1; If (InJournalBetweenTimes('mummy', ctime, Now)<>-1) then exit; until (InJournalBetweenTimes('You put|apply|wait|already', ctime, Now)<>-1) or (k > 950); end; if (GetHP(Horse1)=GetMaxHP(Horse1)) then addtosystemjournal('Лошадка 1 полностью вылечена'); end; procedure HealHorse2; begin waitconnection(5000); check_eda2; getitems(bandage); while (GetHP(Horse2) < GetMaxHP(Horse2)) do begin ctime := Now; UseObject(FindType(bandage,Backpack)); WaitForTarget(1000); if targetpresent then begin TargetToObject(Horse2); end; k := 0; repeat wait(4000); k := k + 1; If (InJournalBetweenTimes('mummy', ctime, Now)<>-1) then exit; until (InJournalBetweenTimes('You put|apply|wait|already', ctime, Now)<>-1) or (k > 70); end; if (GetHP(Horse2)=GetMaxHP(Horse2)) then addtosystemjournal('Лошадка 2 полностью вылечена'); end; Begin FindDistance :=0; SetARStatus(true); While not Dead do Begin getitems(bandage); UOSAY('All kill'); WaitForTarget(1500); if targetpresent then begin TargetToObject(Horse1); end; CheckLag(1000); While (GetHP(Horse1) > GetMaxHP(Horse1)/2) and (GetHP(Horse2) > GetMaxHP(Horse2)/2) do wait(100); CheckLag(2000); UOSAY('All stop'); HealHorse1; HealHorse2; Check_blbndg; Hungry(0,-1); end; End.