Page 1 of 1

Не хочет рыбачить

Posted: 07.03.2008 22:39
by re1ax
Вроде бы скрипт написан правильно , но он всё равно не хочет ловить рыбу... Как ни пытался править , так или не хочет в бекпаке ничего находить , или одевает удочку , но не рыбалит... (В данной версии скрипта он не находит удочку (( )

Code: Select all

Program Fishing;
	var i : Integer;			
	x : array [1..33] of integer;		
	y : array [1..33] of integer;		
	z : integer;				
	tile : array [1..33] of integer;	
	k : integer;				
	fish : array [1..4] of cardinal;
	t : integer;
	fp_type : cardinal;

{$Include 'all.inc'}

Begin

i := 1;
fp_type := $0DBF;

x[1] := 3036;
x[2] := 3036;
x[3] := 3036;
x[4] := 3036;
x[5] := 3036;
x[6] := 3036;
x[7] := 3036;
x[8] := 3036;
x[9] := 3036;
x[10] := 3036;
x[11] := 3036;
x[12] := 3037;
x[13] := 3037;
x[14] := 3037;
x[15] := 3037;
x[16] := 3037;
x[17] := 3037;
x[18] := 3037;
x[19] := 3037;
x[20] := 3037;
x[21] := 3037;
x[22] := 3037;
x[23] := 3038;
x[24] := 3038;
x[25] := 3038;
x[26] := 3038;
x[27] := 3038;
x[28] := 3038;
x[29] := 3038;
x[30] := 3038;
x[31] := 3038;
x[32] := 3038;
x[33] := 3038;

y[1] := 771;
y[2] := 772;
y[3] := 773;
y[4] := 774;
y[5] := 775;
y[6] := 776;
y[7] := 777;
y[8] := 778;
y[9] := 779;
y[10] := 780;
y[11] := 781;
y[12] := 771;
y[13] := 772;
y[14] := 773;
y[15] := 774;
y[16] := 775;
y[17] := 776;
y[18] := 777;
y[19] := 778;
y[20] := 779;
y[21] := 780;
y[22] := 781;
y[23] := 771;
y[24] := 772;
y[25] := 773;
y[26] := 774;
y[27] := 775;
y[28] := 776;
y[29] := 777;
y[30] := 778;
y[31] := 779;
y[32] := 780;
y[33] := 781;

z := 251;

tile[1] := 6040;
tile[2] := 6044;
tile[3] := 6042;
tile[4] := 6041;
tile[5] := 6044;
tile[6] := 6040;
tile[7] := 6044;
tile[8] := 6041;
tile[9] := 6042;
tile[10] := 13616;
tile[11] := 6044;
tile[12] := 13615;
tile[13] := 13616;
tile[14] := 6040;
tile[15] := 6040;
tile[16] := 6043;
tile[17] := 6040;
tile[18] := 6042;
tile[19] := 13616;
tile[20] := 6041;
tile[21] := 13616;
tile[22] := 13616;
tile[23] := 6042;
tile[24] := 13616;
tile[25] := 13616;
tile[26] := 13616;
tile[27] := 13615;
tile[28] := 13616;
tile[29] := 13616;
tile[30] := 6044;
tile[31] := 13615;
tile[32] := 6043;
tile[33] := 6044;

fish[1] := $09CC;
fish[2] := $09CD;
fish[3] := $09CE;
fish[4] := $09CF;

SetARStatus(true);
clearjournal;

while not Dead do
begin
	if Connected then
	begin
		UseObject(backpack);				
		Wait(500);	

		If FindType(fp_type, backpack) <> 0 Then	
		begin						
			equip(RhandLayer, finditem); 
			wait(500); 
		end 
		else 
		begin 
			AddToSystemJournal('Не нашел удочку!'); 
			exit; 
		end;

		canceltarget;
		
		while (i < 34) do				
		begin
			CheckSave;
	
			while (inJournal('There') <> 0) do
			begin
				ClearJournal;
				CancelTarget;
				k := 0;
				Wait(500);
				UseObject(ObjAtLayerEx(RhandLayer, self));
				wait(500);
				WaitTargetTile(tile[i], x[i], y[i], z);
				repeat
					wait(100);
					k := k + 1;
				until (inJournal('You|They|There') <> 0) OR (k > 450);
			end;
			
			if (Weight > 400) then
			begin
				for t := 1 to 4 do
				begin
					FindType(fish[t],backpack);
					Wait(500);
					DropHere(FindItem);
					Wait(500);
				end
			end;
			
			Hungry(1,backpack);
			i := i+1;
		end;
	end;
end;

End. 

Posted: 08.03.2008 0:40
by Edred
Ну, для начала я бы проверил, правильно ли указан тип удочки. Так как их, насколько мне помнится, два, для разной ориентации. Также как кирок, лопат, топоров.

Во-вторых, ввел бы проверку, нашлось ли что-нибудь прежде чем одевать. Типа:

Code: Select all

If FindType(fp_type, backpack) <> 0 Then
begin
   equip(RhandLayer, finditem);
   wait(500);
end
else
begin
   AddToSystemJournal('Не нашел удочку!');
   exit;
end;
Заодно можно сократить число переменных на одну... Кстати, зачем типы забивать в переменные? Они прекрасно могут жить в константах.

ЗЫ: Оригинальное название для скрипта на рыбную ловлю... :lol: Или у вас при рыбалке качается анатомия? :shock:

Posted: 08.03.2008 14:50
by re1ax
Добавил в скрипт проверку на наличие удочки (их у меня в бекпаке две штуки и обе правой ориентации... Тайп стоит правильно..) - проверка удачная , удочку находит , но вспотыкается на юзании это удочки... Скорее всего в этом месте

Code: Select all

161.				UseObject(ObjAtLayerEx(RhandLayer, self));
162.				wait(500);
Что это может быть ??...
Кст , только что проверял - удочку из бекпака он в руку одевает , но не хочет её юзать ((

З.Ы. :lol: Да эт я взял за основу скрипт на Анатомию вот и забыл изменить название...

Posted: 08.03.2008 20:11
by grundick
Может до тайла не дотягивается? Или координата Z неверно указана? Он вокруг себя рыбачит или как? Зачем координаты забывать в массив? :shock: Судя по координатам в прямоугольнике 3Х10...Не лудше ли в циклы загнать? и вместо Z попробуй GetZ(self)...

Posted: 06.06.2008 12:07
by Alexej
Касательно высоты Z, она случайно не отрицательная? например "-5"
Замечено что при отрицательной высоте чары хоть и находят и правильно определяют типы тайлов, все равно не могут ткнуть прицел:

Code: Select all

TargetToTile(Tile,getx(self)+x,gety(self)+y,z);
Сами скрипты работают, так например? ламбер рубит все нормально, кроме Мааласа - там высота = -90
Минер, тоже копает все тайлы, кроме Мааласа Z=-90
А вот рыбак не хочет рыбачить, так как вода имеет высоту = -5

В чем может быть глюк? Возможно Стелз не может работать с отрицательной высотой?

=====================
Sun Day (RunUo 1.0 RC0) AoS