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 ?
)) Да посмотрел, там в паке еще одни бутылки валялись с таким тайпом поэтому не работало, спасибо)