Code: Select all
//Animal Tamng for DRW
//Crafted byWladL
//
//Чар ходит за животиной и тупо ее тамит\релизит
//если животина пропала чар сделает 30 попыток ее найти, потом вернется на то место где он находился при старте скрипта, в надежде найти там другую.
//Порядок действий
//1)Поставить чара там где бывают животины(где-нить возле спавнера)
//2)вписать тип животины в скрипт (Animals:=[$00D3,$00D4];)
//3)запустить скрипт
program Taming;
{$Include 'hungry.inc'}
{$Include 'CheckSave.inc'}
label NewAnimal;
var
Animals:Array of Cardinal;
TimeStart:TDateTime;
Staff,Animal:Cardinal;
i,cnt,NoAnimalCnt,StartX,StartY:Integer;
Begin
Animals:=[$00D3,$00D4];//<сюда через запятую вписать типы животных
cnt:=0;
NoAnimalCnt:=0;
StartX:=GetX(self);
StartY:=GetY(self);
UOsay('all release');
if (FindType($13F8,backpack)=0) and (GetType(ObjAtLayer(LhandLayer))<>$13F8) then begin
AddToSystemJournal('Staff not found_. Exit.');
Exit;
end;
if (Staff=0) then
Staff:=FindType($13F8,backpack);
if (Staff=0) and (GetType(ObjAtLayer(LhandLayer))=$13F8)then
staff:=ObjAtLayer(LhandLayer);
NewAnimal:
FindDistance:=30;
for i := 0 to Integer(High(Animals)) do
begin
Animal:=FindType(Animals[i],ground);
if (Animal > 0) then begin
AddToSystemJournal(' Founded target is '+GetName(Animal));
break;
end;
end;
if (GetX(Animal)<=0) then
AddToSystemJournal('Animals not found ['+IntToSTR(NoAnimalCnt)+']');
while not Dead and (GetDistance(Animal)<=20) and (GetDistance(Animal)>-1) do begin
CheckHungry;
if TargetPresent then CancelTarget;
WaitTargetObject(Animal);
UseObject(Staff);
CheckSave;
TimeStart:=now;
repeat
Wait(1100);
MoveXY(GetX(Animal),GetY(Animal),1,false);
until (InJournalBetweenTimes('You fail|It seems|error|far|see the creature', TimeStart, Now)<>-1);
if pos('seems',Journal(LineIndex))>0 then begin
UOsay('all release');
cnt:=cnt+1;
SetGlobal('stealth','TestVar3','Releases - '+IntToSTR(cnt));
end;
wait(300);
end;
wait(5000);
NoAnimalCnt:=NoAnimalCnt+1;
if NoAnimalCnt >= 30 then begin
NoAnimalCnt:=0;
AddToSystemJournal('Go to start point');
easyMoveXY(StartX,StartY,0,false);
end;
if (not dead) then Goto NewAnimal;
End.