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.