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.
Если ничего не нашёл то анималу присвоить неизвестно что?
а тут наверное должен быть анимал. Или зачем ты его вообще ищешь?
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
спасибо. ушел тестить