Page 1 of 1

Как игнорировать своего чара из массива (

Posted: 23.01.2014 14:31
by m0nya
Добрый день, возникла проблема с функцией поиска вендоров, тайп вендора такойже как и у моего чара и часто персонаж стоит на месте, а мне нужно чтобы он шел к вендору.

вот:

Code: Select all

AddToSystemJournal('Продацец: '+GetName(vendor)+'. координата Х: '+inttostr(GetX(vendor))+'. координата Y: '+inttostr(GetY(vendor))+'. дистанция: ' +inttostr(GetDistance(vendor)));
repeat
NewMoveXY(GetX(vendor),GetY(vendor),true,0,true);
until (GetX(self) = GetX(vendor)) and (GetY(self) = GetY(vendor));
Не могу придумать ничего как исключить себя из
vendor_types:= [$0191, $0190]

Code: Select all

procedure GoToVendor;
var
vt : integer;
begin
wait(1700);
FindDistance:= distfind;
for vt:= 0 to (GetArrayLength(vendor_types) - 1) do begin
if FindType(vendor_types[vt], ground) <> 0 then begin
vendor:= FindItem;
addToSystemJournal('1');
NewMoveXY(GetX(vendor), GetY(vendor), true, 1, true)
end;
end;
end;

Re: Как игнорировать своего чара из массива (

Posted: 23.01.2014 18:25
by Vizit0r
намекаю на функцию Ignore(Self)

Re: Как игнорировать своего чара из массива (

Posted: 23.01.2014 19:25
by m0nya
Vizit0r, спасибо.

Code: Select all

FindDistance:= distfind;

for vt:= 1 to (GetArrayLength(vendor_types) - 1) do begin
    Ignore(Self);
	if FindType(vendor_types[vt], ground) <> 1 then begin
        vendor:= FindItem;
	//if (GetName(vendor) = 'Drama') then AddToSystemJournal('Я');
	AddToSystemJournal('Продацец: '+GetName(vendor)+'. координата Х: '+inttostr(GetX(vendor))+'. координата Y: '+inttostr(GetY(vendor))+'. дистанция: ' +inttostr(GetDistance(vendor)));
	//repeat
	NewMoveXY(GetX(vendor),GetY(vendor),true,1,true);
	//until (GetX(self) = GetX(vendor)) and (GetY(self) = GetY(vendor)); 
	end;
end;
А в чем еще может быть загвоздка ?
В журнале мне теперь определяются координаты верные, соответственно в newmove попадают верные кординаты ...
но персонаж двигаться отказывается ... :?:

Re: Как игнорировать своего чара из массива (

Posted: 23.01.2014 19:33
by Vizit0r
включи в настройках сообщения от мувера и узнаешь причину

Re: Как игнорировать своего чара из массива (

Posted: 23.01.2014 21:44
by m0nya
Спасибо причина была тут:
if FindType(vendor_types[vt], ground) <> 1 then begin

пришлось <> 1 думал что это больше\меньше 1 ... оказалось не равно 1 =)

Re: Как игнорировать своего чара из массива (

Posted: 24.01.2014 0:37
by Vizit0r
больше\меньше и не равно - это вобщем-то одно и то же :)