Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Нужна помощь со скриптом.

тут можно задать вопрос по скриптингу
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

Stels wrote:
MuDaCk wrote:свой тип конечно же :lol:
Я с этого и начал, но он мне выдает следующее: Type mismatch и показывает на конец строки перед точкой с запятой =\

Code: Select all

if (countground($0321) > 0) then
begin
///твоё действие
end;
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

А теперь я повис :lol:
как мне проверить что этот вендор имеет нужную мне приписку?
типа как в изи
if Траляля in #property ...

как-то так можно с переменной типа строка?

if Траляля in StringVar....?
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

bmsearch
cc := геттитл)))
//а тут начинается кусок работы со строками. например:
if (BMSearch(1,cc,'tinker') > 0) then
begin
//какое-то действие

end ;
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

Класс, работает :)
Как теперь проигнорировать уже проверенного нпц? что бы проверить следующего?
т.е. алгоритм такой
метка next
найти нпц на земле в радиусе 8 тайлов
проверить его приписку
если они не совпадают, то
игнорировтать этого нпц при следующих поисках
перейти к метке next
иначе сделать то-то то-то :)

Пока это выглядит вот так:

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.
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

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.
ещё я бы сделал сброс списка игнора по времени. Но для начала и так сойдёт)))
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

Спасибо )
на всякий случай, что это за команда? :) которая сбрасывает список игноров?
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

ignorereset или resetignore , вобщем, както так)))
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

Как-то не так все равно он работает :) вот код

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.
после присвоение переменной Ch другого значения он ничего не находит... хотя рядом точно стоит вендор с указанным типом... точнее находит, но находит что-то, что не имеет title )))
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

я не понял что ты кому присваиваешь и как ты узнаёшь что именно он находит...

и

Code: Select all

ch[0]:=$0001;
ch[1]:=$0002;
for i = 0 to 1 do
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

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; 
Вариант с массивом тоже не помог.
Почему-то S:=GetTitle(T); после первого прохода не выдает title следующего нпц, переменная остается пустой.
Проверить значение можно в пошаговом отладке просто наведя указатель на переменную (тут же высветится текущее значение)
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

Я тебе уже расписал как я вижу реализацию твоего скрипта. Про пошаговую отладку впервые слышу. никогда с таким не сталкивался.

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.
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

Это всё хорошо, но:
1) у меня два типа нпц, так уж вышло у разработчиков, судя по всему по половой принадлежности различаются :)
2) У меня увидить имя с припиской вендора можно только у одного, все остальные id, команда S:=GetTitle(T) не выдает... остается пустой.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Нужна помощь со скриптом.

Post by Vizit0r »

а клиент показывает?
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

Vizit0r wrote:а клиент показывает?
В смысле когда его запускаешь в графическом режиме? да, у всех окружающих нпц он видит имена
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Нужна помощь со скриптом.

Post by Vizit0r »

ну тогда создай и приготовь чара рядом с НПЦ, у которых не берет Title, и мне в асю или приват скидывай логин\пароль и данные по шарду. будет время - гляну, что там.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply