Page 1 of 1

Как использовать значения меньше

Posted: 11.11.2014 21:14
by tito
Хочу вставить проверку на добирание бутылок, так проблема следующая, если в условии стоит знак больше, то этот код работает отлично, но если поставить меньше "<" или "<=" то он перестает работать, как исправить, чтоб работала при <=1 или при = 0 (если нет бутылок). Спасибо.

Code: Select all

if FindType($0F0B,Backpack) > 12 then
begin
AddToSystemJournal('Добираем');
FindType($0F0B,ObjAtLayer(BankLayer));
if FindItem > 0 then
begin
MoveItem(FindItem,1,Backpack,0,0,0);
end;
end;

Re: Как использовать значения меньше

Posted: 11.11.2014 21:28
by Maxwell
Из мануала:
function FindType(ObjType: Word; Container: Cardinal) : Cardinal
Последний найденный обьект возвращается резутатом выполнения ЭТОЙ функции
В данном случае у тебя возвращается id объекта. И он действительно > 12.

Используй еще
function GetQuantity(ObjID : Cardinal) : Integer
вернет количество в стопке.

Re: Как использовать значения меньше

Posted: 11.11.2014 21:53
by tito
Может я не правильно понял, пробовал и с GetQuantity все равно эффекта нету

На всякий случай подробнее чуть опишу
Вот так работает:

Code: Select all

if FindType($0F0B,Backpack) > 2 then
begin
AddToSystemJournal('Добираем');
FindType($0F0B,ObjAtLayer(BankLayer));
if FindItem > 0 then
begin
MoveItem(FindItem,1,Backpack,0,0,0);
end;
end;
А вот так не работает: (со знаком меньше, т.е. если у меня 1 бутылка или ноль, он не работает)

Code: Select all

if FindType($0F0B,Backpack) < 2 then
begin
AddToSystemJournal('Добираем');
FindType($0F0B,ObjAtLayer(BankLayer));
if FindItem > 0 then
begin
MoveItem(FindItem,1,Backpack,0,0,0);
end;
end;

Re: Как использовать значения меньше

Posted: 11.11.2014 22:18
by Maxwell

Code: Select all


if FindType($0F0B,Backpack) > 0 then //То, что мы вообще нашли этот тип объекта
begin
if FindFullQuantity < 2 then //Если найденных объектов меньше 2. Работает как со стакающимися итемами, так и нет
begin
AddToSystemJournal('Добираем');
FindType($0F0B,ObjAtLayer(BankLayer));
if FindItem > 0 then
begin
MoveItem(FindItem,1,Backpack,0,0,0);
end;
end;
end;

Re: Как использовать значения меньше

Posted: 11.11.2014 22:29
by tito
Maxwell wrote:

Code: Select all


if FindType($0F0B,Backpack) > 0 then //То, что мы вообще нашли этот тип объекта
begin
if FindFullQuantity < 2 then //Если найденных объектов меньше 2. Работает как со стакающимися итемами, так и нет
begin
AddToSystemJournal('Добираем');
FindType($0F0B,ObjAtLayer(BankLayer));
if FindItem > 0 then
begin
MoveItem(FindItem,1,Backpack,0,0,0);
end;
end;
end;
Не добирает (

Re: Как использовать значения меньше

Posted: 11.11.2014 22:31
by Maxwell
А что возвращает FindFullQuantity ?

Re: Как использовать значения меньше

Posted: 11.11.2014 23:03
by tito
Maxwell wrote:А что возвращает FindFullQuantity ?
)) Да посмотрел, там в паке еще одни бутылки валялись с таким тайпом поэтому не работало, спасибо)