Page 1 of 3
					
				FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 21:46
				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
 
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 22:57
				by GeeZeR
				Не всё так просто с FindDistance, если объект попал в твою зону видимости, а затем вышел из неё на расстояние допустим не дальше 50 шагов от тебя, то ты найдёшь его если поставишь FindDistance := 50; (или 51). Но если ты его не видел ещё, т.е. он вообще не попадал в зону видимости персонажа (допустим зона видимости радиусом 20 шагов), то даже если он будет на расстоянии 30 шагов при FindDistance := 50; то FindType его не найдёт. Короче твои быки должны быть в зоне видимости перса. Зона видимости - наверное размеры игрового экрана, я не тестил, попробуй сам.
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:04
				by KaToK
				не в зоне дело 100%
я стоял на быке которого ни FindType ни FindTypeEx не находили.
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:05
				by GeeZeR
				такого не может быть, знач тип не верный был, поставь явно тип
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:06
				by KaToK
				ставил и тип и цвет, не помогает )
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:07
				by GeeZeR
				ставил явно? т.е к примеру так: FindType($00D5,ground);
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:11
				by KaToK
				хм, бред. явно всё указал начал находить оО. Спасибо )
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:12
				by GeeZeR
				как ты типы в массив забивал? в этом проблема, покажи код
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:14
				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;
 
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:21
				by GeeZeR
				а тип массива какой? И зачем аж 2 раза  присваивать значения, сначала MobTypeList:=     [$00CF, $00D8, $00DC, $00E8, $00E9];, а потом каждый в отдельности? А тут ты забыл индексы нужные проставить  MobTypeSkillList[0]:=11.1; MobTypeSkillList[0]:=29.1; и т.д.
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:28
				by KaToK
				2 раза т.к. не уверен буду я его в паблик отдавать или нет, если в паблик то MobTypeList  забью штук 100/200 чем-то типа $FFFA (просто ради количества) а уже ниже список, для простоты и понятности добавления новых мобов в список. 
Code: Select all
MobTypeList : array of Cardinal;
MobTypeSkillList : array of Double;
Кстати жаль, не нарыл я БД со всеми типами существующими в УО. Хотя уверен и самому как-то его создать можно, не особо гуглил эту тему.
 
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:37
				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.
попробуй быка подставь в массив
Ну по поводу типов тебе не нужен кардинал тут, достаточно слова. Кардинал больше памяти забирает.
 
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 26.06.2018 23:41
				by KaToK
				я уже объявлял массивы процедурой, как у меня и сделано, отдебажу найду косяк )
хотя вообще пора на питон перелазить, там с динамическими массивами проблем вроде нет)
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 27.06.2018 0:02
				by GeeZeR
				а процедурой зачем? Это имеет смысл если у тебя большая куча массивов хранится в отдельном файле и ты его подключаешь к основному скрипту, просто для удобства чтобы не захламлять скрипт, а если всё в одном файле то создавай массив как обычно да и всё.
			 
			
					
				Re: FindType & FindTypeEx не находит мобов.
				Posted: 27.06.2018 0:09
				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.