Stels wrote:Я с этого и начал, но он мне выдает следующее: Type mismatch и показывает на конец строки перед точкой с запятой =\MuDaCk wrote:свой тип конечно же
Code: Select all
if (countground($0321) > 0) then
begin
///твоё действие
end;
Stels wrote:Я с этого и начал, но он мне выдает следующее: Type mismatch и показывает на конец строки перед точкой с запятой =\MuDaCk wrote:свой тип конечно же
Code: Select all
if (countground($0321) > 0) then
begin
///твоё действие
end;
cc := геттитл)))
//а тут начинается кусок работы со строками. например:
if (BMSearch(1,cc,'tinker') > 0) then
begin
//какое-то действие
end ;
Code: Select all
Label
next;
Var
T: cardinal;
S: string;
L: integer;
begin
next:
FindDistance := 8;
T:=findtype($0190,ground);
S:=GetTitle(T);
L:=bmsearch(1,S,'Blacksmith');
if L = 0 THEN goto next;
end.
ещё я бы сделал сброс списка игнора по времени. Но для начала и так сойдёт)))Stels wrote:Класс, работает
Как теперь проигнорировать уже проверенного нпц? что бы проверить следующего?
т.е. алгоритм такой
метка next
найти нпц на земле в радиусе 8 тайлов
проверить его приписку
если они не совпадают, то
игнорировтать этого нпц при следующих поисках
перейти к метке next
иначе сделать то-то то-то
Пока это выглядит вот так:Code: Select all
Label next; Var T: cardinal; S: string; L: integer; procedure suck; begin ///основное действие с вендором end; begin next: FindDistance := 8; T:=findtype($0190,ground); S:=GetTitle(T); L:=bmsearch(1,S,'Blacksmith'); if L = 0 THEN begin ignore(t); goto next; end else begin suck; end; end.
Code: Select all
Label
next;
Var
T: cardinal;
S: string;
L: integer;
Ch: word;
begin
Ch:=$0190;
next:
FindDistance := 8;
T:=findtype(Ch,ground);
S:=GetTitle(T);
if S = '' then
begin
Ch:=$0191;
goto next;
end;
L:=bmsearch(1,S,'Blacksmith');
if L = 0 THEN
begin
ignore(t);
goto next;
end
else
begin
IgnoreReset;
end;
end.
Code: Select all
ch[0]:=$0001;
ch[1]:=$0002;
for i = 0 to 1 do
Code: Select all
Ch[1]:=$0190;
Ch[2]:=$0191;
i:=1;
next:
FindDistance := 8;
T:=findtype(Ch[i],ground);
S:=GetTitle(findtype(Ch[i],ground));
L:=bmsearch(1,S,'Blacksmith');
if L = 0 THEN
begin
ignore(T);
if S = '' then
begin
if i = 1 then i:=2
else i:=1;
end;
goto next;
end
else
begin
IgnoreReset;
end;
Code: Select all
Label next; Var T: cardinal; S: string; L: integer; procedure suck; begin ///основное действие с вендором end; begin next: FindDistance := 8; T:=findtype($0190,ground); S:=GetTitle(T); L:=bmsearch(1,S,'Blacksmith'); if L = 0 THEN begin ignore(t); goto next; end else begin suck; end; end.
В смысле когда его запускаешь в графическом режиме? да, у всех окружающих нпц он видит именаVizit0r wrote:а клиент показывает?