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

FindType & FindTypeEx не находит мобов.

тут можно задать вопрос по скриптингу
KaToK
Neophyte
Neophyte
Posts: 40
Joined: 31.01.2008 22:40
Contact:

FindType & FindTypeEx не находит мобов.

Post by KaToK »

собственно FindType & FindTypeEx не находит мобов. на вкладке world мобы есть

Code: Select all

 while testmode do
  begin
    FindType(MobTypeList[3],ground);
    AddToSystemJournal('0.1 '+inttostr(FindCount));
    while  (FindCount>0) do
    begin
    AddToSystemJournal('1 '+inttostr(FindCount));
      attack(FindItem);
      wait(100);
    FindType(MobTypeList[3],ground);
    ignore(FindItem);
    end;
     
    FindType(MobTypeList[4],ground);
    AddToSystemJournal('15 '+inttostr(FindCount));
    while  (FindCount>0) do
    begin                             
    AddToSystemJournal('18 '+inttostr(FindCount));
      attack(FindItem);
      wait(100);
    FindType(MobTypeList[4],ground);
    ignore(FindItem);
    end;
                               
    FindTypeEx(MobTypeList[4],$0901,ground,false);
    AddToSystemJournal('02 '+inttostr(FindCount));
    while  (FindCount>0) do
    begin  
    AddToSystemJournal('2 '+inttostr(FindCount));
      attack(FindItem);
      wait(100);
    FindTypeex(MobTypeList[4],$0901,ground,false);
    ignore(FindItem);
    end;
    ignorereset;
  end;
в журнал получаю

22:39:18:847 [PFUO]: 02 0
22:39:18:847 [PFUO]: 0.1 0
22:39:18:847 [PFUO]: 15 0

радиус поиска 50. т.е. в любом случае если моб есть на world должен находить. ищю быков типы $00E8, $00E9
Stealth 8.7.8 | Клиент: 7.0.64.3
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: FindType & FindTypeEx не находит мобов.

Post by GeeZeR »

Не всё так просто с FindDistance, если объект попал в твою зону видимости, а затем вышел из неё на расстояние допустим не дальше 50 шагов от тебя, то ты найдёшь его если поставишь FindDistance := 50; (или 51). Но если ты его не видел ещё, т.е. он вообще не попадал в зону видимости персонажа (допустим зона видимости радиусом 20 шагов), то даже если он будет на расстоянии 30 шагов при FindDistance := 50; то FindType его не найдёт. Короче твои быки должны быть в зоне видимости перса. Зона видимости - наверное размеры игрового экрана, я не тестил, попробуй сам.
Last edited by GeeZeR on 26.06.2018 23:04, edited 1 time in total.
Stealth 8.10.2 | Клиент: 7.0.13.4
KaToK
Neophyte
Neophyte
Posts: 40
Joined: 31.01.2008 22:40
Contact:

Re: FindType & FindTypeEx не находит мобов.

Post by KaToK »

не в зоне дело 100%
я стоял на быке которого ни FindType ни FindTypeEx не находили.
Stealth 8.7.8 | Клиент: 7.0.64.3
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: FindType & FindTypeEx не находит мобов.

Post by GeeZeR »

такого не может быть, знач тип не верный был, поставь явно тип
Stealth 8.10.2 | Клиент: 7.0.13.4
KaToK
Neophyte
Neophyte
Posts: 40
Joined: 31.01.2008 22:40
Contact:

Re: FindType & FindTypeEx не находит мобов.

Post by KaToK »

ставил и тип и цвет, не помогает )
Stealth 8.7.8 | Клиент: 7.0.64.3
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: FindType & FindTypeEx не находит мобов.

Post by GeeZeR »

ставил явно? т.е к примеру так: FindType($00D5,ground);
Stealth 8.10.2 | Клиент: 7.0.13.4
KaToK
Neophyte
Neophyte
Posts: 40
Joined: 31.01.2008 22:40
Contact:

Re: FindType & FindTypeEx не находит мобов.

Post by KaToK »

хм, бред. явно всё указал начал находить оО. Спасибо )
Stealth 8.7.8 | Клиент: 7.0.64.3
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: FindType & FindTypeEx не находит мобов.

Post by GeeZeR »

