Page 1 of 1
Ловля рыбы
Posted: 26.03.2012 12:30
by Tomers
Добрый день.
При ловле рыбы конструкция:
Code: Select all
WaitTargetXYZ(GetX(self)+3,Gety(self),GetZ(self));
UseObject(FindType(fish_pole,$ffff));
Нормально работает при ловле с корабля, но не работает при ловле с пирса, хотя руками с пирса по этим же координатам работает нормально. Подскажите в чем проблема и как можна решить. Готовые скрипты на ловлю рыбы смотрел, через "targettotile" ловить не хочет или возможно я не разобрался с "targettotile".
Re: Ловля рыбы
Posted: 26.03.2012 12:31
by Vizit0r
последнее вернее.
основной вопрос - не знаю.
Re: Ловля рыбы
Posted: 27.03.2012 10:28
by Tomers
Подскажите, как прописать забрасывание удочки в воду с пирса.
Re: Ловля рыбы
Posted: 27.03.2012 15:08
by MuDaCk
Я делал вот так:
Code: Select all
for x := -4 to 4 do
begin
for y := -4 to 4 do
begin
if Hidden then uosay('.');
FBegin:=Now;
UseObject(ObjAtLayerEx(LHandLayer,self));
WaitForTarget(5000);
i:= 0;
If TargetPresent then TargetToTile(0, GetX(self)+x, GETY(self)+y, 251);
repeat
checkweight;
collectthefish;
wait(500);
i:=i+1;
until (InJournalBetweenTimes('You put the|Previous targeting cancelled|You stop fishing|There are no fish here|You fail to catch anything|Try fishing elsewhere|That is too far away|Targeting cancelled|You cannot fish so close to yourself', FBegin, Now) <> -1) or (i > 40)
end;
end;
Re: Ловля рыбы
Posted: 27.03.2012 18:43
by Gunter
Может быть просто координата Z на пирсе не соответствует координате Z требуемого тайла? Например, у воды координата равна -5, а на пирсе -2.
Re: Ловля рыбы
Posted: 27.03.2012 20:43
by MuDaCk
Gunter wrote:Может быть просто координата Z на пирсе не соответствует координате Z требуемого тайла? Например, у воды координата равна -5, а на пирсе -2.
у вас -2, у меня 251)))
Re: Ловля рыбы
Posted: 27.03.2012 21:56
by Vizit0r
выкинь инжект, да?
Re: Ловля рыбы
Posted: 27.03.2012 22:56
by Tomers
Code: Select all
for i:=0 to 5 do begin
CancelTarget;
UseObject(FindType(fish_pole,$ffff));
while not(TargetPresent) do wait(200);
TargetToTile(0,GetX(self)+3,Gety(self),251);
//targetToTile(0,GetX(self)+3,Gety(self),GetSurfaceZ(GetX(self)+3,Gety(self),0));
//WaitTargetXYZ(GetX(self)+3,Gety(self),GetSurfaceZ(GetX(self)+3,Gety(self),0));
wait(9000);
end;
не работает.
Re: Ловля рыбы
Posted: 28.03.2012 14:45
by MuDaCk
Tomers wrote:
не работает.
Слёту могу два-три варианта "не работает" расписать
1) В сисжурнале пишется "useobject error"
2) В Уожурнале пишется "объект слишком далеко"
3) Тут нельзя рыбачить
4) в УОжурнале:"Удочка должна быть в руках".
Выражайтесь точнее.
Re: Ловля рыбы
Posted: 29.03.2012 16:42
by Tomers
MuDaCk wrote:
Слёту могу два-три варианта "не работает" расписать
1) В сисжурнале пишется "useobject error"
2) В Уожурнале пишется "объект слишком далеко"
3) Тут нельзя рыбачить
4) в УОжурнале:"Удочка должна быть в руках".
Выражайтесь точнее.
Втом то и дело, что в сисжурнале не пишеться вообще ничего, кроме вопроса: "Где хотите ловить..." который задается одновременно с появлением прицела. Следовательно удочка юзается. Но рыба не вылавливается. У нас на шарде просто даблклик на удочку, появляется прицел и ним нужно ткнуть на воду. При ловле с Лодки такой проблемы небыло. Конструкция:
Code: Select all
WaitTargetXYZ(GetX(self)+3,Gety(self),GetZ(self));
UseObject(FindType(fish_pole,$ffff));
Отрабатывала нормально. Мне кажется, что все же проблема с координатой Z.
Пробовал получать координату через GetSurfaceZ и задавать вручную перебором в цикле ничего не ловит.