Page 1 of 1

Подскажите пожалуйста как получить ID животного через стелс?

Posted: 28.10.2010 14:36
by un.k
Какую нужно использовать команду, если известен тип животного, а нужно получить ID животного.

Хочу сделать скрипт на таминг - животное появляется, чар его тамит, потом убивает и ждет пока животное реснится.

Posted: 28.10.2010 14:48
by Vizit0r
findtype

Posted: 28.10.2010 15:06
by un.k

Code: Select all

rogram taming; 

var 
animal : cardinal; 
ctime : TDateTime; 

{$Include 'all.inc'} 

Const
animalType = $0027; 

Begin 
   While not Dead do 
	begin 
FindDistance := 2;
	if (findtype(animalType, Ground) = 0) then animal := finditem;
	if (inJournalBetweenTimes('You see: a mongbat', ctime, Now)<>-1) then
		begin
		SetWarMode(false);
		if TargetPresent then CancelTarget; 
		CheckTargetError(5,2);
	        CheckSave; 
		UseSkill('Animal Taming'); 
		WaitTargetGround(animalType);
		wait(5000);
		if (inJournalBetweenTimes('успешно', ctime, Now)<>-1) then 
		begin
		SetWarMode(true);
		attack(animal);
		end;
		end;
	end;
end.
вот скрипт, пишет
19:04:39 []: Attack error: Object not finded.

Posted: 28.10.2010 15:24
by Savage
un.k wrote:

Code: Select all

	if (findtype(animalType, Ground) = 0) then animal := finditem;
вот скрипт, пишет
19:04:39 []: Attack error: Object not finded.
Если ничего не нашёл то анималу присвоить неизвестно что?

Code: Select all

      WaitTargetGround(animalType); 
а тут наверное должен быть анимал. Или зачем ты его вообще ищешь?

Posted: 28.10.2010 15:25
by Vizit0r
1) if (findtype(animalType, Ground) = 0) then animal := finditem;
если ничего не нашли - то пусть animal как раз и будет это самое ничего.
надо ставить одну большую проверку на всё -
if findtype(animalType, Ground) > 0 then
if (inJournalBetweenTimes('You see: a mongbat', ctime, Now)<>-1) then
begin
....

потому что если животное не найдено, то и таймить нечего.

Posted: 28.10.2010 15:42
by un.k
спасибо!!! )

Posted: 28.10.2010 16:13
by un.k
теперь другая проблема, недождавжись пока затамит, начинает атачить.
Т.е. 1 раз пробует тамить, потом атачит, потом опять пробует тамить.
Что я сделал неправильно?

Code: Select all

program taming; 

var 
animal : cardinal; 
ctime : TDateTime; 

{$Include 'all.inc'} 

Const
animalType = $0027; 


Begin 
if (findtype(animalType, Ground) > 0 ) then animal := finditem;
if (inJournalBetweenTimes('You see: a mongbat', ctime, Now)<>-1) then 

   While not Dead do 


	begin


FindDistance := 2;
	begin
		
		SetWarMode(false);
		if TargetPresent then CancelTarget; 
		CheckTargetError(5,2);
	        CheckSave; 
	        repeat
		UseSkill('Animal Taming'); 
		WaitTargetGround(animalType);
		wait(10000);
		until (inJournalBetweenTimes('Âû óñïåøíî ïðèðó÷èëè mongbat', ctime, Now)<>-1)
	
		if (inJournalBetweenTimes('pretty', ctime, Now)<>-1) then 
		
		attack(animal);
		wait(10000);
	        
		end;
	end;
end.

Posted: 28.10.2010 16:35
by Vizit0r
until (inJournalBetweenTimes('Âû óñïåøíî ïðèðó÷èëè mongbat', ctime, Now)<>-1)
это отлично, ты проверяешь на наличие строки с момента ctime до настоящего момента.
но...где же установка ctime?
а должна
ctime := Now;
стоять прямо перед строкой
UseSkill('Animal Taming');

и ненадо ловить полную строку. 1-2 уникальных для данной фразы слов будет вполне достаточно.


это то, что в глаза бросилось.

Posted: 28.10.2010 16:47
by un.k
спасибо. ушел тестить