как ты типы в массив забивал? в этом проблема, покажи код
Stealth 8.10.2 | Клиент: 7.0.13.4
KaToK
Neophyte
Neophyte
Posts: 40
Joined: 31.01.2008 22:40
Contact:

Re: FindType & FindTypeEx не находит мобов.

Post by KaToK »

Code: Select all

Procedure AllMobTypeList;
Begin
  MobTypeList:=     [$00CF, $00D8, $00DC, $00E8, $00E9];
  MobTypeSkillList:=[ 11.1,  11.1,  29.1,  71.1,  71.1];

  MobTypeList[0]:=$00CF;       //Sheep
  MobTypeSkillList[0]:=11.1;
  MobTypeList[1]:=$00D8;       //Cow
  MobTypeSkillList[0]:=11.1;
  MobTypeList[2]:=$00DC;       //RLama
  MobTypeSkillList[0]:=29.1;
  MobTypeList[3]:=$00E8;       //Bull
  MobTypeSkillList[0]:=71.1; 
  MobTypeList[3]:=$00E9;       //Bull 2
  MobTypeSkillList[0]:=71.1;
  
end;
Stealth 8.7.8 | Клиент: 7.0.64.3
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: FindType & FindTypeEx не находит мобов.

Post by GeeZeR »

а тип массива какой? И зачем аж 2 раза присваивать значения, сначала MobTypeList:= [$00CF, $00D8, $00DC, $00E8, $00E9];, а потом каждый в отдельности? А тут ты забыл индексы нужные проставить MobTypeSkillList[0]:=11.1; MobTypeSkillList[0]:=29.1; и т.д.
Stealth 8.10.2 | Клиент: 7.0.13.4
KaToK
Neophyte
Neophyte
Posts: 40
Joined: 31.01.2008 22:40
Contact:

Re: FindType & FindTypeEx не находит мобов.

Post by KaToK »

2 раза т.к. не уверен буду я его в паблик отдавать или нет, если в паблик то MobTypeList забью штук 100/200 чем-то типа $FFFA (просто ради количества) а уже ниже список, для простоты и понятности добавления новых мобов в список.

Code: Select all

MobTypeList : array of Cardinal;
MobTypeSkillList : array of Double;
Кстати жаль, не нарыл я БД со всеми типами существующими в УО. Хотя уверен и самому как-то его создать можно, не особо гуглил эту тему.
Stealth 8.7.8 | Клиент: 7.0.64.3
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: FindType & FindTypeEx не находит мобов.

Post by GeeZeR »

хз короче смотри вот так всё пашет, тестил на медведе:

Code: Select all

Program New;
var
testarray :  array of word;

begin
	testarray:=[$00D5];
	FindDistance := 20;
	FindType(testarray[0],ground);
	AddToSystemJournal(inttostr(FindCount));
end.
попробуй быка подставь в массив
Ну по поводу типов тебе не нужен кардинал тут, достаточно слова. Кардинал больше памяти забирает.
Stealth 8.10.2 | Клиент: 7.0.13.4
KaToK
Neophyte
Neophyte
Posts: 40
Joined: 31.01.2008 22:40
Contact:

Re: FindType & FindTypeEx не находит мобов.

Post by KaToK »

я уже объявлял массивы процедурой, как у меня и сделано, отдебажу найду косяк )
хотя вообще пора на питон перелазить, там с динамическими массивами проблем вроде нет)
Stealth 8.7.8 | Клиент: 7.0.64.3
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: FindType & FindTypeEx не находит мобов.

Post by GeeZeR »

а процедурой зачем? Это имеет смысл если у тебя большая куча массивов хранится в отдельном файле и ты его подключаешь к основному скрипту, просто для удобства чтобы не захламлять скрипт, а если всё в одном файле то создавай массив как обычно да и всё.
Stealth 8.10.2 | Клиент: 7.0.13.4
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: FindType & FindTypeEx не находит мобов.

Post by GeeZeR »

если очень хочется через функцию, можно так:

Code: Select all

Program New;

function Bools(a:word):word;
var
	testarray: array of word;
Begin
	testarray:=[$00D5];
	Result:=testarray[a];
end;

begin
	FindDistance := 20;
	FindType(Bools(0),ground);
	AddToSystemJournal(inttostr(FindCount));
end.
Stealth 8.10.2 | Клиент: 7.0.13.4
Post Reply