From Stealth Client

Jump to: navigation, search


FindType

function FindType(ObjType: Word; Container: Cardinal) : Cardinal

Ищет обьект указанного типа ObjType в указанном контейнере Container.


НЕ ищет в подсумках (контейнерах внутри заданного контейнера). Для такого поиска есть Doc:RU/Api/FindTypeEx

Фактически, Findtype = FindTypeEx(ObjType,$FFFF,Container,false);

Если обьект удовлетворяет всем условиям, то перед внесением в FindedList проверяется его наличие в IgnoreList. Если там он есть - значит отбор не проходит. Подробнее смотреть Doc:RU/Api/Ignore

Результаты поиска:

  • список найденных обьектов заносится в FindedList, который можно получить, ипользуя функцию Doc:RU/Api/GetFindedList
  • Последний найденный обьект заносится в Doc:RU/Api/FindItem
  • Последний найденный обьект возвращается резутатом выполнения ЭТОЙ функции
  • В Doc:RU/Api/FindCount заносится кол-во найденных айтемов (стопка из нескольких "стекированных" айтемов считается как один айтем!)
  • В Doc:RU/Api/FindQuantity заносится кол-во айтемов в стеке (стопке), если последний айтем является стеком (стопкой)
  • В Doc:RU/Api/FindFullQuantity заносится общее кол-во айтемов во всех найденых стопках (если таких в результатах нет, то будет равно Doc:RU/Api/FindCount


На дальность поиска влияет:

  • Doc:RU/Api/FindDistance - задает дальность поиска по горизонтали в клетках. 3 - значит будет искать под собой и в радиусе трех клеток. По умолчанию имеет значение 2 (принято за умолчание на большинстве серверов как максимальная дальность, с которой обычный игрок при обычных условиях может поднять или положить вещь)
  • Doc:RU/Api/FindVertical - задает дальность поиска по вертикали. По умолчанию принято 5, чтобы не задевать соседние этажи при поиске.


В случае, если ничего не найдено - вернет 0.

В качестве параметра Container можно использовать:

Если указан ID несуществующего контейнера, то поиск производится в рюкзаке чара

Если ObjType = -1 поиск вернет ВСЕ доступные объекты в контейнере \ на земле(с учетом FindDistance и FindVertical)

Пример 1:

if FindType(bottle_type,Ground) > 0 then
begin
  UseObject(FindItem);
end;

Пример 2:

  FindType(runes,backpack);
  AddAddToSystemJournal('Runes found: ' + IntToStr(FindCount));