Animal Taming for DRW
Posted: 23.09.2009 21:51
				
				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.